mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
- Puzzle Mode: don't award Challenge achievements in this mode (take two).
This commit is contained in:
@@ -44,6 +44,9 @@ public class ChallengeAchievements extends AchievementCollection {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean eval(Player player, Game game) {
|
protected boolean eval(Player player, Game game) {
|
||||||
|
if (!ChallengeAchievements.checkValidGameMode(game)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return player.getOutcome().hasWon() &&
|
return player.getOutcome().hasWon() &&
|
||||||
player.getAchievementTracker().challengesCompleted.contains(getKey());
|
player.getAchievementTracker().challengesCompleted.contains(getKey());
|
||||||
}
|
}
|
||||||
@@ -56,9 +59,7 @@ public class ChallengeAchievements extends AchievementCollection {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected final boolean eval(Player player, Game game) {
|
protected final boolean eval(Player player, Game game) {
|
||||||
if (game.getRules().hasAppliedVariant(GameType.MomirBasic)
|
if (!ChallengeAchievements.checkValidGameMode(game)) {
|
||||||
|| 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 false;
|
||||||
}
|
}
|
||||||
if (player.getOutcome().hasWon()) {
|
if (player.getOutcome().hasWon()) {
|
||||||
@@ -69,4 +70,13 @@ public class ChallengeAchievements extends AchievementCollection {
|
|||||||
|
|
||||||
protected abstract boolean eval(Deck deck);
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package forge.puzzle;
|
package forge.puzzle;
|
||||||
|
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
import forge.ai.GameState;
|
import forge.ai.GameState;
|
||||||
import forge.game.Game;
|
import forge.game.Game;
|
||||||
|
import forge.game.GameType;
|
||||||
import forge.game.ability.AbilityFactory;
|
import forge.game.ability.AbilityFactory;
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
@@ -153,6 +155,7 @@ public class Puzzle extends GameState implements InventoryItem, Comparable<Puzzl
|
|||||||
setupMaxPlayerHandSize(game, 7);
|
setupMaxPlayerHandSize(game, 7);
|
||||||
super.applyGameOnThread(game);
|
super.applyGameOnThread(game);
|
||||||
addGoalEnforcement(game);
|
addGoalEnforcement(game);
|
||||||
|
game.getRules().setAppliedVariants(Sets.newHashSet(GameType.Puzzle));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user