123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- ---@class KLSkillBtnItem:UIKmlLuaPanelBase
- ---@field view KLSkillBtnItemView
- ---@field baseUI KLMainAttackPanel
- local KLSkillBtnItem = class(UIKmlLuaPanelBase)
- local this = KLSkillBtnItem
- ---创建时调用一次
- function this:Init()
- self.btnType=ESkillBtnType.NormalSkillBtn
-
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- end
- function this:UpdateUI(skillId)
- GUI:SetCirclebar_startper(self.view.Img_cdTime, 0)
- GUI:Text_setString(self.view.cdTime, "")
- GUI:SetActive(self.view.selectBg, LoginManager.selectSkillId and LoginManager.selectSkillId.value~=0 and LoginManager.selectSkillId.value==skillId)
- GUI:SetActive(self.view.indexText, self.index and self.index~=6)
- if self.index and self.index~=6 then
- self.view.indexText:SetText(tostring(self.index))
- else
- GUI:SetActive(self.view.selectBg,true)
- end
-
- self.skillId = skillId or 0
- local spriteName = ""
- if self.skillId > 0 then
- ---@type Skill
- local skill = SL:GetMetaValue(EMetaVarGetKey.SKILL_DATA, self.skillId)
- local skillLv = skill and skill.level or 1
- ---@type cfg_skill_info_column
- local tbl = SL:GetConfigMultiKeys('cfg_skill_info', self.skillId, skillLv, 'skillID', 'skillLevel')
- spriteName = string.isNullOrEmpty(tbl.icon) and "" or tbl.icon
- end
- GUI:Image_loadTexture(self.view.SkillIcon, spriteName, "Atlas/UIOutSkillIcon.spriteatlas")
- end
- function this:RefreshSelectBg()
- GUI:SetActive(self.view.selectBg, LoginManager.selectSkillId and LoginManager.selectSkillId.value==self.skillId or(self.btnType==ESkillBtnType.SelectSkillBtn) )
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- --GUI:AddOnTouchEvent(self.view.BtnSkill, self, self.OnTouchEvent)
- GUI:AddOnClickEvent(self.view.BtnSkill, self, self.BtnSkillOnClick)
- SL:RegisterLUAEvent(Event.Skill_CDing, self.OnSkillCDing, self)
- end
- ---@param skill Skill
- function this:OnSkillCDing(_, skill)
- if self.skillId ~= skill.skillId then return end
- self.remainCdTime = skill:LeftCDTime()
- if skill.curCDTime / 1000 ~= self.cdTime then
- self.cdTime = skill.curCDTime / 1000
- end
- if not self.cdTime then return end
- if self.remainCdTime / self.cdTime <= 0.05 then
- GUI:SetCirclebar_startper(self.view.Img_cdTime, 0)
- else
- local startper = self.remainCdTime/self.cdTime *100
- startper = math.floor(startper)
- GUI:SetCirclebar_startper(self.view.Img_cdTime, startper)
- GUI:SetCirclebar_time(self.view.Img_cdTime, self.remainCdTime)
- end
- end
- function this:BtnSkillOnClick()
- ---普通技能按钮
- if self.btnType==ESkillBtnType.NormalSkillBtn then
- ---空技能点击无反应
- if self.skillId == 0 then
- return
- end
- ---点击之后将右键技能设置为该技能
- LoginManager.selectSkillId:Set(self.skillId)
- ---抛出技能改变事件,用于刷新
- SL:onLUAEvent(LUA_EVENT_SelectSkill_Change)
-
- else
- ---选择技能按钮
- GUI:UIPanel_Open("dev/outui/Skill/Panel/KLSkillSelect/KLSkillSelectPanel")
- end
-
-
- end
- ---@param kmlCtrl UIKmlLuaControl
- ---@param eventType EUIEventName
- function this:OnTouchEvent(kmlCtrl, eventType, args)
- return self.baseUI:OnTouchEvent(kmlCtrl, eventType, args)
- end
- function this:Close()
- end
- return this
|