summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2024-06-08 23:21:59 +0500
committerilotterytea <iltsu@alright.party>2024-06-09 19:27:33 +0500
commit5cd639a94a58fc84c0d3476df23d322759277831 (patch)
tree014d496b06523846dfa12c5e6972627c37ccdf85 /core
parent38ffeaa390322ab109bfe933f124091966a57158 (diff)
feat: new pet manager
Diffstat (limited to 'core')
-rw-r--r--core/src/kz/ilotterytea/maxon/MaxonGame.java8
-rw-r--r--core/src/kz/ilotterytea/maxon/pets/Pet.java85
-rw-r--r--core/src/kz/ilotterytea/maxon/pets/PetManager.java52
-rw-r--r--core/src/kz/ilotterytea/maxon/pets/PetWidget.java (renamed from core/src/kz/ilotterytea/maxon/ui/PurchaseItem.java)27
-rw-r--r--core/src/kz/ilotterytea/maxon/screens/GameScreen.java79
-rw-r--r--core/src/kz/ilotterytea/maxon/screens/SplashScreen.java2
-rw-r--r--core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java55
-rw-r--r--core/src/kz/ilotterytea/maxon/utils/AssetLoading.java128
8 files changed, 188 insertions, 248 deletions
diff --git a/core/src/kz/ilotterytea/maxon/MaxonGame.java b/core/src/kz/ilotterytea/maxon/MaxonGame.java
index 1da8605..680f1c6 100644
--- a/core/src/kz/ilotterytea/maxon/MaxonGame.java
+++ b/core/src/kz/ilotterytea/maxon/MaxonGame.java
@@ -6,6 +6,7 @@ import com.badlogic.gdx.Preferences;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
+import kz.ilotterytea.maxon.pets.PetManager;
import kz.ilotterytea.maxon.screens.SplashScreen;
import kz.ilotterytea.maxon.utils.I18N;
@@ -16,6 +17,8 @@ public class MaxonGame extends Game {
public Preferences prefs;
public I18N locale;
+ private PetManager petManager;
+
private static MaxonGame instance;
public static MaxonGame getInstance() {
@@ -25,6 +28,10 @@ public class MaxonGame extends Game {
return instance;
}
+ public PetManager getPetManager() {
+ return petManager;
+ }
+
@Override
public void create () {
batch = new SpriteBatch();
@@ -40,6 +47,7 @@ public class MaxonGame extends Game {
if (prefs.getBoolean("fullscreen", false)) { Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode()); }
assetManager = new AssetManager();
+ petManager = new PetManager(assetManager);
this.setScreen(new SplashScreen());
}
diff --git a/core/src/kz/ilotterytea/maxon/pets/Pet.java b/core/src/kz/ilotterytea/maxon/pets/Pet.java
new file mode 100644
index 0000000..c39e77e
--- /dev/null
+++ b/core/src/kz/ilotterytea/maxon/pets/Pet.java
@@ -0,0 +1,85 @@
+package kz.ilotterytea.maxon.pets;
+
+import com.badlogic.gdx.graphics.Texture;
+import com.badlogic.gdx.graphics.g2d.TextureRegion;
+import com.badlogic.gdx.utils.GdxRuntimeException;
+import kz.ilotterytea.maxon.MaxonConstants;
+import kz.ilotterytea.maxon.MaxonGame;
+import kz.ilotterytea.maxon.anim.SpriteUtils;
+import kz.ilotterytea.maxon.ui.AnimatedImage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Pet {
+ private final String id, name, description;
+ private final double price, multiplier;
+ private final AnimatedImage icon;
+ private static final Logger logger = LoggerFactory.getLogger(Pet.class);
+
+ private Pet(String id, String name, String description, double price, double multiplier, AnimatedImage icon) {
+ this.id = id;
+ this.name = name;
+ this.description = description;
+ this.price = price;
+ this.multiplier = multiplier;
+ this.icon = icon;
+ }
+
+ public static Pet create(String id, double price, double multiplier, int iconColumns, int iconRows) {
+ MaxonGame game = MaxonGame.getInstance();
+ TextureRegion[] regions;
+
+ try {
+ Texture texture = game.assetManager.get("sprites/pets/" + id + ".png", Texture.class);
+ regions = SpriteUtils.splitToTextureRegions(
+ texture,
+ texture.getWidth() / iconColumns,
+ texture.getHeight() / iconRows,
+ iconColumns,
+ iconRows
+ );
+
+ } catch (GdxRuntimeException e) {
+ logger.warn("Failed to load icon spritesheet for ID {}", id);
+ regions = new TextureRegion[]{new TextureRegion(MaxonConstants.MISSING_TEXTURE)};
+ }
+
+ AnimatedImage icon = new AnimatedImage(regions);
+
+ String name = game.locale.TranslatableText("pet." + id + ".name");
+ if (name == null) {
+ name = "pet." + id + ".name";
+ }
+
+ String description = game.locale.TranslatableText("pet." + id + ".desc");
+ if (description == null) {
+ description = "pet." + id + ".desc";
+ }
+
+ return new Pet(id, name, description, price, multiplier, icon);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public double getPrice() {
+ return price;
+ }
+
+ public double getMultiplier() {
+ return multiplier;
+ }
+
+ public AnimatedImage getIcon() {
+ return icon;
+ }
+}
diff --git a/core/src/kz/ilotterytea/maxon/pets/PetManager.java b/core/src/kz/ilotterytea/maxon/pets/PetManager.java
new file mode 100644
index 0000000..4f8f228
--- /dev/null
+++ b/core/src/kz/ilotterytea/maxon/pets/PetManager.java
@@ -0,0 +1,52 @@
+package kz.ilotterytea.maxon.pets;
+
+import com.badlogic.gdx.assets.AssetManager;
+import com.badlogic.gdx.utils.JsonReader;
+import com.badlogic.gdx.utils.JsonValue;
+import kz.ilotterytea.maxon.assets.loaders.Text;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashSet;
+import java.util.Optional;
+
+public class PetManager {
+ private final HashSet<Pet> pets;
+ private final AssetManager assetManager;
+ private final Logger logger = LoggerFactory.getLogger(PetManager.class);
+
+ public PetManager(final AssetManager assetManager) {
+ this.pets = new HashSet<>();
+ this.assetManager = assetManager;
+ }
+
+ public void load() {
+ pets.clear();
+
+ String data = assetManager.get("data/pets.json", Text.class).getString();
+ JsonValue root = new JsonReader().parse(data);
+
+ for (JsonValue child : root.iterator()) {
+ String id = child.getString("id");
+ double price = child.getDouble("price");
+ double multiplier = child.getDouble("multiplier");
+
+ JsonValue iconData = child.get("icon_data");
+ int iconColumns = iconData.getInt("columns");
+ int iconRows = iconData.getInt("rows");
+
+ Pet pet = Pet.create(id, price, multiplier, iconColumns, iconRows);
+ pets.add(pet);
+ }
+
+ logger.info("Loaded {} pets", pets.size());
+ }
+
+ public Optional<Pet> getPet(String id) {
+ return pets.stream().filter(x -> x.getId().equals(id)).findFirst();
+ }
+
+ public HashSet<Pet> getPets() {
+ return pets;
+ }
+}
diff --git a/core/src/kz/ilotterytea/maxon/ui/PurchaseItem.java b/core/src/kz/ilotterytea/maxon/pets/PetWidget.java
index e9c69ef..01a9dc0 100644
--- a/core/src/kz/ilotterytea/maxon/ui/PurchaseItem.java
+++ b/core/src/kz/ilotterytea/maxon/pets/PetWidget.java
@@ -1,4 +1,4 @@
-package kz.ilotterytea.maxon.ui;
+package kz.ilotterytea.maxon.pets;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.scenes.scene2d.Actor;
@@ -6,28 +6,28 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent;
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.utils.formatters.NumberFormatter;
-public class PurchaseItem extends Table {
+public class PetWidget extends Table {
private double price;
private final Label priceLabel, nameLabel;
- private final MaxonItem item;
+ private final Pet pet;
private boolean isDisabled = false;
private final Label.LabelStyle idleStyle, hoverStyle, disabledStyle, availablePriceStyle, disabledPriceStyle;
- public PurchaseItem(
+ public PetWidget(
Skin skin,
- MaxonItem item,
+ Pet pet,
TextureAtlas atlas
) {
super(skin);
super.setBackground("store_item");
super.align(Align.left | Align.center);
+ this.pet = pet;
- super.add(item.icon).size(64f).pad(6f);
+ super.add(pet.getIcon()).size(64f).pad(6f);
this.idleStyle = skin.get("store_item", Label.LabelStyle.class);
this.hoverStyle = skin.get("store_item_hover", Label.LabelStyle.class);
@@ -35,13 +35,12 @@ public class PurchaseItem extends Table {
this.availablePriceStyle = skin.get("store_item_price", Label.LabelStyle.class);
this.disabledPriceStyle = skin.get("store_item_price_disabled", Label.LabelStyle.class);
- this.price = item.price;
- this.item = item;
+ this.price = pet.getPrice();
Table summary = new Table(skin);
summary.align(Align.left);
- this.nameLabel = new Label(item.name, skin, "store_item");
+ this.nameLabel = new Label(pet.getName(), skin, "store_item");
nameLabel.setAlignment(Align.left);
Image priceIcon = new Image(atlas.findRegion("points"));
@@ -65,7 +64,7 @@ public class PurchaseItem extends Table {
super.enter(event, x, y, pointer, fromActor);
if (!isDisabled) {
nameLabel.setStyle(hoverStyle);
- PurchaseItem.super.setBackground("store_item_hover");
+ PetWidget.super.setBackground("store_item_hover");
}
}
@Override
@@ -73,7 +72,7 @@ public class PurchaseItem extends Table {
super.exit(event, x, y, pointer, toActor);
if (!isDisabled) {
nameLabel.setStyle(idleStyle);
- PurchaseItem.super.setBackground("store_item");
+ PetWidget.super.setBackground("store_item");
}
}
});
@@ -100,7 +99,7 @@ public class PurchaseItem extends Table {
super.setBackground(isDisabled ? "store_item_disabled" : "store_item");
}
- public MaxonItem getItem() {
- return item;
+ public Pet getPet() {
+ return pet;
}
}
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);
}
}
}
diff --git a/core/src/kz/ilotterytea/maxon/utils/AssetLoading.java b/core/src/kz/ilotterytea/maxon/utils/AssetLoading.java
index 640becd..885f032 100644
--- a/core/src/kz/ilotterytea/maxon/utils/AssetLoading.java
+++ b/core/src/kz/ilotterytea/maxon/utils/AssetLoading.java
@@ -7,12 +7,8 @@ import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
-import kz.ilotterytea.maxon.anim.SpriteUtils;
import kz.ilotterytea.maxon.assets.loaders.Text;
import kz.ilotterytea.maxon.assets.loaders.TextLoader;
-import kz.ilotterytea.maxon.player.MaxonItemEnum;
-import kz.ilotterytea.maxon.player.MaxonItemRegister;
-import kz.ilotterytea.maxon.ui.AnimatedImage;
import net.mgsx.gltf.loaders.glb.GLBAssetLoader;
import net.mgsx.gltf.scene3d.scene.SceneAsset;
@@ -74,128 +70,4 @@ public class AssetLoading {
am.load("mus/game/shopping_spree.wav", Music.class);
// Sounds:
}
-
- public static void registerItems(AssetManager am, I18N i18n) {
- MaxonItemRegister.clear();
-
- MaxonItemRegister.register(
- 0, i18n.TranslatableText("pet.bror.name"), i18n.TranslatableText("pet.bror.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/bror.png", Texture.class), 112, 112, 11, 7)),
- MaxonItemEnum.SLAVE,
- 100,
- 1f
- );
-
- MaxonItemRegister.register(
- 1, i18n.TranslatableText("pet.sandwich.name"), i18n.TranslatableText("pet.sandwich.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/sandwich_cat.png", Texture.class), 112, 112, 4, 7)),
- MaxonItemEnum.SLAVE,
- 1000,
- 12f
- );
-
- MaxonItemRegister.register(
- 2, i18n.TranslatableText("pet.manlooshka.name"), i18n.TranslatableText("pet.manlooshka.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/manlooshka.png", Texture.class), 112, 112, 10, 4)),
- MaxonItemEnum.SLAVE,
- 5000,
- 36f
- );
-
- MaxonItemRegister.register(
- 3, i18n.TranslatableText("pet.thirsty.name"), i18n.TranslatableText("pet.thirsty.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/thirsty_cat.png", Texture.class), 112, 112, 6, 3)),
- MaxonItemEnum.SLAVE,
- 10000,
- 100f
- );
-
- MaxonItemRegister.register(
- 4, i18n.TranslatableText("pet.furios.name"), i18n.TranslatableText("pet.furios.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/furios_cat.png", Texture.class), 112, 112, 7, 4)),
- MaxonItemEnum.SLAVE,
- 750000,
- 320f
- );
-
- MaxonItemRegister.register(
- 5, i18n.TranslatableText("pet.tvcat.name"), i18n.TranslatableText("pet.tvcat.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/tvcat.png", Texture.class), 112, 112, 5, 5)),
- MaxonItemEnum.SLAVE,
- 1500000,
- 950f
- );
-
- MaxonItemRegister.register(
- 6, i18n.TranslatableText("pet.progcat.name"), i18n.TranslatableText("pet.progcat.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/progcat.png", Texture.class), 112, 112, 7, 6)),
- MaxonItemEnum.SLAVE,
- 3000000,
- 2900f
- );
-
- MaxonItemRegister.register(
- 7, i18n.TranslatableText("pet.screamcat.name"), i18n.TranslatableText("pet.screamcat.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/screamcat.png", Texture.class), 112, 112, 10, 10)),
- MaxonItemEnum.SLAVE,
- 7000000,
- 8700f
- );
-
- MaxonItemRegister.register(
- 8, i18n.TranslatableText("pet.hellcat.name"), i18n.TranslatableText("pet.hellcat.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/hellcat.png", Texture.class), 128, 128, 10, 8)),
- MaxonItemEnum.SLAVE,
- 13000000,
- 26100f
- );
-
- MaxonItemRegister.register(
- 9, i18n.TranslatableText("pet.lurker.name"), i18n.TranslatableText("pet.lurker.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/lurker.png", Texture.class), 112, 112, 10, 7)),
- MaxonItemEnum.SLAVE,
- 20000000,
- 78300f
- );
-
- MaxonItemRegister.register(
- 10, i18n.TranslatableText("pet.piano.name"), i18n.TranslatableText("pet.piano.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/piano_cat.png", Texture.class), 128, 128, 5, 3)),
- MaxonItemEnum.SLAVE,
- 40000000,
- 234900f
- );
-
- MaxonItemRegister.register(
- 11, i18n.TranslatableText("pet.bee.name"), i18n.TranslatableText("pet.bee.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/bee_cat.png", Texture.class), 112, 112, 10, 10)),
- MaxonItemEnum.SLAVE,
- 70000000,
- 704700f
- );
-
- MaxonItemRegister.register(
- 12, i18n.TranslatableText("pet.busy.name"), i18n.TranslatableText("pet.busy.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/busy.png", Texture.class), 112, 112, 5, 5)),
- MaxonItemEnum.SLAVE,
- 150000000,
- 2114100f
- );
-
- MaxonItemRegister.register(
- 13, i18n.TranslatableText("pet.aeae.name"), i18n.TranslatableText("pet.aeae.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/aeae.png", Texture.class), 112, 112, 11, 10)),
- MaxonItemEnum.SLAVE,
- 250000000,
- 6342300f
- );
-
- MaxonItemRegister.register(
- 14, i18n.TranslatableText("pet.succat.name"), i18n.TranslatableText("pet.succat.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/succat.png", Texture.class), 128, 128, 13, 10)),
- MaxonItemEnum.SLAVE,
- 500000000,
- 19026900f
- );
- }
} \ No newline at end of file