diff --git a/data.mv.db b/data.mv.db index f981dbf..092a406 100644 Binary files a/data.mv.db and b/data.mv.db differ diff --git a/src/main/java/com/bartlomiejpluta/demo/entity/Enemy.java b/src/main/java/com/bartlomiejpluta/demo/entity/Enemy.java index 8bb43a4..4a44919 100644 --- a/src/main/java/com/bartlomiejpluta/demo/entity/Enemy.java +++ b/src/main/java/com/bartlomiejpluta/demo/entity/Enemy.java @@ -14,6 +14,7 @@ import com.bartlomiejpluta.base.util.random.DiceRoller; import com.bartlomiejpluta.demo.ai.*; import com.bartlomiejpluta.demo.event.EnemyDiedEvent; import com.bartlomiejpluta.demo.world.item.Item; +import com.bartlomiejpluta.demo.world.junk.Junk; import com.bartlomiejpluta.demo.world.weapon.Ammunition; import com.bartlomiejpluta.demo.world.weapon.MeleeWeapon; import com.bartlomiejpluta.demo.world.weapon.RangedWeapon; @@ -114,6 +115,7 @@ public class Enemy extends Creature implements NPC { case "melee_weapon" -> new MeleeWeapon(split[1]); case "ranged_weapon" -> new RangedWeapon(split[1]); case "ammo" -> new Ammunition(split[1], DiceRoller.of(d.getAmount()).roll()); + case "junk" -> new Junk(split[1]); default -> throw new IllegalArgumentException("Unsupported item type"); }; } diff --git a/src/main/java/com/bartlomiejpluta/demo/gui/EquipmentWindow.java b/src/main/java/com/bartlomiejpluta/demo/gui/EquipmentWindow.java index b3d84f0..d29918b 100644 --- a/src/main/java/com/bartlomiejpluta/demo/gui/EquipmentWindow.java +++ b/src/main/java/com/bartlomiejpluta/demo/gui/EquipmentWindow.java @@ -114,6 +114,7 @@ public class EquipmentWindow extends DecoratedWindow { } nameLbl.setText(item.getName()); + detailsLbl.setText(""); if (item instanceof MeleeWeapon weapon) { detailsLbl.setText(format("Damage: %s\nCooldown: %s\n", weapon.getDmgRoller(), weapon.getCooldown())); diff --git a/src/main/java/com/bartlomiejpluta/demo/gui/StartMenuWindow.java b/src/main/java/com/bartlomiejpluta/demo/gui/StartMenuWindow.java index 9019372..2695e7d 100644 --- a/src/main/java/com/bartlomiejpluta/demo/gui/StartMenuWindow.java +++ b/src/main/java/com/bartlomiejpluta/demo/gui/StartMenuWindow.java @@ -1,13 +1,10 @@ package com.bartlomiejpluta.demo.gui; -import DB.EnemyDAO; -import DB.dao; import com.bartlomiejpluta.base.api.context.Context; import com.bartlomiejpluta.base.api.gui.Component; import com.bartlomiejpluta.base.api.gui.GUI; import com.bartlomiejpluta.base.api.gui.Inflatable; import com.bartlomiejpluta.base.api.gui.Ref; -import com.bartlomiejpluta.base.lib.db.Relop; import com.bartlomiejpluta.base.lib.gui.VOptionChoice; import lombok.Getter; diff --git a/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java b/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java index 6b0919c..b185c26 100644 --- a/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java +++ b/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java @@ -16,7 +16,6 @@ import com.bartlomiejpluta.base.util.world.CharacterSpawner; import com.bartlomiejpluta.base.util.world.Warp; import com.bartlomiejpluta.demo.entity.Chest; import com.bartlomiejpluta.demo.entity.Enemy; -import com.bartlomiejpluta.demo.entity.MapObject; import com.bartlomiejpluta.demo.entity.Player; import com.bartlomiejpluta.demo.event.EnemyDiedEvent; import com.bartlomiejpluta.demo.runner.DemoRunner; diff --git a/src/main/java/com/bartlomiejpluta/demo/world/junk/Junk.java b/src/main/java/com/bartlomiejpluta/demo/world/junk/Junk.java new file mode 100644 index 0000000..49d8e4a --- /dev/null +++ b/src/main/java/com/bartlomiejpluta/demo/world/junk/Junk.java @@ -0,0 +1,28 @@ +package com.bartlomiejpluta.demo.world.junk; + +import com.bartlomiejpluta.base.api.context.ContextHolder; +import com.bartlomiejpluta.base.api.icon.Icon; +import com.bartlomiejpluta.base.lib.icon.IconDelegate; +import com.bartlomiejpluta.demo.world.item.Item; +import lombok.Getter; +import lombok.NonNull; + +public class Junk extends IconDelegate implements Item { + + @Getter + private final String name; + + public Junk(@NonNull String id) { + this(DB.dao.junk.find(id)); + } + + public Junk(@NonNull DB.model.JunkModel template) { + super(createIcon(template)); + this.name = template.getName(); + } + + private static Icon createIcon(DB.model.JunkModel template) { + var icons = template.getIcon().split(","); + return ContextHolder.INSTANCE.getContext().createIcon(A.iconsets.get(icons[0]).uid, Integer.parseInt(icons[1]), Integer.parseInt(icons[2])); + } +}