public void CollectionViewFtueStep()
        {
            if (ShouldShowCollectionView && gameController.Player.MainPuzzleIndex.Equals(6))
            {
                InterfaceController.Instance.Show(GameWindow.OverlayUIScene);
                SceneActivationBehaviour <CollectionScreenActivator> .Instance.ShowHidePlayButton(false);

                SceneActivationBehaviour <OverlayUISceneActivator> .Instance.ShowDim(true);

                SendFtueProgress("Collection_45");

                overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.CollectionView.FtueMessages.InstructionsCollection_1, true, true, 0, true);

                overlayUISceneActivator.SubscribeForFullScreenTap(() =>
                {
                    overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.CollectionView.FtueMessages.InstructionsCollection_2, true, true, 0, true);

                    SendFtueProgress("ReplayPlay_46");

                    overlayUISceneActivator.SubscribeForFullScreenTap(() =>
                    {
                        overlayUISceneActivator.HideFtueMessages();
                        SceneActivationBehaviour <CollectionScreenActivator> .Instance.ShowHidePlayButton(true);
                        SceneActivationBehaviour <OverlayUISceneActivator> .Instance.ShowDim(false);
                        ftueInformation.IsPart1Passed = ftueInformation.IsPart2Passed = ftueInformation.IsPart3Passed = ftueInformation.IsPart4Passed = ftueInformation.IsPart5Passed = ftueInformation.IsPart6Passed = ftueInformation.IsCollectionViewPassed = true;
                        serverController.PersistFtue(ftueInformation);
                    });
                });
            }
            else
            {
                return;
            }
        }
Example #2
0
        public void StartGame(Player player,
                              RuleSettings selectedRuleset,
                              FtueController ftueController,
                              SessionScript sessionScript,
                              OverlayUISceneActivator overlayUISceneActivator)
        {
            print("[FTUE] Fifth ftue game started ");

            InterfaceController.Instance.Show(GameWindow.OverlayUIScene);
            InterfaceController.Instance.Hide(GameWindow.MainMenu);

            SceneActivationBehaviour <TopBarUIActivator> .Instance.SetButtons(false);

            GameplayScript      gameplay            = sessionScript.CreateGameAndStart(player, selectedRuleset);
            BoardCreationScript boardCreationScript = gameplay.GetComponent <BoardCreationScript>();

            InterfaceController.Instance.Show(GameWindow.BonusBarUI);
            SceneActivationBehaviour <BonusBarUIActivator> .Instance.ShowDim(true);

            InterfaceController.Instance.Hide(GameWindow.ToolbarUI);

            boardCreationScript.BlockAllCells();

            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FourthGame.FtueMessages.Instructions4_1, true, true, 0, true);

            ftueController.SendFtueProgress("Game4StartStarBar_27");

            overlayUISceneActivator.SubscribeForFullScreenTap(() =>
            {
                SceneActivationBehaviour <BonusBarUIActivator> .Instance.ShowDim(false);

                ftueController.SendFtueProgress("ReadyStart_28");
                overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FourthGame.FtueMessages.Instructions4_2, true, true, 0, true);

                overlayUISceneActivator.SubscribeForFullScreenTap(() =>
                {
                    ftueController.SendFtueProgress("StartGame4_29");

                    overlayUISceneActivator.HideFtueMessages();

                    overlayUISceneActivator.ftueMessagesPerStage = 0;
                    gameplay.StartDelayedSession();

                    boardCreationScript.UnblockAllCells();

                    gameplay.OnPuzzleSolved += gameData =>
                    {
                        int i = int.Parse(gameData.Ruleset.Id);
                        ftueController.ProceedToGameOverAward(player, i);

                        ftueController.SendFtueProgress("Game4Complete_30");
                    };
                });
            });
        }
        public void StartGameOne(GridController gridController, KeyboardController keyboardController)
        {
            print("Start FTUE game One");
            overlay = SceneActivationBehaviour <OverlayUISceneActivator> .Instance;

            grid     = gridController;
            keyboard = keyboardController;
            keyboard.SetKeyboardClickHandler(KeyboardFtueInput);
            grid.ResetFtueGrid();
            currentTarget = grid.GetFtueTargetAtIndex(34);

            overlay.ShowFtueSkipButton(true);
            overlay.ShowFtueGameplayMessage(Constants.FtueStrings.GameOneStringOne);
            overlay.SubscribeForFullScreenTap(GameOneStepOneTap);

            grid.HighlightRow(currentTarget.Index);
            grid.ShowArrowHighlight(27, FtueArrowDirection.Left);
            analyticsController.TutorialStepComplete(1, "OneRule");
        }
Example #4
0
        public void StartGame(Player player, RuleSettings selectedRuleset, FtueController ftueController, SessionScript sessionScript, OverlayUISceneActivator overlayUISceneActivator, bool shouldShowHintTip)
        {
            print("[FTUE] Sixth ftue game started ");

            InterfaceController.Instance.Hide(GameWindow.MainMenu);
            GameplayScript      gameplay            = sessionScript.CreateGameAndStart(player, selectedRuleset);
            BoardCreationScript boardCreationScript = gameplay.GetComponent <BoardCreationScript>();

            InterfaceController.Instance.Show(GameWindow.ToolbarUI);

            if (shouldShowHintTip)
            {
                SceneActivationBehaviour <ToolbarUIActivator> .Instance.HintButtonScript.FtueForceHintOn();

                InterfaceController.Instance.Show(GameWindow.OverlayUIScene);
                SceneActivationBehaviour <TopBarUIActivator> .Instance.SetButtons(false);

                boardCreationScript.BlockAllCells();

                overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.SixthGame.FtueMessages.Instructions6_1, true, false, 0, false, 1, false);

                SceneActivationBehaviour <ToolbarUIActivator> .Instance.ShowHandAnimation(true, GameConstants.Ftue.SixthGame.HandAnimations.Hand6_1);

                ftueController.SendFtueProgress("Game6UseHint_42");

                overlayUISceneActivator.SubscribeHintTap(() =>
                {
                    ftueController.SendFtueProgress("CantUndo_43");
                    overlayUISceneActivator.HideFtueMessages();

                    SceneActivationBehaviour <ToolbarUIActivator> .Instance.ShowHandAnimation(false);
                    SceneActivationBehaviour <ToolbarUIActivator> .Instance.ForceHintFtue(new Vector2(4, 2));

                    StartCoroutine(WaitForHintAnimation(() =>
                    {
                        overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.SixthGame.FtueMessages.Instructions6_2, true, true, 0, true, 0, false);

                        overlayUISceneActivator.SubscribeForFullScreenTap(() =>
                        {
                            ftueController.PersistHintTipUse(player);

                            overlayUISceneActivator.ftueMessagesPerStage = 0;
                            gameplay.StartDelayedSession(true);

                            boardCreationScript.UnblockAllCells();

                            overlayUISceneActivator.HideFtueMessages();

                            gameplay.OnPuzzleSolved += gameData =>
                            {
                                int i = int.Parse(gameData.Ruleset.Id);
                                ftueController.ProceedToGameOverAward(player, i);

                                ftueController.SendFtueProgress("Game6Complete_44");
                            };
                        });
                    }));
                });
            }
            else
            {
                SceneActivationBehaviour <TopBarUIActivator> .Instance.SetButtons(false);

                overlayUISceneActivator.ftueMessagesPerStage = 0;
                gameplay.StartDelayedSession(true);
                boardCreationScript.UnblockAllCells();

                gameplay.OnPuzzleSolved += gameData =>
                {
                    int i = int.Parse(gameData.Ruleset.Id);
                    ftueController.ProceedToGameOverAward(player, i);

                    ftueController.SendFtueProgress("Game6Complete_44");
                };
            }
        }
        public void StartGame(Player player,
                              RuleSettings selectedRuleset,
                              FtueController ftueController,
                              SessionScript sessionScript,
                              OverlayUISceneActivator overlayUISceneActivator)
        {
            print("[FTUE] Second ftue game started ");

            InterfaceController.Instance.Show(GameWindow.OverlayUIScene);
            InterfaceController.Instance.Hide(GameWindow.MainMenu);

            SceneActivationBehaviour <TopBarUIActivator> .Instance.SetButtons(false);

            InterfaceController.Instance.Hide(GameWindow.ToolbarUI);

            GameplayScript      gameplay            = sessionScript.CreateGameAndStart(player, selectedRuleset);
            BoardCreationScript boardCreationScript = gameplay.GetComponent <BoardCreationScript>();
            GridLabelManager    gridLabelManager    = boardCreationScript.gameObject.GetComponent <GridLabelManager>();

            boardCreationScript.BlockAllCells();

            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.SecondGame.FtueMessages.Instructions2_0, true, true, 0, true);

            ftueController.SendFtueProgress("Game2LetsFind_10");

            overlayUISceneActivator.SubscribeForFullScreenTap(() =>
            {
                ftueController.SendFtueProgress("RememberBig_11");
                overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.SecondGame.FtueMessages.Instructions2_1, true);

                gridLabelManager.ShowFtueArrows(new List <int> {
                    6
                });
                gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                    1
                }, new List <int> {
                });

                boardCreationScript.HighlightCells(true, GameConstants.Ftue.SecondGame.DimAnimations.Dim2_1);

                boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.SecondGame.TargetCellVectors.TargetCells2_1);
                ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.SecondGame.TargetCellVectors.TargetCells2_1, () =>
                {
                    overlayUISceneActivator.HideFtueMessages();
                }, () =>
                {
                    ftueController.SendFtueProgress("GreatKeepGoing_12");
                    overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.SecondGame.FtueMessages.Instructions2_2, true);

                    gridLabelManager.ShowFtueArrows(new List <int> {
                        1, 3
                    });
                    gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                        1
                    }, new List <int> {
                        1, 3
                    });

                    boardCreationScript.HighlightCells(true, GameConstants.Ftue.SecondGame.DimAnimations.Dim2_2);

                    boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.SecondGame.TargetCellVectors.TargetCells2_2);

                    ftueController.ListenForFirstSpecificSelection(gameplay, new List <Vector2> {
                        new Vector2(1, 2), new Vector2(3, 2), new Vector2(4, 2), new Vector2(5, 2)
                    }, () =>
                    {
                        gridLabelManager.HideSpecificFtueArrow(1);
                    });

                    ftueController.ListenForSecondSpecificSelection(gameplay, new List <Vector2> {
                        new Vector2(1, 4), new Vector2(3, 4), new Vector2(4, 4), new Vector2(5, 4)
                    }, () =>
                    {
                        gridLabelManager.HideSpecificFtueArrow(3);
                    });

                    ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.SecondGame.TargetCellVectors.TargetCells2_2, () =>
                    {
                        overlayUISceneActivator.HideFtueMessages();
                    }, () =>
                    {
                        ftueController.SendFtueProgress("TwoAndTwo_13");
                        overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.SecondGame.FtueMessages.Instructions2_3, true);

                        gridLabelManager.ShowFtueArrows(new List <int> {
                            5
                        });
                        gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                            0, 1
                        }, new List <int> {
                            0, 1, 3, 4
                        });

                        boardCreationScript.HighlightCells(true, GameConstants.Ftue.SecondGame.DimAnimations.Dim2_3);

                        boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.SecondGame.TargetCellVectors.TargetCells2_3);
                        ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.SecondGame.TargetCellVectors.TargetCells2_3, () =>
                        {
                            overlayUISceneActivator.HideFtueMessages();
                        }, () =>
                        {
                            ftueController.SendFtueProgress("GroupThree_14");
                            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.SecondGame.FtueMessages.Instructions2_4, true);

                            gridLabelManager.ShowFtueArrows(new List <int> {
                                7
                            });
                            gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                                0, 1, 2
                            }, new List <int> {
                                0, 1, 3, 4
                            });

                            boardCreationScript.HighlightCells(true, GameConstants.Ftue.SecondGame.DimAnimations.Dim2_4);

                            boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.SecondGame.TargetCellVectors.TargetCells2_4);
                            ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.SecondGame.TargetCellVectors.TargetCells2_4, () =>
                            {
                                overlayUISceneActivator.HideFtueMessages();
                            }, () =>
                            {
                                ftueController.SendFtueProgress("ThreeAdjacents_15");
                                overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.SecondGame.FtueMessages.Instructions2_5, true);

                                gridLabelManager.ShowFtueArrows(new List <int> {
                                    8, 9
                                });
                                gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                                    0, 1, 2, 3, 4
                                }, new List <int> {
                                    0, 1, 2, 3, 4
                                });

                                boardCreationScript.HighlightCells(true, GameConstants.Ftue.SecondGame.DimAnimations.Dim2_5);

                                ftueController.ListenForFirstSpecificSelection(gameplay, new List <Vector2> {
                                    new Vector2(4, 3)
                                }, () =>
                                {
                                    gridLabelManager.HideSpecificFtueArrow(8);
                                });

                                ftueController.ListenForSecondSpecificSelection(gameplay, new List <Vector2> {
                                    new Vector2(5, 3)
                                }, () =>
                                {
                                    gridLabelManager.HideSpecificFtueArrow(9);
                                });

                                boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.SecondGame.TargetCellVectors.TargetCells2_5, false);
                                ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.SecondGame.TargetCellVectors.TargetCells2_5, () =>
                                {
                                    overlayUISceneActivator.HideFtueMessages();
                                }, () =>
                                {
                                    boardCreationScript.HighlightCells(false);

                                    overlayUISceneActivator.ftueMessagesPerStage = 0;
                                    gameplay.StartDelayedSession();

                                    gameplay.OnPuzzleSolved += gameData =>
                                    {
                                        overlayUISceneActivator.HideFtueMessages();

                                        int i = int.Parse(gameData.Ruleset.Id);
                                        ftueController.ProceedToGameOverAward(player, i);

                                        ftueController.SendFtueProgress("Game2Complete_16");
                                    };
                                });
                            });
                        });
                    });
                });
            });
        }
        public void StartGame(Player player,
                              RuleSettings selectedRuleset,
                              FtueController ftueController,
                              SessionScript sessionScript,
                              OverlayUISceneActivator overlayUISceneActivator)
        {
            print("[FTUE] Fifth ftue game started ");

            InterfaceController.Instance.Show(GameWindow.OverlayUIScene);
            InterfaceController.Instance.Hide(GameWindow.MainMenu);

            SceneActivationBehaviour <TopBarUIActivator> .Instance.SetButtons(false);

            GameplayScript      gameplay            = sessionScript.CreateGameAndStart(player, selectedRuleset);
            BoardCreationScript boardCreationScript = gameplay.GetComponent <BoardCreationScript>();
            GridLabelManager    gridLabelManager    = boardCreationScript.gameObject.GetComponent <GridLabelManager>();

            InterfaceController.Instance.Show(GameWindow.ToolbarUI);
            SceneActivationBehaviour <ToolbarUIActivator> .Instance.ToolToggle.interactable = false;

            boardCreationScript.BlockAllCells();

            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FifthGame.FtueMessages.Instructions5_1, true, true, 0, true);

            ftueController.SendFtueProgress("Game5CantTell_31");

            boardCreationScript.HighlightCells(true, GameConstants.Ftue.FifthGame.HighlightCellAnimations.HighlightCells5_1);

            overlayUISceneActivator.SubscribeForFullScreenTap(() =>
            {
                ftueController.SendFtueProgress("ThreeCorrect_32");
                overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FifthGame.FtueMessages.Instructions5_2, true);

                boardCreationScript.HighlightCells(false);

                boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.FifthGame.TargetCellVectors.TargetCells5_2);

                ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.FifthGame.TargetCellVectors.TargetCells5_2, () =>
                {
                    overlayUISceneActivator.HideFtueMessages();
                }, () =>
                {
                    ftueController.SendFtueProgress("LetsFillThese_33");
                    overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FifthGame.FtueMessages.Instructions5_3, true);

                    boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.FifthGame.TargetCellVectors.TargetCells5_3);

                    ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.FifthGame.TargetCellVectors.TargetCells5_3, () =>
                    {
                        overlayUISceneActivator.HideFtueMessages();
                    }, () =>
                    {
                        ftueController.SendFtueProgress("FillMore_34");
                        boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.FifthGame.TargetCellVectors.TargetCells5_4);

                        ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.FifthGame.TargetCellVectors.TargetCells5_4, () =>
                        {
                            //
                        }, () =>
                        {
                            ftueController.SendFtueProgress("XTool_35");

                            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FifthGame.FtueMessages.Instructions5_5, true);

                            SceneActivationBehaviour <ToolbarUIActivator> .Instance.ShowHandAnimation(true, GameConstants.Ftue.FifthGame.HandAnimations.Hand5_5);

                            overlayUISceneActivator.SubscribeForToolToggleTap(() =>
                            {
                                SceneActivationBehaviour <ToolbarUIActivator> .Instance.ShowHandAnimation(false);
                                SceneActivationBehaviour <ToolbarUIActivator> .Instance.ToggleToCross();
                                ftueController.SendFtueProgress("LetsCrossRow_36");

                                StartCoroutine(ShortWait(() => overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FifthGame.FtueMessages.Instructions5_6, true)));

                                boardCreationScript.HighlightCells(true);
                                gridLabelManager.ShowFtueArrows(new List <int> {
                                    5
                                });

                                boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.FifthGame.TargetCellVectors.TargetCells5_6);
                                ftueController.ListenForCurrentFtueCellMarking(gameplay, GameConstants.Ftue.FifthGame.TargetCellVectors.TargetCells5_6, () =>
                                {
                                    ftueController.SendFtueProgress("CoolFewMore_37");
                                    overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FifthGame.FtueMessages.Instructions5_7, true);

                                    gridLabelManager.ShowFtueArrows(new List <int> {
                                        0, 4
                                    });

                                    boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.FifthGame.TargetCellVectors.TargetCells5_7);

                                    ftueController.ListenForFirstSpecificMarking(gameplay, () =>
                                    {
                                        gridLabelManager.HideSpecificFtueArrow(0);
                                    });

                                    ftueController.ListenForSecondSpecificMarking(gameplay, () =>
                                    {
                                        gridLabelManager.HideSpecificFtueArrow(4);
                                    });

                                    ftueController.ListenForCurrentFtueCellMarking(gameplay, GameConstants.Ftue.FifthGame.TargetCellVectors.TargetCells5_7, () =>
                                    {
                                        ftueController.SendFtueProgress("RememberTilesNot_38");
                                        overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FifthGame.FtueMessages.Instructions5_8, true, true, 0, true);
                                        boardCreationScript.HighlightCells(false);

                                        overlayUISceneActivator.SubscribeForFullScreenTap(() =>
                                        {
                                            ftueController.SendFtueProgress("SelectMarker_39");
                                            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FifthGame.FtueMessages.Instructions5_9, true);
                                            boardCreationScript.HighlightCells(false);

                                            // paint tap animation
                                            SceneActivationBehaviour <ToolbarUIActivator> .Instance.ShowHandAnimation(true, GameConstants.Ftue.FifthGame.HandAnimations.Hand5_9);

                                            overlayUISceneActivator.SubscribeForToolToggleTap(() =>
                                            {
                                                ftueController.SendFtueProgress("StartGame5_40");

                                                SceneActivationBehaviour <ToolbarUIActivator> .Instance.GameFiveToolToggleTap();

                                                overlayUISceneActivator.HideFtueMessages();
                                                overlayUISceneActivator.ftueMessagesPerStage = 0;

                                                gameplay.StartDelayedSession(true);
                                                boardCreationScript.UnblockAllCells();

                                                gameplay.OnPuzzleSolved += gameData =>
                                                {
                                                    int i = int.Parse(gameData.Ruleset.Id);
                                                    ftueController.ProceedToGameOverAward(player, i);

                                                    ftueController.SendFtueProgress("Game5Complete_41");
                                                };
                                            });
                                        });
                                    });
                                });
                            });
                        });
                    });
                });
            });
        }
 private void GameOneStepOneTap()
 {
     print("Tapped game one step one");
     overlay.HideFtueMessages();
     overlay.ShowFtueGameplayMessage(Constants.FtueStrings.GameOneStringTwo);
     overlay.SubscribeForFullScreenTap(GameOneStepTwoTap);
     analyticsController.TutorialStepComplete(2, "OneOfEach");
 }
Example #8
0
        public void StartGame(Player player,
                              RuleSettings selectedRuleset,
                              FtueController ftueController,
                              SessionScript sessionScript,
                              OverlayUISceneActivator overlayUISceneActivator)
        {
            print("[FTUE] First ftue game started " + overlayUISceneActivator.name);

            InterfaceController.Instance.Show(GameWindow.OverlayUIScene);
            InterfaceController.Instance.Hide(GameWindow.MainMenu);

            SceneActivationBehaviour<TopBarUIActivator>.Instance.SetButtons(false);

            InterfaceController.Instance.Hide(GameWindow.ToolbarUI);

            GameplayScript gameplay = sessionScript.CreateGameAndStart(player, selectedRuleset);
            BoardCreationScript boardCreationScript = gameplay.GetComponent<BoardCreationScript>();
            GridLabelManager gridLabelManager = boardCreationScript.gameObject.GetComponent<GridLabelManager>();

            boardCreationScript.BlockAllCells();

            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FirstGame.FtueMessages.Instructions1_1, true, true, 0, true);

            ftueController.SendFtueProgress("Game1TheGoal_1");

            overlayUISceneActivator.SubscribeForFullScreenTap(() =>
            {
                ftueController.SendFtueProgress("FiveAdjacent_2");
                overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FirstGame.FtueMessages.Instructions1_2, true);

                gridLabelManager.ShowSpecificGridLabelsOnFtue(new List<int> { 1 }, new List<int> { });
                gridLabelManager.ShowFtueArrows(new List<int> { 6 });

                boardCreationScript.HighlightCells(true, GameConstants.Ftue.FirstGame.DimAnimations.Dim1_2);
                SceneActivationBehaviour<OverlayUISceneActivator>.Instance.ShowHandAnimation(true, GameConstants.Ftue.FirstGame.HandAnimations.Hand1_2);

                boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.FirstGame.TargetCellVectors.TargetCells1_2);
                ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.FirstGame.TargetCellVectors.TargetCells1_2, () =>
                {
                    SceneActivationBehaviour<OverlayUISceneActivator>.Instance.ShowHandAnimation(false);
                    overlayUISceneActivator.HideFtueMessages();

                }, () =>
                {
                    ftueController.SendFtueProgress("FiveTiles_3");
                    overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FirstGame.FtueMessages.Instructions1_3, true);

                    boardCreationScript.HighlightCells(true, GameConstants.Ftue.FirstGame.DimAnimations.Dim1_3);

                    gridLabelManager.ShowSpecificGridLabelsOnFtue(new List<int> { 1 }, new List<int> { 2 });
                    gridLabelManager.ShowFtueArrows(new List<int> { 2 });

                    SceneActivationBehaviour<OverlayUISceneActivator>.Instance.ShowHandAnimation(true, GameConstants.Ftue.FirstGame.HandAnimations.Hand1_3);

                    boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.FirstGame.TargetCellVectors.TargetCells1_3);
                    ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.FirstGame.TargetCellVectors.TargetCells1_3, () =>
                    {
                        SceneActivationBehaviour<OverlayUISceneActivator>.Instance.ShowHandAnimation(false);
                        overlayUISceneActivator.HideFtueMessages();
                    }, () =>
                    {
                        ftueController.SendFtueProgress("FoundSingle_4");
                        overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FirstGame.FtueMessages.Instructions1_4, true, true, 0, true);

                        gridLabelManager.ShowSpecificGridLabelsOnFtue(new List<int> { 1, 4 }, new List<int> { 2 });
                        gridLabelManager.ShowFtueArrows(new List<int> { 9 });

                        boardCreationScript.HighlightCells(true, GameConstants.Ftue.FirstGame.DimAnimations.Dim1_4);

                        overlayUISceneActivator.SubscribeForFullScreenTap(() =>
                        {
                            ftueController.SendFtueProgress("BigNumbers_5");
                            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FirstGame.FtueMessages.Instructions1_5, true);

                            gridLabelManager.ShowSpecificGridLabelsOnFtue(new List<int> { 1, 2, 3, 4 }, new List<int> { 0, 2, 4 });
                            gridLabelManager.ShowFtueArrows(new List<int> { 7, 8 });

                            SceneActivationBehaviour<OverlayUISceneActivator>.Instance.ShowHandAnimation(true, GameConstants.Ftue.FirstGame.HandAnimations.Hand1_5);

                            boardCreationScript.HighlightCells(true, GameConstants.Ftue.FirstGame.DimAnimations.Dim1_5);

                            boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.FirstGame.TargetCellVectors.TargetCells1_5);

                            ftueController.ListenForFirstSpecificSelection(gameplay, new List<Vector2> { new Vector2(3, 1), new Vector2(3, 2), new Vector2(3, 4), new Vector2(3, 5) }, () =>
                            {
                                gridLabelManager.HideSpecificFtueArrow(7);
                            });

                            ftueController.ListenForSecondSpecificSelection(gameplay, new List<Vector2> { new Vector2(4, 1), new Vector2(4, 2), new Vector2(4, 4), new Vector2(4, 5) }, () =>
                            {
                                gridLabelManager.HideSpecificFtueArrow(8);
                            });

                            ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.FirstGame.TargetCellVectors.TargetCells1_5, () =>
                            {
                                overlayUISceneActivator.HideFtueMessages();
                                SceneActivationBehaviour<OverlayUISceneActivator>.Instance.ShowHandAnimation(false);
                            }, () =>
                            {
                                ftueController.SendFtueProgress("OneTileSo_6");
                                overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FirstGame.FtueMessages.Instructions1_6, true, true, 0, true);

                                boardCreationScript.HighlightCells(true, GameConstants.Ftue.FirstGame.DimAnimations.Dim1_6);
                                gridLabelManager.ShowFtueArrows(new List<int> { 9 });

                                overlayUISceneActivator.SubscribeForFullScreenTap(() =>
                                {
                                    ftueController.SendFtueProgress("FourAdjacent_7");
                                    overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FirstGame.FtueMessages.Instructions1_7, true);

                                    boardCreationScript.HighlightCells(true, GameConstants.Ftue.FirstGame.DimAnimations.Dim1_7);

                                    gridLabelManager.ShowSpecificGridLabelsOnFtue(new List<int> { 1, 2, 3, 4 }, new List<int> { 0, 1, 2, 4 });
                                    gridLabelManager.ShowFtueArrows(new List<int> { 1 });

                                    SceneActivationBehaviour<OverlayUISceneActivator>.Instance.ShowHandAnimation(true, GameConstants.Ftue.FirstGame.HandAnimations.Hand1_7);

                                    boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.FirstGame.TargetCellVectors.TargetCells1_7);
                                    ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.FirstGame.TargetCellVectors.TargetCells1_7, () =>
                                    {
                                        overlayUISceneActivator.HideFtueMessages();
                                        SceneActivationBehaviour<OverlayUISceneActivator>.Instance.ShowHandAnimation(false);
                                    }, () =>
                                    {
                                        ftueController.SendFtueProgress("CanYouFind_8");
                                        overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.FirstGame.FtueMessages.Instructions1_8, true);

                                        gridLabelManager.ShowSpecificGridLabelsOnFtue(new List<int> { 0, 1, 2, 3, 4 }, new List<int> { 0, 1, 2, 3, 4 });
                                        gridLabelManager.ShowFtueArrows(new List<int> { 3 });

                                        boardCreationScript.HighlightCells(true, GameConstants.Ftue.FirstGame.DimAnimations.Dim1_8);

                                        boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.FirstGame.TargetCellVectors.TargetCells1_8, false);
                                        ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.FirstGame.TargetCellVectors.TargetCells1_8, () =>
                                        {
                                            overlayUISceneActivator.HideFtueMessages();
                                            boardCreationScript.HighlightCells(false);
                                        }, () =>
                                        {
                                            overlayUISceneActivator.ftueMessagesPerStage = 0;
                                            gameplay.StartDelayedSession();

                                            gameplay.OnPuzzleSolved += gameData =>
                                            {
                                                overlayUISceneActivator.HideFtueMessages();

                                                int i = int.Parse(gameData.Ruleset.Id);
                                                ftueController.ProceedToGameOverAward(player, i);

                                                ftueController.SendFtueProgress("Game1Complete_9");
                                            };
                                        });
                                    });
                                });
                            });
                        });
                    });
                });
            });
        }
Example #9
0
        public void StartGame(Player player,
                              RuleSettings selectedRuleset,
                              FtueController ftueController,
                              SessionScript sessionScript,
                              OverlayUISceneActivator overlayUISceneActivator)
        {
            print("[FTUE] Third ftue game started ");

            InterfaceController.Instance.Show(GameWindow.OverlayUIScene);
            InterfaceController.Instance.Hide(GameWindow.MainMenu);

            SceneActivationBehaviour <TopBarUIActivator> .Instance.SetButtons(false);

            InterfaceController.Instance.Hide(GameWindow.ToolbarUI);

            GameplayScript      gameplay            = sessionScript.CreateGameAndStart(player, selectedRuleset);
            BoardCreationScript boardCreationScript = gameplay.GetComponent <BoardCreationScript>();
            GridLabelManager    gridLabelManager    = boardCreationScript.gameObject.GetComponent <GridLabelManager>();

            boardCreationScript.BlockAllCells();

            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.ThirdGame.FtueMessages.Instructions3_0, true, true, 0, true);

            ftueController.SendFtueProgress("Game3LetsLearn_17");

            overlayUISceneActivator.SubscribeForFullScreenTap(() =>
            {
                ftueController.SendFtueProgress("BigNumbers_18");
                overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.ThirdGame.FtueMessages.Instructions3_1, true);

                gridLabelManager.ShowFtueArrows(new List <int> {
                    6
                });
                gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                    1
                }, new List <int> {
                });

                boardCreationScript.HighlightCells(true, GameConstants.Ftue.ThirdGame.DimAnimations.Dim3_1);

                boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_1);
                ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_1, () =>
                {
                    overlayUISceneActivator.HideFtueMessages();
                }, () =>
                {
                    ftueController.SendFtueProgress("FiveConnected_19");
                    overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.ThirdGame.FtueMessages.Instructions3_2, true);

                    gridLabelManager.ShowFtueArrows(new List <int> {
                        9
                    });
                    gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                        1, 4
                    }, new List <int> {
                    });

                    boardCreationScript.HighlightCells(true, GameConstants.Ftue.ThirdGame.DimAnimations.Dim3_2);

                    boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_2);
                    ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_2, () =>
                    {
                        overlayUISceneActivator.HideFtueMessages();
                    }, () =>
                    {
                        ftueController.SendFtueProgress("FourConnected_20");
                        overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.ThirdGame.FtueMessages.Instructions3_3, true);

                        gridLabelManager.ShowFtueArrows(new List <int> {
                            1
                        });
                        gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                            1, 4
                        }, new List <int> {
                            1
                        });

                        boardCreationScript.HighlightCells(true, GameConstants.Ftue.ThirdGame.DimAnimations.Dim3_3);

                        boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_3);
                        ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_3, () =>
                        {
                            overlayUISceneActivator.HideFtueMessages();
                        }, () =>
                        {
                            ftueController.SendFtueProgress("WhatTiles_21");
                            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.ThirdGame.FtueMessages.Instructions3_4, true);

                            gridLabelManager.ShowFtueArrows(new List <int> {
                                3
                            });
                            gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                                1, 3, 4
                            }, new List <int> {
                                1, 3
                            });

                            boardCreationScript.HighlightCells(true, GameConstants.Ftue.ThirdGame.DimAnimations.Dim3_4);

                            boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_4, false);
                            ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_4, () =>
                            {
                                overlayUISceneActivator.HideFtueMessages();
                            }, () =>
                            {
                                ftueController.SendFtueProgress("SeveralDigits_22");
                                overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.ThirdGame.FtueMessages.Instructions3_5, true);

                                gridLabelManager.ShowFtueArrows(new List <int> {
                                    0
                                });
                                gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                                    1, 2, 3, 4
                                }, new List <int> {
                                    0, 1, 3
                                });

                                boardCreationScript.HighlightCells(true, GameConstants.Ftue.ThirdGame.DimAnimations.Dim3_5);

                                boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_5);
                                ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_5, () =>
                                {
                                    overlayUISceneActivator.HideFtueMessages();
                                }, () =>
                                {
                                    ftueController.SendFtueProgress("TwoAndOne_23");
                                    overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.ThirdGame.FtueMessages.Instructions3_6, true);

                                    gridLabelManager.ShowFtueArrows(new List <int> {
                                        4
                                    });
                                    gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                                        1, 2, 3, 4
                                    }, new List <int> {
                                        0, 1, 3, 4
                                    });

                                    boardCreationScript.HighlightCells(true, GameConstants.Ftue.ThirdGame.DimAnimations.Dim3_6);

                                    boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_6);
                                    ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_6, () =>
                                    {
                                        overlayUISceneActivator.HideFtueMessages();
                                    }, () =>
                                    {
                                        ftueController.SendFtueProgress("ThreeSeparate_24");
                                        overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.ThirdGame.FtueMessages.Instructions3_7, true);

                                        gridLabelManager.ShowFtueArrows(new List <int> {
                                            5
                                        });
                                        gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                                            0, 1, 2, 3, 4
                                        }, new List <int> {
                                            0, 1, 3, 4
                                        });

                                        boardCreationScript.HighlightCells(true, GameConstants.Ftue.ThirdGame.DimAnimations.Dim3_7);

                                        boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_7);
                                        ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_7, () =>
                                        {
                                            overlayUISceneActivator.HideFtueMessages();
                                        }, () =>
                                        {
                                            ftueController.SendFtueProgress("CompleteColumn_25");
                                            overlayUISceneActivator.ShowFtueGameplayMessage(GameConstants.Ftue.ThirdGame.FtueMessages.Instructions3_8, true);

                                            gridLabelManager.ShowFtueArrows(new List <int> {
                                                2
                                            });
                                            gridLabelManager.ShowSpecificGridLabelsOnFtue(new List <int> {
                                                0, 1, 2, 3, 4
                                            }, new List <int> {
                                                0, 1, 2, 3, 4
                                            });

                                            boardCreationScript.HighlightCells(true, GameConstants.Ftue.ThirdGame.DimAnimations.Dim3_8);

                                            boardCreationScript.BlockCellsToBeSelected(GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_8, false);
                                            ftueController.ListenForCurrentFtueCellSelection(gameplay, GameConstants.Ftue.ThirdGame.TargetCellVectors.TargetCells3_8, () =>
                                            {
                                                overlayUISceneActivator.HideFtueMessages();
                                                boardCreationScript.HighlightCells(false);
                                            }, () =>
                                            {
                                                overlayUISceneActivator.ftueMessagesPerStage = 0;
                                                gameplay.StartDelayedSession();

                                                gameplay.OnPuzzleSolved += gameData =>
                                                {
                                                    overlayUISceneActivator.HideFtueMessages();

                                                    int i = int.Parse(gameData.Ruleset.Id);
                                                    ftueController.ProceedToGameOverAward(player, i);

                                                    ftueController.SendFtueProgress("Game3Complete_26");
                                                };
                                            });
                                        });
                                    });
                                });
                            });
                        });
                    });
                });
            });
        }