141 lines
6.1 KiB
Lua
141 lines
6.1 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
|
|
PracticeSkillInfoPanel:RefreshShow(skillId,skillLv+1)
|
|
PracticeManager.SetPlayerSkill(skillId,skillLv)
|
|
end
|
|
end)
|
|
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
|
|
LogError("level====="..lv)
|
|
skillLv=lv
|
|
skillId=id
|
|
LogError("skillid==="..skillId)
|
|
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(currData.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
|
|
btnState=3 --可以点击
|
|
self.redPoint:SetActive(true)
|
|
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 |