From abc48fa8c0edaeca19667fdb1037bbcf384471ff Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 03:13:35 +0000 Subject: [PATCH] - Fixed Mutavault. - After taking control of it, Elspeth's ult should correctly affect the controller's creatures now. - Echoing Truth will remove tokens from the game, instead of destroying them. --- res/main.properties | 2 +- src/forge/CardFactory.java | 7 +---- src/forge/CardFactory_Lands.java | 9 +++---- src/forge/CardFactory_Planeswalkers.java | 8 +++--- src/forge/Deck.java | 4 ++- src/forge/GameAction.java | 34 ++++++++++++++++++++++++ src/forge/GameActionUtil.java | 1 + 7 files changed, 48 insertions(+), 17 deletions(-) diff --git a/res/main.properties b/res/main.properties index 4bb884530bb..fd1ec6945ab 100644 --- a/res/main.properties +++ b/res/main.properties @@ -1,6 +1,6 @@ program/mail=mtgerror@yahoo.com program/forum=http://www.slightlymagic.net/forum/viewforum.php?f=26 -program/version=Forge -- official beta: 10/01/01, SVN revision: 274 +program/version=Forge -- official beta: 10/01/01, SVN revision: 275 tokens--file=AllTokens.txt diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 94d22b18aa8..24178d57563 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -9752,7 +9752,7 @@ public class CardFactory implements NewConstants { for(int i = 0; i < sameName.size(); i++) { if(sameName.get(i).isToken()) - AllZone.GameAction.destroy(sameName.get(i)); + AllZone.GameAction.removeFromGame(sameName.get(i)); else { PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, sameName.get(i).getOwner()); @@ -9820,12 +9820,7 @@ public class CardFactory implements NewConstants { else { PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, getTargetCard().getOwner()); - @SuppressWarnings("unused") // play - PlayerZone play = AllZone.getZone(Constant.Zone.Play, getTargetCard().getOwner()); AllZone.GameAction.moveTo(hand, getTargetCard()); - - //play.remove(getTargetCard()); - //hand.add(getTargetCard()); } AllZone.GameAction.drawCard(card.getController()); }//if diff --git a/src/forge/CardFactory_Lands.java b/src/forge/CardFactory_Lands.java index 8b17b0d4678..96ff3a43f09 100644 --- a/src/forge/CardFactory_Lands.java +++ b/src/forge/CardFactory_Lands.java @@ -2019,7 +2019,7 @@ class CardFactory_Lands { } };//SpellAbility - card.clearSpellAbility(); + card.clearSpellKeepManaAbility(); card.addSpellAbility(a1); a1.setDescription("1: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land."); a1.setStackDescription(card +" becomes a 2/2 creature with changeling until EOT"); @@ -2923,14 +2923,13 @@ class CardFactory_Lands { public void execute() { - Card c = card; - - c.setBaseAttack(0); - c.setBaseDefense(0); + Card c = card; c.removeType("Creature"); c.removeType("Zombie"); c.removeType("Plant"); c.setManaCost(""); + c.setBaseAttack(0); + c.setBaseDefense(0); } }; diff --git a/src/forge/CardFactory_Planeswalkers.java b/src/forge/CardFactory_Planeswalkers.java index 058ae4f3685..72e670b9110 100644 --- a/src/forge/CardFactory_Planeswalkers.java +++ b/src/forge/CardFactory_Planeswalkers.java @@ -120,10 +120,10 @@ class CardFactory_Planeswalkers { turn[0] = AllZone.Phase.getTurn(); //make all permanents in play/hand/library and graveyard - PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController()); - PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController()); - PlayerZone library = AllZone.getZone(Constant.Zone.Library, card.getController()); - PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController()); + PlayerZone play = AllZone.getZone(Constant.Zone.Play, card2.getController()); + PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card2.getController()); + PlayerZone library = AllZone.getZone(Constant.Zone.Library, card2.getController()); + PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card2.getController()); CardList list = new CardList(); list.addAll(play.getCards()); diff --git a/src/forge/Deck.java b/src/forge/Deck.java index a5b9f102f36..6321485b721 100644 --- a/src/forge/Deck.java +++ b/src/forge/Deck.java @@ -135,7 +135,9 @@ public class Deck implements java.io.Serializable { class DeckSort implements Comparator, java.io.Serializable { - public int compare(Object a, Object b) { + private static final long serialVersionUID = 6988753027196688633L; + + public int compare(Object a, Object b) { String a1 = ((Deck) a).getName(); String b1 = ((Deck) b).getName(); diff --git a/src/forge/GameAction.java b/src/forge/GameAction.java index 53c943bcee7..ff2498e45cd 100644 --- a/src/forge/GameAction.java +++ b/src/forge/GameAction.java @@ -1236,6 +1236,40 @@ private int getDifferentLand(CardList list, String land) playSpellAbility(sa); } } + + public void playCardNoCost(Card c) + { + SpellAbility[] choices = canPlaySpellAbility(c.getSpellAbility()); + SpellAbility sa; + /* + System.out.println(choices.length); + for(int i = 0; i < choices.length; i++) + System.out.println(choices[i]); + */ + if(choices.length == 0) + return; + else if(choices.length == 1) + sa = choices[0]; + else + sa = (SpellAbility) AllZone.Display.getChoiceOptional("Choose", choices); + + if(sa == null) + return; + + playSpellAbilityForFree(sa); + } + + public void playSpellAbilityForFree(SpellAbility sa) + { + if (sa.getBeforePayMana() == null){ + AllZone.Stack.add(sa); + if (sa.isTapAbility()) + sa.getSourceCard().tap(); + } + else + AllZone.InputControl.setInput(sa.getBeforePayMana()); + } + public void playSpellAbility(SpellAbility sa) { if (sa.getManaCost().equals("0") && sa.getBeforePayMana() == null){ diff --git a/src/forge/GameActionUtil.java b/src/forge/GameActionUtil.java index c2f72de27b6..5b8ee3c9f82 100644 --- a/src/forge/GameActionUtil.java +++ b/src/forge/GameActionUtil.java @@ -140,6 +140,7 @@ public class GameActionUtil playCard_Mold_Adder(c); playCard_Fable_of_Wolf_and_Owl(c); } + public static void playCard_Emberstrike_Duo(Card c) { final String controller = c.getController();