From 24e4364a4c6a57fa31dff6c5eba861dc54861dc7 Mon Sep 17 00:00:00 2001 From: Agetian Date: Mon, 26 Sep 2016 05:15:06 +0000 Subject: [PATCH] - Momir Basic is exempt from evaluating Arcane Master, Mana Flooded and deck construction challenge (e.g. No Spells) achievements as they are pertinent to this format and can't really be regarded as player's "achievements" in this case. --- forge-gui/src/main/java/forge/achievement/ArcaneMaster.java | 4 ++++ .../main/java/forge/achievement/ChallengeAchievements.java | 5 +++++ forge-gui/src/main/java/forge/achievement/ManaFlooded.java | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/forge-gui/src/main/java/forge/achievement/ArcaneMaster.java b/forge-gui/src/main/java/forge/achievement/ArcaneMaster.java index 4978183ed56..27f66d4711a 100644 --- a/forge-gui/src/main/java/forge/achievement/ArcaneMaster.java +++ b/forge-gui/src/main/java/forge/achievement/ArcaneMaster.java @@ -1,6 +1,7 @@ package forge.achievement; import forge.game.Game; +import forge.game.GameType; import forge.game.player.Player; public class ArcaneMaster extends Achievement { @@ -14,6 +15,9 @@ public class ArcaneMaster extends Achievement { @Override protected int evaluate(Player player, Game game) { + if (game.getRules().hasAppliedVariant(GameType.MomirBasic)) { + return defaultValue; // Momir Basic is exempt from this achievement (custom rules do not require any spellcasting by default) + } if (player.getOutcome().hasWon()) { return player.getAchievementTracker().spellsCast; } diff --git a/forge-gui/src/main/java/forge/achievement/ChallengeAchievements.java b/forge-gui/src/main/java/forge/achievement/ChallengeAchievements.java index 89ee82cc2f1..aa96d01a15c 100644 --- a/forge-gui/src/main/java/forge/achievement/ChallengeAchievements.java +++ b/forge-gui/src/main/java/forge/achievement/ChallengeAchievements.java @@ -2,6 +2,7 @@ package forge.achievement; import forge.deck.Deck; import forge.game.Game; +import forge.game.GameType; import forge.game.player.Player; import forge.properties.ForgeConstants; @@ -55,6 +56,10 @@ public class ChallengeAchievements extends AchievementCollection { @Override protected final boolean eval(Player player, Game game) { + if (game.getRules().hasAppliedVariant(GameType.MomirBasic)) { + // Momir Basic uses a fixed pre-defined deck format (all lands), so designing it to be that way is not the player's achievement + return false; + } if (player.getOutcome().hasWon()) { return eval(player.getRegisteredPlayer().getDeck()); } diff --git a/forge-gui/src/main/java/forge/achievement/ManaFlooded.java b/forge-gui/src/main/java/forge/achievement/ManaFlooded.java index 03d2435e103..5c528be1871 100644 --- a/forge-gui/src/main/java/forge/achievement/ManaFlooded.java +++ b/forge-gui/src/main/java/forge/achievement/ManaFlooded.java @@ -1,6 +1,7 @@ package forge.achievement; import forge.game.Game; +import forge.game.GameType; import forge.game.card.Card; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -16,6 +17,9 @@ public class ManaFlooded extends Achievement { @Override protected int evaluate(Player player, Game game) { + if (game.getRules().hasAppliedVariant(GameType.MomirBasic)) { + return 0; // in Momir Basic, getting a lot of lands out is not an achievement:w + } if (player.getOutcome().hasWon()) { int landCount = 0; for (Card c : player.getZone(ZoneType.Battlefield).getCards()) {