From 8e67b5474fe221282c76bd88e985dfb644017fd6 Mon Sep 17 00:00:00 2001 From: jjayers99 <56438137+jjayers99@users.noreply.github.com> Date: Wed, 31 May 2023 16:36:34 -0400 Subject: [PATCH] Adventure tavern events, take 2 --- .../src/forge/adventure/scene/InnScene.java | 2 ++ .../adventure/scene/PlayerStatisticScene.java | 2 +- .../util/AdventureEventController.java | 2 -- .../src/forge/adventure/util/CardUtil.java | 4 ---- .../src/forge/adventure/util/RewardActor.java | 3 --- .../forge/screens/match/MatchController.java | 17 +++++++++++++---- .../match/winlose/AdventureWinLose.java | 2 +- .../achievements/AchievementCollection.java | 1 + .../achievements/AdventureAchievements.java | 18 ++++++++++++++++++ .../src/main/java/forge/model/FModel.java | 5 +++++ 10 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 forge-gui/src/main/java/forge/localinstance/achievements/AdventureAchievements.java diff --git a/forge-gui-mobile/src/forge/adventure/scene/InnScene.java b/forge-gui-mobile/src/forge/adventure/scene/InnScene.java index b23bf3baccd..6e1f07e09ab 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/InnScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/InnScene.java @@ -7,6 +7,7 @@ import forge.Forge; import forge.adventure.data.AdventureEventData; import forge.adventure.player.AdventurePlayer; import forge.adventure.pointofintrest.PointOfInterestChanges; +import forge.adventure.stage.GameHUD; import forge.adventure.util.AdventureEventController; import forge.adventure.util.Controls; import forge.adventure.util.Current; @@ -69,6 +70,7 @@ public class InnScene extends UIScene { public void done() { + GameHUD.getInstance().getTouchpad().setVisible(false); Forge.switchScene(lastGameScene==null?GameScene.instance():lastGameScene); } diff --git a/forge-gui-mobile/src/forge/adventure/scene/PlayerStatisticScene.java b/forge-gui-mobile/src/forge/adventure/scene/PlayerStatisticScene.java index 1bd21034311..dc1c3373545 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/PlayerStatisticScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/PlayerStatisticScene.java @@ -55,7 +55,7 @@ public class PlayerStatisticScene extends UIScene { private PlayerStatisticScene() { super(Forge.isLandscapeMode() ? "ui/statistic.json" : "ui/statistic_portrait.json"); planeswalkers = PlaneswalkerAchievements.instance; - achievements = FModel.getAchievements(GameType.Constructed); + achievements = FModel.getAchievements(GameType.Adventure); cardActivation = CardActivationAchievements.instance; scrollContainer = new Table(Controls.getSkin()); scrollContainer.row(); diff --git a/forge-gui-mobile/src/forge/adventure/util/AdventureEventController.java b/forge-gui-mobile/src/forge/adventure/util/AdventureEventController.java index ee6c6578c32..1ae65e2a16f 100644 --- a/forge-gui-mobile/src/forge/adventure/util/AdventureEventController.java +++ b/forge-gui-mobile/src/forge/adventure/util/AdventureEventController.java @@ -1,8 +1,6 @@ package forge.adventure.util; -import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.utils.Array; -import com.badlogic.gdx.utils.Json; import forge.StaticData; import forge.adventure.data.AdventureEventData; import forge.adventure.player.AdventurePlayer; diff --git a/forge-gui-mobile/src/forge/adventure/util/CardUtil.java b/forge-gui-mobile/src/forge/adventure/util/CardUtil.java index bb8b0704b42..7ddc505d033 100644 --- a/forge-gui-mobile/src/forge/adventure/util/CardUtil.java +++ b/forge-gui-mobile/src/forge/adventure/util/CardUtil.java @@ -8,7 +8,6 @@ import com.google.common.collect.Iterables; import forge.StaticData; import forge.adventure.data.GeneratedDeckData; import forge.adventure.data.GeneratedDeckTemplateData; -import forge.adventure.data.ItemData; import forge.adventure.data.RewardData; import forge.card.*; import forge.card.mana.ManaCostShard; @@ -17,15 +16,12 @@ import forge.deck.DeckSection; import forge.deck.DeckgenUtil; import forge.deck.io.DeckSerializer; import forge.game.GameFormat; -import forge.gamemodes.quest.QuestController; import forge.item.BoosterPack; -import forge.item.InventoryItem; import forge.item.PaperCard; import forge.item.SealedProduct; import forge.item.generation.UnOpenedProduct; import forge.model.FModel; import forge.util.Aggregates; -import forge.util.MyRandom; import java.io.File; import java.util.*; diff --git a/forge-gui-mobile/src/forge/adventure/util/RewardActor.java b/forge-gui-mobile/src/forge/adventure/util/RewardActor.java index 23973b043b5..41a5236522d 100644 --- a/forge-gui-mobile/src/forge/adventure/util/RewardActor.java +++ b/forge-gui-mobile/src/forge/adventure/util/RewardActor.java @@ -32,7 +32,6 @@ import forge.adventure.data.ItemData; import forge.adventure.scene.RewardScene; import forge.adventure.scene.Scene; import forge.adventure.scene.UIScene; -import forge.assets.FImageComplex; import forge.assets.FSkin; import forge.assets.ImageCache; import forge.card.CardImageRenderer; @@ -47,9 +46,7 @@ import forge.util.ImageFetcher; import forge.util.ImageUtil; import forge.util.MyRandom; import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.tuple.Pair; -import java.awt.image.BufferedImage; import java.io.File; import static forge.adventure.util.Paths.ITEMS_ATLAS; diff --git a/forge-gui-mobile/src/forge/screens/match/MatchController.java b/forge-gui-mobile/src/forge/screens/match/MatchController.java index 86898673586..4be64ea1168 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchController.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchController.java @@ -313,10 +313,19 @@ public class MatchController extends AbstractGuiGame { public void finishGame() { if (Forge.isMobileAdventureMode) { if (Config.instance().getSettingData().disableWinLose) { - Forge.setCursor(null, "0"); - if (!DuelScene.instance().hasCallbackExit()) - DuelScene.instance().exitDuelScene(); - return; + if (getGameView().isMatchOver()){ + Forge.setCursor(null, "0"); + if (!DuelScene.instance().hasCallbackExit()){ + DuelScene.instance().GameEnd(); + DuelScene.instance().exitDuelScene(); + } + return; + } + else{ + try { MatchController.getHostedMatch().continueMatch(); + } catch (NullPointerException e) {} + return; + } } } if (hasLocalPlayers() || getGameView().isMatchOver()) { diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/AdventureWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/AdventureWinLose.java index 2ffaff629e8..658f6d442e8 100644 --- a/forge-gui-mobile/src/forge/screens/match/winlose/AdventureWinLose.java +++ b/forge-gui-mobile/src/forge/screens/match/winlose/AdventureWinLose.java @@ -19,7 +19,7 @@ public class AdventureWinLose extends ControlWinLose { else{ v.getBtnContinue().setVisible(true); v.getBtnContinue().setEnabled(true); - v.getBtnContinue().setText("CONTINUE MATCH"); + v.getBtnContinue().setText(Forge.getLocalizer().getMessage("btnNextGame")); v.getBtnQuit().setText(Forge.getLocalizer().getMessage("lblQuitAdventureEventMatch")); } v.getBtnRestart().setVisible(false); diff --git a/forge-gui/src/main/java/forge/localinstance/achievements/AchievementCollection.java b/forge-gui/src/main/java/forge/localinstance/achievements/AchievementCollection.java index 12e5e2c8ceb..7c43264a110 100644 --- a/forge-gui/src/main/java/forge/localinstance/achievements/AchievementCollection.java +++ b/forge-gui/src/main/java/forge/localinstance/achievements/AchievementCollection.java @@ -77,6 +77,7 @@ public abstract class AchievementCollection implements Iterable { cb.addItem(FModel.getAchievements(GameType.Quest)); cb.addItem(FModel.getAchievements(GameType.PlanarConquest)); cb.addItem(FModel.getAchievements(GameType.Puzzle)); + cb.addItem(FModel.getAchievements(GameType.Adventure)); cb.addItem(AltWinAchievements.instance); cb.addItem(PlaneswalkerAchievements.instance); cb.addItem(CardActivationAchievements.instance); diff --git a/forge-gui/src/main/java/forge/localinstance/achievements/AdventureAchievements.java b/forge-gui/src/main/java/forge/localinstance/achievements/AdventureAchievements.java new file mode 100644 index 00000000000..a9af2c4f6d2 --- /dev/null +++ b/forge-gui/src/main/java/forge/localinstance/achievements/AdventureAchievements.java @@ -0,0 +1,18 @@ +package forge.localinstance.achievements; + +import forge.game.GameType; +import forge.localinstance.properties.ForgeConstants; + +public class AdventureAchievements extends AchievementCollection { + public AdventureAchievements() { + super("lblAdventure", ForgeConstants.ACHIEVEMENTS_DIR + "adventure.xml", true); + } + + //add achievements that should appear at the bottom below core achievements for each game mode + @Override + protected void addAchievements() { + add(new Poisoned(15, 25, 40)); + add(new DeckedOut(8, 4, 2)); + } +} + diff --git a/forge-gui/src/main/java/forge/model/FModel.java b/forge-gui/src/main/java/forge/model/FModel.java index 7029daf8f7c..abcf9415d0f 100644 --- a/forge-gui/src/main/java/forge/model/FModel.java +++ b/forge-gui/src/main/java/forge/model/FModel.java @@ -270,6 +270,7 @@ public final class FModel { achievements.put(GameType.Quest, new QuestAchievements()); achievements.put(GameType.PlanarConquest, new PlanarConquestAchievements()); achievements.put(GameType.Puzzle, new PuzzleAchievements()); + achievements.put(GameType.Adventure, new AdventureAchievements()); //preload AI profiles AiProfileUtil.loadAllProfiles(ForgeConstants.AI_PROFILE_DIR); @@ -470,6 +471,10 @@ public final class FModel { case Quest: case PlanarConquest: case Puzzle: + case Adventure: + break; + case AdventureEvent: + gameType = GameType.Adventure; break; case QuestDraft: gameType = GameType.Quest;