源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

193 lines
6.7 KiB

-- <*
-- @Author: msh
-- @Description: 二级邀请提示界面view
-- *>
CommonAlertInviteTipView = CommonAlertInviteTipView or BaseClass(BaseView)
local CommonAlertInviteTipView = CommonAlertInviteTipView
function CommonAlertInviteTipView:__init()
self.base_file = "common"
self.layout_file = "CommonAlertInviteTipView"
self.layer_name = "Top"
self.destroy_imm = true
self.use_background = G_USING_BG --全屏界面默认使用这个参数
--self.hide_maincancas = true --全屏界面需要放开隐藏主UI
self.change_scene_close = true
self.append_to_ctl_queue = false --是否要添加进界面堆栈
self.need_show_money = false --是否要显示顶部的金钱栏
self.load_callback = function ()
self:LoadSuccess()
self:AddEvent()
end
self.open_callback = function ( )
self:UpdateView()
end
self.switch_callback = function(index)
self:SwitchTab(index)
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
function CommonAlertInviteTipView:Open(invite_data)
self.invite_data = invite_data
-- 定制层级
self.layer_name = invite_data.layer_name or self.layer_name
self:InitNodesAndData()
BaseView.Open(self)
end
function CommonAlertInviteTipView:ReOpen(invite_data)
self.invite_data = invite_data
if self.is_loaded then
self:InitNodesAndData()
self:UpdateView()
end
end
function CommonAlertInviteTipView:InitNodesAndData( )
if self.is_loaded then
if self.vip_item then
self.vip_item:SetData(0)
end
self.lb_name_tmp.text = ""
self.lb_content_tmp.text = ""
end
self.auto_close_time = self.invite_data.auto_close_time or 10
-- self.waiting = false
-- self:ClearAutoCloseTimer()
-- self:ClearViewAnimId()
-- self:ClearDestroyTimer()
end
function CommonAlertInviteTipView:LoadSuccess()
local nodes = {
"Window:raw",
"Window/windowCloseBtn:obj",
"Window/windowTitleText:tmp",
"confirmBtn:obj","confirmBtn/lb_confirmBtn:tmp",
"refuseBtn:obj", "refuseBtn/lb_refuseBtn:tmp",
"con_vip:obj", "lb_name:tmp", "lb_content:tmp",
"lb_tip:tmp",
}
self:GetChildren(nodes)
self:UpdateBaseView( )
end
function CommonAlertInviteTipView:UpdateBaseView( )
lua_resM:setOutsideRawImage(self, self.Window_raw, GameResPath.GetViewBigBg("tips_comm_bg6"))
self.vip_item = RoleVipItem.New(self.con_vip)
self.vip_item:SetAnchoredPosition(0, 0)
self.vip_item:SetScale(0.84, 0.84)
self.windowCloseBtn_obj:SetActive(false)
SetAnchoredPositionX(self.lb_content, 0)
end
function CommonAlertInviteTipView:AddEvent()
local on_click = function ( click_obj )
if self.windowCloseBtn_obj == click_obj then
if self.invite_data and self.invite_data.reject_callback then
self.invite_data.reject_callback(self.invite_data)
end
self:CloseCallBack()
elseif self.confirmBtn_obj == click_obj then
if self.invite_data and self.invite_data.accept_callback then
self.invite_data.accept_callback(self.invite_data)
end
self:CloseCallBack()
elseif self.refuseBtn_obj == click_obj then
if self.invite_data and self.invite_data.reject_callback then
self.invite_data.reject_callback(self.invite_data)
end
self:CloseCallBack()
end
end
AddClickEvent(self.windowCloseBtn_obj, on_click)
AddClickEvent(self.confirmBtn_obj, on_click)
AddClickEvent(self.refuseBtn_obj, on_click)
end
-- 关闭界面并回调
function CommonAlertInviteTipView:CloseCallBack( )
self:Close()
CommonController.Instance:Fire(EventName.SHOW_COMMON_INVITE_TIPS)
end
function CommonAlertInviteTipView:UpdateView()
if self.invite_data.invite_type == CommonModel.InviteTipsType.Team then -- 组队邀请
local data = self.invite_data.param_data
local str = string.format('Lv.%s %s', data.level, HtmlColorTxt( data.name, ColorUtil.BLUE_DARK) )
self.lb_name_tmp.text = str
self.lb_content_tmp.text = "邀请与您组队,是否同意请求?"
-- -- 副本目标
-- local main_type = data.activity_id or ""
-- local sub_type = data.subtype or ""
-- local cfg = Config.Teamui[main_type.."@"..sub_type]
-- if cfg then
-- local txt = cfg.subtype_name
-- self.invite_content_tmp.text = "副本:" .. HtmlColorTxt( Trim(txt), "#fdffc2")
-- else
-- self.invite_content_tmp.text = "暂无目标"
-- end
end
-- 设置vip 并调整名字的位置
self.vip_item:SetData(self.invite_data.vip, self.invite_data.svip)
local pos_x = self.invite_data.vip > 0 and 10 or 0
SetAnchoredPositionX(self.lb_name, pos_x)
SetAnchoredPositionX(self.con_vip, pos_x - self.lb_name_tmp.preferredWidth / 2 - 20)
self:StartAutoCloseTimer()
end
-- 自动关闭倒计时
function CommonAlertInviteTipView:StartAutoCloseTimer( )
local end_time = self.auto_close_time + TimeUtil:getServerTime()
self:ClearAutoCloseTimer()
local function auto_close_func()
local left_time = end_time - TimeUtil:getServerTime()
if left_time > 0 then
if self.invite_data.invite_type == CommonModel.InviteTipsType.Team and
SceneManager:getInstance():IsBossMoneyScene() then
self.lb_tip_tmp.text = string.format('(%s)秒后自动同意', HtmlColorTxt( left_time, ColorUtil.GREEN_DARK) )
else
self.lb_tip_tmp.text = string.format('(%s)秒后自动拒绝', HtmlColorTxt( left_time, ColorUtil.GREEN_DARK))
end
elseif left_time <= 0 then
if self.invite_data.invite_type == CommonModel.InviteTipsType.Team and
SceneManager:getInstance():IsBossMoneyScene() then
if self.invite_data and self.invite_data.accept_callback then
self.invite_data.accept_callback(self.invite_data)
end
else
if self.invite_data and self.invite_data.reject_callback then
self.invite_data.reject_callback(self.invite_data)
end
end
self:ClearAutoCloseTimer()
self:CloseCallBack()
end
end
self.auto_close_func_id = GlobalTimerQuest:AddPeriodQuest(auto_close_func, 0.3, -1)
end
function CommonAlertInviteTipView:ClearAutoCloseTimer( )
if self.auto_close_func_id then
GlobalTimerQuest:CancelQuest(self.auto_close_func_id)
self.auto_close_func_id = nil
end
end
function CommonAlertInviteTipView:SwitchTab( index )
end
function CommonAlertInviteTipView:DestroySuccess( )
if self.vip_item then
self.vip_item:DeleteMe()
self.vip_item = nil
end
self:ClearAutoCloseTimer( )
end