diff --git a/forge-gui-android/src/forge/app/Main.java b/forge-gui-android/src/forge/app/Main.java index ba243981c01..de4e9f9a10d 100644 --- a/forge-gui-android/src/forge/app/Main.java +++ b/forge-gui-android/src/forge/app/Main.java @@ -51,6 +51,7 @@ import com.badlogic.gdx.Version; import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; import com.badlogic.gdx.backends.android.AndroidAudio; +import com.badlogic.gdx.backends.android.AsynchronousAndroidAudio; import com.getkeepsafe.relinker.ReLinker; import de.cketti.fileprovider.PublicFileProvider; import forge.Forge; @@ -122,7 +123,8 @@ public class Main extends AndroidApplication { @Override public AndroidAudio createAudio(Context context, AndroidApplicationConfiguration config) { - return super.createAudio(context, config); + return new AsynchronousAndroidAudio(context, config); + //return super.createAudio(context, config); } @Override diff --git a/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java b/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java index a0dd409be82..8e59d5cb972 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java @@ -3,12 +3,12 @@ package forge.adventure.scene; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.Image; +import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; import com.badlogic.gdx.scenes.scene2d.ui.TextField; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; import com.badlogic.gdx.utils.Array; -import com.github.tommyettinger.textra.TextraButton; import com.github.tommyettinger.textra.TextraLabel; import forge.Forge; import forge.adventure.data.DialogData; @@ -48,17 +48,17 @@ public class NewGameScene extends MenuScene { private final TextraLabel starterEditionLabel; private final Array custom; private final TextraLabel colorLabel; - private final TextraButton difficultyHelp; + private final ImageButton difficultyHelp; private DialogData difficultySummary; - private final TextraButton modeHelp; + private final ImageButton modeHelp; private DialogData modeSummary; + private final Random rand = new Random(); private final Array modes = new Array<>(); private NewGameScene() { super(Forge.isLandscapeMode() ? "ui/new_game.json" : "ui/new_game_portrait.json"); - gender = ui.findActor("gender"); selectedName = ui.findActor("nameField"); selectedName.setText(NameGenerator.getRandomName(gender.getCurrentIndex() > 0 ? "Female" : "Male", "Any", "")); @@ -127,13 +127,12 @@ public class NewGameScene extends MenuScene { modeNames[i] = modes.get(i).getName(); mode.setTextList(modeNames); - gender.setTextList(new String[]{Forge.getLocalizer().getMessage("lblMale"), Forge.getLocalizer().getMessage("lblFemale")}); + gender.setTextList(new String[]{Forge.getLocalizer().getMessage("lblMale") + "[%120][CYAN] \u2642", + Forge.getLocalizer().getMessage("lblFemale") + "[%120][MAGENTA] \u2640"}); gender.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { - //gender should be either Male or Female - String val = gender.getCurrentIndex() > 0 ? "Female" : "Male"; - selectedName.setText(NameGenerator.getRandomName(val, "Any", "")); + nameTT = 0.8f; super.clicked(event, x, y); } }); @@ -150,6 +149,13 @@ public class NewGameScene extends MenuScene { } }); race = ui.findActor("race"); + race.addListener(new ClickListener() { + @Override + public void clicked(InputEvent event, float x, float y) { + avatarTT = 0.7f; + super.clicked(event, x, y); + } + }); race.addListener(event -> NewGameScene.this.updateAvatar()); race.setTextList(HeroListData.getRaces()); difficulty = ui.findActor("difficulty"); @@ -167,9 +173,7 @@ public class NewGameScene extends MenuScene { difficulty.setTextList(diffList); difficulty.setCurrentIndex(startingDifficulty); - Random rand = new Random(); - avatarIndex = rand.nextInt(); - updateAvatar(); + generateAvatar(); gender.setCurrentIndex(rand.nextInt()); colorId.setCurrentIndex(rand.nextInt()); race.setCurrentIndex(rand.nextInt()); @@ -189,6 +193,34 @@ public class NewGameScene extends MenuScene { return object; } + float avatarT = 1f, avatarTT = 1f; + float nameT = 1f, nameTT = 1f; + @Override + public void act(float delta) { + super.act(delta); + if (avatarT > avatarTT) { + avatarTT += (delta / 0.5f); + generateAvatar(); + } else { + avatarTT = avatarT; + } + if (nameT > nameTT) { + nameTT += (delta / 0.5f); + generateName(); + } else { + nameTT = nameT; + } + } + private void generateAvatar() { + avatarIndex = rand.nextInt(); + updateAvatar(); + } + private void generateName() { + //gender should be either Male or Female + String val = gender.getCurrentIndex() > 0 ? "Female" : "Male"; + selectedName.setText(NameGenerator.getRandomName(val, "Any", "")); + } + boolean started = false; public boolean start() { diff --git a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java index 091106d08c7..b73035b0c22 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java +++ b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java @@ -694,8 +694,8 @@ public class GameHUD extends Stage { setVisibility(shards, visible); setVisibility(money, visible); setVisibility(blank, visible); - setDisabled(exitToWorldMapActor, !MapStage.getInstance().isInMap(), "[%120][+ExitToWorldMap]", "---"); - setDisabled(bookmarkActor, !MapStage.getInstance().isInMap(), "[%120][+Bookmark]", "---"); + setDisabled(exitToWorldMapActor, !MapStage.getInstance().isInMap(), "[%120][+ExitToWorldMap]", "\uFF0F"); + setDisabled(bookmarkActor, !MapStage.getInstance().isInMap(), "[%120][+Bookmark]", "\uFF0F"); setAlpha(avatarborder, visible); setAlpha(avatar, visible); setAlpha(deckActor, visible); @@ -810,8 +810,8 @@ public class GameHUD extends Stage { public boolean act(float v) { if (exitDungeon) { MapStage.getInstance().exitDungeon(); - setDisabled(exitToWorldMapActor, true, "[%120][+ExitToWorldMap]", "---"); - setDisabled(bookmarkActor, true, "[%120][+Bookmark]", "---"); + setDisabled(exitToWorldMapActor, true, "[%120][+ExitToWorldMap]", "\uFF0F"); + setDisabled(bookmarkActor, true, "[%120][+Bookmark]", "\uFF0F"); } return true; } diff --git a/forge-gui/res/adventure/common/skin/ui_skin.json b/forge-gui/res/adventure/common/skin/ui_skin.json index 823c89333bb..4a2bb85a668 100644 --- a/forge-gui/res/adventure/common/skin/ui_skin.json +++ b/forge-gui/res/adventure/common/skin/ui_skin.json @@ -458,6 +458,11 @@ "down": "right_down", "focused": "right_f" }, + "roundhint": { + "up": "unpressedround", + "down": "pressedround", + "focused": "unpressedround" + }, "item_frame": { "imageCheckedOver": "item_frame_selected_hover", "up": "item_frame", diff --git a/forge-gui/res/adventure/common/skin/ui_skin.png b/forge-gui/res/adventure/common/skin/ui_skin.png index f11f48b346b..67ddef59216 100644 Binary files a/forge-gui/res/adventure/common/skin/ui_skin.png and b/forge-gui/res/adventure/common/skin/ui_skin.png differ diff --git a/forge-gui/res/adventure/common/ui/new_game.json b/forge-gui/res/adventure/common/ui/new_game.json index b5449cf0f3a..8fabf16c6f5 100644 --- a/forge-gui/res/adventure/common/ui/new_game.json +++ b/forge-gui/res/adventure/common/ui/new_game.json @@ -65,14 +65,14 @@ "yOffset": 8 }, { - "type": "TextButton", + "type": "ImageButton", "name": "difficultyHelp", - "text": "[GOLD]?", + "style": "roundhint", "selectable": true, - "width": 16, - "height": 16, + "width": 12, + "height": 15, "x": 145, - "yOffset": -16 + "yOffset": -17 }, { "type": "Label", @@ -93,14 +93,14 @@ "yOffset": 8 }, { - "type": "TextButton", + "type": "ImageButton", "name": "modeHelp", - "text": "[GOLD]?", + "style": "roundhint", "selectable": true, - "width": 16, - "height": 16, + "width": 12, + "height": 15, "x": 145, - "yOffset": -16 + "yOffset": -17 }, { "type": "Label", diff --git a/forge-gui/res/adventure/common/ui/new_game_portrait.json b/forge-gui/res/adventure/common/ui/new_game_portrait.json index b6bf4453c41..a04cfe2b010 100644 --- a/forge-gui/res/adventure/common/ui/new_game_portrait.json +++ b/forge-gui/res/adventure/common/ui/new_game_portrait.json @@ -35,7 +35,7 @@ "width": 128, "height": 24, "x": 16, - "y": 140 + "y": 148 }, { "type": "Label", @@ -65,14 +65,14 @@ "yOffset": 8 }, { - "type": "TextButton", + "type": "ImageButton", "name": "difficultyHelp", - "text": "[GOLD]?", + "style": "roundhint", "selectable": true, - "width": 24, - "height": 24, - "x": 72, - "yOffset": -24 + "width": 12, + "height": 15, + "x": 80, + "yOffset": -17 }, { "type": "Label", @@ -93,14 +93,14 @@ "yOffset": 8 }, { - "type": "TextButton", + "type": "ImageButton", "name": "modeHelp", - "text": "[GOLD]?", + "style": "roundhint", "selectable": true, - "width": 24, - "height": 24, - "x": 72, - "yOffset": -24 + "width": 12, + "height": 15, + "x": 80, + "yOffset": -17 }, { "type": "Label",