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