miduo_client/Assets/ManagedResources/~Lua/Modules/Practice/CultivationPanel.lua

156 lines
6.4 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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