diff --git a/raw/UpgradeableTrinketsData.xlsx b/raw/UpgradeableTrinketsData.xlsx index 5bbbc6c8d8..b827c601da 100644 Binary files a/raw/UpgradeableTrinketsData.xlsx and b/raw/UpgradeableTrinketsData.xlsx differ diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeAmuletItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeAmuletItem.java index 876fe40e81..990b403663 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeAmuletItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeAmuletItem.java @@ -1,25 +1,23 @@ package de.dafuqs.spectrum.items.trinkets; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.energy.color.InkColors; -import de.dafuqs.spectrum.energy.storage.FixedSingleInkStorage; -import dev.emi.trinkets.api.SlotReference; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.energy.storage.*; +import dev.emi.trinkets.api.*; +import net.fabricmc.api.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; +import java.util.*; public class AzureDikeAmuletItem extends InkDrainTrinketItem implements AzureDikeItem { public AzureDikeAmuletItem(Settings settings) { - super(settings, SpectrumCommon.locate("progression/unlock_shieldgrasp_amulet"), InkColors.BLUE, 100L * (long) Math.pow(8, 18)); // 20 extra hearts (pretty much unobtainable) + super(settings, SpectrumCommon.locate("progression/unlock_shieldgrasp_amulet"), InkColors.BLUE); } @Environment(EnvType.CLIENT) @@ -72,7 +70,7 @@ public int getDike(long storedInk) { if (storedInk < 100) { return 0; } else { - return 2 + (int) (Math.log(storedInk / 100) / Math.log(8)); + return 1 + (int) (Math.log(storedInk / 100) / Math.log(8)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraHealthRingItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraHealthRingItem.java index 36ef9623f6..013f2aef15 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraHealthRingItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraHealthRingItem.java @@ -1,29 +1,25 @@ package de.dafuqs.spectrum.items.trinkets; -import com.google.common.collect.Multimap; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.energy.color.InkColors; -import de.dafuqs.spectrum.energy.storage.FixedSingleInkStorage; -import dev.emi.trinkets.api.SlotReference; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.attribute.EntityAttribute; -import net.minecraft.entity.attribute.EntityAttributeModifier; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import com.google.common.collect.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.energy.storage.*; +import dev.emi.trinkets.api.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.*; +import net.minecraft.entity.attribute.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; -import java.util.UUID; +import java.util.*; public class ExtraHealthRingItem extends InkDrainTrinketItem { public ExtraHealthRingItem(Settings settings) { - super(settings, SpectrumCommon.locate("progression/unlock_heartsingers_reward"), InkColors.PINK, 13421772800L); // 20 extra hearts + super(settings, SpectrumCommon.locate("progression/unlock_heartsingers_reward"), InkColors.PINK); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraReachGlovesItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraReachGlovesItem.java index 3d460eceaf..82a02ec43f 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraReachGlovesItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraReachGlovesItem.java @@ -1,29 +1,26 @@ package de.dafuqs.spectrum.items.trinkets; -import com.google.common.collect.Multimap; -import com.jamieswhiteshirt.reachentityattributes.ReachEntityAttributes; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.energy.color.InkColors; -import de.dafuqs.spectrum.energy.storage.FixedSingleInkStorage; -import dev.emi.trinkets.api.SlotReference; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.attribute.EntityAttribute; -import net.minecraft.entity.attribute.EntityAttributeModifier; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import com.google.common.collect.*; +import com.jamieswhiteshirt.reachentityattributes.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.energy.storage.*; +import dev.emi.trinkets.api.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.*; +import net.minecraft.entity.attribute.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; -import java.util.UUID; +import java.util.*; public class ExtraReachGlovesItem extends InkDrainTrinketItem { public ExtraReachGlovesItem(Settings settings) { - super(settings, SpectrumCommon.locate("progression/unlock_gloves_of_dawns_grasp"), InkColors.LIGHT_BLUE, 1677721600); // 5 blocks of extra reach + super(settings, SpectrumCommon.locate("progression/unlock_gloves_of_dawns_grasp"), InkColors.LIGHT_BLUE); } @Override @@ -51,7 +48,7 @@ public double getExtraReach(long storedInk) { if (storedInk < 100) { return 0; } else { - return 1 + roundHalf(Math.log(storedInk / 100) / Math.log(64)); + return 0.5 + roundHalf(Math.log(storedInk / 100) / Math.log(64)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/InkDrainTrinketItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/InkDrainTrinketItem.java index 752fcccf2d..2ef0ad15c8 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/InkDrainTrinketItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/InkDrainTrinketItem.java @@ -1,31 +1,31 @@ package de.dafuqs.spectrum.items.trinkets; -import de.dafuqs.spectrum.energy.InkStorageItem; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.energy.storage.FixedSingleInkStorage; -import de.dafuqs.spectrum.helpers.Support; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; -import net.minecraft.util.Identifier; -import net.minecraft.util.Rarity; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.energy.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.energy.storage.*; +import de.dafuqs.spectrum.helpers.*; +import net.minecraft.client.item.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; +import java.util.*; public class InkDrainTrinketItem extends SpectrumTrinketItem implements InkStorageItem { + /** + * TODO: set to the original value again, once ink networking is in. Currently the original max value cannot be achieved. + * Players WILL grind out that amount of pigment in some way and will then complain + */ + public static final int MAX_INK = 3276800; // 1677721600; public final InkColor inkColor; - public final long maxInk; - public InkDrainTrinketItem(Settings settings, Identifier unlockIdentifier, InkColor inkColor, long maxInk) { + public InkDrainTrinketItem(Settings settings, Identifier unlockIdentifier, InkColor inkColor) { super(settings, unlockIdentifier); this.inkColor = inkColor; - this.maxInk = maxInk; } @Override @@ -35,7 +35,7 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List too FixedSingleInkStorage inkStorage = getEnergyStorage(stack); long storedInk = inkStorage.getEnergy(inkStorage.getStoredColor()); - if (storedInk == maxInk) { + if (storedInk >= MAX_INK) { tooltip.add(new TranslatableText("spectrum.tooltip.ink_drain.tooltip.maxed_out").formatted(Formatting.GRAY)); } else { long nextStepInk; @@ -51,20 +51,18 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List too @Override public boolean hasGlint(ItemStack stack) { + return isMaxedOut(stack); + } + + private boolean isMaxedOut(ItemStack stack) { FixedSingleInkStorage inkStorage = getEnergyStorage(stack); long storedInk = inkStorage.getEnergy(inkStorage.getStoredColor()); - return storedInk == maxInk; + return storedInk >= MAX_INK; } @Override public Rarity getRarity(ItemStack stack) { - FixedSingleInkStorage inkStorage = getEnergyStorage(stack); - long storedInk = inkStorage.getEnergy(inkStorage.getStoredColor()); - if (storedInk == maxInk) { - return Rarity.EPIC; - } else { - return super.getRarity(stack); - } + return isMaxedOut(stack) ? Rarity.EPIC : super.getRarity(stack); } // Omitting this would crash outside the dev env o.O @@ -84,7 +82,7 @@ public FixedSingleInkStorage getEnergyStorage(ItemStack itemStack) { if (compound != null && compound.contains("EnergyStore")) { return FixedSingleInkStorage.fromNbt(compound.getCompound("EnergyStore")); } - return new FixedSingleInkStorage(maxInk, inkColor); + return new FixedSingleInkStorage(MAX_INK, inkColor); } @Override