源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

266 行
8.6 KiB

--冲级礼包领取列表
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