summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/i18n/en_us.json9
-rw-r--r--assets/i18n/ru_ru.json9
-rw-r--r--assets/sprites/gui/brand.atlas10
-rw-r--r--assets/sprites/gui/brand.pngbin125831 -> 130602 bytes
-rw-r--r--assets/sprites/gui/ui.skin12
-rw-r--r--core/src/kz/ilotterytea/maxon/localization/LineId.java9
-rw-r--r--core/src/kz/ilotterytea/maxon/screens/MenuScreen.java128
7 files changed, 173 insertions, 4 deletions
diff --git a/assets/i18n/en_us.json b/assets/i18n/en_us.json
index 38d9d34..910c942 100644
--- a/assets/i18n/en_us.json
+++ b/assets/i18n/en_us.json
@@ -9,6 +9,15 @@
"sounds.music": "Music",
"sounds.sfx": "SFX",
+ "credits.title": "Those who contributed",
+ "credits.maxon": "Maxon himself",
+ "credits.developer": "Developer",
+ "credits.contributor": "Contributor",
+ "credits.music": "Music",
+ "credits.idea": "Idea dispenser",
+ "credits.tester": "Tester",
+ "credits.moral": "Moral supporter",
+
"giftbox.open": "You got",
"minigame.slots.nothing": "YOU WON NOTHINGG",
diff --git a/assets/i18n/ru_ru.json b/assets/i18n/ru_ru.json
index 6f84954..9608889 100644
--- a/assets/i18n/ru_ru.json
+++ b/assets/i18n/ru_ru.json
@@ -9,6 +9,15 @@
"sounds.music": "Музыка",
"sounds.sfx": "SFX",
+ "credits.title": "Те, кто внёс вклад",
+ "credits.maxon": "Максон",
+ "credits.developer": "Разработчик",
+ "credits.contributor": "Внёс вклад",
+ "credits.music": "Музыка",
+ "credits.idea": "Раздатчик идей",
+ "credits.tester": "Тестер",
+ "credits.moral": "Моральная помощь",
+
"giftbox.open": "Ты получил",
"minigame.slots.nothing": "ТЫ НИЧЕГО НЕ ВЫИГРАЛ",
diff --git a/assets/sprites/gui/brand.atlas b/assets/sprites/gui/brand.atlas
index 5fe2897..0f69dba 100644
--- a/assets/sprites/gui/brand.atlas
+++ b/assets/sprites/gui/brand.atlas
@@ -2,10 +2,12 @@ brand.png
size:1024,512
repeat:none
beta
-bounds:565,176,380,174
+bounds:565,226,380,174
brand
-bounds:0,0,565,175
+bounds:0,50,565,175
+engine
+bounds:0,0,300,50
online
-bounds:0,175,565,175
+bounds:0,225,565,175
update
-bounds:565,2,236,174
+bounds:565,52,236,174
diff --git a/assets/sprites/gui/brand.png b/assets/sprites/gui/brand.png
index 9604fd7..41328fd 100644
--- a/assets/sprites/gui/brand.png
+++ b/assets/sprites/gui/brand.png
Binary files differ
diff --git a/assets/sprites/gui/ui.skin b/assets/sprites/gui/ui.skin
index 3a6af61..dbdeb79 100644
--- a/assets/sprites/gui/ui.skin
+++ b/assets/sprites/gui/ui.skin
@@ -93,6 +93,10 @@
slots: {
file: fnt/FontText.fnt,
scaledSize: 16
+ },
+ credits: {
+ file: fnt/FontText.fnt,
+ scaledSize: 16
}
},
com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
@@ -204,6 +208,14 @@
slots: {
font: slots,
fontColor: white
+ },
+ credits_name: {
+ font: credits,
+ fontColor: white
+ },
+ credits_role: {
+ font: credits,
+ fontColor: yellow
}
},
com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle: {
diff --git a/core/src/kz/ilotterytea/maxon/localization/LineId.java b/core/src/kz/ilotterytea/maxon/localization/LineId.java
index b6241de..2ef671a 100644
--- a/core/src/kz/ilotterytea/maxon/localization/LineId.java
+++ b/core/src/kz/ilotterytea/maxon/localization/LineId.java
@@ -15,6 +15,15 @@ public enum LineId {
SoundsMusic,
SoundsSfx,
+ CreditsTitle,
+ CreditsMaxon,
+ CreditsDeveloper,
+ CreditsContributor,
+ CreditsMusic,
+ CreditsIdea,
+ CreditsTester,
+ CreditsMoral,
+
GiftboxOpen,
MinigameSlotsSpinbutton,
diff --git a/core/src/kz/ilotterytea/maxon/screens/MenuScreen.java b/core/src/kz/ilotterytea/maxon/screens/MenuScreen.java
index 3498be1..0998cb2 100644
--- a/core/src/kz/ilotterytea/maxon/screens/MenuScreen.java
+++ b/core/src/kz/ilotterytea/maxon/screens/MenuScreen.java
@@ -20,6 +20,7 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.Timer;
import com.badlogic.gdx.utils.viewport.ScreenViewport;
+import kz.ilotterytea.javaextra.tuples.Triple;
import kz.ilotterytea.maxon.MaxonConstants;
import kz.ilotterytea.maxon.MaxonGame;
import kz.ilotterytea.maxon.localization.LineId;
@@ -124,6 +125,14 @@ public class MenuScreen implements Screen {
brandTable.add(logo);
}
+ logo.addListener(new ClickListener() {
+ @Override
+ public void clicked(InputEvent event, float x, float y) {
+ super.clicked(event, x, y);
+ openCredits();
+ }
+ });
+
Image updateLogo;
if (OsUtils.isMobile) {
@@ -519,4 +528,123 @@ public class MenuScreen implements Screen {
contentTable.add(slider).grow().row();
}
}
+
+ private void openCredits() {
+ Image bgTint = new Image(uiSkin, "halftransparentblack");
+ bgTint.setFillParent(true);
+ stage.addActor(bgTint);
+
+ // Table
+ Table table = new Table();
+ table.setFillParent(true);
+ table.align(Align.center);
+
+ stage.addActor(table);
+
+ // Window
+ Table window = new Table(uiSkin);
+ window.setBackground("bg");
+ window.align(Align.center);
+ Cell<Table> tableCell = table.add(window);
+
+ if (OsUtils.isMobile) {
+ tableCell.growX();
+ } else {
+ tableCell.size(650f, 450f);
+ }
+
+ // Table for title and close button
+ Table titleTable = new Table(uiSkin);
+ titleTable.setBackground("bg2");
+ window.add(titleTable).growX().row();
+
+ // Title
+ Label titleLabel = new Label(game.getLocale().getLine(LineId.CreditsTitle), uiSkin);
+ titleTable.add(titleLabel).pad(8f, 16f, 8f, 16f).growX();
+
+ // Close button
+ TextButton closeButton = new TextButton(" X ", uiSkin);
+ closeButton.addListener(new ClickListener() {
+ @Override
+ public void clicked(InputEvent event, float x, float y) {
+ super.clicked(event, x, y);
+ table.remove();
+ bgTint.remove();
+ clickSound.play(soundVolume);
+ }
+ });
+ titleTable.add(closeButton).pad(8f, 16f, 8f, 16f);
+
+ // Table for contributors
+ Table contributorTable = new Table();
+ ScrollPane contributorPane = new ScrollPane(contributorTable, uiSkin);
+ contributorPane.setScrollingDisabled(true, false);
+ contributorPane.setFadeScrollBars(false);
+ window.add(contributorPane).pad(16f).grow().row();
+
+ // Creating contributors
+ Skin friendSkin = game.assetManager.get("sprites/gui/friends.skin");
+ for (int i = 0; i < MaxonConstants.GAME_DEVELOPERS.size(); i++) {
+ Triple<String, String, Integer> contributor = MaxonConstants.GAME_DEVELOPERS.get(i);
+
+ // Widget
+ Table widget = new Table();
+ widget.addListener(new ClickListener() {
+ @Override
+ public void clicked(InputEvent event, float x, float y) {
+ super.clicked(event, x, y);
+ Gdx.net.openURI(contributor.getSecond());
+ clickSound.play(soundVolume);
+ }
+ });
+ widget.align(Align.center);
+ contributorTable.add(widget).padBottom(16f);
+
+ // Name
+ Label name = new Label(contributor.getFirst(), uiSkin, "credits_name");
+ name.setAlignment(Align.center);
+ widget.add(name).grow().padBottom(8f).row();
+
+ // Icon
+ Image icon = new Image(friendSkin.getDrawable(contributor.getFirst()));
+ widget.add(icon).padBottom(8f).row();
+
+ // Role
+ LineId id = switch (contributor.getThird()) {
+ case 1 -> LineId.CreditsDeveloper;
+ case 2 -> LineId.CreditsContributor;
+ case 3 -> LineId.CreditsMusic;
+ case 4 -> LineId.CreditsIdea;
+ case 5 -> LineId.CreditsTester;
+ case 6 -> LineId.CreditsMoral;
+ default -> LineId.CreditsMaxon;
+ };
+
+ Label role = new Label(game.getLocale().getLine(id), uiSkin, "credits_role");
+ role.setAlignment(Align.center);
+ widget.add(role).grow().row();
+
+ if (i % 3 == 2) contributorTable.row();
+ }
+
+ // Game engine credits
+ Table engineCredits = new Table(uiSkin);
+ engineCredits.setBackground("bg2");
+ window.add(engineCredits).growX().row();
+
+ Label engineLabel = new Label("Made with", uiSkin);
+ engineCredits.add(engineLabel).padRight(16f);
+
+ TextureAtlas brandAtlas = game.assetManager.get("sprites/gui/brand.atlas");
+ Image engineImage = new Image(brandAtlas.findRegion("engine"));
+ engineImage.addListener(new ClickListener() {
+ @Override
+ public void clicked(InputEvent event, float x, float y) {
+ super.clicked(event, x, y);
+ Gdx.net.openURI("https://libgdx.com");
+ clickSound.play(soundVolume);
+ }
+ });
+ engineCredits.add(engineImage).height(32f).width(180f);
+ }
}