diff options
| author | ilotterytea <iltsu@alright.party> | 2024-06-08 23:21:59 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2024-06-09 19:27:33 +0500 |
| commit | 5cd639a94a58fc84c0d3476df23d322759277831 (patch) | |
| tree | 014d496b06523846dfa12c5e6972627c37ccdf85 /core/src/kz/ilotterytea/maxon/screens | |
| parent | 38ffeaa390322ab109bfe933f124091966a57158 (diff) | |
feat: new pet manager
Diffstat (limited to 'core/src/kz/ilotterytea/maxon/screens')
3 files changed, 30 insertions, 106 deletions
diff --git a/core/src/kz/ilotterytea/maxon/screens/GameScreen.java b/core/src/kz/ilotterytea/maxon/screens/GameScreen.java index 6922077..52bcce9 100644 --- a/core/src/kz/ilotterytea/maxon/screens/GameScreen.java +++ b/core/src/kz/ilotterytea/maxon/screens/GameScreen.java @@ -297,85 +297,6 @@ public class GameScreen implements Screen, InputProcessor { this.shopUI.update(); } - private void showShop() { - // - - - - - - S H O P T A B L E - - - - - - : - final Table shopTable = new Table(skin); - shopTable.setBackground("bg"); - shopTable.setSize(stage.getWidth() - 20f, stage.getHeight() - (boardTable.getHeight() + quickTable.getHeight() + 20f)); - shopTable.setPosition(10f, quickTable.getHeight() + 10f); - shopTable.align(Align.top | Align.center); - - stage.addActor(shopTable); - - // Header table: - Table headShopTable = new Table(); - shopTable.add(headShopTable).width(shopTable.getWidth()).row(); - - // - - - S H O P T I T L E - - -: - Label shopTitle = new Label(game.locale.TranslatableText("game.petShop"), skin); - headShopTable.add(shopTitle).expandX(); - - // - - - C L O S E B U T T O N - - - : - TextButton closeButton = new TextButton("X", skin); - - closeButton.addListener(new ClickListener() { - @Override - public void clicked(InputEvent event, float x, float y) { - shopTable.remove(); - isShopping = !isShopping; - } - }); - - headShopTable.add(closeButton).row(); - - // - - - S H O P C O N T E N T - - - : - Table contentTable = new Table(); - - // Adding items to shop: - for (final MaxonItem item : MaxonItemRegister.getItems()) { - PurchaseItem p_item = new PurchaseItem( - skin, - item, - mainAtlas - ); - - p_item.addListener(new ClickListener() { - @Override - public void clicked(InputEvent event, float x, float y) { - if (savegame.getMoney() < item.price) { - notEnoughPointsDialog.show(stage); - - Timer.schedule(new Timer.Task() { - @Override - public void run() { - notEnoughPointsDialog.hide(Actions.fadeOut(2f, Interpolation.smoother)); - } - }, 2); - - return; - } - - savegame.decreaseMoney(item.price); - savegame.increaseMultiplier(item.multiplier); - savegame.getPurchasedPets().add(item.id); - - if (invItems.containsKey(item.id)) { - invItems.put(item.id, invItems.get(item.id) + 1); - } else { - invItems.put(item.id, 1); - } - } - }); - - contentTable.add(p_item).pad(6f).width(shopTable.getWidth()).row(); - } - - // Scroll panel for content table: - ScrollPane contentPane = new ScrollPane(contentTable); - contentPane.setScrollingDisabled(true, false); - shopTable.add(contentPane); - } - private void showInventory() { // - - - - - - I N V E N T O R Y T A B L E - - - - - - : final Table inventoryTable = new Table(skin); diff --git a/core/src/kz/ilotterytea/maxon/screens/SplashScreen.java b/core/src/kz/ilotterytea/maxon/screens/SplashScreen.java index a4b56eb..9a1cc85 100644 --- a/core/src/kz/ilotterytea/maxon/screens/SplashScreen.java +++ b/core/src/kz/ilotterytea/maxon/screens/SplashScreen.java @@ -64,7 +64,7 @@ public class SplashScreen implements Screen { new Action() { @Override public boolean act(float v) { - AssetLoading.registerItems(game.assetManager, game.locale); + game.getPetManager().load(); game.setScreen(new MenuScreen()); dispose(); return false; diff --git a/core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java b/core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java index 67f2c11..e4e3694 100644 --- a/core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java +++ b/core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java @@ -7,20 +7,20 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.*; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.Align; -import kz.ilotterytea.maxon.player.MaxonItem; -import kz.ilotterytea.maxon.player.MaxonItemRegister; +import kz.ilotterytea.maxon.MaxonGame; +import kz.ilotterytea.maxon.pets.Pet; +import kz.ilotterytea.maxon.pets.PetWidget; import kz.ilotterytea.maxon.player.Savegame; -import kz.ilotterytea.maxon.ui.PurchaseItem; import kz.ilotterytea.maxon.utils.formatters.NumberFormatter; import kz.ilotterytea.maxon.utils.math.Math; import java.util.ArrayList; +import java.util.HashSet; public class ShopUI { private final Table table, mainTable; private final Skin skin; private final TextureAtlas atlas; - private final ArrayList<MaxonItem> items; private ShopMode mode; private ShopMultiplier multiplier; @@ -28,7 +28,7 @@ public class ShopUI { private final Savegame savegame; private Label pointsLabel, multiplierLabel; - private final ArrayList<PurchaseItem> purchaseItems = new ArrayList<>(); + private final ArrayList<PetWidget> petWidgets = new ArrayList<>(); public ShopUI(final Savegame savegame, Stage stage, Skin skin, TextureAtlas atlas) { this.savegame = savegame; @@ -37,7 +37,6 @@ public class ShopUI { this.atlas = atlas; this.mode = ShopMode.BUY; this.multiplier = ShopMultiplier.X1; - this.items = MaxonItemRegister.getItems(); this.table = new Table(skin); this.table.setBackground("store"); @@ -172,34 +171,37 @@ public class ShopUI { public void createShopListUI() { Table table = new Table(this.skin); + HashSet<Pet> pets = MaxonGame.getInstance().getPetManager().getPets(); - for (final MaxonItem item : this.items) { - PurchaseItem purchaseItem = new PurchaseItem(this.skin, item, this.atlas); - purchaseItem.addListener(new ClickListener() { + for (Pet pet : pets) { + PetWidget widget = new PetWidget(this.skin, pet, this.atlas); + widget.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); - if (purchaseItem.isDisabled()) { + if (widget.isDisabled()) { return; } if (mode == ShopMode.BUY) { - savegame.decreaseMoney(purchaseItem.getPrice()); + savegame.decreaseMoney(pet.getPrice()); for (int i = 0; i < multiplier.getMultiplier(); i++) { - savegame.getPurchasedPets().add(purchaseItem.getItem().id); + // TODO: fix this + savegame.getPurchasedPets().add(0); } } else { - savegame.increaseMoney(purchaseItem.getPrice()); + savegame.increaseMoney(pet.getPrice()); for (int i = 0; i < multiplier.getMultiplier(); i++) { - savegame.getPurchasedPets().remove(Integer.valueOf(purchaseItem.getItem().id)); + // TODO: fix thisss + savegame.getPurchasedPets().remove(Integer.valueOf(0)); } } } }); - purchaseItems.add(purchaseItem); - table.add(purchaseItem).growX().padBottom(5f).row(); + petWidgets.add(widget); + table.add(widget).growX().padBottom(5f).row(); } ScrollPane scrollPane = new ScrollPane(table); @@ -214,27 +216,28 @@ public class ShopUI { } private void updatePurchaseItems() { - for (final PurchaseItem item : this.purchaseItems) { - int amount = (int) savegame.getPurchasedPets().stream().filter(c -> c == item.getItem().id).count(); - double price = item.getItem().price * java.lang.Math.pow(1.15f, amount + multiplier.getMultiplier()); + for (final PetWidget widget : this.petWidgets) { + // TODO: asdkjoiwe (fix this) + int amount = (int) savegame.getPurchasedPets().stream().filter(c -> c == 0).count(); + double price = widget.getPet().getPrice() * java.lang.Math.pow(1.15f, amount + multiplier.getMultiplier()); if (mode == ShopMode.SELL) { price /= 4; } - item.setPrice(price); + widget.setPrice(price); if (mode == ShopMode.BUY) { if (price > savegame.getMoney() || savegame.getMoney() - price < 0) { - item.setDisabled(true); - } else if (item.isDisabled()) { - item.setDisabled(false); + widget.setDisabled(true); + } else if (widget.isDisabled()) { + widget.setDisabled(false); } } else { if (amount - multiplier.getMultiplier() < 0) { - item.setDisabled(true); - } else if (item.isDisabled()) { - item.setDisabled(false); + widget.setDisabled(true); + } else if (widget.isDisabled()) { + widget.setDisabled(false); } } } |
