Add ManaFlooded achievement

This commit is contained in:
drdev
2014-09-27 20:44:31 +00:00
parent a1c7d97807
commit cc3480b266
5 changed files with 48 additions and 3 deletions

View File

@@ -89,8 +89,14 @@ public abstract class AchievementCollection implements Iterable<Achievement> {
add(new Overkill(-25, -50, -100, -200));
add(new LifeToSpare(20, 40, 80, 160));
add(new Hellbent());
add(new ManaScrewed());
add(new RagsToRiches());
add(new ManaScrewed());
if (isLimitedFormat) { //lower gold and mythic thresholds based on smaller decks
add(new ManaFlooded(8, 11, 14, 17));
}
else {
add(new ManaFlooded(8, 12, 18, 24));
}
}
protected abstract void addAchievements();

View File

@@ -0,0 +1,38 @@
package forge.achievement;
import forge.game.Game;
import forge.game.card.Card;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
public class ManaFlooded extends Achievement {
public ManaFlooded(int bronze0, int silver0, int gold0, int mythic0) {
super("ManaFlooded", "Mana Flooded", "Win a game with at least",
String.format("%d lands on the battlefield", bronze0), bronze0,
String.format("%d lands on the battlefield", silver0), silver0,
String.format("%d lands on the battlefield", gold0), gold0,
String.format("%d lands on the battlefield", mythic0), mythic0);
}
@Override
protected int evaluate(Player player, Game game) {
if (player.getOutcome().hasWon()) {
int landCount = 0;
for (Card c : player.getZone(ZoneType.Battlefield).getCards()) {
if (c.isLand()) {
landCount++;
}
}
return landCount;
}
return 0; //indicate that player didn't win
}
@Override
public String getSubTitle() {
if (best > 0) {
return "Best: " + best + " Land" + (best != 1 ? "s" : "");
}
return null;
}
}

View File

@@ -29,7 +29,7 @@ public class ManaScrewed extends Achievement {
@Override
public String getSubTitle() {
if (best < Integer.MAX_VALUE) {
return "Best: " + best + " land" + (best != 1 ? "s" : "");
return "Best: " + best + " Land" + (best != 1 ? "s" : "");
}
return null;
}

View File

@@ -31,7 +31,7 @@ public class RagsToRiches extends Achievement {
@Override
public String getSubTitle() {
if (best < NO_MULLIGAN) {
return "Best: " + best + " card" + (best != 1 ? "s" : "");
return "Best: " + best + " Card" + (best != 1 ? "s" : "");
}
return null;
}