| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- local UIArtifactStarUpCtr = class("UIArtifactStarUpCtr", require("UICtrBase"))
- function UIArtifactStarUpCtr:Init(view)
- self.view = view
- end
- function UIArtifactStarUpCtr:SetData(data)
- self.asyncIdx = 0
- if data == nil then return end
- self.data = data
- self.skillEquipData = data[1]
- self.heroId = data[2]
- self.selectedIds = {}
- end
- function UIArtifactStarUpCtr:GetAsyncIdx()
- self.asyncIdx = self.asyncIdx + 1
- return self.asyncIdx
- end
- function UIArtifactStarUpCtr:GetData()
- return self.data
- end
- function UIArtifactStarUpCtr:GetSkillEquipData()
- return self.data[1]
- end
- function UIArtifactStarUpCtr:GetHeroId()
- return self.data[2]
- end
- function UIArtifactStarUpCtr:GetHeroCfgId()
- return self.data[3]
- end
- function UIArtifactStarUpCtr:GetHeroNickname()
- return self.data[4]
- end
- function UIArtifactStarUpCtr:RefreshShowDatas()
- self.showDatas = self:RefreshStarUpCostSkillEquipDatas()
- local showDataLength = 0
- if self.showDatas then
- showDataLength = #self.showDatas
- if self.row and self.minColumn then
- local curColumn = Mathf.Ceil(showDataLength / self.row) + 2
- if curColumn < self.minColumn then
- curColumn = self.minColumn
- end
- showDataLength = curColumn * self.row
- end
- end
- self.showDataLength = showDataLength
- end
- local conditionCound = 0
- function UIArtifactStarUpCtr:RefreshStarUpCostSkillEquipDatas()
- conditionCound = 0
- local skillEquipData = self.skillEquipData
- local cfgData = ManagerContainer.CfgMgr:GetArtifactCfgDataByCfgId(skillEquipData.cfgId)
- if not cfgData then
- return
- end
- local starLv = skillEquipData.starLv
- if starLv >= skillEquipData.maxStarLv then
- return
- end
- local cost = cfgData.Condition[starLv + 1][1]
- conditionCound = cost[2]
- local skillEquipDatas = ManagerContainer.DataMgr.SkillEquipData:GetSkillEquips()
-
- if not skillEquipDatas or not next(skillEquipDatas) then return end
- local list = {}
- for _,v in pairs(skillEquipDatas) do
- if cost[1] == v.cfgId and v.starLv == 0 then
- list[#list + 1] = v
- end
- end
-
- CommonUtil.ArraySortSelections(list, Enum.TableSortRule.Down, "quality", "maxStarLv", "cfgId")
- return list
- end
- function UIArtifactStarUpCtr:SetGridRowColumn(row, minColumn)
- self.row = row
- self.minColumn = minColumn
- end
- function UIArtifactStarUpCtr:GetShowDataLength()
- return self.showDataLength or 0
- end
- function UIArtifactStarUpCtr:IsCostSkillEuipEnough()
- local count = #self.selectedIds
- return count >= conditionCound
- end
- function UIArtifactStarUpCtr:GetShowData(itemIndex)
- return self.showDatas and self.showDatas[itemIndex + 1] or nil
- end
- function UIArtifactStarUpCtr:ClearSelected()
- self.selectedIds = {}
- end
- function UIArtifactStarUpCtr:SelectSkillEquip(data)
- local oldId
- local result, idx = CommonUtil.EleInTable(data.id, self.selectedIds)
- if idx then
- data.selected = 0
- table.remove(self.selectedIds, idx)
- else
- if #self.selectedIds >= conditionCound then
- if conditionCound >= 2 then
- return
- elseif conditionCound == 1 then
- local oldData = ManagerContainer.DataMgr.SkillEquipData:GetSkillEquipDataByUid(self.selectedIds[1])
- if oldData then
- oldId = oldData.id
- oldData.selected = 0
- end
- table.remove(self.selectedIds, 1)
- end
- end
- data.selected = 1
- table.insert(self.selectedIds, data.id)
- end
- if oldId then
- for i = 1, #self.showDatas do
- if self.showDatas[i].id == oldId then
- return i
- end
- end
- end
- end
- function UIArtifactStarUpCtr:GetSelectedCostCount()
- return #self.selectedIds
- end
- function UIArtifactStarUpCtr:SendStarUpReq()
- ManagerContainer.DataMgr.SkillEquipData:SendSkillEquipStarUpReq(self.heroId, self.skillEquipData.id, self.selectedIds)
- end
- function UIArtifactStarUpCtr:OnDispose()
- if self.selectedIds then
- for i = 1, #self.selectedIds do
- local data = ManagerContainer.DataMgr.SkillEquipData:GetSkillEquipDataByUid(self.selectedIds[i])
- if data then
- data.selected = 0
- end
- end
- self.selectedIds = nil
- end
- self.data = nil
- self.view = nil
- end
- return UIArtifactStarUpCtr
|