- 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:
Agetian
2017-07-26 12:58:04 +00:00
parent a15588120b
commit acfdf23c22
2 changed files with 21 additions and 8 deletions

View File

@@ -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;
}
/**

View File

@@ -80,6 +80,12 @@ public class Puzzle extends GameState implements InventoryItem, Comparable {
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) {
Player human = null;
for(Player p : game.getPlayers()) {
@@ -96,21 +102,21 @@ public class Puzzle extends GameState implements InventoryItem, Comparable {
goalCard.addType("Effect");
goalCard.setOracleText(getGoalDescription());
{
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.";
final String loseEff = "DB$ LosesGame | Defined$ You";
final String loseTrig = "Mode$ Phase | Phase$ Cleanup | TriggerZones$ Command | Static$ True | " +
"TurnCount$ " + turns + " | TriggerDescription$ At the beginning of your cleanup step, you lose the game.";
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));
goalCard.addTrigger(loseTrigger);
loseTrigger.setOverridingAbility(AbilityFactory.getAbility(loseEff, goalCard));
goalCard.addTrigger(loseTrigger);
}
human.getZone(ZoneType.Command).add(goalCard);
}
@Override
protected void applyGameOnThread(final Game game) {
setupMaxPlayerHandSize(game, 7);
super.applyGameOnThread(game);
addGoalEnforcement(game);
}