mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
- Added Savor the Moment.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
10
res/cardsfolder/s/savor_the_moment.txt
Normal file
10
res/cardsfolder/s/savor_the_moment.txt
Normal 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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -66,7 +66,7 @@ public class ExtraTurn {
|
|||||||
* @param loseAtEndStep the loseAtEndStep to set
|
* @param loseAtEndStep the loseAtEndStep to set
|
||||||
*/
|
*/
|
||||||
public void setLoseAtEndStep(boolean loseAtEndStep) {
|
public void setLoseAtEndStep(boolean loseAtEndStep) {
|
||||||
this.loseAtEndStep = loseAtEndStep;
|
this.loseAtEndStep = loseAtEndStep;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -612,10 +612,14 @@ 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();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* getNextActivePlayer.
|
* 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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user