diff options
| author | ilotterytea <iltsu@alright.party> | 2024-06-09 16:45:30 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2024-06-09 19:27:41 +0500 |
| commit | 39e8c7f9328056d755cf6f5c1a52816e1f86b345 (patch) | |
| tree | e1ff52564918155d272560f3dd983bcc2ffd66d8 /core/src/kz | |
| parent | 480fca4f020457fc0421c482e4069b0ba973c8d4 (diff) | |
upd: use HashMap for purchased pets + fix
Diffstat (limited to 'core/src/kz')
| -rw-r--r-- | core/src/kz/ilotterytea/maxon/player/Savegame.java | 6 | ||||
| -rw-r--r-- | core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java | 26 | ||||
| -rw-r--r-- | core/src/kz/ilotterytea/maxon/ui/SavegameWidget.java | 6 |
3 files changed, 21 insertions, 17 deletions
diff --git a/core/src/kz/ilotterytea/maxon/player/Savegame.java b/core/src/kz/ilotterytea/maxon/player/Savegame.java index fb955c6..5e9ee69 100644 --- a/core/src/kz/ilotterytea/maxon/player/Savegame.java +++ b/core/src/kz/ilotterytea/maxon/player/Savegame.java @@ -9,7 +9,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.*; -import java.util.ArrayList; +import java.util.HashMap; public class Savegame implements Serializable { private static final File directory = new File(MaxonConstants.GAME_SAVEGAME_FOLDER); @@ -25,7 +25,7 @@ public class Savegame implements Serializable { private static final Logger logger = LoggerFactory.getLogger(Savegame.class); private double money = 0.0f, multiplier = 0.0f; - private final ArrayList<Integer> purchasedPets = new ArrayList<>(); + private final HashMap<String, Integer> purchasedPets = new HashMap<>(); private String name = System.getProperty("user.name", "Maxon"); private long elapsedTime = 0; private boolean isNewlyCreated = true; @@ -104,7 +104,7 @@ public class Savegame implements Serializable { this.multiplier -= multiplier; } - public ArrayList<Integer> getPurchasedPets() { + public HashMap<String, Integer> getPurchasedPets() { return purchasedPets; } 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 3bf2d79..cc60eb5 100644 --- a/core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java +++ b/core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java @@ -15,7 +15,6 @@ 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; @@ -185,17 +184,19 @@ public class ShopUI { } if (mode == ShopMode.BUY) { - savegame.decreaseMoney(pet.getPrice()); - for (int i = 0; i < multiplier.getMultiplier(); i++) { - // TODO: fix this - savegame.getPurchasedPets().add(0); - } + savegame.decreaseMoney(widget.getPrice()); + savegame.getPurchasedPets().put( + pet.getId(), + savegame.getPurchasedPets().getOrDefault(pet.getId(), 0) + + multiplier.getMultiplier() + ); } else { - savegame.increaseMoney(pet.getPrice()); - for (int i = 0; i < multiplier.getMultiplier(); i++) { - // TODO: fix thisss - savegame.getPurchasedPets().remove(Integer.valueOf(0)); - } + savegame.increaseMoney(widget.getPrice()); + savegame.getPurchasedPets().put( + pet.getId(), + savegame.getPurchasedPets().get(pet.getId()) + - multiplier.getMultiplier() + ); } } }); @@ -217,8 +218,7 @@ public class ShopUI { private void updatePurchaseItems() { for (final PetWidget widget : this.petWidgets) { - // TODO: asdkjoiwe (fix this) - int amount = (int) savegame.getPurchasedPets().stream().filter(c -> c == 0).count(); + int amount = savegame.getPurchasedPets().getOrDefault(widget.getPet().getId(), 0); double price = widget.getPet().getPrice() * java.lang.Math.pow(1.15f, amount + multiplier.getMultiplier()); if (mode == ShopMode.SELL) { diff --git a/core/src/kz/ilotterytea/maxon/ui/SavegameWidget.java b/core/src/kz/ilotterytea/maxon/ui/SavegameWidget.java index c6d2434..fb22122 100644 --- a/core/src/kz/ilotterytea/maxon/ui/SavegameWidget.java +++ b/core/src/kz/ilotterytea/maxon/ui/SavegameWidget.java @@ -124,7 +124,11 @@ public class SavegameWidget extends Table implements Disposable { data.add(points).padRight(32f); // Unit - long amount = savegame.getPurchasedPets().size(); + int amount = 0; + + for (int a : savegame.getPurchasedPets().values()) { + amount += a; + } Image unitIcon = new Image(atlas.findRegion("pets")); data.add(unitIcon).size(32f, 32f).padRight(8f); |
