Finished handlers
This commit is contained in:
parent
43174bc73f
commit
7f821d7723
16 changed files with 621 additions and 42 deletions
|
|
@ -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");
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue