Phillip Tarrant
fdd48034e4
feat(api): implement combat loot integration with hybrid static/procedural system
Add CombatLootService that orchestrates loot generation from combat,
supporting both static item drops (consumables, materials) and procedural
equipment generation (weapons, armor with affixes).
Key changes:
- Extend LootEntry model with LootType enum (STATIC/PROCEDURAL)
- Create StaticItemLoader service for consumables/materials from YAML
- Create CombatLootService with full rarity formula incorporating:
- Party average level
- Enemy difficulty tier (EASY: +0%, MEDIUM: +5%, HARD: +15%, BOSS: +30%)
- Character luck stat
- Per-entry rarity bonus
- Integrate with CombatService._calculate_rewards() for automatic loot gen
- Add boss guaranteed drops via generate_boss_loot()
New enemy variants (goblin family proof-of-concept):
- goblin_scout (Easy) - static drops only
- goblin_warrior (Medium) - static + procedural weapon drops
- goblin_chieftain (Hard) - static + procedural weapon/armor drops
Static items added:
- consumables.yaml: health/mana potions, elixirs, food
- materials.yaml: trophy items, crafting materials
Tests: 59 new tests across 3 test files (all passing)
2025-11-27 00:01:17 -06:00
..
2025-11-26 16:14:29 -06:00
2025-11-24 23:10:55 -06:00
2025-11-24 23:10:55 -06:00
2025-11-26 19:54:58 -06:00
2025-11-24 23:10:55 -06:00
2025-11-26 19:54:58 -06:00
2025-11-25 16:32:21 -06:00
2025-11-26 19:54:58 -06:00
2025-11-24 23:10:55 -06:00
2025-11-27 00:01:17 -06:00
2025-11-26 19:54:58 -06:00
2025-11-26 19:54:58 -06:00
2025-11-24 23:10:55 -06:00
2025-11-24 23:10:55 -06:00
2025-11-25 15:52:22 -06:00
2025-11-24 23:10:55 -06:00
2025-11-24 23:10:55 -06:00
2025-11-24 23:10:55 -06:00
2025-11-26 19:54:58 -06:00