local UIBattleHeroWeakEffect = UIViewClass() local CONST_PERCENT_WEAK = 0.1 function UIBattleHeroWeakEffect:OnCreated() UIUtils.SetActive(self.effect_HeroWeak.gameObject,false) end function UIBattleHeroWeakEffect:OnClosed() self:ClearHeroWeak() end function UIBattleHeroWeakEffect:InitHeroWeak(entity) if entity then self.entity = entity local uisystem = self.entity._renderSystem._uiSystem uisystem.OnUpdateHP = AddEventListener(uisystem.OnUpdateHP,self:OnHpChanged()) end end function UIBattleHeroWeakEffect:ClearHeroWeak() if self.entity then local uisystem = self.entity._renderSystem._uiSystem uisystem.OnUpdateHP = RemoveEventListener(uisystem.OnUpdateHP,self:OnHpChanged()) if self.effect_HeroWeak then UIUtils.SetActive(self.effect_HeroWeak.gameObject,false) end self.entity = nil self.inWeak = false end end function UIBattleHeroWeakEffect:OnHpChanged() self.onHpChanged = self.onHpChanged or function(hpPercent) if hpPercent < CONST_PERCENT_WEAK then if not self.inWeak then self.inWeak = true if self.effect_HeroWeak then self.effect_HeroWeak:StopUIEffect() self.effect_HeroWeak:PlayUIEffect() end end else if self.inWeak then self.inWeak = false if self.effect_HeroWeak then self.effect_HeroWeak:StopUIEffect() end end end end return self.onHpChanged end return UIBattleHeroWeakEffect