Create junk items

This commit is contained in:
2022-08-26 11:46:28 +02:00
parent 3eceb93559
commit 7d909d1d52
6 changed files with 31 additions and 4 deletions

Binary file not shown.

View File

@@ -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");
};
}

View File

@@ -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()));

View File

@@ -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;

View File

@@ -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;

View File

@@ -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]));
}
}