mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
Added MoJhoSto variant
This commit is contained in:
@@ -15,7 +15,7 @@ public class ArcaneMaster extends Achievement {
|
||||
|
||||
@Override
|
||||
protected int evaluate(Player player, Game game) {
|
||||
if (game.getRules().hasAppliedVariant(GameType.MomirBasic)) {
|
||||
if (game.getRules().hasAppliedVariant(GameType.MomirBasic) || game.getRules().hasAppliedVariant(GameType.MoJhoSto)) {
|
||||
return defaultValue; // Momir Basic is exempt from this achievement (custom rules do not require any spellcasting by default)
|
||||
}
|
||||
if (player.getOutcome().hasWon()) {
|
||||
|
||||
@@ -72,7 +72,7 @@ public class ChallengeAchievements extends AchievementCollection {
|
||||
}
|
||||
|
||||
public static boolean checkValidGameMode(final Game game) {
|
||||
if (game.getRules().hasAppliedVariant(GameType.MomirBasic)
|
||||
if (game.getRules().hasAppliedVariant(GameType.MomirBasic) || game.getRules().hasAppliedVariant(GameType.MoJhoSto)
|
||||
|| game.getRules().hasAppliedVariant(GameType.Puzzle)) {
|
||||
// these modes use a fixed pre-defined deck format, so challenge achievements don't apply in them
|
||||
return false;
|
||||
|
||||
@@ -13,6 +13,7 @@ public class ConstructedAchievements extends AchievementCollection {
|
||||
protected void addAchievements() {
|
||||
add(new VariantWins(GameType.Vanguard, 25, 50, 100));
|
||||
add(new VariantWins(GameType.MomirBasic, 25, 50, 100));
|
||||
add(new VariantWins(GameType.MoJhoSto, 25, 50, 100));
|
||||
add(new VariantWins(GameType.Commander, 25, 50, 100));
|
||||
add(new VariantWins(GameType.TinyLeaders, 25, 50, 100));
|
||||
add(new VariantWins(GameType.Brawl, 25, 50, 100));
|
||||
|
||||
@@ -16,7 +16,7 @@ public class Domain extends ProgressiveAchievement {
|
||||
|
||||
@Override
|
||||
protected boolean eval(Player player, Game game) {
|
||||
if (game.getRules().hasAppliedVariant(GameType.MomirBasic)) {
|
||||
if (game.getRules().hasAppliedVariant(GameType.MomirBasic) || game.getRules().hasAppliedVariant(GameType.MoJhoSto)) {
|
||||
// Not an achievement in Momir Basic (easy to get due to predefined deck contents)
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ public class ManaFlooded extends Achievement {
|
||||
|
||||
@Override
|
||||
protected int evaluate(Player player, Game game) {
|
||||
if (game.getRules().hasAppliedVariant(GameType.MomirBasic)) {
|
||||
if (game.getRules().hasAppliedVariant(GameType.MomirBasic) || game.getRules().hasAppliedVariant(GameType.MoJhoSto)) {
|
||||
return 0; // in Momir Basic, getting a lot of lands out is not an achievement:w
|
||||
}
|
||||
if (player.getOutcome().hasWon()) {
|
||||
|
||||
@@ -234,25 +234,37 @@ public abstract class GameLobby implements IHasGameType {
|
||||
data.appliedVariants.remove(GameType.TinyLeaders);
|
||||
data.appliedVariants.remove(GameType.Brawl);
|
||||
data.appliedVariants.remove(GameType.MomirBasic);
|
||||
data.appliedVariants.remove(GameType.MoJhoSto);
|
||||
break;
|
||||
case TinyLeaders:
|
||||
data.appliedVariants.remove(GameType.Commander);
|
||||
data.appliedVariants.remove(GameType.Brawl);
|
||||
data.appliedVariants.remove(GameType.MomirBasic);
|
||||
data.appliedVariants.remove(GameType.MoJhoSto);
|
||||
break;
|
||||
case Brawl:
|
||||
data.appliedVariants.remove(GameType.Commander);
|
||||
data.appliedVariants.remove(GameType.TinyLeaders);
|
||||
data.appliedVariants.remove(GameType.MomirBasic);
|
||||
data.appliedVariants.remove(GameType.MoJhoSto);
|
||||
break;
|
||||
case Vanguard:
|
||||
data.appliedVariants.remove(GameType.MomirBasic);
|
||||
data.appliedVariants.remove(GameType.MoJhoSto);
|
||||
break;
|
||||
case MomirBasic:
|
||||
data.appliedVariants.remove(GameType.Commander);
|
||||
data.appliedVariants.remove(GameType.TinyLeaders);
|
||||
data.appliedVariants.remove(GameType.Brawl);
|
||||
data.appliedVariants.remove(GameType.Vanguard);
|
||||
data.appliedVariants.remove(GameType.MoJhoSto);
|
||||
break;
|
||||
case MoJhoSto:
|
||||
data.appliedVariants.remove(GameType.Commander);
|
||||
data.appliedVariants.remove(GameType.TinyLeaders);
|
||||
data.appliedVariants.remove(GameType.Brawl);
|
||||
data.appliedVariants.remove(GameType.Vanguard);
|
||||
data.appliedVariants.remove(GameType.MomirBasic);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -413,7 +425,6 @@ public abstract class GameLobby implements IHasGameType {
|
||||
players.add(rp.setPlayer(lobbyPlayer));
|
||||
}
|
||||
else {
|
||||
PaperCard vanguardAvatar = null;
|
||||
if (isCommanderMatch) {
|
||||
final GameType commanderGameType = isTinyLeadersMatch ? GameType.TinyLeaders : isBrawlMatch ? GameType.Brawl : GameType.Commander;
|
||||
if (checkLegality) {
|
||||
@@ -438,9 +449,6 @@ public abstract class GameLobby implements IHasGameType {
|
||||
deck = deck == null ? rp.getDeck() : deck;
|
||||
|
||||
final CardPool avatarPool = deck.get(DeckSection.Avatar);
|
||||
if (avatarPool != null && (hasVariant(GameType.Vanguard) || hasVariant(GameType.MomirBasic))) {
|
||||
vanguardAvatar = avatarPool.get(0);
|
||||
}
|
||||
|
||||
Iterable<PaperCard> schemes = null;
|
||||
Iterable<PaperCard> planes = null;
|
||||
@@ -474,14 +482,14 @@ public abstract class GameLobby implements IHasGameType {
|
||||
|
||||
//Vanguard
|
||||
if (variantTypes.contains(GameType.Vanguard)) {
|
||||
if (vanguardAvatar == null) { //ERROR! null if avatar deselected on list
|
||||
if (avatarPool == null || avatarPool.countAll() == 0) { //ERROR! null if avatar deselected on list
|
||||
SOptionPane.showMessageDialog("No Vanguard avatar selected for " + name
|
||||
+ ". Please choose one or disable the Vanguard variant");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
rp = RegisteredPlayer.forVariants(activeSlots.size(), variantTypes, deck, schemes, isArchenemy, planes, vanguardAvatar);
|
||||
rp = RegisteredPlayer.forVariants(activeSlots.size(), variantTypes, deck, schemes, isArchenemy, planes, avatarPool);
|
||||
rp.setTeamNumber(team);
|
||||
players.add(rp.setPlayer(lobbyPlayer));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user