diff options
Diffstat (limited to 'src/main/java/fyresmodjam/misc/ArmorStatTracker.java')
| -rw-r--r-- | src/main/java/fyresmodjam/misc/ArmorStatTracker.java | 79 |
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 |
