public static AbilityScores UpdateAbilityScores(AbilityScores abilityScores) { AbilityScoreManager abilityScoreRules = new AbilityScoreManager(); abilityScores.Strength = abilityScoreRules.SetStrength(abilityScores.Strength.Value); abilityScores.Dexterity = abilityScoreRules.SetDexterity(abilityScores.Dexterity.Value); abilityScores.Constitution = abilityScoreRules.SetConstitution(abilityScores.Constitution.Value); abilityScores.Intelligence = abilityScoreRules.SetIntelligence(abilityScores.Intelligence.Value); abilityScores.Wisdom = abilityScoreRules.SetWisdom(abilityScores.Wisdom.Value); abilityScores.Charisma = abilityScoreRules.SetCharisma(abilityScores.Charisma.Value); return(abilityScores); }
public static AbilityScores RandomizeAbilityScores(AbilityScores abilityScores, IClass _char = null) { AbilityScoreManager abilityScoreRules = new AbilityScoreManager(); List <int> allRolls = new List <int>(); allRolls.Add(DiceManager.FourDSixDropTheLowest()); allRolls.Add(DiceManager.FourDSixDropTheLowest()); allRolls.Add(DiceManager.FourDSixDropTheLowest()); allRolls.Add(DiceManager.FourDSixDropTheLowest()); allRolls.Add(DiceManager.FourDSixDropTheLowest()); allRolls.Add(DiceManager.FourDSixDropTheLowest()); var orderedList = allRolls.OrderByDescending(x => x); List <AbilityScoreType> primeAdded = new List <AbilityScoreType>(); int orderedI = 0; foreach (var minIndi in _char.MinimumAbilityScoreRequirements) { var thisRoll = orderedList.ElementAt(orderedI); switch (minIndi.Key) { case AbilityScoreType.Strength: abilityScores.Strength = abilityScoreRules.SetStrength(thisRoll); primeAdded.Add(AbilityScoreType.Strength); ++orderedI; break; case AbilityScoreType.Dextarity: abilityScores.Dexterity = abilityScoreRules.SetDexterity(thisRoll); primeAdded.Add(AbilityScoreType.Strength); ++orderedI; break; case AbilityScoreType.Constitution: abilityScores.Constitution = abilityScoreRules.SetConstitution(thisRoll); primeAdded.Add(AbilityScoreType.Strength); ++orderedI; break; case AbilityScoreType.Intelligence: abilityScores.Intelligence = abilityScoreRules.SetIntelligence(thisRoll); primeAdded.Add(AbilityScoreType.Intelligence); ++orderedI; break; case AbilityScoreType.Wisdom: abilityScores.Wisdom = abilityScoreRules.SetWisdom(thisRoll); primeAdded.Add(AbilityScoreType.Wisdom); ++orderedI; break; case AbilityScoreType.Charisma: abilityScores.Charisma = abilityScoreRules.SetCharisma(thisRoll); primeAdded.Add(AbilityScoreType.Charisma); ++orderedI; break; } } List <AbilityScoreType> AllAbilityScores = new List <AbilityScoreType> { AbilityScoreType.Strength, AbilityScoreType.Dextarity, AbilityScoreType.Constitution, AbilityScoreType.Intelligence, AbilityScoreType.Wisdom, AbilityScoreType.Charisma }; foreach (var this_ability in AllAbilityScores) { var thisRoll = orderedList.ElementAt(orderedI); if (!primeAdded.Contains(this_ability)) { switch (this_ability) { case AbilityScoreType.Strength: abilityScores.Strength = abilityScoreRules.SetStrength(thisRoll); ++orderedI; break; case AbilityScoreType.Dextarity: abilityScores.Dexterity = abilityScoreRules.SetDexterity(thisRoll); ++orderedI; break; case AbilityScoreType.Constitution: abilityScores.Constitution = abilityScoreRules.SetConstitution(thisRoll); ++orderedI; break; case AbilityScoreType.Intelligence: abilityScores.Intelligence = abilityScoreRules.SetIntelligence(thisRoll); ++orderedI; break; case AbilityScoreType.Wisdom: abilityScores.Wisdom = abilityScoreRules.SetWisdom(thisRoll); ++orderedI; break; case AbilityScoreType.Charisma: abilityScores.Charisma = abilityScoreRules.SetCharisma(thisRoll); ++orderedI; break; } } } return(abilityScores); }