summaryrefslogtreecommitdiff
path: root/src/main/java/fyresmodjam/misc/ArmorStatTracker.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/fyresmodjam/misc/ArmorStatTracker.java')
-rw-r--r--src/main/java/fyresmodjam/misc/ArmorStatTracker.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/main/java/fyresmodjam/misc/ArmorStatTracker.java b/src/main/java/fyresmodjam/misc/ArmorStatTracker.java
new file mode 100644
index 0000000..80a8c2a
--- /dev/null
+++ b/src/main/java/fyresmodjam/misc/ArmorStatTracker.java
@@ -0,0 +1,79 @@
+package fyresmodjam.misc;
+
+import java.util.Random;
+
+import fyresmodjam.ModjamMod;
+import net.minecraft.item.ItemBow;
+import net.minecraft.item.ItemStack;
+
+public final class ArmorStatTracker extends ItemStat {
+ public String[][] prefixesByRank = {
+ {
+ "Old", "Broken", "Worn", "Weak"
+ }, {
+ "Average", "Decent", "Modest",
+ "Ordinary"
+ }, {
+ "Polished", "Tough", "Hardened",
+ "Durable"
+ }, {
+ "Elite", "Astonishing",
+ "Reinforced", "Resilient"
+ }, {
+ "Godly", "Divine", "Fabled",
+ "Legendary"
+ }
+ };
+
+ public ArmorStatTracker(String name, Object value) {
+ super(name, value);
+ }
+
+ @Override
+ public Object getNewValue(ItemStack stack, Random r) {
+ int i = 1;
+ for (; i < 5; i++) {
+ if (ModjamMod.r.nextInt(10) < 7) {
+ break;
+ }
+ }
+ return i;
+ }
+
+ @Override
+ public void modifyStack(ItemStack stack, Random r) {
+ int rank = Integer.parseInt(
+ stack.getTagCompound().getString(name));
+ float damageReduction = (rank - 1) + r.nextFloat() * 0.5F;
+
+ ItemStatHelper.giveStat(stack, "DamageReduction",
+ String.format("%.2f", damageReduction));
+ ItemStatHelper.addLore(stack, !String
+ .format("%.2f", damageReduction)
+ .equals("0.00") ? "\u00A77\u00A7o "
+ + (damageReduction > 0
+ ? "+"
+ : "")
+ + String.format("%.2f",
+ damageReduction)
+ + "% damage reduction"
+ : null);
+
+ ItemStatHelper.addLore(stack, "\u00A7eRank: " + rank);
+ }
+
+ @Override
+ public String getAlteredStackName(ItemStack stack, Random r) {
+ String[] list = prefixesByRank[Integer.parseInt(
+ stack.getTagCompound().getString(name))
+ - 1];
+ String prefix = list[r.nextInt(list.length)];
+
+ if (prefix.equals("Sharp")
+ && stack.getItem() instanceof ItemBow) {
+ prefix = "Long";
+ }
+
+ return "\u00A7f" + prefix + " " + stack.getDisplayName();
+ }
+} \ No newline at end of file