TamingCommand.java 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. package com.gmail.nossr50.commands.skills;
  2. import com.gmail.nossr50.commands.SkillCommand;
  3. import com.gmail.nossr50.config.AdvancedConfig;
  4. import com.gmail.nossr50.config.Config;
  5. import com.gmail.nossr50.datatypes.SkillType;
  6. import com.gmail.nossr50.locale.LocaleLoader;
  7. import com.gmail.nossr50.util.Permissions;
  8. import com.gmail.nossr50.util.Skills;
  9. public class TamingCommand extends SkillCommand {
  10. AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
  11. private String goreChance;
  12. private String goreChanceLucky;
  13. private float goreChanceMax = advancedConfig.getGoreChanceMax();
  14. private float goreMaxLevel = advancedConfig.getGoreMaxBonusLevel();
  15. private int fastFoodUnlock = advancedConfig.getFastFoodUnlock();
  16. private float fastFoodChance = advancedConfig.getFastFoodChance();
  17. private int enviromentallyAwareUnlock = advancedConfig.getEnviromentallyAwareUnlock();
  18. private int thickFurUnlock = advancedConfig.getThickFurUnlock();
  19. private int shockProofUnlock = advancedConfig.getShockProofUnlock();
  20. private int sharpenedClawUnlock = advancedConfig.getSharpenedClawsUnlock();
  21. private boolean canBeastLore;
  22. private boolean canGore;
  23. private boolean canSharpenedClaws;
  24. private boolean canEnvironmentallyAware;
  25. private boolean canThickFur;
  26. private boolean canShockProof;
  27. private boolean canCallWild;
  28. private boolean canFastFood;
  29. private boolean lucky;
  30. public TamingCommand() {
  31. super(SkillType.TAMING);
  32. }
  33. @Override
  34. protected void dataCalculations() {
  35. float goreChanceF;
  36. if (skillValue >= goreMaxLevel) goreChanceF = (goreChanceMax);
  37. else goreChanceF = (float) (((double) goreChanceMax / (double) goreMaxLevel) * skillValue);
  38. goreChance = percent.format(goreChanceF / 100D);
  39. if (goreChanceF * 1.3333D >= 100D) goreChanceLucky = percent.format(1D);
  40. else goreChanceLucky = percent.format(goreChanceF * 1.3333D / 100D);
  41. }
  42. @Override
  43. protected void permissionsCheck() {
  44. canBeastLore = Permissions.beastLore(player);
  45. canCallWild = Permissions.callOfTheWild(player);
  46. canEnvironmentallyAware = Permissions.environmentallyAware(player);
  47. canFastFood = Permissions.fastFoodService(player);
  48. canGore = Permissions.gore(player);
  49. canSharpenedClaws = Permissions.sharpenedClaws(player);
  50. canShockProof = Permissions.shockProof(player);
  51. canThickFur = Permissions.thickFur(player);
  52. lucky = Permissions.luckyTaming(player);
  53. }
  54. @Override
  55. protected boolean effectsHeaderPermissions() {
  56. return canBeastLore || canCallWild || canEnvironmentallyAware || canFastFood || canGore || canSharpenedClaws || canShockProof || canThickFur;
  57. }
  58. @Override
  59. protected void effectsDisplay() {
  60. if (lucky) {
  61. String perkPrefix = LocaleLoader.getString("MOTD.PerksPrefix");
  62. player.sendMessage(perkPrefix + LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Perks.lucky.name"), LocaleLoader.getString("Perks.lucky.desc", new Object[] { Skills.localizeSkillName(SkillType.TAMING) }) }));
  63. }
  64. Config configInstance = Config.getInstance();
  65. if (canBeastLore) {
  66. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.0"), LocaleLoader.getString("Taming.Effect.1") }));
  67. }
  68. if (canGore) {
  69. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.2"), LocaleLoader.getString("Taming.Effect.3") }));
  70. }
  71. if (canSharpenedClaws) {
  72. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.4"), LocaleLoader.getString("Taming.Effect.5") }));
  73. }
  74. if (canEnvironmentallyAware) {
  75. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.6"), LocaleLoader.getString("Taming.Effect.7") }));
  76. }
  77. if (canThickFur) {
  78. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.8"), LocaleLoader.getString("Taming.Effect.9") }));
  79. }
  80. if (canShockProof) {
  81. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.10"), LocaleLoader.getString("Taming.Effect.11") }));
  82. }
  83. if (canFastFood) {
  84. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.16"), LocaleLoader.getString("Taming.Effect.17") }));
  85. }
  86. if (canCallWild) {
  87. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.12"), LocaleLoader.getString("Taming.Effect.13") }));
  88. player.sendMessage(LocaleLoader.getString("Taming.Effect.14", new Object[] { configInstance.getTamingCOTWOcelotCost() }));
  89. player.sendMessage(LocaleLoader.getString("Taming.Effect.15", new Object[] { configInstance.getTamingCOTWWolfCost() }));
  90. }
  91. }
  92. @Override
  93. protected boolean statsHeaderPermissions() {
  94. return canEnvironmentallyAware || canFastFood || canGore || canSharpenedClaws || canShockProof || canThickFur;
  95. }
  96. @Override
  97. protected void statsDisplay() {
  98. if (canFastFood) {
  99. if (skillValue < fastFoodUnlock) {
  100. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Taming.Ability.Locked.4", new Object[] { fastFoodUnlock } ) }));
  101. }
  102. else {
  103. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Taming.Ability.Bonus.8"), LocaleLoader.getString("Taming.Ability.Bonus.9", new Object[] { fastFoodChance } ) }));
  104. }
  105. }
  106. if (canEnvironmentallyAware) {
  107. if (skillValue < enviromentallyAwareUnlock) {
  108. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Taming.Ability.Locked.0", new Object[] { enviromentallyAwareUnlock } ) }));
  109. }
  110. else {
  111. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Taming.Ability.Bonus.0"), LocaleLoader.getString("Taming.Ability.Bonus.1") }));
  112. }
  113. }
  114. if (canThickFur) {
  115. if (skillValue < thickFurUnlock) {
  116. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Taming.Ability.Locked.1", new Object[] { thickFurUnlock } ) }));
  117. }
  118. else {
  119. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Taming.Ability.Bonus.2"), LocaleLoader.getString("Taming.Ability.Bonus.3") }));
  120. }
  121. }
  122. if (canShockProof) {
  123. if (skillValue < shockProofUnlock) {
  124. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Taming.Ability.Locked.2", new Object[] { shockProofUnlock } ) }));
  125. }
  126. else {
  127. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Taming.Ability.Bonus.4"), LocaleLoader.getString("Taming.Ability.Bonus.5") }));
  128. }
  129. }
  130. if (canSharpenedClaws) {
  131. if (skillValue < sharpenedClawUnlock) {
  132. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Taming.Ability.Locked.3", new Object[] { sharpenedClawUnlock } ) }));
  133. }
  134. else {
  135. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Taming.Ability.Bonus.6"), LocaleLoader.getString("Taming.Ability.Bonus.7") }));
  136. }
  137. }
  138. if (canGore) {
  139. if (lucky)
  140. player.sendMessage(LocaleLoader.getString("Taming.Combat.Chance.Gore", new Object[] { goreChance }) + LocaleLoader.getString("Perks.lucky.bonus", new Object[] { goreChanceLucky }));
  141. else
  142. player.sendMessage(LocaleLoader.getString("Taming.Combat.Chance.Gore", new Object[] { goreChance }));
  143. }
  144. }
  145. }