Add complete content: recipes, French translations, music/cookie events
- Add 34 crafting recipes (materials, consumables, cosmetics, adventures, boxes)
- Add French translations for all 8 remaining adventures
- Add missing item definitions (resource_max_*, music_melody, cookie_fortune)
- Add MusicPlayedEvent and CookieFortuneEvent for special box types
- Make box_story, box_cookie, box_music reachable from box_of_boxes
- Fix content file copying in csproj (None -> Content)
- Add global.json pinning .NET 10 SDK
- Add graceful Console.Clear() error handling
- Add recipe localization keys (EN/FR)
- Add adventure localization keys (EN/FR)
2026-03-10 18:45:54 +01:00
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
"id": "refine_wood",
|
|
|
|
|
"nameKey": "recipe.refine_wood",
|
|
|
|
|
"workstation": "Foundry",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "material_wood_raw", "quantity": 2}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "material_wood_refined", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "smelt_bronze_ingot",
|
|
|
|
|
"nameKey": "recipe.smelt_bronze_ingot",
|
|
|
|
|
"workstation": "Furnace",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "material_bronze_raw", "quantity": 3}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "material_bronze_ingot", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "smelt_iron_ingot",
|
|
|
|
|
"nameKey": "recipe.smelt_iron_ingot",
|
|
|
|
|
"workstation": "Furnace",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "material_iron_raw", "quantity": 3}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "material_iron_ingot", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "smelt_steel_ingot",
|
|
|
|
|
"nameKey": "recipe.smelt_steel_ingot",
|
|
|
|
|
"workstation": "Furnace",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "material_steel_raw", "quantity": 4}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "material_steel_ingot", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "smelt_titanium_ingot",
|
|
|
|
|
"nameKey": "recipe.smelt_titanium_ingot",
|
|
|
|
|
"workstation": "Furnace",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "material_titanium_raw", "quantity": 5}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "material_titanium_ingot", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "forge_carbonfiber_sheet",
|
|
|
|
|
"nameKey": "recipe.forge_carbonfiber_sheet",
|
|
|
|
|
"workstation": "Forge",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "material_carbonfiber_raw", "quantity": 4}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "material_carbonfiber_sheet", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"id": "craft_pilot_glasses",
|
|
|
|
|
"nameKey": "recipe.craft_pilot_glasses",
|
|
|
|
|
"workstation": "Workbench",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "cosmetic_eyes_sunglasses", "quantity": 1},
|
|
|
|
|
{"itemDefinitionId": "material_bronze_ingot", "quantity": 1},
|
|
|
|
|
{"itemDefinitionId": "tint_silver", "quantity": 1}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "cosmetic_eyes_pilotglasses", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "forge_armored_plate",
|
|
|
|
|
"nameKey": "recipe.forge_armored_plate",
|
|
|
|
|
"workstation": "Forge",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "material_steel_ingot", "quantity": 3},
|
2026-03-11 17:50:37 +01:00
|
|
|
{"itemDefinitionId": "material_carbonfiber_sheet", "quantity": 2}
|
Add complete content: recipes, French translations, music/cookie events
- Add 34 crafting recipes (materials, consumables, cosmetics, adventures, boxes)
- Add French translations for all 8 remaining adventures
- Add missing item definitions (resource_max_*, music_melody, cookie_fortune)
- Add MusicPlayedEvent and CookieFortuneEvent for special box types
- Make box_story, box_cookie, box_music reachable from box_of_boxes
- Fix content file copying in csproj (None -> Content)
- Add global.json pinning .NET 10 SDK
- Add graceful Console.Clear() error handling
- Add recipe localization keys (EN/FR)
- Add adventure localization keys (EN/FR)
2026-03-10 18:45:54 +01:00
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "cosmetic_body_armored", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "engineer_rocket_boots",
|
|
|
|
|
"nameKey": "recipe.engineer_rocket_boots",
|
|
|
|
|
"workstation": "EngineerDesk",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "cosmetic_legs_short", "quantity": 1},
|
|
|
|
|
{"itemDefinitionId": "material_titanium_ingot", "quantity": 1},
|
Remove 6 unused resource types and add item utility snapshot test
Strip Health, Mana, Food, Stamina, Oxygen, Energy — only Gold and Blood
remain as they serve as adventure gates (Contemporary ≥30, DarkFantasy ≥20).
Remove 22 orphaned items, 5 recipes, and the AlchemyTable workstation.
Replace energy_cell in rocket_boots recipe with cosmic_shard.
Change box_endgame condition from AllResourcesVisible to BoxesOpenedAbove:500.
Add ItemUtilitySnapshot test that maps every item to its usage contexts
(loot sources, crafting, interactions, adventures) and generates a report.
DEBUG overwrites the snapshot; RELEASE asserts no changes.
Update specifications.md and CLAUDE.md to reflect resource cleanup.
Remove obsolete bugs.md and refactoring_plan.md.
2026-03-15 15:05:45 +01:00
|
|
|
{"itemDefinitionId": "cosmic_shard", "quantity": 2}
|
Add complete content: recipes, French translations, music/cookie events
- Add 34 crafting recipes (materials, consumables, cosmetics, adventures, boxes)
- Add French translations for all 8 remaining adventures
- Add missing item definitions (resource_max_*, music_melody, cookie_fortune)
- Add MusicPlayedEvent and CookieFortuneEvent for special box types
- Make box_story, box_cookie, box_music reachable from box_of_boxes
- Fix content file copying in csproj (None -> Content)
- Add global.json pinning .NET 10 SDK
- Add graceful Console.Clear() error handling
- Add recipe localization keys (EN/FR)
- Add adventure localization keys (EN/FR)
2026-03-10 18:45:54 +01:00
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "cosmetic_legs_rocketboots", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"id": "chart_star_navigation",
|
|
|
|
|
"nameKey": "recipe.chart_star_navigation",
|
|
|
|
|
"workstation": "DrawingTable",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "space_coordinates", "quantity": 1},
|
|
|
|
|
{"itemDefinitionId": "space_map", "quantity": 1}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "space_key", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "engrave_royal_seal",
|
|
|
|
|
"nameKey": "recipe.engrave_royal_seal",
|
|
|
|
|
"workstation": "EngravingBench",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "medieval_crest", "quantity": 1},
|
2026-03-11 17:50:37 +01:00
|
|
|
{"itemDefinitionId": "medieval_scroll", "quantity": 1}
|
Add complete content: recipes, French translations, music/cookie events
- Add 34 crafting recipes (materials, consumables, cosmetics, adventures, boxes)
- Add French translations for all 8 remaining adventures
- Add missing item definitions (resource_max_*, music_melody, cookie_fortune)
- Add MusicPlayedEvent and CookieFortuneEvent for special box types
- Make box_story, box_cookie, box_music reachable from box_of_boxes
- Fix content file copying in csproj (None -> Content)
- Add global.json pinning .NET 10 SDK
- Add graceful Console.Clear() error handling
- Add recipe localization keys (EN/FR)
- Add adventure localization keys (EN/FR)
2026-03-10 18:45:54 +01:00
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "medieval_seal", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "enchant_dark_grimoire",
|
|
|
|
|
"nameKey": "recipe.enchant_dark_grimoire",
|
|
|
|
|
"workstation": "TransformationPentacle",
|
|
|
|
|
"ingredients": [
|
2026-03-11 17:50:37 +01:00
|
|
|
{"itemDefinitionId": "darkfantasy_ring", "quantity": 2}
|
Add complete content: recipes, French translations, music/cookie events
- Add 34 crafting recipes (materials, consumables, cosmetics, adventures, boxes)
- Add French translations for all 8 remaining adventures
- Add missing item definitions (resource_max_*, music_melody, cookie_fortune)
- Add MusicPlayedEvent and CookieFortuneEvent for special box types
- Make box_story, box_cookie, box_music reachable from box_of_boxes
- Fix content file copying in csproj (None -> Content)
- Add global.json pinning .NET 10 SDK
- Add graceful Console.Clear() error handling
- Add recipe localization keys (EN/FR)
- Add adventure localization keys (EN/FR)
2026-03-10 18:45:54 +01:00
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "darkfantasy_grimoire", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "fuse_cosmic_crystal",
|
|
|
|
|
"nameKey": "recipe.fuse_cosmic_crystal",
|
|
|
|
|
"workstation": "MatterSynthesizer",
|
|
|
|
|
"ingredients": [
|
2026-03-11 17:50:37 +01:00
|
|
|
{"itemDefinitionId": "cosmic_shard", "quantity": 2}
|
Add complete content: recipes, French translations, music/cookie events
- Add 34 crafting recipes (materials, consumables, cosmetics, adventures, boxes)
- Add French translations for all 8 remaining adventures
- Add missing item definitions (resource_max_*, music_melody, cookie_fortune)
- Add MusicPlayedEvent and CookieFortuneEvent for special box types
- Make box_story, box_cookie, box_music reachable from box_of_boxes
- Fix content file copying in csproj (None -> Content)
- Add global.json pinning .NET 10 SDK
- Add graceful Console.Clear() error handling
- Add recipe localization keys (EN/FR)
- Add adventure localization keys (EN/FR)
2026-03-10 18:45:54 +01:00
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "cosmic_crystal", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "splice_glowing_dna",
|
|
|
|
|
"nameKey": "recipe.splice_glowing_dna",
|
|
|
|
|
"workstation": "GeneticModStation",
|
|
|
|
|
"ingredients": [
|
2026-03-11 17:50:37 +01:00
|
|
|
{"itemDefinitionId": "microscopic_bacteria", "quantity": 1},
|
Add complete content: recipes, French translations, music/cookie events
- Add 34 crafting recipes (materials, consumables, cosmetics, adventures, boxes)
- Add French translations for all 8 remaining adventures
- Add missing item definitions (resource_max_*, music_melody, cookie_fortune)
- Add MusicPlayedEvent and CookieFortuneEvent for special box types
- Make box_story, box_cookie, box_music reachable from box_of_boxes
- Fix content file copying in csproj (None -> Content)
- Add global.json pinning .NET 10 SDK
- Add graceful Console.Clear() error handling
- Add recipe localization keys (EN/FR)
- Add adventure localization keys (EN/FR)
2026-03-10 18:45:54 +01:00
|
|
|
{"itemDefinitionId": "microscopic_prion", "quantity": 1}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "microscopic_dna", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "preserve_amber",
|
|
|
|
|
"nameKey": "recipe.preserve_amber",
|
|
|
|
|
"workstation": "StasisChamber",
|
|
|
|
|
"ingredients": [
|
2026-03-11 17:50:37 +01:00
|
|
|
{"itemDefinitionId": "prehistoric_tooth", "quantity": 2}
|
Add complete content: recipes, French translations, music/cookie events
- Add 34 crafting recipes (materials, consumables, cosmetics, adventures, boxes)
- Add French translations for all 8 remaining adventures
- Add missing item definitions (resource_max_*, music_melody, cookie_fortune)
- Add MusicPlayedEvent and CookieFortuneEvent for special box types
- Make box_story, box_cookie, box_music reachable from box_of_boxes
- Fix content file copying in csproj (None -> Content)
- Add global.json pinning .NET 10 SDK
- Add graceful Console.Clear() error handling
- Add recipe localization keys (EN/FR)
- Add adventure localization keys (EN/FR)
2026-03-10 18:45:54 +01:00
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "prehistoric_amber", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"id": "craft_box_ok_tier",
|
|
|
|
|
"nameKey": "recipe.craft_box_ok_tier",
|
|
|
|
|
"workstation": "Workbench",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "material_wood_refined", "quantity": 2},
|
|
|
|
|
{"itemDefinitionId": "material_bronze_ingot", "quantity": 1}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "box_ok_tier", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "craft_box_cool",
|
|
|
|
|
"nameKey": "recipe.craft_box_cool",
|
|
|
|
|
"workstation": "Forge",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "material_steel_ingot", "quantity": 2},
|
|
|
|
|
{"itemDefinitionId": "tint_neon", "quantity": 1}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "box_cool", "quantity": 1}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "craft_box_epic",
|
|
|
|
|
"nameKey": "recipe.craft_box_epic",
|
|
|
|
|
"workstation": "Printer3D",
|
|
|
|
|
"ingredients": [
|
|
|
|
|
{"itemDefinitionId": "material_titanium_ingot", "quantity": 2},
|
|
|
|
|
{"itemDefinitionId": "material_carbonfiber_sheet", "quantity": 1},
|
|
|
|
|
{"itemDefinitionId": "tint_gold", "quantity": 1}
|
|
|
|
|
],
|
|
|
|
|
"result": {"itemDefinitionId": "box_epic", "quantity": 1}
|
|
|
|
|
}
|
|
|
|
|
]
|