public IEnumerable <T> GetContinuousEffects <T>(Card card) where T : ContinuousEffect { var abilities = Permanents.SelectMany(x => x.Abilities).OfType <StaticAbility>().Where(x => x.FunctionZone == ZoneType.BattleZone).ToList(); abilities.AddRange(ResolvingSpells.SelectMany(x => x.Abilities).OfType <StaticAbility>().Where(x => x.FunctionZone == ZoneType.SpellStack)); return(abilities.SelectMany(x => x.ContinuousEffects).OfType <T>().Union(ContinuousEffects.OfType <T>()).Where(x => x.Filters.All(f => f.Applies(card, this)))); }
protected override void Dispose(bool disposing) { if (disposing) { foreach (var x in ContinuousEffects) { x.Dispose(); } ContinuousEffects.Clear(); } }
protected virtual void Dispose(bool disposing) { if (disposing) { foreach (var x in ExtraTurns) { x.Dispose(); } ExtraTurns = null; foreach (var x in Players) { x.Dispose(); } Players.Clear(); foreach (var x in DelayedTriggeredAbilities) { x.Dispose(); } DelayedTriggeredAbilities.Clear(); ResolvingSpellAbilities = null; foreach (var x in ResolvingSpells) { x.Dispose(); } ResolvingSpells = null; foreach (var x in Turns) { x.Dispose(); } Turns.Clear(); foreach (var x in ContinuousEffects) { x.Dispose(); } ContinuousEffects.Clear(); } }
public MightyShouterAbility() { ContinuousEffects.Add(new MightyShouterAbilityEffect(new TargetFilter(), new Indefinite(), new CardMovedEvent(Guid.Empty, Guid.Empty, DuelMastersModels.Zones.ZoneType.BattleZone, DuelMastersModels.Zones.ZoneType.Graveyard))); }
public ChargerAbility() { ContinuousEffects.Add(new ChargerEffect(new TargetFilter(), new Indefinite())); FunctionZone = DuelMastersModels.Zones.ZoneType.SpellStack; }
public BlockerAbility() : base() { ContinuousEffects.Add(new BlockerEffect(new TargetFilter(), new Indefinite())); }
public PowerAttackerAbility(int power) { ContinuousEffects.Add(new PowerModifyingEffect(new List <CardFilter> { new AttackingCreatureFilter(), new TargetFilter() }, power, new Indefinite())); }
public CannotAttackPlayersAbility() : base() { ContinuousEffects.Add(new CannotAttackPlayersEffect(new TargetFilter(), new Indefinite())); }
public CanAttackUntappedCreaturesAbility() { ContinuousEffects.Add(new CanAttackUntappedCreaturesEffect(new TargetFilter(), new Indefinite())); }
public UnchoosableAbility() { ContinuousEffects.Add(new UnchoosableEffect(new TargetFilter(), new Indefinite())); }
public AttacksIfAbleAbility() : base() { ContinuousEffects.Add(new AttacksIfAbleEffect(new TargetFilter(), new Indefinite())); }
public PetrovaAbility() { //ContinuousEffects.Add(new PowerModifyingEffect(new NoneFilter(), 4000, new Indefinite())); ContinuousEffects.Add(new PetrovaChannelerOfSunsEffect(new TargetFilter(), new Indefinite(), new CardMovedEvent(Guid.Empty, Guid.Empty, DuelMastersModels.Zones.ZoneType.Anywhere, DuelMastersModels.Zones.ZoneType.BattleZone))); }
public UnblockableAbility(CardFilter blockerFilter) { ContinuousEffects.Add(new UnblockableEffect(new TargetFilter(), new Indefinite(), blockerFilter)); }
public DoubleBreakerAbility() : base() { ContinuousEffects.Add(new DoubleBreakerEffect(new TargetFilter(), new Indefinite())); }
public SlayerAbility() { ContinuousEffects.Add(new SlayerEffect(new TargetFilter(), new Indefinite())); }