private void Awake()
 {
     dispatcher              = playgroundController.EventDispatcher;
     eventChannel            = new EventChannel(dispatcher);
     contentSchedulerService = Service.Get <ContentSchedulerService>();
     localizer            = Service.Get <Localizer>();
     dataEntityCollection = Service.Get <CPDataEntityCollection>();
     evergreenMusicTarget = GameObject.Find(EvergreenMusicTargetPath);
     EventManager.Instance.PostEvent(MusicEventName, EventAction.PlaySound, evergreenMusicTarget);
     createCoMusicTarget = GameObject.Find(CrateCoMusicTargetPath);
     Service.Get <EventDispatcher>().AddListener <ZoneTransitionEvents.ZoneTransition>(onZoneTransition);
     Service.Get <EventDispatcher>().AddListener <RewardServiceEvents.RewardsEarned>(onRewardsEarned);
     Service.Get <EventDispatcher>().AddListener <IslandTargetsEvents.ClockTowerStateChanged>(onClockTowerStateChange);
     if (DisableWhenNoGameServer.IsGameServerAvailable())
     {
         gameTimer = new Timer(1f, repeat: true, delegate
         {
             onGameTimerTick();
         });
         animatorFloatingClock = ClockTimer.GetComponentInChildren <Animator>();
         CoroutineRunner.Start(setScarecrowVisible(isVisible: true), this, "setScarecrowVisible");
         CoroutineRunner.Start(setClockTimerVisible(isVisible: false), this, "setClockTimerVisible");
         eventChannel.AddListener <IslandTargetsEvents.TargetsRemainingUpdated>(onTargetsRemainingUpdated);
         eventChannel.AddListener <IslandTargetsEvents.GameRoundStarted>(onRoundStarted);
         eventChannel.AddListener <IslandTargetsEvents.GameRoundEnded>(onRoundEnded);
         eventChannel.AddListener <IslandTargetsEvents.TargetGameTimeOut>(onGameTimeOut);
         eventChannel.AddListener <IslandTargetsEvents.StatsUpdated>(onStatsUpdated);
         if (TimeUtils.isMultipleOfXMinutesAfterTheHour(contentSchedulerService.PresentTime(), islandTargetsPlayground.EveryXMinutesAfterTheHour))
         {
             gotoFiveSecsGameStartMarkState();
         }
         else
         {
             InvokeRepeating("displayGameStartCountdown", 0f, 1f);
         }
     }
     else
     {
         ClockTimer.SetActive(value: false);
         WinStreakText.SetText(BestEverStreak.ToString());
         DailyRecordText.transform.parent.gameObject.SetActive(value: false);
     }
     if (string.IsNullOrEmpty(BI_Tier1Name))
     {
         BI_Tier1Name = "crate_co_game";
         Log.LogError(this, $"Error: Tier1 name for BI is not set on '{base.gameObject.GetPath()}'");
     }
 }
        private void Start()
        {
            PreLobbyTimer.Format = formatTimer;
            LobbyTimer.Format    = formatTimer;
            dataEntityCollection = Service.Get <CPDataEntityCollection>();
            dispatcher           = Service.Get <EventDispatcher>();
            localPlayerSessionId = dataEntityCollection.LocalPlayerSessionId;
            localizer            = Service.Get <Localizer>();
            moveIconList         = new List <DanceBattleMoveIcon>();
            getDefinitions();
            DanceBattleLobbyMmoItemObserver lobbyObserver = LobbyObserver;

            lobbyObserver.LobbyStartedAction = (Action <long>)Delegate.Combine(lobbyObserver.LobbyStartedAction, new Action <long>(onLobbyStarted));
            DanceBattleLobbyMmoItemObserver lobbyObserver2 = LobbyObserver;

            lobbyObserver2.LobbyEndedAction = (System.Action)Delegate.Combine(lobbyObserver2.LobbyEndedAction, new System.Action(onLobbyEnded));
            DanceBattleLobbyMmoItemObserver lobbyObserver3 = LobbyObserver;

            lobbyObserver3.LobbyPlayersUpdatedAction = (Action <PartyGamePlayerCollection>)Delegate.Combine(lobbyObserver3.LobbyPlayersUpdatedAction, new Action <PartyGamePlayerCollection>(onLobbyPlayersUpdated));
            DanceBattleMmoItemObserver gameObserver = GameObserver;

            gameObserver.GameStartedAction = (System.Action)Delegate.Combine(gameObserver.GameStartedAction, new System.Action(onGameStarted));
            DanceBattleMmoItemObserver gameObserver2 = GameObserver;

            gameObserver2.GameEndedAction = (System.Action)Delegate.Combine(gameObserver2.GameEndedAction, new System.Action(onGameEnded));
            DanceBattleMmoItemObserver gameObserver3 = GameObserver;

            gameObserver3.TurnDataUpdatedAction = (Action <DanceBattleTurnData>)Delegate.Combine(gameObserver3.TurnDataUpdatedAction, new Action <DanceBattleTurnData>(onTurnStarted));
            DanceBattleMmoItemObserver gameObserver4 = GameObserver;

            gameObserver4.ScoresUpdatedAction = (Action <DanceBattleScoreData>)Delegate.Combine(gameObserver4.ScoresUpdatedAction, new Action <DanceBattleScoreData>(onScoresUpdated));
            DanceBattleAnimationEventHandler animEventHandler = AnimEventHandler;

            animEventHandler.OnStartTurnSequence = (System.Action)Delegate.Combine(animEventHandler.OnStartTurnSequence, new System.Action(startTurnSequence));
            dispatcher.AddListener <DanceBattleEvents.TurnInputSent>(onTurnInputSent);
            setState(DanceBattleVisualsState.Off);
            if (!DisableWhenNoGameServer.IsGameServerAvailable())
            {
                Screens[7].SetActive(value: false);
            }
            musicTargetObject = GameObject.Find(MusicTargetObjectPath);
            Content.LoadAsync(onMoveIconLoaded, MoveIconKey);
        }