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

162 lines
7.2 KiB
Lua

local PracticeSkillInfoPanel = quick_class("PracticeSkillInfoPanel", BasePanel)
local SkillBaseConfig=ConfigManager.GetConfig(ConfigName.PlayerSkillBasicTable)
--按钮状态
local btnState=0
local costConfig
local skillId=0
local skillLv=0
local nextData
function PracticeSkillInfoPanel:InitComponent()
self.spLoader = SpriteLoader.New()
self.titleTxt=Util.GetGameObject(self.gameObject, "bg/title"):GetComponent("Text")
self.skillIcon=Util.GetGameObject(self.gameObject, "bg/skill/icon"):GetComponent("Image")
self.skillLv=Util.GetGameObject(self.gameObject, "bg/skill/Text"):GetComponent("Text")
self.skillLvBg=Util.GetGameObject(self.gameObject, "bg/skill/Image")
self.lockObj=Util.GetGameObject(self.gameObject, "bg/skill/mask")
self.hintInfo=Util.GetGameObject(self.gameObject, "bg/hintTxt"):GetComponent("Text")
self.currInfo=Util.GetGameObject(self.gameObject, "bg/currInfo"):GetComponent("Text")
self.nextInfo=Util.GetGameObject(self.gameObject, "bg/nextInfo"):GetComponent("Text")
self.costImg=Util.GetGameObject(self.gameObject, "bg/costImg"):GetComponent("Image")
self.costNum=Util.GetGameObject(self.gameObject, "bg/costImg/Text"):GetComponent("Text")
self.btn_up=Util.GetGameObject(self.gameObject, "bg/btn")
self.btn_close=Util.GetGameObject(self.gameObject, "bg/btnBack")
self.btn_info=Util.GetGameObject(self.gameObject, "bg/btn/Text"):GetComponent("Text")
self.redPoint=Util.GetGameObject(self.gameObject, "bg/btn/Image")
self.btn_close2=Util.GetGameObject(self.gameObject, "BackMask")
end
function PracticeSkillInfoPanel:BindEvent()
--升级按钮
Util.AddClick(self.btn_up, function()
if btnState==4 then
PopupTipPanel.ShowTip(costConfig.Name.."不足,无法升级技能")
return
elseif btnState==3 then
NetManager.PracticeSkillUpRequest(skillId,function()
LogError("point skillId=="..skillId)
PopupTipPanel.ShowTip("技能升级成功!")
if nextData then
local oldPower=PlayerManager.maxForce
PracticeSkillInfoPanel:RefreshShow(skillId,skillLv+1)
PracticeManager.SetPlayerSkill(skillId,skillLv)
local newPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
if newPower>oldPower then
NetManager.RequestUserForceChange(FormationTypeDef.FORMATION_NORMAL,function()
PlayerManager.maxForce=newPower
UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldPower,newValue = newPower})
end)
end
end
end)
elseif btnState==5 then
PopupTipPanel.ShowTip("不能超过主动技能等级")
return
end
end)
--关闭按钮
Util.AddClick(self.btn_close, function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
Util.AddClick(self.btn_close2, function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
end
local currLv=0
function PracticeSkillInfoPanel:OnOpen(id,lv)
local setId=PlayerPrefs.GetInt(PlayerManager.uid.."playerSkillRed",0)
if setId==id then
PlayerPrefs.SetInt(PlayerManager.uid.."playerSkillRed",0)
end
PracticeSkillInfoPanel:RefreshShow(id,lv)
end
function PracticeSkillInfoPanel:RefreshShow(id,lv)
if lv==0 then
currLv=1
else
currLv=lv
end
local list=PracticeManager.GetSkillInfo()
skillLv=lv
skillId=id
local currData=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.PlayerSkill,"SkillID",id,"Level",currLv)
nextData=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.PlayerSkill,"SkillID",id,"Level",currLv+1)
self.currInfo.text="本级效果:"..currData.Desc
self.skillIcon.sprite=self.spLoader:LoadSprite(GetResourcePath(tonumber(SkillBaseConfig[id].Icon)))
self.titleTxt.text=SkillBaseConfig[id].Name
self.skillLv.text=currLv
self.skillLv.gameObject:SetActive(true)
self.redPoint:SetActive(false)
--没有下一等级
if not nextData then
self.nextInfo.gameObject:SetActive(false)
self.costImg.gameObject:SetActive(false)
self.hintInfo.gameObject:SetActive(false)
self.lockObj.gameObject:SetActive(false)
self.btn_info.text="已达上限"
Util.SetGray(self.btn_up,true)
btnState=1 --已达上限
else
self.nextInfo.gameObject:SetActive(true)
self.nextInfo.text="下级效果:"..nextData.Desc
--如果等级为0 表示未解锁
--PracticeManager.PracticeLevel
if lv==0 then
self.btn_info.text="未解锁"
self.hintInfo.gameObject:SetActive(true)
self.costImg.gameObject:SetActive(false)
self.skillLv.gameObject:SetActive(false)
self.skillLvBg.gameObject:SetActive(false)
self.lockObj.gameObject:SetActive(true)
self.hintInfo.text="修行到达"..PracticeManager.GetRankNameByLv(nextData.XiuxianId).."后自动解锁"
Util.SetGray(self.btn_up,true)
btnState=2 --未解锁技能
else
self.lockObj.gameObject:SetActive(false)
local config=PracticeManager.GetCurConfigData()
if nextData.Level>config.PlayerSkillLvMax then
self.btn_info.text="升 级"
self.hintInfo.gameObject:SetActive(true)
self.costImg.gameObject:SetActive(false)
Util.SetGray(self.btn_up,true)
self.hintInfo.text="修行到达"..PracticeManager.GetRankNameByLv(config.RealmId+1).."后方可升级"
btnState=2
else
self.btn_info.text="升 级"
self.hintInfo.gameObject:SetActive(false)
self.costImg.gameObject:SetActive(true)
local icon,cost=SetIcon(self.spLoader,currData.LvupCost[1][1])
costConfig=cost
self.costImg.sprite=icon
if BagManager.GetItemCountById(currData.LvupCost[1][1])>=currData.LvupCost[1][2] then
self.costNum.color=UIColor.WRITE
if skillId~=100 and list[skillId] and currLv>=list[100] then
btnState=5
self.hintInfo.gameObject:SetActive(true)
self.costImg.gameObject:SetActive(false)
self.hintInfo.text="不能超过主动技能等级"
Util.SetGray(self.btn_up,true)
else
btnState=3 --可以点击
Util.SetGray(self.btn_up,false)
end
else
self.costNum.color=UIColor.RED
btnState=4 --货币不足
end
self.costNum.text=currData.LvupCost[1][2]
Util.SetGray(self.btn_up,false)
end
end
end
end
return PracticeSkillInfoPanel