コード例 #1
0
    // TODO : Gotta make the BuffManager methods to be able to modify the damage amounts
    public override void Damage(Character attacker, int damageAmount)
    {
        // Creating the MinionPreDamageEvent
        MinionPreDamageEvent minionPreDamageEvent = new MinionPreDamageEvent()
        {
            Attacker     = attacker,
            Minion       = this,
            DamageAmount = damageAmount
        };

        // Firing the subscribed handlers to OnPreDamage
        Buffs.OnPreDamage.OnNext(minionPreDamageEvent);
        EventManager.Instance.OnMinionPreDamage(minionPreDamageEvent);

        Debugger.LogMinion(this, "receiving " + minionPreDamageEvent.DamageAmount + " damage by " + attacker.GetName());

        // Substracting the damage to the current health of the Minion
        CurrentHealth -= minionPreDamageEvent.DamageAmount;

        // TODO : Show health loss sprite + amount on token

        // Creating the MinionDamagedEvent
        MinionDamagedEvent minionDamagedEvent = new MinionDamagedEvent()
        {
            Attacker     = attacker,
            Minion       = this,
            DamageAmount = minionPreDamageEvent.DamageAmount
        };

        // Firing the subscribed handlers to OnDamage
        Buffs.OnDamaged.OnNext(minionDamagedEvent);
        EventManager.Instance.OnMinionDamaged(minionDamagedEvent);

        Controller.UpdateNumbers();
    }
コード例 #2
0
ファイル: EventManager.cs プロジェクト: roadf5/HSMod
    public MinionPreDamageEvent OnMinionPreDamage(MinionPreDamageEvent minionPreDamageEvent)
    {
        MinionPreDamageHandler.OnNext(minionPreDamageEvent);

        foreach (Minion battlefieldMinion in GameManager.Instance.GetAllMinions())
        {
            battlefieldMinion.Buffs.OnMinionPreDamage.OnNext(minionPreDamageEvent);
        }

        return(minionPreDamageEvent);
    }