private void SetupSteps(GameHandlerMetadata metadataSelected) { KillCurrentStep(); if (handlerDataManager != null) { // dispose handlerDataManager.Dispose(); handlerDataManager = null; } selectedHandler = metadataSelected; handlerDataManager = GameManager.Instance.PackageManager.ReadHandlerDataFromInstalledPackage(selectedHandler); handlerData = handlerDataManager.HandlerData; BrowserBtns.SetPlayButtonState(false); stepsList = new List <UserInputControl>(); stepsList.Add(positionsControl); stepsList.Add(optionsControl); if (handlerData.CustomSteps != null) { for (int i = 0; i < handlerData.CustomSteps.Count; i++) { stepsList.Add(jsControl); } } currentProfile = new GameProfile(); currentProfile.InitializeDefault(handlerData); MainForm.Instance.ChangeGameInfo(userGame); }
public bool Initialize(HandlerDataManager handlerManager, UserGameInfo userGameInfo, GameProfile profile) { this._handlerManager = handlerManager; this._userGame = userGameInfo; this._profile = profile; modules = new List <HandlerModule>(); foreach (ModuleInfo info in GameManager.Instance.ModuleManager.Modules) { if (info.IsNeeded(handlerManager.HandlerData)) { modules.Add((HandlerModule)Activator.CreateInstance(info.ModuleType)); } } // order modules modules = modules.OrderBy(c => c.Order).ToList(); for (int i = 0; i < modules.Count; i++) { modules[i].Initialize(this, handlerManager.HandlerData, userGameInfo, profile); } return(true); }
private void combo_Handlers_SelectedIndexChanged(object sender, EventArgs e) { if (combo_Handlers.SelectedIndex == -1) { return; } KillCurrentStep(); if (handlerDataManager != null) { // dispose handlerDataManager.Dispose(); handlerDataManager = null; } try { selectedHandler = currentHandlers[combo_Handlers.SelectedIndex]; handlerDataManager = gameManager.RepoManager.ReadHandlerDataFromInstalledPackage(selectedHandler); handlerData = handlerDataManager.HandlerData; btn_Play.Enabled = false; stepsList = new List <UserInputControl>(); stepsList.Add(positionsControl); stepsList.Add(optionsControl); if (handlerData.CustomSteps != null) { for (int i = 0; i < handlerData.CustomSteps.Count; i++) { stepsList.Add(jsControl); } } currentProfile = new GameProfile(); currentProfile.InitializeDefault(handlerData); gameNameControl.GameInfo = selectedControl.UserGameInfo; GoToStep(0); } catch (Exception ex) { Debugger.Break(); } }
public bool Initialize(HandlerDataManager handlerManager, UserGameInfo userGameInfo, GameProfile profile) { this.handlerManager = handlerManager; this.userGame = userGameInfo; this.profile = profile; List <PlayerInfo> players = profile.PlayerData; // if there's a keyboard player, re-order play list hasKeyboardPlayer = players.Any(c => c.IsKeyboardPlayer); if (hasKeyboardPlayer) { if (handlerManager.HandlerData.KeyboardPlayerFirst) { players.Sort((x, y) => y.IsKeyboardPlayer.CompareTo(x.IsKeyboardPlayer)); } else { players.Sort((x, y) => x.IsKeyboardPlayer.CompareTo(y.IsKeyboardPlayer)); } } // create modules for each player for (int i = 0; i < players.Count; i++) { PlayerInfo player = players[i]; List <HandlerModule> modules = player.Modules; foreach (ModuleInfo info in GameManager.Instance.ModuleManager.Modules) { if (info.IsNeeded(handlerManager.HandlerData)) { modules.Add((HandlerModule)Activator.CreateInstance(info.ModuleType, new object[] { player })); } } // order modules player.Modules.Sort((x, y) => x.Order.CompareTo(y.Order)); for (int j = 0; j < modules.Count; j++) { modules[j].Initialize(this, handlerManager.HandlerData, userGameInfo, profile); } } return(true); }