public void StartGame()
        {
            if (currentGame)
            {
                currentGame.ForceEnd();
            }
            inGame            = true;
            gameWon           = false;
            playerScores      = new int[4];
            transitionStarted = false;
            scoreAdded        = false;

            respawnNodes = new List <RespawnNode>();
            goblets      = new List <Goblet>();
            gamesQueue   = new List <Minigame>();

            RespawnNode[] findNodes = FindObjectsOfType <RespawnNode>();
            for (int i = 0; i < findNodes.Length; i++)
            {
                respawnNodes.Add(findNodes[i]);
            }

            Goblet[] findGoblets = FindObjectsOfType <Goblet>();
            for (int i = 0; i < findGoblets.Length; i++)
            {
                goblets.Add(findGoblets[i]);
            }

            dialogHolder = GameObject.Find("DialogHolder");

            field = GameObject.Find("Field");

            RefillGames();
            currentGame = gamesQueue[0];
            gamesQueue.RemoveAt(0);

            for (int i = 0; i < controllers.Count; i++)
            {
                controllers[i].Enable();
                RespawnNode playerNode = respawnNodes.Find(x => x.ID.Equals(controllers[i].ID));
                controllers[i].transform.position = playerNode.transform.position;
                controllers[i].SetInitAttributes();
                controllers[i].RespawnAt(playerNode.transform.position);
            }

            currentGame.Init();
            veryFirstTimer = 4f;
            Camera.main.GetComponent <Animator>().SetTrigger("GodDemands");
            dialogHolder.GetComponent <SpriteRenderer>().sprite = currentGame.instructions;

            winningCharacterSprite = GameObject.Find("WinningCharacterSprite");
            winText = GameObject.Find("WinText");
        }
        public void StartGame()
        {
            if (currentGame) currentGame.ForceEnd();
            inGame = true;
            gameWon = false;
            playerScores = new int[4];
            transitionStarted = false;
            scoreAdded = false;

            respawnNodes = new List<RespawnNode>();
            goblets = new List<Goblet>();
            gamesQueue = new List<Minigame>();

            RespawnNode[] findNodes = FindObjectsOfType<RespawnNode>();
            for (int i = 0; i < findNodes.Length; i++)
            {
                respawnNodes.Add(findNodes[i]);
            }

            Goblet[] findGoblets = FindObjectsOfType<Goblet>();
            for (int i = 0; i < findGoblets.Length; i++)
            {
                goblets.Add(findGoblets[i]);
            }

			dialogHolder = GameObject.Find("DialogHolder");

			field = GameObject.Find("Field");

            RefillGames();
            currentGame = gamesQueue[0];
            gamesQueue.RemoveAt(0);

            for (int i = 0; i < controllers.Count; i++)
            {
                controllers[i].Enable();
                RespawnNode playerNode = respawnNodes.Find(x => x.ID.Equals(controllers[i].ID));
                controllers[i].transform.position = playerNode.transform.position;
                controllers[i].SetInitAttributes();
                controllers[i].RespawnAt(playerNode.transform.position);
            }
                
			currentGame.Init();
			veryFirstTimer = 4f;
			Camera.main.GetComponent<Animator>().SetTrigger("GodDemands");
			dialogHolder.GetComponent<SpriteRenderer>().sprite = currentGame.instructions;

			winningCharacterSprite = GameObject.Find("WinningCharacterSprite");
			winText = GameObject.Find("WinText");

        }
        void Update()
        {
            if (sleepTimer > 0)
            {
                sleepTimer -= Time.deltaTime;
            }
            if (paused || sleepTimer > 0)
            {
                DeltaTime = 0;
            }
            else
            {
                DeltaTime = Time.deltaTime;
            }

            if (inGame)
            {
                if (!currentGame.finished && !transitionStarted)
                {
                    veryFirstTimer -= DeltaTime;
                    if (veryFirstTimer <= 0)
                    {
                        currentGame.Run();
                    }
                    if (ControllerManager.instance.GetButtonDown(ControllerInputWrapper.Buttons.Start, PlayerID.One))
                    {
                        if (!paused)
                        {
                            PauseGame();
                        }
                        else
                        {
                            UnPauseGame();
                        }
                    }
                }
                else
                {
                    if (!transitionStarted)
                    {
                        transitionStarted = true;
                        if (IncrementPlayerScore(currentGame.Winners))
                        {
                            inGame   = false;
                            gameWon  = true;
                            winTimer = 3f;
                        }
                        demandingTimer   = 5f;
                        transitionTimer2 = 15f;
                        if (gamesQueue.Count == 0)
                        {
                            RefillGames();
                        }
                        currentGame = gamesQueue[0];
                        gamesQueue.RemoveAt(0);
                    }
                    else
                    {
                        demandingTimer -= DeltaTime;

                        if (demandingTimer <= 0)
                        {
                            transitionTimer2 = 5f;
                            demandingTimer   = 10f;
                            Camera.main.GetComponent <Animator>().SetTrigger("GodDemands");
                            SFXManager.instance.source.PlayOneShot(SFXManager.instance.RandomGodTalk());
                            dialogHolder.GetComponent <SpriteRenderer>().sprite = currentGame.instructions;
                        }

                        transitionTimer2 -= DeltaTime;

                        if (transitionTimer2 <= 0)
                        {
                            currentGame.Init();
                            transitionStarted = false;
                        }
                    }
                }
                if (dialogHolder != null)
                {
                    dialogHolder.transform.localScale = Vector3.one * Mathf.Max(1.5f, (Mathf.Sin(Time.time * 8f) + 1));
                }
            }
            else if (gameWon)
            {
                inGame    = false;
                winTimer -= DeltaTime;
                if (winTimer <= 0)
                {
                    gameWon = false;
                    Camera.main.GetComponent <EndGameUI>().enabled = true;
                    Camera.main.GetComponent <Animator>().SetTrigger("GameEnd");
                    for (int i = 0; i < controllers.Count; i++)
                    {
                        if (controllers[i].Character == winningCharacter)
                        {
                            winningCharacterSprite.GetComponent <Image>().sprite = controllers[i].Sprite.GetComponent <SpriteRenderer>().sprite;
                            winText.GetComponent <Text>().text = "Congratulations! " + controllers[i].Character + " Was Sacrificed!";
                            //winText.GetComponent<Text>().color = Color.black;
                            EventSystem.current.SetSelectedGameObject(GameObject.Find("PlayAgain"));

                            break;
                        }
                    }
                }
            }
        }
        public void StartGame()
        {
            inGame = true;
            /*
            Controller[] findControllers = FindObjectsOfType<Controller>();
            for (int i = 0; i < findControllers.Length; i++)
            {
                controllers.Add(findControllers[i]);
            }
            */

            RespawnNode[] findNodes = FindObjectsOfType<RespawnNode>();
            for (int i = 0; i < findNodes.Length; i++)
            {
                respawnNodes.Add(findNodes[i]);
            }

            Goblet[] findGoblets = FindObjectsOfType<Goblet>();
            for (int i = 0; i < findGoblets.Length; i++)
            {
                goblets.Add(findGoblets[i]);
            }

			dialogHolder = GameObject.Find("DialogHolder");

			field = GameObject.Find("Field");

            currentGame = games[Random.Range(0, games.Count)];

            for (int i = 0; i < controllers.Count; i++)
            {
                controllers[i].Enable();
                RespawnNode playerNode = respawnNodes.Find(x => x.ID.Equals(controllers[i].ID));
                controllers[i].transform.position = playerNode.transform.position;
            }
                
			currentGame.Init();
			veryFirstTimer = 4f;
			Camera.main.GetComponent<Animator>().SetTrigger("GodDemands");
			dialogHolder.GetComponent<SpriteRenderer>().sprite = currentGame.instructions;

			winningCharacterSprite = GameObject.Find("WinningCharacterSprite");
			winText = GameObject.Find("WinText");

        }