- Added Savor the Moment.

This commit is contained in:
Sloth
2012-05-02 20:45:53 +00:00
parent 7daa0a5d72
commit e3059d2659
10 changed files with 35 additions and 11 deletions

1
.gitattributes vendored
View File

@@ -7768,6 +7768,7 @@ res/cardsfolder/s/savage_twister.txt svneol=native#text/plain
res/cardsfolder/s/savannah.txt svneol=native#text/plain res/cardsfolder/s/savannah.txt svneol=native#text/plain
res/cardsfolder/s/savannah_lions.txt svneol=native#text/plain res/cardsfolder/s/savannah_lions.txt svneol=native#text/plain
res/cardsfolder/s/saving_grasp.txt -text res/cardsfolder/s/saving_grasp.txt -text
res/cardsfolder/s/savor_the_moment.txt -text
res/cardsfolder/s/savra_queen_of_the_golgari.txt svneol=native#text/plain res/cardsfolder/s/savra_queen_of_the_golgari.txt svneol=native#text/plain
res/cardsfolder/s/sawback_manticore.txt svneol=native#text/plain res/cardsfolder/s/sawback_manticore.txt svneol=native#text/plain
res/cardsfolder/s/sawtooth_loon.txt svneol=native#text/plain res/cardsfolder/s/sawtooth_loon.txt svneol=native#text/plain

View File

@@ -2,7 +2,7 @@ Name:Final Fortune
ManaCost:R R ManaCost:R R
Types:Instant Types:Instant
Text:no text Text:no text
A:SP$ AddTurn | Cost$ R R | NumTurns$ 1 | loseAtEndStep$ True | SpellDescription$ Take an extra turn after this one. At the beginning of that turn's end step, you lose the game. A:SP$ AddTurn | Cost$ R R | NumTurns$ 1 | LoseAtEndStep$ True | SpellDescription$ Take an extra turn after this one. At the beginning of that turn's end step, you lose the game.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Rarity:Rare SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/final_fortune.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/final_fortune.jpg

View File

@@ -2,7 +2,7 @@ Name:Last Chance
ManaCost:R R ManaCost:R R
Types:Sorcery Types:Sorcery
Text:no text Text:no text
A:SP$ AddTurn | Cost$ R R | NumTurns$ 1 | loseAtEndStep$ True | SpellDescription$ Take an extra turn after this one. At the beginning of that turn's end step, you lose the game. A:SP$ AddTurn | Cost$ R R | NumTurns$ 1 | LoseAtEndStep$ True | SpellDescription$ Take an extra turn after this one. At the beginning of that turn's end step, you lose the game.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Rarity:Rare SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/last_chance.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/last_chance.jpg

View File

@@ -0,0 +1,10 @@
Name:Savor the Moment
ManaCost:1 U U
Types:Sorcery
Text:no text
A:SP$ AddTurn | Cost$ 1 U U | NumTurns$ 1 | SkipUntap$ True | SpellDescription$ Take an extra turn after this one. Skip the untap step of that turn.
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/savor_the_moment.jpg
SetInfo:SHM|Rare|http://magiccards.info/scans/en/shm/50.jpg
Oracle:Take an extra turn after this one. Skip the untap step of that turn.
End

View File

@@ -2,7 +2,7 @@ Name:Warrior's Oath
ManaCost:R R ManaCost:R R
Types:Sorcery Types:Sorcery
Text:no text Text:no text
A:SP$ AddTurn | Cost$ R R | NumTurns$ 1 | loseAtEndStep$ True | SpellDescription$ Take an extra turn after this one. At the beginning of that turn's end step, you lose the game. A:SP$ AddTurn | Cost$ R R | NumTurns$ 1 | LoseAtEndStep$ True | SpellDescription$ Take an extra turn after this one. At the beginning of that turn's end step, you lose the game.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Rarity:Rare SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/warriors_oath.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/warriors_oath.jpg

View File

@@ -321,9 +321,12 @@ public class AbilityFactoryTurns {
if ((tgt == null) || p.canBeTargetedBy(sa)) { if ((tgt == null) || p.canBeTargetedBy(sa)) {
for (int i = 0; i < numTurns; i++) { for (int i = 0; i < numTurns; i++) {
ExtraTurn extra = Singletons.getModel().getGameState().getPhaseHandler().addExtraTurn(p); ExtraTurn extra = Singletons.getModel().getGameState().getPhaseHandler().addExtraTurn(p);
if (params.containsKey("loseAtEndStep")) { if (params.containsKey("LoseAtEndStep")) {
extra.setLoseAtEndStep(true); extra.setLoseAtEndStep(true);
} }
if (params.containsKey("SkipUntap")) {
extra.setSkipUntap(true);
}
} }
} }
} }

View File

@@ -210,7 +210,7 @@ public class EndOfTurn extends Phase implements java.io.Serializable {
} }
Player activePlayer = Singletons.getModel().getGameState().getPhaseHandler().getPlayerTurn(); Player activePlayer = Singletons.getModel().getGameState().getPhaseHandler().getPlayerTurn();
if (activePlayer.hasKeyword("At the beginning of the end step, you lose the game.")) { if (activePlayer.hasKeyword("At the beginning of this turn's end step, you lose the game.")) {
final Card source = new Card(); final Card source = new Card();
final SpellAbility change = new Ability(source, "0") { final SpellAbility change = new Ability(source, "0") {
@Override @Override
@@ -218,8 +218,8 @@ public class EndOfTurn extends Phase implements java.io.Serializable {
this.getActivatingPlayer().loseConditionMet(GameLossReason.SpellEffect, ""); this.getActivatingPlayer().loseConditionMet(GameLossReason.SpellEffect, "");
} }
}; };
change.setStackDescription("At the beginning of the end step, you lose the game."); change.setStackDescription("At the beginning of this turn's end step, you lose the game.");
change.setDescription("At the beginning of the end step, you lose the game."); change.setDescription("At the beginning of this turn's end step, you lose the game.");
change.setActivatingPlayer(activePlayer); change.setActivatingPlayer(activePlayer);
AllZone.getStack().addSimultaneousStackEntry(change); AllZone.getStack().addSimultaneousStackEntry(change);

View File

@@ -35,7 +35,7 @@ public class ExtraTurn {
private boolean skipUntap = false; private boolean skipUntap = false;
/** /**
* TODO: Write javadoc for Constructor. * TODO: Write javadoc for Constructor.
* @param player * @param player the player
*/ */
public ExtraTurn(Player player) { public ExtraTurn(Player player) {
this.player = player; this.player = player;

View File

@@ -612,6 +612,10 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
AllZone.getHumanPlayer().resetProwl(); AllZone.getHumanPlayer().resetProwl();
AllZone.getComputerPlayer().setLifeLostThisTurn(0); AllZone.getComputerPlayer().setLifeLostThisTurn(0);
AllZone.getHumanPlayer().setLifeLostThisTurn(0); AllZone.getHumanPlayer().setLifeLostThisTurn(0);
for (Player player : AllZone.getPlayersInGame()) {
player.removeKeyword("At the beginning of this turn's end step, you lose the game.");
player.removeKeyword("Skip the untap step of this turn.");
}
return getNextActivePlayer(); return getNextActivePlayer();
} }
@@ -632,7 +636,10 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
return getNextActivePlayer(); return getNextActivePlayer();
} }
if (extraTurn.isLoseAtEndStep()) { if (extraTurn.isLoseAtEndStep()) {
nextTurn.addKeyword("At the beginning of the end step, you lose the game."); nextTurn.addKeyword("At the beginning of this turn's end step, you lose the game.");
}
if (extraTurn.isSkipUntap()) {
nextTurn.addKeyword("Skip the untap step of this turn.");
} }
return nextTurn; return nextTurn;
} }

View File

@@ -56,6 +56,9 @@ public class PhaseUtil {
p.removeKeyword("Skip your next untap step."); p.removeKeyword("Skip your next untap step.");
return true; return true;
} }
if (p.hasKeyword("Skip the untap step of this turn.")) {
return true;
}
if (AllZoneUtil.isCardInPlay("Sands of Time") || AllZoneUtil.isCardInPlay("Stasis")) { if (AllZoneUtil.isCardInPlay("Sands of Time") || AllZoneUtil.isCardInPlay("Stasis")) {
return true; return true;