public override void Apply(TriggeredAbilities abilities) { _abilities = abilities; _modifier = new AddToList <TriggeredAbility>(_triggeredAbility); _modifier.Initialize(ChangeTracker); _triggeredAbility.Initialize(OwningCard, Game); _abilities.AddModifier(_modifier); }
public override void Apply(TriggeredAbilities abilities) { if (!_triggered) { return; } _triggeredAbilities = abilities; _triggeredAbilitiesModifier = new SetList <TriggeredAbility>( new List <TriggeredAbility>()); _triggeredAbilitiesModifier.Initialize(ChangeTracker); _triggeredAbilities.AddModifier(_triggeredAbilitiesModifier); }
//this may need to be updated for future triggered abilities //this only works for simple triggered abilities public void RunTriggeredAbilities(PlayerAction playerAction, Card card) { foreach (var triggeredAbility in TriggeredAbilities.ToList()) { if (triggeredAbility.Trigger.IsMet(playerAction, card)) { if (triggeredAbility.TriggeredAbilityDurationType != TriggeredAbilityDurationType.Once) { triggeredAbility.Ability.Resolved = false; } RuleStack.Push(triggeredAbility.Ability); //we may not need this since resolved abilities won't play 2 times anyway // if (triggeredAbility.TriggeredAbilityDurationType == TriggeredAbilityDurationType.Once) // { // TriggeredAbilities.Remove(triggeredAbility); // } } } }
public override void Apply(TriggeredAbilities abilities) { abilities.DisableAll(); _triggeredAbilities = abilities; }
public override void Apply(TriggeredAbilities abilities) { _abilties = abilities; _triggeredAbility.Initialize(OwningCard, Game); _abilties.Add(_triggeredAbility); }
public override void Apply(TriggeredAbilities abilities) { _abilties = abilities; _triggeredAbility.Initialize(OwningCard, Game); _abilties.Add(_triggeredAbility); }
public override void Apply(TriggeredAbilities abilities) { abilities.DisableAll(); _triggeredAbilities = abilities; }