Ejemplo n.º 1
0
        public void InitGridWithRules(MainGameData gameData, Action <GridAnswer[]> completion)
        {
            rules       = gameData.Ruleset;
            gridSquares = tileContainer.GetComponentsInChildren <GridSquareScript>();
            targets     = new List <GridSquareScript>();
            //allSquares = new int[0];
            currentSelection   = null;
            completionCallback = completion;
            levelTitle.text    = $"LEVEL {gameData.Level}";
            int[] levelData = rules.levelData.Select(x => Int32.Parse(x.ToString())).ToArray();
            print($"Level data count: {levelData.Length}");

            if (levelData.Length == gridSquares.Length)
            {
                for (int i = 0; i < levelData.Length; i++)
                {
                    bool isTarget = rules.targetIndexes.Contains(i);
                    gridSquares[i].SetupGridSquare(i, levelData[i], isTarget, SquareSelected);
                    if (isTarget)
                    {
                        targets.Add(gridSquares[i]);
                    }
                }
            }
            keyboardController.SetKeyboardClickHandler(KeyboardInput);
            keyboardController.SetKeyboardEnabled(false);
            keyboardController.ShowKeyboard();
            if (gameData.answers != null)
            {
                GridAnswer[] errors   = gameData.answers.Where(x => x.correct == false).ToArray();
                GridAnswer[] corrects = gameData.answers.Where(x => x.correct == true).ToArray();
                if (errors.Length > 0)
                {
                    StartCoroutine(ShowPreviousErrors(errors, ShowNextTarget));
                    if (corrects.Length == 0)
                    {
                        return;
                    }
                }
                if (corrects.Length > 0)
                {
                    StartCoroutine(ShowPreviousCorrects(corrects));
                    return;
                }
            }
            ShowNextTarget();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Fires when one game exits
        /// </summary>
        //public event GameExitHandler SessionExited;

        #endregion

        #region Unity callbacks

        public void SetupGame(MainGameData gameData)
        {
            currentSessionRuleset = gameData.Ruleset;

            // create & initialize
            gameplay = SceneActivationBehaviour <MainMenuActivator> .Instance.Gameplay;

            gameplay.Configure(gameData);

            // handlers
            gameplay.OnGameTimeChanged += GameTimeChangedHandler;

            gameplay.OnGameStarted += GameStartedHandler;
            gameplay.OnPaused      += PausedHandler;
            gameplay.OnResumed     += ResumedHandler;
            gameplay.OnGameOver    += GameOverHandler;
            gameplay.OnGameQuit    += GameQuitHandler;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Fires when one game exits
        /// </summary>
        //public event GameExitHandler SessionExited;

        #endregion

        #region Unity callbacks

        public void SetupGame(MainGameData gameData)
        {
            currentSessionRuleset = gameData.Ruleset;

            // create & initialize
            gameplay = SceneActivationBehaviour <SPEGameSceneActivator> .Instance.Gameplay; //Instantiate(currentSessionRuleset.GameBoardPrefab);

            gameplay.Configure(gameData);

            // handlers
            gameplay.OnGameTimeChanged += GameTimeChangedHandler;

            gameplay.OnGameStarted += GameStartedHandler;
            gameplay.OnPaused      += PausedHandler;
            gameplay.OnResumed     += ResumedHandler;
            gameplay.OnGameOver    += GameOverHandler;
            gameplay.OnGameQuit    += GameQuitHandler;
            //gameplay.OnGameExit += GameExitHandler;

            //// go!
            //gameplay.StartSession();

            //return gameplay;
        }
Ejemplo n.º 4
0
        public void ConfigureCreator(MainGameData mainGameData)
        {
            gameData = mainGameData;

            gameBoard.InitCreatorGridWithRules(mainGameData.Ruleset, EndSession);
        }
Ejemplo n.º 5
0
        public void ConfigureFtue(MainGameData mainGameData)
        {
            gameData = mainGameData;

            gameBoard.InitFtueGridWithRules(mainGameData, EndSession); //TODO: override end session???
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Initialize the gameplay
        /// </summary>
        public void Configure(MainGameData mainGameData)
        {
            gameData = mainGameData;

            gameBoard.InitGridWithRules(mainGameData, EndSession);
        }
Ejemplo n.º 7
0
 private void ResumedHandler(MainGameData gameData)
 {
     print($"[SESSION] Resumed");
     SessionResumed?.Invoke(gameData);
 }
Ejemplo n.º 8
0
 private void PausedHandler(MainGameData gameData)
 {
     print($"[SESSION] Paused");
     SessionPaused?.Invoke(gameData);
 }
Ejemplo n.º 9
0
 private void GameStartedHandler(MainGameData gameData)
 {
     print($"[SESSION] Started");
     SessionStarted?.Invoke(gameData);
 }