public void SetLevel1HitPoints() { var constitutionModifier = (int)AbilityScores.getAbilityScoreModifier(AbilityScores.GetConstitutionScore()); switch (ClassDetails.Name) { default: throw new Exception("invalid characterClass provided"); case "Barbarian": HitPoints = 12 + constitutionModifier; break; case "Bard": HitPoints = 8 + constitutionModifier; break; case "Cleric": HitPoints = 8 + constitutionModifier; break; case "Druid": HitPoints = 8 + constitutionModifier; break; case "Fighter": HitPoints = 10 + constitutionModifier; break; case "Monk": HitPoints = 8 + constitutionModifier; break; case "Paladin": HitPoints = 10 + constitutionModifier; break; case "Ranger": HitPoints = 10 + constitutionModifier; break; case "Rogue": HitPoints = 8 + constitutionModifier; break; case "Sorcerer": HitPoints = 6 + constitutionModifier; break; case "Warlock": HitPoints = 8 + constitutionModifier; break; case "Wizard": HitPoints = 6 + constitutionModifier; break; } // The Hill Dwarf subrace hit point maximum increases by 1 if (this.RaceDetails.SubRace == "Hill Dwarf") { HitPoints += 1; } // Sorcerer Draconic Ancestry if (this.ClassDetails.SorcerousOrigin == "Draconic") { HitPoints += 1; } }
public void SetSkillsAndSavingThrows() { // SKILLS var Intelligence = (int)AbilityScores.getAbilityScoreModifier(AbilityScores.GetIntelligenceScore()); var Strength = (int)AbilityScores.getAbilityScoreModifier(AbilityScores.GetStrengthScore()); var Constitution = (int)AbilityScores.getAbilityScoreModifier(AbilityScores.GetConstitutionScore()); var Dexterity = (int)AbilityScores.getAbilityScoreModifier(AbilityScores.GetDexterityScore()); var Wisdom = (int)AbilityScores.getAbilityScoreModifier(AbilityScores.GetWisdomScore()); var Charisma = (int)AbilityScores.getAbilityScoreModifier(AbilityScores.GetCharismaScore()); var skillAndMods = new Dictionary <string, int>(); skillAndMods["athletics"] = Strength; skillAndMods["acrobatics"] = Dexterity; skillAndMods["sleightOfHand"] = Dexterity; skillAndMods["arcana"] = Intelligence; skillAndMods["stealth"] = Dexterity; skillAndMods["history"] = Intelligence; skillAndMods["nature"] = Intelligence; skillAndMods["religion"] = Intelligence; skillAndMods["animalHandling"] = Wisdom; skillAndMods["insight"] = Wisdom; skillAndMods["medicine"] = Wisdom; skillAndMods["perception"] = Wisdom; skillAndMods["survival"] = Wisdom; skillAndMods["deception"] = Charisma; skillAndMods["intimidation"] = Charisma; skillAndMods["investigation"] = Intelligence; skillAndMods["performance"] = Charisma; skillAndMods["persuasion"] = Charisma; // Add prof bonus var profBonuses = ClassDetails.GetProficiencies()["Skills"]; foreach (var skill in profBonuses) { if (skillAndMods.ContainsKey(skill)) { skillAndMods[skill] += ClassDetails.GetProficiencyBonus(); } } Skills = skillAndMods; // SAVING THROWS var savingThrowProfs = ClassDetails.GetProficiencies()["Saving Throws"]; var savingThrows = new Dictionary <string, int>() { { "Strength", Strength }, { "Dexterity", Dexterity }, { "Constitution", Constitution }, { "Intelligence", Intelligence }, { "Wisdom", Wisdom }, { "Charisma", Charisma } }; foreach (var savingThrow in savingThrowProfs) { if (skillAndMods.ContainsKey(savingThrow)) { savingThrows[savingThrow] += ClassDetails.GetProficiencyBonus(); } } SavingThrows = savingThrows; }