AcrobaticsCommand.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package com.gmail.nossr50.commands.skills;
  2. import java.text.DecimalFormat;
  3. import org.bukkit.ChatColor;
  4. import com.gmail.nossr50.commands.SkillCommand;
  5. import com.gmail.nossr50.config.AdvancedConfig;
  6. import com.gmail.nossr50.datatypes.SkillType;
  7. import com.gmail.nossr50.locale.LocaleLoader;
  8. import com.gmail.nossr50.util.Permissions;
  9. public class AcrobaticsCommand extends SkillCommand {
  10. AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
  11. private String dodgeChance;
  12. private String rollChance;
  13. private String gracefulRollChance;
  14. private float dodgeChanceMax = advancedConfig.getDodgeChanceMax();
  15. private float dodgeMaxBonusLevel = advancedConfig.getDodgeMaxBonusLevel();
  16. private float rollChanceMax = advancedConfig.getRollChanceMax();
  17. private float rollMaxBonusLevel = advancedConfig.getRollMaxBonusLevel();
  18. private float gracefulRollChanceMax = advancedConfig.getGracefulRollChanceMax();
  19. private float gracefulRollMaxBonusLevel = advancedConfig.getGracefulRollMaxBonusLevel();
  20. private boolean canDodge;
  21. private boolean canRoll;
  22. private boolean canGracefulRoll;
  23. private boolean lucky;
  24. public AcrobaticsCommand() {
  25. super(SkillType.ACROBATICS);
  26. }
  27. @Override
  28. protected void dataCalculations() {
  29. DecimalFormat df = new DecimalFormat("0.0");
  30. // DODGE
  31. if(skillValue >= dodgeMaxBonusLevel) dodgeChance = df.format(dodgeChanceMax);
  32. else dodgeChance = df.format(((double) dodgeChanceMax / (double) dodgeMaxBonusLevel) * skillValue);
  33. // ROLL
  34. if(skillValue >= rollMaxBonusLevel) rollChance = df.format(rollChanceMax);
  35. else rollChance = df.format(((double) rollChanceMax / (double) rollMaxBonusLevel) * skillValue);
  36. // GRACEFULROLL
  37. if(skillValue >= gracefulRollMaxBonusLevel) gracefulRollChance = df.format(gracefulRollChanceMax);
  38. else gracefulRollChance = df.format(((double) gracefulRollChanceMax / (double) gracefulRollMaxBonusLevel) * skillValue);
  39. }
  40. @Override
  41. protected void permissionsCheck() {
  42. canDodge = Permissions.dodge(player);
  43. canRoll = Permissions.roll(player);
  44. canGracefulRoll = Permissions.gracefulRoll(player);
  45. lucky = Permissions.luckyAcrobatics(player);
  46. }
  47. @Override
  48. protected boolean effectsHeaderPermissions() {
  49. return canDodge || canGracefulRoll || canRoll;
  50. }
  51. @Override
  52. protected void effectsDisplay() {
  53. if (lucky) {
  54. String perkPrefix = ChatColor.RED + "[mcMMO Perks] ";
  55. player.sendMessage(perkPrefix + LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Perks.lucky.name"), LocaleLoader.getString("Perks.lucky.desc", new Object[] { "Acrobatics" }) }));
  56. }
  57. if (canRoll) {
  58. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Acrobatics.Effect.0"), LocaleLoader.getString("Acrobatics.Effect.1") }));
  59. }
  60. if (canGracefulRoll) {
  61. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Acrobatics.Effect.2"), LocaleLoader.getString("Acrobatics.Effect.3") }));
  62. }
  63. if (canDodge) {
  64. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Acrobatics.Effect.4"), LocaleLoader.getString("Acrobatics.Effect.5") }));
  65. }
  66. }
  67. @Override
  68. protected boolean statsHeaderPermissions() {
  69. return canDodge || canGracefulRoll || canRoll;
  70. }
  71. @Override
  72. protected void statsDisplay() {
  73. if (canRoll) {
  74. player.sendMessage(LocaleLoader.getString("Acrobatics.Roll.Chance", new Object[] { rollChance }));
  75. }
  76. if (canGracefulRoll) {
  77. player.sendMessage(LocaleLoader.getString("Acrobatics.Roll.GraceChance", new Object[] { gracefulRollChance }));
  78. }
  79. if (canDodge) {
  80. player.sendMessage(LocaleLoader.getString("Acrobatics.DodgeChance", new Object[] { dodgeChance }));
  81. }
  82. }
  83. }