miduo_client/Assets/ManagedResources/~Lua/View/RoleItemView.lua

110 lines
4.0 KiB
Lua

RoleItemView = {}
local this=RoleItemView
function RoleItemView:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = RoleItemView })
return b
end
--初始化组件(用于子类重写)
function RoleItemView:InitComponent()
self.EffectOrginLayer = -10
self.frame = Util.GetGameObject(self.gameObject, "frame")
self.icon = Util.GetGameObject(self.gameObject, "iconMask/icon"):GetComponent("Image")
self.heroStageImage = Util.GetGameObject(self.gameObject, "heroStageImage"):GetComponent("Image")
self.lv = Util.GetGameObject(self.gameObject, "lv/Text"):GetComponent("Text")
-- self.pos = Util.GetGameObject(self.gameObject, "pos/icon"):GetComponent("Image")
self.pro = Util.GetGameObject(self.gameObject, "pro/Image"):GetComponent("Image")
self.starGrid = Util.GetGameObject(self.gameObject, "star")
self.starPre = Util.GetGameObject(self.gameObject, "starPre")
self.heroNameGo = Util.GetGameObject(self.gameObject, "name")
self.heroNameText = Util.GetGameObject(self.gameObject, "name/Text"):GetComponent("Text")
self.heroHpGo = Util.GetGameObject(self.gameObject, "hp")
self.heroHp = Util.GetGameObject(self.gameObject, "hp/fill"):GetComponent("Image")
self.roleEffect = Util.GetGameObject(self.gameObject, "effect")
end
--绑定事件(用于子类重写)
function RoleItemView:BindEvent()
end
--添加事件监听(用于子类重写)
function RoleItemView:AddListener()
end
--移除事件监听(用于子类重写)
function RoleItemView:RemoveListener()
end
--界面打开时调用(用于子类重写)
function RoleItemView:OnOpen(_heroDId,_isShowHeroName,_isShowHeroHp,_hpVal,_effectLayer)
if _heroDId ==nil then
return
end
self.heroData=HeroManager.GetSingleHeroData(_heroDId)
_isShowHeroName = _isShowHeroName or false
_effectLayer = _effectLayer or 0
self.isShowHeroHp = _isShowHeroHp or false
self.hpVal=_hpVal
self.heroNameGo:SetActive(_isShowHeroName)
self.heroHpGo:SetActive(self.isShowHeroHp)
if self.heroData then
self:OnShowHeroData(_effectLayer)
end
end
function RoleItemView:OnShowHeroData(effectLayer)
local star = self.heroData.star or self.heroData.heroConfig.Star
SetHeroBg(Util.GetGameObject(self.gameObject, "iconMask"),self.frame,star,self.heroData.heroConfig.Quality)
self.icon.sprite = Util.LoadSprite(self.heroData.painting)
self.lv.text=self.heroData.lv
-- self.pos.sprite=Util.LoadSprite(self.heroData.professionIcon)
self.pro.sprite=Util.LoadSprite(GetProStrImageByProNum(self.heroData.heroConfig.PropertyName))
self.heroStageImage.sprite=Util.LoadSprite(HeroStageSprite[self.heroData.heroConfig.HeroStage])
self.roleEffect:SetActive(self.heroData.star >= 5)--
Util.AddParticleSortLayer(self.roleEffect, effectLayer - self.EffectOrginLayer)
self.EffectOrginLayer = effectLayer
SetHeroStars(self.starGrid,star,1,Vector2.New(32,32),-10)
self.heroNameText.text=self.heroData.heroConfig.ReadingName
if self.hpVal and self.isShowHeroHp then
self.hpVal = self.hpVal <= 0 and 0 or self.hpVal
Log("self.hpVal "..self.hpVal)
self.heroHp.fillAmount=self.hpVal
Util.SetGray(self.gameObject, self.hpVal <= 0)
end
Util.AddOnceClick(self.frame, function()
UIManager.OpenPanel(UIName.RoleGetInfoPopup,true,self.heroData.heroBackData)
end)
end
function RoleItemView:AddClick(clickFun)
Util.AddOnceClick(self.frame, function()
if clickFun then
clickFun()
else
UIManager.OpenPanel(UIName.RoleGetInfoPopup,true,self.heroData.heroBackData)
end
end)
end
function RoleItemView:SetEffectLayer(effectLayer)
Util.AddParticleSortLayer(self.roleEffect, effectLayer - self.EffectOrginLayer)
self.EffectOrginLayer = effectLayer
end
--界面关闭时调用(用于子类重写)
function RoleItemView:OnClose()
end
--界面销毁时调用(用于子类重写)
function RoleItemView:OnDestroy()
end
return RoleItemView