private static Card CreateCreature(string name, int attack, int health) { Card card = new Card(name); card.AddComponent(new CreatureComponent(attack, health)); card.AddAbility(new PlayCard()); card.AddAbility(new Attack()); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Land }, new[] { "Island", "Mountain" }, false, false, false); card._attrs = MtgCardAttribute.GetAttribute(GetType()); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Blue), "{T}: Add {U}")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Red), "{T}: Add {R}")); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Land }, new[] { "Swamp", "Forest" }, false, false, false); card._attrs = MtgCard; card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Black), "{T}: Add {B}")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Green), "{T}: Add {G}")); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Land }, new[] { "Plains", "Swamp" }, false, false, false); card._attrs = MtgCardAttribute.GetAttribute(GetType()); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.White), "{T}: Add {W}")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Black), "{T}: Add {B}")); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Land }, null, false, false, false); card._attrs = MtgCardAttribute.GetAttribute(GetType()); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Colorless), "{T}: Add {C}")); card.AddAbility(new CopyAbility(card)); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Artifact }, null, false, false); card._attrs = MtgCardAttribute.GetAttribute(GetType()); card.AddAbility(new ManaAbility(card, new AggregateCost(card, new TapCost(card), new SacrificeSourceCost(card)), new ManaAmount(3, ManaColor.White), "{T}, Sacrifice Black Lotus: Add {W}{W}{W}")); card.AddAbility(new ManaAbility(card, new AggregateCost(card, new TapCost(card), new SacrificeSourceCost(card)), new ManaAmount(3, ManaColor.Blue), "{T}, Sacrifice Black Lotus: Add {U}{U}{U}")); card.AddAbility(new ManaAbility(card, new AggregateCost(card, new TapCost(card), new SacrificeSourceCost(card)), new ManaAmount(3, ManaColor.Black), "{T}, Sacrifice Black Lotus: Add {B}{B}{B}")); card.AddAbility(new ManaAbility(card, new AggregateCost(card, new TapCost(card), new SacrificeSourceCost(card)), new ManaAmount(3, ManaColor.Red), "{T}, Sacrifice Black Lotus: Add {R}{R}{R}")); card.AddAbility(new ManaAbility(card, new AggregateCost(card, new TapCost(card), new SacrificeSourceCost(card)), new ManaAmount(3, ManaColor.Green), "{T}, Sacrifice Black Lotus: Add {G}{G}{G}")); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Artifact, CardType.Creature }, new[] { "Myr" }, false, 2, 2, false, false); card._attrs = MtgCardAttribute.GetAttribute(GetType()); card.Cost = ManaCost.Parse(card, "{3}"); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.White), "{T}: Add {W}.")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Blue), "{T}: Add {U}.")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Black), "{T}: Add {B}.")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Red), "{T}: Add {R}.")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Green), "{T}: Add {G}.")); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Artifact }, null, false); card._attrs = CardAttrs; card.Cost = ManaCost.Parse(card, "{3}"); card.AddAbility(new ManaAbility(card, new AggregateCost(card, ManaCost.Parse(card, "{2}"), new TapCost(card)), new ManaAmount(1, ManaColor.White), "{2}{T}: Add {W}.")); card.AddAbility(new ManaAbility(card, new AggregateCost(card, ManaCost.Parse(card, "{2}"), new TapCost(card)), new ManaAmount(1, ManaColor.Blue), "{2}{T}: Add {U}.")); card.AddAbility(new ManaAbility(card, new AggregateCost(card, ManaCost.Parse(card, "{2}"), new TapCost(card)), new ManaAmount(1, ManaColor.Black), "{2}{T}: Add {B}.")); card.AddAbility(new ManaAbility(card, new AggregateCost(card, ManaCost.Parse(card, "{2}"), new TapCost(card)), new ManaAmount(1, ManaColor.Red), "{2}{T}: Add {R}.")); card.AddAbility(new ManaAbility(card, new AggregateCost(card, ManaCost.Parse(card, "{2}"), new TapCost(card)), new ManaAmount(1, ManaColor.Green), "{2}{T}: Add {G}.")); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Land }, null, false, true, true); card._attrs = MtgCardAttribute.GetAttribute(GetType()); // Dark Depths enters the battlefield with 10 ice counters on it card.AddCounters(card, 10, CounterType.Ice); // {3}: Remove an ice counter from Dark Depths card.AddAbility(new DarkDepthsAbility(card)); // When Dark Depths has no ice counters on it, sacrifice it. If you do, create Marit Lage, a legendary 20/20 black Avatar creature token with flying and indestructible card.AddAbility(new MaritLageAbility(card)); return(card); }
public static Card CreateSoulReaper() { Card card = CreateCreature("Похититель Душ", 1, 1); card.AddAbility(new InstantKill()); return(card); }
public static Card CreateLeeroyJenkins() { Card card = CreateCreature("Лерой Дженкинс", 1, 1); card.AddAbility(new DumpAttack(1)); return(card); }
public static Card CreateFireball() { Card card = CreateCharm("Огненный шар"); card.AddAbility(new Fireball(3)); return(card); }
public static Card CreateHealer() { Card card = CreateCreature("Лекарь", 1, 3); card.AddAbility(new Heal(2)); return(card); }
public static Card CreateSpearman() { Card card = CreateCreature("Копейщик", 1, 2); card.AddAbility(new InstantFury(3)); return(card); }
public static Card CreateShovel() { Card card = CreateCharm("Лопата"); card.AddAbility(new Revive()); return(card); }
public static Card CreateBerserker() { Card card = CreateCreature("Берсеркер", 1, 4); card.AddAbility(new Rage(1)); return(card); }
public static Card CreateGrace() { Card card = CreateCharm("Благодать"); card.AddAbility(new Grace(1)); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Creature }, new[] { "Bird" }, false, 0, 1, false, false); card._attrs = MtgCard; card.Cost = ManaCost.Parse(card, "{G}"); card.AddStaticAbility(StaticAbility.Flying); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.White), "{T}: Add {W}")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Blue), "{T}: Add {U}")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Black), "{T}: Add {B}")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Red), "{T}: Add {R}")); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Green), "{T}: Add {G}")); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Artifact }, null, false, false); card._attrs = MtgCard; card.Cost = ManaCost.Parse(card, "{3}"); // {T}: Add {C}{C}{C} card.AddAbility(new ManaAbility(card, new TapCost(card), new ManaAmount(3, ManaColor.Colorless), "{T}: Add {C}{C}{C}")); // {3}: Untap Basalt Monolith card.AddAbility(new BasaltMonolithUntapAbility(card)); // Basalt monolith doesn't untap during your untap step card.UntapsDuringUntapStep = () => false; return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Artifact }, null, false, false); card._attrs = MtgCard; card.Cost = ManaCost.Parse(card, "{2}"); card.AddAbility(new AnkhOfMishraAbility(card)); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Artifact }, null, false, false); card._attrs = MtgCardAttribute.GetAttribute(GetType()); card.Cost = ManaCost.Parse(card, "{3}"); card.AddAbility(new ManaAbility(card, new SacrificeCreatureCost(card), new Common.Mana.ManaAmount(2, ManaColor.Colorless), "Sacrifice a Creature: Add {C}{C}.")); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Creature }, new[] { "Wurm" }, false, 7, 7, false, false); card._attrs = MtgCardAttribute.GetAttribute(GetType()); card.Cost = ManaCost.Parse(card, "{5}{G}{G}"); card.AddAbility(new EngulfingSlagwurmAbility(card)); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Creature }, new[] { "Harpy" }, false, 1, 2, false, false); card._attrs = MtgCardAttribute.GetAttribute(GetType()); card.Cost = ManaCost.Parse(card, "{2}{B}"); card.AddStaticAbility(StaticAbility.Flying); card.AddAbility(new RavenousHarpyAbility(card)); return(card); }
protected Card GetBasicLandCard(Player owner, ManaColor color, CardType[] types, string[] subtypes, bool isSnow) { var card = new Card(owner, types, subtypes, true, 0, 0, false, isSnow); card._attrs = CardAttrs; // Basic Lands tap for 1 mana of their specific color var cost = new TapCost(card); var manaGenerated = new ManaAmount(1, color); card.AddAbility(new ManaAbility(card, cost, manaGenerated, $"{cost}: Add {manaGenerated}")); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Artifact, CardType.Creature }, new[] { "Myr" }, false, 1, 1, false, false); card._attrs = MtgCardAttribute.GetAttribute(GetType()); card.Cost = ManaCost.Parse(card, "{2}"); card.AddStaticAbility(StaticAbility.Infect); card.AddAbility(new ManaAbility(card, new TapCost(card), new Common.Mana.ManaAmount(1, ManaColor.Colorless), "{T}: Add {C}.")); return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Artifact }, null, false, false, false); card._attrs = MtgCard; card.Cost = ManaCost.Parse(card, "{1}"); card.AddAbility(new BlackViseAbility(card)); card.OnResolve = (g, c) => { var chosenPlayer = c.Controller.ChoosePlayer("As Black Vise enters the battlefield, choose an opponent.", g.Players().Except(new[] { c.Controller })); c.SetVar("Chosen Player", chosenPlayer); }; return(card); }
public override Card GetCard(Player owner) { var card = new Card(owner, new[] { CardType.Artifact }, null, false, false); card._attrs = MtgCardAttribute.GetAttribute(GetType()); card.Cost = ManaCost.Parse(card, "{X}{X}{X}"); // This must be a new delegate every time. Otherwise we lose the card reference (card.Cost as ManaCost).ValueforXChosen += (x => card.SetVar("X", x)); card.AddAbility(new AstralCornucopiaManaAbility(card)); card.OnResolve = (g, c) => { c.AddCounters(c, c.GetVar <int>("X"), CounterType.Charge); }; return(card); }