mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
- Fixed the player's max hand size in Puzzle Mode being equal to 0 by default (now set to 7 per the default MTG rules).
- Fixed the "Turns:X" parameter not working correctly in Puzzle Mode.
This commit is contained in:
@@ -264,6 +264,13 @@ public abstract class Trigger extends TriggerReplacementBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.mapParams.containsKey("TurnCount")) {
|
||||||
|
int turn = Integer.parseInt(this.mapParams.get("TurnCount"));
|
||||||
|
if (phaseHandler.getTurn() != turn) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -80,6 +80,12 @@ public class Puzzle extends GameState implements InventoryItem, Comparable {
|
|||||||
return FModel.getMagicDb().getCommonCards().getCard(cardName);
|
return FModel.getMagicDb().getCommonCards().getCard(cardName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setupMaxPlayerHandSize(Game game, int maxHandSize) {
|
||||||
|
for(Player p : game.getPlayers()) {
|
||||||
|
p.setMaxHandSize(maxHandSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void addGoalEnforcement(Game game) {
|
public void addGoalEnforcement(Game game) {
|
||||||
Player human = null;
|
Player human = null;
|
||||||
for(Player p : game.getPlayers()) {
|
for(Player p : game.getPlayers()) {
|
||||||
@@ -96,21 +102,21 @@ public class Puzzle extends GameState implements InventoryItem, Comparable {
|
|||||||
goalCard.addType("Effect");
|
goalCard.addType("Effect");
|
||||||
goalCard.setOracleText(getGoalDescription());
|
goalCard.setOracleText(getGoalDescription());
|
||||||
|
|
||||||
{
|
|
||||||
final String loseTrig = "Mode$ Phase | Phase$ Cleanup | TriggerZones$ Command | Static$ True | " +
|
final String loseTrig = "Mode$ Phase | Phase$ Cleanup | TriggerZones$ Command | Static$ True | " +
|
||||||
"ValidPlayer$ You | TriggerDescription$ At the beginning of your cleanup step, you lose the game.";
|
"TurnCount$ " + turns + " | TriggerDescription$ At the beginning of your cleanup step, you lose the game.";
|
||||||
final String loseEff = "DB$ LosesGame | Defined$ You";
|
final String loseEff = "DB$ LosesGame | Defined$ You";
|
||||||
|
|
||||||
final Trigger loseTrigger = TriggerHandler.parseTrigger(loseTrig, goalCard, true);
|
final Trigger loseTrigger = TriggerHandler.parseTrigger(loseTrig, goalCard, true);
|
||||||
|
|
||||||
loseTrigger.setOverridingAbility(AbilityFactory.getAbility(loseEff, goalCard));
|
loseTrigger.setOverridingAbility(AbilityFactory.getAbility(loseEff, goalCard));
|
||||||
goalCard.addTrigger(loseTrigger);
|
goalCard.addTrigger(loseTrigger);
|
||||||
}
|
|
||||||
human.getZone(ZoneType.Command).add(goalCard);
|
human.getZone(ZoneType.Command).add(goalCard);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyGameOnThread(final Game game) {
|
protected void applyGameOnThread(final Game game) {
|
||||||
|
setupMaxPlayerHandSize(game, 7);
|
||||||
super.applyGameOnThread(game);
|
super.applyGameOnThread(game);
|
||||||
addGoalEnforcement(game);
|
addGoalEnforcement(game);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user