diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index 5f89345bc38..052f4e3d094 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -1,7 +1,7 @@ 4.0.0 - + yyyyMMdd-HHmm jar @@ -18,7 +18,7 @@ forge-gui-android ${packaging.type} Forge Android - + src @@ -213,7 +213,7 @@ true true - + ${project.build.directory}/${project.build.finalName}/${project.build.finalName}.apk @@ -277,12 +277,21 @@ - + - - - - + + + + @@ -299,52 +308,57 @@ apk - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - org.apache.ant - ant-nodeps - 1.8.1 - - - commons-net - commons-net - 1.4.1 - - - ant - ant-commons-net - 1.6.5 - - - - - android-ftp - package - - - - - - - - - - - - - run - - - - - - + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.7 + + + org.apache.ant + ant-nodeps + 1.8.1 + + + commons-net + commons-net + 1.4.1 + + + ant + ant-commons-net + 1.6.5 + + + + + android-ftp + package + + + + + + + + + + + + + run + + + + + + \ No newline at end of file diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java index a315b49a948..94be1e7ee8d 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java @@ -81,6 +81,17 @@ public enum CSubmenuDuels implements ICDoc { quest.save(); } }); + + view.getBtnRandomOpponent().setCommand(new UiCommand() { + @Override + public void run() { + FModel.getQuest().getDuelsManager().randomizeOpponents(); + final List duels = FModel.getQuest().getDuelsManager().generateDuels(); + SSubmenuQuestUtil.setEvent(duels.get((int) (Math.random() * duels.size()))); + SSubmenuQuestUtil.startGame(); + } + }); + } private final KeyAdapter _startOnEnter = new KeyAdapter() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/IVQuestStats.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/IVQuestStats.java index 57fce9f00a5..638452b24aa 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/IVQuestStats.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/IVQuestStats.java @@ -7,6 +7,10 @@ import forge.toolbox.FLabel; /** Dictates methods required for a panel with stats/pet display. */ public interface IVQuestStats { + + /** @return {@link forge.toolbox.FLabel} */ + FLabel getBtnRandomOpponent(); + /** @return {@link forge.toolbox.FLabel} */ FLabel getBtnBazaar(); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java index 1ec9a730bd6..977fcf2b075 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java @@ -285,4 +285,10 @@ public enum VSubmenuChallenges implements IVSubmenu, IVQuest public FCheckBox getCbCharm() { return cbCharm; } + + @Override + public FLabel getBtnRandomOpponent() { + return null; + } + } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java index 2b4895cf1d4..42ec60833b2 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java @@ -73,15 +73,18 @@ public enum VSubmenuDuels implements IVSubmenu, IVQuestStats { private final FLabel btnTravel = new FLabel.ButtonBuilder().text("Travel").fontSize(16).build(); private final FLabel btnBazaar = new FLabel.ButtonBuilder().text("Bazaar").fontSize(16).build(); private final FLabel btnSpellShop = new FLabel.ButtonBuilder().text("Spell Shop").fontSize(16).build(); + private final FLabel btnRandomOpponent = new FLabel.ButtonBuilder().text("Random Duel").fontSize(16).build(); /** * Constructor. */ private VSubmenuDuels() { + final String constraints = "h 30px!, gap 0 0 0 5px"; pnlStats.setLayout(new MigLayout("insets 0, gap 0, wrap, hidemode 0")); pnlStats.add(btnUnlock, "w 150px!, h 30px!, gap 0 0 0 10px"); pnlStats.add(btnTravel, "w 150px!, h 30px!, gap 0 0 0 10px"); + pnlStats.add(btnRandomOpponent, "w 150px!, h 30px!, gap 0 0 0 10px"); pnlStats.add(btnSpellShop, "w 150px!, h 30px!, gap 0 0 0 10px"); pnlStats.add(btnBazaar, "w 150px!, h 30px!, gap 0 0 0 10px"); pnlStats.add(lblWins, constraints); @@ -94,6 +97,9 @@ public enum VSubmenuDuels implements IVSubmenu, IVQuestStats { pnlStats.add(cbCharm, constraints); cbxPet.addTo(pnlStats, constraints); pnlStats.setOpaque(false); + + btnRandomOpponent.setToolTipText("Starts a duel against a randomly selected opponent."); + } /* (non-Javadoc) @@ -211,6 +217,11 @@ public enum VSubmenuDuels implements IVSubmenu, IVQuestStats { return btnSpellShop; } + @Override + public FLabel getBtnRandomOpponent() { + return btnRandomOpponent; + } + @Override public FCheckBox getCbPlant() { return cbPlant; diff --git a/forge-gui/src/main/java/forge/quest/QuestUtilCards.java b/forge-gui/src/main/java/forge/quest/QuestUtilCards.java index c8aa34fad20..e642f1b5ccf 100644 --- a/forge-gui/src/main/java/forge/quest/QuestUtilCards.java +++ b/forge-gui/src/main/java/forge/quest/QuestUtilCards.java @@ -605,7 +605,13 @@ public final class QuestUtilCards { Collections.shuffle(editions); - editions = editions.subList(0, Math.max(count / 2, 1)); + int numberOfBoxes = Math.min(Math.max(count / 2, 1), editions.size()); + + if (numberOfBoxes == 0) { + return; + } + + editions = editions.subList(0, numberOfBoxes); List output = new ArrayList<>(); for (CardEdition e : editions) {