Flexible race system with slot-based equipment and dragon race
- Expand race TOML schema: 7 stats, body shape (size/weight/custom slots), natural armor and attacks with damage types, resistances, traits/disadvantages, regen multipliers, vision types, XP rate, guild compatibility - Replace equipped_weapon/equipped_armor with slot-based HashMap<String, Object> - Each race defines available equipment slots; default humanoid slots as fallback - Combat uses natural weapons/armor from race when no gear equipped - DB migration from old weapon/armor columns to equipped_json - Add Dragon race: huge body, custom slots (forelegs/wings/tail), fire breath, natural armor 8, fire immune, slow XP rate for balance - Update all existing races with expanded fields (traits, resistances, vision, regen) - Objects gain optional slot field; kind=weapon/armor still works as fallback - Update chargen to display race traits, size, natural attacks, vision - Update stats display to show equipment and natural bonuses separately - Update TESTING.md and AGENTS.md with race/slot system documentation Made-with: Cursor
This commit is contained in:
27
TESTING.md
27
TESTING.md
@@ -15,7 +15,10 @@ Run through these checks before every commit to ensure consistent feature covera
|
||||
## Character Creation
|
||||
- [ ] New player SSH → gets chargen flow (race + class selection)
|
||||
- [ ] Chargen accepts both number and name input
|
||||
- [ ] All races display with expanded info (size, traits, natural attacks, vision)
|
||||
- [ ] Dragon race shows custom body slots, natural armor, fire breath, vision types
|
||||
- [ ] After chargen, player appears in spawn room with correct stats
|
||||
- [ ] Stats reflect race modifiers (STR, DEX, CON, INT, WIS, PER, CHA)
|
||||
- [ ] Player saved to DB after creation
|
||||
|
||||
## Player Persistence
|
||||
@@ -68,13 +71,18 @@ Run through these checks before every commit to ensure consistent feature covera
|
||||
- [ ] Damage varies between hits (not identical each time)
|
||||
- [ ] Multiple rapid attacks produce different damage values
|
||||
|
||||
## Items
|
||||
## Items & Equipment Slots
|
||||
- [ ] `take <item>` picks up takeable objects
|
||||
- [ ] `drop <item>` places item in room
|
||||
- [ ] `equip <weapon/armor>` works, old gear returns to inventory
|
||||
- [ ] `equip <weapon>` equips to `main_hand` slot (backwards-compat via kind)
|
||||
- [ ] `equip <armor>` equips to appropriate slot (obj `slot` field or fallback)
|
||||
- [ ] Equipping to an occupied slot returns old item to inventory
|
||||
- [ ] `equip` fails if race doesn't have the required slot
|
||||
- [ ] Objects with explicit `slot` field use that slot
|
||||
- [ ] `use <consumable>` heals and removes item (immediate out of combat)
|
||||
- [ ] `use <consumable>` in combat queues for next tick
|
||||
- [ ] `inventory` shows equipped + bag items
|
||||
- [ ] `inventory` shows equipped items by slot name + bag items
|
||||
- [ ] `stats` shows equipment bonuses and natural bonuses separately
|
||||
|
||||
## Status Effects
|
||||
- [ ] Poison deals damage each tick, shows message to player
|
||||
@@ -97,6 +105,19 @@ Run through these checks before every commit to ensure consistent feature covera
|
||||
- [ ] Server remains responsive to immediate commands between ticks
|
||||
- [ ] Multiple players in separate combats are processed independently per tick
|
||||
|
||||
## Race System
|
||||
- [ ] Existing races (Human, Elf, Dwarf, Orc, Halfling) load with expanded fields
|
||||
- [ ] Dragon race loads with custom body, natural attacks, resistances, traits
|
||||
- [ ] Dragon gets custom equipment slots (forelegs, hindlegs, wings, tail)
|
||||
- [ ] Dragon's natural armor (8) shows in stats and affects defense
|
||||
- [ ] Dragon's natural attacks (fire breath 15dmg) affect effective attack
|
||||
- [ ] Items magically resize — no size restrictions on gear (dragon can use swords)
|
||||
- [ ] Races without explicit [body.slots] get default humanoid slots
|
||||
- [ ] Stat modifiers include PER (perception) and CHA (charisma)
|
||||
- [ ] Race traits and disadvantages display during chargen
|
||||
- [ ] XP rate modifier stored per race (dragon = 0.7x)
|
||||
- [ ] Regen modifiers stored per race (dragon HP regen = 1.5x)
|
||||
|
||||
## Attitude System
|
||||
- [ ] Per-player NPC attitudes stored in DB
|
||||
- [ ] `examine` shows attitude label per-player
|
||||
|
||||
Reference in New Issue
Block a user