예제 #1
0
    public void SwitchGamePhases()
    {
        switch (gamePhase)
        {
        case GamePhases.Day:                 //switches to night
            gamePhase = GamePhases.Night;
            SoundManager.instance.NightPhaseSound();


            playerItemsUI.SetNightUI();


            if (gameTimeUI.isTimerShown)
            {
                gameTimeUI.isTimerShown = false;
            }
            //shop.TeleportPlayersOutsideOfShop();

            SetShopDoorActive(true);


            if (player.isWerewolf)
            {
                if (player.GETIsPicked)
                {
                    if (player.box != null)
                    {
                        player.box.transform.parent = barrelManager.spawnRegions[0].barrelParent;
                        player.playerSpeed          = player.playerSpeed * 2;
                        player.GETIsPicked          = false;
                        player.Unpick();
                    }
                }
                player.wereWolf.Transform();


                ShowWolfHPBar(true);
            }
            else
            {
                player.nightHide = true;

                if (player.GETIsPicked)
                {
                    if (player.box != null)
                    {
                        player.box.transform.parent = barrelManager.spawnRegions[0].barrelParent;
                        player.playerSpeed          = player.playerSpeed * 2;
                        player.GETIsPicked          = false;
                        player.Unpick();
                    }
                }
                player.dayPickUp = false;
            }


            ShowNames(false);


            timer = nightTime;
            Debug.Log("Switching to Night");


            fov.SetNightFOV(player.isWerewolf);

            if (!barrelManager.canStartGeneration)
            {
                barrelManager.canStartGeneration = true;
            }
            break;

        case GamePhases.Night:                //switches to talk
            gamePhase = GamePhases.talk;
            SetPlayersAtVotingPosition();
            playerItemsUI.SetDayUI();



            if (!gameTimeUI.isTimerShown)
            {
                gameTimeUI.isTimerShown = true;
            }
            if (player.isWerewolf)
            {
                player.wereWolf.Transform();
                ShowWolfHPBar(false);
                if (player.currentHp > 0)
                {
                    if (isWerewolfFullHeal)
                    {
                        player.SetWereWolfHP(wolfStartHP, false);
                    }
                    else
                    {
                        player.SetWereWolfHP(1, false);
                    }
                }
            }
            ShowNames(true);
            player.nightHide = false;
            if (player.GETIsPicked)
            {
                if (player.box != null)
                {
                    player.box.transform.parent = barrelManager.spawnRegions[0].barrelParent;
                    player.playerSpeed          = player.playerSpeed * 2;
                    player.GETIsPicked          = false;

                    player.Unpick();
                }
            }


            chat.SetChatVisibility(true);
            timer = waitForVoteTime;
            StartTalkPhase();
            Debug.Log("Switching to Talk");
            fov.SetDayFOV();
            UIManager.getInstance.shop.shopRef.GenerateNewShopRecipe();
            barrelManager.GenerateBarrels();
            camera.setCameraToGamePhase(true);


            break;

        case GamePhases.talk:                //switches to Vote
            if (!gameTimeUI.isTimerShown)
            {
                gameTimeUI.isTimerShown = true;
            }
            votingArea.ShowVotingButtons(true);
            SetShopDoorActive(false);
            gamePhase = GamePhases.Vote;
            timer     = voteTime;
            canVote   = true;



            Debug.Log("Players can vote");
            break;

        case GamePhases.Vote:                 //vote Result
            gamePhase = GamePhases.Vote_Result;

            votingArea.votingUI.voting.CheckVotes();

            //if (killedPlayer != -1)
            //	camera.SetCameraToKillVoted();
            //else
            //{
            //	camera.NoOneWasVoted();
            //}
            chat.SetChatVisibility(false);
            votingArea.ShowVotingButtons(false);
            canVote = false;
            if (!gameTimeUI.isTimerShown)
            {
                gameTimeUI.isTimerShown = false;
            }
            SoundManager.instance.MorningPhaseSound();                               // doing weird bug to tele players



            break;

        default:
            break;
        }
    }