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