Beispiel #1
0
        public void AssignsAnAgeToACharacterBasedOnClassAndMaturity()
        {
            var cls      = ClassDevelopmentAge.Young;
            var maturity = new Maturity();

            maturity.Adulthood = 15;
            maturity.Young     = DiceStrings.ParseDice("1d4");

            var assignAges = new AssignAge();
            var age        = assignAges.RandomAge(cls, maturity);

            Assert.GreaterOrEqual(age, 16);
            Assert.LessOrEqual(age, 19);
        }
Beispiel #2
0
        /// <summary>
        /// Selects the class for the character
        /// </summary>
        /// <returns>The class that was selected.</returns>
        /// <param name="character">Character to assign class to.</param>
        public CharacterSheet SelectClass(CharacterSheet character)
        {
            character.SetClass(this.classGateway.All().ToList().ChooseOne());
            var hp = new HitPointGenerator();

            character.SetHitPoints(hp.RollHitPoints(character));

            // Assign Age based on class
            var assignAge = new AssignAge();

            character.Age = assignAge.RandomAge(character.Class.ClassDevelopmentAge, maturityGateway.Get(character.Race));

            // Figure out how this class came about
            var classOrigin = new ClassOriginStoryCreator(new ClassOriginYamlGateway());

            character.History.ClassOriginStory = classOrigin.CreateStory(character.Class.Name);

            return(character);
        }