public void TrainCharacterForFiveYear(Character characterToTrain) { PersonalTrainer trainer = new PersonalTrainer(new ItemLinkFactory()); trainer.OneMonthTrained += TrainerOnOneMonthTrained; trainer.TrainForXNumberOfYears(characterToTrain, 5); TrainingComplete?.Invoke(this, characterToTrain); }
/// <summary> /// Trains a character for one year /// </summary> /// <param name="charactertoTrain"></param> /// <param name="characterArchetype"></param> /// <returns></returns> private static StatisticalResults TrainCharacterFor10Years(global::RNPC.Core.Character charactertoTrain, Archetype characterArchetype) { //ARRANGE var preTrainingQs = charactertoTrain.MyTraits.GetPersonalQualitiesValues(); int numberOfPretrainingValues = charactertoTrain.MyTraits.PersonalValues.Count; Stopwatch timer = new Stopwatch(); timer.Start(); PersonalTrainer trainer = new PersonalTrainer(new ItemLinkFactory()); //ACT trainer.TrainForXNumberOfYears(charactertoTrain, 10); //ASSERT timer.Stop(); int qualitiesModified = 0; int increaseDelta = 0; int decreaseDelta = 0; foreach (var quality in charactertoTrain.MyTraits.GetPersonalQualitiesValues()) { if (quality.Value == preTrainingQs[quality.Key]) { continue; } qualitiesModified++; if (quality.Value > preTrainingQs[quality.Key]) { increaseDelta += quality.Value - preTrainingQs[quality.Key]; } else { decreaseDelta = preTrainingQs[quality.Key] - quality.Value; } } StatisticalResults results = new StatisticalResults { Archetype = characterArchetype.ToString(), YearsofTraining = 10, TrainingTime = timer.ElapsedMilliseconds / 1000, ValuesAdded = charactertoTrain.MyTraits.PersonalValues.Count - numberOfPretrainingValues, QualitiesModified = qualitiesModified, QualityIncrease = increaseDelta, QualityDecrease = decreaseDelta, DecisionTreesModified = GetNumberOfRecentlyChangedDecisionTrees(charactertoTrain.MyName) }; return(results); }