package de.tobiyas.racesandclasses.traitcontainer.interfaces.markerinterfaces; import java.util.List; import org.bukkit.inventory.ItemStack; public interface SkillTreeTrait { /** * The cost for SkillPoints */ public static final String SKILL_LEVELS_CONFIG_PATH = "skillLevelsConfig"; /** * The MAX-Level for a Skill. */ public static final String SKILL_TREE_MAX_LEVEL_PATH = "skillTreeMaxLevel"; /** * If the Skill is a permanent Trait. */ public static final String SKILL_TREE_PERMANENT_TRAIT_PATH= "permanentTrait"; /** * The slot for the SkillTree. */ public static final String SKILL_TREE_SLOT_PATH = "skillTreeSlot"; /** * The material for the SkillTree. */ public static final String SKILL_TREE_MATERIAL_PATH = "skillTreeMaterial"; /** * The damage value for the SkillTree. */ public static final String SKILL_TREE_DAMAGE_PATH = "skillTreeDamage"; /** * The which other skills to exclude with this one. */ public static final String SKILL_TREE_EXCLUDE_OTHERS_PATH = "skillTreeExcludeOthers"; /** * The Name for the skill tree. */ public static final String SKILL_TREE_NAME = "skillTreeName"; /** * Returns the cost for this skill * @return the cost to choose this skill. */ public int getSkillPointCost(int level); /** * @return true if the Player ALWAYS has this spell. */ public boolean isPermanentSkill(); /** * @return the slot in the skill-tree gui. */ public int getSkillTreePlace(); /** * @return the slot in the skill-tree gui. */ public ItemStack getSkillTreeSymbol(); /** * @return the Prequisits for the Skill-Tree. As trait names. */ public List<String> getSkillTreePrequisits(int level); /** * Returns the max level for the Skill. */ public int getSkillMaxLevel(); /** * Gets the Min level to learn this skill. * @param level to check * @return the level to learn. */ public int getSkillMinLevel(int level); /** * @return the name of the skill tree. */ public String getSkillTreeName(); /** * Gets the Traits this Trait excludes * @return the traits this trait excludes. */ public List<String> getExcludesOtherTraits(); }