Skip to content

Commit c7806dd

Browse files
authored
Add modified motorcycle helmets for rail attachments (#82350)
1 parent faf0b23 commit c7806dd

File tree

6 files changed

+181
-4
lines changed

6 files changed

+181
-4
lines changed

data/json/items/armor/helmets.json

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,47 @@
261261
],
262262
"melee_damage": { "bash": 1 }
263263
},
264+
{
265+
"id": "helmet_army_stripped",
266+
"type": "ITEM",
267+
"subtypes": [ "ARMOR" ],
268+
"category": "armor",
269+
"copy-from": "helmet_army",
270+
"name": { "str": "army helmet (stripped)", "str_pl": "army helmets (stripped)" },
271+
"description": "A heavy helmet that provides excellent protection from all sorts of damage. It is labeled as the advanced combat helmet. This one has been stripped of all its mounting points, leaving only the nape and mandible attachment points, and the counterweight pouch.",
272+
"weight": "1153 g",
273+
"pocket_data": [
274+
{
275+
"pocket_type": "CONTAINER",
276+
"ablative": true,
277+
"volume_encumber_modifier": 0,
278+
"max_contains_volume": "500 ml",
279+
"max_contains_weight": "250 g",
280+
"moves": 250,
281+
"description": "Pocket for a nape protector.",
282+
"flag_restriction": [ "HELMET_NAPE_PROTECTOR" ]
283+
},
284+
{
285+
"pocket_type": "CONTAINER",
286+
"ablative": true,
287+
"volume_encumber_modifier": 0,
288+
"max_contains_volume": "500 ml",
289+
"max_contains_weight": "400 g",
290+
"moves": 250,
291+
"description": "Pocket for a strapped mandible guard.",
292+
"flag_restriction": [ "HELMET_MANDIBLE_GUARD_STRAPPED" ]
293+
},
294+
{
295+
"pocket_type": "CONTAINER",
296+
"volume_encumber_modifier": 0,
297+
"max_contains_volume": "400 ml",
298+
"max_contains_weight": "400 g",
299+
"moves": 250,
300+
"description": "Pocket for a counterweight pouch.",
301+
"flag_restriction": [ "HELMET_BACK_POUCH" ]
302+
}
303+
]
304+
},
264305
{
265306
"id": "helmet_army_outdated",
266307
"repairs_like": "helmet_barbute",
@@ -1336,6 +1377,54 @@
13361377
"flags": [ "WATERPROOF", "STURDY", "PADDED" ],
13371378
"melee_damage": { "bash": 1 }
13381379
},
1380+
{
1381+
"id": "helmet_motor_modified",
1382+
"looks_like": "helmet_motor",
1383+
"copy-from": "helmet_motor_raised",
1384+
"type": "ITEM",
1385+
"subtypes": [ "TOOL", "ARMOR" ],
1386+
"category": "armor",
1387+
"name": { "str": "modified full-face motorcycle helmet" },
1388+
"description": "A helmet that covers the entire head, designed to protect you from motorcycle crashes. This one has been modified to hold mounting brackets for stuff such as NV goggles, at the cost of removing the visor.",
1389+
"weight": "1703 g",
1390+
"pocket_data": [
1391+
{
1392+
"pocket_type": "CONTAINER",
1393+
"ablative": true,
1394+
"volume_encumber_modifier": 0,
1395+
"max_contains_volume": "2 L",
1396+
"max_contains_weight": "2 kg",
1397+
"moves": 250,
1398+
"description": "Pocket for a face shield, or a front night vision attachment.",
1399+
"flag_restriction": [ "HELMET_FACE_SHIELD", "HELMET_FRONT_ATTACHMENT" ],
1400+
"inherits_flags": false
1401+
},
1402+
{
1403+
"pocket_type": "CONTAINER",
1404+
"ablative": true,
1405+
"volume_encumber_modifier": 0,
1406+
"max_contains_volume": "500 ml",
1407+
"max_contains_weight": "400 g",
1408+
"moves": 250,
1409+
"description": "Pocket for an ear attachment.",
1410+
"flag_restriction": [ "HELMET_EAR_ATTACHMENT" ],
1411+
"inherits_flags": true
1412+
},
1413+
{
1414+
"pocket_type": "CONTAINER",
1415+
"volume_encumber_modifier": 0,
1416+
"max_contains_volume": "300 ml",
1417+
"max_contains_weight": "500 g",
1418+
"max_item_length": "14 cm",
1419+
"moves": 100,
1420+
"description": "Pocket for a flashlight attachment.",
1421+
"flag_restriction": [ "HELMET_HEAD_ATTACHMENT" ],
1422+
"transparent": true
1423+
}
1424+
],
1425+
"use_action": [ ],
1426+
"flags": [ "WATERPROOF", "STURDY", "PADDED", "MODULE_HOLDER" ]
1427+
},
13391428
{
13401429
"id": "helmet_riding",
13411430
"repairs_like": "nomex_hood",
@@ -3067,6 +3156,47 @@
30673156
}
30683157
]
30693158
},
3159+
{
3160+
"id": "airsoft_helmet_stripped",
3161+
"copy-from": "airsoft_helmet",
3162+
"type": "ITEM",
3163+
"subtypes": [ "ARMOR" ],
3164+
"category": "armor",
3165+
"name": { "str": "airsoft helmet (stripped)", "str_pl": "airsoft helmets (stripped)" },
3166+
"description": "A lightweight helmet that is fashioned to look like a real military helmet, but is made of plastic and only protects against BB's and other light threats. This one has no attachment rails.",
3167+
"weight": "325 g",
3168+
"pocket_data": [
3169+
{
3170+
"pocket_type": "CONTAINER",
3171+
"ablative": true,
3172+
"volume_encumber_modifier": 0,
3173+
"max_contains_volume": "500 ml",
3174+
"max_contains_weight": "250 g",
3175+
"moves": 250,
3176+
"description": "Pocket for a nape protector.",
3177+
"flag_restriction": [ "HELMET_NAPE_PROTECTOR" ]
3178+
},
3179+
{
3180+
"pocket_type": "CONTAINER",
3181+
"ablative": true,
3182+
"volume_encumber_modifier": 0,
3183+
"max_contains_volume": "500 ml",
3184+
"max_contains_weight": "400 g",
3185+
"moves": 250,
3186+
"description": "Pocket for a rail-mounted mandible guard.",
3187+
"flag_restriction": [ "HELMET_MANDIBLE_GUARD", "HELMET_MANDIBLE_GUARD_STRAPPED" ]
3188+
},
3189+
{
3190+
"pocket_type": "CONTAINER",
3191+
"volume_encumber_modifier": 0,
3192+
"max_contains_volume": "400 ml",
3193+
"max_contains_weight": "400 g",
3194+
"moves": 250,
3195+
"description": "Pocket for a counterweight pouch.",
3196+
"flag_restriction": [ "HELMET_BACK_POUCH" ]
3197+
}
3198+
]
3199+
},
30703200
{
30713201
"id": "lc_helmet_turban",
30723202
"type": "ITEM",

data/json/items/generic.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4010,5 +4010,21 @@
40104010
],
40114011
"to_hit": { "grip": "bad", "length": "short", "surface": "any", "balance": "clumsy" },
40124012
"melee_damage": { "bash": 5 }
4013+
},
4014+
{
4015+
"type": "ITEM",
4016+
"id": "helmet_mounting_brackets",
4017+
"//": "Based on https://www.cadexdefence.com/products/helmet-electro-optic-mount/ach-side-mounted-helmet-bracket/ + https://www.cadexdefence.com/products/helmet-electro-optic-mount/universal-helmet-strap-kit/",
4018+
"symbol": "+",
4019+
"color": "dark_gray",
4020+
"name": { "str_sp": "helmet mounting brackets" },
4021+
"category": "other",
4022+
"description": "An assortment of mounting brackets designed to allow stuff such as NV goggles or flashlights to be mounted to army helmets. These can be attached to other types of helmets, providing it's properly modified.",
4023+
"price": "90 USD",
4024+
"price_postapoc": "2 USD",
4025+
"material": [ { "type": "plastic", "portion": 9 }, { "type": "mc_steel", "portion": 6 } ],
4026+
"weight": "230 g",
4027+
"volume": "100 ml",
4028+
"longest_side": "5 cm"
40134029
}
40144030
]

data/json/recipes/armor/head.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4207,5 +4207,18 @@
42074207
"components": [ [ [ "sheet_metal_small", 2 ] ], [ [ "nuts_bolts", 12 ] ], [ [ "hat_hard", 1 ], [ "hat_hard_hooded", 1 ] ] ],
42084208
"proficiencies": [ { "proficiency": "prof_metalworking" } ],
42094209
"qualities": [ { "id": "DRILL", "level": 2 }, { "id": "SAW_M", "level": 2 }, { "id": "WRENCH", "level": 2 } ]
4210+
},
4211+
{
4212+
"result": "helmet_motor_modified",
4213+
"type": "recipe",
4214+
"activity_level": "LIGHT_EXERCISE",
4215+
"category": "CC_ARMOR",
4216+
"subcategory": "CSC_ARMOR_HEAD",
4217+
"skill_used": "fabrication",
4218+
"difficulty": 1,
4219+
"time": "30 m",
4220+
"autolearn": true,
4221+
"components": [ [ [ "helmet_mounting_brackets", 1 ] ], [ [ "helmet_motor", 1 ], [ "helmet_motor_raised", 1 ] ] ],
4222+
"qualities": [ { "id": "DRILL", "level": 2 }, { "id": "THREAD_CUT", "level": 2 }, { "id": "SCREW", "level": 1 } ]
42104223
}
42114224
]

data/json/uncraft/armor/headwear.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,21 @@
4848
"time": "30 m",
4949
"qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "WRENCH", "level": 2 } ],
5050
"components": [ [ [ "scrap", 8 ] ], [ [ "hat_hard", 1 ] ], [ [ "nuts_bolts", 12 ] ] ]
51+
},
52+
{
53+
"result": "helmet_army",
54+
"type": "uncraft",
55+
"activity_level": "LIGHT_EXERCISE",
56+
"time": "5 m",
57+
"qualities": [ { "id": "SCREW", "level": 1 } ],
58+
"components": [ [ [ "helmet_army_stripped", 1 ] ], [ [ "helmet_mounting_brackets", 1 ] ] ]
59+
},
60+
{
61+
"result": "airsoft_helmet",
62+
"type": "uncraft",
63+
"activity_level": "LIGHT_EXERCISE",
64+
"time": "5 m",
65+
"qualities": [ { "id": "SCREW", "level": 1 } ],
66+
"components": [ [ [ "airsoft_helmet_stripped", 1 ] ], [ [ "helmet_mounting_brackets", 1 ] ] ]
5167
}
5268
]

data/mods/TEST_DATA/known_bad_uncrafts.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,6 @@
379379
"air_launcher",
380380
"airgun_pellet_hunting",
381381
"airgun_pellet_target",
382-
"airsoft_helmet",
383382
"ak74mag",
384383
"akdrum75",
385384
"aketon_canvas",
@@ -2955,7 +2954,6 @@
29552954
"helmet_acidchitin_xs",
29562955
"helmet_armet",
29572956
"helmet_armet_raised",
2958-
"helmet_army",
29592957
"helmet_army_outdated",
29602958
"helmet_aztec",
29612959
"helmet_ball",
@@ -2981,8 +2979,6 @@
29812979
"helmet_liner",
29822980
"helmet_metal_sheets",
29832981
"helmet_metal_sheets_full",
2984-
"helmet_motor",
2985-
"helmet_motor_raised",
29862982
"helmet_nasal",
29872983
"helmet_nasal_xs",
29882984
"helmet_nomad",

data/mods/TEST_DATA/known_good_uncrafts.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"//": "dda",
55
"known_good_uncraft": [
66
"aerosol_paint",
7+
"airsoft_helmet_stripped",
78
"art_beads",
89
"art_bomorrean",
910
"art_boots",
@@ -46,6 +47,11 @@
4647
"gunpowder_magnum_pistol",
4748
"gunpowder_pistol",
4849
"gunpowder_shotgun",
50+
"helmet_army_stripped",
51+
"helmet_mounting_brackets",
52+
"helmet_motor",
53+
"helmet_motor_modified",
54+
"helmet_motor_raised",
4955
"hydrogen",
5056
"match",
5157
"nitrogen",

0 commit comments

Comments
 (0)