protected void startInteraction()
    {
        GameObject gameObject = ActionSequencer.FindActionGraphObject(currentActionGraphGameObject);

        if (gameObject != null && ClubPenguin.SceneRefs.ActionSequencer.StartSequence(base.gameObject, gameObject))
        {
            if (locoEventBroadcaster != null)
            {
                locoEventBroadcaster.BroadcastOnInteractionStarted(gameObject);
            }
            if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out DataEntityHandle handle) && dataEntityCollection.TryGetComponent(handle, out SessionIdData component))
            {
                dispatcher.DispatchEvent(new PenguinInteraction.InteractionStartedEvent(component.SessionId, gameObject));
            }
            LocomotionController currentController = locomotionTracker.GetCurrentController();
            if (currentController != null && (gameObject.GetComponent <ToggleCoreGameplayAction>() != null || gameObject.GetComponent <WarpTunnelAction>() != null))
            {
                currentController.OnBlockingInteractionStarted();
            }
            interactRequest.Reset();
            RetainParticipationWithActionGraphGO();
            ClubPenguin.SceneRefs.ActionSequencer.SequenceCompleted += OnActionSequencerSequenceCompleted;
        }
    }