feat: Implement quest reward chest functionality; enhance gift generation and consumption logic, update database schema, and add tests for new behavior

This commit is contained in:
Alexa
2026-07-08 02:40:42 +03:00
parent 892c27ffea
commit 74951d5c30
6 changed files with 267 additions and 36 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
{
"_comment": "Per-quest reward chest contents. Keyed by the RRO room id the player is in when they open the end-of-quest gift box (the gifts/generate request carries no quest id, so the server keys off the player's current room via presence). Each entry lists the store-item slugs that quest can award; the server picks one at random from the list. Slugs use the same scheme as the store: wardrobe-{guid} for outfits, consumable-{name} for consumables, equipment-{prefab}:{guid} for equipment. Populate `rooms` with real roomId -> item-slug lists.",
"_comment": "Per-quest reward chest contents for RRO rooms. Keyed by the seeded room NAME (RoomEntity.Name, e.g. GoldenTrophy / Crescendo / StuntRunner / CrimsonCauldron / IsleOfLostSkulls / TheRiseofJumbotron) because the end-of-quest gift box (gifts/generate) carries no quest id, so the server keys off the room the player is in (via presence). Each entry lists the store-item slugs that quest's chest can award; the server picks one. Slugs use the store scheme: wardrobe-{guid} for outfit items, equipment-{prefab}:{modguid} for equipment skins, consumable-{name} for consumables (see data/consumables.json). Example: \"GoldenTrophy\": [\"wardrobe-<trophyGuid>\", \"equipment-<prefab>:<guid>\"]. Fill in `rooms` with the per-quest item lists.",
"rooms": {}
}