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

163 lines
7.2 KiB
Lua
Raw Normal View History

2025-03-14 11:58:20 +08:00
local PracticeSkillInfoPanel = quick_class("PracticeSkillInfoPanel", BasePanel)
2024-09-06 10:38:56 +08:00
local SkillBaseConfig = ConfigManager.GetConfig(ConfigName.PlayerSkillBasicTable)
2021-10-20 21:33:37 +08:00
--按钮状态
2024-09-06 10:38:56 +08:00
local btnState = 0
2021-10-20 21:33:37 +08:00
local costConfig
2024-09-06 10:38:56 +08:00
local skillId = 0
local skillLv = 0
2021-10-20 21:33:37 +08:00
local nextData
function PracticeSkillInfoPanel:InitComponent()
self.spLoader = SpriteLoader.New()
2024-09-06 10:38:56 +08:00
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")
2021-10-20 21:33:37 +08:00
end
function PracticeSkillInfoPanel:BindEvent()
--升级按钮
2024-09-06 10:38:56 +08:00
2021-10-20 21:33:37 +08:00
Util.AddClick(self.btn_up, function()
2024-09-06 10:38:56 +08:00
if btnState == 4 then
PopupTipPanel.ShowTip(costConfig.Name .. Language[12469])
2021-10-20 21:33:37 +08:00
return
2024-09-06 10:38:56 +08:00
elseif btnState == 3 then
NetManager.PracticeSkillUpRequest(skillId, function()
LogError("point skillId==" .. skillId)
2024-08-29 21:36:51 +08:00
PopupTipPanel.ShowTip(Language[11500])
2021-10-20 21:33:37 +08:00
if nextData then
2024-09-06 10:38:56 +08:00
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)
2024-09-06 10:38:56 +08:00
end
2021-10-20 21:33:37 +08:00
end
end)
2024-09-06 10:38:56 +08:00
elseif btnState == 5 then
2024-08-29 21:36:51 +08:00
PopupTipPanel.ShowTip(Language[12470])
return
2021-10-20 21:33:37 +08:00
end
end)
2024-09-06 10:38:56 +08:00
2021-10-20 21:33:37 +08:00
--关闭按钮
Util.AddClick(self.btn_close, function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
2021-10-22 11:56:46 +08:00
Util.AddClick(self.btn_close2, function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
2021-10-20 21:33:37 +08:00
end
2024-09-06 10:38:56 +08:00
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
2024-09-06 10:38:56 +08:00
PracticeSkillInfoPanel:RefreshShow(id, lv)
2021-10-20 21:33:37 +08:00
end
2024-09-06 10:38:56 +08:00
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
2021-10-20 21:33:37 +08:00
self.nextInfo.gameObject:SetActive(false)
self.costImg.gameObject:SetActive(false)
self.hintInfo.gameObject:SetActive(false)
2021-10-22 11:56:46 +08:00
self.lockObj.gameObject:SetActive(false)
2024-09-06 10:38:56 +08:00
self.btn_info.text = Language[10209]
Util.SetGray(self.btn_up, true)
btnState = 1 --已达上限
else
2021-10-21 11:58:33 +08:00
self.nextInfo.gameObject:SetActive(true)
2024-09-06 10:38:56 +08:00
self.nextInfo.text = Language[12472] .. nextData.Desc
2021-10-20 21:33:37 +08:00
--如果等级为0 表示未解锁
2021-10-22 11:56:46 +08:00
--PracticeManager.PracticeLevel
2024-09-06 10:38:56 +08:00
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
2021-10-22 13:15:08 +08:00
self.lockObj.gameObject:SetActive(false)
2024-09-06 10:38:56 +08:00
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
2021-10-20 21:33:37 +08:00
end
2024-09-06 10:38:56 +08:00
return PracticeSkillInfoPanel