123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- ---@class KLDragonSoulComboPanel:UIKmlLuaPanelBase
- ---@field view KLDragonSoulComboPanelView
- local KLDragonSoulComboPanel = class(UIKmlLuaPanelBase)
- local this =KLDragonSoulComboPanel
- function this:AsyncLoadUI()
- end
- ---创建时调用一次
- function this:Init()
- GUI:DataListInitData(self.view.datalist_cost, function()
- return #self.itemCostList
- end, function()
-
- end, function()
-
- end, function(realIndex)
- local item_cost = GUI:GetChildControl(self.view.datalist_cost,realIndex,'item_cost')
- local text_cost = GUI:GetChildControl(self.view.datalist_cost,realIndex,'text_cost')
- local text_name = GUI:GetChildControl(self.view.datalist_cost,realIndex,'text_name')
- local btn_add = GUI:GetChildControl(self.view.datalist_cost,realIndex,'btn_add')
- local info = self.itemCostList[realIndex + 1]
- GUI:Item_setItemId(item_cost, info.id)
- local count = SL:GetBagItemCount(info.id)
- if count < info.cost then
- GUI:Text_setString(text_cost, "<color=#FF2323>" .. count .. "</color>/" .. info.cost)
- self.canUpgrade = false
- else
- GUI:Text_setString(text_cost, "<color=#1ADD1F>" .. count .. "</color>/" .. info.cost)
- end
- ---@type cfg_item_column
- local item = SL:GetConfig("cfg_item", info.id)
- GUI:Text_setString(text_name, item.name)
-
- GUI:AddOnClickEvent(item_cost, self, self.ItemCostTipsClick, info.id)
- GUI:AddOnClickEvent(btn_add, self, self.ItemCostGetClick, info.id)
- end)
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- GUI:AddOnClickEvent(self.view.btn_close, self, self.CloseSelf)
- GUI:AddOnClickEvent(self.view.btn_upgrade, self, self.UpgradeSkill)
- GUI:AddOnClickEvent(self.view.btn_max,self,self.ShowMaxEffect)
- GUI:AddOnClickEvent(self.view.btn_back,self,self.ShowNowEffect)
-
- SL:RegisterLuaNetMsg(MessageDef.ResComboSkillInfoMessage, self.ResComboSkillInfoMessage, self)
- end
- ---界面显示时调用一次
- function this:Show()
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- SL.HideMainPanel()
- self.job = SL:GetMetaValue(EMetaVarGetKey.JOB)
- self.comboInfo = SL:GetMetaValue(EMetaVarGetKey.GET_COMBO_SKILL)
- self.comboTbl = {}
- ---@type cfg_skill_info_column[]
- local cfg_skill_info = SL:GetConfigTable("cfg_skill_info")
- local skill_str = SL:GetConfig("cfg_global", 1501).value
- local skillTbl = string.split(skill_str, '|') --1#1030001#1#0|2#1030002#1#0|3#1030003#1#0
- for i, v in pairs(skillTbl) do
- local tbl = string.split(v, '#')
- if tonumber(tbl[1]) == self.job then
- self.comboSkillCfgId = tonumber(tbl[2])
- break
- end
- end
- self.maxLevel = 0
- for _, v in pairs(cfg_skill_info) do
- if v.skillID == self.comboSkillCfgId then
- self.comboTbl[v.skillLevel] = v
- if v.skillLevel > self.maxLevel then
- self.maxLevel = v.skillLevel
- end
- end
- end
- self:RefreshUI()
- end
- function this:RefreshUI()
- ---刷新界面角色素模
- local modelTbl = SL:GetConfig("cfg_model_default", self.job)
- local role_param = { "body", "head", "armor", "hand", "pants", "boot" }
- local modelStr
- for _, v in pairs(role_param) do
- if modelStr then
- modelStr = modelStr .. "#" .. modelTbl[v]
- else
- modelStr = modelTbl[v]
- end
- end
- local info, info_next
- if next(self.comboInfo) then
- ---激活
- ---@type cfg_skill_info_column
- info = self.comboTbl[self.comboInfo.skillLv]
- ---@type cfg_skill_info_column
- info_next = self.comboTbl[self.comboInfo.skillLv + 1]
- else
- ---未激活
- info_next = self.comboTbl[1]
- end
-
- if not info_next then
- ---当前满级
- GUI:setVisible(self.view.panel_upgrade, false)
- GUI:setVisible(self.view.panel_max, true)
- GUI:Text_setString(self.view.text_max_detail, info.tips)
- GUI:SetPlayerRoleInfo(self.view.role_max, modelStr)
- GUI:Effect_setEffectId(self.view.role_effect_max, info.haloEffect)
- else
- if not info then
- ---当前未激活
- GUI:setVisible(self.view.img_left_active, false)
- GUI:setVisible(self.view.img_left_unActive, true)
- local text = SL:GetConfig("cfg_rule_text", 14).location
- GUI:Text_setString(self.view.text_left_detail, text)
- GUI:Button_setTitleText(self.view.btn_upgrade, "激活")
- else
- ---当前未满级
- GUI:setVisible(self.view.img_left_active, true)
- GUI:setVisible(self.view.img_left_unActive, false)
- GUI:Text_setString(self.view.text_left_lv, tostring(info.skillLevel))
- GUI:Text_setString(self.view.text_left_detail, info.tips)
- GUI:Button_setTitleText(self.view.btn_upgrade, "升级")
- end
- GUI:setVisible(self.view.panel_upgrade, true)
- GUI:setVisible(self.view.panel_max, false)
- GUI:Text_setString(self.view.text_right_lv, tostring(info_next.skillLevel))
- GUI:Text_setString(self.view.text_right_detail, info_next.tips)
- ---刷新消耗
- self.canUpgrade = true
- self.itemCostList = {}
- ---刷新升级材料
- for i, v in ipairs(info_next.skillLevelUpItemID) do
- self.itemCostList[#self.itemCostList + 1] = { ["id"] = v[1], ["cost"] = v[2] }
- end
- GUI:DataListUpdateData(self.view.datalist_cost)
- GUI:SetPlayerRoleInfo(self.view.role, modelStr)
- if info then
- GUI:Effect_setEffectId(self.view.role_effect, info.haloEffect)
- end
- GUI:setVisible(self.view.btn_max, true)
- GUI:setVisible(self.view.btn_back, false)
- end
- end
- function this:UpgradeSkill()
- if self.canUpgrade then
- if not self.delayUpgrade then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_COMBO_SKILL_UP)
- self.delayUpgrade = true
- SL:ScheduleOnce(1, function()
- self.delayUpgrade = false
- end)
- end
- else
- SL:TipMessage( SL:GetConfig('cfg_string', 463).text, 1, NoticeType.NoticeMid ) --道具不足,请补充道具!
- end
- end
- function this:ItemCostTipsClick(_, eventData)
- SL:OpenTips(nil, eventData)
- end
- function this:ItemCostGetClick(_, eventData)
- SL:CommonItemGetPath(nil, eventData, nil, nil, self)
- end
- function this:ShowMaxEffect()
- GUI:setVisible(self.view.btn_max, false)
- GUI:setVisible(self.view.btn_back, true)
- GUI:Effect_setEffectId(self.view.role_effect, self.comboTbl[self.maxLevel].haloEffect)
-
- end
- function this:ShowNowEffect()
- GUI:setVisible(self.view.btn_max, true)
- GUI:setVisible(self.view.btn_back, false)
- if self.comboInfo.skillLv then
- GUI:Effect_setEffectId(self.view.role_effect, self.comboTbl[self.comboInfo.skillLv].haloEffect)
- else
- GUI:Effect_setEffectId(self.view.role_effect, 0)
- end
- end
- ---连击技能升级返回
- function this:ResComboSkillInfoMessage(_, message)
- self.comboInfo = message
- self:RefreshUI()
- SL:SetMetaValue(EMetaVarSetKey.COMBOSKILL_CHANGE, self.comboInfo.skillCfgId, self.comboInfo.skillLv)
- GUI:SetActive(self.view.strength_ok, false)
- GUI:SetActive(self.view.strength_ok, true)
- end
- function this:CloseSelf()
- GUI:UIPanel_Close("dev/outui/DragonSoulCombo/Panel/KLDragonSoulCombo/KLDragonSoulComboPanel")
- --GUI:UIPanel_Open("dev/outui/DragonSoulCombo/Panel/KLDragonSoulCombo/KLDragonSoulComboPanel")
- end
- function this:Close()
- self.delayUpgrade = false
- SL.ShowMainPanel()
- end
- return this
|