rpg-combat-pi-01/doc/user-story-observations.md

76 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# User Story Observations
## Domain Model Overview
The domain has **four core entities**:
| Entity | Key Properties |
| ---------------------- | ------------------------------------------------------------------------------------------------- |
| **Character** | Health (max 1000/1500), Level (110), Alive/Dead, Factions (many), damage survived, faction count |
| **Magical Object** | Health, maxHealth, type (Healing or Weapon), destroyed flag |
| **Faction** | String/name, members |
| **Damage/Heal events** | Source, target, amount, level-adjusted |
---
## User Story Groups
### 1. Damage & Health (3 rules)
- Characters start at 1000 HP, Alive
- Damage subtracts from HP; death at 0
- Self-damage forbidden
- Healing: self only, dead can't heal
### 2. Levels (2 rules)
- Base level 1; max HP scales at level 6 (→ 1500)
- Level gap ≥ 5: damage ±50% (target higher = -50%, target lower = +50%)
### 3. Factions (3 rules)
- Characters can join/leave multiple factions
- Same faction = Allies: no damage between allies, ally-only healing
### 4. Magical Objects (3 rules)
- **Healing objects**: give HP to characters, can't deal damage, can't be healed
- **Weapons**: deal fixed damage, lose 1 HP per use, can't heal
- Objects are faction-neutral
### 5. Leveling Up (3 rules)
- **Survived damage**: Level 1 → 1000, then +2000 per level (cumulative)
- **Faction diversity**: Level 1 → 3 factions, then +3 per level (cumulative)
- Max level 10, no level loss
---
## Observations & Ambiguities
1. **Max HP scaling**: Only mentions the jump at level 6. What about levels 710? Is max HP flat at 1500, or does it increase further?
2. **Level gap rule**: "5 or more levels" — is it strictly `≥ 5` or `> 5`? The wording says "5 or more" so `≥ 5`.
3. **Survived damage counter**: Is it per-character global (across all battles), or per-battle? The story says "counted over several battles" → global.
4. **Faction diversity counter**: "ever been part of" — cumulative across the character's lifetime, not just current factions.
5. **Level-up timing**: "happens directly afterwards (if the player is still alive)" — level-ups are synchronous, not deferred.
6. **Magical Object durability**: Weapons lose 1 HP per use — does that mean they can be "used" until destroyed (HP = 0)? Healing objects presumably can also be depleted.
7. **Healing cap**: Characters heal up to their max HP (which depends on level), and objects heal up to their own max.
8. **No explicit interface**: The stories describe behavior but don't specify method signatures — we'll need to design the API.
---
## Suggested Implementation Order
1. **Character** (HP, level, alive state, factions)
2. **Damage/Heal mechanics** with faction ally checks
3. **Level-based damage modifiers**
4. **Magical Objects** (Weapons + Healers)
5. **Leveling up** (survived damage + faction diversity)