- Added Pools of Becoming

This commit is contained in:
swordshine
2013-12-27 12:59:31 +00:00
parent 12e80be6d1
commit e222c0f7a9
7 changed files with 60 additions and 4 deletions

2
.gitattributes vendored
View File

@@ -8638,6 +8638,7 @@ forge-gui/res/cardsfolder/p/ponder.txt svneol=native#text/plain
forge-gui/res/cardsfolder/p/pongify.txt svneol=native#text/plain forge-gui/res/cardsfolder/p/pongify.txt svneol=native#text/plain
forge-gui/res/cardsfolder/p/pontiff_of_blight.txt -text forge-gui/res/cardsfolder/p/pontiff_of_blight.txt -text
forge-gui/res/cardsfolder/p/pooling_venom.txt svneol=native#text/plain forge-gui/res/cardsfolder/p/pooling_venom.txt svneol=native#text/plain
forge-gui/res/cardsfolder/p/pools_of_becoming.txt -text
forge-gui/res/cardsfolder/p/porcelain_legionnaire.txt svneol=native#text/plain forge-gui/res/cardsfolder/p/porcelain_legionnaire.txt svneol=native#text/plain
forge-gui/res/cardsfolder/p/porphyry_nodes.txt svneol=native#text/plain forge-gui/res/cardsfolder/p/porphyry_nodes.txt svneol=native#text/plain
forge-gui/res/cardsfolder/p/port_inspector.txt svneol=native#text/plain forge-gui/res/cardsfolder/p/port_inspector.txt svneol=native#text/plain
@@ -14956,6 +14957,7 @@ forge-gui/src/main/java/forge/game/ability/effects/RestartGameEffect.java -text
forge-gui/src/main/java/forge/game/ability/effects/RevealEffect.java -text forge-gui/src/main/java/forge/game/ability/effects/RevealEffect.java -text
forge-gui/src/main/java/forge/game/ability/effects/RevealHandEffect.java -text forge-gui/src/main/java/forge/game/ability/effects/RevealHandEffect.java -text
forge-gui/src/main/java/forge/game/ability/effects/RollPlanarDiceEffect.java -text forge-gui/src/main/java/forge/game/ability/effects/RollPlanarDiceEffect.java -text
forge-gui/src/main/java/forge/game/ability/effects/RunSVarAbilityEffect.java -text
forge-gui/src/main/java/forge/game/ability/effects/SacrificeAllEffect.java -text forge-gui/src/main/java/forge/game/ability/effects/SacrificeAllEffect.java -text
forge-gui/src/main/java/forge/game/ability/effects/SacrificeEffect.java -text forge-gui/src/main/java/forge/game/ability/effects/SacrificeEffect.java -text
forge-gui/src/main/java/forge/game/ability/effects/ScryEffect.java -text forge-gui/src/main/java/forge/game/ability/effects/ScryEffect.java -text

View File

@@ -4,7 +4,7 @@ Types:Plane Lorwyn
T:Mode$ ChangesZone | ValidCard$ Land | Destination$ Battlefield | Execute$ TripleGoat | TriggerZones$ Command | TriggerDescription$ Whenever a land enters the battlefield, that land's controller puts three 0/1 white Goat creature tokens onto the battlefield. T:Mode$ ChangesZone | ValidCard$ Land | Destination$ Battlefield | Execute$ TripleGoat | TriggerZones$ Command | TriggerDescription$ Whenever a land enters the battlefield, that land's controller puts three 0/1 white Goat creature tokens onto the battlefield.
SVar:TripleGoat:AB$ Token | Cost$ 0 | TokenName$ Goat | TokenTypes$ Creature,Goat | TokenPower$ 0 | TokenToughness$ 1 | TokenColors$ White | TokenOwner$ TriggeredCardController | TokenImage$ W 0 1 Goat | TokenAmount$ 3 SVar:TripleGoat:AB$ Token | Cost$ 0 | TokenName$ Goat | TokenTypes$ Creature,Goat | TokenPower$ 0 | TokenToughness$ 1 | TokenColors$ White | TokenOwner$ TriggeredCardController | TokenImage$ W 0 1 Goat | TokenAmount$ 3
T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll {C}, put a 0/1 white Goat creature token onto the battlefield. T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll {C}, put a 0/1 white Goat creature token onto the battlefield.
SVar:RolledChaos:AB$ Token | Cost$ 0 | TokenName$ Goat | TokenTypes$ Creature,Goat | TokenPower$ 0 | TokenToughness$ 1 | TokenColors$ White | TokenOwner$ TriggeredPlayer | TokenImage$ W 0 1 Goat | TokenAmount$ 1 SVar:RolledChaos:AB$ Token | Cost$ 0 | TokenName$ Goat | TokenTypes$ Creature,Goat | TokenPower$ 0 | TokenToughness$ 1 | TokenColors$ White | TokenOwner$ You | TokenImage$ W 0 1 Goat | TokenAmount$ 1
SVar:Picture:http://www.wizards.com/global/images/magic/general/goldmeadow.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/goldmeadow.jpg
SVar:AIRollPlanarDieParams:Mode$ Always | LowPriority$ True | MaxRollsPerTurn$ 9 SVar:AIRollPlanarDieParams:Mode$ Always | LowPriority$ True | MaxRollsPerTurn$ 9
Oracle:Whenever a land enters the battlefield, that land's controller puts three 0/1 white Goat creature tokens onto the battlefield.\nWhenever you roll {C}, put a 0/1 white Goat creature token onto the battlefield. Oracle:Whenever a land enters the battlefield, that land's controller puts three 0/1 white Goat creature tokens onto the battlefield.\nWhenever you roll {C}, put a 0/1 white Goat creature token onto the battlefield.

View File

@@ -6,7 +6,7 @@ SVar:BuildPressure:AB$ PutCounter | Cost$ 0 | Defined$ Self | CounterType$ PRESS
T:Mode$ PlaneswalkedFrom | ValidCard$ Plane.Self | Execute$ Eruption | TriggerDescription$ When you planeswalk away from CARDNAME, it deals damage equal to the number of pressure counters on it to each creature and each planeswalker. T:Mode$ PlaneswalkedFrom | ValidCard$ Plane.Self | Execute$ Eruption | TriggerDescription$ When you planeswalk away from CARDNAME, it deals damage equal to the number of pressure counters on it to each creature and each planeswalker.
SVar:Eruption:AB$ DamageAll | Cost$ 0 | ValidCards$ Creature,Planeswalker | ValidDescription$ each creature and each planeswalker. | NumDmg$ KeraliaX | References$ KeraliaX SVar:Eruption:AB$ DamageAll | Cost$ 0 | ValidCards$ Creature,Planeswalker | ValidDescription$ each creature and each planeswalker. | NumDmg$ KeraliaX | References$ KeraliaX
T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll {C}, prevent all damage that planes named CARDNAME would deal this game to permanents you control. T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll {C}, prevent all damage that planes named CARDNAME would deal this game to permanents you control.
SVar:RolledChaos:AB$ Effect | Cost$ 0 | Name$ Mount Keralia Effect | StaticAbilities$ KeraliaProtection | EffectOwner$ TriggeredPlayer | Duration$ Permanent | SpellDescription$ Prevent all damage that planes named CARDNAME would deal this game to permanents you control. SVar:RolledChaos:AB$ Effect | Cost$ 0 | Name$ Mount Keralia Effect | StaticAbilities$ KeraliaProtection | EffectOwner$ You | Duration$ Permanent | SpellDescription$ Prevent all damage that planes named CARDNAME would deal this game to permanents you control.
SVar:KeraliaProtection:Mode$ PreventDamage | EffectZone$ Command | Target$ Permanent.YouCtrl | Source$ Plane.namedMount Keralia | Description$ Prevent all damage that planes named Mount Keralia would deal this game to permanents you control. SVar:KeraliaProtection:Mode$ PreventDamage | EffectZone$ Command | Target$ Permanent.YouCtrl | Source$ Plane.namedMount Keralia | Description$ Prevent all damage that planes named Mount Keralia would deal this game to permanents you control.
SVar:KeraliaX:TriggeredSource$CardCounters.PRESSURE SVar:KeraliaX:TriggeredSource$CardCounters.PRESSURE
SVar:AIRollPlanarDieParams:Mode$ Always | LowPriority$ True SVar:AIRollPlanarDieParams:Mode$ Always | LowPriority$ True

View File

@@ -0,0 +1,15 @@
Name:Pools of Becoming
ManaCost:no cost
Types:Plane Bolas's Meditation Realm
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigChangeZone | TriggerDescription$ At the beginning of your end step, put the cards in your hand on the bottom of your library in any order, then draw that many cards.
SVar:TrigChangeZone:AB$ ChangeZoneAll | Cost$ 0 | ChangeType$ Card.YouOwn | Origin$ Hand | Destination$ Library | LibraryPosition$ -1 | RememberChanged$ True | SubAbility$ DBDraw
SVar:DBDraw:DB$ Draw | NumCards$ Y | References$ Y | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Y:Remembered$Amount
T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll {C}, reveal the top three cards of your planar deck. Each of the revealed cards' {C} abilities triggers. Then put the revealed cards on the bottom of your planar deck in any order.
SVar:RolledChaos:AB$ Dig | Cost$ 0 | DigNum$ 3 | NoMove$ True | Reveal$ True | SourceZone$ PlanarDeck | RememberRevealed$ True | SubAbility$ DBRunChaos
SVar:DBRunChaos:DB$ RunSVarAbility | Defined$ Remembered | SVars$ RolledChaos | IsTrigger$ True | SubAbility$ DBChangeZone
SVar:DBChangeZone:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ PlanarDeck | Destination$ PlanarDeck | LibraryPosition$ -1 | SubAbility$ DBCleanup
SVar:Picture:http://www.wizards.com/global/images/magic/general/pools_of_becoming.jpg
SVar:AIRollPlanarDieParams:Mode$ Always
Oracle:At the beginning of your end step, put the cards in your hand on the bottom of your library in any order, then draw that many cards.\nWhenever you roll {C}, reveal the top three cards of your planar deck. Each of the revealed cards' {C} abilities triggers. Then put the revealed cards on the bottom of your planar deck in any order.

View File

@@ -108,6 +108,7 @@ public enum ApiType {
Reveal (RevealEffect.class, RevealAi.class), Reveal (RevealEffect.class, RevealAi.class),
RevealHand (RevealHandEffect.class, RevealHandAi.class), RevealHand (RevealHandEffect.class, RevealHandAi.class),
RollPlanarDice (RollPlanarDiceEffect.class, RollPlanarDiceAi.class), RollPlanarDice (RollPlanarDiceEffect.class, RollPlanarDiceAi.class),
RunSVarAbility (RunSVarAbilityEffect.class, AlwaysPlayAi.class),
Sacrifice (SacrificeEffect.class, SacrificeAi.class), Sacrifice (SacrificeEffect.class, SacrificeAi.class),
SacrificeAll (SacrificeAllEffect.class, SacrificeAllAi.class), SacrificeAll (SacrificeAllEffect.class, SacrificeAllAi.class),
Scry (ScryEffect.class, ScryAi.class), Scry (ScryEffect.class, ScryAi.class),

View File

@@ -85,7 +85,8 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
final int libraryPos = sa.hasParam("LibraryPosition") ? Integer.parseInt(sa.getParam("LibraryPosition")) : 0; final int libraryPos = sa.hasParam("LibraryPosition") ? Integer.parseInt(sa.getParam("LibraryPosition")) : 0;
if (destination.equals(ZoneType.Library) && !sa.hasParam("Shuffle") && cards.size() >= 2 && !random) { if ((destination == ZoneType.Library || destination == ZoneType.PlanarDeck)
&& !sa.hasParam("Shuffle") && cards.size() >= 2 && !random) {
cards = sa.getActivatingPlayer().getController().orderMoveToZoneList(cards, destination); cards = sa.getActivatingPlayer().getController().orderMoveToZoneList(cards, destination);
} }
@@ -94,7 +95,7 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
} }
for (final Card c : cards) { for (final Card c : cards) {
if (destination.equals(ZoneType.Battlefield)) { if (destination == ZoneType.Battlefield) {
// Auras without Candidates stay in their current location // Auras without Candidates stay in their current location
if (c.isAura()) { if (c.isAura()) {
final SpellAbility saAura = AttachEffect.getAttachSpellAbility(c); final SpellAbility saAura = AttachEffect.getAttachSpellAbility(c);

View File

@@ -0,0 +1,37 @@
package forge.game.ability.effects;
import java.util.ArrayList;
import java.util.List;
import forge.game.ability.AbilityFactory;
import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card;
import forge.game.spellability.SpellAbility;
public class RunSVarAbilityEffect extends SpellAbilityEffect {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellEffect#resolve(forge.card.spellability.SpellAbility)
*/
@Override
public void resolve(SpellAbility sa) {
String sVars = sa.getParam("SVars");
List<Card> cards = getTargetCards(sa);
if (sVars == null || cards.isEmpty()) {
return;
}
List<SpellAbility> validSA = new ArrayList<SpellAbility>();
final boolean isTrigger = sa.hasParam("IsTrigger");
for (final Card tgtC : cards) {
if (!tgtC.hasSVar(sVars)) {
continue;
}
final SpellAbility actualSA = AbilityFactory.getAbility(tgtC.getSVar(sVars), tgtC);
actualSA.setTrigger(isTrigger);
actualSA.setActivatingPlayer(sa.getActivatingPlayer());
actualSA.setDescription(tgtC.getName() + "'s ability");
validSA.add(actualSA);
}
sa.getActivatingPlayer().getController().orderAndPlaySimultaneousSa(validSA);
}
}