| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699 |
- local UISkillSettingsCtr = class("UISkillSettingsCtr", require("UICtrBase"))
- local Last_Select_SkillId_Key = 'Last_Select_SkillId_Key'
- function UISkillSettingsCtr:Init(view)
- self.view = view
- end
- ---@param data integer 英雄ID
- function UISkillSettingsCtr:SetData(data)
- self.asyncIdx = 0
- self.data = data
- self:DisposeOwnedHeros()
- self:InitOwnedHeros()
- self:DisposeSkillData()
- self:InitSkillData()
- self:DisposeSlotData()
- self:InitSlotData()
- self:InitSkillEquipData()
- end
- function UISkillSettingsCtr:GetAsyncIdx()
- self.asyncIdx = self.asyncIdx + 1
- return self.asyncIdx
- end
- function UISkillSettingsCtr:GetData()
- return self.data
- end
- function UISkillSettingsCtr:OnDispose()
- self:DisposeOwnedHeros()
- self:DisposeSkillData()
- self:DisposeSlotData()
- self:DisposeSkillEquipData()
- self.data = nil
- self.view = nil
- end
- function UISkillSettingsCtr:ChangeHero(next)
- local num = #self.heroIds
- local newHeroId = nil
- for i = 1, num do
- if self.heroIds[i] == self.heroId then
- if next then
- newHeroId = self.heroIds[i + 1]
- else
- newHeroId = self.heroIds[i - 1]
- end
- break
- end
- end
- if not newHeroId then
- if next then
- newHeroId = self.heroIds[1]
- else
- newHeroId = self.heroIds[num]
- end
- end
- if newHeroId then
- self.heroId = newHeroId
- self:DisposeSkillData()
- self:InitSkillData()
- self:DisposeSlotData()
- self:InitSlotData()
- self:InitSkillEquipData()
- return true
- end
- return false
- end
- function UISkillSettingsCtr:GetHeroVaildNum()
- return #self.heroIds
- end
- function UISkillSettingsCtr:GetHeroId()
- return self.heroId
- end
- function UISkillSettingsCtr:GetHeroData()
- return ManagerContainer.DataMgr.UserData:GetHeroData(self:GetHeroId())
- end
- function UISkillSettingsCtr:GetHeroCfgData()
- local heroId = self:GetHeroId()
- if self:IsLeaderHero(self:GetHeroId(heroId)) then
- local roleCfgId = ManagerContainer.DataMgr.UserData:GetUserRoleId()
- return ManagerContainer.CfgMgr:GetRoleDataById(roleCfgId)
- else
- local heroCfgId = ManagerContainer.DataMgr.PartnerData:GetHeroCfgId(heroId)
- return ManagerContainer.CfgMgr:GetPartnerDataById(heroCfgId)
- end
- end
- function UISkillSettingsCtr:GetHeroLv()
- return ManagerContainer.DataMgr.UserData:GetHeroLv(self:GetHeroId())
- end
- function UISkillSettingsCtr:GetCurMapAndLevel()
- local curMapId, curLevelId = ManagerContainer.LuaBattleMgr:GetCurMapAndLevel()
- return ManagerContainer.CfgMgr:GetLevelDataByMapAndLevel(curMapId, curLevelId)
- end
- function UISkillSettingsCtr:IsLeaderHero()
- return ManagerContainer.DataMgr.UserData:IsLeaderHero(self:GetHeroId())
- end
- function UISkillSettingsCtr:GetIsUnlock(skillId)
- local skillData = ManagerContainer.DataMgr.UserData:GetSkillData(self:GetHeroId())
- return skillData and skillData:GetIsUnlock(skillId) or false
- end
- function UISkillSettingsCtr:GetIsCanUnlock(skillId)
- local errorCode = self:GetActiveSkillErrorCode(skillId)
- return errorCode == 0 or errorCode == 139
- end
- function UISkillSettingsCtr:GetSkilllv(skillId)
- local skillData = ManagerContainer.DataMgr.UserData:GetSkillData(self:GetHeroId())
- return skillData and skillData:GetSkillLv(skillId) or 0
- end
- function UISkillSettingsCtr:GetSkillMaxLv(skillId)
- local skillTreeCfgData = self:GetSkillTreeCfgData(skillId)
- local UpGradeLevel = ManagerContainer.CfgMgr:GetSkillDemandCfgUpGradeLevelById(skillTreeCfgData.OpenLevel)
- local UpGradeCost = ManagerContainer.CfgMgr:GetSkillDemandCfgUpGradeCostById(skillTreeCfgData.OpenLevel)
- if skillTreeCfgData then
- local maxLv = skillTreeCfgData.MaxLv or 0
- local upgradeLevelNum = UpGradeLevel and (#UpGradeLevel + 1) or 0
- if maxLv > upgradeLevelNum then maxLv = upgradeLevelNum end
- local upgradeCostNum = UpGradeCost and (#UpGradeCost + 1) or 0
- if maxLv > upgradeCostNum then maxLv = upgradeCostNum end
- return maxLv
- end
- return 0
- end
- function UISkillSettingsCtr:GetSkillIsAtSlot(skillId)
- local skillData = ManagerContainer.DataMgr.UserData:GetSkillData(self:GetHeroId())
- return skillData and skillData:GetSkillIsAtSlot(skillId) or false
- end
- function UISkillSettingsCtr:GetUnlockSlotNum()
- local skillData = ManagerContainer.DataMgr.UserData:GetSkillData(self:GetHeroId())
- return skillData and skillData:GetUnlockSlotNum() or 0
- end
- function UISkillSettingsCtr:GetSkillTreeCfgData(skillId)
- local skillTreeCfgData = nil
- if self:IsLeaderHero() then
- skillTreeCfgData = ManagerContainer.CfgMgr:GetSkillTreeCfgById(skillId)
- else
- skillTreeCfgData = ManagerContainer.CfgMgr:GetParterSkillTreeCfgById(skillId)
- end
- return skillTreeCfgData
- end
- function UISkillSettingsCtr:GetOwnResCountByItemId(itemCfgId)
- return CommonUtil.GetOwnResCountByItemId(itemCfgId)
- end
- function UISkillSettingsCtr:GetActiveSkillErrorCode(skillId)
- local heroId = self:GetHeroId()
- return self:CheckSkillCanUnlock(heroId, skillId)
- end
- --获取激活技能的进阶错误码返回
- function UISkillSettingsCtr:GetActiveSkillAvanceErrorCode(skillId)
- local heroId = self:GetHeroId()
- return self:CheckSkillCanAvance(heroId, skillId)
- end
- function UISkillSettingsCtr:SendActiveSkill(skillId)
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_ACTIVE_SKILL_REQ, {hero_id = self:GetHeroId(), skill_id=skillId})
- end
- function UISkillSettingsCtr:GetUpgradeSkillErrorCode(skillId)
- local heroData = self:GetHeroData()
- return CommonUtil.CheckSkillCanLvUp(heroData, skillId)
- end
- function UISkillSettingsCtr:SendUpgradeSkill(skillId)
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_SKILL_LEVEL_UP_REQ, {hero_id = self:GetHeroId(), skill_id=skillId})
- end
- --- 检查技能是否能解锁
- ---@param heroId integer 英雄Id
- ---@param skillId integer 技能Id
- ---@return integer 0:能解锁;其它查看Error_Code文件
- function UISkillSettingsCtr:CheckSkillCanUnlock(heroId, skillId)
- local skillTreeCfgData = nil
- if ManagerContainer.DataMgr.UserData:IsLeaderHero(heroId) then
- skillTreeCfgData = ManagerContainer.CfgMgr:GetSkillTreeCfgById(skillId)
- else
- skillTreeCfgData = ManagerContainer.CfgMgr:GetParterSkillTreeCfgById(skillId)
- end
- if not skillTreeCfgData then
- return 133
- end
- local skillData = ManagerContainer.DataMgr.UserData:GetSkillData(heroId)
- if not skillData then
- return 133
- end
- if skillData:GetIsUnlock(skillId) then
- return 142
- end
- local openLevel = skillTreeCfgData.OpenLevel
- local openNeedCost = skillTreeCfgData.OpenNeedCost
- if openLevel and openLevel > 0 then
- if (ManagerContainer.DataMgr.UserData:GetHeroLv(heroId) < openLevel) then return 141 end
- end
- if openNeedCost then
- local openNeedCosts = nil
- if type(openNeedCost[1]) == 'number' then
- if #openNeedCost > 1 then
- openNeedCosts = {openNeedCost}
- end
- else
- openNeedCosts = openNeedCost
- end
- if openNeedCosts then
- for i = 1, #openNeedCosts do
- local itemCfgId = openNeedCosts[i][1]
- local itemNum = openNeedCosts[i][2]
- if CommonUtil.GetOwnResCountByItemId(itemCfgId) < itemNum then
- return 139, itemCfgId
- end
- end
- end
- end
- return 0
- end
- --------------------------------- 已有的影响列表 Start ----------------------------------
- function UISkillSettingsCtr:InitOwnedHeros()
- local partnerDatas = ManagerContainer.DataMgr.PartnerData:GetPartnerDatas()
- local sortedPartnerDatas = {}
- for _,v in pairs(partnerDatas) do
- if v.owned then
- sortedPartnerDatas[#sortedPartnerDatas + 1] = v
- end
- end
- table.sort(sortedPartnerDatas, function (a, b)
- return a.post < b.post
- end)
- local heroIds = {}
- heroIds[1] = ManagerContainer.DataMgr.UserData:GetId()
- for i = 1, #sortedPartnerDatas do
- heroIds[i + 1] = sortedPartnerDatas[i].id
- end
- self.heroIds = heroIds
- local vaildHeroId = nil
- for _, heroId in pairs(heroIds) do
- if self.data[1] == heroId then
- vaildHeroId = heroId
- end
- end
- if not vaildHeroId then
- vaildHeroId = self.heroIds[1]
- end
- if self.heroId == vaildHeroId then return false end
- self.heroId = vaildHeroId
- return true
- end
- function UISkillSettingsCtr:DisposeOwnedHeros()
- self.heroId = nil
- self.heroIds = nil
- end
- function UISkillSettingsCtr:RefreshOwnedHeros()
- self:DisposeOwnedHeros()
- if self:InitOwnedHeros() then
- self:DisposeSkillData()
- self:InitSkillData()
- self:DisposeSlotData()
- self:InitSlotData()
- self:InitSkillEquipData()
- return true
- end
- return false
- end
- --------------------------------- 已有的影响列表 End ----------------------------------
- --------------------------------- 技能列表 Start ----------------------------------
- function UISkillSettingsCtr:InitSkillData()
- self:ReadDefaultSelectSkillMap()
- self:RefreshSkillList(true)
- end
- function UISkillSettingsCtr:DisposeSkillData()
- self.skillList = nil
- self.selectSkillId = nil
- -- 默认选择的技能, 记录了上一次打开界面时选择的技能
- self.defaultSelectSkillMap = nil
- end
- function UISkillSettingsCtr:ReadDefaultSelectSkillMap()
- local valueStr = ManagerContainer.PlayerPrefsMgr:GetString(Last_Select_SkillId_Key, '')
- self.defaultSelectSkillMap = JSON:decode(valueStr)
- if not self.defaultSelectSkillMap then
- self.defaultSelectSkillMap = {}
- end
- end
- function UISkillSettingsCtr:WriteDefaultSelectSkillMap()
- local valueStr = JSON:encode(self.defaultSelectSkillMap)
- ManagerContainer.PlayerPrefsMgr:SetString(Last_Select_SkillId_Key, valueStr)
- end
- function UISkillSettingsCtr:RefreshSkillList(resetSelect)
- local skillList = {}
- local heroId = self:GetHeroId()
- local heroData = ManagerContainer.DataMgr.UserData:GetHeroData(heroId)
- local cfgId = heroData.configId
- if ManagerContainer.DataMgr.UserData:IsLeaderHero(heroId) then
- local curJobCfgData = ManagerContainer.CfgMgr:GetJobDataById(cfgId)
- if curJobCfgData then
- local jobs = ManagerContainer.CfgMgr:GetLastJobs(cfgId)
- table.insert(jobs, curJobCfgData)
- local jobNum = #jobs
- local job
- for i = 1, jobNum do
- job = jobs[i]
- local ls = ManagerContainer.CfgMgr:GetSkillTreeByFeature(job.JobType, job.JobBranch, job.JobStage)
- if ls then
- local len = #ls
- if len > 0 then
- for j = 1, len do
- local skilltreeData = self:IsAdvance(heroData,ls[j])
- table.insert(skillList, skilltreeData)
- end
- end
- end
- end
- end
- else
- local curJobCfgData = ManagerContainer.CfgMgr:GetPartnerDataById(cfgId)
- if curJobCfgData then
- local jobs = ManagerContainer.CfgMgr:GetParterLastJobs(cfgId)
- table.insert(jobs, curJobCfgData)
- local jobNum = #jobs
- local job
- for i = 1, jobNum do
- job = jobs[i]
- local ls = ManagerContainer.CfgMgr:GetParterSkillTreeByFeature(job.JobType, job.ParterId)
- if ls then
- local len = #ls
- if len > 0 then
- for j = 1, len do
- local skilltreeData = self:IsAdvance(heroData,ls[j])
- table.insert(skillList, skilltreeData)
- end
- end
- end
- end
- end
- end
- -- 排序
- table.sort(skillList, function(a, b)
- return a.Pos < b.Pos
- end)
- self.skillList = skillList
- if not resetSelect then return end
- local selectSkillId = nil
- if heroData and heroData.skillData then
- --神器标记跳转过来默认神器技能
- local artifactSkillId = self:GetDefaultSelectedSkillId()
- if artifactSkillId then
- selectSkillId = artifactSkillId
- else
- local validSlotNum = heroData.skillData:GetUnlockSlotNum()
- local lowerLv = nil
- local lv
- for i = 1, validSlotNum do
- local skillId = heroData.skillData:GetSlotSkillId(i)
- if CommonUtil.CheckSkillCanLvUp(heroData, skillId) == 0 then
- lv = heroData.skillData:GetSkillLv(skillId)
- if not lowerLv or lowerLv > lv then
- lowerLv = lv
- selectSkillId = skillId
- end
- end
- end
- end
- end
- if not selectSkillId then
- if self.defaultSelectSkillMap then
- selectSkillId = self.defaultSelectSkillMap[heroId]
- end
- end
- local vaildSelectSkillId = nil
- if selectSkillId then
- -- 是否技能还在
- for i = 1, #skillList do
- if selectSkillId == skillList[i].SkillId then
- vaildSelectSkillId = selectSkillId
- break
- end
- end
- end
- if vaildSelectSkillId then
- self.selectSkillId = vaildSelectSkillId
- else
- local skill = skillList[1]
- if skill then
- self.selectSkillId = skill.SkillId
- self.defaultSelectSkillMap[heroId] = self.selectSkillId
- self:WriteDefaultSelectSkillMap()
- end
- end
- end
- function UISkillSettingsCtr:IsAdvance(heroData,skilltreeData)
- if heroData and heroData.skillData then
- local skillId = skilltreeData.SkillId
- local unlockSkillMap = heroData.skillData:GetUnlockSkillMap()
- local cfgId = heroData.configId
- local curJobCfgData = ManagerContainer.CfgMgr:GetJobDataById(cfgId)
- if not curJobCfgData.JobBranch or curJobCfgData.JobBranch == 0 then
- return skilltreeData
- end
- local skilltreedata = skilltreeData
- while not unlockSkillMap[skillId] do
- local nextSkillIdList = skilltreedata.SuperSkill
- if nextSkillIdList then
- if #nextSkillIdList > 1 then
- skillId = nextSkillIdList[curJobCfgData.JobBranch][2]
- else
- skillId = nextSkillIdList[1][2]
- end
- skilltreedata = self:GetSkillTreeCfgData(skillId)
- if curJobCfgData.JobStage < skilltreedata.JobStage then
- break
- end
- if unlockSkillMap[skillId] then
- return skilltreedata
- end
- else
- break
- end
- end
- end
- return skilltreeData
- end
- function UISkillSettingsCtr:GetSelectSkillId()
- return self.selectSkillId
- end
- function UISkillSettingsCtr:SetSelectSkillId(skillId)
- if self.selectSkillId == skillId then
- return false
- end
- self.selectSkillId = skillId
- self.defaultSelectSkillMap[self:GetHeroId()] = skillId
- self:WriteDefaultSelectSkillMap()
- return true
- end
- function UISkillSettingsCtr:SetSkillList()
- return self.skillList
- end
- function UISkillSettingsCtr:GetSkillItemInfoByIndex(itemIndex)
- return self.skillList and self.skillList[itemIndex + 1] or nil
- end
- --获取当前技能列表是否有对应SKILLID数据
- function UISkillSettingsCtr:GetSkilldataByIndex(id)
- for i = 1, #self.skillList do
- if self.skillList[i].SkillId == id then
- return true
- end
- end
- return false
- end
- --------------------------------- 技能列表 End ----------------------------------
- ---------------------------------- 技能槽 Start -----------------------------------
- function UISkillSettingsCtr:GetSlotNum()
- return 4
- end
- function UISkillSettingsCtr:InitSlotData()
- local skillData = ManagerContainer.DataMgr.UserData:GetSkillData(self:GetHeroId())
- local slotIdxs = {}
- local slotSkillIds = {}
- local slotNum = self:GetSlotNum()
- for i = 1, slotNum do
- slotIdxs[i] = i
- slotSkillIds[i] = skillData:GetSlotSkillId(i)
- end
- self.slotIdxs = slotIdxs
- self.slotSkillIds = slotSkillIds
- end
- function UISkillSettingsCtr:DisposeSlotData()
- self.slotIdxs = nil
- self.slotSkillIds = nil
- end
- function UISkillSettingsCtr:UpdateSlotIdxs(newSlotIdxs)
- local slotNum = self:GetSlotNum()
- local slotIdxs = {}
- for i = 1, slotNum do
- slotIdxs[i] = newSlotIdxs[i]
- end
- self.slotIdxs = slotIdxs
- end
- function UISkillSettingsCtr:UpdateSlotSkills()
- local skillData = ManagerContainer.DataMgr.UserData:GetSkillData(self:GetHeroId())
- local slotNum = self:GetSlotNum()
- for i = 1, slotNum do
- self.slotSkillIds[self.slotIdxs[i]] = skillData:GetSlotSkillId(i)
- end
- end
- function UISkillSettingsCtr:GetSkillIdBySlotIdx(slotIdx)
- return self.slotSkillIds[slotIdx]
- end
- function UISkillSettingsCtr:GeSlotIdxById(id)
- return self.slotIdxs[id]
- end
- function UISkillSettingsCtr:GetSlotIdxByIdx(idx)
- local slotNum = self:GetSlotNum()
- for i = 1, slotNum do
- if self.slotIdxs[i] == idx then
- return i
- end
- end
- return nil
- end
- function UISkillSettingsCtr:GetSlotIsUnlock(idx)
- local skillData = ManagerContainer.DataMgr.UserData:GetSkillData(self:GetHeroId())
- return skillData and skillData:GetSlotIsUnlock(idx) or false
- end
- function UISkillSettingsCtr:GetSlotVaildSkillNum()
- local skillData = ManagerContainer.DataMgr.UserData:GetSkillData(self:GetHeroId())
- return skillData and skillData:GetSlotVaildSkillNum() or 0
- end
- function UISkillSettingsCtr:SendSlotSkillChange()
- local skillData = ManagerContainer.DataMgr.UserData:GetSkillData(self:GetHeroId())
- local slotNum = self:GetSlotNum()
- local newSkills = {}
- local isChanged = false
- for i = 1, slotNum do
- local itemIdx = self:GeSlotIdxById(i)
- local skillId = self:GetSkillIdBySlotIdx(itemIdx) or 0
- newSkills[i] = skillId
- if skillId ~= skillData:GetSlotSkillId(i) then
- isChanged = true
- end
- end
- if isChanged then
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_SET_SKILL_LIST_REQ, {hero_id = self:GetHeroId(), skill_list = newSkills})
- end
- end
- ---------------------------------- 技能槽 End -----------------------------------
- function UISkillSettingsCtr:SendChangeSkill(skillId, slotIdx)
- local heroId = self:GetHeroId()
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_REPLACE_SKILL_REQ, {hero_id = heroId, idx = slotIdx, skill_id = skillId})
- --后续添加到服务器回调
- ManagerContainer.LuaBattleMgr:SetTeamData(true,true)
- end
- --重置技能消息
- function UISkillSettingsCtr:SendResetSkillLv(type)
- local heroId = self:GetHeroId()
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_RESET_SKILL_LEVEL_REQ, {hero_id = heroId,is_advanced = type and type == 1 or false })
- end
- ------------------------------------- 神器标记 -----------------------------------------
- function UISkillSettingsCtr:GetDefaultSelectedSkillId()
- return self.data[2]
- end
- function UISkillSettingsCtr:InitSkillEquipData()
- local function IsTheJob(jobData, skillEquipCfgData)
- if not jobData then
- return false
- end
- return jobData.JobType == skillEquipCfgData.JobType and jobData.JobBranch == skillEquipCfgData.JobBranch and jobData.JobStage == skillEquipCfgData.JobStage
- end
- local heroId = self:GetHeroId()
- local heroData = CommonUtil.GetHeroLogicDataByUid(self:GetHeroId())
- local skillDataSlot = heroData.skillEquipSlot
- self.skillEquipData = (skillDataSlot and skillDataSlot.slotList) and skillDataSlot.slotList[1] or nil
- if self.skillEquipData then
- self.skillEquipCfgData = ManagerContainer.CfgMgr:GetArtifactCfgDataByCfgId(self.skillEquipData.cfgId)
- if self.skillEquipCfgData then
- local heroCfgId = heroData.configId
- local jobData
- if heroData then
- if heroId == 1 then
- jobData = ManagerContainer.CfgMgr:GetJobDataById(heroCfgId)
- else
- jobData = ManagerContainer.CfgMgr:GetPartnerDataById(heroCfgId)
- end
- end
- self.isCorrectJob = IsTheJob(jobData, self.skillEquipCfgData)
-
- local itemCfgData = ManagerContainer.CfgMgr:GetItemById(self.skillEquipData.cfgId)
- self.skillEquipIcon = itemCfgData.Icon
- end
- end
- end
- function UISkillSettingsCtr:GetSkillInSkillEquipDataState(skillId)
- if not self.skillEquipData or not self.skillEquipCfgData then return 0 end
- local heroId = self:GetHeroId()
- if not self.isCorrectJob then return 0 end
- local isUnlock = self:GetIsUnlock(skillId)
- if not isUnlock then return 0 end
- local function IsInBeforeSkill(id)
- local skillTreeCfgData = self:GetSkillTreeCfgData(id)
- if not skillTreeCfgData then return false end
- local lastSkillId = skillTreeCfgData.beforeSkill
- if lastSkillId ~= skillId then
- return IsInBeforeSkill(lastSkillId)
- else
- return true
- end
- end
- local idx = 0
- local isOld = false
- local isNew = false
- local effectSkills = self.skillEquipCfgData.ArtifacFuncId
- for i = 1, #effectSkills do
- local data = effectSkills[i]
- local oldSkillId = heroId == 1 and data[2] or data[3]
- isNew = oldSkillId == skillId
- if not isNew and oldSkillId and oldSkillId ~= skillId then
- isOld = IsInBeforeSkill(oldSkillId)
- end
- idx = i
-
- if isOld or isNew then
- break
- end
- end
- if not isOld and not isNew then return 0 end
- if isOld then return 1, idx end
- local isEquip = self:GetSkillIsAtSlot(skillId)
- if not isOld and isNew and not isEquip then return 1, idx end
- if not isOld and isNew and isEquip and idx > self.skillEquipData.starLv then return 1, idx end
- if not isOld and isNew and isEquip then return 2, idx end
- return 0
- end
- function UISkillSettingsCtr:GetCurSkillEquipData()
- return self.skillEquipData
- end
- function UISkillSettingsCtr:GetSkillEquipIcon()
- return self.skillEquipIcon
- end
- function UISkillSettingsCtr:DisposeSkillEquipData()
- self.skillEquipData = nil
- self.skillEquipCfgData = nil
- self.skillEquipIcon = nil
- end
- --------------------------------- 神器标记 End ---------------------------------
- return UISkillSettingsCtr
|