141 lines
5.2 KiB
Lua
141 lines
5.2 KiB
Lua
PlayerInfoView = {}
|
|
|
|
function PlayerInfoView:New(gameObject)
|
|
local b = {}
|
|
b.gameObject = gameObject
|
|
b.transform = gameObject.transform
|
|
setmetatable(b, { __index = PlayerInfoView })
|
|
return b
|
|
end
|
|
|
|
--初始化组件(用于子类重写)
|
|
function PlayerInfoView:InitComponent()
|
|
|
|
self.heroTeamPowerBtn = Util.GetGameObject(self.gameObject, "powerBtn")
|
|
self.heroTeamPower = Util.GetGameObject(self.gameObject, "powerBtn/value"):GetComponent("Text")
|
|
|
|
|
|
--headBox
|
|
self.level = Util.GetGameObject(self.gameObject, "headBox/lvFrame/lv"):GetComponent("Text")
|
|
self.playName = Util.GetGameObject(self.gameObject, "headBox/name"):GetComponent("Text")
|
|
self.expSliderValue = Util.GetGameObject(self.gameObject, "headBox/exp"):GetComponent("Slider")
|
|
self.expSliderValue.transform.localScale = Vector3.New(UIManager.adapterScale, 1, 1)
|
|
|
|
self.headBox = Util.GetGameObject(self.gameObject, "headBox")
|
|
self.headPos = Util.GetGameObject(self.gameObject, "headBox/headpos")
|
|
self.headRedpot = Util.GetGameObject(self.gameObject, "headBox/redpot")
|
|
|
|
-- 特权
|
|
self.vipPrivilegeBtn = Util.GetGameObject(self.gameObject, "vipPrivilege/vipPrivilegeBtn")
|
|
self.vipLevelText = Util.GetGameObject(self.vipPrivilegeBtn, "bg/vip"):GetComponent("Image")
|
|
self.vipRedPoint = Util.GetGameObject(self.gameObject, "vipPrivilege/vipPrivilegeBtn/redPoint")
|
|
screenAdapte(self.vipPrivilegeBtn)
|
|
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function PlayerInfoView:BindEvent()
|
|
--GM工具
|
|
Util.AddClick(self.headBox, function()
|
|
if AppConst.isOpenGM and UIManager.IsOpen(UIName.MainPanel) then
|
|
UIManager.OpenPanel(UIName.GMPanel)
|
|
else
|
|
UIManager.OpenPanel(UIName.SettingPanel)
|
|
end
|
|
end)
|
|
--特权
|
|
Util.AddClick(self.vipPrivilegeBtn, function()
|
|
UIManager.OpenPanel(UIName.VipPanelV2)
|
|
end)
|
|
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function PlayerInfoView:AddListener()
|
|
Game.GlobalEvent:AddEvent(GameEvent.Bag.BagGold, self.OnShow, self)
|
|
Game.GlobalEvent:AddEvent(GameEvent.Player.OnPlayerLvChange, self.OnShow, self)
|
|
Game.GlobalEvent:AddEvent(GameEvent.Player.OnChangeName, self.OnShow, self)
|
|
Game.GlobalEvent:AddEvent(GameEvent.Player.OnHeadFrameChange, self.OnShow, self)
|
|
Game.GlobalEvent:AddEvent(GameEvent.Player.OnHeadChange, self.OnShow, self)
|
|
Game.GlobalEvent:AddEvent(GameEvent.Formation.OnFormationPowerChange, self.RefreshPower, self)
|
|
|
|
-- 绑定红点
|
|
BindRedPointObject(RedPointType.Setting, self.headRedpot)
|
|
BindRedPointObject(RedPointType.VipPrivilege, self.vipRedPoint)
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function PlayerInfoView:RemoveListener()
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.Bag.BagGold, self.OnShow, self)
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnPlayerLvChange, self.OnShow, self)
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnChangeName, self.OnShow, self)
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnHeadFrameChange, self.OnShow, self)
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnHeadChange, self.OnShow, self)
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.Formation.OnFormationPowerChange, self.RefreshPower, self)
|
|
|
|
-- 解除绑定
|
|
ClearRedPointObject(RedPointType.Setting, self.headRedpot)
|
|
ClearRedPointObject(RedPointType.VipPrivilege, self.vipRedPoint)
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function PlayerInfoView:OnOpen(...)
|
|
self.orginLayer = 0
|
|
self:OnShow()
|
|
self:RefreshPower()
|
|
-- 默认关闭特权显示
|
|
self:SetPrivilegeShow(false)
|
|
end
|
|
|
|
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
|
function PlayerInfoView:OnShow()
|
|
self.level.text = PlayerManager.level
|
|
self.expSliderValue.value = PlayerManager.exp / PlayerManager.userLevelData[PlayerManager.level].Exp
|
|
self.playName.text = PlayerManager.nickName
|
|
self.vipLevelText.sprite = VipManager.SetVipLevelImg()
|
|
|
|
|
|
if not self.playerHead then
|
|
self.playerHead = SubUIManager.Open(SubUIConfig.PlayerHeadView, self.headPos.transform)
|
|
end
|
|
self.playerHead:SetHead(PlayerManager.head)
|
|
self.playerHead:SetFrame(HeadManager.GetCurFrameId())
|
|
self.playerHead:SetScale(Vector3.one * 0.9)
|
|
self.playerHead:SetPosition(Vector3.New(-5, 8, 0))
|
|
self.playerHead:SetLayer(self.sortingOrder)
|
|
self.playerHead:SetEffectScale(0.85)
|
|
|
|
end
|
|
|
|
function PlayerInfoView:RefreshPower(force)
|
|
self.heroTeamPower.text = force
|
|
-- self.heroTeamPower.text = FormationManager.GetFormationPower(FormationManager.curFormationIndex)
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function PlayerInfoView:OnClose()
|
|
-- 头像回收
|
|
if self.playerHead then
|
|
self.playerHead:Recycle()
|
|
self.playerHead = nil
|
|
end
|
|
|
|
-- 还原特效层级
|
|
Util.AddParticleSortLayer(self.vipPrivilegeBtn, - self.orginLayer)
|
|
end
|
|
|
|
-- 设置层级
|
|
function PlayerInfoView:SetLayer(sortingOrder)
|
|
Util.AddParticleSortLayer(self.vipPrivilegeBtn, sortingOrder - self.orginLayer)
|
|
if self.playerHead then
|
|
self.playerHead:SetLayer(sortingOrder)
|
|
end
|
|
|
|
self.orginLayer = sortingOrder
|
|
end
|
|
|
|
function PlayerInfoView:SetPrivilegeShow(isShow)
|
|
self.vipPrivilegeBtn:SetActive(not not isShow)
|
|
end
|
|
|
|
return PlayerInfoView |