Wire loot tables into corpse creation

Combat engine looks up mob template loot table and passes to
create_corpse. Goblin template now drops crude club (80%) and
1-3 gold coins (50%).
This commit is contained in:
Jared Miller 2026-02-14 10:05:26 -05:00
parent 189f8ac273
commit 9f0db0ffb1
Signed by: shmup
GPG key ID: 22B5C6D66A38B06C
2 changed files with 16 additions and 1 deletions

View file

@ -4,3 +4,14 @@ pl = 50.0
stamina = 40.0 stamina = 40.0
max_stamina = 40.0 max_stamina = 40.0
moves = ["punch left", "punch right", "sweep"] moves = ["punch left", "punch right", "sweep"]
[[loot]]
name = "crude club"
chance = 0.8
description = "a crude wooden club"
[[loot]]
name = "gold coin"
chance = 0.5
min_count = 1
max_count = 3

View file

@ -171,11 +171,15 @@ async def process_combat() -> None:
# Despawn mob losers, send victory/defeat messages # Despawn mob losers, send victory/defeat messages
if isinstance(loser, Mob): if isinstance(loser, Mob):
from mudlib.corpse import create_corpse from mudlib.corpse import create_corpse
from mudlib.mobs import mob_templates
from mudlib.zone import Zone from mudlib.zone import Zone
zone = loser.location zone = loser.location
if isinstance(zone, Zone): if isinstance(zone, Zone):
create_corpse(loser, zone) # Look up loot table from mob template
template = mob_templates.get(loser.name)
loot_table = template.loot if template else None
create_corpse(loser, zone, loot_table=loot_table)
else: else:
from mudlib.mobs import despawn_mob from mudlib.mobs import despawn_mob