miduo_client/Assets/ManagedResources/~Lua/Modules/Practice/PracticeSkillInfoPanel.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