/** * Object stores information about a character's skills arrays. Firstly, the name of each skill, and secondly the value of each skill. When constructed, a private method is called * which adds any proficiency bonus to each skill and then adds the ability score modifier to each skill. */ public class Skills { // TODO: Prof bonus comes from the class, changes upon certain level thresholds. private final int profBonus = 5; // TODO: Need to verify skills are in correct order. private String[] allSkillsText = {"Acrobatics", "Animal Handling", "Arcana", "Athletics", "Deception", "History", "Insight", "Intimidation", "Investigation", "Medicine", "Nature", "Perception", "Performance", "Persuasion", "Religion", "Sleight of Hand", "Stealth", "Survival"}; private Stats[] stats; private int[] skills; /** * Default constructor for the Skills class. Should be constructed AFTER the user has generated their stats and chosen the skills they are proficient in. * * @param skills * @param stats */ public Skills(int[] skills, Stats[] stats) { this.skills = skills; this.stats = stats; setSkills(); } /** * Adds proficiency bonus to each element of the skills array, and then adds the corresponding AS modifier to each skill. */ private void setSkills() { // TODO: Need to verify these are the correct ability scores for each skill. int[] skillsAbilities = {1, 4, 3, 0, 5, 3, 4, 5, 3, 4, 3, 4, 5, 5, 3, 1, 4}; for (int i = 0; i < allSkillsText.length; i++) { if (skills[i] == 1) { skills[i] = profBonus; } skills[i] += stats[skillsAbilities[i]].getModifier(); } } /** * Returns the value of each skill's score. * * @return int[] skills */ public int[] getSkills() { return skills; } // TODO: Need to implement overloaded method to return one specific skill. public int getSkill(String skill) { return 0; } }