Пример #1
0
    public HeroPreDamageEvent OnHeroPreDamage(Hero hero, Character attacker, int damageAmount)
    {
        HeroPreDamageEvent heroPreDamageEvent = new HeroPreDamageEvent()
        {
            Hero         = hero,
            Attacker     = attacker,
            DamageAmount = damageAmount
        };

        HeroPreDamageHandler.OnNext(heroPreDamageEvent);

        foreach (Minion battlefieldMinion in GameManager.Instance.GetAllMinions())
        {
            battlefieldMinion.Buffs.OnHeroPreDamage.OnNext(heroPreDamageEvent);
        }

        return(heroPreDamageEvent);
    }
Пример #2
0
    public override void Damage(Character attacker, int damageAmount)
    {
        HeroPreDamageEvent heroPreDamageEvent = EventManager.Instance.OnHeroPreDamage(this, attacker, damageAmount);

        if (attacker != null)
        {
            if (attacker.IsAlive())
            {
                Debugger.LogHero(this, "receiving " + heroPreDamageEvent.DamageAmount + " damage by " + attacker.GetName());

                Damage(heroPreDamageEvent.DamageAmount);

                EventManager.Instance.OnHeroDamaged(this, attacker, heroPreDamageEvent.DamageAmount);
            }
        }
        else
        {
            Debugger.LogHero(this, "receiving " + heroPreDamageEvent.DamageAmount + " damage by " + attacker.GetName());

            Damage(heroPreDamageEvent.DamageAmount);

            EventManager.Instance.OnHeroDamaged(this, null, heroPreDamageEvent.DamageAmount);
        }
    }