| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- local UIArtifactReforgeCtr = class("UIArtifactReforgeCtr", require("UICtrBase"))
- local reforgeStarCount = 5
- function UIArtifactReforgeCtr:Init(view)
- self.view = view
- end
- function UIArtifactReforgeCtr:SetData(data)
- reforgeStarCount = GlobalConfig.Instance:GetConfigIntValue(339)
- self.asyncIdx = 0
- if data == nil then return end
- self.data = data
- end
- function UIArtifactReforgeCtr:GetAsyncIdx()
- self.asyncIdx = self.asyncIdx + 1
- return self.asyncIdx
- end
- function UIArtifactReforgeCtr:GetData()
- return self.data
- end
- function UIArtifactReforgeCtr:RefrshShowDatas(idx)
- self.curSelectedIdx = nil
- if idx == 1 then
- self.showDatas = self:RefreshReforgeDatas()
- self.curSelectedIdx = nil
- elseif idx == 2 then
- self.showDatas = self:RefreshReforgeDatas()
- self.leftSelectedIdx = nil
- self.rightSelectedIdx = nil
- end
- self.showDataLength = self.showDatas and #self.showDatas or 0
- end
- function UIArtifactReforgeCtr:RefreshReforgeDatas()
- local datas = ManagerContainer.DataMgr.SkillEquipData:GetSkillEquips()
- local list = {}
- for i = 1, #datas do
- if datas[i].maxStarLv >= reforgeStarCount then
- list[#list + 1] = datas[i]
- datas[i].reforgeSelected = false
- datas[i].transSelected = false
- end
- end
- CommonUtil.ArraySortSelections(list, Enum.TableSortRule.Down, "quality", "starLv", "cfgId", "id")
- return list
- end
- function UIArtifactReforgeCtr:GetShowDataLength()
- return self.showDataLength
- end
- function UIArtifactReforgeCtr:GetShowData(idx)
- return self.showDatas and self.showDatas[idx + 1] or nil
- end
- function UIArtifactReforgeCtr:SetCurSelectedIdx(idx)
- local oldIdx
- if self.curSelectedIdx ~= idx then
- if self.curSelectedIdx then
- local oldData = self:GetShowData(self.curSelectedIdx - 1)
- if oldData then
- oldData.reforgeSelected = false
- oldIdx = self.curSelectedIdx
- end
- end
- self.curSelectedIdx = idx
- if idx then
- local data = self:GetShowData(idx - 1)
- if data then
- data.reforgeSelected = true
- end
- end
- else
- oldIdx = self.curSelectedIdx
- self.curSelectedIdx = nil
- end
- return oldIdx
- end
- function UIArtifactReforgeCtr:GetCurSelecteIdx()
- return self.curSelectedIdx
- end
- function UIArtifactReforgeCtr:SetTransSelected(idx)
- local function CheckTransError(leftIdx, rightIdx)
- if not leftIdx or not rightIdx then return 0 end
- local leftData = self:GetShowData(leftIdx - 1)
- local rightData = self:GetShowData(rightIdx - 1)
- if leftData.maxStarLv ~= rightData.maxStarLv then
- return 1
- elseif leftData.starLv == rightData.starLv then
- return 2
- elseif leftData.cfgId == rightData.cfgId then
- return 3
- else
- return 0
- end
- end
- local oldIdx, newIdx
- if self.leftSelectedIdx == idx then
- oldIdx = self.leftSelectedIdx
- if oldIdx then
- local oldData = self:GetShowData(oldIdx - 1)
- if oldData then
- oldData.transSelected = false
- end
- end
- self.leftSelectedIdx = nil
- return 0, oldIdx, newIdx
- elseif self.rightSelectedIdx == idx then
- oldIdx = self.rightSelectedIdx
- if oldIdx then
- local oldData = self:GetShowData(oldIdx - 1)
- if oldData then
- oldData.transSelected = false
- end
- end
- self.rightSelectedIdx = nil
- return 0, oldIdx, newIdx
- end
- if (self.leftSelectedIdx and self.leftSelectedIdx == idx) or not self.leftSelectedIdx then
- local checkCode = CheckTransError(idx, self.rightSelectedIdx)
- if checkCode > 0 then
- return checkCode
- end
- oldIdx = self.leftSelectedIdx
- if oldIdx then
- local oldData = self:GetShowData(oldIdx - 1)
- if oldData then
- oldData.transSelected = false
- end
- end
- if idx == oldIdx then idx = nil end
- if idx then
- local oldData = self:GetShowData(idx - 1)
- if oldData then
- oldData.transSelected = true
- end
- end
- self.leftSelectedIdx = idx
- return 0, oldIdx, newIdx
- end
- if (self.rightSelectedIdx and self.rightSelectedIdx == idx) or not self.rightSelectedIdx then
- local checkCode = CheckTransError(self.leftSelectedIdx, idx)
- if checkCode > 0 then
- return checkCode
- end
- oldIdx = self.rightSelectedIdx
- if oldIdx then
- local oldData = self:GetShowData(oldIdx - 1)
- if oldData then
- oldData.transSelected = false
- end
- end
- if idx == oldIdx then idx = nil end
- if idx then
- local oldData = self:GetShowData(idx - 1)
- if oldData then
- oldData.transSelected = true
- end
- end
- self.rightSelectedIdx = idx
- return 0, oldIdx, newIdx
- end
-
- if self.leftSelectedIdx ~= idx and self.rightSelectedIdx ~= idx then return 4 end
- end
- function UIArtifactReforgeCtr:GetTransSelectedIdx()
- return self.leftSelectedIdx, self.rightSelectedIdx
- end
- function UIArtifactReforgeCtr:ClearLeftTransSelectedIdx()
- if self.leftSelectedIdx then
- local oldData = self:GetShowData(self.leftSelectedIdx - 1)
- if oldData then
- oldData.transSelected = false
- end
- end
- self.leftSelectedIdx = nil
- end
- function UIArtifactReforgeCtr:ClearRightTransSelectedIdx()
- if self.rightSelectedIdx then
- local oldData = self:GetShowData(self.rightSelectedIdx - 1)
- if oldData then
- oldData.transSelected = false
- end
- end
- self.rightSelectedIdx = nil
- end
- function UIArtifactReforgeCtr:SendReforgeReq()
- local curIdx = self:GetCurSelecteIdx()
- if not curIdx then
- return
- end
- local skillEuipData = self:GetShowData(curIdx - 1)
- if skillEuipData then
- ManagerContainer.DataMgr.SkillEquipData:SendSkillEquipReforgeReq(skillEuipData.id)
- end
- end
- function UIArtifactReforgeCtr:SendTransReq()
- local leftData = self:GetShowData(self.leftSelectedIdx - 1)
- local rightData = self:GetShowData(self.rightSelectedIdx - 1)
- ManagerContainer.DataMgr.SkillEquipData:SendSkillEquipShiftReq(leftData.id, rightData.id)
- end
- function UIArtifactReforgeCtr:GetOldLeftAndRightData()
- local leftData = self:GetShowData(self.leftSelectedIdx - 1)
- local rightData = self:GetShowData(self.rightSelectedIdx - 1)
- return leftData, rightData
- end
- function UIArtifactReforgeCtr:OnDispose()
- if self.showDatas then
- for _,v in pairs(self.showDatas) do
- v.reforgeSelected = false
- v.transSelected = false
- end
- self.showDatas = nil
- end
- self.oldLeftData = nil
- self.oldRighttData = nil
- self.data = nil
- self.view = nil
- end
- return UIArtifactReforgeCtr
|