源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

119 lines
3.2 KiB

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