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

185 lines
6.9 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

local Practice = quick_class("Practice", BasePanel)
local orginLayer
local XinXianConfig = ConfigManager.GetConfig(ConfigName.XiuXianConfig)
local ItemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
function Practice:InitComponent()
orginLayer = 0
if not self.playerInfoView then
self.playerInfoView = SubUIManager.Open(SubUIConfig.PlayerInfoView, self.transform)
end
self.BtView = SubUIManager.Open(SubUIConfig.BtView, self.transform)
self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.transform)
--Btns
self.helpBtn = Util.GetGameObject(self.gameObject, "Btns/helpBtn")
self.helpPosition=self.helpBtn:GetComponent("RectTransform").localPosition
self.previewBtn = Util.GetGameObject(self.gameObject, "Btns/previewBtn")
self.additionBtn = Util.GetGameObject(self.gameObject, "Btns/additionBtn")
self.imprintBtn = Util.GetGameObject(self.gameObject, "Btns/imprintBtn")
self.starBtn = Util.GetGameObject(self.gameObject, "Btns/starBtn")
self.starNum = Util.GetGameObject(self.starBtn, "starNum"):GetComponent("Text")
--MidPart
self.mid = Util.GetGameObject(self.gameObject, "Mid")
self.levelName = Util.GetGameObject(self.mid, "Text"):GetComponent("Text")
self.img = Util.GetGameObject(self.mid, "Img"):GetComponent("Image")
--BottomPart
self.bottom = Util.GetGameObject(self.gameObject, "Bottom")
self.items = Util.GetGameObject(self.bottom, "Items")
self.needs = Util.GetGameObject(self.bottom, "Needs")
self.needPre = Util.GetGameObject(self.needs, "pre")
self.button = Util.GetGameObject(self.bottom, "Button")
self.buttonText = Util.GetGameObject(self.button, "Text"):GetComponent("Text")
self.content = Util.GetGameObject(self.bottom, "Content")
self.textBtn = Util.GetGameObject(self.content, "Text")
self.needStar = Util.GetGameObject(self.content, "num"):GetComponent("Text")
self.itemList = {}
end
function Practice:BindEvent()
--帮助按钮
Util.AddClick(self.helpBtn, function()
UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.VIP, self.helpPosition.x,self.helpPosition.y)
end)
Util.AddClick(self.BtnBack, function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
Util.AddClick(self.previewBtn, function()
UIManager.OpenPanel(UIName.GeneralBigPopup,GENERAL_POPUP_TYPE.PracticeStatePreview)
end)
Util.AddClick(self.additionBtn, function()
UIManager.OpenPanel(UIName.RoleProInfoPopup,PracticeManager.GetCurAllGetAdd(),nil,false,nil)
end)
Util.AddClick(self.imprintBtn, function()
UIManager.OpenPanel(UIName.PracticeImprintPanel)
end)
Util.AddClick(self.textBtn, function()
LogGreen("打开山河社稷图")
end)
Util.AddClick(self.starBtn, function()
LogGreen("打开山河社稷图")
end)
Util.AddClick(self.button, function()
if self:UpgradeCheck() then return end
NetManager.UpPracticeLevelRequest(function ()
self:OnShow()
end)
end)
end
--Check
function Practice:UpgradeCheck()
if PracticeManager.StarNum < self.curLevelConfig.NeedStarNum then
PopupTipPanel.ShowTip("无法破境,请前往山河社稷图获取更多星星!")
return true
end
if self.curLevelConfig.LevelUpCost then
for i = 1, #self.curLevelConfig.LevelUpCost do
local data = self.curLevelConfig.LevelUpCost[i]
if BagManager.GetTotalItemNum(data[1]) < data[2] then
PopupTipPanel.ShowTip(string.format("%s不足",ItemConfig[data[1]].Name))
return true
end
end
end
return false
end
function Practice:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.Bag.BagGold, self.OnShow,self)
end
function Practice:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.Bag.BagGold, self.OnShow,self)
end
--待功能扩展(试图打开某个状态)
function Practice:OnOpen()
self.UpView:OnOpen({ showType = UpViewOpenType.ShowRight, panelType = PanelType.Main })
self.BtView:OnOpen({ sortOrder = self.sortingOrder, panelType = PanelTypeView.Practice })
end
function Practice:OnSortingOrderChange()
-- Util.AddParticleSortLayer(self.effect, self.sortingOrder - orginLayer)
orginLayer = self.sortingOrder
-- 头像层级
if self.playerInfoView then
self.playerInfoView:SetLayer(self.sortingOrder)
end
end
function Practice:OnShow()
FormationManager.RefreshMainFormationPower()
self.curLevelConfig = PracticeManager.GetCurConfigData()
LogYellow("PracticeLevel:"..tostring(PracticeManager.PracticeLevel))
self:RefreshMid()
self:RefreshPoints()
self:RefreshBtn()
end
function Practice:RefreshMid()
self.levelName.text = string.format("%s期",self.curLevelConfig.RealmName)
self.starNum.text = PlayerManager.level
end
function Practice:RefreshPoints()
-- body
end
function Practice:RefreshBtn()
if self.curLevelConfig.LevelUpCost then--如果下级消耗不为空则为突破阶段
if not self.itemList then
self.itemList = {}
end
for k,v in ipairs(self.itemList) do
v.gameObject:SetActive(false)
end
for i = 1, #self.curLevelConfig.LevelUpCost do
local data = self.curLevelConfig.LevelUpCost[i]
if not self.itemList[i] then
self.itemList[i] = newObject(self.needPre)
self.itemList[i].transform:SetParent(self.needs.transform)
self.itemList[i].transform.localScale = Vector3.one
self.itemList[i].transform.localPosition = Vector3.zero
end
local icon = Util.GetGameObject(self.itemList[i],"icon"):GetComponent("Image")
local num = Util.GetGameObject(self.itemList[i],"num"):GetComponent("Text")
icon.sprite = Util.LoadSprite(GetSpriteNameByItemId(data[1]))
num.text = data[2]
if BagManager.GetTotalItemNum(data[1]) < data[2] then
num.text = string.format("<color=red>%s</color>",data[2])
end
self.itemList[i]:SetActive(true)
end
self.needs:SetActive(true)
self.content:SetActive(false)
self.buttonText.text = Language[11805]
else
self.needs:SetActive(false)
self.content:SetActive(true)
self.needStar.text = self.curLevelConfig.NeedStarNum
if self.curLevelConfig.NeedStarNum > PlayerManager.level then
self.needStar.text = string.format("<color=red>%s</color>",self.curLevelConfig.NeedStarNum)
end
self.buttonText.text = "破 境"
end
end
function Practice:OnClose()
end
function Practice:OnDestroy()
SubUIManager.Close(self.UpView)
SubUIManager.Close(self.BtView)
self.UpView = nil
self.BtView = nil
if self.playerInfoView then
SubUIManager.Close(self.playerInfoView)
self.playerInfoView = nil
end
self.itemList = {}
end
return Practice