Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
            }
        }
Пример #4
0
        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);
        }