From 36b493f03a68240c919e185377b27759e23bfe44 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sun, 13 Aug 2017 09:46:51 +0000 Subject: [PATCH] - Puzzle Mode: don't award Challenge achievements in this mode (take two). --- .../forge/achievement/ChallengeAchievements.java | 16 +++++++++++++--- forge-gui/src/main/java/forge/puzzle/Puzzle.java | 3 +++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/forge-gui/src/main/java/forge/achievement/ChallengeAchievements.java b/forge-gui/src/main/java/forge/achievement/ChallengeAchievements.java index 0970a6c222d..a5a5ee2be12 100644 --- a/forge-gui/src/main/java/forge/achievement/ChallengeAchievements.java +++ b/forge-gui/src/main/java/forge/achievement/ChallengeAchievements.java @@ -44,6 +44,9 @@ public class ChallengeAchievements extends AchievementCollection { @Override protected boolean eval(Player player, Game game) { + if (!ChallengeAchievements.checkValidGameMode(game)) { + return false; + } return player.getOutcome().hasWon() && player.getAchievementTracker().challengesCompleted.contains(getKey()); } @@ -56,9 +59,7 @@ public class ChallengeAchievements extends AchievementCollection { @Override protected final boolean eval(Player player, Game game) { - if (game.getRules().hasAppliedVariant(GameType.MomirBasic) - || game.getRules().hasAppliedVariant(GameType.Puzzle)) { - // these modes use a fixed pre-defined deck format, so challenge achievements don't apply in them + if (!ChallengeAchievements.checkValidGameMode(game)) { return false; } if (player.getOutcome().hasWon()) { @@ -69,4 +70,13 @@ public class ChallengeAchievements extends AchievementCollection { protected abstract boolean eval(Deck deck); } + + public static boolean checkValidGameMode(final Game game) { + if (game.getRules().hasAppliedVariant(GameType.MomirBasic) + || game.getRules().hasAppliedVariant(GameType.Puzzle)) { + // these modes use a fixed pre-defined deck format, so challenge achievements don't apply in them + return false; + } + return true; + } } diff --git a/forge-gui/src/main/java/forge/puzzle/Puzzle.java b/forge-gui/src/main/java/forge/puzzle/Puzzle.java index ef037506279..1fa996caa2e 100644 --- a/forge-gui/src/main/java/forge/puzzle/Puzzle.java +++ b/forge-gui/src/main/java/forge/puzzle/Puzzle.java @@ -1,7 +1,9 @@ package forge.puzzle; +import com.google.common.collect.Sets; import forge.ai.GameState; import forge.game.Game; +import forge.game.GameType; import forge.game.ability.AbilityFactory; import forge.game.card.Card; import forge.game.player.Player; @@ -153,6 +155,7 @@ public class Puzzle extends GameState implements InventoryItem, Comparable