Priority: HIGH
Status: TODO
Related: #25 (Class Resources), #26 (Spell Slots)
Problem
Character data is not fully persisted to YAML. Currently saves basic info (name, race, class, abilities, HP, AC) but missing:
- ❌ Equipment/inventory items
- ❌ Equipped armor and shield
- ❌ Class resources (Rage, Ki Points, Bardic Inspiration, etc.)
- ❌ Known spells and cantrips
- ❌ Current spell slot state (mentioned in code TODOs)
- ❌ Auto-save on server shutdown not implemented
Result: Players lose resources, spells, and items on server restart!
Acceptance Criteria
Equipment Persistence
Class Resources Persistence (Issue #25)
Spell Persistence
Auto-Save System
YAML Format Updates
Current format:
character_name: Bjorn
race: Human
class: Barbarian
# ... basic fields
New format:
character_name: Bjorn
race: Human
class: Barbarian
# ... existing fields ...
# NEW: Class resources
class_resources:
- name: Rage
current: 1
max: 2
recovery: LONG_REST
# NEW: Spells
known_spells:
- Cure Wounds
- Bless
known_cantrips:
- Sacred Flame
- Light
# NEW: Spell slots
spell_slots_current: [2, 1, 0, 0, 0, 0, 0, 0, 0] # Current slots per level
spell_slots_max: [3, 2, 0, 0, 0, 0, 0, 0, 0] # Max slots per level
# NEW: Equipment
equipment:
- greataxe
- leather_armor
- explorers_pack
equipped_armor: leather_armor
equipped_shield: null
Technical Notes
- Update
CharacterPersistenceLoader.saveCharacter() to save new fields
- Update
CharacterSheet.loadFromData() to load new fields
- Use
ClassResource serialization for resource data
- Consider adding
lastSaved timestamp for debugging
Related Issues
Future Enhancements
- Periodic auto-save (every 5 minutes)
- Character backup system
Priority: HIGH
Status: TODO
Related: #25 (Class Resources), #26 (Spell Slots)
Problem
Character data is not fully persisted to YAML. Currently saves basic info (name, race, class, abilities, HP, AC) but missing:
Result: Players lose resources, spells, and items on server restart!
Acceptance Criteria
Equipment Persistence
Class Resources Persistence (Issue #25)
Spell Persistence
Auto-Save System
CharacterSheetManager.saveAllCharacters()on shutdownYAML Format Updates
Current format:
New format:
Technical Notes
CharacterPersistenceLoader.saveCharacter()to save new fieldsCharacterSheet.loadFromData()to load new fieldsClassResourceserialization for resource datalastSavedtimestamp for debuggingRelated Issues
Future Enhancements