summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2022-12-04 17:58:05 +0600
committerilotterytea <iltsu@alright.party>2022-12-04 17:58:05 +0600
commit30ee2f771e52fbca9aa1806b406e1de732991dc2 (patch)
treec89a5f65fbf9594f808027fb5fe668d1db0961ec /core/src
parentf41d841510213453fe49da96a1f5af19ef90e6dd (diff)
Random events (gifts)! (Closes #10)
Diffstat (limited to 'core/src')
-rw-r--r--core/src/com/ilotterytea/maxoning/screens/GameScreen.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/core/src/com/ilotterytea/maxoning/screens/GameScreen.java b/core/src/com/ilotterytea/maxoning/screens/GameScreen.java
index 792b20f..ff72457 100644
--- a/core/src/com/ilotterytea/maxoning/screens/GameScreen.java
+++ b/core/src/com/ilotterytea/maxoning/screens/GameScreen.java
@@ -246,6 +246,89 @@ public class GameScreen implements Screen, InputProcessor {
}
}, 5, 5);
+ // Random gifts:
+ Timer.schedule(new Timer.Task() {
+ @Override
+ public void run() {
+ final ImageButton gift = new ImageButton(widgetSkin, "gift");
+ gift.setPosition(stage.getWidth() + gift.getWidth(), Math.getRandomNumber((int) gift.getHeight(), (int) stage.getHeight() - (int) gift.getHeight()));
+ gift.addAction(
+ Actions.repeat(
+ 3,
+ Actions.sequence(
+ Actions.moveTo(-gift.getWidth(), gift.getY(), 15f, Interpolation.linear),
+ Actions.moveTo(stage.getWidth() + gift.getWidth(), Math.getRandomNumber((int) gift.getHeight(), (int) stage.getHeight() - (int) gift.getHeight()), 15f, Interpolation.linear)
+ )
+ )
+ );
+
+
+ gift.addListener(new ClickListener() {
+ @Override
+ public void clicked(InputEvent event, float x, float y) {
+ int giftId = Math.getRandomNumber(0, 25);
+ final TypingLabel label = new TypingLabel(game.locale.TranslatableText("gifts.empty"), skin);
+
+ switch (giftId) {
+ // Points
+ case 0:
+ int randPoints = Math.getRandomNumber(150, 3000);
+ label.setText(game.locale.FormattedText("gifts.points", String.valueOf(randPoints)));
+ player.points += randPoints;
+ break;
+
+ // Multiplier
+ case 1:
+ int randMp = Math.getRandomNumber(1, 10);
+ label.setText(game.locale.FormattedText("gifts.multiplier", String.valueOf(randMp)));
+ player.multiplier += randMp;
+ break;
+
+
+ // Random pet
+ case 2:
+ int randPet = Math.getRandomNumber(0, 1);
+ assert MaxonItemRegister.get(randPet) != null;
+ String name = MaxonItemRegister.get(randPet).name;
+ label.setText(game.locale.FormattedText("gifts.new_pet", name));
+ player.inv.add(randPet);
+ if (invItems.containsKey(randPet)) {
+ invItems.put(randPet, invItems.get(randPet) + 1);
+ } else {
+ invItems.put(randPet, 1);
+ }
+ break;
+ // Default
+ default:
+ break;
+ }
+
+ label.setPosition(
+ gift.getX(),
+ gift.getY()
+ );
+
+ label.addAction(Actions.sequence(
+ Actions.delay(3f),
+ Actions.fadeOut(2f)
+ ));
+
+ stage.addActor(label);
+ gift.remove();
+
+ Timer.schedule(new Timer.Task() {
+ @Override
+ public void run() {
+ label.remove();
+ }
+ }, 5f);
+ }
+ });
+
+ stage.addActor(gift);
+ }
+ }, 600, 600);
+
render(Gdx.graphics.getDeltaTime());
}