/// <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; }
// ----- ----- ----- ----- ----- 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(); }