miduo_client/Assets/ManagedResources/~Lua/Modules/Gem/GemPanel.lua

208 lines
7.6 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 Gem = quick_class("Gem", BasePanel)
local itemData = ConfigManager.GetConfig(ConfigName.ItemConfig)
local gemConfig = ConfigManager.GetConfig(ConfigName.GemConfig)
local PropertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig)
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
local typeName = {
[1] = "攻击",[2] = "生命",[3] = "增伤",[4] = "减伤",[5] = "人杰",[6] = "佛禅",[7] = "妖灵",[8] = "道玄",
}
function Gem:InitComponent()
self.spLoader = SpriteLoader.New()
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)
--MidPart
self.mid = Util.GetGameObject(self.gameObject, "Mid")
self.img = Util.GetGameObject(self.mid, "Man"):GetComponent("Image")
self.ManCanvas = Util.GetGameObject(self.mid, "Man"):GetComponent("Canvas")
self.fx_ui_xiuxingshengxin_cangzhu = Util.GetGameObject(self.gameObject, "Bg/fx_ui_xiuxingshengxin_cangzhu")
--Gems
self.gems = Util.GetGameObject(self.gameObject, "Gems")
self.stones = Util.GetGameObject(self.gameObject, "Stones")
self.itemList = {}
self.propertyList = {}
--页签
self.btnPractice = Util.GetGameObject(self.gameObject, "Tab/tab1")
self.onekey = Util.GetGameObject(self.gameObject, "onekey")
self.fast = Util.GetGameObject(self.gameObject, "fast")
self.more = Util.GetGameObject(self.gameObject, "more")
self.curType = 1
end
function Gem:BindEvent()
--帮助按钮
Util.AddClick(self.helpBtn, function()
UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.Practice, self.helpPosition.x,self.helpPosition.y)
end)
Util.AddClick(self.btnPractice, function()
UIManager.OpenPanel(UIName.PracticePanel)
self:ClosePanel()
end)
Util.AddClick(self.onekey, function()
NetManager.LifeStoneUpRequest(2)
end)
Util.AddClick(self.fast, function()
NetManager.LifeStoneUpRequest(4,nil,nil,45079)
end)
Util.AddClick(self.more, function()
NetManager.LifeStoneUpRequest(2,nil,nil,45071,6)
end)
end
function Gem:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.Gem.RefreshPanel, self.Refresh,self)
end
function Gem:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.Gem.RefreshPanel, self.Refresh,self)
end
--待功能扩展(试图打开某个状态)
function Gem:OnOpen()
self.UpView:OnOpen({ showType = UpViewOpenType.ShowRight, panelType = PanelType.XiuXing })
self.BtView:OnOpen(self,{ sortOrder = self.sortingOrder, panelType = PanelTypeView.Practice })
end
function Gem:OnSortingOrderChange()
self.BtView:OnOpen(self,{ sortOrder = self.sortingOrder, panelType = PanelTypeView.Practice })
self.ManCanvas.sortingOrder = self.sortingOrder + 2
Util.SetParticleSortLayer(self.fx_ui_xiuxingshengxin_cangzhu, self.sortingOrder + 1)
-- 头像层级
if self.playerInfoView then
self.playerInfoView:SetLayer(self.sortingOrder)
end
end
function Gem:OnShow()
self.playerInfoView:OnShow()
Util.SetParticleSortLayer(self.fx_ui_xiuxingshengxin_cangzhu, self.sortingOrder + 1)
self:Refresh()
end
function Gem:Refresh()
local oldWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
self:RefreshMid()
self:SetGems()
self:SetStones(GemManager.myGemList[self.curType],self.curType)
end
--刷新中部人物
function Gem:RefreshMid()
local playerImg = NameManager.roleSex == 0 and "x_xiuxing_liangongren_nan" or "x_xiuxing_liangongren_nv"
self.img.sprite = self.spLoader:LoadSprite(playerImg)
self.ManCanvas.sortingOrder = self.sortingOrder + 2
end
--设置中部宝石数据
function Gem:SetGems()
local gemData = GemManager.myGemList
for i = 1, 8 do
local itemGo = Util.GetGameObject(self.gems,"item ("..i..")")
local name = Util.GetGameObject(itemGo,"Name"):GetComponent("Text")
name.text = typeName[i]
for j = 1, 3 do
local stoneGo = Util.GetGameObject(itemGo,"stone ("..j..")")
local level = Util.GetGameObject(stoneGo,"Text"):GetComponent("Text")
local name = "r_RareItem_Specail_0222"
level.text = ""
if gemData[i] and gemData[i][j] and gemData[i][j] > 0 then
name = GetSpriteNameByItemId(gemData[i][j])
level.text = gemConfig[gemData[i][j]].Level
end
stoneGo:GetComponent("Image").sprite = self.spLoader:LoadSprite(name)
end
Util.AddOnceClick(itemGo,function ()
self.curType = i
self:SetStones(gemData[i],i)
end)
end
end
--设置下部宝石数据
function Gem:SetStones(_data,index)
if _data then--最终删除
LogWarn("[1]"..tostring(_data[1]).." [2]"..tostring(_data[2]).." [3]"..tostring(_data[3]))
else
LogWarn("无数据")
end
local data = _data
for i = 1, 3 do
local stoneGo = Util.GetGameObject(self.stones,"Stone ("..i..")")
local item = Util.GetGameObject(stoneGo,"Item")
local mask = Util.GetGameObject(stoneGo,"Mask")
local property = Util.GetGameObject(stoneGo,"Property")
local textPre = Util.GetGameObject(property,"Text")
local name = Util.GetGameObject(stoneGo,"Name"):GetComponent("Text")
textPre:GetComponent("Text").text = ""
textPre:SetActive(false)
property:SetActive(false)
item:SetActive(false)
name.text = ""
if data and data[i] and data[i] > 0 then
if not self.itemList[i] then
local view = SubUIManager.Open(SubUIConfig.ItemView,item.transform)
self.itemList[i] = view
end
self.itemList[i]:OnOpen(false, {data[i],0}, 1.1, false,false,false,self.sortingOrder + 1)
self.itemList[i].gameObject:SetActive(true)
item:SetActive(true)
name.text = GetStringByEquipQua(itemConfig[data[i]].Quantity1,gemConfig[data[i]].Name)--gemConfig[data[i]].Name
self:SetProperty(gemConfig[data[i]],data,property,textPre)
end
Util.AddOnceClick(mask,function ()
if data and data[i] and data[i] > 0 then
UIManager.OpenPanel(UIName.RewardGemSingleShowPopup,data[i],2,nil,index,i)
else
UIManager.OpenPanel(UIName.GeneralBigPopup,GENERAL_POPUP_TYPE.SelectGem,index,i)
end
end)
end
end
function Gem:SetProperty(configData,data,parent,text)
if not configData then
return
end
if not self.propertyList[parent] then
self.propertyList[parent] = {}
end
for k = 1, #self.propertyList[parent] do
self.propertyList[parent][k]:SetActive(false)
end
for j = 1, #configData.Property do
local data = configData.Property[j]
local item = self.propertyList[parent][j]
parent:SetActive(true)
if not item then
item = newObjToParent(text,parent.transform)
self.propertyList[parent][j] = item
end
item:SetActive(true)
item:GetComponent("Text").text = string.format( "%s+%s",PropertyConfig[data[1]].Info,data[2]/100).."%"
end
end
function Gem:OnClose()
end
function Gem:OnDestroy()
self.spLoader:Destroy()
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 = {}
self.propertyList = {}
end
return Gem