Commit Graph

4 Commits

Author SHA1 Message Date
Bastian Wagner
83eef5d9e5 docs(rewards): drop the stale XP reference from the no-partial-writes comment
The comment sat two lines above the deleted experience computation and
still named XP as something the guard protects. Only silver survives.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 13:28:53 +02:00
Bastian Wagner
c9d9144b5f feat(rewards): remove classical XP from the combat reward pipeline 2026-08-21 13:23:46 +02:00
Bastian Wagner
d9585b166a fix(rewards): resolve item definitions up front and stabilize reward item order
Resolve every rolled ItemDefinition before mutating the character or
creating the CombatReward row, so a missing definition can no longer
half-grant (XP/silver saved, reward row created, then throw). Also
make the immediate grant response and a later loadRewards replay
agree on item order by sorting both on itemDefinitionId instead of
roll/insertion order.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 00:36:54 +02:00
Bastian Wagner
af665dc677 feat(rewards): add CombatRewardService with idempotent victory rewards
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 00:13:37 +02:00