Add Blackjack achievement

This commit is contained in:
drdev
2014-09-17 03:46:35 +00:00
parent bf7832c14d
commit 2a871c2525
5 changed files with 47 additions and 4 deletions

1
.gitattributes vendored
View File

@@ -16655,6 +16655,7 @@ forge-gui/src/main/java/forge/GuiBase.java -text
forge-gui/src/main/java/forge/UiCommand.java svneol=native#text/plain
forge-gui/src/main/java/forge/achievement/Achievement.java -text
forge-gui/src/main/java/forge/achievement/AchievementCollection.java -text
forge-gui/src/main/java/forge/achievement/Blackjack.java -text
forge-gui/src/main/java/forge/achievement/ConstructedAchievements.java -text
forge-gui/src/main/java/forge/achievement/DeckedOut.java -text
forge-gui/src/main/java/forge/achievement/DraftAchievements.java -text

View File

@@ -0,0 +1,39 @@
package forge.achievement;
import forge.game.Game;
import forge.game.player.GameLossReason;
import forge.game.player.Player;
public class Blackjack extends Achievement {
private static final int THRESHOLD = 21;
public Blackjack(int silver0, int gold0) {
super("Blackjack",
String.format("Win a game by dealing %d combat damage with your commander.", THRESHOLD), THRESHOLD,
String.format("Win a game by dealing %d combat damage with your commander.", silver0), silver0,
String.format("Win a game by dealing %d combat damage with your commander.", gold0), gold0);
}
@Override
protected int evaluate(Player player, Game game) {
if (player.getOutcome().hasWon()) {
for (Player p : game.getRegisteredPlayers()) {
if (p.isOpponentOf(player) && p.getOutcome().lossState == GameLossReason.CommanderDamage) {
Integer damage = p.getCommanderDamage().get(player.getCommander());
if (damage != null && damage >= THRESHOLD) {
return damage;
}
}
}
}
return 0;
}
@Override
public String getSubTitle() {
if (best > 0) {
return "Best: " + best + " Damage";
}
return null;
}
}

View File

@@ -16,11 +16,12 @@ public class ConstructedAchievements extends AchievementCollection {
//add achievements that should appear at the bottom below core achievements for each game mode
@Override
protected void buildBottomShelf() {
add("Poisoned", new Poisoned(10, 15, 25));
add("Poisoned", new Poisoned(15, 25));
add("DeckedOut", new DeckedOut(8, 4));
add("Vanguard", new VariantWins(GameType.Vanguard, 25, 50));
add("MomirBasic", new VariantWins(GameType.MomirBasic, 25, 50));
add("Commander", new VariantWins(GameType.Commander, 25, 50));
add("Blackjack", new Blackjack(30, 50));
add("Planechase", new VariantWins(GameType.Planechase, 25, 50));
add("Archenemy", new VariantWins(GameType.Archenemy, 25, 50));
}

View File

@@ -5,9 +5,11 @@ import forge.game.player.GameLossReason;
import forge.game.player.Player;
public class Poisoned extends Achievement {
public Poisoned(int bronze0, int silver0, int gold0) {
private static final int THRESHOLD = 10;
public Poisoned(int silver0, int gold0) {
super("Poisoned",
String.format("Win a game by giving opponent %d poison counters.", bronze0), bronze0,
String.format("Win a game by giving opponent %d poison counters.", THRESHOLD), THRESHOLD,
String.format("Win a game by giving opponent %d poison counters.", silver0), silver0,
String.format("Win a game by giving opponent %d poison counters.", gold0), gold0);
}

View File

@@ -15,7 +15,7 @@ public class QuestAchievements extends AchievementCollection {
//add achievements that should appear at the bottom below core achievements for each game mode
@Override
protected void buildBottomShelf() {
add("Poisoned", new Poisoned(10, 15, 25));
add("Poisoned", new Poisoned(15, 25));
add("DeckedOut", new DeckedOut(8, 4));
}
}