From 7d909d1d523816f29756fc6c36c9ef1bea5b3e5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Fri, 26 Aug 2022 11:46:28 +0200 Subject: [PATCH] Create junk items --- data.mv.db | Bin 36864 -> 36864 bytes .../bartlomiejpluta/demo/entity/Enemy.java | 2 ++ .../demo/gui/EquipmentWindow.java | 1 + .../demo/gui/StartMenuWindow.java | 3 -- .../demo/map/BaseMapHandler.java | 1 - .../bartlomiejpluta/demo/world/junk/Junk.java | 28 ++++++++++++++++++ 6 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/bartlomiejpluta/demo/world/junk/Junk.java diff --git a/data.mv.db b/data.mv.db index f981dbf4966ac8bb1f173b639360b21bcb03a439..092a406b2eaa2f30f73f2f7893cd6836ea09aff3 100644 GIT binary patch literal 36864 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 RXkuw(Vq%1MHk@QhE&z%$Q?>vA literal 36864 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 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])); + } +}