diff --git a/forge-gui-desktop/src/main/java/forge/view/Main.java b/forge-gui-desktop/src/main/java/forge/view/Main.java index e4ab36ca5da..9779c21d700 100644 --- a/forge-gui-desktop/src/main/java/forge/view/Main.java +++ b/forge-gui-desktop/src/main/java/forge/view/Main.java @@ -39,7 +39,8 @@ public final class Main { options.setEnvironment(System.getProperty("os.name")); options.setTag("Java Version", System.getProperty("java.version")); options.setShutdownTimeoutMillis(5000); - if (options.getDsn() == null) + // these belong to sentry.properties, but somehow some OS/Zip tool discards it? + if (options.getDsn() == null || options.getDsn().isEmpty()) options.setDsn("https://87bc8d329e49441895502737c069067b@sentry.cardforge.org//3"); }, true); diff --git a/forge-gui-mobile/src/forge/adventure/stage/ConsoleCommandInterpreter.java b/forge-gui-mobile/src/forge/adventure/stage/ConsoleCommandInterpreter.java index 4ef484a0f2f..16c37227705 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/ConsoleCommandInterpreter.java +++ b/forge-gui-mobile/src/forge/adventure/stage/ConsoleCommandInterpreter.java @@ -219,7 +219,11 @@ public class ConsoleCommandInterpreter { }); registerCommand(new String[]{"give", "item"}, s -> { if (s.length < 1) return "Command needs 1 parameter: Item name."; - if (Current.player().addItem(s[0])) return "Added item " + s[0] + "."; + if (Current.player().addItem(s[0])) { + if (s[0].contains("Key")) + GameHUD.getInstance().updateKeys(); + return "Added item " + s[0] + "."; + } return "Cannot find item " + s[0]; }); registerCommand(new String[]{"fullHeal"}, s -> { diff --git a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java index 5021ce566ee..b95e33725b6 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java +++ b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java @@ -68,10 +68,10 @@ public class GameHUD extends Stage { static public GameHUD instance; private final GameStage gameStage; private final Image avatar, miniMapPlayer; + private final TypingLabel keyCollection; private final TypingLabel lifePoints; private final TypingLabel money; private final TypingLabel shards; - private final TextraLabel keys; private final TextraLabel notificationText = Controls.newTextraLabel(""); private final Image miniMap, gamehud, mapborder, avatarborder, blank; private final InputEvent eventTouchDown, eventTouchUp; @@ -87,9 +87,7 @@ public class GameHUD extends Stage { private boolean dialogOnlyInput; private final Array dialogButtonMap = new Array<>(); private final Array abilityButtonMap = new Array<>(); - private final Array questKeys = new Array<>(); private String lifepointsTextColor = ""; - private final ScrollPane scrollPane; private final ScrollPane notificationPane; private final Group mapGroup = new Group(); private final Group hudGroup = new Group(); @@ -153,6 +151,8 @@ public class GameHUD extends Stage { ui.onButtonPress("deck", this::openDeck); ui.onButtonPress("exittoworldmap", this::exitToWorldMap); ui.onButtonPress("bookmark", this::bookmark); + keyCollection = ui.findActor("keyCollection"); + keyCollection.skipToTheEnd(); lifePoints = ui.findActor("lifePoints"); lifePoints.skipToTheEnd(); shards = ui.findActor("shards"); @@ -162,11 +162,6 @@ public class GameHUD extends Stage { shards.setText("[%95][+Shards]"); money.setText("[%95][+Gold]"); lifePoints.setText("[%95][+Life]"); - keys = Controls.newTextraLabel(""); - scrollPane = new ScrollPane(keys); - scrollPane.setPosition(2, 2); - scrollPane.setStyle(Controls.getSkin().get("translucent", ScrollPane.ScrollPaneStyle.class)); - addActor(scrollPane); AdventurePlayer.current().onLifeChange(() -> { String effect = "{EMERGE}"; String effectEnd = "{ENDEMERGE}"; @@ -222,6 +217,7 @@ public class GameHUD extends Stage { ui.addActor(mapGroup); //HUD hudGroup.addActor(gamehud); + hudGroup.addActor(keyCollection); hudGroup.addActor(lifePoints); hudGroup.addActor(shards); hudGroup.addActor(money); @@ -361,7 +357,7 @@ public class GameHUD extends Stage { public boolean fromWorldMap = false; public void enter() { - questKeys.clear(); + updateKeys(); if (miniMapTexture != null) miniMapTexture.dispose(); miniMapTexture = new Texture(WorldSave.getCurrentSave().getWorld().getBiomeImage()); @@ -375,28 +371,6 @@ public class GameHUD extends Stage { miniMap.setDrawable(new TextureRegionDrawable(miniMapTexture)); avatar.setDrawable(new TextureRegionDrawable(Current.player().avatar())); Deck deck = AdventurePlayer.current().getSelectedDeck(); - if (AdventurePlayer.current().hasItem("Red Key")) - questKeys.add("[+RedKey]"); - if (AdventurePlayer.current().hasItem("Green Key")) - questKeys.add("[+GreenKey]"); - if (AdventurePlayer.current().hasItem("Blue Key")) - questKeys.add("[+BlueKey]"); - if (AdventurePlayer.current().hasItem("Black Key")) - questKeys.add("[+BlackKey]"); - if (AdventurePlayer.current().hasItem("White Key")) - questKeys.add("[+WhiteKey]"); - if (AdventurePlayer.current().hasItem("Strange Key")) - questKeys.add("[+StrangeKey]"); - if (!questKeys.isEmpty()) { - keys.setText(String.join("\n", questKeys)); - scrollPane.setSize(keys.getWidth() + 8, keys.getHeight() + 5); - scrollPane.layout(); - keys.layout(); - scrollPane.getColor().a = opacity; - } else { - keys.setText(""); - scrollPane.getColor().a = 0; - } switch (GameScene.instance().getAdventurePlayerLocation(false, false)) { case "capital": @@ -453,6 +427,17 @@ public class GameHUD extends Stage { avatarGroup.setZIndex(ui.getChildren().size); } + void updateKeys() { + String keys = ""; + keys += AdventurePlayer.current().hasItem("Red Key") ? "[+RedKey]\n" : "[+Dot]\n"; + keys += AdventurePlayer.current().hasItem("Green Key") ? "[+GreenKey]\n" : "[+Dot]\n"; + keys += AdventurePlayer.current().hasItem("Blue Key") ? "[+BlueKey]\n" : "[+Dot]\n"; + keys += AdventurePlayer.current().hasItem("Black Key") ? "[+BlackKey]\n" : "[+Dot]\n"; + keys += AdventurePlayer.current().hasItem("White Key") ? "[+WhiteKey]\n" : "[+Dot]\n"; + keys += AdventurePlayer.current().hasItem("Strange Key") ? "[+StrangeKey]" : "[+Dot]"; + keyCollection.setText(keys); + } + void clearAbility() { for (TextraButton button : abilityButtonMap) { button.remove(); diff --git a/forge-gui/res/adventure/common/sprites/items.atlas b/forge-gui/res/adventure/common/sprites/items.atlas index 5528edd462a..bef28fd78ac 100644 --- a/forge-gui/res/adventure/common/sprites/items.atlas +++ b/forge-gui/res/adventure/common/sprites/items.atlas @@ -453,6 +453,9 @@ GreenLeaf GreenLeaf2 xy: 112, 608 size: 16, 16 +Dot + xy: 464, 48 + size: 16, 16 GoldCoin xy: 464, 63 size: 16, 16 diff --git a/forge-gui/res/adventure/common/sprites/items.png b/forge-gui/res/adventure/common/sprites/items.png index 347f50d2c70..44c75e39ed1 100644 Binary files a/forge-gui/res/adventure/common/sprites/items.png and b/forge-gui/res/adventure/common/sprites/items.png differ diff --git a/forge-gui/res/adventure/common/ui/hud.json b/forge-gui/res/adventure/common/ui/hud.json index 8650ab30893..9a94cbbdcf2 100644 --- a/forge-gui/res/adventure/common/ui/hud.json +++ b/forge-gui/res/adventure/common/ui/hud.json @@ -6,10 +6,10 @@ { "type": "Image", "name": "gamehud", - "width": 64, + "width": 75, "height": 104, "image": "ui/hud_portrait.png", - "x": 416, + "x": 405, "y": 0 }, { @@ -55,6 +55,15 @@ "x": 425, "y": 10 }, + { + "type": "TypingLabel", + "name": "keyCollection", + "font": "default", + "width": 75, + "height": 96, + "x": 410, + "y": 5 + }, { "type": "TypingLabel", "name": "lifePoints", diff --git a/forge-gui/res/adventure/common/ui/hud_landscape.json b/forge-gui/res/adventure/common/ui/hud_landscape.json index 3bf3db4726d..38a96384a66 100644 --- a/forge-gui/res/adventure/common/ui/hud_landscape.json +++ b/forge-gui/res/adventure/common/ui/hud_landscape.json @@ -6,10 +6,10 @@ { "type": "Image", "name": "gamehud", - "width": 64, + "width": 75, "height": 104, "image": "ui/hud_portrait.png", - "x": 416, + "x": 405, "y": 0 }, { @@ -55,6 +55,15 @@ "x": 425, "y": 10 }, + { + "type": "TypingLabel", + "name": "keyCollection", + "font": "default", + "width": 75, + "height": 96, + "x": 410, + "y": 5 + }, { "type": "TypingLabel", "name": "lifePoints", diff --git a/forge-gui/res/adventure/common/ui/hud_portrait.json b/forge-gui/res/adventure/common/ui/hud_portrait.json index c3363b314b3..29cd42f7fff 100644 --- a/forge-gui/res/adventure/common/ui/hud_portrait.json +++ b/forge-gui/res/adventure/common/ui/hud_portrait.json @@ -6,10 +6,10 @@ { "type": "Image", "name": "gamehud", - "width": 64, + "width": 75, "height": 104, "image": "ui/hud_portrait.png", - "x": 206, + "x": 195, "y": 0 }, { @@ -55,6 +55,15 @@ "x": 215, "y": 10 }, + { + "type": "TypingLabel", + "name": "keyCollection", + "font": "default", + "width": 75, + "height": 96, + "x": 200, + "y": 5 + }, { "type": "TypingLabel", "name": "lifePoints", diff --git a/forge-gui/res/adventure/common/ui/hud_portrait.png b/forge-gui/res/adventure/common/ui/hud_portrait.png index 10f31a239ed..eb563f0b247 100644 Binary files a/forge-gui/res/adventure/common/ui/hud_portrait.png and b/forge-gui/res/adventure/common/ui/hud_portrait.png differ