TamingCommand.java 4.4 KB

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