private void OnDestroy()
        {
            dispatcher.RemoveListener <DanceBattleEvents.TurnInputSent>(onTurnInputSent);
            DanceBattleLobbyMmoItemObserver lobbyObserver = LobbyObserver;

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

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

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

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

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

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

            gameObserver4.ScoresUpdatedAction = (Action <DanceBattleScoreData>)Delegate.Remove(gameObserver4.ScoresUpdatedAction, new Action <DanceBattleScoreData>(onScoresUpdated));
        }
        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);
        }