diff --git a/src/forge/AllZoneUtil.java b/src/forge/AllZoneUtil.java index 054b4f49735..e885fde139f 100644 --- a/src/forge/AllZoneUtil.java +++ b/src/forge/AllZoneUtil.java @@ -572,4 +572,11 @@ public class AllZoneUtil { return all; } + + public static int getDoublingSeasonMagnitude(Player player) { + int multiplier = 1; + int doublingSeasons = getPlayerCardsInPlay(player, "Doubling Season").size(); + if(doublingSeasons > 0) multiplier = (int) Math.pow(2, doublingSeasons); + return multiplier; + } } \ No newline at end of file diff --git a/src/forge/Card.java b/src/forge/Card.java index f892589c9f0..63be5ed7339 100644 --- a/src/forge/Card.java +++ b/src/forge/Card.java @@ -327,10 +327,7 @@ public class Card extends MyObservable { } public void addCounter(Counters counterName, int n) { - int multiplier = 1; - int doublingSeasons = AllZoneUtil.getPlayerCardsInPlay(this.getController(), "Doubling Season").size(); - if(doublingSeasons > 0) multiplier = (int) Math.pow(2, doublingSeasons); - + int multiplier = AllZoneUtil.getDoublingSeasonMagnitude(this.getController()); if(counters.containsKey(counterName)) { Integer aux = counters.get(counterName) + (multiplier * n); counters.put(counterName, aux); diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 556dc5759b3..6cea231281c 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -10214,13 +10214,13 @@ public class CardFactory implements NewConstants { } public boolean canPlayAI() { - int m = (int)Math.pow(2, AllZoneUtil.getPlayerCardsInPlay(AllZone.ComputerPlayer, "Doubling Season").size()); + int m = AllZoneUtil.getDoublingSeasonMagnitude(AllZone.ComputerPlayer); int n = Math.max(1, Math.min((100-getSourceCard().getCounters(Counters.TOWER))/m, ComputerUtil.getAvailableMana().size())) ; setManaCost(n + ""); return !(new CardList(AllZone.Computer_Hand.getCards()).containsName("Doubling Season") && n>=5 ) && m*n >= Math.min(20, 100 - getSourceCard().getCounters(Counters.TOWER)); - //Persuming if AI cast the Pinnacle, it has green mana + //Presuming if AI cast the Pinnacle, it has green mana } }; ability.setBeforePayMana(new Input() diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index 3878d0fc9e7..5753ccb4878 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -544,15 +544,12 @@ public class CardFactory_Creatures { && getTargetCard().getController().equals(card.getController()) && CardFactoryUtil.canTarget(card, getTargetCard())) { - int multiplier = 1; - int doublingSeasons = AllZoneUtil.getPlayerCardsInPlay(card.getController(), "Doubling Season").size(); - if(doublingSeasons > 0) multiplier = (int) Math.pow(2, doublingSeasons); + int multiplier = AllZoneUtil.getDoublingSeasonMagnitude(card.getController()); Card[] crds = new Card[multiplier]; for (int i=0;i 0) multiplier = (int) Math.pow(2, doublingSeasons); + int multiplier = AllZoneUtil.getDoublingSeasonMagnitude(card.getController()); for(int i = 0; i < allTokens.size(); i++) { Card c = allTokens.get(i); diff --git a/src/forge/CardFactory_Sorceries.java b/src/forge/CardFactory_Sorceries.java index 490dc543126..68d3fc217a3 100644 --- a/src/forge/CardFactory_Sorceries.java +++ b/src/forge/CardFactory_Sorceries.java @@ -4284,11 +4284,8 @@ public class CardFactory_Sorceries { if(AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard())) { PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController()); - CardList DoublingSeasons = new CardList(play.getCards()); - DoublingSeasons = DoublingSeasons.getName("Doubling Season"); PlayerZone_ComesIntoPlay.SimultaneousEntry = true; - double Count = DoublingSeasons.size(); - Count = Math.pow(2,Count); + double Count = AllZoneUtil.getDoublingSeasonMagnitude(card.getController()); for(int i = 0; i < Count; i++) { if(i + 1== Count) PlayerZone_ComesIntoPlay.SimultaneousEntry = false; Card Copy = AllZone.CardFactory.copyCardintoNew(getTargetCard()); @@ -4354,11 +4351,8 @@ public class CardFactory_Sorceries { if(AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard())) { PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController()); - CardList DoublingSeasons = new CardList(play.getCards()); - DoublingSeasons = DoublingSeasons.getName("Doubling Season"); - PlayerZone_ComesIntoPlay.SimultaneousEntry = true; - int Count = DoublingSeasons.size(); - Count = 5 * (int)Math.pow(2,Count); + PlayerZone_ComesIntoPlay.SimultaneousEntry = true; + int Count = 5 * AllZoneUtil.getDoublingSeasonMagnitude(card.getController()); for(int i = 0; i < Count; i++) { if(i + 1 == Count) PlayerZone_ComesIntoPlay.SimultaneousEntry = false; Card Copy = AllZone.CardFactory.copyCardintoNew(getTargetCard());