using UnityEditor; using Minigames.TrashMaze.Objects; namespace Editor { /// /// Custom editor for TrashMazeSwitchToPulver showing maze-specific settings /// [CustomEditor(typeof(TrashMazeSwitchToPulver))] public class TrashMazeSwitchToPulverEditor : ControllerSwitchItemEditor { private SerializedProperty _teleportTarget; private SerializedProperty _targetCameraState; protected override void OnEnable() { base.OnEnable(); _teleportTarget = serializedObject.FindProperty("teleportTarget"); _targetCameraState = serializedObject.FindProperty("targetCameraState"); } protected override void DrawCustomFields() { EditorGUILayout.Space(); // Trash Maze Specific Settings EditorGUILayout.LabelField("Trash Maze - To Pulver Settings", EditorStyles.boldLabel); EditorGUILayout.PropertyField(_teleportTarget); if (_teleportTarget.objectReferenceValue == null) { EditorGUILayout.HelpBox("Assign a Transform where Pulver should be teleported to (maze entrance position). Teleportation happens midway through camera blend.", MessageType.Warning); } else { EditorGUILayout.HelpBox("✓ Pulver will be teleported to this position halfway through the camera blend, creating a seamless 'entering maze' effect.", MessageType.Info); } EditorGUILayout.Space(); EditorGUILayout.PropertyField(_targetCameraState); EditorGUILayout.HelpBox("Camera state to blend to. Typically 'Maze' when entering the maze. Requires TrashMazeCameraController in scene.", MessageType.Info); EditorGUILayout.Space(); // Info box about the behavior EditorGUILayout.HelpBox( "Switch Behavior:\n" + "1. Deactivate current controller (Trafalgar)\n" + "2. Deactivate Pulver's follower mode\n" + "3. Start camera blend to Maze view\n" + "4. ★ Teleport Pulver midway through blend ★\n" + "5. Set Pulver as tracking target immediately\n" + "6. Wait for blend to complete\n" + "7. Activate PulverController for player control\n" + "8. Switch input to 'pulver'", MessageType.None ); } } }