Exemplo n.º 1
0
        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))));
        }
Exemplo n.º 2
0
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         foreach (var x in ContinuousEffects)
         {
             x.Dispose();
         }
         ContinuousEffects.Clear();
     }
 }
Exemplo n.º 3
0
 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();
     }
 }
Exemplo n.º 4
0
 public MightyShouterAbility()
 {
     ContinuousEffects.Add(new MightyShouterAbilityEffect(new TargetFilter(), new Indefinite(), new CardMovedEvent(Guid.Empty, Guid.Empty, DuelMastersModels.Zones.ZoneType.BattleZone, DuelMastersModels.Zones.ZoneType.Graveyard)));
 }
Exemplo n.º 5
0
 public ChargerAbility()
 {
     ContinuousEffects.Add(new ChargerEffect(new TargetFilter(), new Indefinite()));
     FunctionZone = DuelMastersModels.Zones.ZoneType.SpellStack;
 }
Exemplo n.º 6
0
 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()));
 }
Exemplo n.º 9
0
 public CanAttackUntappedCreaturesAbility()
 {
     ContinuousEffects.Add(new CanAttackUntappedCreaturesEffect(new TargetFilter(), new Indefinite()));
 }
Exemplo n.º 10
0
 public UnchoosableAbility()
 {
     ContinuousEffects.Add(new UnchoosableEffect(new TargetFilter(), new Indefinite()));
 }
Exemplo n.º 11
0
 public AttacksIfAbleAbility() : base()
 {
     ContinuousEffects.Add(new AttacksIfAbleEffect(new TargetFilter(), new Indefinite()));
 }
Exemplo n.º 12
0
 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)));
 }
Exemplo n.º 13
0
 public UnblockableAbility(CardFilter blockerFilter)
 {
     ContinuousEffects.Add(new UnblockableEffect(new TargetFilter(), new Indefinite(), blockerFilter));
 }
Exemplo n.º 14
0
 public DoubleBreakerAbility() : base()
 {
     ContinuousEffects.Add(new DoubleBreakerEffect(new TargetFilter(), new Indefinite()));
 }
Exemplo n.º 15
0
 public SlayerAbility()
 {
     ContinuousEffects.Add(new SlayerEffect(new TargetFilter(), new Indefinite()));
 }