public override bool TriggersFrom(TriggerInfo info)
    {
        if (info.type != type)
        {
            return(false);
        }

        AfterCharacterHealedTriggerInfo new_info = info as AfterCharacterHealedTriggerInfo;

        if (new_info == null)
        {
            return(false);
        }

        if (!players && new_info.healed.entity_type == EntityType.player)
        {
            return(false);
        }
        if (!creatures && new_info.healed.entity_type == EntityType.card)
        {
            return(false);
        }

        return(true);
    }
Пример #2
0
    public void ProcessHealEvent(IEntity source, ICombatant healed, int amount)
    {
        bool resolve_after = !resolving_stack && !attack_happening;

        AfterCharacterHealedTriggerInfo info = new AfterCharacterHealedTriggerInfo(healed, amount);

        Creature creature = healed as Creature;

        if (creature != null)
        {
            AddTriggersToStack(creature.abilities.GetLocalTriggers(info));
        }
        AddTriggersToStack(trigger_manager.GetTriggers(info));

        if (resolve_after)
        {
            ResolveStack();
        }
    }