require("Base/BasePanel") local Cultivation = Inherit(BasePanel) local IMAGE = { [1] = "r_hero_jinengdian04", [2] = "r_hero_jinengdian02", [3] = "r_hero_jinengdian03", [4] = "r_hero_jinengdian01", } local propertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig) function Cultivation:InitComponent() self.spLoader = SpriteLoader.New() self.mask = Util.GetGameObject(self.gameObject,"Mask") self.backBtn = Util.GetGameObject(self.gameObject,"Frame/backBtn") self.helpBtn = Util.GetGameObject(self.gameObject,"Frame/helpBtn") self.grid = Util.GetGameObject(self.gameObject,"Frame/Grid") self.textPre = Util.GetGameObject(self.grid,"TextPre") self.textPre:SetActive(false) self.Tips = Util.GetGameObject(self.gameObject,"Frame/Tips"):GetComponent("Text") self.title = Util.GetGameObject(self.gameObject,"Frame/Bg/title/Text"):GetComponent("Text") self.Slide = Util.GetGameObject(self.gameObject,"Frame/Slide") self.level = Util.GetGameObject(self.Slide,"level"):GetComponent("Text") self.power = Util.GetGameObject(self.Slide,"powerBtn/value"):GetComponent("Text") self.value = Util.GetGameObject(self.Slide,"Text"):GetComponent("Text") self.fill = Util.GetGameObject(self.Slide,"fill") self.upGradeBtn = Util.GetGameObject(self.Slide,"Button") self.btnText = Util.GetGameObject(self.upGradeBtn,"Text"):GetComponent("Text") self.btnRed = Util.GetGameObject(self.upGradeBtn,"RedPoint") self.textPreList = {} self.changeList = {} end function Cultivation:BindEvent() --帮助按钮 Util.AddOnceClick(self.helpBtn, function() UIManager.OpenPanel(UIName.GeneralInfoPopup, GENERALINFO_TYPE.Cultivation) end) Util.AddOnceClick(self.mask, function() self:ClosePanel() end) Util.AddOnceClick(self.backBtn, function() self:ClosePanel() end) Util.AddOnceClick(self.upGradeBtn, function() if (self.curMaxPower-self.achivePower) < self.statePower then PopupTipPanel.ShowTip("战力不足无法升级!") return end if self.maxLevel <= PracticeManager.CultivationLevel then PopupTipPanel.ShowTip("等级已达上限!") return end NetManager.PlayerCultivationRequest(function (_level) local tempLevel = _level - self.lastLevel for i = 1, #self.changeList do self.changeList[i]:GetComponent("Text").text = string.format( " + %s",self.configData.ProLevel[i][2]*tempLevel) PlayUIAnim(self.changeList[i]) end NetManager.RequestUserForceChange(FormationTypeDef.FORMATION_NORMAL) local tempPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL) UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = self.lastPower,newValue = tempPower}) self.lastPower = tempPower self:OnShow() end) end) BindRedPointObject(RedPointType.Practice_Cultivation,self.btnRed) end function Cultivation:AddListener() end function Cultivation:RemoveListener() end function Cultivation:OnSortingOrderChange() end function Cultivation:OnOpen() end function Cultivation:OnShow() CheckRedPointStatus(RedPointType.Practice_Cultivation) --获取当前修行等级的表数据 FormationManager.UserPowerChanged() self.configData = PracticeManager.GetCurConfigData() --战力 self.curMaxPower = PlayerManager.maxForce self.lastLevel = PracticeManager.CultivationLevel--上次的等级 self.maxLevel,self.statePower,self.achivePower = PracticeManager.getDataOfCur() self.lastPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL) self.Tips.text = ConfigManager.GetConfigData(ConfigName.QAConfig,112).content self.title.text = string.format("最高战力每提升%s万可提升1级修为",self.statePower/10000) --设置四个属性 for i = 1, #self.configData.ProRank do local go = self.textPreList[i] if not go then go = newObjToParent(self.textPre,self.grid) go:SetActive(true) self.textPreList[i] = go end self:SetSingleData(go,self.configData.ProRank[i],self.configData.ProLevel[i],i) end --设置等级 self.level.text = string.format("%s级",PracticeManager.CultivationLevel) self.power.text = self.curMaxPower --数字 if self.maxLevel > PracticeManager.CultivationLevel then self.value.text = string.format("%s/%s",self.curMaxPower-self.achivePower,self.statePower) if self.curMaxPower-self.achivePower > self.statePower then self.fill:GetComponent("RectTransform").sizeDelta = Vector3.New(445,26,0) else local size = (self.curMaxPower-self.achivePower)/self.statePower self.fill:GetComponent("RectTransform").sizeDelta = Vector3.New(445*size,26,0) end self.btnText.text = "升 级" else self.value.text = string.format("") self.fill:GetComponent("RectTransform").sizeDelta = Vector3.New(445,26,0) self.btnText.text = "已达上限" end end --设置单个数据 function Cultivation:SetSingleData(_go,data1,_data2,_index) local proImg = Util.GetGameObject(_go,"Property"):GetComponent("Image") local proName = Util.GetGameObject(_go,"PropertyName"):GetComponent("Text") local Value = Util.GetGameObject(_go,"Value"):GetComponent("Text") local Calculate = Util.GetGameObject(_go,"Calculate"):GetComponent("Text") self.changeList[_index] = Util.GetGameObject(_go,"change") proImg.sprite = self.spLoader:LoadSprite(IMAGE[_index]) if PracticeManager.CultivationLevel == 0 then proName.text = string.format("%s:",propertyConfig[data1[1]].Info) Value.text = string.format("0") Calculate.text = string.format("") else proName.text = string.format("%s:",propertyConfig[data1[1]].Info) Value.text = string.format("%s",data1[2]+_data2[2]*PracticeManager.CultivationLevel) Calculate.text = string.format(" (%s + %s×%s)",data1[2],_data2[2],PracticeManager.CultivationLevel) end ForceRebuildLayout(_go.transform) end function Cultivation:OnClose() end function Cultivation:OnDestroy() self.spLoader:Destroy() self.textPreList = {} self.changeList = {} ClearRedPointObject(RedPointType.Practice_Cultivation,self.btnRed) end return Cultivation