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

82 lines
2.5 KiB
Markdown

# Base Character Scene with Dialogue System Design Plan
## Overview
Create a base character scene with:
1. A sprite/shape (using Polygon2D for now)
2. A dialogue entity that can be triggered programmatically
3. Visual dialogue box with animation and character-by-character text reveal
4. Test scene to demonstrate the behavior
## Implementation Steps
### 1. Base Character Scene Design
- Create a new scene file `scenes/base_character.tscn`
- Add a Polygon2D node as the character sprite
- Add necessary child nodes for dialogue system integration
- Set up proper positioning and scaling
### 2. Dialogue UI System
- Create dialogue box UI with:
- Background rectangle (white)
- Text display area
- Animation for showing/hiding
- Implement character-by-character text reveal
- Handle timing and duration logic
### 3. Dialogue Action Integration
- Extend or modify DialogueAction to use new UI system
- Ensure compatibility with existing cutscene manager
- Add proper signal handling for animation completion
### 4. Test Scene
- Create test scene `scenes/test_dialogue.tscn`
- Add base character instance
- Automatically trigger dialogue on scene load
- Demonstrate the complete functionality
## Technical Details
### Base Character Scene Structure
```
Node2D (root)
├── Polygon2D (character sprite)
└── DialogueSystem (script for handling dialogue UI)
```
### Dialogue System Components
1. **DialogueBox**: Visual element that appears when dialogue is triggered
2. **TextRevealer**: Handles character-by-character text display
3. **AnimationController**: Manages show/hide animations
4. **Timer**: Controls duration of dialogue display
### DialogueAction Integration Points
- `start()` method should trigger UI display
- Text and duration parameters should be passed to UI system
- Completion signal should be properly emitted
## File Structure
```
scenes/
├── base_character.tscn
└── test_dialogue.tscn
scripts/
├── dialogue_system.gd
└── base_character.gd
cutscene/
└── actions/
└── DialogueAction.gd (modified)
```
## Implementation Approach
1. First, create the base character scene with Polygon2D
2. Implement the dialogue UI system in a separate script
3. Modify DialogueAction to integrate with new UI system
4. Create test scene that demonstrates functionality
5. Ensure all components work together within existing cutscene framework
## Animation Requirements
- Dialogue box should animate in (fade/slide)
- Text should reveal character-by-character with delay
- Dialogue box should animate out after duration ends