123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- package com.gmail.nossr50.commands.skills;
- import com.gmail.nossr50.config.Config;
- import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
- import com.gmail.nossr50.datatypes.skills.SubSkillType;
- import com.gmail.nossr50.locale.LocaleLoader;
- import com.gmail.nossr50.skills.taming.Taming;
- import com.gmail.nossr50.util.Permissions;
- import com.gmail.nossr50.util.StringUtils;
- import com.gmail.nossr50.util.TextComponentFactory;
- import net.md_5.bungee.api.chat.TextComponent;
- import org.bukkit.entity.EntityType;
- import org.bukkit.entity.Player;
- import java.util.ArrayList;
- import java.util.List;
- public class TamingCommand extends SkillCommand {
- private String goreChance;
- private String goreChanceLucky;
- private boolean canBeastLore;
- private boolean canGore;
- private boolean canSharpenedClaws;
- private boolean canEnvironmentallyAware;
- private boolean canThickFur;
- private boolean canShockProof;
- private boolean canCallWild;
- private boolean canFastFood;
- private boolean canHolyHound;
- public TamingCommand() {
- super(PrimarySkillType.TAMING);
- }
- @Override
- protected void dataCalculations(Player player, float skillValue, boolean isLucky) {
- if (canGore) {
- String[] goreStrings = calculateAbilityDisplayValues(skillValue, SubSkillType.TAMING_GORE, isLucky);
- goreChance = goreStrings[0];
- goreChanceLucky = goreStrings[1];
- }
- }
- @Override
- protected void permissionsCheck(Player player) {
- canBeastLore = canUseSubskill(player, SubSkillType.TAMING_BEAST_LORE);
- canCallWild = Permissions.callOfTheWild(player, EntityType.HORSE) || Permissions.callOfTheWild(player, EntityType.WOLF) || Permissions.callOfTheWild(player, EntityType.OCELOT);
- canEnvironmentallyAware = canUseSubskill(player, SubSkillType.TAMING_ENVIRONMENTALLY_AWARE);
- canFastFood = canUseSubskill(player, SubSkillType.TAMING_FAST_FOOD_SERVICE);
- canGore = canUseSubskill(player, SubSkillType.TAMING_GORE);
- canSharpenedClaws = canUseSubskill(player, SubSkillType.TAMING_SHARPENED_CLAWS);
- canShockProof = canUseSubskill(player, SubSkillType.TAMING_SHOCK_PROOF);
- canThickFur = canUseSubskill(player, SubSkillType.TAMING_THICK_FUR);
- canHolyHound = canUseSubskill(player, SubSkillType.TAMING_HOLY_HOUND);
- }
- @Override
- protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
- List<String> messages = new ArrayList<String>();
- if (canEnvironmentallyAware) {
- if (skillValue < Taming.environmentallyAwareUnlockLevel) {
- messages.add(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Taming.Ability.Locked.0", Taming.environmentallyAwareUnlockLevel)));
- }
- else {
- messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.0"), LocaleLoader.getString("Taming.Ability.Bonus.1")));
- }
- }
-
- if (canFastFood) {
- if (skillValue < Taming.fastFoodServiceUnlockLevel) {
- messages.add(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Taming.Ability.Locked.4", Taming.fastFoodServiceUnlockLevel)));
- }
- else {
- messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.8"), LocaleLoader.getString("Taming.Ability.Bonus.9", percent.format(Taming.fastFoodServiceActivationChance / 100D))));
- }
- }
-
- if (canGore) {
- messages.add(LocaleLoader.getString("Ability.Generic.Template",
- LocaleLoader.getString("Taming.Combat.Chance.Gore"),
- goreChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", goreChanceLucky) : ""));
- }
-
- if (canHolyHound) {
- if (skillValue < Taming.holyHoundUnlockLevel) {
- messages.add(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Taming.Ability.Locked.5", Taming.holyHoundUnlockLevel)));
- }
- else {
- messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.10"), LocaleLoader.getString("Taming.Ability.Bonus.11")));
- }
- }
- if (canSharpenedClaws) {
- if (skillValue < Taming.sharpenedClawsUnlockLevel) {
- messages.add(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Taming.Ability.Locked.3", Taming.sharpenedClawsUnlockLevel)));
- }
- else {
- messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.6"), LocaleLoader.getString("Taming.Ability.Bonus.7", Taming.sharpenedClawsBonusDamage)));
- }
- }
-
- if (canShockProof) {
- if (skillValue < Taming.shockProofUnlockLevel) {
- messages.add(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Taming.Ability.Locked.2", Taming.shockProofUnlockLevel)));
- }
- else {
- messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.4"), LocaleLoader.getString("Taming.Ability.Bonus.5", Taming.shockProofModifier)));
- }
- }
-
- if (canThickFur) {
- if (skillValue < Taming.thickFurUnlockLevel) {
- messages.add(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Taming.Ability.Locked.1", Taming.thickFurUnlockLevel)));
- }
- else {
- messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.2"), LocaleLoader.getString("Taming.Ability.Bonus.3", Taming.thickFurModifier)));
- }
- }
- return messages;
- }
- @Override
- protected List<TextComponent> getTextComponents(Player player) {
- List<TextComponent> textComponents = new ArrayList<>();
- TextComponentFactory.getSubSkillTextComponents(player, textComponents, this.skill);
- return textComponents;
- }
- }
|