예제 #1
0
        public void SetCurrentPlayersTurn(FishBucket.FishBucketPlayerData playerData, bool isLocalPlayer)
        {
            if (currentPlayerHud != null)
            {
                currentPlayerHud.SetHighlighted(highlighted: false);
            }
            if (currentPlayerId != 0)
            {
                dispatcher.DispatchEvent(new PlayerIndicatorEvents.RemovePlayerIndicator(currentPlayerId, isStored: false, destroy: false));
            }
            currentPlayerId  = playerData.PlayerId;
            currentPlayerHud = playerHuds[playerData.PlayerId];
            currentPlayerHud.SetHighlighted(highlighted: true);
            string text = "";

            text            = ((!isLocalPlayer) ? string.Format(localizer.GetTokenTranslation("Activity.FishCatch.OthersTurn"), playerData.DisplayName) : localizer.GetTokenTranslation("Activity.FishCatch.TurnInstruction"));
            HeaderText.text = text;
            if (turnIndicator == null)
            {
                createTurnIndicator();
            }
            dispatcher.DispatchEvent(new PlayerIndicatorEvents.ShowPlayerIndicator(turnIndicator.gameObject, currentPlayerId));
            turnIndicatorAnimator.SetTrigger(ANIMATOR_HASH_TURN_INDICATOR_OPEN);
            turnIndicator.StartCountdown(fishBucketDefinition.TurnTimeInSeconds);
        }
    private void SetState(DanceBattleQuestGameState newState)
    {
        Screens[(int)currentState].SetActive(value: false);
        Screens[(int)newState].SetActive(value: true);
        currentState = newState;
        switch (newState)
        {
        case DanceBattleQuestGameState.ShowingMoves:
            startTurnSequence();
            changeCameraController(getScreenCamera(), getScreenCameraTarget(), hideControls: true);
            break;

        case DanceBattleQuestGameState.InputtingMoves:
        {
            destroyMoveIcons();
            inputMovesList.Clear();
            InputMovesTimer.StartCountdown(InputTime);
            int currentMoveCount = getCurrentMoveCount();
            for (int i = 0; i < currentMoveCount; i++)
            {
                DanceBattleMoveIcon component = UnityEngine.Object.Instantiate(moveIconPrefab, MoveIconInputContainer.transform, worldPositionStays: false).GetComponent <DanceBattleMoveIcon>();
                component.SetState(DanceBattleMoveIcon.MoveIconState.BlankRed);
                moveIconList.Add(component);
            }
            CoroutineRunner.Start(setStateAfterDelay(InputTime, DanceBattleQuestGameState.Results), this, "");
            changeCameraController(getDanceCamera(), getDanceCameraTarget(), hideControls: false);
            break;
        }

        case DanceBattleQuestGameState.Results:
            InputMovesTimer.StopCountdown();
            CoroutineRunner.Start(showRoundResults(), this, "");
            changeCameraController(getDanceCamera(), getDanceCameraTarget(), hideControls: true);
            break;
        }
    }
 public void StartTimer(float time)
 {
     TokenSpriteSelector.gameObject.SetActive(value: false);
     TimerObject.SetActive(value: true);
     Timer.StartCountdown(time);
 }
        private void setState(DanceBattleVisualsState newState)
        {
            Screens[(int)currentState].SetActive(value: false);
            if (newState == DanceBattleVisualsState.Off || newState == DanceBattleVisualsState.Lobby || localPlayerIsInGame)
            {
                Screens[(int)newState].SetActive(value: true);
                RemotePenguinScreen.SetActive(value: false);
            }
            else
            {
                RemotePenguinScreen.SetActive(value: true);
            }
            switch (newState)
            {
            case DanceBattleVisualsState.Off:
                startTimerForNextLobbyStart();
                break;

            case DanceBattleVisualsState.Game:
                RedScoreBar.StopBounceAnim();
                BlueScoreBar.StopBounceAnim();
                MoveIconContainer.SetActive(value: true);
                setChatVisible(visible: false);
                if (isFirstTurn)
                {
                    CoroutineRunner.Start(playDanceMusicAfterDelay(DanceMusicStartDelay), this, "");
                    isFirstTurn = false;
                }
                CoroutineRunner.Start(switchStateAfterDelay(currentSequenceSet.SequenceDisplayTimeInSeconds, DanceBattleVisualsState.TurnTimer), this, "DanceBattleTimerWait");
                break;

            case DanceBattleVisualsState.TurnTimer:
            {
                destroyMoveIcons();
                MoveIconInputContainer.SetActive(value: true);
                for (int i = 0; i < currentSequenceSet.SequenceLength; i++)
                {
                    DanceBattleMoveIcon component = UnityEngine.Object.Instantiate(moveIconPrefab, MoveIconInputContainer.transform, worldPositionStays: false).GetComponent <DanceBattleMoveIcon>();
                    component.SetState((localPlayerTeamId != 1) ? DanceBattleMoveIcon.MoveIconState.BlankBlue : DanceBattleMoveIcon.MoveIconState.BlankRed);
                    moveIconList.Add(component);
                }
                dispatcher.DispatchEvent(new DanceBattleEvents.SequenceDisplayEnd(this));
                TurnTimer.StartCountdown(currentSequenceSet.TurnTimeInSeconds);
                CoroutineRunner.Start(switchStateAfterDelay(currentSequenceSet.TurnTimeInSeconds, DanceBattleVisualsState.PerformingMoves), this, "DanceBattleResultsWait");
                break;
            }

            case DanceBattleVisualsState.PerformingMoves:
            {
                destroyMoveIcons();
                setChatVisible(visible: true);
                StageAnimator.SetTrigger("StrobesHigh");
                string parameter = $"High{currentTurnData.RoundNum}";
                EventManager.Instance.PostEvent("MUS/Town/DJCadence/DanceGame", EventAction.SetSwitch, parameter, musicTargetObject);
                dispatcher.DispatchEvent(default(DanceBattleEvents.TurnTimerComplete));
                break;
            }

            case DanceBattleVisualsState.RoundResults:
            {
                StageAnimator.SetTrigger("StrobesLow");
                string trigger = "ResultLow";
                if (lastScoreBlueDelta > lastScoreRedDelta)
                {
                    trigger = "ResultPerfectBlue";
                }
                else if (lastScoreBlueDelta < lastScoreRedDelta)
                {
                    trigger = "ResultPerfectRed";
                }
                else if (lastScoreRedDelta > 0.5f)
                {
                    trigger = "ResultMed";
                }
                StageAnimator.SetTrigger(trigger);
                if (currentTurnData.RoundNum == danceBattleDefinition.NumberOfRounds - 1)
                {
                    CoroutineRunner.Start(switchStateAfterDelay(danceBattleDefinition.TurnStartDelayInSeconds, DanceBattleVisualsState.FinalResults), this, "DanceBattleResultsWait");
                }
                EventManager.Instance.PostEvent("MUS/Town/DJCadence/DanceGame", EventAction.SetSwitch, "Low", musicTargetObject);
                break;
            }

            case DanceBattleVisualsState.FinalResults:
                if (currentScoreData != null)
                {
                    int  num  = ((!(currentScoreData.Team1Score > currentScoreData.Team2Score)) ? 1 : 0);
                    bool flag = currentScoreData.Team1Score == currentScoreData.Team2Score;
                    if (flag)
                    {
                        StageAnimator.SetTrigger("WinTie");
                        WinnerText.text = localizer.GetTokenTranslation("PartyGames.FindFour.Draw");
                        WinnerBG.SelectColor(2);
                        FloorController.SetFloorHighlight(redHighlightOn: true, blueHighlightOn: true);
                        FloorController.SetFloorAnim(redAnimOn: true, blueAnimOn: true);
                    }
                    else if (num == 0)
                    {
                        StageAnimator.SetTrigger("WinBlue");
                        WinnerText.text = localizer.GetTokenTranslation("Activity.DanceBattle.TeamBlueWin");
                        WinnerBG.SelectColor(0);
                        FloorController.SetFloorHighlight(redHighlightOn: false, blueHighlightOn: true);
                        FloorController.SetFloorAnim(redAnimOn: false, blueAnimOn: true);
                    }
                    else
                    {
                        StageAnimator.SetTrigger("WinRed");
                        WinnerText.text = localizer.GetTokenTranslation("Activity.DanceBattle.TeamRedWin");
                        WinnerBG.SelectColor(1);
                        FloorController.SetFloorHighlight(redHighlightOn: true, blueHighlightOn: false);
                        FloorController.SetFloorAnim(redAnimOn: true, blueAnimOn: false);
                    }
                    if (flag || localPlayerTeamId == num)
                    {
                        EventManager.Instance.PostEvent("MUS/Town/DJCadence/DanceGame", EventAction.SetSwitch, "Win", musicTargetObject);
                    }
                    else
                    {
                        EventManager.Instance.PostEvent("MUS/Town/DJCadence/DanceGame", EventAction.SetSwitch, "Lose", musicTargetObject);
                    }
                    dispatcher.DispatchEvent(new DanceBattleEvents.FinalResultsShown(flag, num));
                    if (EndGameParticleSelector != null)
                    {
                        EndGameParticleSelector.SelectGameObject(num);
                    }
                }
                break;
            }
            currentState = newState;
        }