public static void StartScenario(Scenario scenario, bool save) { var players = scenario.Players.Split(',').RemoveNullOrEmpty().Select(id => int.Parse(id)).NullToEmptyList(); Session.MainGame.loadingScreen = new LoadingScreen(); Session.MainGame.loadingScreen.LoadScreenEvent += (sender0, e0) => { var mainGameScreen = new MainGameScreen(); mainGameScreen.InitializationFileName = scenario.Name; if (save) { mainGameScreen.LoadScenarioInInitialization = false; //CurrentScenario. scenario.ScenarioPath;Session.MainGame.mainGameScreen.InitializationFactionIDs = players; // scenario.SelectedFactionIDs; } else { mainGameScreen.LoadScenarioInInitialization = true; mainGameScreen.InitializationFactionIDs = players; //scenario.SelectedFactionIDs;@"GameData/Scenario/" + CurrentScenario.Name + ".mdb"; // CurrentScenario. scenario.ScenarioPath; } mainGameScreen.Initialize(); Session.MainGame.mainGameScreen = mainGameScreen; }; }
public static void StartScenario(Scenario scenario, bool save) { //再加载commondata防止切换mod红字 if (!save) { CommonData.Current = Tools.SimpleSerializer.DeserializeJsonFile <CommonData>(@"Content\Data\Common\CommonData.json", false, false); GameScenario.ProcessCommonData(CommonData.Current); } var players = scenario.Players.Split(',').RemoveNullOrEmpty().Select(id => int.Parse(id)).NullToEmptyList(); Session.MainGame.loadingScreen = new LoadingScreen(save ? "" : "Start", scenario.Name); Session.MainGame.loadingScreen.LoadScreenEvent += (sender0, e0) => { var mainGameScreen = new MainGameScreen(); mainGameScreen.InitializationFileName = scenario.Name; if (save) { mainGameScreen.LoadScenarioInInitialization = false; //CurrentScenario. scenario.ScenarioPath;Session.MainGame.mainGameScreen.InitializationFactionIDs = players; // scenario.SelectedFactionIDs; } else { mainGameScreen.LoadScenarioInInitialization = true; mainGameScreen.InitializationFactionIDs = players; //scenario.SelectedFactionIDs;@"GameData/Scenario/" + CurrentScenario.Name + ".mdb"; // CurrentScenario. scenario.ScenarioPath; } mainGameScreen.Initialize(); Session.MainGame.mainGameScreen = mainGameScreen; mainGameScreen.cloudLayer.Start(); Session.Current.Scenario.AfterInit(); }; }