- Convert skip your next turn cards from giving an extra turn to an opponent (since that's wrong)

This commit is contained in:
Sol
2013-08-08 02:26:47 +00:00
parent ce53c8d84a
commit f689d44f01
13 changed files with 57 additions and 9 deletions

1
.gitattributes vendored
View File

@@ -14470,6 +14470,7 @@ src/main/java/forge/card/ability/effects/ScryEffect.java -text
src/main/java/forge/card/ability/effects/SetInMotionEffect.java -text src/main/java/forge/card/ability/effects/SetInMotionEffect.java -text
src/main/java/forge/card/ability/effects/SetStateEffect.java -text src/main/java/forge/card/ability/effects/SetStateEffect.java -text
src/main/java/forge/card/ability/effects/ShuffleEffect.java -text src/main/java/forge/card/ability/effects/ShuffleEffect.java -text
src/main/java/forge/card/ability/effects/SkipTurnEffect.java -text
src/main/java/forge/card/ability/effects/StoreSVarEffect.java -text src/main/java/forge/card/ability/effects/StoreSVarEffect.java -text
src/main/java/forge/card/ability/effects/TapAllEffect.java -text src/main/java/forge/card/ability/effects/TapAllEffect.java -text
src/main/java/forge/card/ability/effects/TapEffect.java -text src/main/java/forge/card/ability/effects/TapEffect.java -text

View File

@@ -3,7 +3,7 @@ ManaCost:1 U
Types:Creature Atog Types:Creature Atog
PT:1/2 PT:1/2
A:AB$ Pump | Cost$ 0 | NumAtt$ +3 | NumDef$ +3 | ActivationLimit$ 1 | SubAbility$ DBSkipTurn | SpellDescription$ CARDNAME gets +3/+3 until end of turn. You skip your next turn. Activate this ability only once each turn. A:AB$ Pump | Cost$ 0 | NumAtt$ +3 | NumDef$ +3 | ActivationLimit$ 1 | SubAbility$ DBSkipTurn | SpellDescription$ CARDNAME gets +3/+3 until end of turn. You skip your next turn. Activate this ability only once each turn.
SVar:DBSkipTurn:DB$AddTurn | NumTurns$ 1 | Defined$ Opponent SVar:DBSkipTurn:DB$ SkipTurn | NumTurns$ 1 | Defined$ You
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/chronatog.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/chronatog.jpg
Oracle:{0}: Chronatog gets +3/+3 until end of turn. You skip your next turn. Activate this ability only once each turn. Oracle:{0}: Chronatog gets +3/+3 until end of turn. You skip your next turn. Activate this ability only once each turn.

View File

@@ -4,7 +4,7 @@ Types:Vanguard
HandLifeModifier:-1/+1 HandLifeModifier:-1/+1
S:Mode$ Continuous | EffectZone$ Command | Affected$ You | SetMaxHandSize$ Unlimited | Description$ You have no maximum hand size. S:Mode$ Continuous | EffectZone$ Command | Affected$ You | SetMaxHandSize$ Unlimited | Description$ You have no maximum hand size.
A:AB$ Draw | ActivationZone$ Command | Cost$ 0 | NumCards$ 3 | Defined$ You | ActivationLimit$ 1 | SubAbility$ DBSkipTurn | SpellDescription$ Draw three cards. You skip your next turn. Activate this ability only once each turn. A:AB$ Draw | ActivationZone$ Command | Cost$ 0 | NumCards$ 3 | Defined$ You | ActivationLimit$ 1 | SubAbility$ DBSkipTurn | SpellDescription$ Draw three cards. You skip your next turn. Activate this ability only once each turn.
SVar:DBSkipTurn:DB$ AddTurn | NumTurns$ 1 | Defined$ Opponent SVar:DBSkipTurn:DB$ SkipTurn | NumTurns$ 1 | Defined$ You
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/chronatog_avatar.jpg SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/chronatog_avatar.jpg
Oracle:Hand -1, life +1\nYou have no maximum hand size.\n{0}: Draw three cards. You skip your next turn. Activate this ability only once each turn. Oracle:Hand -1, life +1\nYou have no maximum hand size.\n{0}: Draw three cards. You skip your next turn. Activate this ability only once each turn.

View File

@@ -4,6 +4,6 @@ Types:Artifact
A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add U to your mana pool. A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add U to your mana pool.
A:AB$ Animate | Cost$ 1 U | Defined$ Self | Power$ 1 | Toughness$ 2 | Types$ Creature,Artifact,Atog | Colors$ Blue | SpellDescription$ CARDNAME becomes a 1/2 blue Atog artifact creature until end of turn. A:AB$ Animate | Cost$ 1 U | Defined$ Self | Power$ 1 | Toughness$ 2 | Types$ Creature,Artifact,Atog | Colors$ Blue | SpellDescription$ CARDNAME becomes a 1/2 blue Atog artifact creature until end of turn.
A:AB$ Pump | Cost$ 0 | Defined$ Self | NumAtt$ +3 | NumDef$ +3 | IsPresent$ Card.Self+Creature | ActivationLimit$ 1 | SubAbility$ SkipTurn | SpellDescription$ CARDNAME gets +3/+3 until end of turn. You skip your next turn. Activate this ability only once each turn and only if CARDNAME is a creature. A:AB$ Pump | Cost$ 0 | Defined$ Self | NumAtt$ +3 | NumDef$ +3 | IsPresent$ Card.Self+Creature | ActivationLimit$ 1 | SubAbility$ SkipTurn | SpellDescription$ CARDNAME gets +3/+3 until end of turn. You skip your next turn. Activate this ability only once each turn and only if CARDNAME is a creature.
SVar:SkipTurn:DB$AddTurn | NumTurns$ 1 | Defined$ Opponent SVar:SkipTurn:DB$ SkipTurn | NumTurns$ 1 | Defined$ You
SVar:Picture:http://www.wizards.com/global/images/magic/general/chronatog_totem.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/chronatog_totem.jpg
Oracle:{T}: Add {U} to your mana pool.\n{1}{U}: Chronatog Totem becomes a 1/2 blue Atog artifact creature until end of turn.\n{0}: Chronatog Totem gets +3/+3 until end of turn. You skip your next turn. Activate this ability only once each turn and only if Chronatog Totem is a creature. Oracle:{T}: Add {U} to your mana pool.\n{1}{U}: Chronatog Totem becomes a 1/2 blue Atog artifact creature until end of turn.\n{0}: Chronatog Totem gets +3/+3 until end of turn. You skip your next turn. Activate this ability only once each turn and only if Chronatog Totem is a creature.

View File

@@ -3,6 +3,6 @@ ManaCost:5 W
Types:Creature Giant Types:Creature Giant
PT:5/5 PT:5/5
A:AB$ ChangeZone | Cost$ 1 W | Origin$ Graveyard | Destination$ Battlefield | Tapped$ True | ActivationZone$ Graveyard | SubAbility$ SkipTurn | SpellDescription$ Return CARDNAME from your graveyard to the battlefield tapped. You skip your next turn. A:AB$ ChangeZone | Cost$ 1 W | Origin$ Graveyard | Destination$ Battlefield | Tapped$ True | ActivationZone$ Graveyard | SubAbility$ SkipTurn | SpellDescription$ Return CARDNAME from your graveyard to the battlefield tapped. You skip your next turn.
SVar:SkipTurn:DB$AddTurn | Defined$ Opponent | NumTurns$ 1 SVar:SkipTurn:DB$ SkipTurn | Defined$ You | NumTurns$ 1
SVar:Picture:http://www.wizards.com/global/images/magic/general/chronosavant.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/chronosavant.jpg
Oracle:{1}{W}: Return Chronosavant from your graveyard to the battlefield tapped. You skip your next turn. Oracle:{1}{W}: Return Chronosavant from your graveyard to the battlefield tapped. You skip your next turn.

View File

@@ -5,7 +5,7 @@ K:CARDNAME enters the battlefield tapped.
A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add U to your mana pool. A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add U to your mana pool.
A:AB$ PutCounter | Cost$ U T | Defined$ Self | CounterType$ EON | CounterNum$ 1 | SubAbility$ DBSkipTurn | SpellDescription$ Put an eon counter on CARDNAME. Skip your next turn. A:AB$ PutCounter | Cost$ U T | Defined$ Self | CounterType$ EON | CounterNum$ 1 | SubAbility$ DBSkipTurn | SpellDescription$ Put an eon counter on CARDNAME. Skip your next turn.
A:AB$ AddTurn | Cost$ T SubCounter<1/EON> | NumTurns$ 1 | Defined$ You | SubAbility$ DBBounce | SpellDescription$ Take an extra turn after this one. A:AB$ AddTurn | Cost$ T SubCounter<1/EON> | NumTurns$ 1 | Defined$ You | SubAbility$ DBBounce | SpellDescription$ Take an extra turn after this one.
SVar:DBSkipTurn:DB$AddTurn | NumTurns$ 1 | Defined$ Opponent SVar:DBSkipTurn:DB$ SkipTurn | NumTurns$ 1 | Defined$ You
SVar:DBBounce:DB$ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand SVar:DBBounce:DB$ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/magosi_the_waterveil.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/magosi_the_waterveil.jpg

View File

@@ -2,6 +2,6 @@ Name:Meditate
ManaCost:2 U ManaCost:2 U
Types:Instant Types:Instant
A:SP$ Draw | Cost$ 2 U | NumCards$ 4 | Defined$ You | SpellDescription$ Draw four cards. You skip your next turn. | SubAbility$ DBSkip A:SP$ Draw | Cost$ 2 U | NumCards$ 4 | Defined$ You | SpellDescription$ Draw four cards. You skip your next turn. | SubAbility$ DBSkip
SVar:DBSkip:DB$AddTurn | Defined$ Opponent | NumTurns$ 1 SVar:DBSkip:DB$ SkipTurn | Defined$ You | NumTurns$ 1
SVar:Picture:http://www.wizards.com/global/images/magic/general/meditate.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/meditate.jpg
Oracle:Draw four cards. You skip your next turn. Oracle:Draw four cards. You skip your next turn.

View File

@@ -5,6 +5,6 @@ PT:2/2
K:Morph:3 R R K:Morph:3 R R
T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME is turned face up, it gets +6/+6 and gains trample until end of turn. You skip your next turn. T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME is turned face up, it gets +6/+6 and gains trample until end of turn. You skip your next turn.
SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ Self | NumAtt$ +6 | NumDef$ +6 | KW$ Trample | SubAbility$ DBSkipTurn SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ Self | NumAtt$ +6 | NumDef$ +6 | KW$ Trample | SubAbility$ DBSkipTurn
SVar:DBSkipTurn:DB$AddTurn | Defined$ Opponent | NumTurns$ 1 SVar:DBSkipTurn:DB$ SkipTurn | Defined$ You | NumTurns$ 1
SVar:Picture:http://www.wizards.com/global/images/magic/general/unstable_hulk.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/unstable_hulk.jpg
Oracle:Morph {3}{R}{R} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)\nWhen Unstable Hulk is turned face up, it gets +6/+6 and gains trample until end of turn. You skip your next turn. Oracle:Morph {3}{R}{R} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)\nWhen Unstable Hulk is turned face up, it gets +6/+6 and gains trample until end of turn. You skip your next turn.

View File

@@ -6,7 +6,7 @@ K:Flying
K:Kicker U K:Kicker U
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, return all other creatures to their owners' hands and you skip your next turn. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigKicker | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, return all other creatures to their owners' hands and you skip your next turn.
SVar:TrigKicker:AB$ChangeZoneAll | Cost$ 0 | ChangeType$ Creature.Other | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBSkipTurn SVar:TrigKicker:AB$ChangeZoneAll | Cost$ 0 | ChangeType$ Creature.Other | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBSkipTurn
SVar:DBSkipTurn:DB$AddTurn | NumTurns$ 1 | Defined$ Opponent SVar:DBSkipTurn:DB$ SkipTurn | NumTurns$ 1 | Defined$ You
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/waterspout_elemental.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/waterspout_elemental.jpg
Oracle:Kicker {U} (You may pay an additional {U} as you cast this spell.)\nFlying\nWhen Waterspout Elemental enters the battlefield, if it was kicked, return all other creatures to their owners' hands and you skip your next turn. Oracle:Kicker {U} (You may pay an additional {U} as you cast this spell.)\nFlying\nWhen Waterspout Elemental enters the battlefield, if it was kicked, return all other creatures to their owners' hands and you skip your next turn.

View File

@@ -6,7 +6,7 @@ K:Flying
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigSkip | TriggerDescription$ When CARDNAME enters the battlefield, you skip your next turn. T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigSkip | TriggerDescription$ When CARDNAME enters the battlefield, you skip your next turn.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigAdd | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, you take an extra turn after this one. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigAdd | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, you take an extra turn after this one.
SVar:TrigAdd:AB$AddTurn | Cost$ 0 | NumTurns$ 1 | Defined$ You SVar:TrigAdd:AB$AddTurn | Cost$ 0 | NumTurns$ 1 | Defined$ You
SVar:TrigSkip:AB$AddTurn | Cost$ 0 | NumTurns$ 1 | Defined$ Opponent SVar:TrigSkip:AB$ SkipTurn | Cost$ 0 | NumTurns$ 1 | Defined$ You
SVar:RemRandomDeck:True SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/wormfang_manta.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/wormfang_manta.jpg
Oracle:Flying\nWhen Wormfang Manta enters the battlefield, you skip your next turn.\nWhen Wormfang Manta leaves the battlefield, you take an extra turn after this one. Oracle:Flying\nWhen Wormfang Manta enters the battlefield, you skip your next turn.\nWhen Wormfang Manta leaves the battlefield, you take an extra turn after this one.

View File

@@ -112,6 +112,7 @@ public enum ApiType {
SetLife (LifeSetEffect.class, LifeSetAi.class), SetLife (LifeSetEffect.class, LifeSetAi.class),
SetState (SetStateEffect.class, SetStateAi.class), SetState (SetStateEffect.class, SetStateAi.class),
Shuffle (ShuffleEffect.class, ShuffleAi.class), Shuffle (ShuffleEffect.class, ShuffleAi.class),
SkipTurn (SkipTurnEffect.class, CannotPlayAi.class),
StoreSVar (StoreSVarEffect.class, StoreSVarAi.class), StoreSVar (StoreSVarEffect.class, StoreSVarAi.class),
Tap (TapEffect.class, TapAi.class), Tap (TapEffect.class, TapAi.class),
TapAll (TapAllEffect.class, TapAllAi.class), TapAll (TapAllEffect.class, TapAllAi.class),

View File

@@ -0,0 +1,37 @@
package forge.card.ability.effects;
import java.util.List;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.game.player.Player;
public class SkipTurnEffect extends SpellAbilityEffect {
@Override
protected String getStackDescription(SpellAbility sa) {
final StringBuilder sb = new StringBuilder();
final int numTurns = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("NumTurns"), sa);
List<Player> tgtPlayers = getTargetPlayers(sa);
for (final Player player : tgtPlayers) {
sb.append(player).append(" ");
}
sb.append("skips his/her next ").append(numTurns).append(" turn(s).");
return sb.toString();
}
@Override
public void resolve(SpellAbility sa) {
final int numTurns = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("NumTurns"), sa);
List<Player> tgtPlayers = getTargetPlayers(sa);
for (final Player player : tgtPlayers) {
for(int i = 0; i < numTurns; i++) {
player.addKeyword("Skip your next turn.");
}
}
}
}

View File

@@ -751,6 +751,10 @@ public class PhaseHandler implements java.io.Serializable {
if (!this.extraTurns.isEmpty()) { if (!this.extraTurns.isEmpty()) {
ExtraTurn extraTurn = this.extraTurns.pop(); ExtraTurn extraTurn = this.extraTurns.pop();
nextTurn = extraTurn.getPlayer(); nextTurn = extraTurn.getPlayer();
if (nextTurn.hasKeyword("Skip your next turn.")) {
nextTurn.removeKeyword("Skip your next turn.");
return getNextActivePlayer();
}
if (nextTurn.skipTurnTimeVault()) { if (nextTurn.skipTurnTimeVault()) {
return getNextActivePlayer(); return getNextActivePlayer();
} }
@@ -765,6 +769,11 @@ public class PhaseHandler implements java.io.Serializable {
} }
return nextTurn; return nextTurn;
} }
if (nextTurn.hasKeyword("Skip your next turn.")) {
nextTurn.removeKeyword("Skip your next turn.");
this.setPlayerTurn(nextTurn);
return getNextActivePlayer();
}
if (nextTurn.skipTurnTimeVault()) { if (nextTurn.skipTurnTimeVault()) {
this.setPlayerTurn(nextTurn); this.setPlayerTurn(nextTurn);
return getNextActivePlayer(); return getNextActivePlayer();