122 lines
4.6 KiB
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 |