Example #1
0
        /// <summary>
        /// マネージャ作成
        /// </summary>
        public ReignManager Create()
        {
            var uniques = new UniqueUnitCollection(
                _root.SelectedGame.Units,
                (id, units) => new Unit(units.Single(u => u.ID == id)));
            var provinces = CreateProvinces(uniques);
            var areas = CreateAreas(provinces);

            var map = new WorldMap(areas, _data.WorldMap);
            int level = _root.Level;
            int turn = _root.SelectedScenario.StartTurn;

            var gPath = _root.Pairs[_root.GameIndex].Loader.GameDirPath;

            var script = new ScriptLoader().Load(
                Path.Combine(gPath, Path.Combine("Data", "EventScript")),
                _root.SelectedGame.Units);

            var manager = new ReignManager(map, provinces, level, turn, _root.ScenarioIndex + 1) {
                UnitsData = _root.SelectedGame.Units,
                Script = script,
                Callable = _data.Callables,
                GamePath = gPath,
            };
            SetLeague(manager.League);
            return manager;
        }
Example #2
0
        // ----- ----- ----- ----- ----- METHOD ----- ----- ----- ----- -----
        public ReignManager(WorldMap map, IList<Province> provinces, int level, int startTurn, int scenarioNo)
        {
            Contract.Requires(map != null, "map");
            Contract.Requires(provinces != null, "provinces");
            Contract.Requires(1 <= level && level <= 5, "level");
            Contract.Requires(startTurn > 0, "turn");

            _worldMap = map;
            _liveProvs = provinces;
            Level = level;
            _turn = startTurn;
            StartTurn = startTurn;
            ScenarioNo = scenarioNo;

            _provinces = new Province[provinces.Count];
            for (int i = 0; i < _provinces.Count; i++)
                _provinces[i] = provinces[i];

            // 参加してないマスターを排除
            this.ProvinceDieCheck();
            this.DiedProvCache.Clear();
        }