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