MacesCommand.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package com.gmail.nossr50.commands.skills;
  2. import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
  3. import com.gmail.nossr50.datatypes.skills.SubSkillType;
  4. import com.gmail.nossr50.locale.LocaleLoader;
  5. import com.gmail.nossr50.mcMMO;
  6. import com.gmail.nossr50.skills.maces.MacesManager;
  7. import com.gmail.nossr50.util.skills.CombatUtils;
  8. import com.gmail.nossr50.util.skills.RankUtils;
  9. import com.gmail.nossr50.util.skills.SkillUtils;
  10. import com.gmail.nossr50.util.text.TextComponentFactory;
  11. import net.kyori.adventure.text.Component;
  12. import org.bukkit.entity.Player;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. import static com.gmail.nossr50.datatypes.skills.SubSkillType.MACES_CRIPPLE;
  16. import static com.gmail.nossr50.datatypes.skills.SubSkillType.MACES_MACES_LIMIT_BREAK;
  17. public class MacesCommand extends SkillCommand {
  18. public MacesCommand() {
  19. super(PrimarySkillType.MACES);
  20. }
  21. String crippleChanceToApply, crippleChanceToApplyLucky, crippleLengthAgainstPlayers, crippleLengthAgainstMobs;
  22. @Override
  23. protected void dataCalculations(Player player, float skillValue) {
  24. if (SkillUtils.canUseSubskill(player, MACES_CRIPPLE)) {
  25. int crippleRank = RankUtils.getRank(player, MACES_CRIPPLE);
  26. crippleLengthAgainstPlayers = String.valueOf(MacesManager.getCrippleTickDuration(true) / 20.0D);
  27. crippleLengthAgainstMobs = String.valueOf(MacesManager.getCrippleTickDuration(false) / 20.0D);
  28. crippleChanceToApply = String.valueOf(mcMMO.p.getAdvancedConfig().getCrippleChanceToApplyOnHit(crippleRank) + "%");
  29. crippleChanceToApplyLucky = String.valueOf(mcMMO.p.getAdvancedConfig().getCrippleChanceToApplyOnHit(crippleRank) * 1.33);
  30. }
  31. }
  32. @Override
  33. protected void permissionsCheck(Player player) {}
  34. @Override
  35. protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
  36. final List<String> messages = new ArrayList<>();
  37. if (SkillUtils.canUseSubskill(player, MACES_MACES_LIMIT_BREAK)) {
  38. messages.add(getStatMessage(MACES_MACES_LIMIT_BREAK,
  39. String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(player,
  40. MACES_MACES_LIMIT_BREAK, 1000))));
  41. }
  42. if (SkillUtils.canUseSubskill(player, MACES_CRIPPLE)) {
  43. messages.add(getStatMessage(MACES_CRIPPLE, crippleChanceToApply)
  44. + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", crippleChanceToApplyLucky) : ""));
  45. messages.add(getStatMessage(true, true, MACES_CRIPPLE,
  46. crippleLengthAgainstPlayers,
  47. crippleLengthAgainstMobs));
  48. }
  49. if (SkillUtils.canUseSubskill(player, SubSkillType.MACES_CRUSH)) {
  50. messages.add(getStatMessage(SubSkillType.MACES_CRUSH,
  51. String.valueOf(mmoPlayer.getMacesManager().getCrushDamage())));
  52. }
  53. return messages;
  54. }
  55. @Override
  56. protected List<Component> getTextComponents(Player player) {
  57. List<Component> textComponents = new ArrayList<>();
  58. TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.MACES);
  59. return textComponents;
  60. }
  61. }