|
-- <*
|
|
-- @Author: Saber
|
|
-- @Description: 藏宝图:普通藏宝图奖励界面
|
|
-- *>
|
|
TreasureMapNormalRollView = TreasureMapNormalRollView or BaseClass(BaseView)
|
|
local TreasureMapNormalRollView = TreasureMapNormalRollView
|
|
|
|
function TreasureMapNormalRollView:__init()
|
|
self.base_file = "treasureMap"
|
|
self.layout_file = "TreasureMapNormalRollView"
|
|
self.layer_name = "Activity"
|
|
self.destroy_imm = true
|
|
self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置
|
|
self.hide_maincancas = false --全屏界面需要隐藏主UI
|
|
self.change_scene_close = true --是否切换场景时关闭(弹出界面使用)
|
|
self.append_to_ctl_queue = false --是否要添加进界面堆栈
|
|
self.model = TreasureMapModel:getInstance()
|
|
|
|
self.shine_time = 4
|
|
self.show_delay_end_time = 0.3
|
|
self.auto_close_time = 10 -- 几秒后自动关闭
|
|
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
end
|
|
self.open_callback = function ( )
|
|
self:UpdateView()
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
end
|
|
end
|
|
|
|
function TreasureMapNormalRollView:Open(reward_data)
|
|
self.reward_data = reward_data
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function TreasureMapNormalRollView:LoadSuccess()
|
|
local nodes = {
|
|
"bg:raw", "close_btn:obj",
|
|
"icon_con:cg",
|
|
"light:imgex",
|
|
"comfirm_btn:obj",
|
|
"auto_close:tmp",
|
|
}
|
|
self:GetChildren(nodes)
|
|
lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetTreasureMapImage("tm_nor_bg"))
|
|
|
|
self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.icon_con)
|
|
self.awardItem:SetItemSize(78, 78)
|
|
self.awardItem:SetAnchoredPosition(0, 0)
|
|
end
|
|
|
|
function TreasureMapNormalRollView:AddEvent()
|
|
local function click_event(target)
|
|
if target == self.close_btn_obj then -- 关闭按钮
|
|
self:Close()
|
|
elseif target == self.comfirm_btn_obj then -- 确认按钮
|
|
self:Close()
|
|
end
|
|
end
|
|
AddClickEvent(self.close_btn_obj, click_event)
|
|
AddClickEvent(self.comfirm_btn_obj, click_event)
|
|
end
|
|
|
|
function TreasureMapNormalRollView:UpdateView()
|
|
self:UpdateBasicData()
|
|
self:StartTreasureOpenAnim()
|
|
end
|
|
|
|
-- 加载基础数据
|
|
function TreasureMapNormalRollView:UpdateBasicData( )
|
|
local reward_cfg = Config.Treasuremaprewards[self.reward_data.reward_id]
|
|
local reward = reward_cfg and stringtotable(reward_cfg.rewards)[1] or {}
|
|
local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(reward[1] , reward[2])
|
|
self.awardItem:SetData(goods_Id, reward[3], nil, nil, lock)
|
|
end
|
|
|
|
-- 打开的宝箱做出动画表现
|
|
function TreasureMapNormalRollView:StartTreasureOpenAnim( )
|
|
self.is_animating = true
|
|
local show_delay_end = cc.DelayTime.New(self.show_delay_end_time)
|
|
-- 光束闪烁表现
|
|
local function action_light_show_alpha_func(percent)
|
|
self.light_imgex.alpha = percent
|
|
end
|
|
local function action_light_hide_alpha_func(percent)
|
|
self.light_imgex.alpha = 1 - percent
|
|
end
|
|
-- local total_shine_time = 0
|
|
local action_tb = {}
|
|
-- for k = 1, self.shine_time do
|
|
-- math.randomseed(os.time() + 2 * k)
|
|
-- local random_time = math.random(3, 15) * 0.01
|
|
-- action_tb[#action_tb+1] = cc.CustomUpdate.New(random_time, action_light_show_alpha_func)
|
|
-- total_shine_time = total_shine_time + random_time
|
|
-- math.randomseed(os.time() + 2 * k + 1)
|
|
-- random_time = math.random(3, 15) * 0.01
|
|
-- action_tb[#action_tb+1] = cc.CustomUpdate.New(random_time, action_light_hide_alpha_func)
|
|
-- total_shine_time = total_shine_time + random_time
|
|
-- end
|
|
action_tb[#action_tb+1] = show_delay_end
|
|
local action_shine_show_final = cc.CustomUpdate.New(0.5, action_light_show_alpha_func)
|
|
action_tb[#action_tb+1] = action_shine_show_final
|
|
local action_light = cc.Sequence.New(unpack(action_tb))
|
|
cc.ActionManager:getInstance():addAction(action_light, self.light)
|
|
-- 奖励淡出表现
|
|
local function icon_con_alpha_func(percent)
|
|
self.icon_con_cg.alpha = percent
|
|
end
|
|
local function animation_end_func() -- 动画结束之后,弹出倒计时和关闭按钮
|
|
self.is_animating = false
|
|
self.close_btn_obj:SetActive(true)
|
|
self.comfirm_btn_obj:SetActive(true)
|
|
self:StartAutoCloseTimer()
|
|
end
|
|
local action_icon_con_show = cc.CustomUpdate.New(0.5, icon_con_alpha_func)
|
|
-- local action_icon_con = cc.Sequence.New(cc.DelayTime.New(total_shine_time + self.show_delay_end_time),
|
|
-- action_icon_con_show, cc.CallFunc.New(animation_end_func))
|
|
local action_icon_con = cc.Sequence.New(show_delay_end, action_icon_con_show, cc.CallFunc.New(animation_end_func))
|
|
cc.ActionManager:getInstance():addAction(action_icon_con, self.icon_con)
|
|
end
|
|
|
|
-- 自动关闭倒计时
|
|
function TreasureMapNormalRollView:StartAutoCloseTimer( )
|
|
local end_time = TimeUtil:getServerTime() + self.auto_close_time
|
|
local function auto_close_time_func()
|
|
local left_time = end_time - TimeUtil:getServerTime()
|
|
if left_time > 0 then
|
|
self.auto_close_tmp.text = string.format("<color=%s>%s</color> 秒后自动关闭", ColorUtil.GREEN_DARK, left_time)
|
|
else
|
|
self:Close()
|
|
end
|
|
end
|
|
if not self.auto_close_time_func_id then
|
|
self.auto_close_time_func_id = GlobalTimerQuest:AddPeriodQuest(auto_close_time_func, 0.5, -1)
|
|
end
|
|
end
|
|
|
|
function TreasureMapNormalRollView:DestroySuccess( )
|
|
if self.awardItem then
|
|
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.awardItem)
|
|
self.awardItem = nil
|
|
end
|
|
if self.auto_close_time_func_id then
|
|
GlobalTimerQuest:CancelQuest(self.auto_close_time_func_id)
|
|
self.auto_close_time_func_id = nil
|
|
end
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.light)
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.icon_con)
|
|
self.model._check_tm_tips = TreasureMapConst.Normal
|
|
self.model:CheckTreasureTipUseViewOpen()
|
|
end
|