TamingCommand.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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.skills.taming.Taming;
  6. import com.gmail.nossr50.util.Permissions;
  7. import com.gmail.nossr50.util.TextComponentFactory;
  8. import com.gmail.nossr50.util.skills.SkillActivationType;
  9. import net.md_5.bungee.api.chat.TextComponent;
  10. import org.bukkit.entity.EntityType;
  11. import org.bukkit.entity.Player;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. public class TamingCommand extends SkillCommand {
  15. private String goreChance;
  16. private String goreChanceLucky;
  17. private boolean canBeastLore;
  18. private boolean canGore;
  19. private boolean canSharpenedClaws;
  20. private boolean canEnvironmentallyAware;
  21. private boolean canThickFur;
  22. private boolean canShockProof;
  23. private boolean canCallWild;
  24. private boolean canFastFood;
  25. private boolean canHolyHound;
  26. public TamingCommand() {
  27. super(PrimarySkillType.TAMING);
  28. }
  29. @Override
  30. protected void dataCalculations(Player player, float skillValue) {
  31. if (canGore) {
  32. String[] goreStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.TAMING_GORE);
  33. goreChance = goreStrings[0];
  34. goreChanceLucky = goreStrings[1];
  35. }
  36. }
  37. @Override
  38. protected void permissionsCheck(Player player) {
  39. canBeastLore = canUseSubskill(player, SubSkillType.TAMING_BEAST_LORE);
  40. canCallWild = Permissions.callOfTheWild(player, EntityType.HORSE) || Permissions.callOfTheWild(player, EntityType.WOLF) || Permissions.callOfTheWild(player, EntityType.OCELOT);
  41. canEnvironmentallyAware = canUseSubskill(player, SubSkillType.TAMING_ENVIRONMENTALLY_AWARE);
  42. canFastFood = canUseSubskill(player, SubSkillType.TAMING_FAST_FOOD_SERVICE);
  43. canGore = canUseSubskill(player, SubSkillType.TAMING_GORE);
  44. canSharpenedClaws = canUseSubskill(player, SubSkillType.TAMING_SHARPENED_CLAWS);
  45. canShockProof = canUseSubskill(player, SubSkillType.TAMING_SHOCK_PROOF);
  46. canThickFur = canUseSubskill(player, SubSkillType.TAMING_THICK_FUR);
  47. canHolyHound = canUseSubskill(player, SubSkillType.TAMING_HOLY_HOUND);
  48. }
  49. @Override
  50. protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
  51. List<String> messages = new ArrayList<>();
  52. if (canEnvironmentallyAware) {
  53. messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.0"), LocaleLoader.getString("Taming.Ability.Bonus.1")));
  54. }
  55. if (canFastFood) {
  56. messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.8"), LocaleLoader.getString("Taming.Ability.Bonus.9", percent.format(Taming.fastFoodServiceActivationChance / 100D))));
  57. }
  58. if (canGore) {
  59. messages.add(LocaleLoader.getString("Ability.Generic.Template",
  60. LocaleLoader.getString("Taming.Combat.Chance.Gore"),
  61. goreChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", goreChanceLucky) : ""));
  62. }
  63. if (canHolyHound) {
  64. messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.10"), LocaleLoader.getString("Taming.Ability.Bonus.11")));
  65. }
  66. if (canSharpenedClaws) {
  67. messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.6"), LocaleLoader.getString("Taming.Ability.Bonus.7", Taming.sharpenedClawsBonusDamage)));
  68. }
  69. if (canShockProof) {
  70. messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.4"), LocaleLoader.getString("Taming.Ability.Bonus.5", Taming.shockProofModifier)));
  71. }
  72. if (canThickFur) {
  73. messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.2"), LocaleLoader.getString("Taming.Ability.Bonus.3", Taming.thickFurModifier)));
  74. }
  75. return messages;
  76. }
  77. @Override
  78. protected List<TextComponent> getTextComponents(Player player) {
  79. List<TextComponent> textComponents = new ArrayList<>();
  80. TextComponentFactory.getSubSkillTextComponents(player, textComponents, this.skill);
  81. return textComponents;
  82. }
  83. }