Files
experiment-adventure-ai/architecture/dialogue_system_architecture.md
2025-08-01 20:07:40 -07:00

93 lines
2.6 KiB
Markdown

# Dialogue System Architecture
```mermaid
graph TD
A[Base Character Scene] --> B(DialogueSystem)
B --> C(DialogueBox UI)
B --> D(TextRevealer)
B --> E(AnimationController)
B --> F(Timer)
C --> G[Visual Display]
D --> H[Character-by-Character Reveal]
E --> I[Show/Hide Animations]
F --> J[Duration Management]
subgraph "Dialogue Flow"
B --> K{Trigger Dialogue}
K -->|Text + Duration| L[Show Dialogue Box]
L --> M[Start Text Reveal]
M --> N[Wait for Duration]
N --> O[Hide Dialogue Box]
end
subgraph "Components"
C --> C1[White Background]
C --> C2[Positioning]
D --> D1[Character Timing]
D --> D2[Text Display]
E --> E1[Animation Playback]
F --> F1[Timer Management]
end
style A fill:#e1f5fe
style B fill:#f3e5f5
style C fill:#e8f5e9
style D fill:#fff3e0
style E fill:#fce4ec
style F fill:#f1f8e9
```
## Component Descriptions
### Base Character Scene (A)
- Contains the character sprite (Polygon2D)
- Acts as the entry point for dialogue triggering
- Manages the dialogue system interface
### DialogueSystem (B) - Main Controller
- Coordinates all dialogue functionality
- Interfaces with UI components
- Handles timing and state management
- Provides public API for triggering dialogue
### DialogueBox UI (C)
- Visual representation of dialogue
- White background container
- Proper positioning relative to character
- Handles visibility states
### TextRevealer (D)
- Manages character-by-character text display
- Controls reveal timing
- Updates text label content incrementally
- Handles text formatting and wrapping
### AnimationController (E)
- Manages show/hide animations
- Controls timing of UI transitions
- Ensures smooth visual experience
- Handles animation cleanup
### Timer (F)
- Manages dialogue duration
- Triggers automatic closure
- Provides timing feedback to system
- Handles edge cases (zero/negative durations)
## Flow Description
1. **Trigger**: Base character calls `trigger_dialogue(text, duration)`
2. **Show**: DialogueSystem initiates show animation for DialogueBox
3. **Reveal**: TextRevealer starts character-by-character text display
4. **Wait**: Timer waits for specified duration
5. **Hide**: AnimationController triggers hide animation
6. **Complete**: System returns to idle state
## Integration Points
- Base Character Scene: Public API interface
- DialogueBox UI: Visual rendering component
- TextRevealer: Text animation logic
- AnimationController: UI transition handling
- Timer: Duration management