public void Damage(DamageInfo damageInfo) { float prevHp = currentHp; currentHp -= damageInfo.damage; PlayerHpChangeEvent ev = new PlayerHpChangeEvent(prevHp, currentHp, maxHp); eventManager.Publish(Events.PLAYER_HPCHANGE, ev); if (currentHp <= 0) { eventManager.Publish(Events.GAME_OVER, null); } }
public void HpChangeHandler(IGameEvent e) { PlayerHpChangeEvent ev = (PlayerHpChangeEvent)e; slider.value = Mathf.Clamp((ev.currentHp / ev.maxHp), 0, 1); }