| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- local UIPartnerLvUpCtr = class("UIPartnerLvUpCtr", require("UICtrBase"))
- local canAdvence = false
- local isLeader = false
- function UIPartnerLvUpCtr:Init(view)
- self.view = view
- end
- function UIPartnerLvUpCtr:SetData(data)
- self.asyncIdx = 0
- if data == nil then return end
- self.data = data
- isLeader = data == 1
- end
- function UIPartnerLvUpCtr:GetAsyncIdx()
- self.asyncIdx = self.asyncIdx + 1
- return self.asyncIdx
- end
- function UIPartnerLvUpCtr:GetData()
- return self.data
- end
- function UIPartnerLvUpCtr:GetHeroLogicId()
- local logicData = self:GetHeroLogicData()
- return logicData.id
- end
- function UIPartnerLvUpCtr:PartnerLvUpReq(id)
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_HERO_LEVEL_UP_REQ, {hero_id = id})
- end
- function UIPartnerLvUpCtr:PartnerAdvenceLvUpReq(id)
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_HERO_ADVANCE_REQ, {hero_id = id})
- end
- function UIPartnerLvUpCtr:GetHeroLogicData()
- if isLeader then
- return ManagerContainer.DataMgr.UserData:GetHeroData()
- else
- return ManagerContainer.DataMgr.PartnerData:GetPartnerDataByUniqueId(self.data)
- end
- end
- function UIPartnerLvUpCtr:GetPartnerCurMaxLv()
- local logicData = self:GetHeroLogicData()
- local cfgData = ManagerContainer.CfgMgr:GetPartnerDataById(logicData.configId)
- local stepData = ManagerContainer.CfgMgr:GetParterProgressById(cfgData.ParterJob)
- if stepData == nil then
- canAdvence = false
- return logicData.baseLevel
- end
- local advenceMaxLv = logicData.advanceLevel < #stepData.AddLv and stepData.AddLv[logicData.advanceLevel + 1] or stepData.AddLv[#stepData.AddLv]
- local curMaxLv = logicData.strengthLevel == 0 and advenceMaxLv or (advenceMaxLv + stepData.BreachAddLv[logicData.strengthLevel])
- canAdvence = advenceMaxLv <= logicData.baseLevel and (logicData.advanceLevel + 1) < #stepData.AddLv
- if #stepData.AddLv <= (logicData.advanceLevel + 1) then
- advenceMaxLv = nil
- end
- return curMaxLv, advenceMaxLv
- end
- function UIPartnerLvUpCtr:CanAdvence()
- return canAdvence
- end
- function UIPartnerLvUpCtr:GetPartnerNextMaxLv()
- local logicData = self:GetHeroLogicData()
- local cfgData = ManagerContainer.CfgMgr:GetPartnerDataById(logicData.configId)
- local stepData = ManagerContainer.CfgMgr:GetParterProgressById(cfgData.ParterJob)
- return stepData.AddLv[logicData.advanceLevel + 2]
- end
- function UIPartnerLvUpCtr:GetPartmerLastMaxLv()
- local logicData = self:GetHeroLogicData()
- local cfgData = ManagerContainer.CfgMgr:GetPartnerDataById(logicData.configId)
- local stepData = ManagerContainer.CfgMgr:GetParterProgressById(cfgData.ParterJob)
- if logicData.advanceLevel - 1 == 0 then
- return logicData.strengthLevel == 0 and stepData.AddLv[1] or (stepData.AddLv[1] + stepData.BreachAddLv[logicData.strengthLevel])
- end
- local advenceMaxLv = logicData.advanceLevel < #stepData.AddLv and stepData.AddLv[logicData.advanceLevel] or stepData.AddLv[#stepData.AddLv]
- local maxLv = logicData.strengthLevel == 0 and advenceMaxLv or (advenceMaxLv + stepData.BreachAddLv[logicData.strengthLevel])
- return maxLv
- end
- function UIPartnerLvUpCtr:GetHeroStepData()
- local logicData = ManagerContainer.DataMgr.PartnerData:GetPartnerDataByUniqueId(self.data)
- local cfgData = ManagerContainer.CfgMgr:GetPartnerDataById(logicData.configId)
- return ManagerContainer.CfgMgr:GetParterProgressById(cfgData.ParterJob)
- end
- function UIPartnerLvUpCtr:OnDispose()
- self.data = nil
- self.view = nil
- end
- return UIPartnerLvUpCtr
|