示例#1
0
        public override void Resolve(Duel duel, Decision decision)
        {
            // Destroy one of your opponent's creatures that has "blocker."
            var controller = duel.GetPlayer(Controller);
            var blocker    = new List <Card>();

            if (decision == null)
            {
                var blockers = duel.GetOpponent(controller).BattleZone.GetChoosableCreatures(duel).Where(c => c.Abilities.OfType <BlockerAbility>().Any());
                if (blockers.Count() > 1)
                {
                    duel.SetAwaitingChoice(new GuidSelection(controller.Id, blockers, 1, 1));
                }
                else if (blockers.Any())
                {
                    blocker = blockers.ToList();
                }
            }
            else
            {
                blocker = (decision as GuidDecision).Decision.Select(x => duel.GetPermanent(x)).ToList();
            }
            duel.Destroy(blocker);

            // Then put the top card of your deck into your mana zone.
            controller.PutFromTopOfDeckIntoManaZone(duel);
        }
示例#2
0
 public override void Resolve(Duel duel, Decision decision)
 {
     if (decision == null)
     {
         var permanents = duel.GetOpponent(duel.GetPlayer(Controller)).BattleZone.GetChoosableCreatures(duel).Where(x => Filters.All(f => f.Applies(x, duel)));
         if (permanents.Count() > 1)
         {
             duel.SetAwaitingChoice(new GuidSelection(Controller, permanents, 1, 1));
         }
         else if (permanents.Any())
         {
             duel.Destroy(permanents);
         }
     }
     else
     {
         duel.Destroy((decision as GuidDecision).Decision.Select(x => duel.GetPermanent(x)));
     }
 }
        public override void Resolve(Duel duel, Decision decision)
        {
            // When you put this creature into the battle zone, destroy all other creatures that have power 6000,
            duel.Destroy(duel.CreaturePermanents.Where(p => p.Id != Source && duel.GetPower(p) == 6000).ToList());
            // then take an extra turn after this one.
            Turn turn = new Turn {
                ActivePlayer = Controller, NonActivePlayer = duel.GetOpponent(Controller)
            };

            duel.ExtraTurns.Enqueue(turn);
            // You lose the game at the end of the extra turn.
            duel.DelayedTriggeredAbilities.Add(new DelayedTriggeredAbility(new AtTheEndOfTurnAbility(turn.Id, new YouLoseTheGameAtTheEndOfTheExtraTurnResolvable()), new Once(), Source, Controller));
        }
 public override void Resolve(Duel duel, Decision decision)
 {
     duel.Destroy(duel.CreaturePermanents.Where(x => Filter.Applies(x, duel)).ToList());
 }