Add support for medicaments
This commit is contained in:
BIN
data.mv.db
BIN
data.mv.db
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -10,7 +10,7 @@ import com.bartlomiejpluta.demo.world.weapon.MeleeWeapon;
|
|||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
|
|
||||||
public class WeaponBasedAI implements AI {
|
public class WeaponBasedAI implements AI {
|
||||||
private static final int RANGE = 10;
|
private static final int RANGE = 20;
|
||||||
private static final int MIN_RANGE = 3;
|
private static final int MIN_RANGE = 3;
|
||||||
private static final int MAX_RANGE = 12;
|
private static final int MAX_RANGE = 12;
|
||||||
private final Enemy enemy;
|
private final Enemy enemy;
|
||||||
|
|||||||
@@ -84,6 +84,10 @@ public abstract class Creature extends NamedCharacter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void heal(int hp) {
|
||||||
|
this.hp = Math.min(this.hp + hp, this.maxHp);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(float dt) {
|
public void update(float dt) {
|
||||||
super.update(dt);
|
super.update(dt);
|
||||||
@@ -105,4 +109,6 @@ public abstract class Creature extends NamedCharacter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public abstract String getName();
|
public abstract String getName();
|
||||||
|
|
||||||
|
public abstract void removeItemFromEquipment(Item item);
|
||||||
}
|
}
|
||||||
@@ -51,9 +51,9 @@ public class Enemy extends Creature implements NPC {
|
|||||||
super(ContextHolder.INSTANCE.getContext().createCharacter(A.charsets.get(template.getCharset()).uid));
|
super(ContextHolder.INSTANCE.getContext().createCharacter(A.charsets.get(template.getCharset()).uid));
|
||||||
this.template = template;
|
this.template = template;
|
||||||
name = template.getName();
|
name = template.getName();
|
||||||
maxHp = DiceRoller.of(template.getHp()).roll();
|
maxHp = DiceRoller.roll(template.getHp());
|
||||||
hp = maxHp;
|
hp = maxHp;
|
||||||
var speed = DiceRoller.of(template.getSpeed()).roll() / 10f;
|
var speed = DiceRoller.roll(template.getSpeed()) / 10f;
|
||||||
setSpeed(speed);
|
setSpeed(speed);
|
||||||
setAnimationSpeed(speed / 2.0f);
|
setAnimationSpeed(speed / 2.0f);
|
||||||
setBlocking(template.isBlocking());
|
setBlocking(template.isBlocking());
|
||||||
@@ -68,7 +68,7 @@ public class Enemy extends Creature implements NPC {
|
|||||||
var split = rangedWeaponTemplate.split(",");
|
var split = rangedWeaponTemplate.split(",");
|
||||||
|
|
||||||
this.rangedWeapon = new RangedWeapon(split[0]);
|
this.rangedWeapon = new RangedWeapon(split[0]);
|
||||||
setAmmunition(new Ammunition(split[1], DiceRoller.of(split[2]).roll()));
|
setAmmunition(new Ammunition(split[1], DiceRoller.roll(split[2])));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.dieAnimation = new SimpleAnimationRunner(A.animations.get(template.getDieAnimation()).uid);
|
this.dieAnimation = new SimpleAnimationRunner(A.animations.get(template.getDieAnimation()).uid);
|
||||||
@@ -79,6 +79,11 @@ public class Enemy extends Creature implements NPC {
|
|||||||
return ai;
|
return ai;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeItemFromEquipment(Item item) {
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void die() {
|
public void die() {
|
||||||
super.die();
|
super.die();
|
||||||
@@ -114,7 +119,7 @@ public class Enemy extends Creature implements NPC {
|
|||||||
loot[index] = switch (split[0]) {
|
loot[index] = switch (split[0]) {
|
||||||
case "melee_weapon" -> new MeleeWeapon(split[1]);
|
case "melee_weapon" -> new MeleeWeapon(split[1]);
|
||||||
case "ranged_weapon" -> new RangedWeapon(split[1]);
|
case "ranged_weapon" -> new RangedWeapon(split[1]);
|
||||||
case "ammo" -> new Ammunition(split[1], DiceRoller.of(d.getAmount()).roll());
|
case "ammo" -> new Ammunition(split[1], DiceRoller.roll(d.getAmount()));
|
||||||
case "junk" -> new Junk(split[1]);
|
case "junk" -> new Junk(split[1]);
|
||||||
default -> throw new IllegalArgumentException("Unsupported item type");
|
default -> throw new IllegalArgumentException("Unsupported item type");
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ public class Player extends Creature {
|
|||||||
|
|
||||||
public Player(@NonNull Character entity) {
|
public Player(@NonNull Character entity) {
|
||||||
super(entity);
|
super(entity);
|
||||||
this.hp = 500;
|
this.hp = 20;
|
||||||
this.maxHp = 500;
|
this.maxHp = 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void interact() {
|
public void interact() {
|
||||||
@@ -68,6 +68,7 @@ public class Player extends Creature {
|
|||||||
return equipment[index];
|
return equipment[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void removeItemFromEquipment(@NonNull Item item) {
|
public void removeItemFromEquipment(@NonNull Item item) {
|
||||||
for (int i = 0; i < equipment.length; ++i) {
|
for (int i = 0; i < equipment.length; ++i) {
|
||||||
if (equipment[i] == item) {
|
if (equipment[i] == item) {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.bartlomiejpluta.demo.entity.Player;
|
|||||||
import com.bartlomiejpluta.demo.runner.DemoRunner;
|
import com.bartlomiejpluta.demo.runner.DemoRunner;
|
||||||
import com.bartlomiejpluta.demo.world.item.Item;
|
import com.bartlomiejpluta.demo.world.item.Item;
|
||||||
import com.bartlomiejpluta.demo.world.item.Useable;
|
import com.bartlomiejpluta.demo.world.item.Useable;
|
||||||
|
import com.bartlomiejpluta.demo.world.potion.Medicament;
|
||||||
import com.bartlomiejpluta.demo.world.weapon.MeleeWeapon;
|
import com.bartlomiejpluta.demo.world.weapon.MeleeWeapon;
|
||||||
import com.bartlomiejpluta.demo.world.weapon.RangedWeapon;
|
import com.bartlomiejpluta.demo.world.weapon.RangedWeapon;
|
||||||
|
|
||||||
@@ -121,6 +122,11 @@ public class EquipmentWindow extends DecoratedWindow {
|
|||||||
|
|
||||||
if (item instanceof RangedWeapon weapon) {
|
if (item instanceof RangedWeapon weapon) {
|
||||||
detailsLbl.setText(format("Damage: %s\nRange: %s\nCooldown: %s\n", weapon.getDmgRoller(), weapon.getRangeRoller(), weapon.getCooldown()));
|
detailsLbl.setText(format("Damage: %s\nRange: %s\nCooldown: %s\n", weapon.getDmgRoller(), weapon.getRangeRoller(), weapon.getCooldown()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item instanceof Medicament medicament) {
|
||||||
|
detailsLbl.setText(format("Restores: %s HP\n", medicament.getRoller()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import com.bartlomiejpluta.demo.entity.Enemy;
|
|||||||
import com.bartlomiejpluta.demo.entity.Player;
|
import com.bartlomiejpluta.demo.entity.Player;
|
||||||
import com.bartlomiejpluta.demo.event.EnemyDiedEvent;
|
import com.bartlomiejpluta.demo.event.EnemyDiedEvent;
|
||||||
import com.bartlomiejpluta.demo.runner.DemoRunner;
|
import com.bartlomiejpluta.demo.runner.DemoRunner;
|
||||||
|
import com.bartlomiejpluta.demo.world.potion.Medicament;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
|
|
||||||
public abstract class BaseMapHandler implements MapHandler {
|
public abstract class BaseMapHandler implements MapHandler {
|
||||||
@@ -122,6 +123,17 @@ public abstract class BaseMapHandler implements MapHandler {
|
|||||||
return spawner;
|
return spawner;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Medicament medicament(@NonNull String id, int count) {
|
||||||
|
return new Medicament(id, count);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Medicament medicament(ObjectLayer layer, int x, int y, @NonNull String id, int count) {
|
||||||
|
var medicament = new Medicament(id, count);
|
||||||
|
medicament.setCoordinates(x, y);
|
||||||
|
layer.addEntity(medicament);
|
||||||
|
return medicament;
|
||||||
|
}
|
||||||
|
|
||||||
public Icon icon(ObjectLayer layer, int x, int y, String iconSetUid, int row, int column) {
|
public Icon icon(ObjectLayer layer, int x, int y, String iconSetUid, int row, int column) {
|
||||||
var icon = context.createIcon(iconSetUid, row, column);
|
var icon = context.createIcon(iconSetUid, row, column);
|
||||||
icon.setScale(1f);
|
icon.setScale(1f);
|
||||||
|
|||||||
11
src/main/java/com/bartlomiejpluta/demo/util/IconUtil.java
Normal file
11
src/main/java/com/bartlomiejpluta/demo/util/IconUtil.java
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package com.bartlomiejpluta.demo.util;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.context.ContextHolder;
|
||||||
|
import com.bartlomiejpluta.base.api.icon.Icon;
|
||||||
|
|
||||||
|
public class IconUtil {
|
||||||
|
public static Icon parseIcon(String iconDefinition) {
|
||||||
|
var parts = iconDefinition.split(",");
|
||||||
|
return ContextHolder.INSTANCE.getContext().createIcon(A.iconsets.get(parts[0]).uid, Integer.parseInt(parts[1]), Integer.parseInt(parts[2]));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.bartlomiejpluta.demo.world.item;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.lib.icon.IconDelegate;
|
||||||
|
import com.bartlomiejpluta.demo.util.IconUtil;
|
||||||
|
import lombok.NonNull;
|
||||||
|
|
||||||
|
public abstract class BaseItem extends IconDelegate implements Item {
|
||||||
|
protected BaseItem(@NonNull String icon) {
|
||||||
|
super(IconUtil.parseIcon(icon));
|
||||||
|
setZIndex(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package com.bartlomiejpluta.demo.world.item;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NonNull;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
public abstract class StackableItem extends BaseItem implements ItemStack {
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
protected int count;
|
||||||
|
|
||||||
|
protected StackableItem(@NonNull String id, int count) {
|
||||||
|
super(id);
|
||||||
|
this.count = Math.max(0, count);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void decrease() {
|
||||||
|
if (count > 0) {
|
||||||
|
--count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void increase() {
|
||||||
|
++count;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void increase(int count) {
|
||||||
|
this.count += count;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void decrease(int count) {
|
||||||
|
this.count = Math.max(0, count);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,13 +1,10 @@
|
|||||||
package com.bartlomiejpluta.demo.world.junk;
|
package com.bartlomiejpluta.demo.world.junk;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.context.ContextHolder;
|
import com.bartlomiejpluta.demo.world.item.BaseItem;
|
||||||
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.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
|
|
||||||
public class Junk extends IconDelegate implements Item {
|
public class Junk extends BaseItem {
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final String name;
|
private final String name;
|
||||||
@@ -17,12 +14,7 @@ public class Junk extends IconDelegate implements Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Junk(@NonNull DB.model.JunkModel template) {
|
public Junk(@NonNull DB.model.JunkModel template) {
|
||||||
super(createIcon(template));
|
super(template.getIcon());
|
||||||
this.name = template.getName();
|
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]));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package com.bartlomiejpluta.demo.world.potion;
|
||||||
|
|
||||||
|
import DB.dao;
|
||||||
|
import com.bartlomiejpluta.base.util.random.DiceRoller;
|
||||||
|
import com.bartlomiejpluta.demo.entity.Creature;
|
||||||
|
import com.bartlomiejpluta.demo.world.item.StackableItem;
|
||||||
|
import com.bartlomiejpluta.demo.world.item.Useable;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NonNull;
|
||||||
|
|
||||||
|
public class Medicament extends StackableItem implements Useable {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private final DiceRoller roller;
|
||||||
|
|
||||||
|
public Medicament(@NonNull String id, int count) {
|
||||||
|
this(dao.medicaments.find(id), count);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Medicament(@NonNull DB.model.MedicamentsModel template, int count) {
|
||||||
|
super(template.getIcon(), count);
|
||||||
|
this.name = template.getName();
|
||||||
|
this.roller = DiceRoller.of(template.getHp());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void use(Creature creature) {
|
||||||
|
if(--count == 0) {
|
||||||
|
creature.removeItemFromEquipment(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
creature.heal(roller.roll());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,26 +1,18 @@
|
|||||||
package com.bartlomiejpluta.demo.world.weapon;
|
package com.bartlomiejpluta.demo.world.weapon;
|
||||||
|
|
||||||
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.entity.Creature;
|
import com.bartlomiejpluta.demo.entity.Creature;
|
||||||
import com.bartlomiejpluta.demo.world.item.ItemStack;
|
import com.bartlomiejpluta.demo.world.item.StackableItem;
|
||||||
import com.bartlomiejpluta.demo.world.item.Useable;
|
import com.bartlomiejpluta.demo.world.item.Useable;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import lombok.Setter;
|
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
@ToString
|
@ToString
|
||||||
public class Ammunition extends IconDelegate implements ItemStack, Useable {
|
public class Ammunition extends StackableItem implements Useable {
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final String id;
|
private final String id;
|
||||||
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
private int count;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
||||||
@@ -32,39 +24,13 @@ public class Ammunition extends IconDelegate implements ItemStack, Useable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Ammunition(@NonNull DB.model.AmmunitionModel template, int count) {
|
public Ammunition(@NonNull DB.model.AmmunitionModel template, int count) {
|
||||||
super(createIcon(template));
|
super(template.getIcon(), count);
|
||||||
|
|
||||||
this.id = template.getId();
|
this.id = template.getId();
|
||||||
this.name = template.getName();
|
this.name = template.getName();
|
||||||
this.count = count;
|
|
||||||
this.appliesTo = template.getAppliesTo();
|
this.appliesTo = template.getAppliesTo();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Icon createIcon(DB.model.AmmunitionModel 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]));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void decrease() {
|
|
||||||
if (count > 0) {
|
|
||||||
--count;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void increase() {
|
|
||||||
++count;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void increase(int count) {
|
|
||||||
this.count += count;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void decrease(int count) {
|
|
||||||
this.count = Math.max(0, count);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void use(Creature creature) {
|
public void use(Creature creature) {
|
||||||
|
|||||||
@@ -2,18 +2,17 @@ package com.bartlomiejpluta.demo.world.weapon;
|
|||||||
|
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.context.Context;
|
||||||
import com.bartlomiejpluta.base.api.context.ContextHolder;
|
import com.bartlomiejpluta.base.api.context.ContextHolder;
|
||||||
import com.bartlomiejpluta.base.api.icon.Icon;
|
|
||||||
import com.bartlomiejpluta.base.lib.animation.AnimationRunner;
|
import com.bartlomiejpluta.base.lib.animation.AnimationRunner;
|
||||||
import com.bartlomiejpluta.base.lib.animation.RandomAnimationsRunner;
|
import com.bartlomiejpluta.base.lib.animation.RandomAnimationsRunner;
|
||||||
import com.bartlomiejpluta.base.lib.icon.IconDelegate;
|
|
||||||
import com.bartlomiejpluta.base.util.random.DiceRoller;
|
import com.bartlomiejpluta.base.util.random.DiceRoller;
|
||||||
import com.bartlomiejpluta.demo.entity.Creature;
|
import com.bartlomiejpluta.demo.entity.Creature;
|
||||||
import com.bartlomiejpluta.demo.event.HitEvent;
|
import com.bartlomiejpluta.demo.event.HitEvent;
|
||||||
|
import com.bartlomiejpluta.demo.world.item.BaseItem;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
|
|
||||||
public class MeleeWeapon extends IconDelegate implements Weapon {
|
public class MeleeWeapon extends BaseItem implements Weapon {
|
||||||
private final Context context;
|
private final Context context;
|
||||||
private final AnimationRunner animation;
|
private final AnimationRunner animation;
|
||||||
private final String sound;
|
private final String sound;
|
||||||
@@ -32,7 +31,7 @@ public class MeleeWeapon extends IconDelegate implements Weapon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public MeleeWeapon(@NonNull DB.model.MeleeWeaponModel template) {
|
public MeleeWeapon(@NonNull DB.model.MeleeWeaponModel template) {
|
||||||
super(createIcon(template));
|
super(template.getIcon());
|
||||||
|
|
||||||
this.context = ContextHolder.INSTANCE.getContext();
|
this.context = ContextHolder.INSTANCE.getContext();
|
||||||
this.name = template.getName();
|
this.name = template.getName();
|
||||||
@@ -68,9 +67,4 @@ public class MeleeWeapon extends IconDelegate implements Weapon {
|
|||||||
public String usageName() {
|
public String usageName() {
|
||||||
return "Equip";
|
return "Equip";
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Icon createIcon(DB.model.MeleeWeaponModel 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]));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -4,19 +4,18 @@ import com.bartlomiejpluta.base.api.animation.Animation;
|
|||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.context.Context;
|
||||||
import com.bartlomiejpluta.base.api.context.ContextHolder;
|
import com.bartlomiejpluta.base.api.context.ContextHolder;
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.icon.Icon;
|
|
||||||
import com.bartlomiejpluta.base.api.move.Movable;
|
import com.bartlomiejpluta.base.api.move.Movable;
|
||||||
import com.bartlomiejpluta.base.lib.animation.AnimationRunner;
|
import com.bartlomiejpluta.base.lib.animation.AnimationRunner;
|
||||||
import com.bartlomiejpluta.base.lib.animation.BulletAnimationRunner;
|
import com.bartlomiejpluta.base.lib.animation.BulletAnimationRunner;
|
||||||
import com.bartlomiejpluta.base.lib.animation.SimpleAnimationRunner;
|
import com.bartlomiejpluta.base.lib.animation.SimpleAnimationRunner;
|
||||||
import com.bartlomiejpluta.base.lib.icon.IconDelegate;
|
|
||||||
import com.bartlomiejpluta.base.util.random.DiceRoller;
|
import com.bartlomiejpluta.base.util.random.DiceRoller;
|
||||||
import com.bartlomiejpluta.demo.entity.Creature;
|
import com.bartlomiejpluta.demo.entity.Creature;
|
||||||
import com.bartlomiejpluta.demo.event.HitEvent;
|
import com.bartlomiejpluta.demo.event.HitEvent;
|
||||||
|
import com.bartlomiejpluta.demo.world.item.BaseItem;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
|
|
||||||
public class RangedWeapon extends IconDelegate implements Weapon {
|
public class RangedWeapon extends BaseItem implements Weapon {
|
||||||
private final Context context;
|
private final Context context;
|
||||||
private final BulletAnimationRunner animation;
|
private final BulletAnimationRunner animation;
|
||||||
private final String sound;
|
private final String sound;
|
||||||
@@ -45,7 +44,7 @@ public class RangedWeapon extends IconDelegate implements Weapon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public RangedWeapon(@NonNull DB.model.RangedWeaponModel template) {
|
public RangedWeapon(@NonNull DB.model.RangedWeaponModel template) {
|
||||||
super(createIcon(template));
|
super(template.getIcon());
|
||||||
|
|
||||||
this.context = ContextHolder.INSTANCE.getContext();
|
this.context = ContextHolder.INSTANCE.getContext();
|
||||||
this.name = template.getName();
|
this.name = template.getName();
|
||||||
@@ -100,9 +99,4 @@ public class RangedWeapon extends IconDelegate implements Weapon {
|
|||||||
public String usageName() {
|
public String usageName() {
|
||||||
return "Equip";
|
return "Equip";
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Icon createIcon(DB.model.RangedWeaponModel 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]));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user