源战役客户端
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 

169 righe
4.6 KiB

GuideWelcomeView = GuideWelcomeView or BaseClass(BaseView)
local GuideWelcomeView = GuideWelcomeView
function GuideWelcomeView:__init()
self.base_file = "guide"
self.layout_file = "GuideWelcomeView"
self.layer_name = "Top"
self.destroy_imm = true
self.use_background = true
self.change_scene_close = true
self.append_to_ctl_queue = false --是否要添加进界面堆栈
self.need_show_money = false --是否要显示顶部的金钱栏
self.hide_maincancas = true
-- self.hide_maincancas = true
-- self.click_bg_toClose = true
self.award_list = {}
self.load_callback = function ()
self:LoadSuccess()
self:AddEvent()
end
self.open_callback = function ( )
self:OpenSuccess()
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
function GuideWelcomeView:Open(chapter_id)
self.chapter_id = chapter_id or 1
BaseView.Open(self)
end
function GuideWelcomeView:Close( )
GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK, true)
BaseView.Close(self)
end
function GuideWelcomeView:LoadSuccess()
self.icon_obj = self:GetChild("icon").gameObject
self.icon_img = self:GetChild("icon"):GetComponent("Image")
self.time_text = self:GetChild("time"):GetComponent("Text")
self.cont = self:GetChild("cont")
self:UpdateAward()
end
function GuideWelcomeView:AddEvent()
local function on_btn_click( )
self:CancelTimer()
self:PlayAnimal()
end
AddClickEvent(self.icon_obj, on_btn_click)
end
function GuideWelcomeView:OpenSuccess()
GlobalEventSystem:Fire(EventName.STOP_AUTO_DO_TASK)
GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT)
self:UpdateTimer()
end
function GuideWelcomeView:UpdateTimer( )
local left_time = 10
local function on_timer( )
local str = HtmlColorTxt(left_time, "#ffc658") .. " 秒后自动发车"
self.time_text.text = str
left_time = left_time -1
if left_time <= 0 then
self:CancelTimer()
self:PlayAnimal()
return
end
end
on_timer()
if not self.count_down_timer then
self.count_down_timer = GlobalTimerQuest:AddPeriodQuest(on_timer, 1, -1)
end
end
function GuideWelcomeView:CancelTimer( )
if self.count_down_timer then
GlobalTimerQuest:CancelQuest(self.count_down_timer)
self.count_down_timer = nil
end
end
function GuideWelcomeView:UpdateAward( )
local chapter_id = self.chapter_id or 1
lua_resM:setOutsideImageSprite(self, self.icon_img, GameResPath.GetViewBigBg("guide_welcome_view_".. chapter_id), false)
local awards = self:GetChapterAwardsCfg(chapter_id)
if IsTableEmpty(awards) then
return
end
for i=1,3 do
local award = awards[i] or {}
local item = self.award_list[i]
if not item then
item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.cont)
self.award_list[i] = item
end
item:SetItemSize(84, 84)
item:SetPosition((i-1)*94, 0)
item:SetVisible(true)
local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(award[2], award[3])
item:SetData(typeId, award[4], nil, nil, lock)
end
end
function GuideWelcomeView:GetChapterAwardsCfg( chapter_id )
if not chapter_id then
return {}
end
self.chapter_award_cfg = self.chapter_award_cfg or {}
if self.chapter_award_cfg[chapter_id] then
return self.chapter_award_cfg[chapter_id]
end
local career = RoleManager.Instance.mainRoleInfo.career
if career == 0 then
return {}
end
local chapter_cfg = Config.Chapter[chapter_id]
if not chapter_cfg then
return {}
end
local temp_cfg = stringtotable(chapter_cfg.awards)
local temp_awards = {}
for i,v in ipairs(temp_cfg) do
if v[1] and (v[1] == 0 or v[1] == career) then
table.insert(temp_awards, v)
end
end
self.chapter_award_cfg[chapter_id] = temp_awards
return temp_awards
end
function GuideWelcomeView:PlayAnimal( )
do self:Close() return end
local function end_func( )
self:Close()
end
local target_pos = MainUIController.Instance:GetChapterAwardPos( )
-- if self.chapter_id <= 3 then
-- target_pos = Vector3(-ScreenWidth/2+ClientConfig.iphone_x_offset_right+2+16.84+50, ScreenHeight/2-50-76-128.3-88, 0)
-- else
-- target_pos = Vector3(-ScreenWidth/2+ClientConfig.iphone_x_offset_right+2+16.84+50, creenHeight/2-50-76-128.3-88, 0)
-- end
if IsTableEmpty(target_pos) then
end_func()
return
end
local time = 0.8
local target_scale = Vector3(0.7, 0.7, 0.7)
TweenLite.to(self, self.cont, TweenLite.UiAnimationType.POS, target_pos, time, end_func)
TweenLite.to(self, self.cont, TweenLite.UiAnimationType.SCALE, target_scale, time)
end
function GuideWelcomeView:DestroySuccess( )
self:CancelTimer()
for i,item in pairs(self.award_list) do
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, item)
end
self.award_list = {}
end