diff --git a/src/main/java/dev/micle/totemofreviving/item/TotemItem.java b/src/main/java/dev/micle/totemofreviving/item/TotemItem.java index 838f5a7..cc93dd5 100644 --- a/src/main/java/dev/micle/totemofreviving/item/TotemItem.java +++ b/src/main/java/dev/micle/totemofreviving/item/TotemItem.java @@ -77,6 +77,11 @@ public abstract class TotemItem extends Item { } public static int getTargetCost(ItemStack stack) { + if (!isTotem(stack)) { return -1; } + return !isCostDynamic(stack) ? getRawTargetCost(stack) : + (int)(getRawTargetCost(stack) * getConfig(stack).getChargeCostMultiplier()); + } + private static int getRawTargetCost(ItemStack stack) { if (!isTotem(stack)) { return -1; } return stack.getOrCreateTag().getInt(TAG_TARGET_COST); } @@ -130,6 +135,15 @@ public abstract class TotemItem extends Item { return getConfig(stack).getIsEnabled(); } + public static void validateTargetCost(ItemStack stack, int targetDeaths) { + if (!isTotem(stack)) { return; } + if (isCostDynamic(stack) && getRawTargetCost(stack) != targetDeaths) { + setTargetCost(stack, targetDeaths); + } else if (!isCostDynamic(stack) && getRawTargetCost(stack) != getMaxCharge(stack)) { + setTargetCost(stack, getMaxCharge(stack)); + } + } + @Override @OnlyIn(Dist.CLIENT) @ParametersAreNonnullByDefault