Skip to content

Commit

Permalink
unified the way upgradeable trinkets calculate their upgrade values. …
Browse files Browse the repository at this point in the history
…All now cap out at 3276800 Ink
  • Loading branch information
DaFuqs committed Mar 22, 2023
1 parent b19b71e commit 3e2713d
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 83 deletions.
Binary file modified raw/UpgradeableTrinketsData.xlsx
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -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)
Expand Down Expand Up @@ -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));
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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));
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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<FixedSingleInkStorage> {

/**
* 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
Expand All @@ -35,7 +35,7 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List<Text> 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;
Expand All @@ -51,20 +51,18 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List<Text> 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
Expand All @@ -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
Expand Down

0 comments on commit 3e2713d

Please sign in to comment.