void StartTutorialStepAt(int idx) { running = true; CurrentTutorialIdx = idx; TutorialStep step = tutorialEntries[CurrentTutorialIdx]; currentDuration = step.duration; if (currentDuration >= 0) { elapsed = 0; } tutorialCanvas.gameObject.SetActive(true); tutorialCanvas.enabled = true; overlay.gameObject.SetActive(step.showOverlay); bool highlightPos = step.highlightPositionNode != null; highlight.gameObject.SetActive(highlightPos); if (highlightPos) { highlight.transform.position = step.highlightPositionNode.position; } bool showText = !string.IsNullOrEmpty(step.tutorialText); textBox.gameObject.SetActive(showText); if (showText) { text.text = step.tutorialText; } planetManager.PauseLogic(!step.gameEnabled); planetManager.SetInputEnabled(step.gameInputEnabled); planetManager.setAIEnabled(step.aiEnabled); }