public Game(Logger logger, int numCharacters) { debugLogger = logger; eventManager = new EventManager(); roomManager = new RoomManager(); infoManager = new InformationManager(); modifierManager = new ModifierManager(); jobManager = new JobManager(); cvManager = new CharacterVisualizationManager(); random = new Random(); CurrentTime = 0; maleNames = File.ReadAllLines("Names/male_names.txt"); femaleNames = File.ReadAllLines("Names/female_names.txt"); dynasties = new Dictionary<string, Dynasty>(); familyNames = File.ReadAllLines("Names/family_names.txt"); foreach (var fam in familyNames) { dynasties.Add(fam, new Dynasty(fam)); } Counter<string> badTags = new Counter<string>(); //Go load all the xml files in our events directory. foreach (var file in Directory.EnumerateFiles("Events", "*.xml")) { eventManager.LoadEventsFromFile(file, badTags); } //Go load all the xml files in our actions directory. foreach (var file in Directory.EnumerateFiles("Actions", "*.xml")) { eventManager.LoadActionsFromFile(file, badTags); } //Look for errors in the events and actions eventManager.Verify(); //Go load all the xml files in our rooms directory. foreach (var file in Directory.EnumerateFiles("Rooms", "*.xml")) { roomManager.LoadRoomsFromFile(file, badTags); } //Go load all the xml files in our information directory. foreach (var file in Directory.EnumerateFiles("Informations", "*.xml")) { infoManager.LoadInformationsFromFile(file, badTags); } //Go load all the xml files in our traits directory. foreach (var file in Directory.EnumerateFiles("Traits", "*.xml")) { modifierManager.LoadTraitsFromFile(file, badTags); } //Go load all the xml files in our modifiers directory. foreach (var file in Directory.EnumerateFiles("Modifiers", "*.xml")) { modifierManager.LoadModifiersFromFile(file, badTags); } //Go load all the xml files in our jobs directory. foreach (var file in Directory.EnumerateFiles("Jobs", "*.xml")) { jobManager.LoadJobsFromFile(file, badTags); } cvManager.LoadFromDirectory("Graphics/Portraits_2", badTags); foreach (var pair in badTags) { Log(string.Format("Found unhandled xml tag <{0}> {1} times.", pair.Key, pair.Value)); } CommonRooms = roomManager.GetCommonRooms(); for (int iCharacter = 0; iCharacter < numCharacters; ++iCharacter) { characters.Add(GetRandomAICharacter()); } OrderCharacters(); jobManager.InitializeJobs(characters, this); }