From 7f821d7723bf3e3218ecf455daaf577cc922eb50 Mon Sep 17 00:00:00 2001 From: Raktbastr Date: Fri, 15 May 2026 16:18:51 -0500 Subject: [PATCH] Finished handlers --- .idea/misc.xml | 2 +- src/main/java/net/halfheart/Main.java | 4 +- .../ventricleengine/AidModifier.java | 18 ++ .../ventricleengine/AidModifierHandler.java | 55 ++++ .../net/halfheart/ventricleengine/Armor.java | 4 +- .../ventricleengine/ArmorsHandler.java | 82 ++++-- .../net/halfheart/ventricleengine/Item.java | 6 + .../ventricleengine/ItemsHandler.java | 55 ++++ .../net/halfheart/ventricleengine/Player.java | 15 +- .../ventricleengine/PlayerHandler.java | 126 +++++++++- .../ventricleengine/WeaponsHandler.java | 37 ++- src/main/resources/aid_modifiers.json | 11 + src/main/resources/armors.json | 236 +++++++++++++++++- src/main/resources/items.json | 10 + src/main/resources/playerdata.json | 0 src/main/resources/weapons.json | 2 +- 16 files changed, 621 insertions(+), 42 deletions(-) create mode 100644 src/main/java/net/halfheart/ventricleengine/AidModifier.java create mode 100644 src/main/java/net/halfheart/ventricleengine/AidModifierHandler.java create mode 100644 src/main/java/net/halfheart/ventricleengine/ItemsHandler.java create mode 100644 src/main/resources/aid_modifiers.json create mode 100644 src/main/resources/items.json delete mode 100644 src/main/resources/playerdata.json diff --git a/.idea/misc.xml b/.idea/misc.xml index 0d3d353..e97f6ba 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/src/main/java/net/halfheart/Main.java b/src/main/java/net/halfheart/Main.java index 96ac1e7..916ef06 100644 --- a/src/main/java/net/halfheart/Main.java +++ b/src/main/java/net/halfheart/Main.java @@ -1,9 +1,7 @@ package net.halfheart; -//TIP To Run code, press or -// click the icon in the gutter. public class Main { - static void main() { + public static void main(String[] args) { } } diff --git a/src/main/java/net/halfheart/ventricleengine/AidModifier.java b/src/main/java/net/halfheart/ventricleengine/AidModifier.java new file mode 100644 index 0000000..dd9d9e2 --- /dev/null +++ b/src/main/java/net/halfheart/ventricleengine/AidModifier.java @@ -0,0 +1,18 @@ +package net.halfheart.ventricleengine; + +public class AidModifier { + String name; + String stat; + String mod; + short value; + int duration; + + + public AidModifier(String name, String stat, String mod, short value, int duration) { + this.name = name; + this.stat = stat; + this.mod = mod; + this.value = value; + this.duration = duration; + } +} diff --git a/src/main/java/net/halfheart/ventricleengine/AidModifierHandler.java b/src/main/java/net/halfheart/ventricleengine/AidModifierHandler.java new file mode 100644 index 0000000..8685dec --- /dev/null +++ b/src/main/java/net/halfheart/ventricleengine/AidModifierHandler.java @@ -0,0 +1,55 @@ +package net.halfheart.ventricleengine; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.Objects; +import java.util.stream.Collectors; + +public class AidModifierHandler { + private static AidModifier constructAidModifier(String aidModifierName) { + String filename = "/aid_modifiers.json"; + try (InputStream inputStream = WeaponsHandler.class.getResourceAsStream(filename)) { + String jsonText = new BufferedReader( + new InputStreamReader(Objects.requireNonNull(inputStream), StandardCharsets.UTF_8)) + .lines() + .collect(Collectors.joining("\n")); + + JSONArray jsonArray = new JSONArray(jsonText); + + JSONObject wantedItem = null; + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject item = jsonArray.getJSONObject(i); + if (item.opt("name").toString().equals(aidModifierName)) { + wantedItem = item; + } + } + assert wantedItem != null; + String name = wantedItem.opt("name").toString(); + String stat = wantedItem.opt("stat").toString(); + String mod = wantedItem.opt("mod").toString(); + short value = (short) wantedItem.opt("value"); + int duration = (int) wantedItem.opt("duration"); + return new AidModifier(name, stat, mod, value, duration); + + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static void applyAid(AidModifier modifier) { + if (modifier.stat.equals("hp")) { + char action = modifier.mod.charAt(0); + switch (action) { + case '+' -> PlayerHandler.PLAYER.hp = (short) (PlayerHandler.PLAYER.hp + modifier.value); + } + } + } + + public static AidModifier STIMPAK = constructAidModifier("Stimpak"); +} diff --git a/src/main/java/net/halfheart/ventricleengine/Armor.java b/src/main/java/net/halfheart/ventricleengine/Armor.java index fb6a6e9..b1949a1 100644 --- a/src/main/java/net/halfheart/ventricleengine/Armor.java +++ b/src/main/java/net/halfheart/ventricleengine/Armor.java @@ -6,7 +6,7 @@ public class Armor { String name; String description; String resType; - List resistances; + List resistances; String resUnit; short cost; byte weight; @@ -15,7 +15,7 @@ public class Armor { String name, String description, String resType, - List resistances, + List resistances, String resUnit, short cost, byte weight diff --git a/src/main/java/net/halfheart/ventricleengine/ArmorsHandler.java b/src/main/java/net/halfheart/ventricleengine/ArmorsHandler.java index 98f4899..66fee01 100644 --- a/src/main/java/net/halfheart/ventricleengine/ArmorsHandler.java +++ b/src/main/java/net/halfheart/ventricleengine/ArmorsHandler.java @@ -2,14 +2,17 @@ package net.halfheart.ventricleengine; import org.json.*; import java.io.BufferedReader; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; import java.util.stream.Collectors; public class ArmorsHandler { - private static Armor constructArmor(String weaponName) { + private static Armor constructArmor(String armorName) { String filename = "/armors.json"; try (InputStream inputStream = WeaponsHandler.class.getResourceAsStream(filename)) { String jsonText = new BufferedReader( @@ -22,25 +25,72 @@ public class ArmorsHandler { JSONObject wantedItem = null; for (int i = 0; i < jsonArray.length(); i++) { JSONObject item = jsonArray.getJSONObject(i); - if (item.opt("name").toString().equals(weaponName)) { + if (item.opt("name").toString().equals(armorName)) { wantedItem = item; } } assert wantedItem != null; - String name = wantedItem.opt("name").toString(); - if (name.equals("Fists")) { - switch () - } - String description = wantedItem.opt("desc").toString(); - String dmgType = wantedItem.opt("type").toString(); - String ammoType = wantedItem.opt("ammo").toString(); - short damage = (short) wantedItem.opt("dmg"); - short cost = (short) wantedItem.opt("cost"); - byte weight = (byte) wantedItem.opt("weight"); - return new Weapon(name, description, dmgType, ammoType, damage, cost, weight); - } catch (Exception ignored) { + JSONObject resistances = wantedItem.getJSONObject("resistances"); - } - return null; + String name = wantedItem.opt("name").toString(); + String description = wantedItem.opt("desc").toString(); + String armorType = wantedItem.opt("type").toString(); + String resUnit = wantedItem.opt("unit").toString(); + List resList = new ArrayList<>(); + for (String key : resistances.keySet()) { + byte res = (byte) resistances.opt(key); + resList.add(res); + } + byte weight = (byte) wantedItem.opt("weight"); + short cost = (short) wantedItem.opt("cost"); + return new Armor(name, description, armorType, resList, resUnit, cost, weight); + } catch (IOException e) { + throw new RuntimeException(e); + } } + + public static Armor findArmor(String armorName) { + return switch (armorName) { + case "Nothing" -> NOTHING; + case "Leather Armor" -> LEATHERARMOR; + case "Sturdy Leather Armor" -> STURDYLEATHERARMOR; + case "Raider Armor" -> RAIDERARMOR; + case "Metal Armor" -> METALARMOR; + case "Combat Armor" -> COMBATARMOR; + case "Centurion Armor" -> CENTURIONARMOR; + case "NCR Ranger Armor" -> NCRRANGERARMOR; + case "T-45 Power Armor" -> T45POWERARMOR; + case "T-60 Power Armor" -> T60POWERARMOR; + case "T-65 Power Armor" -> T65POWERARMOR; + case "X-01 Power Armor" -> X01POWERARMOR; + case "APA MkI Power Armor" -> APAMKIORPOWERARMOR; + case "APA MkII Power Armor" -> APAMKIIPOWERARMOR; + case "Raider Power Armor" -> RAIDERPOWERARMOR; + case "Ultracite Power Armor" -> ULTRACITEPOWERARMOR; + case "T-51 Power Armor" -> T51POWERARMOR; + case "Enclave Uniform" -> ENCLAVEUNIFORM; + case "Excavator Power Armor" -> EXCAVATORPOWERARMOR; + default -> null; + }; + } + + public static Armor NOTHING = constructArmor("Nothing"); + public static Armor LEATHERARMOR = constructArmor("Leather Armor"); + public static Armor STURDYLEATHERARMOR = constructArmor("Sturdy Leather Armor"); + public static Armor RAIDERARMOR = constructArmor("Raider Armor"); + public static Armor METALARMOR = constructArmor("Metal Armor"); + public static Armor COMBATARMOR = constructArmor("Combat Armor"); + public static Armor CENTURIONARMOR = constructArmor("Centurion Armor"); + public static Armor NCRRANGERARMOR = constructArmor("NCR Ranger Armor"); + public static Armor T45POWERARMOR = constructArmor("T-45 Power Armor"); + public static Armor T60POWERARMOR = constructArmor("T-60 Power Armor"); + public static Armor T65POWERARMOR = constructArmor("T-65 Power Armor"); + public static Armor X01POWERARMOR = constructArmor("X-01 Power Armor"); + public static Armor APAMKIORPOWERARMOR = constructArmor("APA MkI Power Armor"); + public static Armor APAMKIIPOWERARMOR = constructArmor("APA MkII Power Armor"); + public static Armor RAIDERPOWERARMOR = constructArmor("Raider Power Armor"); + public static Armor ULTRACITEPOWERARMOR = constructArmor("Ultracite Power Armor"); + public static Armor T51POWERARMOR = constructArmor("T-51 Power Armor"); + public static Armor ENCLAVEUNIFORM = constructArmor("Enclave Uniform"); + public static Armor EXCAVATORPOWERARMOR = constructArmor("Excavator Power Armor"); } diff --git a/src/main/java/net/halfheart/ventricleengine/Item.java b/src/main/java/net/halfheart/ventricleengine/Item.java index ddb4c00..d9cdc51 100644 --- a/src/main/java/net/halfheart/ventricleengine/Item.java +++ b/src/main/java/net/halfheart/ventricleengine/Item.java @@ -1,17 +1,23 @@ package net.halfheart.ventricleengine; public class Item { + String name; + String description; byte weight; short cost; boolean consumable; String aidModifier; public Item( + String name, + String description, byte weight, short cost, boolean consumable, String aidModifier ){ + this.name = name; + this.description = description; this.weight = weight; this.cost = cost; this.consumable = consumable; diff --git a/src/main/java/net/halfheart/ventricleengine/ItemsHandler.java b/src/main/java/net/halfheart/ventricleengine/ItemsHandler.java new file mode 100644 index 0000000..fba79c4 --- /dev/null +++ b/src/main/java/net/halfheart/ventricleengine/ItemsHandler.java @@ -0,0 +1,55 @@ +package net.halfheart.ventricleengine; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.Objects; +import java.util.stream.Collectors; + +import static net.halfheart.ventricleengine.AidModifierHandler.STIMPAK; + +public class ItemsHandler { + private static Item constructItem(String weaponName) { + String filename = "/items.json"; + try (InputStream inputStream = WeaponsHandler.class.getResourceAsStream(filename)) { + String jsonText = new BufferedReader( + new InputStreamReader(Objects.requireNonNull(inputStream), StandardCharsets.UTF_8)) + .lines() + .collect(Collectors.joining("\n")); + + JSONArray jsonArray = new JSONArray(jsonText); + + JSONObject wantedItem = null; + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject item = jsonArray.getJSONObject(i); + if (item.opt("name").toString().equals(weaponName)) { + wantedItem = item; + } + } + assert wantedItem != null; + String name = wantedItem.opt("name").toString(); + String description = wantedItem.opt("desc").toString(); + byte weight = (byte) wantedItem.opt("weight"); + short cost = (short) wantedItem.opt("cost"); + boolean consumable = (boolean) wantedItem.opt("consumable"); + String aidModifier = wantedItem.opt("aidModifier").toString(); + return new Item(name, description, weight, cost, consumable, aidModifier); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static Item findItem(String itemName) { + return switch (itemName) { + case "Stimpak" -> STIMPAK; + default -> null; + }; + } + + public static Item STIMPAK = constructItem("Stimpak"); +} diff --git a/src/main/java/net/halfheart/ventricleengine/Player.java b/src/main/java/net/halfheart/ventricleengine/Player.java index 2196c7f..d4277e2 100644 --- a/src/main/java/net/halfheart/ventricleengine/Player.java +++ b/src/main/java/net/halfheart/ventricleengine/Player.java @@ -1,5 +1,4 @@ package net.halfheart.ventricleengine; -import java.util.ArrayList; import java.util.List; public class Player { @@ -27,9 +26,9 @@ public class Player { int xp; short level; - List weapons = new ArrayList<>(); - List armors = new ArrayList<>(); - List items = new ArrayList<>(); + List weapons; + List armors; + List items; public Player( String name, @@ -49,7 +48,10 @@ public class Player { byte radSeverity, byte radPoints, int xp, - short level + short level, + List weapons, + List armors, + List items ) { this.name = name; @@ -70,5 +72,8 @@ public class Player { this.radPoints = radPoints; this.xp = xp; this.level = level; + this.weapons = weapons; + this.armors = armors; + this.items = items; } } diff --git a/src/main/java/net/halfheart/ventricleengine/PlayerHandler.java b/src/main/java/net/halfheart/ventricleengine/PlayerHandler.java index 4080307..2d0620e 100644 --- a/src/main/java/net/halfheart/ventricleengine/PlayerHandler.java +++ b/src/main/java/net/halfheart/ventricleengine/PlayerHandler.java @@ -1,21 +1,133 @@ package net.halfheart.ventricleengine; -import java.io.File; import java.io.FileNotFoundException; -import java.io.FileReader; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; import org.json.*; public class PlayerHandler { private static Player constructPlayer(String savePath) { - try { - String content = new String(Files.readAllBytes(Paths.get(savePath))); - JSONObject jsonObject = new JSONObject(content); + if (savePath.equals("none")) { + String name = "No Player Loaded!"; + byte strength = 0; + byte perception = 0; + byte endurance = 0; + byte charisma = 0; + byte intelligence = 0; + byte agility = 0; + byte luck = 0; + short caps = 0; + short pwMoney = 0; + short hpCap = 0; + short hp = 0; + short food = 0; + boolean isRadiated = false; + byte radSeverity = 0; + byte radPoints = 0; + int xp = 0; + short level = 0; + List weaponList = new ArrayList<>(); + List armorList = new ArrayList<>(); + List itemList = new ArrayList<>(); - } catch (IOException e) { - throw new RuntimeException(e); + return new Player( + name, + strength, + perception, + endurance, + charisma, + intelligence, + agility, + luck, + caps, + pwMoney, + hpCap, + hp, + food, + isRadiated, + radSeverity, + radPoints, + xp, + level, + weaponList, + armorList, + itemList + ); + } else { + try { + String content = new String(Files.readAllBytes(Paths.get(savePath))); + JSONObject saveData = new JSONObject(content); + + String name = saveData.opt("name").toString(); + byte strength = (byte) saveData.opt("strength"); + byte perception = (byte) saveData.opt("perception"); + byte endurance = (byte) saveData.opt("endurance"); + byte charisma = (byte) saveData.opt("charisma"); + byte intelligence = (byte) saveData.opt("intelligence"); + byte agility = (byte) saveData.opt("agility"); + byte luck = (byte) saveData.opt("luck"); + short caps = (short) saveData.opt("caps"); + short pwMoney = (short) saveData.opt("pwMoney"); + short hpCap = (short) saveData.opt("hpCap"); + short hp = (short) saveData.opt("hp"); + short food = (short) saveData.opt("food"); + boolean isRadiated = (boolean) saveData.opt("isRadiated"); + byte radSeverity = (byte) saveData.opt("radSeverity"); + byte radPoints = (byte) saveData.opt("radPoints"); + int xp = (int) saveData.opt("xp"); + short level = (short) saveData.opt("level"); + + JSONObject weapons = saveData.getJSONObject("weapons"); + JSONObject armors = saveData.getJSONObject("armors"); + JSONObject items = saveData.getJSONObject("items"); + + List weaponList = new ArrayList<>(); + for (String key : weapons.keySet()) { + weaponList.add(WeaponsHandler.findWeapon(weapons.opt(key).toString())); + } + List armorList = new ArrayList<>(); + for (String key : armors.keySet()) { + armorList.add(ArmorsHandler.findArmor(armors.opt(key).toString())); + } + List itemList = new ArrayList<>(); + for (String key : items.keySet()) { + itemList.add(ItemsHandler.findItem(items.opt(key).toString())); + } + + return new Player( + name, + strength, + perception, + endurance, + charisma, + intelligence, + agility, + luck, + caps, + pwMoney, + hpCap, + hp, + food, + isRadiated, + radSeverity, + radPoints, + xp, + level, + weaponList, + armorList, + itemList + ); + } catch (FileNotFoundException e) { + System.out.println("Save file not found at path: "+savePath); + } catch (IOException e) { + throw new RuntimeException(e); + } } + return null; } + + public static Player PLAYER = constructPlayer("none"); } diff --git a/src/main/java/net/halfheart/ventricleengine/WeaponsHandler.java b/src/main/java/net/halfheart/ventricleengine/WeaponsHandler.java index 71765c3..7876b2e 100644 --- a/src/main/java/net/halfheart/ventricleengine/WeaponsHandler.java +++ b/src/main/java/net/halfheart/ventricleengine/WeaponsHandler.java @@ -2,6 +2,7 @@ package net.halfheart.ventricleengine; import org.json.*; import java.io.BufferedReader; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; @@ -28,9 +29,6 @@ public class WeaponsHandler { } assert wantedItem != null; String name = wantedItem.opt("name").toString(); - if (name.equals("Fists")) { - switch () - } String description = wantedItem.opt("desc").toString(); String dmgType = wantedItem.opt("type").toString(); String ammoType = wantedItem.opt("ammo").toString(); @@ -38,11 +36,38 @@ public class WeaponsHandler { short cost = (short) wantedItem.opt("cost"); byte weight = (byte) wantedItem.opt("weight"); return new Weapon(name, description, dmgType, ammoType, damage, cost, weight); - } catch (Exception ignored) { - + } catch (IOException e) { + throw new RuntimeException(e); } - return null; } + + public static Weapon findWeapon(String weaponName) { + return switch (weaponName) { + case "Fists" -> FISTS; + case "Combat Knife" -> COMBATKNIFE; + case "Ripper" -> RIPPER; + case "Chainsaw" -> CHAINSAW; + case "Baseball Bat" -> BASEBALLBAT; + case "Power Fist" -> POWERFIST; + case "Super Sledge" -> SUPERSLEDGE; + case "10mm Pistol" -> PISTOL10MM; + case "Hunting Rifle" -> HUNTINGRIFLE; + default -> null; + }; + } + + public static void fistCalc() { + switch (PlayerHandler.PLAYER.strength){ + case 0 -> { + FISTS.description = FISTS.description+"please don't."; + FISTS.damage = -2; + } + case (1|2|3|4) -> FISTS.description = FISTS.description+"a last resort."; + case (5|6|7|8) -> FISTS.description = FISTS.description+"use cautiously."; + case (9|10) -> FISTS.description = FISTS.description+"a formidable weapon."; + } + } + public static Weapon FISTS = constructWeapon("Fists"); public static Weapon COMBATKNIFE = constructWeapon("Combat Knife"); public static Weapon RIPPER = constructWeapon("Ripper"); diff --git a/src/main/resources/aid_modifiers.json b/src/main/resources/aid_modifiers.json new file mode 100644 index 0000000..e201f12 --- /dev/null +++ b/src/main/resources/aid_modifiers.json @@ -0,0 +1,11 @@ +[ + { + "food": { + "name": "Stimpak", + "stat": "hp", + "mod": "+", + "value": "20", + "duration": 0 + } + } +] \ No newline at end of file diff --git a/src/main/resources/armors.json b/src/main/resources/armors.json index 183788d..cd948e2 100644 --- a/src/main/resources/armors.json +++ b/src/main/resources/armors.json @@ -6,12 +6,246 @@ "resistances": { "bash": 0, "slash": 0, - "balistic": 0, + "ballistic": 0, "laser": 0, "plasma": 0 }, "unit": "dr", "weight": 0, "cost": -1 + }, + { + "name": "Leather Armor", + "desc": "A set of leather armor, good protection from laser weapons.", + "type": "armor", + "resistances": { + "ballistic": 2, + "slash": 2, + "laser": 5, + "plasma": 3}, + "unit": "dr", + "cost": 5, + "weight": 5 + }, + {"name": "Sturdy Leather Armor", + "desc": "A set of combat armor, better protection from laser and plasma weapons.", + "type": "armor", + "resistances": { + "ballistic": 5, + "slash": 5, + "laser": 10, + "plasma": 10 + }, + "unit": "dr", + "cost": 5, + "weight": 5 + }, + {"name": "Raider Armor", + "desc": "A set of raider armor, good protection from ballistic damage.", + "type": "armor", + "resistances": { + "ballistic": 5, + "slash": 3, + "laser": 2, + "plasma": 2 + }, + "unit": "dr", + "cost": 5, + "weight": 5 + }, + {"name": "Metal Armor" , + "desc": "A set of raider armor, better protection from ballistic and slash damage.", + "type": "armor", + "resistances": { + "ballistic": 10, + "slash": 10, + "laser": 5, + "plasma": 5 + }, + "unit": "dr", + "cost": 5, + "weight": 5 + }, + {"name": "Combat Armor", + "desc": "A set of combat armor, better protection from all damage types.", + "type": "armor", + "resistances": { + "ballistic": 10, + "slash": 10, + "laser": 10, + "plasma": 10 + }, + "unit": "dr", + "cost": 5, + "weight": 5 + }, + {"name": "Centurion Armor", + "desc": "A set of Centurion armor, great protection from ballistic damage.", + "type": "armor", + "resistances": { + "ballistic": 10, + "slash": 10, + "laser": 10, + "plasma": 10 + }, + "unit": "dr", + "cost": 25, + "weight": 25 + }, + {"name": "NCR Ranger Armor" , + "desc": "A set of NCR Ranger armor, great protection from laser and plasma weapons", + "type": "armor", + "resistances": { + "ballistic": 10, + "slash": 10, + "laser": 10, + "plasma": 10 + }, + "unit": "dr", + "cost": 30, + "weight": 30 + }, + {"name": "T-45 Power Armor", + "desc": "A set of T-45 Power Armor, protects against all damage types.", + "type": "parmor", + "resistances": { + "ballistic": 15, + "slash": 15, + "laser": 15, + "plasma": 15 + }, + "unit": "dt", + "cost": 5, + "weight": 5 + }, + {"name": "T-60 Power Armor", + "desc": "A set of T-60 Power Armor, good protection from all damage types.", + "type": "parmor", + "resistances": { + "ballistic": 25, + "slash": 25, + "laser": 25, + "plasma": 25 + }, + "unit": "dt", + "cost": 5, + "weight": 5} +, + {"name": "T-65 Power Armor", + "desc": "A set of T-60 Power Armor, great protection from all damage types.", + "type": "parmor", + "resistances": { + "ballistic": 35, + "slash": 35, + "laser": 35, + "plasma": 35 + }, + "unit": "dt", + "cost": 5, + "weight": 5 + }, + {"name": "X-01 Power Armor", + "desc": "X-01 Power Armor, good protection from energy damage.", + "type": "parmor", + "resistances": { + "ballistic": 10, + "slash": 10, + "laser": 30, + "plasma": 30 + }, + "unit": "dt", + "cost": 5, + "weight": 5 + }, + {"name": "APA MkI Power Armor", + "desc": "APA MkI Power Armor, great protection from energy damage.", + "type": "parmor", + "resistances": { + "ballistic": 20, + "slash": 20, + "laser": 40, + "plasma": 40 + }, + "unit": "dt", + "cost": 5, + "weight": 5 + }, + {"name": "APA MkII Power Armor", + "desc": "APA MkII Power Armor, excellent protection from energy damage.", + "type": "parmor", + "resistances": { + "ballistic": 30, + "slash": 30, + "laser": 50, + "plasma": 50 + }, + "unit": "dt", + "cost": 5, + "weight": 5 + }, + {"name": "Raider Power Armor", + "desc": "Raider Power Armor, good protection from ballistic damage.", + "type": "parmor", + "resistances": { + "ballistic": 30, + "slash": 30, + "laser": 10, + "plasma": 10 + }, + "unit": "dt", + "cost": 5, + "weight": 5 + }, + {"name": "Ultracite Power Armor", + "desc": "Ultracite Power Armor, great protection from ballistic damage.", + "type": "parmor", + "resistances": { + "ballistic": 40, + "slash": 40, + "laser": 20, + "plasma": 20 + }, + "unit": "dt", + "cost": 5, + "weight": 5 + }, + {"name": "T-51 Power Armor", + "desc": "T-51 Power Armor, excellent protection from ballistic damage.", + "type": "parmor", + "resistances": { + "ballistic": 50, + "slash": 50, + "laser": 30, + "plasma": 30 + }, + "unit": "dt", + "cost": 5, + "weight": 5 + }, + {"name": "Enclave Uniform", + "desc": "Enclave uniform, standard issue", + "type": "armor", + "resistances": { + "ballistic": 0, + "slash": 0, + "laser": 0, + "plasma": 0 + }, + "unit": "dr", + "cost": 20, + "weight": 20 + }, + {"name": "Excavator Power Armor", + "desc": "Excavator Power Armor, +25% Chance to find extra loot", + "type": "parmor", + "resistances": { + "ballistic": 5, + "slash": 5, + "laser": 5, + "plasma": 5 + }, + "unit": "dt", + "cost": 5, + "weight": 5 } ] \ No newline at end of file diff --git a/src/main/resources/items.json b/src/main/resources/items.json new file mode 100644 index 0000000..b2e812a --- /dev/null +++ b/src/main/resources/items.json @@ -0,0 +1,10 @@ +[ + { + "name": "Food", + "desc": "Yummy :).", + "weight": 0, + "cost": 0, + "consumable": true, + "aidModifier": "food" + } +] \ No newline at end of file diff --git a/src/main/resources/playerdata.json b/src/main/resources/playerdata.json deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/resources/weapons.json b/src/main/resources/weapons.json index 483b030..af58ee8 100644 --- a/src/main/resources/weapons.json +++ b/src/main/resources/weapons.json @@ -73,7 +73,7 @@ }, { "name": "Hunting Rifle", - "desc": "A hunting rifle, does 15 balistic damage", + "desc": "A hunting rifle, does 15 ballistic damage", "type": "ballistic", "ammo": "308", "dmg": 10,