diff options
| author | ilotterytea <iltsu@alright.party> | 2022-12-04 17:58:05 +0600 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2022-12-04 17:58:05 +0600 |
| commit | 30ee2f771e52fbca9aa1806b406e1de732991dc2 (patch) | |
| tree | c89a5f65fbf9594f808027fb5fe668d1db0961ec /core/src | |
| parent | f41d841510213453fe49da96a1f5af19ef90e6dd (diff) | |
Random events (gifts)! (Closes #10)
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/com/ilotterytea/maxoning/screens/GameScreen.java | 83 |
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()); } |
