163 lines
7.2 KiB
Lua
163 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 .. Language[12469])
|
|
return
|
|
elseif btnState == 3 then
|
|
NetManager.PracticeSkillUpRequest(skillId, function()
|
|
LogError("point skillId==" .. skillId)
|
|
PopupTipPanel.ShowTip(Language[11500])
|
|
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(Language[12470])
|
|
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 = Language[12471] .. 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 = Language[10209]
|
|
Util.SetGray(self.btn_up, true)
|
|
btnState = 1 --已达上限
|
|
else
|
|
self.nextInfo.gameObject:SetActive(true)
|
|
self.nextInfo.text = Language[12472] .. nextData.Desc
|
|
--如果等级为0 表示未解锁
|
|
--PracticeManager.PracticeLevel
|
|
if lv == 0 then
|
|
self.btn_info.text = Language[12473]
|
|
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 = Language[12474] .. PracticeManager.GetRankNameByLv(nextData.XiuxianId) ..
|
|
Language[12475]
|
|
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 = Language[11497]
|
|
self.hintInfo.gameObject:SetActive(true)
|
|
self.costImg.gameObject:SetActive(false)
|
|
Util.SetGray(self.btn_up, true)
|
|
self.hintInfo.text = Language[12474] ..
|
|
PracticeManager.GetRankNameByLv(config.RealmId + 1) .. Language[12476]
|
|
btnState = 2
|
|
else
|
|
self.btn_info.text = Language[11497]
|
|
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 = Language[12470]
|
|
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
|