2
0

AxesCommand.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. package com.gmail.nossr50.skills.axes;
  2. import com.gmail.nossr50.locale.LocaleLoader;
  3. import com.gmail.nossr50.skills.SkillCommand;
  4. import com.gmail.nossr50.skills.utilities.SkillType;
  5. import com.gmail.nossr50.util.Permissions;
  6. public class AxesCommand extends SkillCommand {
  7. private String critChance;
  8. private String critChanceLucky;
  9. private String bonusDamage;
  10. private String impactDamage;
  11. private String greaterImpactDamage;
  12. private String skullSplitterLength;
  13. private String skullSplitterLengthEndurance;
  14. private boolean canSkullSplitter;
  15. private boolean canCritical;
  16. private boolean canBonusDamage;
  17. private boolean canImpact;
  18. private boolean canGreaterImpact;
  19. public AxesCommand() {
  20. super(SkillType.AXES);
  21. }
  22. @Override
  23. protected void dataCalculations() {
  24. //IMPACT
  25. impactDamage = String.valueOf(1 + (skillValue / Axes.impactIncreaseLevel));
  26. greaterImpactDamage = String.valueOf(Axes.greaterImpactBonusDamage);
  27. //SKULL SPLITTER
  28. String[] skullSplitterStrings = calculateLengthDisplayValues();
  29. skullSplitterLength = skullSplitterStrings[0];
  30. skullSplitterLengthEndurance = skullSplitterStrings[1];
  31. //CRITICAL STRIKES
  32. String[] criticalStrikeStrings = calculateAbilityDisplayValues(Axes.criticalHitMaxBonusLevel, Axes.criticalHitMaxChance);
  33. critChance = criticalStrikeStrings[0];
  34. critChanceLucky = criticalStrikeStrings[1];
  35. //AXE MASTERY
  36. if (skillValue >= Axes.bonusDamageMaxBonusLevel) {
  37. bonusDamage = String.valueOf(Axes.bonusDamageMaxBonus);
  38. }
  39. else {
  40. bonusDamage = String.valueOf(skillValue / Axes.bonusDamageMaxBonusLevel / Axes.bonusDamageMaxBonus);
  41. }
  42. }
  43. @Override
  44. protected void permissionsCheck() {
  45. canSkullSplitter = Permissions.skullSplitter(player);
  46. canCritical = Permissions.criticalHit(player);
  47. canBonusDamage = Permissions.axeBonus(player);
  48. canImpact = Permissions.impact(player);
  49. canGreaterImpact = Permissions.greaterImpact(player);
  50. }
  51. @Override
  52. protected boolean effectsHeaderPermissions() {
  53. return canSkullSplitter || canCritical || canBonusDamage || canImpact || canGreaterImpact;
  54. }
  55. @Override
  56. protected void effectsDisplay() {
  57. luckyEffectsDisplay();
  58. if (canSkullSplitter) {
  59. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Axes.Effect.0"), LocaleLoader.getString("Axes.Effect.1") }));
  60. }
  61. if (canCritical) {
  62. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Axes.Effect.2"), LocaleLoader.getString("Axes.Effect.3") }));
  63. }
  64. if (canBonusDamage) {
  65. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Axes.Effect.4"), LocaleLoader.getString("Axes.Effect.5") }));
  66. }
  67. if (canImpact) {
  68. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Axes.Effect.6"), LocaleLoader.getString("Axes.Effect.7") }));
  69. }
  70. if (canGreaterImpact) {
  71. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Axes.Effect.8"), LocaleLoader.getString("Axes.Effect.9") }));
  72. }
  73. }
  74. @Override
  75. protected boolean statsHeaderPermissions() {
  76. return canSkullSplitter || canCritical || canBonusDamage || canImpact || canGreaterImpact;
  77. }
  78. @Override
  79. protected void statsDisplay() {
  80. if (canBonusDamage) {
  81. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Axes.Ability.Bonus.0"), LocaleLoader.getString("Axes.Ability.Bonus.1", new Object[] {bonusDamage}) }));
  82. }
  83. if (canImpact) {
  84. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Axes.Ability.Bonus.2"), LocaleLoader.getString("Axes.Ability.Bonus.3", new Object[] {impactDamage}) }));
  85. }
  86. if (canGreaterImpact) {
  87. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Axes.Ability.Bonus.4"), LocaleLoader.getString("Axes.Ability.Bonus.5", new Object[] {greaterImpactDamage}) }));
  88. }
  89. if (canCritical) {
  90. if (isLucky) {
  91. player.sendMessage(LocaleLoader.getString("Axes.Combat.CritChance", new Object[] { critChance }) + LocaleLoader.getString("Perks.lucky.bonus", new Object[] { critChanceLucky }));
  92. }
  93. else {
  94. player.sendMessage(LocaleLoader.getString("Axes.Combat.CritChance", new Object[] { critChance }));
  95. }
  96. }
  97. if (canSkullSplitter) {
  98. if (hasEndurance) {
  99. player.sendMessage(LocaleLoader.getString("Axes.Combat.SS.Length", new Object[] { skullSplitterLength }) + LocaleLoader.getString("Perks.activationtime.bonus", new Object[] { skullSplitterLengthEndurance }));
  100. }
  101. else {
  102. player.sendMessage(LocaleLoader.getString("Axes.Combat.SS.Length", new Object[] { skullSplitterLength }));
  103. }
  104. }
  105. }
  106. }