- 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/SetStateEffect.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/TapAllEffect.java -text
src/main/java/forge/card/ability/effects/TapEffect.java -text

View File

@@ -3,7 +3,7 @@ ManaCost:1 U
Types:Creature Atog
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.
SVar:DBSkipTurn:DB$AddTurn | NumTurns$ 1 | Defined$ Opponent
SVar:DBSkipTurn:DB$ SkipTurn | NumTurns$ 1 | Defined$ You
SVar:RemAIDeck:True
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.

View File

@@ -4,7 +4,7 @@ Types:Vanguard
HandLifeModifier:-1/+1
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.
SVar:DBSkipTurn:DB$ AddTurn | NumTurns$ 1 | Defined$ Opponent
SVar:DBSkipTurn:DB$ SkipTurn | NumTurns$ 1 | Defined$ You
SVar:RemAIDeck:True
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.

View File

@@ -4,6 +4,6 @@ Types:Artifact
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$ 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
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
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.
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
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$ 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.
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:RemAIDeck:True
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
Types:Instant
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
Oracle:Draw four cards. You skip your next turn.

View File

@@ -5,6 +5,6 @@ PT:2/2
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.
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
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
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:DBSkipTurn:DB$AddTurn | NumTurns$ 1 | Defined$ Opponent
SVar:DBSkipTurn:DB$ SkipTurn | NumTurns$ 1 | Defined$ You
SVar:RemAIDeck:True
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.

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 | 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:TrigSkip:AB$AddTurn | Cost$ 0 | NumTurns$ 1 | Defined$ Opponent
SVar:TrigSkip:AB$ SkipTurn | Cost$ 0 | NumTurns$ 1 | Defined$ You
SVar:RemRandomDeck:True
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.

View File

@@ -112,6 +112,7 @@ public enum ApiType {
SetLife (LifeSetEffect.class, LifeSetAi.class),
SetState (SetStateEffect.class, SetStateAi.class),
Shuffle (ShuffleEffect.class, ShuffleAi.class),
SkipTurn (SkipTurnEffect.class, CannotPlayAi.class),
StoreSVar (StoreSVarEffect.class, StoreSVarAi.class),
Tap (TapEffect.class, TapAi.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()) {
ExtraTurn extraTurn = this.extraTurns.pop();
nextTurn = extraTurn.getPlayer();
if (nextTurn.hasKeyword("Skip your next turn.")) {
nextTurn.removeKeyword("Skip your next turn.");
return getNextActivePlayer();
}
if (nextTurn.skipTurnTimeVault()) {
return getNextActivePlayer();
}
@@ -765,6 +769,11 @@ public class PhaseHandler implements java.io.Serializable {
}
return nextTurn;
}
if (nextTurn.hasKeyword("Skip your next turn.")) {
nextTurn.removeKeyword("Skip your next turn.");
this.setPlayerTurn(nextTurn);
return getNextActivePlayer();
}
if (nextTurn.skipTurnTimeVault()) {
this.setPlayerTurn(nextTurn);
return getNextActivePlayer();