From e27aade87d5764c50c54870c6185457b63dad106 Mon Sep 17 00:00:00 2001 From: Kam Date: Fri, 28 Feb 2025 12:22:26 -0500 Subject: [PATCH] Add Stat Type to Attributes --- .../data/attribute/AttributeDefinition.java | 1 + .../kamkeel/npcs/util/AttributeItemUtil.java | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/kamkeel/npcs/controllers/data/attribute/AttributeDefinition.java b/src/main/java/kamkeel/npcs/controllers/data/attribute/AttributeDefinition.java index 9b316c669..27d928f86 100644 --- a/src/main/java/kamkeel/npcs/controllers/data/attribute/AttributeDefinition.java +++ b/src/main/java/kamkeel/npcs/controllers/data/attribute/AttributeDefinition.java @@ -38,6 +38,7 @@ public class AttributeDefinition { public enum AttributeSection { BASE, MODIFIER, + STATS, INFO, EXTRA; } diff --git a/src/main/java/kamkeel/npcs/util/AttributeItemUtil.java b/src/main/java/kamkeel/npcs/util/AttributeItemUtil.java index 78f0f300a..8b8bcc05a 100644 --- a/src/main/java/kamkeel/npcs/util/AttributeItemUtil.java +++ b/src/main/java/kamkeel/npcs/util/AttributeItemUtil.java @@ -153,6 +153,7 @@ public class AttributeItemUtil { // Lists for non–magic attributes List baseList = new ArrayList<>(); List modifierList = new ArrayList<>(); + List statsList = new ArrayList<>(); List infoList = new ArrayList<>(); List extraList = new ArrayList<>(); @@ -177,6 +178,9 @@ public class AttributeItemUtil { case MODIFIER: modifierList.add(line); break; + case STATS: + statsList.add(line); + break; case INFO: infoList.add(line); break; @@ -192,6 +196,7 @@ public class AttributeItemUtil { // Append sections (adds an empty line before each if not empty) newTooltips.addAll(buildSection(baseList)); newTooltips.addAll(buildSection(modifierList)); + newTooltips.addAll(buildSection(statsList)); newTooltips.addAll(buildSection(infoList)); newTooltips.addAll(buildSection(extraList)); @@ -295,7 +300,19 @@ public class AttributeItemUtil { private static String formatAttributeLine(AttributeDefinition def, AttributeDefinition.AttributeSection section, Float value, String displayName) { String formattedValue = formatFloat(value); - if (section == AttributeDefinition.AttributeSection.MODIFIER || section == AttributeDefinition.AttributeSection.INFO) { + if (section == AttributeDefinition.AttributeSection.STATS) { + String sign = value >= 0 ? "+" : ""; + String color = value >= 0 ? EnumChatFormatting.GREEN.toString() : EnumChatFormatting.RED.toString(); + String valueString = color + sign + formattedValue; + if (def != null && def.getValueType() == AttributeValueType.PERCENT) + valueString += "%"; + valueString += EnumChatFormatting.GRAY; + if (def != null) + displayName = "\u00A7" + def.getColorCode() + displayName; + else + displayName = EnumChatFormatting.AQUA + displayName; + return valueString + " " + displayName; + } else if (section == AttributeDefinition.AttributeSection.MODIFIER || section == AttributeDefinition.AttributeSection.INFO) { String sign = value >= 0 ? "+" : ""; String color = value >= 0 ? EnumChatFormatting.GREEN.toString() : EnumChatFormatting.RED.toString(); String valueString = color + sign + formattedValue;