82 lines
2.5 KiB
Markdown
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 |