Ejemplo n.º 1
0
        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);
        }