summaryrefslogtreecommitdiff
path: root/core/src/kz
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2024-06-09 16:45:30 +0500
committerilotterytea <iltsu@alright.party>2024-06-09 19:27:41 +0500
commit39e8c7f9328056d755cf6f5c1a52816e1f86b345 (patch)
treee1ff52564918155d272560f3dd983bcc2ffd66d8 /core/src/kz
parent480fca4f020457fc0421c482e4069b0ba973c8d4 (diff)
upd: use HashMap for purchased pets + fix
Diffstat (limited to 'core/src/kz')
-rw-r--r--core/src/kz/ilotterytea/maxon/player/Savegame.java6
-rw-r--r--core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java26
-rw-r--r--core/src/kz/ilotterytea/maxon/ui/SavegameWidget.java6
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);