From 47938e8688149316f2aa01576a5fed990965c8d3 Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Sat, 15 Sep 2018 17:03:24 -0700 Subject: [PATCH] Add upgrade incompatibility and negative status to upgrade definition --- .../bloodmagic/core/living/LivingUpgrade.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/wayoftime/bloodmagic/core/living/LivingUpgrade.java b/src/main/java/com/wayoftime/bloodmagic/core/living/LivingUpgrade.java index 8b1a9582..49257d06 100644 --- a/src/main/java/com/wayoftime/bloodmagic/core/living/LivingUpgrade.java +++ b/src/main/java/com/wayoftime/bloodmagic/core/living/LivingUpgrade.java @@ -171,8 +171,18 @@ public class LivingUpgrade { JsonObject json = element.getAsJsonObject(); ResourceLocation id = new ResourceLocation(json.getAsJsonPrimitive("id").getAsString()); List levels = context.deserialize(json.getAsJsonArray("levels"), new TypeToken>(){}.getType()); + boolean negative = json.has("negative") && json.getAsJsonPrimitive("negative").getAsBoolean(); LivingUpgrade upgrade = new LivingUpgrade(id, upgradeLevels -> upgradeLevels.addAll(levels)); + if (negative) + upgrade.asDowngrade(); + + if (json.has("incompatibilities")) { + String[] incompatibilities = context.deserialize(json.getAsJsonArray("incompatibilities"), String[].class); + for (String incompat : incompatibilities) + upgrade.addIncompatibility(new ResourceLocation(incompat)); + } + if (json.has("bonuses")) { Map bonuses = context.deserialize(json.getAsJsonObject("bonuses"), new TypeToken>(){}.getType()); bonuses.forEach((k, v) -> upgrade.withBonusSet(k, numbers -> Collections.addAll(numbers, v)));