BufferTipsItem = BufferTipsItem or BaseClass(BaseItem) function BufferTipsItem:__init(parent_wnd) self.base_file = "autoFight" self.layout_file = "BufferTipsItem" self.data = nil self.model = AutoFightManager:getInstance() self:Load() end function BufferTipsItem:Load_callback() self.name = self:GetChild("name"):GetComponent(typeof(TMPro.TextMeshProUGUI)) self.leftTimeObj = self:GetChild("leftTime").gameObject self.leftTime = self:GetChild("leftTime"):GetComponent(typeof(TMPro.TextMeshProUGUI)) self.leftTime.text = "" self.desc = self:GetChild("desc"):GetComponent(typeof(TMPro.TextMeshProUGUI)) self.iconImg = self:GetChild("iconBg"):GetComponent("Image") self.line_obj = self:GetChild("line").gameObject if self.need_refreshData then self:SetData(self.data, self.is_end) end self:InitEvent() end function BufferTipsItem:InitEvent() end --1是VIP,2是永恒回复,3是经验药水,4是技能buff function BufferTipsItem:SetData(data, is_end) self.data = data self.is_end = is_end if self.is_loaded then self.need_refreshData = false if self.data == nil then return end self:UpdateBuffView() else self.need_refreshData = true end end function BufferTipsItem:UpdateBuffView() local cfg = Config.ConfigBuffIcon[self.data.id] if cfg then if self.data.style == 1 then local vip_level = RoleManager.Instance.mainRoleInfo.vip_flag local temp_cfg = cfg.level_info[vip_level] if temp_cfg then self.name.text = temp_cfg.name self.desc.text = ChuanWenManager:getInstance():FormatColorTag(temp_cfg.desc) end else self.name.text = cfg.name self.desc.text = ChuanWenManager:getInstance():FormatColorTag(cfg.desc) end lua_resM:setImageSprite(self, self.iconImg, "mainUI_asset", cfg.icon_id) --倒计时 if self.data.style == 3 then local left_time = self.data.end_time - TimeUtil:getServerTime() self:CreateBuffTimer(left_time) elseif self.data.style == 4 then local main_role = Scene.Instance.main_role if not main_role then return end local buff_manager = main_role.buff_manager if not buff_manager then return end local buff_list_vo = buff_manager:getBuffDic(self.data.buff_type) local buff_vo = buff_list_vo and buff_list_vo:GetBuffBySkillId(self.data.skill_id) local left_time = buff_vo and buff_vo:GetLeftTime() or 0 self:CreateBuffTimer(round(left_time)) end self.line_obj:SetActive(not self.is_end) end end function BufferTipsItem:GetAllHeight() return 96 end function BufferTipsItem:CancelTimer( ) if self.buff_timer_id then GlobalTimerQuest:CancelQuest(self.buff_timer_id) self.buff_timer_id = nil end end function BufferTipsItem:CreateBuffTimer(time) self:CancelTimer() local time = time or 0 if time > 0 then local function onTimer() time = time - 1 if time > 0 then self.leftTime.text = TimeUtil:qianggouTimeLeft2(tonumber(time)) else self.leftTime.text = "" self:CancelTimer() end end onTimer() self.buff_timer_id = GlobalTimerQuest:AddPeriodQuest(onTimer,1,-1) end end function BufferTipsItem:SetVisible(flag) BaseItem.SetVisible(self,flag) if not flag then self:CancelTimer() end end function BufferTipsItem:__delete() self:CancelTimer() end