Added MoJhoSto variant

This commit is contained in:
austinio7116
2018-04-02 07:19:09 +01:00
committed by maustin
parent ff1e6b835c
commit a73667610b
12 changed files with 65 additions and 28 deletions

View File

@@ -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()) {

View File

@@ -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;

View File

@@ -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));

View File

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

View File

@@ -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()) {

View File

@@ -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));
}