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); }
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(); } }