|
|
- --冲级礼包领取列表
- FuliLimitPackageRewardView = FuliLimitPackageRewardView or BaseClass(BaseView)
- local FuliLimitPackageRewardView = FuliLimitPackageRewardView
- function FuliLimitPackageRewardView:__init()
- self.base_file = "fuli"
- self.layout_file = "FuliLimitPackageRewardView"
- self.layer_name = "Activity"
- --self.use_local_view = true
- self.click_bg_toClose = true
- self.destroy_imm = true
- self.use_background = true
- self.is_set_zdepth = true
- self.close_mode = CloseMode.CloseDestroy
- self.model = FuliModel:getInstance()
- self.mainVo = RoleManager.Instance.mainRoleInfo
- self.no = false
-
- self.item_list_one = {}
- self.item_list_two = {}
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvents()
- end
-
- self.open_callback = function ()
- GlobalEventSystem:Fire(SceneEventType.CLOSE_DIALOGUE_VIEW)
- GlobalEventSystem:Fire(EventName.STOP_AUTO_DO_TASK)
- GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT)
- self:SetData()
- end
-
- self.close_callback = function ()
-
- end
-
- self.destroy_callback = function ()
- self:DestroySuccess()
- end
-
- self.ReOpen_callback = function ()
- self:SetData()
- end
- end
-
- function FuliLimitPackageRewardView:Open(no)
- self.no = no
- BaseView.Open(self)
- end
-
- function FuliLimitPackageRewardView:DestroySuccess()
- self:ClearUIEffect(self.effect_forever)
- self:ClearUIEffect(self.effect)
- if self.slow_effect_id then
- GlobalTimerQuest:CancelQuest(self.slow_effect_id)
- self.slow_effect_id = nil
- end
-
- self:StopPlayTimer()
- self:ClearRewardShow()
-
- if self.timer_countdown then
- TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_countdown)
- self.timer_countdown = nil
- end
- GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK)
- GlobalEventSystem:Fire(EventName.START_AUTO_DO_TASK)
- end
-
- function FuliLimitPackageRewardView:LoadSuccess()
- local nodes = {
- "center/mask_bg:obj",
- "center/bg:raw",
- "center/titlebg:img",
- "center/tips:txt",
- "center/effect_forever",
- "center/effect",
- "center/item_scroll_one:obj",
- "center/item_scroll_one/Viewport/item_con_one",
- "center/next_img/next_text:txt",
- "center/line:obj",
- "center/item_scroll_two:obj",
- "center/item_scroll_two/Viewport/item_con_two",
- "center/cur_img:obj",
- "center/next_img:obj",
- "center/ok_btn:obj",
- "icon_cont:obj",
- "center:obj"
- }
- self:GetChildren(nodes)
-
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("com_award_result_view_bg"),false)
- lua_resM:setOutsideImageSprite(self, self.titlebg_img, GameResPath.GetCommonImage("com_award_result_view_bg"),false)
-
- local function onDelay()
- local function end_call_func( ... )
- if self.effect_forever then
- self:AddUIEffect("getgoods_02",self.effect_forever, self.layer_name, nil, 1, true,nil,nil,nil)
- end
- end
- self:AddUIEffect("getgoods_01",self.effect, self.layer_name, nil, 1, false,nil,nil,end_call_func)
- end
- self.slow_effect_id = GlobalTimerQuest:AddDelayQuest(onDelay, 0.1)
- self.tips_txt.text = ""
- end
-
- function FuliLimitPackageRewardView:CheckLeftTime()
- if self.timer_countdown then
- TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_countdown)
- self.timer_countdown = nil
- end
- local leftTime = 10
- local function timer_func()
- leftTime = leftTime - 1
- if leftTime <= 0 then
- self:Continue()
- else
- self.tips_txt.text = string.format("%s 秒后自动关闭界面", HtmlColorTxt( leftTime, "#0CE148") )
- end
- end
- self.timer_countdown = TimerQuest.AddPeriodQuest(GlobalTimerQuest, timer_func, 1)
- timer_func()
- end
-
- function FuliLimitPackageRewardView:AddEvents()
- local function click_func(target)
- if target == self.mask_bg_obj then
- self:Continue()
- elseif target == self.ok_btn_obj then
- self:Continue()
- end
- end
- AddClickEvent(self.mask_bg_obj, click_func)
- AddClickEvent(self.ok_btn_obj, click_func)
- end
-
- function FuliLimitPackageRewardView:SetData()
- if not self.no then
- self:Close()
- return
- end
- self.cfg = DeepCopy(self.model:GetFuliLevelCFG(self.mainVo.career))
- if not self.cfg[self.no] then
- self:Close()
- return
- end
-
-
- local list_one = self.cfg[self.no].award_limit_list or self.cfg[self.no].award_list
- if #list_one > 0 then
- for i,v in ipairs(list_one) do
- local item = self.item_list_one[i]
- if item == nil then
- item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con_one)
- self.item_list_one[i] = item
- end
- if v.is_limit then
- item:SetNumLimitVisible( true, 4 )
- item:SetData(v[2], 1, nil, nil)
- else
- item:SetNumLimitVisible( false )
- item:SetData(v[2], v[3], nil, nil)
- end
- item:SetItemSize(84, 84)
- item:SetVisible(true)
- item:SetAnchoredPosition((i - 1) * 95 + 8,-8)
- end
- end
- SetSizeDeltaX(self.item_con_one, 95 * #list_one)
-
- if self.no + 1 > #self.cfg then
- self.item_scroll_two_obj:SetActive(false)
- self.next_img_obj:SetActive(false)
- self.line_obj:SetActive(false)
- self.ok_btn_obj:SetActive(false)
- SetAnchoredPositionY(self.item_scroll_one, -40)
- SetAnchoredPositionY(self.cur_img, -38)
-
- else
- local list_two = self.cfg[self.no + 1].award_limit_list or self.cfg[self.no + 1].award_list
- if #list_two > 0 then
- for i,v in ipairs(list_two) do
- local item = self.item_list_two[i]
- if item == nil then
- item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con_two)
- self.item_list_two[i] = item
- end
- if v.is_limit then
- item:SetNumLimitVisible( true, 4 )
- item:SetData(v[2], 1, nil, nil)
- else
- item:SetNumLimitVisible( false )
- item:SetData(v[2], v[3], nil, nil)
- end
- item:SetItemSize(84, 84)
- item:SetVisible(true)
- item:SetAnchoredPosition((i - 1) * 95 + 8,-8)
- end
- end
- SetSizeDeltaX(self.item_con_two, 95 * #list_two)
-
- self.item_scroll_two_obj:SetActive(true)
- self.next_img_obj:SetActive(true)
- self.line_obj:SetActive(true)
- self.ok_btn_obj:SetActive(true)
- SetAnchoredPositionY(self.item_scroll_one, 40)
- SetAnchoredPositionY(self.cur_img, 42)
-
- self.next_text_txt.text = tostring(self.cfg[self.no + 1].level)
- end
- self:CheckLeftTime()
- end
-
-
- function FuliLimitPackageRewardView:UpdateItemList( )
-
- end
-
-
- function FuliLimitPackageRewardView:StopPlayTimer()
- if self.award_timer_id then
- GlobalTimerQuest:CancelQuest(self.award_timer_id)
- self.award_timer_id = nil
- end
- end
-
- --删除奖励
- function FuliLimitPackageRewardView:ClearRewardShow()
- for i,item in pairs(self.item_list_one) do
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, item)
- end
- self.item_list_one = {}
-
- for i,item in pairs(self.item_list_two) do
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, item)
- end
- self.item_list_two = {}
- end
-
- function FuliLimitPackageRewardView:InitActoin()
- self.image_obj = UiFactory.createChild(self.icon_cont, UIType.ImageExtend)
- self.image_icon = self.image_obj:GetComponent("ImageExtend")
- SetLocalPosition(self.image_obj.transform, 0, 0, 0)
- lua_resM:setImageSprite(self, self.image_icon, "activityIcon_asset", "icon_jl_1", true)
- self.image_obj.transform.sizeDelta = Vector2(60, 60)
- end
-
- --动画开始
- function FuliLimitPackageRewardView:PlayAction( )
- local callback = function()
- self:Close()
- end
- local pos = ActivityIconManager:getInstance():GetActivityIconPos(16000)
- if pos and self.image_obj then
- self.center_obj:SetActive(false)
- self.icon_cont_obj:SetActive(true)
- self.tween_id = TweenLite.to(self, self.image_obj.transform, TweenLite.UiAnimationType.POS, pos, 0.8, callback)
- else
- callback()
- end
- end
-
- function FuliLimitPackageRewardView:Continue()
- self:InitActoin()
- self:PlayAction()
- end
|