diff --git a/data/json/items/armor/cardboard.json b/data/json/items/armor/cardboard.json new file mode 100644 index 0000000000000..519bba16b464b --- /dev/null +++ b/data/json/items/armor/cardboard.json @@ -0,0 +1,140 @@ +[ + { + "id": "helmet_cardboard", + "type": "ARMOR", + "category": "armor", + "looks_like": "helmet_larmor", + "name": { "str": "cardboard 'great' helm" }, + "description": "A cardboard helmet shaped to look like a medieval great helm. Very unencumbering in comparison to actual helmets, with rather obvious drawbacks in exchange. The interior is lined with aluminum, apparently to 'divert the zombie beta rays'. It sure doesn't help with comfort.", + "weight": "1250 g", + "volume": "2750 ml", + "price": 40000, + "price_postapoc": 5000, + "material": [ "cardboard", "aluminum" ], + "symbol": "[", + "color": "brown_yellow", + "armor": [ + { "covers": [ "head" ], "coverage": 100, "encumbrance_modifiers": [ "RESTRICTS_NECK", "WELL_SUPPORTED" ] }, + { "covers": [ "mouth" ], "rigid_layer_only": true, "coverage": 100, "encumbrance": 15 }, + { "covers": [ "eyes" ], "rigid_layer_only": true, "coverage": 95, "encumbrance": 15 } + ], + "warmth": 15, + "material_thickness": 5, + "environmental_protection": 1, + "techniques": [ "WBLOCK_1" ], + "flags": [ "WATER_DISSOLVE", "VARSIZE", "HARD", "PSYSHIELD_PARTIAL", "FRAGILE" ], + "melee_damage": { "bash": 0 } + }, + { + "id": "armor_cardboard", + "type": "ARMOR", + "category": "armor", + "looks_like": "armor_larmor", + "name": { "str": "cardboard 'plate' armor" }, + "description": "A set of cardboard armor that's been duct taped and superglued into place, with paper padding the interior in an unsuccessful attempt to increase comfort. Despite the triple-layering, tensile and shear strength diagrams, and careful design considerations, there's just no way this is going to hold up to a single attack.", + "weight": "3450 g", + "volume": "17500 ml", + "price": 0, + "price_postapoc": 0, + "to_hit": -5, + "material": [ "cardboard", "paper" ], + "symbol": "[", + "color": "brown_yellow", + "warmth": 15, + "longest_side": "120 cm", + "material_thickness": 2, + "flags": [ "WATER_DISSOLVE", "OUTER", "BLOCK_WHILE_WORN", "HARD", "FRAGILE" ], + "armor": [ + { + "material": [ + { "type": "cardboard", "covered_by_mat": 95, "thickness": 2.5 }, + { "type": "paper", "covered_by_mat": 100, "thickness": 0.3 } + ], + "covers": [ "torso" ], + "coverage": 100, + "encumbrance": 18 + }, + { + "material": [ + { "type": "cardboard", "covered_by_mat": 95, "thickness": 2.5 }, + { "type": "paper", "covered_by_mat": 100, "thickness": 0.3 } + ], + "covers": [ "arm_l", "arm_r" ], + "coverage": 100, + "encumbrance": 21 + }, + { + "material": [ + { "type": "cardboard", "covered_by_mat": 95, "thickness": 2.5 }, + { "type": "paper", "covered_by_mat": 100, "thickness": 0.3 } + ], + "covers": [ "leg_l", "leg_r" ], + "coverage": 100, + "encumbrance": 23 + } + ], + "melee_damage": { "bash": 0 } + }, + { + "id": "armor_cardboard_cuirass", + "type": "ARMOR", + "looks_like": "hoodie_brown", + "name": { "str": "cardboard cuirass", "str_pl": "cardboard cuirasses" }, + "category": "armor", + "description": "While this isn't quite the 'heavy ballistic vest' the blueprints pretend it is, the layering makes it almost passable as a form of extremely rudimentary armor. It's still nowhere near as good as basically any other choice, while still being hard to move around in.", + "weight": "2105 g", + "volume": "6 L", + "price": 0, + "price_postapoc": 0, + "to_hit": -5, + "material": [ "cardboard", "paper" ], + "symbol": "[", + "color": "brown_yellow", + "longest_side": "60 cm", + "warmth": 15, + "material_thickness": 6, + "flags": [ "WATER_DISSOLVE", "FRAGILE_MELEE", "VARSIZE", "OUTER", "HARD" ], + "armor": [ { "encumbrance": 12, "coverage": 90, "covers": [ "torso" ] } ], + "melee_damage": { "bash": 0 } + }, + { + "id": "cardboard_crown", + "type": "ARMOR", + "name": { "str": "cardboard crown" }, + "description": "A piece of cardboard crudely bent into shape and cut to look like a crown.", + "weight": "200 g", + "volume": "100 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "cardboard" ], + "looks_like": "crown_golden", + "symbol": "[", + "color": "brown_yellow", + "material_thickness": 1, + "flags": [ "WATER_DISSOLVE", "FRAGILE_MELEE", "NO_WEAR_EFFECT", "FRAGILE", "SOFT" ], + "armor": [ { "encumbrance": 1, "coverage": 20, "covers": [ "head" ], "specifically_covers": [ "head_crown" ] } ], + "use_action": { + "type": "transform", + "menu_text": "Loosen", + "target": "cardboard_crown_loose", + "msg": "You loosen your cardboard crown." + } + }, + { + "id": "cardboard_crown_loose", + "type": "ARMOR", + "name": { "str": "cardboard crown (loosened)", "str_pl": "cardboard crowns (loosened)" }, + "description": "A piece of cardboard crudely bent into shape and cut to look like a crown. This one's been loosened up somewhat, allowing it to be worn over some headgear comfortably.", + "copy-from": "cardboard_crown", + "flags": [ "WATER_DISSOLVE", "FRAGILE_MELEE", "NO_WEAR_EFFECT", "FRAGILE", "OUTER", "POWERARMOR_COMPATIBLE", "SOFT" ], + "use_action": { "type": "transform", "menu_text": "Adjust", "target": "cardboard_crown", "msg": "You adjust your cardboard crown." } + }, + { + "id": "badge_cardboard", + "copy-from": "badge_abstract", + "type": "ARMOR", + "name": { "str": "cardboard badge" }, + "description": "An honorable badge identifying the owner as a \"Knight Errant\" of \"House Da\". The large letters slowly dwindle in size as the badge runs out of space, leaving out the last two letters of Dino Dave's name.", + "flags": [ "WATER_DISSOLVE", "FRAGILE_MELEE", "NO_WEAR_EFFECT", "FRAGILE" ] + } +] diff --git a/data/json/items/book/fabrication.json b/data/json/items/book/fabrication.json index 71eb5e45f8166..02ebee9bf6b4c 100644 --- a/data/json/items/book/fabrication.json +++ b/data/json/items/book/fabrication.json @@ -743,5 +743,26 @@ "intelligence": 8, "time": "25 m", "melee_damage": { "bash": 4 } + }, + { + "id": "recipe_dave_manual", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Dino Dave's cardboard notebook", "str_pl": "copies of Dino Dave's cardboard notebook" }, + "description": "This school notebook contains an astounding amount of \"recipes\" of various cardboard utilities, ranging from the wholly impractical to completely impossible. Despite that, they're illustrated in a surprisingly thorough manner, to the point where you could possibly learn something from studying the chicken scratch and schematics in detail. The last page thanks a number of names, some of which you recognize from the refugee center. Your name covers half the page. At the bottom, it warns you not to let \"the sandman\" read it.", + "weight": "600 g", + "volume": "500 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "paper" ], + "symbol": "?", + "looks_like": "mag_glam", + "color": "brown_yellow", + "skill": "fabrication", + "required_level": 2, + "max_level": 3, + "intelligence": 14, + "time": "20 m", + "fun": -1 } ] diff --git a/data/json/npcs/refugee_center/beggars/BEGGAR_2_Dino_Dave.json b/data/json/npcs/refugee_center/beggars/BEGGAR_2_Dino_Dave.json index 7b9b7e5f218a4..d6f880fb9456d 100644 --- a/data/json/npcs/refugee_center/beggars/BEGGAR_2_Dino_Dave.json +++ b/data/json/npcs/refugee_center/beggars/BEGGAR_2_Dino_Dave.json @@ -50,6 +50,7 @@ { "item": "boxer_shorts" }, { "item": "socks_wool" }, { "item": "dinosuit" }, + { "item": "cardboard_crown_loose" }, { "item": "boots_winter" }, { "item": "coat_winter" } ] diff --git a/data/json/npcs/refugee_center/surface_refugees/NPC_Dino_Dave.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Dino_Dave.json index 4e18e55c6660f..1618a1d9f3950 100644 --- a/data/json/npcs/refugee_center/surface_refugees/NPC_Dino_Dave.json +++ b/data/json/npcs/refugee_center/surface_refugees/NPC_Dino_Dave.json @@ -2,11 +2,34 @@ { "type": "talk_topic", "id": "TALK_DINODAVE_1", - "dynamic_line": "*sits in a surprisingly well-built room made of lovingly assembled cardboard boxes. The area is quite clean and cozy. The whole building is built on top of cargo pallets, insulated with scraps, and waterproofed with plastic. It shows an unexpected amount of design prowess. \"Hello, my noble knight errant,\" Dave intones, his voice solemn. \"We owe you a great debt for your actions of the past. Some day, we shall repay it. Until then, you are welcome here, now and always.\"", + "dynamic_line": { + "concatenate": [ + "*sits in a surprisingly well-built room made of lovingly assembled cardboard boxes. The area is quite clean and cozy. The whole building is built on top of cargo pallets, insulated with scraps, and waterproofed with plastic. It shows an unexpected amount of design prowess. \"Hello, my noble knight errant,\" Dave intones, his voice solemn.", + { + "u_has_var": "u_cardboard_gift", + "type": "dialogue", + "context": "dave", + "value": "finished", + "yes": "\"We hope our gift to you will help repay our great debt.\"", + "no": "\"We owe you a great debt for your actions of the past. Some day, we shall repay it. Until then, you are welcome here, now and always.\"" + } + ] + }, "responses": [ { "text": "Hi Dave. You seem different.", "topic": "TALK_DINODAVE_Different" }, { "text": "How are things going up here on the roof?", "topic": "TALK_DINODAVE_Roof" }, - { "text": "Always good to catch up, Dave. Keep on being you.", "topic": "TALK_DONE" } + { "text": "Always good to catch up, Dave. Keep on being you.", "topic": "TALK_DONE" }, + { + "text": "You said something about a gift?", + "topic": "TALK_DINODAVE_Gift_Given", + "effect": [ { "u_add_var": "u_cardboard_gift", "type": "dialogue", "context": "dave", "value": "finished" } ], + "condition": { + "and": [ + { "u_has_var": "u_cardboard_gift", "type": "dialogue", "context": "dave", "value": "in_progress" }, + { "math": [ "time_since(u_timer_dave_creating_gift)", ">", "time('1 d')" ] } + ] + } + } ] }, { @@ -50,7 +73,53 @@ "dynamic_line": "*gestures about his new home. \"We have everything we wanted. They cannot see us here, and our mind is at peace. We go outside as we need, and the safety we have received here stays with us, as long as we are careful about it. In time, perhaps we will again have need of your noble services.\"", "responses": [ { "text": "You seem different.", "topic": "TALK_DINODAVE_Different" }, + { + "text": "You know, this place is surprisingly nice, for a cardboard fortress.", + "topic": "TALK_DINODAVE_Cardboard", + "effect": [ + { "u_add_var": "u_cardboard_gift", "type": "dialogue", "context": "dave", "value": "in_progress" }, + { "math": [ "u_timer_dave_creating_gift", "=", "time('now')" ] } + ], + "condition": { + "and": [ + { "not": { "u_has_var": "u_cardboard_gift", "type": "dialogue", "context": "dave", "value": "finished" } }, + { + "not": { "u_has_var": "u_cardboard_gift", "type": "dialogue", "context": "dave", "value": "in_progress" } + } + ] + } + }, { "text": "Always good to catch up, Dave. Keep on being you.", "topic": "TALK_DONE" } ] + }, + { + "type": "talk_topic", + "id": "TALK_DINODAVE_Cardboard", + "dynamic_line": "*bows deeply. \"Thank you. Our expertise with the most sacred of materials comes from a past long gone.\" He gazes off into the distance, lost in thought. You wait, but he doesn't talk again.", + "responses": [ { "text": "Uh, you there?", "topic": "TALK_DINODAVE_Gift" } ] + }, + { + "type": "talk_topic", + "id": "TALK_DINODAVE_Gift", + "dynamic_line": "\"You've given us an idea, a way we could repay a small fraction of your aid. Come back in a day, and your blessing will be here for you.\"", + "responses": [ { "text": "See you in a day, then.", "topic": "TALK_DINODAVE_Gift_Bye" } ] + }, + { + "type": "talk_topic", + "id": "TALK_DINODAVE_Gift_Bye", + "dynamic_line": "\"Make sure you don't let the sandman in. He can't be trusted.\"", + "responses": [ { "text": "Always good to catch up, Dave. Keep on being you.", "topic": "TALK_DONE" } ] + }, + { + "type": "talk_topic", + "id": "TALK_DINODAVE_Gift_Given", + "dynamic_line": "\"Indeed, my knight. I was hesitant to grant you this power, but you have proven your worth and fealty many times over. Make sure it does not fall into the wrong hands. May it help you on your journey.\"", + "responses": [ + { + "text": "[Take the gift.]", + "topic": "TALK_DINODAVE_Gift_Bye", + "effect": [ { "u_spawn_item": "recipe_dave_manual" }, { "u_spawn_item": "badge_cardboard" } ] + } + ] } ] diff --git a/data/json/recipes/armor/cardboard.json b/data/json/recipes/armor/cardboard.json new file mode 100644 index 0000000000000..bd917b530b276 --- /dev/null +++ b/data/json/recipes/armor/cardboard.json @@ -0,0 +1,63 @@ +[ + { + "result": "helmet_cardboard", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "fabrication", + "difficulty": 2, + "skills_required": [ "fabrication", 1 ], + "time": "1 h", + "autolearn": false, + "book_learn": [ [ "recipe_dave_manual", 1 ] ], + "using": [ [ "adhesive", 2 ] ], + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "cardboard", 300 ] ], [ [ "aluminum_foil", 5 ] ] ] + }, + { + "result": "armor_cardboard", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "skill_used": "fabrication", + "difficulty": 3, + "skills_required": [ "fabrication", 2 ], + "time": "150 m", + "autolearn": false, + "book_learn": [ [ "recipe_dave_manual", 1 ] ], + "using": [ [ "adhesive", 15 ] ], + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "cardboard", 2000 ] ], [ [ "paper", 60 ] ] ] + }, + { + "result": "armor_cardboard_cuirass", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "fabrication", + "difficulty": 2, + "skills_required": [ "fabrication", 1 ], + "time": "150 m", + "autolearn": false, + "book_learn": [ [ "recipe_dave_manual", 1 ] ], + "using": [ [ "adhesive", 10 ] ], + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "cardboard", 1200 ] ], [ [ "paper", 20 ] ] ] + }, + { + "result": "cardboard_crown", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "fabrication", + "time": "5 m", + "autolearn": false, + "book_learn": [ [ "recipe_dave_manual", 0 ] ], + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "cardboard", 100 ] ] ] + } +] diff --git a/data/json/recipes/nested.json b/data/json/recipes/nested.json index b4a9aa669cfd3..0b08dc94b0d6d 100644 --- a/data/json/recipes/nested.json +++ b/data/json/recipes/nested.json @@ -7100,6 +7100,18 @@ ], "difficulty": 5 }, + { + "id": "nested_cardboard_armor", + "type": "nested_category", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "name": "cardboard armor", + "description": "Recipes related to the construction of cardboard 'armor'.", + "skill_used": "fabrication", + "nested_category_data": [ "helmet_cardboard", "armor_cardboard", "armor_cardboard_cuirass", "cardboard_shield", "cardboard_crown" ], + "difficulty": 1 + }, { "id": "nested_bullet_necklaces", "type": "nested_category",