diff --git a/res/card-pictures.txt b/res/card-pictures.txt index 7d48835e479..700ead9fed4 100644 --- a/res/card-pictures.txt +++ b/res/card-pictures.txt @@ -38,6 +38,7 @@ snow_covered_mountain.jpg http://www.wizards.com/global/images/magic/gene snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg +martial_coup.jpg http://www.wizards.com/global/images/magic/general/martial_coup.jpg linvala_keeper_of_silence.jpg http://www.wizards.com/global/images/magic/general/linvala_keeper_of_silence.jpg nirkana_revenant.jpg http://www.wizards.com/global/images/magic/general/nirkana_revenant.jpg gigantomancer.jpg http://www.wizards.com/global/images/magic/general/gigantomancer.jpg diff --git a/res/cards.txt b/res/cards.txt index 6f1197dd663..80230173b56 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,8 @@ +Martial Coup +X W W +Sorcery +Put X 1/1 white Soldier creature tokens onto the battlefield. If X is 5 or more, destroy all other creatures. + Linvala, Keeper of Silence 2 W W Legendary Creature Angel diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 925bc330c4f..47277f1120f 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -9464,6 +9464,88 @@ public class CardFactory implements NewConstants { card.clearSpellAbility(); card.addSpellAbility(spell); }// *************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Martial Coup")) { + SpellAbility spell = new Spell(card) { + + private static final long serialVersionUID = -29101524966207L; + + @Override + public void resolve() { + CardList all = new CardList(); + all.addAll(AllZone.Human_Play.getCards()); + all.addAll(AllZone.Computer_Play.getCards()); + int Soldiers = card.getXManaCostPaid(); + for(int i = 0; i < Soldiers; i++) { + CardFactoryUtil.makeToken("Soldier", "W 1 1 Soldier", card, "W", new String[] { + "Creature", "Soldier"}, 1, 1, new String[] {""}); + } + if(Soldiers >= 5) { + for(int i = 0; i < all.size(); i++) { + Card c = all.get(i); + if(c.isCreature()) AllZone.GameAction.destroy(c); + } + } + }// resolve() + + @Override + public boolean canPlayAI() { + CardList human = new CardList(AllZone.Human_Play.getCards()); + CardList computer = new CardList(AllZone.Computer_Play.getCards()); + + human = human.getType("Creature"); + computer = computer.getType("Creature"); + + // the computer will at least destroy 2 more human creatures + return (computer.size() < human.size() - 1 + || (AllZone.Computer_Life.getLife() < 7 && !human.isEmpty())) && ComputerUtil.getAvailableMana().size() >= 7; + } + };// SpellAbility + card.clearSpellAbility(); + card.addSpellAbility(spell); + }// *************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Martial Coup")) { + SpellAbility spell = new Spell(card) { + + private static final long serialVersionUID = -29101524966207L; + + @Override + public void resolve() { + CardList all = new CardList(); + all.addAll(AllZone.Human_Play.getCards()); + all.addAll(AllZone.Computer_Play.getCards()); + int Soldiers = card.getXManaCostPaid(); + for(int i = 0; i < Soldiers; i++) { + CardFactoryUtil.makeToken("Soldier", "W 1 1 Soldier", card, "W", new String[] { + "Creature", "Soldier"}, 1, 1, new String[] {""}); + } + if(Soldiers >= 5) { + for(int i = 0; i < all.size(); i++) { + Card c = all.get(i); + if(c.isCreature()) AllZone.GameAction.destroy(c); + } + } + }// resolve() + + @Override + public boolean canPlayAI() { + CardList human = new CardList(AllZone.Human_Play.getCards()); + CardList computer = new CardList(AllZone.Computer_Play.getCards()); + + human = human.getType("Creature"); + computer = computer.getType("Creature"); + + // the computer will at least destroy 2 more human creatures + return (computer.size() < human.size() - 1 + || (AllZone.Computer_Life.getLife() < 7 && !human.isEmpty())) && ComputerUtil.getAvailableMana().size() >= 7; + } + };// SpellAbility + card.clearSpellAbility(); + card.addSpellAbility(spell); + }// *************** END ************ END ************************** //*************** START *********** START ************************** else if(cardName.equals("Day of Judgment")) {