From f6d1e1155991d6829342b4fd28ce5f0d228bdf7d Mon Sep 17 00:00:00 2001 From: Hellfish Date: Mon, 17 Oct 2011 20:56:14 +0000 Subject: [PATCH] *Added ThisTurnCast to xCount to complement ThisTurnEntered. Count$ThisTurnCast lets you count how many cards were cast so far this turn. StormCount remains, but is now functionally equivalent to ThisTurnCast Card. *Converted to script Ichneumon Druid Predatory Advantage Storm Entity Vengevine *Added Ethersworn Canonist --- .gitattributes | 1 + res/cardsfolder/e/ethersworn_canonist.txt | 14 ++ res/cardsfolder/i/ichneumon_druid.txt | 5 +- res/cardsfolder/p/predatory_advantage.txt | 5 +- res/cardsfolder/s/storm_entity.txt | 4 +- res/cardsfolder/v/vengevine.txt | 5 +- src/main/java/forge/CardUtil.java | 19 +- src/main/java/forge/ComputerAI_General.java | 2 +- src/main/java/forge/EndOfTurn.java | 1 - src/main/java/forge/GameActionUtil.java | 136 +--------- src/main/java/forge/MagicStack.java | 21 +- src/main/java/forge/Phase.java | 238 +----------------- .../card/cardFactory/CardFactoryUtil.java | 18 +- .../cardFactory/CardFactory_Creatures.java | 37 --- 14 files changed, 94 insertions(+), 412 deletions(-) create mode 100644 res/cardsfolder/e/ethersworn_canonist.txt diff --git a/.gitattributes b/.gitattributes index de11f8e2163..4af5b04c3aa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2498,6 +2498,7 @@ res/cardsfolder/e/etherium_abomination.txt svneol=native#text/plain res/cardsfolder/e/etherium_astrolabe.txt svneol=native#text/plain res/cardsfolder/e/etherium_sculptor.txt svneol=native#text/plain res/cardsfolder/e/ethersworn_adjudicator.txt svneol=native#text/plain +res/cardsfolder/e/ethersworn_canonist.txt -text res/cardsfolder/e/ethersworn_shieldmage.txt -text res/cardsfolder/e/evacuation.txt svneol=native#text/plain res/cardsfolder/e/evaporate.txt svneol=native#text/plain diff --git a/res/cardsfolder/e/ethersworn_canonist.txt b/res/cardsfolder/e/ethersworn_canonist.txt new file mode 100644 index 00000000000..5aa999296aa --- /dev/null +++ b/res/cardsfolder/e/ethersworn_canonist.txt @@ -0,0 +1,14 @@ +Name:Ethersworn Canonist +ManaCost:1 W +Types:Artifact Creature Human Cleric +Text:no text +PT:2/2 +S:Mode$ CantBeCast | ValidCard$ Card.nonArtifact | Caster$ You | CheckSVar$ X | Description$ Each player who has cast a nonartifact spell this turn can't cast additional nonartifact spells. +S:Mode$ CantBeCast | ValidCard$ Card.nonArtifact | Caster$ Opponent | CheckSVar$ Y +SVar:X:Count$ThisTurnCast Card.nonArtifact+YouCtrl +SVar:Y:Count$ThisTurnCast Card.nonArtifact+YouDontCtrl +SVar:RemRandomDeck:True +SVar:Rarity:Rare +SVar:Picture:http://www.wizards.com/global/images/magic/general/ethersworn_canonist.jpg +Oracle:Each player who has cast a nonartifact spell this turn can't cast additional nonartifact spells. +End \ No newline at end of file diff --git a/res/cardsfolder/i/ichneumon_druid.txt b/res/cardsfolder/i/ichneumon_druid.txt index 5f5ab1215b3..da340aa46ec 100644 --- a/res/cardsfolder/i/ichneumon_druid.txt +++ b/res/cardsfolder/i/ichneumon_druid.txt @@ -1,8 +1,11 @@ Name:Ichneumon Druid ManaCost:1 G G Types:Creature Human Druid -Text:Whenever an opponent casts an instant spell other than the first instant spell that player casts each turn, CARDNAME deals 4 damage to him or her. +Text:no text PT:1/1 +T:Mode$ SpellCast | ValidCard$ Instant | ValidControllingPlayer$ Opponent | CheckSVar$ X | SVarCompare$ GT1 | TriggerZones$ Battlefield | Execute$ TrigDmg | TriggerDescription$ Whenever an opponent casts an instant spell other than the first instant spell that player casts each turn, CARDNAME deals 4 damage to him or her. +SVar:TrigDmg:AB$DealDamage | Cost$ 0 | Defined$ TriggeredPlayer | NumDmg$ 4 +SVar:X:Count$ThisTurnCast Instant SVar:RemRandomDeck:True SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/ichneumon_druid.jpg diff --git a/res/cardsfolder/p/predatory_advantage.txt b/res/cardsfolder/p/predatory_advantage.txt index 5b93e3d72ad..5894fa809cb 100644 --- a/res/cardsfolder/p/predatory_advantage.txt +++ b/res/cardsfolder/p/predatory_advantage.txt @@ -1,7 +1,10 @@ Name:Predatory Advantage ManaCost:3 R G Types:Enchantment -Text:At the beginning of each opponent's end step, if that player didn't cast a creature spell this turn, put a 2/2 green Lizard creature token onto the battlefield. +Text:no text +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Opponent | CheckSVar$ X | SVarCompare$ EQ0 | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ At the beginning of each opponent's end step, if that player didn't cast a creature spell this turn, put a 2/2 green Lizard creature token onto the battlefield. +SVar:TrigToken:AB$Token | Cost$ 0 | TokenName$ Lizard | TokenTypes$ Creature,Lizard | TokenColors$ Green | TokenPower$ 2 | TokenToughness$ 2 | TokenAmount$ 1 | TokenOwner$ You +SVar:X:Count$ThisTurnCast Creature.YouDontCtrl SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/predatory_advantage.jpg SetInfo:ARB|Rare|http://magiccards.info/scans/en/arb/58.jpg diff --git a/res/cardsfolder/s/storm_entity.txt b/res/cardsfolder/s/storm_entity.txt index 39566c9ec71..f67ae91f0ca 100644 --- a/res/cardsfolder/s/storm_entity.txt +++ b/res/cardsfolder/s/storm_entity.txt @@ -1,9 +1,11 @@ Name:Storm Entity ManaCost:1 R Types:Creature Elemental -Text:CARDNAME enters the battlefield with a +1/+1 counter on it for each other spell cast this turn. +Text:no text PT:1/1 K:Haste +K:etbCounter:P1P1:X +SVar:X:Count$ThisTurnCast Card.Other SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/storm_entity.jpg SetInfo:FUT|Uncommon|http://magiccards.info/scans/en/fut/122.jpg diff --git a/res/cardsfolder/v/vengevine.txt b/res/cardsfolder/v/vengevine.txt index 33d87550fd3..68b93f9a0e0 100644 --- a/res/cardsfolder/v/vengevine.txt +++ b/res/cardsfolder/v/vengevine.txt @@ -1,9 +1,12 @@ Name:Vengevine ManaCost:2 G G Types:Creature Elemental -Text:Whenever you cast a spell, if it's the second creature spell you cast this turn, you may return Vengevine from your graveyard to the battlefield. +Text:no text PT:4/3 K:Haste +T:Mode$ SpellCast | ValidCard$ Creature | ValidControllingPlayer$ You | CheckSVar$ X | SVarCompare$ EQ2 | TriggerZones$ Graveyard | Execute$ TrigReturn | OptionalDecider$ You | TriggerDescription$ Whenever you cast a spell, if it's the second creature spell you cast this turn, you may return CARDNAME from your graveyard to the battlefield. +SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield +SVar:X:Count$ThisTurnCast Creature.YouCtrl SVar:Rarity:Mythic SVar:Picture:http://www.wizards.com/global/images/magic/general/vengevine.jpg SetInfo:ROE|Mythic|http://magiccards.info/scans/en/roe/212.jpg diff --git a/src/main/java/forge/CardUtil.java b/src/main/java/forge/CardUtil.java index f985c48c8a9..02cc948afdd 100644 --- a/src/main/java/forge/CardUtil.java +++ b/src/main/java/forge/CardUtil.java @@ -678,7 +678,7 @@ public final class CardUtil { * @param from zone coming from * @param valid a isValid expression * @param src a Card object - * @return a CardList that matches then given criteria + * @return a CardList that matches the given criteria */ public static CardList getThisTurnEntered(final Constant.Zone to, final Constant.Zone from, final String valid, final Card src) { CardList res = new CardList(); @@ -694,6 +694,23 @@ public final class CardUtil { return res; } + + /** + * getThisTurnCast. + * + * @param valid a String object + * @param src a Card object + * @return a CardList that matches the given criteria + */ + public static CardList getThisTurnCast(final String valid, final Card src) { + CardList res = new CardList(); + + res.addAll(AllZone.getStack().getCardsCastThisTurn()); + + res = res.getValidCards(valid, src.getController(), src); + + return res; + } /** * getLKICopy. diff --git a/src/main/java/forge/ComputerAI_General.java b/src/main/java/forge/ComputerAI_General.java index 7482c1c41a9..5313658f338 100644 --- a/src/main/java/forge/ComputerAI_General.java +++ b/src/main/java/forge/ComputerAI_General.java @@ -134,7 +134,7 @@ public class ComputerAI_General implements Computer { creatures2.add(creatures.get(i)); } } - if (creatures2.size() + Phase.getComputerStartingCardspellCount() > 1 + if (creatures2.size() + CardUtil.getThisTurnCast("Creature.YouCtrl", vengevines.get(0)).size() > 1 && c.isCreature() && CardUtil.getConvertedManaCost(c.getManaCost()) <= 3) { return true; diff --git a/src/main/java/forge/EndOfTurn.java b/src/main/java/forge/EndOfTurn.java index afd1a94402d..12462591943 100644 --- a/src/main/java/forge/EndOfTurn.java +++ b/src/main/java/forge/EndOfTurn.java @@ -54,7 +54,6 @@ public class EndOfTurn implements java.io.Serializable { //Pyrohemia and Pestilence CardList all = AllZoneUtil.getCardsIn(Zone.Battlefield); - GameActionUtil.endOfTurn_Predatory_Advantage(); GameActionUtil.endOfTurn_Wall_Of_Reverence(); GameActionUtil.endOfTurn_Lighthouse_Chronologist(); diff --git a/src/main/java/forge/GameActionUtil.java b/src/main/java/forge/GameActionUtil.java index 2cf0d66982a..7455be29dad 100644 --- a/src/main/java/forge/GameActionUtil.java +++ b/src/main/java/forge/GameActionUtil.java @@ -49,11 +49,8 @@ public final class GameActionUtil { playCard_Cascade(c); playCard_Ripple(c); - //playCard_Storm(sa); - playCard_Vengevine(c); playCard_Venser_Emblem(c); - playCard_Ichneumon_Druid(c); } @@ -68,19 +65,17 @@ public final class GameActionUtil { public void execute() { - CardList humanNexus = AllZone.getHumanPlayer().getCardsIn(Zone.Battlefield, "Maelstrom Nexus"); - CardList computerNexus = AllZone.getComputerPlayer().getCardsIn(Zone.Battlefield, "Maelstrom Nexus"); - - if (humanNexus.size() > 0) { - if (Phase.getPlayerSpellCount() == 1 && !c.isCopiedSpell()) { - for (int i = 0; i < humanNexus.size(); i++) { - doCascade(c); - } - } - } - if (computerNexus.size() > 0) { - if (Phase.getComputerSpellCount() == 1 && !c.isCopiedSpell()) { - for (int i = 0; i < computerNexus.size(); i++) { + if(!c.isCopiedSpell()) { + CardList humanNexus = AllZone.getHumanPlayer().getCardsIn(Zone.Battlefield, "Maelstrom Nexus"); + CardList computerNexus = AllZone.getComputerPlayer().getCardsIn(Zone.Battlefield, "Maelstrom Nexus"); + + CardList maelstromNexii = new CardList(); + maelstromNexii.addAll(humanNexus); + maelstromNexii.addAll(computerNexus); + + + for(Card nexus : maelstromNexii) { + if(CardUtil.getThisTurnCast("Card.YouCtrl", nexus).size() == 1) { doCascade(c); } } @@ -287,90 +282,6 @@ public final class GameActionUtil { ripple.execute(); } //playCard_Ripple() - /** - *

playCard_Storm.

- * - * @param sa a {@link forge.card.spellability.SpellAbility} object. - */ /* - public static void playCard_Storm(SpellAbility sa) { - Card source = sa.getSourceCard(); - if (!source.isCopiedSpell() - && source.hasKeyword("Storm")) { - int StormNumber = Phase.getStormCount() - 1; - for (int i = 0; i < StormNumber; i++) - AllZone.getCardFactory().copySpellontoStack(source, source, sa, true); - } - }//playCard_Storm() - */ - /** - *

playCard_Vengevine.

- * - * @param c a {@link forge.Card} object. - */ - public static void playCard_Vengevine(final Card c) { - if (c.isCreature() == true - && (Phase.getPlayerCreatureSpellCount() == 2 || Phase.getComputerStartingCardspellCount() == 2)) - { - final Player controller = c.getController(); - final PlayerZone play = controller.getZone(Constant.Zone.Battlefield); - CardList list = controller.getCardsIn(Zone.Graveyard); - list = list.getName("Vengevine"); - if (list.size() > 0) { - for (int i = 0; i < list.size(); i++) { - final Card card = list.get(i); - Ability ability = new Ability(card, "0") { - @Override - public void resolve() { - if (controller.isComputer() - || GameActionUtil.showYesNoDialog(card, "Return Vengevine from the graveyard?")) - { - if (controller.getZone(Zone.Graveyard).contains(card)) { - AllZone.getGameAction().moveTo(play, card); - } - } - } - }; // ability - - StringBuilder sb = new StringBuilder(); - sb.append(card).append(" - ").append("Whenever you cast a spell, if it's the second creature "); - sb.append("spell you cast this turn, you may return Vengevine from your graveyard to the battlefield."); - ability.setStackDescription(sb.toString()); - - AllZone.getStack().addSimultaneousStackEntry(ability); - - } - } //if - } - } //playCard_Vengevine() - - /** - *

playCard_Ichneumon_Druid.

- * - * @param c a {@link forge.Card} object. - */ - public static void playCard_Ichneumon_Druid(final Card c) { - if (c.isInstant() && (Phase.getPlayerInstantSpellCount() >= 2 || Phase.getComputerInstantSpellCount() >= 2)) { - final Player player = c.getController(); - final Player opp = player.getOpponent(); - CardList list = opp.getCardsIn(Zone.Battlefield, "Ichneumon Druid"); - for (int i = 0; i < list.size(); i++) { - final Card card = list.get(i); - Ability ability = new Ability(card, "0") { - @Override - public void resolve() { - player.addDamage(4, card); - } - }; // ability - - StringBuilder sb = new StringBuilder(); - sb.append(card).append(" - ").append("Whenever an opponent casts an instant spell other than the first instant spell that player casts each turn, Ichneumon Druid deals 4 damage to him or her."); - ability.setStackDescription(sb.toString()); - - AllZone.getStack().addSimultaneousStackEntry(ability); - } - } - } //playCard_Ichneumon_Druid() - /** *

playCard_Venser_Emblem.

* @@ -514,31 +425,6 @@ public final class GameActionUtil { } } //endOfTurn_Wall_Of_Reverence() - /** - *

endOfTurn_Predatory_Advantage.

- */ - public static void endOfTurn_Predatory_Advantage() { - final Player player = AllZone.getPhase().getPlayerTurn(); - CardList list = player.getOpponent().getCardsIn(Zone.Battlefield, "Predatory Advantage"); - for (int i = 0; i < list.size(); i++) { - final Player controller = list.get(i).getController(); - if ((player.isHuman() && Phase.getPlayerCreatureSpellCount() == 0) - || (player.isComputer() && Phase.getComputerStartingCardspellCount() == 0)) - { - Ability abTrig = new Ability(list.get(i), "0") { - public void resolve() { - CardFactoryUtil.makeToken("Lizard", "G 2 2 Lizard", controller, "G", - new String[]{"Creature", "Lizard"}, 2, 2, new String[]{""}); - } - }; - abTrig.setTrigger(true); - abTrig.setStackDescription("At the beginning of each opponent's end step, if that player didn't cast a creature spell this turn, put a 2/2 green Lizard creature token onto the battlefield."); - - AllZone.getGameAction().playSpellAbility(abTrig); - } - } - } - /** *

endOfTurn_Lighthouse_Chronologist.

*/ diff --git a/src/main/java/forge/MagicStack.java b/src/main/java/forge/MagicStack.java index 16d33e548de..b7744911c9e 100644 --- a/src/main/java/forge/MagicStack.java +++ b/src/main/java/forge/MagicStack.java @@ -40,6 +40,8 @@ public class MagicStack extends MyObservable { private boolean frozen = false; private boolean bResolving = false; private int splitSecondOnStack = 0; + + private CardList thisTurnCast = new CardList(); /** *

isFrozen.

@@ -314,7 +316,7 @@ public class MagicStack extends MyObservable { sp.resetOnceResolved(); return; } - + if (frozen) { SpellAbility_StackInstance si = new SpellAbility_StackInstance(sp); getFrozenStack().push(si); @@ -746,7 +748,7 @@ public class MagicStack extends MyObservable { this.updateObservers(); if (sp.isSpell() && !sp.getSourceCard().isCopiedSpell()) { - Phase.increaseSpellCount(sp); + thisTurnCast.add(sp.getSourceCard()); GameActionUtil.executePlayCardEffects(sp); } @@ -1210,5 +1212,18 @@ public class MagicStack extends MyObservable { return frozenStack; } - + /** + * Accessor for the field thisTurnCast. + * @return a CardList. + */ + public final CardList getCardsCastThisTurn() { + return thisTurnCast; + } + + /** + * clearCardsCastThisTurn. + */ + public void clearCardsCastThisTurn() { + thisTurnCast.clear(); + } } diff --git a/src/main/java/forge/Phase.java b/src/main/java/forge/Phase.java index d5e9bfadcaa..25b194cc965 100644 --- a/src/main/java/forge/Phase.java +++ b/src/main/java/forge/Phase.java @@ -28,20 +28,6 @@ public class Phase extends MyObservable implements java.io.Serializable { // accessing the following: /** Constant GameBegins=0 */ private static int GameBegins = 0; - /** Constant StormCount= */ - private static int StormCount; - /** Constant PlayerSpellCount= */ - private static int PlayerSpellCount; - /** Constant PlayerCreatureSpellCount= */ - private static int PlayerCreatureSpellCount; - /** Constant PlayerInstantSpellCount= */ - private static int PlayerInstantSpellCount; - /** Constant ComputerSpellCount= */ - private static int ComputerSpellCount; - /** Constant ComputerCreatureSpellCount= */ - private static int ComputerCreatureSpellCount; - /** Constant ComputerInstantSpellCount= */ - private static int ComputerInstantSpellCount; private Stack extraTurns = new Stack(); @@ -260,13 +246,6 @@ public class Phase extends MyObservable implements java.io.Serializable { *

turnReset.

*/ public void turnReset() { - setStormCount(0); - setPlayerSpellCount(0); - setPlayerCreatureSpellCount(0); - setPlayerInstantSpellCount(0); - setComputerSpellCount(0); - setComputerCreatureSpellCount(0); - setComputerInstantSpellCount(0); playerTurn.setNumLandsPlayed(0); } @@ -480,6 +459,7 @@ public class Phase extends MyObservable implements java.io.Serializable { private Player handleNextTurn() { Player nextTurn = extraTurns.isEmpty() ? getPlayerTurn().getOpponent() : extraTurns.pop(); + AllZone.getStack().clearCardsCastThisTurn(); AllZone.resetZoneMoveTracking(); AllZone.getComputerPlayer().resetProwl(); AllZone.getHumanPlayer().resetProwl(); @@ -795,114 +775,6 @@ public class Phase extends MyObservable implements java.io.Serializable { return sb.toString(); } - /** - *

increaseSpellCount.

- * - * @param sp a {@link forge.card.spellability.SpellAbility} object. - */ - public static void increaseSpellCount(final SpellAbility sp) { - incrementStormCount(); - - if (sp.getActivatingPlayer().isHuman()) { - incrementPlayerSpellCount(); - if (sp instanceof Spell_Permanent && sp.getSourceCard().isCreature()) { - incrementPlayerCreatureSpellCount(); - } - if (sp.getSourceCard().isInstant()) { - incrementPlayerInstantSpellCount(); - } - } else { - incrementComputerSpellCount(); - if (sp instanceof Spell_Permanent && sp.getSourceCard().isCreature()) { - incrementComputerCreatureSpellCount(); - } - if (sp.getSourceCard().isInstant()) { - incrementComputerInstantSpellCount(); - } - } - } - - /** - *

incrementComputerInstantSpellCount.

- * - * @since 1.0.15 - */ - protected static void incrementComputerInstantSpellCount() { - ComputerInstantSpellCount++; - } - - /** - *

incrementComputerCreatureSpellCount.

- * - * @since 1.0.15 - */ - protected static void incrementComputerCreatureSpellCount() { - ComputerCreatureSpellCount++; - } - - /** - *

incrementComputerSpellCount.

- * - * @since 1.0.15 - */ - protected static void incrementComputerSpellCount() { - ComputerSpellCount++; - } - - /** - *

incrementPlayerInstantSpellCount.

- * - * @since 1.0.15 - */ - protected static void incrementPlayerInstantSpellCount() { - PlayerInstantSpellCount++; - } - - /** - *

incrementPlayerCreatureSpellCount.

- * - * @since 1.0.15 - */ - protected static void incrementPlayerCreatureSpellCount() { - PlayerCreatureSpellCount++; - } - - /** - *

incrementPlayerSpellCount.

- * - * @since 1.0.15 - */ - protected static void incrementPlayerSpellCount() { - PlayerSpellCount++; - } - - /** - *

incrementStormCount.

- * - * @since 1.0.15 - */ - protected static void incrementStormCount() { - StormCount++; - } - - /** - *

setStormCount.

- * - * @param stormCount a int. - */ - public static void setStormCount(final int stormCount) { - StormCount = stormCount; - } - - /** - *

getStormCount.

- * - * @return a int. - */ - public static int getStormCount() { - return StormCount; - } - /** *

setGameBegins.

* @@ -932,114 +804,6 @@ public class Phase extends MyObservable implements java.io.Serializable { this.phaseIndex = findIndex(phaseID); } - /** - *

getPlayerSpellCount.

- * - * @return a int. - */ - static int getPlayerSpellCount() { - return PlayerSpellCount; - } - - /** - *

setPlayerSpellCount.

- * - * @param i a int. - */ - static void setPlayerSpellCount(final int i) { - PlayerSpellCount = (i); - } - - /** - *

getPlayerCreatureSpellCount.

- * - * @return a int. - */ - static int getPlayerCreatureSpellCount() { - return PlayerCreatureSpellCount; - } - - /** - *

setPlayerCreatureSpellCount.

- * - * @param i a int. - */ - static void setPlayerCreatureSpellCount(final int i) { - PlayerCreatureSpellCount = (i); - } - - /** - *

getPlayerInstantSpellCount.

- * - * @return a int. - */ - static int getPlayerInstantSpellCount() { - return PlayerInstantSpellCount; - } - - /** - *

setPlayerInstantSpellCount.

- * - * @param i a int. - */ - static void setPlayerInstantSpellCount(final int i) { - PlayerInstantSpellCount = (i); - } - - /** - *

getComputerSpellCount.

- * - * @return a int. - */ - static int getComputerSpellCount() { - return ComputerSpellCount; - } - - /** - *

setComputerSpellCount.

- * - * @param i a int. - */ - static void setComputerSpellCount(final int i) { - ComputerSpellCount = (i); - } - - /** - *

getComputerStartingCardspellCount.

- * - * @return a int. - */ - static int getComputerStartingCardspellCount() { - return ComputerCreatureSpellCount; - } - - /** - *

setComputerCreatureSpellCount.

- * - * @param i a int. - */ - static void setComputerCreatureSpellCount(final int i) { - ComputerCreatureSpellCount = (i); - } - - /** - *

getComputerInstantSpellCount.

- * - * @return a int. - */ - static int getComputerInstantSpellCount() { - return ComputerInstantSpellCount; - } - - /** - *

setComputerInstantSpellCount.

- * - * @param i a int. - */ - static void setComputerInstantSpellCount(final int i) { - ComputerInstantSpellCount = (i); - } - /** * * TODO Write javadoc for this method. diff --git a/src/main/java/forge/card/cardFactory/CardFactoryUtil.java b/src/main/java/forge/card/cardFactory/CardFactoryUtil.java index 19598a6f783..e2fc596c97b 100644 --- a/src/main/java/forge/card/cardFactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardFactory/CardFactoryUtil.java @@ -2947,7 +2947,7 @@ public class CardFactoryUtil { } if (sq[0].equals("StormCount")) { - return doXMath(Phase.getStormCount() - 1, m, c); + return doXMath(AllZone.getStack().getCardsCastThisTurn().size() - 1, m, c); } if(sq[0].equals("DamageDoneThisTurn")) { @@ -3190,8 +3190,8 @@ public class CardFactoryUtil { // Count$ThisTurnEntered // or - // Count$ThisTurnEntered - if (sq[0].startsWith("ThisTurnEntered")) { + // Count$ThisTurnEntered + if (sq[0].contains("ThisTurnEntered")) { String[] workingCopy = l[0].split(" "); Zone destination, origin; String validFilter; @@ -3209,6 +3209,18 @@ public class CardFactoryUtil { return doXMath(res.size(), m, c); } + + // Count$ThisTurnCast + if(sq[0].contains("ThisTurnCast")) { + String[] workingCopy = l[0].split(" "); + String validFilter = workingCopy[1]; + + CardList res = CardUtil.getThisTurnCast(validFilter, c); + + int ret = doXMath(res.size(), m, c); + System.out.println("Requesting ThisTurn Cast \"" + validFilter + "\", returning " + ret); + return ret; + } // Count$Morbid.. diff --git a/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java b/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java index 9fc81a81379..dd89462e439 100644 --- a/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java +++ b/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java @@ -1642,43 +1642,6 @@ public class CardFactory_Creatures { card.addComesIntoPlayCommand(comesIntoPlay); }//*************** END ************ END ************************** - - //*************** START *********** START ************************** - else if (cardName.equals("Storm Entity")) { - final SpellAbility intoPlay = new Ability(card, "0") { - - @Override - public boolean canPlayAI() { - CardList human = AllZoneUtil.getCreaturesInPlay(AllZone.getHumanPlayer()); - CardListUtil.sortAttack(human); - return (human.get(0).getNetAttack() < Phase.getStormCount() && Phase.getStormCount() > 1); - } - - @Override - public void resolve() { - for (int i = 0; i < Phase.getStormCount() - 1; i++) { - card.addCounter(Counters.P1P1, 1); - } - } - };//SpellAbility - - Command comesIntoPlay = new Command() { - private static final long serialVersionUID = -3734151854295L; - - public void execute() { - AllZone.getStack().addSimultaneousStackEntry(intoPlay); - - } - }; - - StringBuilder sb = new StringBuilder(); - sb.append(cardName).append(" - enters the battlefield with a +1/+1 counter on it for each other spell played this turn."); - intoPlay.setStackDescription(sb.toString()); - - card.addComesIntoPlayCommand(comesIntoPlay); - }//*************** END ************ END ************************** - - //*************** START *********** START ************************** else if (cardName.equals("Vampire Hexmage")) { /*