From 8a3abf56225ccf6a3aec162341d34e1982fe623b Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 18 May 2024 14:55:41 +0100 Subject: [PATCH] Display the amount of corruption you would gain from casting a spell --- .../java/com/minelittlepony/unicopia/Affinity.java | 2 +- .../unicopia/client/gui/DismissSpellScreen.java | 2 +- .../minelittlepony/unicopia/entity/player/Pony.java | 2 +- .../minelittlepony/unicopia/item/GemstoneItem.java | 11 ++++++++--- src/main/resources/assets/unicopia/lang/en_us.json | 2 ++ 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/minelittlepony/unicopia/Affinity.java b/src/main/java/com/minelittlepony/unicopia/Affinity.java index 724cbdc4..c84e3810 100644 --- a/src/main/java/com/minelittlepony/unicopia/Affinity.java +++ b/src/main/java/com/minelittlepony/unicopia/Affinity.java @@ -45,7 +45,7 @@ public enum Affinity implements StringIdentifiable { } public Text getDisplayName() { - return Text.translatable(getTranslationKey()); + return Text.translatable(getTranslationKey()).formatted(getColor()); } public int getCorruption() { diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/DismissSpellScreen.java b/src/main/java/com/minelittlepony/unicopia/client/gui/DismissSpellScreen.java index 17182cef..8633b6f7 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/DismissSpellScreen.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/DismissSpellScreen.java @@ -194,7 +194,7 @@ public class DismissSpellScreen extends GameGui { tooltip.add(Text.translatable("gui.unicopia.dispell_screen.spell_type", name)); type.traits().appendTooltip(tooltip); tooltip.add(ScreenTexts.EMPTY); - tooltip.add(Text.translatable("gui.unicopia.dispell_screen.affinity", affinity.getDisplayName()).formatted(affinity.getColor())); + tooltip.add(Text.translatable("gui.unicopia.dispell_screen.affinity", affinity.getDisplayName())); tooltip.add(ScreenTexts.EMPTY); tooltip.addAll(TextHelper.wrap(Text.translatable(type.type().getTranslationKey() + ".lore").formatted(affinity.getColor()), 180).toList()); if (spell instanceof TimedSpell timed) { diff --git a/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java b/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java index 5502920a..87a8d8d9 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java @@ -955,7 +955,7 @@ public class Pony extends Living implements Copyable, Update if (spell.getAffinity() == Affinity.BAD && entity.getWorld().random.nextInt(20) == 0) { getCorruption().add(entity.getRandom().nextBetween(1, 10)); } - getCorruption().add((int)spell.getTypeAndTraits().traits().getCorruption() * 10); + getCorruption().add(((int)spell.getTypeAndTraits().traits().getCorruption() * 10) + spell.getTypeAndTraits().type().getAffinity().getCorruption()); setDirty(); } } diff --git a/src/main/java/com/minelittlepony/unicopia/item/GemstoneItem.java b/src/main/java/com/minelittlepony/unicopia/item/GemstoneItem.java index cc2a70cf..3ccf6cae 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/GemstoneItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/GemstoneItem.java @@ -80,15 +80,20 @@ public class GemstoneItem extends Item implements MultiItem, EnchantableItem { super.appendTooltip(stack, world, lines, tooltipContext); if (EnchantableItem.isEnchanted(stack)) { - SpellType key = EnchantableItem.getSpellKey(stack); + CustomisedSpellType type = getSpellEffect(stack); - MutableText line = Text.translatable(key.getTranslationKey() + ".lore").formatted(key.getAffinity().getColor()); + MutableText line = Text.translatable(type.type().getTranslationKey() + ".lore").formatted(type.type().getAffinity().getColor()); if (!InteractionManager.getInstance().getClientSpecies().canCast()) { line = line.formatted(Formatting.OBFUSCATED); } - lines.addAll(TextHelper.wrap(line, 180).toList()); + lines.add(Text.empty()); + float corruption = ((int)type.traits().getCorruption() * 10) + type.type().getAffinity().getCorruption(); + if (corruption != 0) { + lines.add(Text.translatable("affinity.unicopia.when_cast").formatted(Formatting.GRAY)); + lines.add(Text.translatable("affinity.unicopia.corruption", corruption > 0 ? "+" : "-", ItemStack.MODIFIER_FORMAT.format(Math.abs(corruption))).formatted(corruption < 0 ? Formatting.DARK_GREEN : Formatting.RED)); + } } } diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index 717632bd..a6c45570 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -729,6 +729,8 @@ "affinity.unicopia.good": "Good", "affinity.unicopia.bad": "Bad", "affinity.unicopia.neutral": "Neutral", + "affinity.unicopia.when_cast": "When Cast:", + "affinity.unicopia.corruption": " %s%.2f Corruption", "gui.unicopia.trait.label": "Element of %s", "gui.unicopia.trait.group": "\n %s",