From d1ef107b489ed78e6959ab5c8eacdeb350888f15 Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 4 Dec 2013 07:05:50 +0000 Subject: [PATCH] - Added Chorus of the Conclave --- .gitattributes | 1 + .../cardsfolder/c/chorus_of_the_conclave.txt | 8 ++++ .../src/main/java/forge/game/card/Card.java | 4 ++ .../main/java/forge/game/zone/MagicStack.java | 37 ++++++++++++++++++- 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/c/chorus_of_the_conclave.txt diff --git a/.gitattributes b/.gitattributes index bacf3c71404..c2b69a8a4ff 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1983,6 +1983,7 @@ forge-gui/res/cardsfolder/c/choking_vines.txt -text forge-gui/res/cardsfolder/c/choose_your_champion.txt -text forge-gui/res/cardsfolder/c/chord_of_calling.txt -text forge-gui/res/cardsfolder/c/chorus_of_might.txt -text +forge-gui/res/cardsfolder/c/chorus_of_the_conclave.txt -text forge-gui/res/cardsfolder/c/chorus_of_woe.txt svneol=native#text/plain forge-gui/res/cardsfolder/c/chosen_by_heliod.txt -text forge-gui/res/cardsfolder/c/chosen_of_markov_markovs_servant.txt -text diff --git a/forge-gui/res/cardsfolder/c/chorus_of_the_conclave.txt b/forge-gui/res/cardsfolder/c/chorus_of_the_conclave.txt new file mode 100644 index 00000000000..211ef122f3c --- /dev/null +++ b/forge-gui/res/cardsfolder/c/chorus_of_the_conclave.txt @@ -0,0 +1,8 @@ +Name:Chorus of the Conclave +ManaCost:4 G G W W +Types:Legendary Creature Dryad +PT:3/8 +K:Forestwalk +K:As an additional cost to cast creature spells, you may pay any amount of mana. If you do, that creature enters the battlefield with that many additional +1/+1 counters on it. +SVar:Picture:http://www.wizards.com/global/images/magic/general/chorus_of_the_conclave.jpg +Oracle:Forestwalk\nAs an additional cost to cast creature spells, you may pay any amount of mana. If you do, that creature enters the battlefield with that many additional +1/+1 counters on it. diff --git a/forge-gui/src/main/java/forge/game/card/Card.java b/forge-gui/src/main/java/forge/game/card/Card.java index 8fc1e638e7e..06ea4786342 100644 --- a/forge-gui/src/main/java/forge/game/card/Card.java +++ b/forge-gui/src/main/java/forge/game/card/Card.java @@ -4046,6 +4046,10 @@ public class Card extends GameEntity implements Comparable { return hasK1 == costsPaid.contains(OptionalCost.Kicker2) ? (hasK1 ? 2 : 0) : 1; } + private int pseudoKickerMagnitude = 0; + public final void addPseudoMultiKickerMagnitude(final int n) { this.pseudoKickerMagnitude += n; } + public final void setPseudoMultiKickerMagnitude(final int n) { this.pseudoKickerMagnitude = n; } + public final int getPseudoKickerMagnitude() { return pseudoKickerMagnitude; } // for cards like Giant Growth, etc. /** diff --git a/forge-gui/src/main/java/forge/game/zone/MagicStack.java b/forge-gui/src/main/java/forge/game/zone/MagicStack.java index 37af0f2ef13..348a800c937 100644 --- a/forge-gui/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-gui/src/main/java/forge/game/zone/MagicStack.java @@ -55,6 +55,9 @@ import forge.game.event.GameEventSpellResolved; import forge.game.player.HumanPlay; import forge.game.player.Player; import forge.game.player.PlayerController.ManaPaymentPurpose; +import forge.game.replacement.ReplacementEffect; +import forge.game.replacement.ReplacementHandler; +import forge.game.replacement.ReplacementLayer; import forge.game.spellability.Ability; import forge.game.spellability.AbilityStatic; import forge.game.spellability.AbilityTriggered; @@ -338,7 +341,39 @@ public class MagicStack /* extends MyObservable */ implements Iterable 0) { + String abStr = "AB$ ChangeZone | Cost$ 0 | Hidden$ True | Origin$ All | Destination$ Battlefield" + + "| Defined$ ReplacedCard | SubAbility$ ChorusDBETBCounters"; + String dbStr = "DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ " + source.getPseudoKickerMagnitude(); + + source.setSVar("ChorusETBCounters", abStr); + source.setSVar("ChorusDBETBCounters", dbStr); + + String repeffstr = "Event$ Moved | ValidCard$ Card.Self | Destination$ Battlefield " + + "| ReplaceWith$ ChorusETBCounters | Secondary$ True | Description$ CARDNAME" + + " enters the battlefield with " + source.getPseudoKickerMagnitude() + " +1/+1 counters."; + + ReplacementEffect re = ReplacementHandler.parseReplacement(repeffstr, source, false); + re.setLayer(ReplacementLayer.Other); + + source.addReplacementEffect(re); + } + } + // The ability is added to stack HERE si = this.push(sp);