diff --git a/forge-gui-mobile/src/forge/screens/settings/AchievementsPage.java b/forge-gui-mobile/src/forge/screens/settings/AchievementsPage.java index bdbbd184988..59a5e896223 100644 --- a/forge-gui-mobile/src/forge/screens/settings/AchievementsPage.java +++ b/forge-gui-mobile/src/forge/screens/settings/AchievementsPage.java @@ -263,15 +263,19 @@ public class AchievementsPage extends TabPage { //draw tooltip for selected achievement if needed if (selectRect != null) { String subTitle = selectedAchievement.getSubTitle(); - String goldDesc = selectedAchievement.getGoldDesc() == null ? null : "(Gold) " + selectedAchievement.getGoldDesc(); - String silverDesc = selectedAchievement.getSilverDesc() == null ? null : "(Silver) " + selectedAchievement.getSilverDesc(); - String bronzeDesc = selectedAchievement.getBronzeDesc() == null ? null : "(Bronze) " + selectedAchievement.getBronzeDesc(); + String sharedDesc = selectedAchievement.getSharedDesc(); + String goldDesc = selectedAchievement.getGoldDesc(); + String silverDesc = selectedAchievement.getSilverDesc(); + String bronzeDesc = selectedAchievement.getBronzeDesc(); w = getWidth() - 2 * PADDING; float h = NAME_FONT.getLineHeight() + 2.5f * PADDING; if (subTitle != null) { h += DESC_FONT.getLineHeight(); } + if (sharedDesc != null) { + h += DESC_FONT.getLineHeight(); + } if (goldDesc != null) { h += DESC_FONT.getLineHeight(); } @@ -308,20 +312,25 @@ public class AchievementsPage extends TabPage { y += DESC_FONT.getLineHeight(); } y += PADDING; + if (sharedDesc != null) { + g.drawText(sharedDesc + "...", DESC_FONT, TEXT_COLOR, + x, y, w, h, false, HAlignment.LEFT, false); + y += DESC_FONT.getLineHeight(); + } if (goldDesc != null) { - g.drawText(goldDesc, DESC_FONT, + g.drawText("(Gold) " + goldDesc, DESC_FONT, selectedAchievement.earnedGold() ? TEXT_COLOR : NOT_EARNED_COLOR, x, y, w, h, false, HAlignment.LEFT, false); y += DESC_FONT.getLineHeight(); } if (silverDesc != null) { - g.drawText(silverDesc, DESC_FONT, + g.drawText("(Silver) " + silverDesc, DESC_FONT, selectedAchievement.earnedSilver() ? TEXT_COLOR : NOT_EARNED_COLOR, x, y, w, h, false, HAlignment.LEFT, false); y += DESC_FONT.getLineHeight(); } if (bronzeDesc != null) { - g.drawText(bronzeDesc, DESC_FONT, + g.drawText("(Bronze) " + bronzeDesc, DESC_FONT, selectedAchievement.earnedBronze() ? TEXT_COLOR : NOT_EARNED_COLOR, x, y, w, h, false, HAlignment.LEFT, false); } diff --git a/forge-gui/src/main/java/forge/achievement/Achievement.java b/forge-gui/src/main/java/forge/achievement/Achievement.java index 18aae906f05..b050f35abae 100644 --- a/forge-gui/src/main/java/forge/achievement/Achievement.java +++ b/forge-gui/src/main/java/forge/achievement/Achievement.java @@ -14,18 +14,19 @@ import forge.util.FileUtil; import forge.util.gui.SOptionPane; public abstract class Achievement { - private final String displayName, bronzeDesc, silverDesc, goldDesc; + private final String displayName, sharedDesc, bronzeDesc, silverDesc, goldDesc; private final int bronzeThreshold, silverThreshold, goldThreshold; private final boolean checkGreaterThan; private String imagePrefix; private ISkinImage customImage; protected int best, current; - public Achievement(String displayName0, + public Achievement(String displayName0, String sharedDesc0, String bronzeDesc0, int bronzeThreshold0, String silverDesc0, int silverThreshold0, String goldDesc0, int goldThreshold0) { displayName = displayName0; + sharedDesc = sharedDesc0; bronzeDesc = bronzeDesc0; bronzeThreshold = bronzeThreshold0; silverDesc = silverDesc0; @@ -38,6 +39,9 @@ public abstract class Achievement { public String getDisplayName() { return displayName; } + public String getSharedDesc() { + return sharedDesc; + } public String getBronzeDesc() { return bronzeDesc; } @@ -157,8 +161,11 @@ public abstract class Achievement { updateCustomImage(); } }); + if (sharedDesc != null) { + desc = sharedDesc + " " + desc; + } SOptionPane.showMessageDialog(gui, "You've earned a " + type + " trophy!\n\n" + - displayName + " - " + desc, "Achievement Earned", image); + displayName + "\n" + desc + ".", "Achievement Earned", image); } } diff --git a/forge-gui/src/main/java/forge/achievement/Blackjack.java b/forge-gui/src/main/java/forge/achievement/Blackjack.java index 84540641319..a499fc8a1a2 100644 --- a/forge-gui/src/main/java/forge/achievement/Blackjack.java +++ b/forge-gui/src/main/java/forge/achievement/Blackjack.java @@ -8,10 +8,10 @@ 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); + super("Blackjack", "Win a game from your commander dealing", + String.format("%d combat damage", THRESHOLD), THRESHOLD, + String.format("%d combat damage", silver0), silver0, + String.format("%d combat damage", gold0), gold0); } @Override diff --git a/forge-gui/src/main/java/forge/achievement/DeckedOut.java b/forge-gui/src/main/java/forge/achievement/DeckedOut.java index 6ea94ec0dc8..95a38058bb5 100644 --- a/forge-gui/src/main/java/forge/achievement/DeckedOut.java +++ b/forge-gui/src/main/java/forge/achievement/DeckedOut.java @@ -6,10 +6,10 @@ import forge.game.player.Player; public class DeckedOut extends Achievement { public DeckedOut(int silver0, int gold0) { - super("Decked Out", - "Win a game from opponent drawing into an empty library.", Integer.MAX_VALUE - 1, - String.format("Win a game this way by turn %d.", silver0), silver0, - String.format("Win a game this way by turn %d.", gold0), gold0); + super("Decked Out", "Win a game from opponent", + "drawing into an empty library", Integer.MAX_VALUE - 1, + String.format("drawing into an empty library by turn %d", silver0), silver0, + String.format("drawing into an empty library by turn %d", gold0), gold0); best = Integer.MAX_VALUE; } diff --git a/forge-gui/src/main/java/forge/achievement/GameWinStreak.java b/forge-gui/src/main/java/forge/achievement/GameWinStreak.java index b55bb560468..d91a404a1ae 100644 --- a/forge-gui/src/main/java/forge/achievement/GameWinStreak.java +++ b/forge-gui/src/main/java/forge/achievement/GameWinStreak.java @@ -5,10 +5,10 @@ import forge.game.player.Player; public class GameWinStreak extends Achievement { public GameWinStreak(int bronze0, int silver0, int gold0) { - super("Game Win Streak", - String.format("Win %d games in a row.", bronze0), bronze0, - String.format("Win %d games in a row.", silver0), silver0, - String.format("Win %d games in a row.", gold0), gold0); + super("Game Win Streak", null, + String.format("Win %d games in a row", bronze0), bronze0, + String.format("Win %d games in a row", silver0), silver0, + String.format("Win %d games in a row", gold0), gold0); } @Override diff --git a/forge-gui/src/main/java/forge/achievement/Hellbent.java b/forge-gui/src/main/java/forge/achievement/Hellbent.java index 2cd2592247f..56f872f6416 100644 --- a/forge-gui/src/main/java/forge/achievement/Hellbent.java +++ b/forge-gui/src/main/java/forge/achievement/Hellbent.java @@ -6,10 +6,10 @@ import forge.game.zone.ZoneType; public class Hellbent extends Achievement { public Hellbent() { - super("Hellbent", - "Win game with no cards in hand.", 1, - "Win game with no cards in hand or library.", 2, - "Win game with no cards in hand, library, or graveyard.", 3); + super("Hellbent", "Win a game with no cards", + "in your hand", 1, + "in your hand or library", 2, + "in your hand, library, or graveyard", 3); } @Override diff --git a/forge-gui/src/main/java/forge/achievement/LifeToSpare.java b/forge-gui/src/main/java/forge/achievement/LifeToSpare.java index aa1f0108882..0eea0290a34 100644 --- a/forge-gui/src/main/java/forge/achievement/LifeToSpare.java +++ b/forge-gui/src/main/java/forge/achievement/LifeToSpare.java @@ -5,10 +5,10 @@ import forge.game.player.Player; public class LifeToSpare extends Achievement { public LifeToSpare(int bronze0, int silver0, int gold0) { - super("Life to Spare", - String.format("Win game with %d life more than you started with.", bronze0), bronze0, - String.format("Win game with %d life more than you started with.", silver0), silver0, - String.format("Win game with %d life more than you started with.", gold0), gold0); + super("Life to Spare", "Win a game with", + String.format("%d life more than you started with", bronze0), bronze0, + String.format("%d life more than you started with", silver0), silver0, + String.format("%d life more than you started with", gold0), gold0); } @Override diff --git a/forge-gui/src/main/java/forge/achievement/MatchWinStreak.java b/forge-gui/src/main/java/forge/achievement/MatchWinStreak.java index c13b9ebd8be..077c38ac21a 100644 --- a/forge-gui/src/main/java/forge/achievement/MatchWinStreak.java +++ b/forge-gui/src/main/java/forge/achievement/MatchWinStreak.java @@ -5,10 +5,10 @@ import forge.game.player.Player; public class MatchWinStreak extends Achievement { public MatchWinStreak(int bronze0, int silver0, int gold0) { - super("Match Win Streak", - String.format("Win %d matches in a row.", bronze0), bronze0, - String.format("Win %d matches in a row.", silver0), silver0, - String.format("Win %d matches in a row.", gold0), gold0); + super("Match Win Streak", null, + String.format("Win %d matches in a row", bronze0), bronze0, + String.format("Win %d matches in a row", silver0), silver0, + String.format("Win %d matches in a row", gold0), gold0); } @Override diff --git a/forge-gui/src/main/java/forge/achievement/NeedForSpeed.java b/forge-gui/src/main/java/forge/achievement/NeedForSpeed.java index 24776f0a271..27c74bd2786 100644 --- a/forge-gui/src/main/java/forge/achievement/NeedForSpeed.java +++ b/forge-gui/src/main/java/forge/achievement/NeedForSpeed.java @@ -5,10 +5,10 @@ import forge.game.player.Player; public class NeedForSpeed extends Achievement { public NeedForSpeed(int bronze0, int silver0, int gold0) { - super("Need for Speed", - String.format("Win a game by turn %d.", bronze0), bronze0, - String.format("Win a game by turn %d.", silver0), silver0, - String.format("Win a game by turn %d.", gold0), gold0); + super("Need for Speed", null, + String.format("Win a game by turn %d", bronze0), bronze0, + String.format("Win a game by turn %d", silver0), silver0, + String.format("Win a game by turn %d", gold0), gold0); best = Integer.MAX_VALUE; //initialize best to max value so any } diff --git a/forge-gui/src/main/java/forge/achievement/Overkill.java b/forge-gui/src/main/java/forge/achievement/Overkill.java index 79dd23b5643..8cab9fcdfa8 100644 --- a/forge-gui/src/main/java/forge/achievement/Overkill.java +++ b/forge-gui/src/main/java/forge/achievement/Overkill.java @@ -7,10 +7,10 @@ import forge.game.player.Player; public class Overkill extends Achievement { public Overkill(int bronze0, int silver0, int gold0) { - super("Overkill", - String.format("Win game with opponent at %d life or less.", bronze0), bronze0, - String.format("Win game with opponent at %d life or less.", silver0), silver0, - String.format("Win game with opponent at %d life or less.", gold0), gold0); + super("Overkill", "Win a game with opponent at", + String.format("%d life.", bronze0), bronze0, + String.format("%d life", silver0), silver0, + String.format("%d life", gold0), gold0); } @Override diff --git a/forge-gui/src/main/java/forge/achievement/Poisoned.java b/forge-gui/src/main/java/forge/achievement/Poisoned.java index 3db73ee1ca2..8c5ad537338 100644 --- a/forge-gui/src/main/java/forge/achievement/Poisoned.java +++ b/forge-gui/src/main/java/forge/achievement/Poisoned.java @@ -8,10 +8,10 @@ public class Poisoned extends Achievement { 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.", 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); + super("Poisoned", "Win a game by giving opponent", + String.format("%d poison counters", THRESHOLD), THRESHOLD, + String.format("%d poison counters", silver0), silver0, + String.format("%d poison counters", gold0), gold0); } @Override diff --git a/forge-gui/src/main/java/forge/achievement/TotalGameWins.java b/forge-gui/src/main/java/forge/achievement/TotalGameWins.java index bb9fd78fd83..6f2365fd198 100644 --- a/forge-gui/src/main/java/forge/achievement/TotalGameWins.java +++ b/forge-gui/src/main/java/forge/achievement/TotalGameWins.java @@ -5,10 +5,10 @@ import forge.game.player.Player; public class TotalGameWins extends Achievement { public TotalGameWins(int bronze0, int silver0, int gold0) { - super("Total Game Wins", - String.format("Win %d games.", bronze0), bronze0, - String.format("Win %d games.", silver0), silver0, - String.format("Win %d games.", gold0), gold0); + super("Total Game Wins", null, + String.format("Win %d games", bronze0), bronze0, + String.format("Win %d games", silver0), silver0, + String.format("Win %d games", gold0), gold0); } @Override diff --git a/forge-gui/src/main/java/forge/achievement/TotalMatchWins.java b/forge-gui/src/main/java/forge/achievement/TotalMatchWins.java index 62bbd512ec3..165c76d5d74 100644 --- a/forge-gui/src/main/java/forge/achievement/TotalMatchWins.java +++ b/forge-gui/src/main/java/forge/achievement/TotalMatchWins.java @@ -5,10 +5,10 @@ import forge.game.player.Player; public class TotalMatchWins extends Achievement { public TotalMatchWins(int bronze0, int silver0, int gold0) { - super("Total Match Wins", - String.format("Win %d matches.", bronze0), bronze0, - String.format("Win %d matches.", silver0), silver0, - String.format("Win %d matches.", gold0), gold0); + super("Total Match Wins", null, + String.format("Win %d matches", bronze0), bronze0, + String.format("Win %d matches", silver0), silver0, + String.format("Win %d matches", gold0), gold0); } @Override diff --git a/forge-gui/src/main/java/forge/achievement/VariantWins.java b/forge-gui/src/main/java/forge/achievement/VariantWins.java index 951ac25eb83..4e870735731 100644 --- a/forge-gui/src/main/java/forge/achievement/VariantWins.java +++ b/forge-gui/src/main/java/forge/achievement/VariantWins.java @@ -8,10 +8,10 @@ public class VariantWins extends Achievement { private GameType variant; public VariantWins(GameType variant0, int silver0, int gold0) { - super(variant0.toString(), - String.format("Win a %s game.", variant0.toString()), 1, - String.format("Win %d %s games.", silver0, variant0.toString()), silver0, - String.format("Win %d %s games.", gold0, variant0.toString()), gold0); + super(variant0.toString(), null, + String.format("Win a %s game", variant0.toString()), 1, + String.format("Win %d %s games", silver0, variant0.toString()), silver0, + String.format("Win %d %s games", gold0, variant0.toString()), gold0); variant = variant0; }