diff options
Diffstat (limited to 'src/main/java/fyresmodjam/misc/WeaponRankStat.java')
| -rw-r--r-- | src/main/java/fyresmodjam/misc/WeaponRankStat.java | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/main/java/fyresmodjam/misc/WeaponRankStat.java b/src/main/java/fyresmodjam/misc/WeaponRankStat.java new file mode 100644 index 0000000..e844dc2 --- /dev/null +++ b/src/main/java/fyresmodjam/misc/WeaponRankStat.java @@ -0,0 +1,83 @@ +package fyresmodjam.misc; + +import java.util.Random; + +import fyresmodjam.ModjamMod; +import net.minecraft.item.ItemBow; +import net.minecraft.item.ItemStack; + +public final class WeaponRankStat extends ItemStat { + /* + * @formatter:off + */ + public String[][] prefixesByRank = { + { + "Old", "Dull", "Broken", "Worn" + }, + { + "Average", "Decent", "Modest", "Ordinary" + }, + { + "Strong", "Sharp", "Polished", "Refined" + }, + { + "Powerful", "Ruthless", "Elite", "Astonishing" + }, + { + "Godly", "Divine", "Fabled", "Legendary" + } + }; + /* + * @formatter:on + */ + public WeaponRankStat(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 bonusDamage = ((float) rank - 1) / 2 + + (r.nextInt(rank + 1) * r.nextFloat()); + + ItemStatHelper.giveStat(stack, "BonusDamage", + String.format("%.2f", bonusDamage)); + ItemStatHelper.addLore(stack, !String.format("%.2f", + bonusDamage) + .equals("0.00") ? "\u00A77\u00A7o " + + (bonusDamage > 0 ? "+" + : "") + + String.format("%.2f", + bonusDamage) + + " bonus damage" : 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 |
