public override void Execute(ActionInvokerData data) { if (!enabled && !AllowInvokeWhenDisabled) { return; } if (Triggered && !Repeatable) { return; } string target = null; switch (Target) { case TargetType.Activator: target = data.Activator.Ref()?.gameObject.name; break; case TargetType.NearestController: target = GetComponentInParent <BaseController>().Ref()?.gameObject.name; break; case TargetType.ByTID: target = TargetId; break; case TargetType.ByReference: target = TargetReference.name; break; } DialogueInitiator.SetDynamicDialogue(ImmersiveMonologue.BuildDialogueScene()); DialogueInitiator.InitiateDialogue(DialogueModule.DynamicDialogueName, Pause, null, target); Triggered = true; }