diff --git a/data/json/recipes/ammo/shot.json b/data/json/recipes/ammo/shot.json index bf60bd2d04907..a220d96a7eb49 100644 --- a/data/json/recipes/ammo/shot.json +++ b/data/json/recipes/ammo/shot.json @@ -68,6 +68,7 @@ "book_learn": [ [ "survival_book", 1 ], [ "mag_survival", 1 ] ], "time": "4 m", "batch_time_factors": [ 60, 5 ], + "using": [ [ "shot_forming", 1 ], [ "ammo_bullet", 5 ], [ "ammo_410shot", 1 ] ], "tools": [ [ [ "press_dowel", -1 ] ] ], "components": [ [ [ "chem_black_powder", 10 ] ] ] }, diff --git a/data/json/recipes/armor/bespoke_armor/nomad.json b/data/json/recipes/armor/bespoke_armor/nomad.json index 81e63960caa96..a2594f346ef83 100644 --- a/data/json/recipes/armor/bespoke_armor/nomad.json +++ b/data/json/recipes/armor/bespoke_armor/nomad.json @@ -31,6 +31,7 @@ "copy-from": "helmet_nomad", "time": "2 h", "using": [ [ "filament_canvas", 60 ], [ "fastener_small", 4 ] ], + "qualities": [ { "id": "LEATHER_AWL", "level": 1 }, { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "hat_ball", 1 ], [ "hat_boonie", 1 ], [ "hat_golf", 1 ] ], [ [ "glasses_safety", 1 ], [ "glasses_bal", 1 ], [ "goggles_ski", 1 ], [ "face_shield_plastic", 1 ] ], diff --git a/data/json/recipes/armor/feet.json b/data/json/recipes/armor/feet.json index 39dec81e08a8b..17d641f4bec53 100644 --- a/data/json/recipes/armor/feet.json +++ b/data/json/recipes/armor/feet.json @@ -158,7 +158,8 @@ "copy-from": "boots_fsurvivor", "time": "22 h 30 m", "byproducts": [ [ "scrap_kevlar", 20 ], [ "scrap_nomex", 20 ] ], - "using": [ [ "tailoring_kevlar_fabric", 6 ], [ "tailoring_nomex_patchwork", 6 ], [ "fastener_small", 2 ] ] + "using": [ [ "tailoring_kevlar_fabric", 6 ], [ "tailoring_nomex_patchwork", 6 ], [ "fastener_small", 2 ] ], + "components": [ [ [ "duct_tape", 62 ] ], [ [ "boots_combat", 1 ], [ "boots_steel", 1 ], [ "boots_bunker", 1 ] ] ] }, { "result": "boots_fur", @@ -411,7 +412,8 @@ [ "adhesive_rubber", 1 ], [ "tailoring_neoprene_patchwork", 2 ], [ "fastener_small", 6 ] - ] + ], + "components": [ [ [ "wetsuit_booties", 1 ] ] ] }, { "result": "xl_boots_h20survivor", @@ -424,7 +426,8 @@ [ "adhesive_rubber", 2 ], [ "tailoring_neoprene_patchwork", 4 ], [ "fastener_small", 6 ] - ] + ], + "components": [ [ [ "wetsuit_booties", 1 ] ] ] }, { "result": "boots_h20survivor_light", @@ -463,7 +466,8 @@ [ "adhesive_rubber", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "fastener_small", 6 ] - ] + ], + "components": [ [ [ "wetsuit_booties", 1 ] ] ] }, { "result": "xl_boots_h20survivor_light", @@ -476,7 +480,8 @@ [ "adhesive_rubber", 2 ], [ "tailoring_neoprene_patchwork", 2 ], [ "fastener_small", 6 ] - ] + ], + "components": [ [ [ "wetsuit_booties", 1 ] ] ] }, { "result": "boots_h20survivor_thick", @@ -515,7 +520,8 @@ [ "adhesive_rubber", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "fastener_small", 6 ] - ] + ], + "components": [ [ [ "wetsuit_booties_thick", 1 ] ] ] }, { "result": "xl_boots_h20survivor_thick", @@ -528,7 +534,8 @@ [ "adhesive_rubber", 2 ], [ "tailoring_neoprene_patchwork", 2 ], [ "fastener_small", 6 ] - ] + ], + "components": [ [ [ "wetsuit_booties_thick", 1 ] ] ] }, { "result": "boots_hsurvivor", @@ -1989,6 +1996,7 @@ "id_suffix": "from_rope", "type": "recipe", "time": "2 h", + "qualities": [ { "id": "CUT", "level": 2 } ], "components": [ [ [ "rope_natural_short", 1, "LIST" ] ] ], "byproducts": [ [ "string_36", 3 ] ] }, @@ -1996,6 +2004,7 @@ "copy-from": "espadrilles", "result": "xl_espadrilles", "type": "recipe", + "qualities": [ { "id": "CUT", "level": 2 } ], "using": [ [ "tailoring_cotton", 1.5 ] ], "components": [ [ [ "filament", 1200, "LIST" ] ] ] }, @@ -2005,6 +2014,7 @@ "id_suffix": "from_rope", "type": "recipe", "time": "2 h", + "qualities": [ { "id": "CUT", "level": 2 } ], "components": [ [ [ "rope_natural_short", 1, "LIST" ] ] ], "byproducts": [ [ "string_36", 2 ] ] }, @@ -2012,6 +2022,7 @@ "copy-from": "espadrilles", "result": "xs_espadrilles", "type": "recipe", + "qualities": [ { "id": "CUT", "level": 2 } ], "using": [ [ "tailoring_cotton", 1 ] ], "components": [ [ [ "filament", 600, "LIST" ] ] ] }, @@ -2021,6 +2032,7 @@ "id_suffix": "from_rope", "type": "recipe", "time": "2 h", + "qualities": [ { "id": "CUT", "level": 2 } ], "components": [ [ [ "rope_natural_short", 1, "LIST" ] ] ], "byproducts": [ [ "string_36", 4 ] ] } diff --git a/data/json/recipes/armor/gambeson_crafts.json b/data/json/recipes/armor/gambeson_crafts.json index 3229444b60404..e7729aba17154 100644 --- a/data/json/recipes/armor/gambeson_crafts.json +++ b/data/json/recipes/armor/gambeson_crafts.json @@ -832,6 +832,7 @@ "copy-from": "aketon_wool", "time": "45 h", "using": [ [ "filament_canvas", 450 ], [ "fastener_large", 2 ], [ "fastener_small", 14 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "santa_belt", 1 ] ], [ [ "quilt", 2 ], [ "quilt_patchwork", 2 ] ], @@ -847,6 +848,7 @@ "copy-from": "aketon_wool", "time": "22 h 30 m", "using": [ [ "filament_canvas", 225 ], [ "fastener_large", 2 ], [ "fastener_small", 14 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "santa_belt", 1 ] ], [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ], @@ -887,6 +889,7 @@ "copy-from": "aketon_wool_vest", "time": "24 h", "using": [ [ "filament_canvas", 310 ], [ "fastener_large", 2 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "santa_belt", 1 ] ], [ [ "quilt", 2 ], [ "quilt_patchwork", 2 ] ], @@ -902,6 +905,7 @@ "copy-from": "aketon_wool_vest", "time": "12 h", "using": [ [ "filament_canvas", 155 ], [ "fastener_large", 2 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "santa_belt", 1 ] ], [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ], @@ -938,6 +942,7 @@ "copy-from": "aketon_pants_wool", "time": "30 h", "using": [ [ "filament_canvas", 225 ], [ "fastener_small", 7 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "quilt", 2 ], [ "quilt_patchwork", 2 ] ] ], "byproducts": [ [ "scrap_felt", 89 ], [ "felt_patch", 9 ] ] }, @@ -949,6 +954,7 @@ "copy-from": "aketon_pants_wool", "time": "15 h", "using": [ [ "filament_canvas", 112 ], [ "fastener_small", 5 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ] ], "byproducts": [ [ "scrap_felt", 45 ], [ "felt_patch", 4 ] ] }, @@ -981,6 +987,7 @@ "copy-from": "aketon_hood_wool", "time": "7 h 30 m", "using": [ [ "filament_canvas", 75 ], [ "fastener_small", 3 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ] ], "byproducts": [ [ "scrap_felt", 629 ], [ "felt_patch", 69 ] ] }, @@ -992,6 +999,7 @@ "copy-from": "aketon_hood_wool", "time": "3 h 45 m", "using": [ [ "filament_canvas", 37 ], [ "fastener_small", 2 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ] ], "byproducts": [ [ "scrap_felt", 995 ], [ "felt_patch", 110 ] ] }, @@ -1024,6 +1032,7 @@ "copy-from": "aketon_gloves_wool", "time": "15 h", "using": [ [ "filament_canvas", 54 ], [ "fastener_small", 3 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ] ], "byproducts": [ [ "scrap_felt", 1068 ], [ "felt_patch", 118 ] ] }, @@ -1035,6 +1044,7 @@ "copy-from": "aketon_gloves_wool", "time": "8 h", "using": [ [ "filament_canvas", 27 ], [ "fastener_small", 2 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ] ], "byproducts": [ [ "scrap_felt", 1214 ], [ "felt_patch", 135 ] ] }, @@ -1071,6 +1081,7 @@ "copy-from": "gambeson_wool", "time": "97 h", "using": [ [ "filament_canvas", 1050 ], [ "fastener_large", 2 ], [ "fastener_small", 15 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "santa_belt", 1 ] ], [ [ "quilt", 5 ], [ "quilt_patchwork", 5 ] ], @@ -1086,6 +1097,7 @@ "copy-from": "gambeson_wool", "time": "49 h", "using": [ [ "filament_canvas", 550 ], [ "fastener_large", 2 ], [ "fastener_small", 8 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "santa_belt", 1 ] ], [ [ "quilt", 3 ], [ "quilt_patchwork", 3 ] ], @@ -1126,6 +1138,7 @@ "copy-from": "gambeson_wool_thinsleeved", "time": "87 h", "using": [ [ "filament_canvas", 900 ], [ "fastener_large", 2 ], [ "fastener_small", 15 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "santa_belt", 1 ] ], [ [ "quilt", 4 ], [ "quilt_patchwork", 4 ] ], @@ -1141,6 +1154,7 @@ "copy-from": "gambeson_wool_thinsleeved", "time": "44 h", "using": [ [ "filament_canvas", 450 ], [ "fastener_large", 2 ], [ "fastener_small", 8 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "santa_belt", 1 ] ], [ [ "quilt", 2 ], [ "quilt_patchwork", 2 ] ], @@ -1181,6 +1195,7 @@ "copy-from": "gambeson_wool_vest", "time": "54 h", "using": [ [ "filament_canvas", 795 ], [ "fastener_large", 2 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "santa_belt", 1 ] ], [ [ "quilt", 4 ], [ "quilt_patchwork", 4 ] ], @@ -1196,6 +1211,7 @@ "copy-from": "gambeson_wool_vest", "time": "27 h", "using": [ [ "filament_canvas", 398 ], [ "fastener_large", 2 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "santa_belt", 1 ] ], [ [ "quilt", 2 ], [ "quilt_patchwork", 2 ] ], @@ -1232,6 +1248,7 @@ "copy-from": "gambeson_pants_wool", "time": "60 h", "using": [ [ "filament_canvas", 405 ], [ "fastener_small", 7 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "quilt", 2 ], [ "quilt_patchwork", 2 ] ], [ [ "quilt", 2 ], [ "quilt_patchwork", 2 ] ] ], "byproducts": [ [ "scrap_felt", 116 ], [ "felt_patch", 20 ] ] }, @@ -1243,6 +1260,7 @@ "copy-from": "gambeson_pants_wool", "time": "30 h", "using": [ [ "filament_canvas", 202 ], [ "fastener_small", 5 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ], [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ] ], "byproducts": [ [ "scrap_felt", 58 ], [ "felt_patch", 10 ] ] }, @@ -1275,6 +1293,7 @@ "copy-from": "gambeson_gloves_wool", "time": "12 h", "using": [ [ "filament_canvas", 105 ], [ "fastener_small", 3 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ] ], "byproducts": [ [ "scrap_felt", 702 ], [ "felt_patch", 78 ] ] }, @@ -1286,6 +1305,7 @@ "copy-from": "gambeson_gloves_wool", "time": "6 h", "using": [ [ "filament_canvas", 52 ], [ "fastener_small", 2 ] ], + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "FABRIC_CUT", "level": 1 } ], "components": [ [ [ "quilt", 1 ], [ "quilt_patchwork", 1 ] ] ], "byproducts": [ [ "scrap_felt", 1031 ], [ "felt_patch", 114 ] ] }, diff --git a/data/json/recipes/armor/hands.json b/data/json/recipes/armor/hands.json index eef507448cac5..c37fd2e4a6246 100644 --- a/data/json/recipes/armor/hands.json +++ b/data/json/recipes/armor/hands.json @@ -64,6 +64,7 @@ "copy-from": "gauntlets_acidchitin", "time": "12 h", "using": [ [ "armor_acidchitin", 6 ], [ "strap_small", 1 ], [ "clasps", 1 ] ], + "qualities": [ { "id": "CUT_FINE", "level": 1 } ], "components": [ [ [ "cordage_superior", 2, "LIST" ] ] ] }, { @@ -348,35 +349,40 @@ "type": "recipe", "copy-from": "gloves_h20survivor", "time": "12 h", - "using": [ [ "tailoring_neoprene_patchwork", 4 ], [ "tailoring_kevlar_fabric", 8 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 4 ], [ "tailoring_kevlar_fabric", 8 ] ], + "components": [ [ [ "wetsuit_gloves", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "xs_gloves_h20survivor", "type": "recipe", "copy-from": "gloves_h20survivor", "time": "6 h", - "using": [ [ "tailoring_neoprene_patchwork", 2 ], [ "tailoring_kevlar_fabric", 4 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 2 ], [ "tailoring_kevlar_fabric", 4 ] ], + "components": [ [ [ "wetsuit_gloves", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "gloves_h20survivor_light", "type": "recipe", "copy-from": "gloves_h20survivor", "time": "12 h", - "using": [ [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 5 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 5 ] ], + "components": [ [ [ "wetsuit_gloves", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "xl_gloves_h20survivor_light", "type": "recipe", "copy-from": "gloves_h20survivor_light", "time": "18 h", - "using": [ [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 8 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 8 ] ], + "components": [ [ [ "wetsuit_gloves", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "xs_gloves_h20survivor_light", "type": "recipe", "copy-from": "gloves_h20survivor_light", "time": "10 h", - "using": [ [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 4 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 4 ] ], + "components": [ [ [ "wetsuit_gloves", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "gloves_h20survivor_thick", @@ -391,14 +397,16 @@ "type": "recipe", "copy-from": "gloves_h20survivor_thick", "time": "18 h", - "using": [ [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 16 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 16 ] ], + "components": [ [ [ "wetsuit_gloves", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "xs_gloves_h20survivor_thick", "type": "recipe", "copy-from": "gloves_h20survivor_thick", "time": "8 h", - "using": [ [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 8 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 8 ] ], + "components": [ [ [ "wetsuit_gloves", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "gloves_hsurvivor", @@ -1134,14 +1142,16 @@ "type": "recipe", "copy-from": "wetsuit_gloves", "time": "9 h", - "using": [ [ "tailoring_neoprene_patchwork", 6 ], [ "tailoring_nylon_patchwork", 8 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 6 ], [ "tailoring_nylon_patchwork", 8 ] ], + "components": [ [ [ "glue_weak", 250 ] ] ] }, { "result": "xs_wetsuit_gloves", "type": "recipe", "copy-from": "wetsuit_gloves", "time": "5 h", - "using": [ [ "tailoring_neoprene_patchwork", 3 ], [ "tailoring_nylon_patchwork", 4 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 3 ], [ "tailoring_nylon_patchwork", 4 ] ], + "components": [ [ [ "glue_weak", 250 ] ] ] }, { "result": "wetsuit_gloves_thick", @@ -1149,21 +1159,24 @@ "copy-from": "wetsuit_gloves", "difficulty": 5, "time": "9 h", - "using": [ [ "tailoring_neoprene_patchwork", 6 ], [ "tailoring_nylon_patchwork", 10 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 6 ], [ "tailoring_nylon_patchwork", 10 ] ], + "components": [ [ [ "glue_weak", 250 ] ] ] }, { "result": "xl_wetsuit_gloves_thick", "type": "recipe", "copy-from": "wetsuit_gloves_thick", "time": "14 h", - "using": [ [ "tailoring_neoprene_patchwork", 8 ], [ "tailoring_nylon_patchwork", 15 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 8 ], [ "tailoring_nylon_patchwork", 15 ] ], + "components": [ [ [ "glue_weak", 250 ] ] ] }, { "result": "xs_wetsuit_gloves_thick", "type": "recipe", "copy-from": "wetsuit_gloves_thick", "time": "7 h", - "using": [ [ "tailoring_neoprene_patchwork", 5 ], [ "tailoring_nylon_patchwork", 8 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 5 ], [ "tailoring_nylon_patchwork", 8 ] ], + "components": [ [ [ "glue_weak", 250 ] ] ] }, { "result": "lc_chainmail_hands", diff --git a/data/json/recipes/armor/head.json b/data/json/recipes/armor/head.json index 201cbcf56f243..f7c72a4919b01 100644 --- a/data/json/recipes/armor/head.json +++ b/data/json/recipes/armor/head.json @@ -506,6 +506,7 @@ "copy-from": "helmet_barbute", "time": "12 h", "using": [ [ "blacksmithing_standard", 28 ], [ "steel_standard", 7 ] ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], "components": [ [ [ "fur", 3 ], [ "leather", 3 ] ] ] }, @@ -1072,14 +1073,16 @@ "type": "recipe", "copy-from": "hood_h20survivor", "time": "6 h", - "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 3 ], [ "tailoring_kevlar_fabric", 8 ] ] + "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 3 ], [ "tailoring_kevlar_fabric", 8 ] ], + "components": [ [ [ "wetsuit_hood", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "xl_hood_h20survivor", "type": "recipe", "copy-from": "hood_h20survivor", "time": "10 h", - "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 6 ], [ "tailoring_kevlar_fabric", 15 ] ] + "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 6 ], [ "tailoring_kevlar_fabric", 15 ] ], + "components": [ [ [ "wetsuit_hood", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "hood_h20survivor_light", @@ -1087,21 +1090,24 @@ "copy-from": "hood_h20survivor", "time": "12 h", "autolearn": true, - "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 10 ] ] + "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 10 ] ], + "components": [ [ [ "wetsuit_hood", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "xs_hood_h20survivor_light", "type": "recipe", "copy-from": "hood_h20survivor_light", "time": "6 h", - "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 8 ] ] + "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 8 ] ], + "components": [ [ [ "wetsuit_hood", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "xl_hood_h20survivor_light", "type": "recipe", "copy-from": "hood_h20survivor_light", "time": "10 h", - "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 15 ] ] + "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 15 ] ], + "components": [ [ [ "wetsuit_hood", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "hood_h20survivor_thick", @@ -1117,14 +1123,16 @@ "type": "recipe", "copy-from": "hood_h20survivor_thick", "time": "6 h", - "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 15 ] ] + "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 15 ] ], + "components": [ [ [ "wetsuit_hood_thick", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "xl_hood_h20survivor_thick", "type": "recipe", "copy-from": "hood_h20survivor_thick", "time": "10 h", - "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 30 ] ] + "using": [ [ "tailoring_nylon_patchwork", 1 ], [ "tailoring_neoprene_patchwork", 1 ], [ "tailoring_kevlar_fabric", 30 ] ], + "components": [ [ [ "wetsuit_hood_thick", 1 ] ], [ [ "glue_weak", 250 ] ] ] }, { "result": "hood_lsurvivor", @@ -1540,6 +1548,8 @@ "type": "recipe", "copy-from": "mask_fsurvivor", "using": [ [ "sewing_aramids", 7 ], [ "tailoring_leather_patchwork", 2 ] ], + "qualities": [ { "id": "LEATHER_AWL", "level": 1 }, { "id": "FABRIC_CUT", "level": 2 }, { "id": "COOK", "level": 3 } ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "glasses_bal", 1 ], [ "rigid_plastic_sheet", 1 ], [ "survivor_goggles", 1 ] ], [ [ "mask_gas", 1 ], [ "mask_bunker", 1 ], [ "mask_gas_half", 1 ], [ "mask_gas_xs", 1 ], [ "mask_gas_xl", 1 ] ], @@ -1552,6 +1562,8 @@ "type": "recipe", "copy-from": "mask_fsurvivor", "using": [ [ "sewing_aramids", 15 ], [ "tailoring_leather_patchwork", 2 ] ], + "qualities": [ { "id": "LEATHER_AWL", "level": 1 }, { "id": "FABRIC_CUT", "level": 2 }, { "id": "COOK", "level": 3 } ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "glasses_bal", 2 ], [ "rigid_plastic_sheet", 1 ], [ "survivor_goggles", 1 ] ], [ [ "mask_gas", 1 ], [ "mask_bunker", 1 ], [ "mask_gas_half", 1 ], [ "mask_gas_xs", 1 ], [ "mask_gas_xl", 1 ] ], @@ -1752,6 +1764,15 @@ "category": "CC_*", "subcategory": "CSC_*_NESTED", "using": [ [ "sewing_standard", 8 ], [ "tailoring_leather_patchwork", 1 ] ], + "qualities": [ + { "id": "LEATHER_AWL", "level": 1 }, + { "id": "FABRIC_CUT", "level": 2 }, + { "id": "OVEN", "level": 1 }, + { "id": "HAMMER", "level": 1 }, + { "id": "SAW_M", "level": 1 }, + { "id": "DRILL", "level": 1 } + ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "glasses_bal", 1 ], [ "rigid_plastic_sheet", 1 ], [ "survivor_goggles", 1 ] ], [ [ "mask_gas", 1 ], [ "mask_bunker", 1 ], [ "mask_gas_half", 1 ], [ "mask_gas_xs", 1 ], [ "mask_gas_xl", 1 ] ], @@ -1766,6 +1787,15 @@ "category": "CC_*", "subcategory": "CSC_*_NESTED", "using": [ [ "sewing_standard", 13 ], [ "tailoring_leather_patchwork", 3 ] ], + "qualities": [ + { "id": "LEATHER_AWL", "level": 1 }, + { "id": "FABRIC_CUT", "level": 2 }, + { "id": "OVEN", "level": 1 }, + { "id": "HAMMER", "level": 1 }, + { "id": "SAW_M", "level": 1 }, + { "id": "DRILL", "level": 1 } + ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "glasses_bal", 2 ], [ "rigid_plastic_sheet", 1 ], [ "survivor_goggles", 1 ] ], [ [ "mask_gas", 1 ], [ "mask_bunker", 1 ], [ "mask_gas_half", 1 ], [ "mask_gas_xs", 1 ], [ "mask_gas_xl", 1 ] ], @@ -1806,6 +1836,8 @@ "category": "CC_*", "subcategory": "CSC_*_NESTED", "using": [ [ "sewing_standard", 8 ], [ "tailoring_leather_patchwork", 1 ] ], + "qualities": [ { "id": "LEATHER_AWL", "level": 1 }, { "id": "FABRIC_CUT", "level": 2 }, { "id": "OVEN", "level": 1 } ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "mask_gas", 1 ], [ "mask_bunker", 1 ], [ "mask_gas_half", 1 ], [ "mask_gas_xs", 1 ], [ "mask_gas_xl", 1 ] ], [ [ "wax_any", 1, "LIST" ], [ "any_tallow", 3, "LIST" ] ] @@ -1818,6 +1850,8 @@ "category": "CC_*", "subcategory": "CSC_*_NESTED", "using": [ [ "sewing_standard", 13 ], [ "tailoring_leather_patchwork", 3 ] ], + "qualities": [ { "id": "LEATHER_AWL", "level": 1 }, { "id": "FABRIC_CUT", "level": 2 }, { "id": "OVEN", "level": 1 } ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "mask_gas", 1 ], [ "mask_bunker", 1 ], [ "mask_gas_half", 1 ], [ "mask_gas_xs", 1 ], [ "mask_gas_xl", 1 ] ], [ [ "wax_any", 2, "LIST" ], [ "any_tallow", 6, "LIST" ] ] @@ -1884,6 +1918,8 @@ "category": "CC_*", "subcategory": "CSC_*_NESTED", "using": [ [ "sewing_standard", 8 ], [ "tailoring_leather_patchwork", 1 ] ], + "qualities": [ { "id": "LEATHER_AWL", "level": 1 }, { "id": "FABRIC_CUT", "level": 2 }, { "id": "OVEN", "level": 1 } ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "glasses_bal", 1 ], [ "rigid_plastic_sheet", 1 ], [ "survivor_goggles", 1 ] ], [ [ "mask_gas", 1 ], [ "mask_bunker", 1 ], [ "mask_gas_half", 1 ], [ "mask_gas_xs", 1 ], [ "mask_gas_xl", 1 ] ], @@ -1897,6 +1933,8 @@ "category": "CC_*", "subcategory": "CSC_*_NESTED", "using": [ [ "sewing_standard", 13 ], [ "tailoring_leather_patchwork", 3 ] ], + "qualities": [ { "id": "LEATHER_AWL", "level": 1 }, { "id": "FABRIC_CUT", "level": 2 }, { "id": "OVEN", "level": 1 } ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "glasses_bal", 2 ], [ "rigid_plastic_sheet", 1 ], [ "survivor_goggles", 1 ] ], [ [ "mask_gas", 1 ], [ "mask_bunker", 1 ], [ "mask_gas_half", 1 ], [ "mask_gas_xs", 1 ], [ "mask_gas_xl", 1 ] ], @@ -3654,7 +3692,7 @@ "using": [ [ "blacksmithing_standard", 4 ], [ "mc_steel_standard", 1 ] ], "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], - "components": [ [ ] ] + "components": [ [ [ "fur", 4 ], [ "leather", 4 ] ] ] }, { "result": "xl_ch_helmet_turban", @@ -3664,7 +3702,7 @@ "using": [ [ "blacksmithing_standard", 4 ], [ "mc_steel_standard", 1 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], - "components": [ [ ] ] + "components": [ [ [ "fur", 4 ], [ "leather", 4 ] ] ] }, { "result": "lc_chainmail_face", diff --git a/data/json/recipes/armor/pets_dog.json b/data/json/recipes/armor/pets_dog.json index cadf748003e9e..829ebcebae7dd 100644 --- a/data/json/recipes/armor/pets_dog.json +++ b/data/json/recipes/armor/pets_dog.json @@ -100,6 +100,7 @@ "time": "6 h", "reversible": true, "using": [ [ "sewing_standard", 15 ], [ "clasps", 3 ] ], + "qualities": [ { "id": "CUT", "level": 2 } ], "components": [ [ [ "bone", 13 ], [ "bone_human", 13 ], [ "bone_demihuman", 13 ] ], [ [ "vest_leather", 1 ] ] ], "proficiencies": [ { "proficiency": "prof_leatherworking_basic" }, diff --git a/data/json/recipes/armor/suit.json b/data/json/recipes/armor/suit.json index d3806c3e13993..ac340bf9dca93 100644 --- a/data/json/recipes/armor/suit.json +++ b/data/json/recipes/armor/suit.json @@ -60,14 +60,16 @@ "type": "recipe", "copy-from": "armor_chitin", "time": "13 h", - "using": [ [ "armor_chitin", 65 ], [ "strap_large", 16 ], [ "tailoring_leather_patchwork", 6 ] ] + "using": [ [ "armor_chitin", 65 ], [ "strap_large", 16 ], [ "tailoring_leather_patchwork", 6 ] ], + "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "police_belt", 1 ], [ "fireman_belt", 1 ] ] ] }, { "result": "xl_armor_chitin", "type": "recipe", "copy-from": "armor_chitin", "time": "27 h", - "using": [ [ "armor_chitin", 112 ], [ "strap_large", 18 ], [ "tailoring_leather_patchwork", 9 ] ] + "using": [ [ "armor_chitin", 112 ], [ "strap_large", 18 ], [ "tailoring_leather_patchwork", 9 ] ], + "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "police_belt", 1 ], [ "fireman_belt", 1 ] ] ] }, { "result": "armor_acidchitin", @@ -354,7 +356,8 @@ "copy-from": "armor_scrapsuit", "time": "2 h", "using": [ [ "cordage", 8 ], [ "mixed_steel", 5 ] ], - "components": [ [ [ "cotton_patchwork", 23 ] ] ] + "components": [ [ [ "cotton_patchwork", 23 ] ] ], + "qualities": [ { "id": "CUT", "level": 2 }, { "id": "HAMMER", "level": 1 }, { "id": "SAW_M", "level": 1 } ] }, { "result": "armor_xl_scrapsuit", @@ -370,7 +373,8 @@ "copy-from": "armor_scrapsuit", "time": "1 h 30 m", "using": [ [ "cordage", 5 ], [ "mixed_steel", 3 ] ], - "components": [ [ [ "cotton_patchwork", 18 ] ] ] + "components": [ [ [ "cotton_patchwork", 18 ] ] ], + "qualities": [ { "id": "CUT", "level": 2 }, { "id": "HAMMER", "level": 1 }, { "id": "SAW_M", "level": 1 } ] }, { "result": "armor_xs_scrapsuit", @@ -2075,14 +2079,16 @@ "type": "recipe", "copy-from": "wetsuit", "time": "8 h", - "using": [ [ "tailoring_neoprene_patchwork", 25 ], [ "tailoring_nylon_patchwork", 40 ], [ "fastener_small", 6 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 25 ], [ "tailoring_nylon_patchwork", 40 ], [ "fastener_small", 6 ] ], + "components": [ [ [ "zipper_long_plastic", 1 ] ] ] }, { "result": "xl_wetsuit", "type": "recipe", "copy-from": "wetsuit", "time": "15 h", - "using": [ [ "tailoring_neoprene_patchwork", 45 ], [ "tailoring_nylon_patchwork", 75 ], [ "fastener_small", 6 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 45 ], [ "tailoring_nylon_patchwork", 75 ], [ "fastener_small", 6 ] ], + "components": [ [ [ "zipper_long_plastic", 1 ] ] ] }, { "result": "wetsuit_thick", @@ -2098,14 +2104,16 @@ "type": "recipe", "copy-from": "wetsuit_thick", "time": "16 h", - "using": [ [ "tailoring_neoprene_patchwork", 42 ], [ "tailoring_nylon_patchwork", 85 ], [ "fastener_small", 6 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 42 ], [ "tailoring_nylon_patchwork", 85 ], [ "fastener_small", 6 ] ], + "components": [ [ [ "zipper_long_plastic", 1 ] ] ] }, { "result": "xl_wetsuit_thick", "type": "recipe", "copy-from": "wetsuit_thick", "time": "30 h", - "using": [ [ "tailoring_neoprene_patchwork", 75 ], [ "tailoring_nylon_patchwork", 160 ], [ "fastener_small", 6 ] ] + "using": [ [ "tailoring_neoprene_patchwork", 75 ], [ "tailoring_nylon_patchwork", 160 ], [ "fastener_small", 6 ] ], + "components": [ [ [ "zipper_long_plastic", 1 ] ] ] }, { "result": "wetsuit_spring", diff --git a/data/json/recipes/armor/torso.json b/data/json/recipes/armor/torso.json index 5fb3bab009818..b051a126c68ce 100644 --- a/data/json/recipes/armor/torso.json +++ b/data/json/recipes/armor/torso.json @@ -472,7 +472,8 @@ "result": "xs_bra", "type": "recipe", "copy-from": "bra", - "using": [ [ "tailoring_cotton_patchwork", 1 ], [ "fastener_small", 1 ] ] + "using": [ [ "tailoring_cotton_patchwork", 1 ], [ "fastener_small", 1 ] ], + "components": [ [ [ "lc_wire", 1 ] ] ] }, { "result": "bellyband", @@ -5333,14 +5334,16 @@ "type": "recipe", "copy-from": "armor_chitin_vest", "time": "345 m", - "using": [ [ "armor_chitin", 26 ], [ "tailoring_leather_patchwork", 2 ] ] + "using": [ [ "armor_chitin", 26 ], [ "tailoring_leather_patchwork", 2 ] ], + "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "police_belt", 1 ], [ "fireman_belt", 1 ] ] ] }, { "result": "xl_armor_chitin_vest", "type": "recipe", "copy-from": "armor_chitin_vest", "time": "613 m", - "using": [ [ "armor_chitin", 45 ], [ "tailoring_leather_patchwork", 4 ] ] + "using": [ [ "armor_chitin", 45 ], [ "tailoring_leather_patchwork", 4 ] ], + "components": [ [ [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "police_belt", 1 ], [ "fireman_belt", 1 ] ] ] }, { "copy-from": "sundress", diff --git a/data/json/recipes/food/carnivore.json b/data/json/recipes/food/carnivore.json index ec5d8a7cc3407..b13db2014350e 100644 --- a/data/json/recipes/food/carnivore.json +++ b/data/json/recipes/food/carnivore.json @@ -195,18 +195,6 @@ "proficiencies": [ { "proficiency": "prof_food_prep" } ], "components": [ [ [ "mutant_meat", 1 ] ], [ [ "pepper", 1 ] ], [ [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, - { - "type": "recipe", - "copy-from": "mutant_meat_cooked", - "result": "meat_mutant_tainted_cooked", - "components": [ [ [ "meat_mutant_tainted", 1 ] ] ] - }, - { - "type": "recipe", - "result": "meat_mutant_tainted_smoked", - "copy-from": "meat_smoked", - "components": [ [ [ "meat_mutant_tainted", 1 ] ] ] - }, { "type": "recipe", "activity_level": "NO_EXERCISE", @@ -483,6 +471,22 @@ "proficiencies": [ { "proficiency": "prof_food_prep" }, { "proficiency": "prof_preservation" }, { "proficiency": "prof_food_curing" } ], "components": [ [ [ "meat_red_raw", 1, "LIST" ] ] ] }, + { + "type": "recipe", + "copy-from": "mutant_meat_cooked", + "result": "meat_mutant_tainted_cooked", + "qualities": [ { "id": "COOK", "level": 1 } ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], + "components": [ [ [ "meat_mutant_tainted", 1 ] ] ] + }, + { + "type": "recipe", + "result": "meat_mutant_tainted_smoked", + "copy-from": "meat_smoked", + "qualities": [ { "id": "COOK", "level": 1 } ], + "tools": [ [ [ "smoking_heat", 30, "LIST" ] ] ], + "components": [ [ [ "meat_mutant_tainted", 1 ] ] ] + }, { "type": "recipe", "activity_level": "NO_EXERCISE", diff --git a/data/json/recipes/food/seed.json b/data/json/recipes/food/seed.json index a0a812f4c769c..ffbaeff1484aa 100644 --- a/data/json/recipes/food/seed.json +++ b/data/json/recipes/food/seed.json @@ -74,13 +74,15 @@ "//": "For things where some sort of seed extraction is necessary", "copy-from": "seed_extraction_base", "time": "2m", - "qualities": [ { "id": "CUT", "level": 1 } ] + "//qualities": [ { "id": "CUT", "level": 1 } ], + "//1": "qualities cannot be inherited, so this is what should be copied into the real recipes" }, { "result": "seed_pumpkin", "type": "recipe", "copy-from": "seed_extraction_cutting", "//p": "about 450-500 seeds per pumpkin, which is about a cup. these are fairly small pumpkins.", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "pumpkin", 1 ] ] ], "byproducts": [ [ "pumpkin_cut", 4 ] ], "result_mult": 6 @@ -89,6 +91,7 @@ "result": "seed_watermelon", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "watermelon", 1 ] ] ], "byproducts": [ [ "watermelon_wedge", 16 ] ], "result_mult": 5 @@ -97,6 +100,7 @@ "result": "seed_melon", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "melon", 1 ] ] ], "byproducts": [ [ "melon_chunks", 4 ] ], "result_mult": 3 @@ -105,6 +109,7 @@ "result": "seed_cucumber", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "byproducts": [ [ "cucumber_cut", 1 ] ], "components": [ [ [ "cucumber", 1 ] ] ], "result_mult": 2 @@ -113,6 +118,7 @@ "result": "seed_gherkin", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "byproducts": [ [ "gherkin_cut", 1 ] ], "components": [ [ [ "gherkin", 1 ] ] ], "result_mult": 2 @@ -122,6 +128,7 @@ "id_suffix": "with_cutting_tool", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "byproducts": [ [ "eggplant_cut", 2 ] ], "components": [ [ [ "eggplant", 1 ] ] ], "result_mult": 2 @@ -162,6 +169,7 @@ "result": "seed_cattail", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "cattail_stalk", 1 ] ] ] }, { @@ -232,6 +240,7 @@ "result": "seed_zucchini", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "byproducts": [ [ "zucchini_cut", 1 ] ], "components": [ [ [ "zucchini", 1 ] ] ], "result_mult": 2 @@ -272,6 +281,7 @@ "result": "seed_tomato", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "byproducts": [ [ "tomato_cut", 1 ] ], "components": [ [ [ "tomato", 1 ] ] ] }, @@ -279,24 +289,28 @@ "result": "seed_cranberries", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "cranberries", 1 ] ] ] }, { "result": "seed_blackberries", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "blackberries", 1 ] ] ] }, { "result": "seed_blueberries", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "blueberries", 1 ] ] ] }, { "result": "seed_poppy_bud", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "poppy_bud", 4 ] ] ], "result_mult": 2 }, @@ -352,42 +366,49 @@ "result": "seed_raspberries", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "raspberries", 1 ] ] ] }, { "result": "seed_strawberries", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "strawberries", 1 ] ] ] }, { "result": "seed_elderberries", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "elderberries", 1 ] ] ] }, { "result": "seed_mulberries", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "mulberries", 1 ] ] ] }, { "result": "seed_huckleberries", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "huckleberries", 1 ] ] ] }, { "result": "seed_grapes", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "grapes", 1 ] ] ] }, { "result": "seed_rose", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "rose_hips", 1 ] ] ], "byproducts": [ [ "rose_hips_cut", 1 ] ] }, @@ -395,6 +416,7 @@ "result": "seed_chili_pepper", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "chili_pepper", 1 ] ] ], "byproducts": [ [ "chili_pepper_cut", 1 ] ], "result_mult": 2 @@ -403,6 +425,7 @@ "result": "seed_bell_pepper", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "bell_pepper", 1 ] ] ], "byproducts": [ [ "bell_pepper_cut", 1 ] ], "result_mult": 2 @@ -443,6 +466,7 @@ "result": "seed_bee_balm", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "bee_balm", 1 ] ] ] }, { @@ -481,6 +505,7 @@ "result": "seed_dogbane", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "dogbane", 1 ] ] ] }, { @@ -521,6 +546,7 @@ "result": "seed_mugwort", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "mugwort", 1 ] ] ] }, { @@ -528,6 +554,7 @@ "type": "recipe", "difficulty": 4, "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "mushroom", 1 ] ] ] }, { @@ -535,12 +562,14 @@ "type": "recipe", "difficulty": 5, "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "mushroom_morel", 1 ] ] ] }, { "result": "seed_raw_dandelion", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "raw_dandelion", 1 ] ] ], "result_mult": 2 }, @@ -548,6 +577,7 @@ "result": "seed_raw_burdock", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "raw_burdock", 1 ] ] ] }, { @@ -602,66 +632,77 @@ "result": "seed_jerusalem_artichoke", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "jerusalem_artichoke", 1 ] ] ] }, { "result": "seed_maianthemum_stellatum", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "m_stellatum_berries", 1 ] ] ] }, { "result": "seed_wild_sarsaparilla", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "wild_sarsaparilla_root", 1 ] ] ] }, { "result": "seed_mayapple", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "mayapple", 1 ] ] ] }, { "result": "seed_wintergreen", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "wintergreen_berry", 1 ] ] ] }, { "result": "seed_groundnut", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "groundnut", 1 ] ] ] }, { "result": "seed_wild_garlic", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "wild_garlic", 1 ] ] ] }, { "result": "seed_rhubarb", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "rhubarb", 1 ] ] ] }, { "result": "seed_thyme", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "thyme", 1 ] ] ] }, { "result": "seed_veggy_wild", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "veggy_wild", 1 ] ] ] }, { "result": "seed_wild_herbs", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "wild_herbs", 10 ] ] ] }, { @@ -797,6 +838,7 @@ "result": "seed_chamomile", "type": "recipe", "copy-from": "seed_extraction_cutting", + "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "chamomile", 1 ] ] ] }, { diff --git a/data/json/recipes/other/parts_construction.json b/data/json/recipes/other/parts_construction.json index 6190f1c30acf0..8c75c4e01a985 100644 --- a/data/json/recipes/other/parts_construction.json +++ b/data/json/recipes/other/parts_construction.json @@ -684,6 +684,7 @@ "type": "recipe", "copy-from": "nail", "result": "rivets", - "extend": { "tools": [ [ [ "monkey_tool", -1 ] ] ] } + "tools": [ [ [ "hotcut_any", 1, "LIST" ] ], [ [ "nail_header", -1 ] ], [ [ "monkey_tool", -1 ] ] ], + "components": [ [ [ "lc_steel_chunk", 1 ] ] ] } ] diff --git a/data/json/uncraft/classes/ammo.json b/data/json/uncraft/classes/ammo.json index af2010cc15136..8b3f6c70d2204 100644 --- a/data/json/uncraft/classes/ammo.json +++ b/data/json/uncraft/classes/ammo.json @@ -5,6 +5,7 @@ "activity_level": "MODERATE_EXERCISE", "//": "Disassemble a single ammo cartridge", "time": "6 s", - "qualities": [ { "id": "PULL", "level": 1 } ] + "//qualities": [ { "id": "PULL", "level": 1 } ], + "//1": "qualities cannot be inherited, so this is what should be copied into the real recipes" } ] diff --git a/data/json/uncraft/containers/military.json b/data/json/uncraft/containers/military.json index 553358dcb8f84..5083e893e5818 100644 --- a/data/json/uncraft/containers/military.json +++ b/data/json/uncraft/containers/military.json @@ -62,6 +62,8 @@ { "type": "uncraft", "copy-from": "ammunition_box_carlgustav_he", - "result": "ammunition_box_carlgustav_hedp" + "result": "ammunition_box_carlgustav_hedp", + "qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ], + "components": [ [ [ "sheet_metal", 2 ] ], [ [ "sheet_metal_small", 24 ] ], [ [ "scrap", 6 ] ] ] } ] diff --git a/data/mods/DinoMod/recipes/pets_bear.json b/data/mods/DinoMod/recipes/pets_bear.json index e8a494fdcb48d..8a866ccde3bdf 100644 --- a/data/mods/DinoMod/recipes/pets_bear.json +++ b/data/mods/DinoMod/recipes/pets_bear.json @@ -105,6 +105,7 @@ "autolearn": true, "reversible": true, "using": [ [ "sewing_standard", 190 ], [ "surface_heat", 60 ], [ "clasps", 4 ] ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "water", 30 ], [ "water_clean", 30 ] ], [ diff --git a/data/mods/DinoMod/recipes/pets_elephant.json b/data/mods/DinoMod/recipes/pets_elephant.json index 7a8848bf88d6f..de51d40a806c5 100644 --- a/data/mods/DinoMod/recipes/pets_elephant.json +++ b/data/mods/DinoMod/recipes/pets_elephant.json @@ -105,6 +105,7 @@ "autolearn": true, "reversible": true, "using": [ [ "sewing_standard", 190 ], [ "surface_heat", 60 ], [ "clasps", 4 ] ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "water", 30 ], [ "water_clean", 30 ] ], [ diff --git a/data/mods/DinoMod/recipes/pets_ostrich.json b/data/mods/DinoMod/recipes/pets_ostrich.json index 94c1c754903d1..74ea8113698e7 100644 --- a/data/mods/DinoMod/recipes/pets_ostrich.json +++ b/data/mods/DinoMod/recipes/pets_ostrich.json @@ -105,6 +105,7 @@ "autolearn": true, "reversible": true, "using": [ [ "sewing_standard", 190 ], [ "surface_heat", 60 ], [ "clasps", 4 ] ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "water", 30 ], [ "water_clean", 30 ] ], [ diff --git a/data/mods/Magiclysm/recipes/recipe_potions.json b/data/mods/Magiclysm/recipes/recipe_potions.json index f26c88d237cd0..5f6d9a9b08304 100644 --- a/data/mods/Magiclysm/recipes/recipe_potions.json +++ b/data/mods/Magiclysm/recipes/recipe_potions.json @@ -22,6 +22,7 @@ "copy-from": "potion_starter_superior", "result": "potion_starter", "book_learn": [ [ "alchemy_basic", 1 ], [ "necro_basic", 2 ], [ "alchemy_master", 1 ] ], + "qualities": [ { "id": "CHEM", "level": 1 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], "skills_required": [ "spellcraft", 2 ], "difficulty": 3, "tools": [ [ [ "surface_heat", 15, "LIST" ] ] ], @@ -57,6 +58,12 @@ "copy-from": "flask_illumination", "result": "flask_rebreather", "book_learn": [ [ "alchemy_basic", 2 ], [ "alchemy_master", 2 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 1 }, + { "id": "DISTILL", "level": 1 }, + { "id": "CONCENTRATE", "level": 1 } + ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ], "components": [ [ [ "potion_starter", 2 ] ], @@ -71,6 +78,12 @@ "copy-from": "flask_illumination", "result": "mana_potion_lesser", "book_learn": [ [ "alchemy_basic", 2 ], [ "alchemy_master", 2 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 1 }, + { "id": "DISTILL", "level": 1 }, + { "id": "CONCENTRATE", "level": 1 } + ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ], "using": [ [ "mana_energy_weak", 2 ] ], "components": [ [ [ "potion_starter", 1 ] ] ], @@ -108,6 +121,12 @@ "type": "recipe", "copy-from": "cats_grace_potion", "result": "ogres_strength_potion", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter_superior", 1 ] ], [ [ "fern_flower", 2 ] ], [ [ "olieribos", 4 ] ], [ [ "wood_barnacle", 4 ] ] ] }, @@ -115,6 +134,12 @@ "type": "recipe", "copy-from": "cats_grace_potion", "result": "eagles_sight_potion", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter_superior", 1 ] ], [ [ "fern_flower", 2 ] ], [ [ "dragon_nail", 4 ] ], [ [ "wood_barnacle", 4 ] ] ] }, @@ -122,6 +147,12 @@ "type": "recipe", "copy-from": "cats_grace_potion", "result": "foxs_cunning_potion", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter_superior", 1 ] ], @@ -134,6 +165,12 @@ "type": "recipe", "copy-from": "cats_grace_potion", "result": "flask_resistance", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter", 4 ] ], [ [ "wood_barnacle", 2 ] ], [ [ "olieribos", 2 ] ], [ [ "moly_tuber", 2 ] ] ] }, @@ -141,6 +178,12 @@ "type": "recipe", "copy-from": "cats_grace_potion", "result": "flask_max_mana", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter", 2 ] ], [ [ "golden_reed_stalk", 2 ] ], [ [ "funnelcap_chunk", 6 ] ] ] }, @@ -148,6 +191,12 @@ "type": "recipe", "copy-from": "cats_grace_potion", "result": "flask_fireball", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter", 2 ] ], [ [ "dragon_nail", 2 ] ], [ [ "glowing_mushroom", 4 ] ], [ [ "funnelcap_chunk", 6 ] ] ] }, @@ -157,6 +206,12 @@ "book_learn": [ [ "alchemy_illegal", 5 ] ], "//": "if you read this, ping me to remind me to check does inheritance rewrite book_learn, or does it summarise the values. thank you", "result": "flask_confusion", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter", 2 ] ], [ [ "funnelcap_chunk", 6 ] ], [ [ "glowing_mushroom", 2 ] ], [ [ "kampuch", 1 ] ] ] }, @@ -164,6 +219,12 @@ "type": "recipe", "copy-from": "cats_grace_potion", "result": "flask_spear", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter", 2 ] ], [ [ "dragon_nail", 3 ] ], [ [ "funnelcap_chunk", 5 ] ], [ [ "moly_tuber", 1 ] ] ] }, @@ -171,6 +232,12 @@ "type": "recipe", "copy-from": "cats_grace_potion", "result": "flask_shadow_field", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter", 2 ] ], [ [ "glowing_mushroom", 3 ] ], [ [ "moly_tuber", 2 ] ], [ [ "golden_reed_stalk", 2 ] ] ] }, @@ -178,6 +245,12 @@ "type": "recipe", "copy-from": "cats_grace_potion", "result": "flask_sludge_field", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter", 2 ] ], [ [ "kampuch", 2 ] ], [ [ "golden_reed_stalk", 1 ] ], [ [ "funnelcap_chunk", 8 ] ] ] }, @@ -187,6 +260,12 @@ "result": "alchemist_bomb", "book_learn": [ [ "alchemy_basic", 4 ], [ "alchemy_master", 4 ] ], "using": [ [ "mana_energy_weak", 3 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter", 3 ] ] ] }, @@ -195,6 +274,12 @@ "copy-from": "cats_grace_potion", "result": "mana_potion", "using": [ [ "mana_energy_weak", 3 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ [ [ "potion_starter", 1 ] ] ], "autolearn": true @@ -204,6 +289,12 @@ "copy-from": "cats_grace_potion", "result": "twisted_restore_potion", "book_learn": [ [ "necro_basic", 3 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ @@ -250,6 +341,13 @@ "copy-from": "flask_healing", "result": "flask_stamina", "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], "components": [ [ [ "potion_starter_superior", 2 ] ], [ [ "glowing_mushroom", 2 ] ], @@ -263,6 +361,13 @@ "copy-from": "flask_healing", "result": "flask_excitement", "using": [ [ "mana_energy_weak", 2 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], "components": [ [ [ "potion_starter_superior", 2 ] ], [ [ "wood_barnacle", 2 ] ], [ [ "olieribos", 2 ] ], [ [ "moonflowers", 1 ] ] ] }, @@ -271,6 +376,13 @@ "copy-from": "flask_healing", "result": "flask_regeneration", "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], "components": [ [ [ "potion_starter_superior", 3 ] ], [ [ "wood_barnacle", 4 ], [ "bracken_eye", 1 ] ], @@ -283,6 +395,13 @@ "copy-from": "flask_healing", "result": "flask_mana_regen", "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], "using": [ [ "mana_energy_weak", 1 ] ], "components": [ [ [ "potion_starter_superior", 2 ] ], [ [ "wood_barnacle", 4 ] ], [ [ "golden_reed_stalk", 2 ] ] ] }, @@ -291,6 +410,13 @@ "copy-from": "flask_healing", "result": "flask_mood", "book_learn": [ [ "alchemy_illegal", 5 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], "components": [ [ [ "potion_starter_superior", 1 ] ], [ [ "whiskflower", 4 ] ], [ [ "wood_barnacle", 3 ] ], [ [ "moonflowers", 1 ] ] ] }, @@ -299,6 +425,13 @@ "copy-from": "flask_healing", "result": "flask_charm", "book_learn": [ [ "alchemy_illegal", 5 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], "components": [ [ [ "potion_starter_superior", 2 ] ], [ [ "moonflowers", 2 ] ], [ [ "moly_tuber", 4 ] ] ] }, @@ -308,6 +441,13 @@ "result": "flask_night_vision", "book_learn": [ [ "alchemy_master", 5 ] ], "using": [ [ "mana_energy_weak", 1 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], "components": [ [ [ "potion_starter_superior", 2 ] ], @@ -322,6 +462,13 @@ "copy-from": "flask_healing", "result": "flask_toxin", "book_learn": [ [ "alchemy_illegal", 5 ], [ "necro_basic", 5 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], "components": [ [ [ "potion_starter_superior", 1 ] ], @@ -336,6 +483,13 @@ "copy-from": "flask_healing", "result": "flask_venom", "book_learn": [ [ "alchemy_illegal", 5 ], [ "necro_basic", 5 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], "components": [ [ [ "potion_starter_superior", 1 ] ], @@ -349,6 +503,13 @@ "type": "recipe", "copy-from": "flask_healing", "result": "mana_potion_greater", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "rune_alchemist", -1 ] ] ], "using": [ [ "mana_energy_strong", 1 ], [ "mana_energy_weak", 3 ] ], "components": [ [ [ "potion_starter_superior", 1 ] ] ], @@ -409,6 +570,14 @@ "copy-from": "flask_speed", "result": "flask_teleport_rand", "book_learn": [ [ "alchemy_illegal", 6 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 }, + { "id": "MAGIC_CAULDRON", "level": 1 } + ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], "using": [ [ "mana_energy_strong", 1 ] ], "components": [ [ [ "potion_starter_superior", 3 ] ], [ [ "sojourners_flower", 2 ] ], [ [ "dragon_nail", 4 ] ] ] @@ -418,6 +587,14 @@ "copy-from": "flask_speed", "result": "flask_teleport", "book_learn": [ [ "alchemy_illegal", 6 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 }, + { "id": "MAGIC_CAULDRON", "level": 1 } + ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], "using": [ [ "mana_energy_strong", 2 ] ], "components": [ @@ -431,6 +608,14 @@ "type": "recipe", "copy-from": "flask_speed", "result": "flask_clairvoyance", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 }, + { "id": "MAGIC_CAULDRON", "level": 1 } + ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], "components": [ [ [ "potion_starter_superior", 3 ] ], @@ -445,6 +630,14 @@ "copy-from": "flask_speed", "result": "flask_invisibility", "book_learn": [ [ "alchemy_illegal", 6 ] ], + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 }, + { "id": "MAGIC_CAULDRON", "level": 1 } + ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], "components": [ [ [ "potion_starter_superior", 3 ] ], @@ -458,6 +651,14 @@ "type": "recipe", "copy-from": "flask_speed", "result": "flask_feather", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 }, + { "id": "MAGIC_CAULDRON", "level": 1 } + ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], "components": [ [ [ "potion_starter_superior", 2 ] ], diff --git a/data/mods/aftershock_exoplanet/recipes/robot_recipes.json b/data/mods/aftershock_exoplanet/recipes/robot_recipes.json index 130ad77dc5e4d..48f2ce1ebbbc9 100644 --- a/data/mods/aftershock_exoplanet/recipes/robot_recipes.json +++ b/data/mods/aftershock_exoplanet/recipes/robot_recipes.json @@ -45,9 +45,11 @@ "time": "4 m 10 s", "reversible": false, "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ], - "tools": [ [ [ "electrohack", 20 ] ] ], + "//tools": [ [ [ "electrohack", 20 ] ] ], + "//1": "Tools cannot be inherited", "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ], - "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ] + "//qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], + "//2": "Qualities cannot be inherited" }, { "result": "bot_utilibot_beehive", @@ -67,6 +69,7 @@ [ [ "afs_energy_storage_3", 1 ] ], [ [ "afs_material_1", 7 ] ] ], + "tools": [ [ [ "electrohack", 20 ] ] ], "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ] }, { @@ -81,6 +84,7 @@ [ [ "afs_material_1", 8 ] ], [ [ "robot_controls", 1 ] ] ], + "tools": [ [ [ "electrohack", 20 ] ] ], "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ] }, { diff --git a/src/recipe.cpp b/src/recipe.cpp index 79dcdf16a5d6c..de08188349464 100644 --- a/src/recipe.cpp +++ b/src/recipe.cpp @@ -330,6 +330,17 @@ void recipe::load( const JsonObject &jo, const std::string_view src ) optional( jo, was_loaded, "using", reqs_external, weighted_string_id_reader { 1 } ); + bool inherited_tools = false; + bool inherited_qualities = false; + bool inherited_components = false; + + if( !reqs_internal.empty() ) { + requirement_data r_data = reqs_internal.front().first.obj(); + inherited_tools = !r_data.get_tools().empty(); + inherited_qualities = !r_data.get_qualities().empty(); + inherited_components = !r_data.get_components().empty(); + } + // inline requirements are always replaced (cannot be inherited) reqs_internal.clear(); @@ -461,8 +472,23 @@ void recipe::load( const JsonObject &jo, const std::string_view src ) } const requirement_id req_id( "inline_" + type + "_" + id.str() ); - requirement_data::load_requirement( jo, req_id ); + requirement_data::load_requirement( jo, req_id, false, abstract ); reqs_internal.emplace_back( req_id, 1 ); + + if( inherited_tools && !jo.has_member( "tools" ) ) { + debugmsg( "Recipe %s inherits from recipe that has tools, but does not have any of its own. " + "This is probably an error.", id.str() ); + } + + if( inherited_qualities && !jo.has_member( "qualities" ) ) { + debugmsg( "Recipe %s inherits from recipe that has qualities, but does not have any of its own. " + "This is probably an error.", id.str() ); + } + + if( inherited_components && !jo.has_member( "components" ) ) { + debugmsg( "Recipe %s inherits from recipe that has components, but does not have any of its own. " + "This is probably an error.", id.str() ); + } } static cata::value_ptr calculate_all_blueprint_reqs( diff --git a/src/requirements.cpp b/src/requirements.cpp index 385a3c4531cd1..8f3cc0d5b7006 100644 --- a/src/requirements.cpp +++ b/src/requirements.cpp @@ -440,7 +440,7 @@ requirement_data requirement_data::operator+( const std::pair