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

122 lines
4.6 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()
this.spLoader = SpriteLoader.New()
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,starType = self.heroData.GetStar(1) or self.heroData.heroConfig.Star
local starSize = Vector2.New(32,32)
local starScale = -10
if starType == 3 then
starSize = Vector2.New(1,-15.6)
starScale = -13
elseif starType == 2 then
starSize = Vector2.New(60,57)
end
SetHeroBg(this.spLoader, Util.GetGameObject(self.gameObject, "iconMask"),self.frame,star,self.heroData.heroConfig.Quality)
self.icon.sprite = this.spLoader:LoadSprite(self.heroData.heroConfig.ShowLive)
--SetHEeroLiveToward(self.icon.gameObject,self.heroData.heroConfig.Toward )
self.lv.text=self.heroData.lv
-- self.pos.sprite=this.spLoader:LoadSprite(self.heroData.professionIcon)
self.pro.sprite=this.spLoader:LoadSprite(GetProStrImageByProNum(self.heroData.changeProId))
self.heroStageImage.sprite=this.spLoader:LoadSprite(HeroStageSprite[self.heroData.heroConfig.HeroStage])
self.roleEffect:SetActive(self.heroData.star >= 5)--
Util.AddParticleSortLayer(self.roleEffect, effectLayer - self.EffectOrginLayer)
self.EffectOrginLayer = effectLayer
SetHeroStars(this.spLoader, self.starGrid,star,starType,starSize,starScale)
Util.SetParticleSortLayer(self.starGrid,effectLayer + 1)
self.heroNameText.text=GetLanguageStrById(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()
this.spLoader:Destroy()
end
--界面销毁时调用(用于子类重写)
function RoleItemView:OnDestroy()
end
return RoleItemView