From 903ade8c667d389fc2d8ca6f1d962f396f0d807c Mon Sep 17 00:00:00 2001 From: bobhat <59947126+b0bhat@users.noreply.github.com> Date: Sun, 26 May 2024 09:45:15 -0700 Subject: [PATCH] Add night vision helmet attachments (#73869) * night vision helmt attachment finally works!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * Added infared, far nvg effect * Added attachment flag, new nvg stats * c++ formatting and adjust old light amp * Added nvg distributions, adjusted light amp/ir goggle distributions * Added crappier gnv effect, fixed minimap typo, changed nvg materials * change night vision checking to update method, fixed typos * revert harcoded nv * Enchantment nv effect, reworked stats and behavior * Check fixes * cleanup * cleanup * Fixed filthy issue, balance --- data/json/enchantments.json | 24 +++ data/json/flags.json | 6 + .../itemgroups/Clothing_Gear/clothing.json | 67 ++++--- data/json/itemgroups/Clothing_Gear/gear.json | 25 +++ data/json/itemgroups/military.json | 14 +- data/json/items/armor/head_attachments.json | 176 ++++++++++++++++++ data/json/items/armor/helmets.json | 40 ++-- data/json/items/tool_armor.json | 15 +- .../mapgen/military/mil_base/mil_base_z0.json | 7 +- data/json/professions.json | 5 +- tools/spell_checker/dictionary.txt | 3 + 11 files changed, 314 insertions(+), 68 deletions(-) diff --git a/data/json/enchantments.json b/data/json/enchantments.json index a2f77df25ce80..c9b3673d82be9 100644 --- a/data/json/enchantments.json +++ b/data/json/enchantments.json @@ -43,6 +43,30 @@ "condition": "ALWAYS", "values": [ { "value": "FOOTSTEP_NOISE", "multiply": 3 } ] }, + { + "type": "enchantment", + "id": "nvg_good", + "name": { "str": "Night Vision Goggles" }, + "description": "You are wearing night vision goggles which allow you to see quite well in the dark.", + "condition": "ACTIVE", + "values": [ { "value": "NIGHT_VIS", "add": 12 } ] + }, + { + "type": "enchantment", + "id": "nvg_normal", + "name": { "str": "Night Vision Goggles" }, + "description": "You are wearing night vision goggles which allow you to see in the dark.", + "condition": "ACTIVE", + "values": [ { "value": "NIGHT_VIS", "add": 9 } ] + }, + { + "type": "enchantment", + "id": "nvg_bad", + "name": { "str": "Night Vision Goggles" }, + "description": "You are wearing night vision goggles which allow you to poorly see in the dark.", + "condition": "ACTIVE", + "values": [ { "value": "NIGHT_VIS", "add": 5 } ] + }, { "id": "ench_climate_control_warm", "type": "enchantment", diff --git a/data/json/flags.json b/data/json/flags.json index e139f1437c43f..1844187cecf0b 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -353,6 +353,12 @@ "info": "This item is attachable in the front of hard hats and helmets to protect your eyes or face.", "restriction": "Item must be some kind of face shield" }, + { + "id": "HELMET_FRONT_ATTACHMENT", + "type": "json_flag", + "info": "This item is attachable in the front of military helmets.", + "restriction": "Item must be some kind of frontal helmet attachment" + }, { "id": "HELMET_EAR_ATTACHMENT", "type": "json_flag", diff --git a/data/json/itemgroups/Clothing_Gear/clothing.json b/data/json/itemgroups/Clothing_Gear/clothing.json index cf2e83a3d10b2..f4acddd872c7a 100644 --- a/data/json/itemgroups/Clothing_Gear/clothing.json +++ b/data/json/itemgroups/Clothing_Gear/clothing.json @@ -286,18 +286,16 @@ { "group": "clothing_military" }, { "item": "elbow_pads", "prob": 10 }, { "item": "knee_pads", "prob": 85 }, - { "item": "helmet_army", "prob": 80 }, + { + "distribution": [ { "group": "army_helmet_nvg", "prob": 15 }, { "item": "helmet_army", "prob": 85 } ], + "prob": 80 + }, { "item": "gloves_tactical", "prob": 60 }, { "group": "military_ballistic_vest", "prob": 90 }, { "group": "molle_backpacks_and_accessories", "prob": 85 }, { "group": "clothing_tactical_leg", "prob": 15 }, { - "distribution": [ - { "group": "clothing_glasses", "prob": 60 }, - { "item": "glasses_bal", "prob": 30 }, - { "item": "goggles_nv", "prob": 5, "charges": [ 0, 100 ] }, - { "item": "goggles_ir", "prob": 5, "charges": [ 0, 100 ] } - ], + "distribution": [ { "group": "clothing_glasses", "prob": 60 }, { "item": "glasses_bal", "prob": 30 } ], "prob": 20 }, { "group": "clothing_watch", "prob": 5 } @@ -312,18 +310,16 @@ { "group": "clothing_military" }, { "item": "elbow_pads", "prob": 10 }, { "item": "knee_pads", "prob": 85 }, - { "item": "helmet_army", "prob": 80 }, + { + "distribution": [ { "group": "army_helmet_nvg", "prob": 20 }, { "item": "helmet_army", "prob": 80 } ], + "prob": 80 + }, { "item": "gloves_tactical", "prob": 60 }, { "group": "military_ballistic_vest_pristine", "prob": 90 }, { "group": "molle_backpacks_and_accessories", "prob": 85 }, { "group": "clothing_tactical_leg", "prob": 15 }, { - "distribution": [ - { "group": "clothing_glasses", "prob": 60 }, - { "item": "glasses_bal", "prob": 30 }, - { "item": "goggles_nv", "prob": 5, "charges": [ 50, 100 ] }, - { "item": "goggles_ir", "prob": 5, "charges": [ 50, 100 ] } - ], + "distribution": [ { "group": "clothing_glasses", "prob": 60 }, { "item": "glasses_bal", "prob": 30 } ], "prob": 20 }, { "group": "clothing_watch", "prob": 5 } @@ -337,18 +333,16 @@ { "group": "clothing_military" }, { "item": "elbow_pads", "prob": 10 }, { "item": "knee_pads", "prob": 85 }, - { "item": "helmet_army", "prob": 80 }, + { + "distribution": [ { "group": "army_helmet_nvg", "prob": 10 }, { "item": "helmet_army", "prob": 90 } ], + "prob": 80 + }, { "item": "gloves_tactical", "prob": 60 }, { "group": "military_ballistic_vest", "prob": 100 }, { "group": "molle_backpacks_and_accessories", "prob": 85 }, { "group": "clothing_tactical_leg", "prob": 15 }, { - "distribution": [ - { "group": "clothing_glasses", "prob": 60 }, - { "item": "glasses_bal", "prob": 30 }, - { "item": "goggles_nv", "prob": 5, "charges": [ 0, 100 ] }, - { "item": "goggles_ir", "prob": 5, "charges": [ 0, 100 ] } - ], + "distribution": [ { "group": "clothing_glasses", "prob": 60 }, { "item": "glasses_bal", "prob": 30 } ], "prob": 20 }, { "group": "clothing_watch", "prob": 5 } @@ -363,18 +357,16 @@ { "group": "clothing_military" }, { "item": "elbow_pads", "prob": 10 }, { "item": "knee_pads", "prob": 85 }, - { "item": "helmet_army", "prob": 80 }, + { + "distribution": [ { "group": "army_helmet_nvg", "prob": 20 }, { "item": "helmet_army", "prob": 80 } ], + "prob": 80 + }, { "item": "gloves_tactical", "prob": 60 }, { "group": "military_ballistic_vest_heavy", "prob": 90 }, { "group": "molle_backpacks_and_accessories", "prob": 85 }, { "group": "clothing_tactical_leg", "prob": 15 }, { - "distribution": [ - { "group": "clothing_glasses", "prob": 60 }, - { "item": "glasses_bal", "prob": 30 }, - { "item": "goggles_nv", "prob": 5, "charges": [ 0, 100 ] }, - { "item": "goggles_ir", "prob": 5, "charges": [ 0, 100 ] } - ], + "distribution": [ { "group": "clothing_glasses", "prob": 60 }, { "item": "glasses_bal", "prob": 30 } ], "prob": 20 }, { "group": "clothing_watch", "prob": 5 } @@ -389,18 +381,19 @@ { "group": "clothing_military_winter" }, { "item": "elbow_pads", "prob": 10 }, { "item": "knee_pads", "prob": 85 }, - { "collection": [ { "item": "helmet_army" }, { "item": "helmet_liner" } ], "prob": 80 }, + { + "collection": [ + { "distribution": [ { "group": "army_helmet_nvg", "prob": 15 }, { "item": "helmet_army", "prob": 85 } ] }, + { "item": "helmet_liner" } + ], + "prob": 80 + }, { "collection": [ { "item": "gloves_liner", "prob": 60 }, { "item": "winter_gloves_army" } ], "prob": 80 }, { "group": "military_ballistic_vest", "prob": 90 }, { "group": "molle_backpacks_and_accessories", "prob": 85 }, { "group": "clothing_tactical_leg", "prob": 15 }, { - "distribution": [ - { "group": "clothing_glasses", "prob": 60 }, - { "item": "glasses_bal", "prob": 30 }, - { "item": "goggles_nv", "prob": 5, "charges": [ 0, 100 ] }, - { "item": "goggles_ir", "prob": 5, "charges": [ 0, 100 ] } - ], + "distribution": [ { "group": "clothing_glasses", "prob": 60 }, { "item": "glasses_bal", "prob": 30 } ], "prob": 20 }, { "group": "clothing_watch", "prob": 5 } @@ -2953,6 +2946,7 @@ [ "chestguard_hard", 20 ], [ "armguard_hard", 20 ], [ "legguard_hard", 15 ], + { "group": "army_helmet_nvg", "prob": 1 }, [ "helmet_army", 40 ], [ "helmet_liner", 10 ], [ "beret", 50 ], @@ -2970,6 +2964,9 @@ [ "duffelbag", 15 ], { "item": "goggles_nv", "prob": 1, "charges": [ 0, 100 ] }, { "item": "goggles_ir", "prob": 1, "charges": [ 0, 100 ] }, + { "item": "military_nvg", "prob": 1, "charges": [ 0, 100 ] }, + { "item": "advanced_gpnvg", "prob": 1, "charges": [ 0, 100 ] }, + { "item": "enhanced_nvg", "prob": 1, "charges": [ 0, 100 ] }, [ "optical_cloak", 1 ], { "item": "holo_cloak", "prob": 1, "charges": [ 0, 1000 ] }, { "item": "mess_kit", "prob": 9 }, diff --git a/data/json/itemgroups/Clothing_Gear/gear.json b/data/json/itemgroups/Clothing_Gear/gear.json index f3848aa9f410d..019c47e4948e4 100644 --- a/data/json/itemgroups/Clothing_Gear/gear.json +++ b/data/json/itemgroups/Clothing_Gear/gear.json @@ -36,6 +36,31 @@ { "item": "teargas_sprayer", "prob": 25, "charges": [ 1, 10 ] } ] }, + { + "type": "item_group", + "id": "army_helmet_nvg", + "subtype": "collection", + "entries": [ { "item": "helmet_army", "contents-group": "nvg_distribution" } ] + }, + { + "type": "item_group", + "id": "tac_helmet_nvg", + "subtype": "collection", + "entries": [ { "item": "tac_helmet", "contents-group": "nvg_distribution" } ] + }, + { + "type": "item_group", + "id": "nvg_distribution", + "items": [ + { + "distribution": [ + { "item": "military_nvg", "prob": 60, "charges": [ 0, 100 ] }, + { "item": "advanced_gpnvg", "prob": 30, "charges": [ 0, 100 ] }, + { "item": "enhanced_nvg", "prob": 10, "charges": [ 0, 100 ] } + ] + } + ] + }, { "id": "gear_medical", "type": "item_group", diff --git a/data/json/itemgroups/military.json b/data/json/itemgroups/military.json index 0437eed9b94f8..8fb0394f82be9 100644 --- a/data/json/itemgroups/military.json +++ b/data/json/itemgroups/military.json @@ -552,20 +552,16 @@ { "item": "resonance_measurement_device", "prob": 10 }, { "item": "elbow_pads", "prob": 80 }, { "item": "knee_pads", "prob": 85 }, - { "item": "tac_helmet", "prob": 100 }, + { + "distribution": [ { "group": "tac_helmet_nvg", "prob": 60 }, { "item": "tac_helmet", "prob": 40 } ], + "prob": 100 + }, { "item": "mask_gas", "prob": 100 }, { "item": "gloves_tactical", "prob": 80 }, { "group": "xedra_ballistic_vest_heavy_pristine", "prob": 100 }, { "group": "clothing_tactical_leg", "prob": 80 }, { "group": "clothing_watch", "prob": 45 }, - { - "distribution": [ - { "item": "glasses_bal", "prob": 30 }, - { "item": "goggles_nv", "prob": 30, "charges": [ 50, 100 ] }, - { "item": "goggles_ir", "prob": 30, "charges": [ 50, 100 ] } - ], - "prob": 100 - }, + { "item": "glasses_bal", "prob": 30 }, { "group": "xedra_gun" }, { "group": "cop_melee" }, { "group": "cop_holster_field" } diff --git a/data/json/items/armor/head_attachments.json b/data/json/items/armor/head_attachments.json index 5c57bcd06374f..0d97494f1e035 100644 --- a/data/json/items/armor/head_attachments.json +++ b/data/json/items/armor/head_attachments.json @@ -206,6 +206,182 @@ "flags": [ "HELMET_FACE_SHIELD", "CANT_WEAR", "OUTER" ], "armor": [ { "encumbrance": 4, "coverage": 100, "covers": [ "eyes", "mouth" ] } ] }, + { + "id": "military_nvg", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str_sp": "night vision goggles" }, + "description": "Last generation double-tube night vision device, designed to be mounted to a helmet. Currently raised up and out of the way.", + "weight": "680 g", + "volume": "1200 ml", + "price": "10000 USD", + "price_postapoc": "150 USD", + "material": [ "plastic", "steel", "glass" ], + "symbol": "[", + "color": "dark_gray", + "to_hit": -3, + "charges_per_use": 1, + "ammo": "battery", + "use_action": { + "type": "transform", + "msg": "You activate your %s.", + "target": "military_nvg_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The %s's batteries are dead." + }, + "material_thickness": 1, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_LIGHT" ], + "default_magazine": "light_plus_battery_cell" + } + ], + "relic_data": { "passive_effects": [ { "id": "nvg_good" } ] }, + "flags": [ "HELMET_FRONT_ATTACHMENT", "CANT_WEAR", "OUTER", "ELECTRONIC", "MUNDANE" ], + "armor": [ { "covers": [ "head" ], "encumbrance": 8, "coverage": 70, "specifically_covers": [ "head_forehead" ] } ] + }, + { + "id": "military_nvg_on", + "type": "TOOL_ARMOR", + "copy-from": "military_nvg", + "name": { "str_sp": "night vision goggles (on)" }, + "description": "Last generation double-tube night vision device, designed to be mounted to a helmet. Very limited field of view while activated. It is turned on, and continually draining batteries. Use it to turn it off.", + "//": "AN/PVS-7", + "power_draw": "140 mW", + "revert_to": "military_nvg", + "use_action": { + "ammo_scale": 0, + "type": "transform", + "menu_text": "Turn off", + "msg": "Your %s deactivates.", + "target": "military_nvg" + }, + "armor": [ { "covers": [ "eyes" ], "coverage": 100, "encumbrance": 20 } ] + }, + { + "id": "advanced_gpnvg", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str_sp": "panoramic night vision goggles" }, + "description": "Advanced GPNVG with four image intensifier tubes, allowing for a large field of view at night, designed to be mounted to a helmet. Currently raised up and out of the way.", + "weight": "765 g", + "volume": "1600 ml", + "price": "47000 USD", + "price_postapoc": "300 USD", + "material": [ "plastic", "steel", "glass" ], + "symbol": "[", + "color": "dark_gray", + "to_hit": -3, + "charges_per_use": 1, + "ammo": "battery", + "use_action": { + "type": "transform", + "msg": "You activate your %s.", + "target": "advanced_gpnvg_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The %s's batteries are dead." + }, + "material_thickness": 1, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM" ], + "default_magazine": "medium_plus_battery_cell" + } + ], + "relic_data": { "passive_effects": [ { "id": "nvg_normal" } ] }, + "flags": [ "HELMET_FRONT_ATTACHMENT", "CANT_WEAR", "OUTER", "ELECTRONIC", "MUNDANE" ], + "armor": [ + { "covers": [ "head" ], "encumbrance": 12, "coverage": 80, "specifically_covers": [ "head_forehead", "head_crown" ] } + ] + }, + { + "id": "advanced_gpnvg_on", + "type": "TOOL_ARMOR", + "copy-from": "advanced_gpnvg", + "name": { "str_sp": "panoramic night vision goggles (on)" }, + "description": "Advanced GPNVG with four image intensifier tubes, allowing for a large field of view at night, designed to be mounted to a helmet. It is turned on, and continually draining batteries. Use it to turn it off.", + "//": "GPNVG-18", + "power_draw": "180 mW", + "revert_to": "advanced_gpnvg", + "use_action": { + "ammo_scale": 0, + "type": "transform", + "menu_text": "Turn off", + "msg": "Your %s deactivates.", + "target": "advanced_gpnvg" + }, + "armor": [ + { "covers": [ "eyes" ], "coverage": 100, "encumbrance": 15 }, + { "covers": [ "head" ], "encumbrance": 3, "coverage": 80, "specifically_covers": [ "head_crown" ] } + ] + }, + { + "id": "enhanced_nvg", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str_sp": "enhanced night vision goggles" }, + "description": "New and rare high-resolution thermal NVG device, designed to be mounted to a helmet. Lets you see in the dark, and detects heat signatures emitted by (un)living organisms. Currently raised up and out of the way.", + "weight": "720 g", + "volume": "1400 ml", + "price": "10000 USD", + "price_postapoc": "350 USD", + "material": [ "plastic", "steel", "glass" ], + "symbol": "[", + "color": "dark_gray", + "to_hit": -3, + "charges_per_use": 1, + "ammo": "battery", + "use_action": { + "type": "transform", + "msg": "You activate your %s.", + "target": "enhanced_nvg_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The %s's batteries are dead." + }, + "material_thickness": 1, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM" ], + "default_magazine": "medium_plus_battery_cell" + } + ], + "relic_data": { "passive_effects": [ { "id": "nvg_normal" } ] }, + "flags": [ "HELMET_FRONT_ATTACHMENT", "CANT_WEAR", "OUTER", "ELECTRONIC", "MUNDANE" ], + "armor": [ + { "covers": [ "head" ], "encumbrance": 10, "coverage": 70, "specifically_covers": [ "head_forehead", "head_crown" ] } + ] + }, + { + "id": "enhanced_nvg_on", + "type": "TOOL_ARMOR", + "copy-from": "enhanced_nvg", + "name": { "str_sp": "enhanced night vision goggles (on)" }, + "description": "New and rare high-resolution thermal NVG device, designed to be mounted to a helmet. Lets you see in the dark, and detects heat signatures emitted by (un)living organisms. It is turned on, and continually draining batteries. Use it to turn it off.", + "extend": { "flags": [ "IR_EFFECT" ] }, + "//": "AN/PSQ-42", + "power_draw": "250 W", + "revert_to": "enhanced_nvg", + "use_action": { + "ammo_scale": 0, + "type": "transform", + "menu_text": "Turn off", + "msg": "Your %s deactivates.", + "target": "enhanced_nvg" + }, + "armor": [ + { "covers": [ "eyes" ], "coverage": 100, "encumbrance": 10 }, + { "covers": [ "head" ], "encumbrance": 3, "coverage": 80, "specifically_covers": [ "head_crown" ] } + ] + }, { "id": "nape_protector", "type": "ARMOR", diff --git a/data/json/items/armor/helmets.json b/data/json/items/armor/helmets.json index 0d0e9c507e31b..fae93625ad67a 100644 --- a/data/json/items/armor/helmets.json +++ b/data/json/items/armor/helmets.json @@ -196,11 +196,12 @@ "pocket_type": "CONTAINER", "ablative": true, "volume_encumber_modifier": 0, - "max_contains_volume": "500 ml", - "max_contains_weight": "500 g", + "max_contains_volume": "2 L", + "max_contains_weight": "2 kg", "moves": 250, - "description": "Pocket for a face shield or a shield visor.", - "flag_restriction": [ "HELMET_FACE_SHIELD" ] + "description": "Pocket for a face shield, or a front night vision attachment.", + "flag_restriction": [ "HELMET_FACE_SHIELD", "HELMET_FRONT_ATTACHMENT" ], + "inherits_flags": false }, { "pocket_type": "CONTAINER", @@ -363,6 +364,19 @@ "environmental_protection": 2, "techniques": [ "WBLOCK_1" ], "flags": [ "VARSIZE", "WATERPROOF", "STURDY", "SUN_GLASSES", "PADDED" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "ablative": true, + "volume_encumber_modifier": 0, + "max_contains_volume": "2 L", + "max_contains_weight": "2 kg", + "moves": 250, + "description": "Pocket for a front night vision attachment.", + "flag_restriction": [ "HELMET_FRONT_ATTACHMENT" ], + "inherits_flags": false + } + ], "melee_damage": { "bash": 2 } }, { @@ -403,11 +417,12 @@ "pocket_type": "CONTAINER", "ablative": true, "volume_encumber_modifier": 0, - "max_contains_volume": "500 ml", - "max_contains_weight": "500 g", + "max_contains_volume": "2 L", + "max_contains_weight": "2 kg", "moves": 250, - "description": "Pocket for a face shield or a shield visor.", - "flag_restriction": [ "HELMET_FACE_SHIELD" ] + "description": "Pocket for a face shield, or a front night vision attachment.", + "flag_restriction": [ "HELMET_FACE_SHIELD", "HELMET_FRONT_ATTACHMENT" ], + "inherits_flags": false }, { "pocket_type": "CONTAINER", @@ -2857,11 +2872,12 @@ "pocket_type": "CONTAINER", "ablative": true, "volume_encumber_modifier": 0, - "max_contains_volume": "500 ml", - "max_contains_weight": "500 g", + "max_contains_volume": "2 L", + "max_contains_weight": "2 kg", "moves": 250, - "description": "Pocket for a face shield or a shield visor.", - "flag_restriction": [ "HELMET_FACE_SHIELD" ] + "description": "Pocket for a face shield, or a front night vision attachment.", + "flag_restriction": [ "HELMET_FACE_SHIELD", "HELMET_FRONT_ATTACHMENT" ], + "inherits_flags": false }, { "pocket_type": "CONTAINER", diff --git a/data/json/items/tool_armor.json b/data/json/items/tool_armor.json index caef4ec632677..b5c3dea3d3ae7 100644 --- a/data/json/items/tool_armor.json +++ b/data/json/items/tool_armor.json @@ -2400,12 +2400,12 @@ "symbol": "[", "color": "dark_gray", "name": { "str": "pair of light amp goggles", "str_pl": "pairs of light amp goggles" }, - "description": "A pair of battery-powered goggles that amplify ambient light, allowing you to see in the dark. Use it to turn them on.", - "flags": [ "FRAGILE", "OUTER", "ELECTRONIC" ], - "price": "920 USD", - "price_postapoc": "35 USD", + "description": "A pair of battery-powered goggles that use a infrared LED in conjunction with a IR camera, allowing you to see in the dark. Use it to turn them on.", + "flags": [ "FRAGILE", "OUTER", "ELECTRONIC", "MUNDANE" ], + "price": "300 USD", + "price_postapoc": "30 USD", "material": [ "plastic", "steel" ], - "weight": "1020 g", + "weight": "600 g", "volume": "1 L", "to_hit": -3, "charges_per_use": 1, @@ -2429,6 +2429,7 @@ "default_magazine": "light_plus_battery_cell" } ], + "relic_data": { "passive_effects": [ { "id": "nvg_bad" } ] }, "armor": [ { "encumbrance": 40, "coverage": 100, "covers": [ "eyes" ], "rigid_layer_only": true } ] }, { @@ -2436,9 +2437,9 @@ "copy-from": "goggles_nv", "type": "TOOL_ARMOR", "name": { "str_pl": "pairs of light amp goggles (on)", "str": "pair of light amp goggles (on)" }, - "description": "A pair of battery-powered light amplifying goggles with an infrared illuminator, allowing you to see in the dark. It is turned on, and continually draining batteries. Use it to turn them off.", + "description": "A pair of battery-powered goggles that use a infrared LED in conjunction with a IR camera, allowing you to see in the dark. It is turned on, and continually draining batteries. Use it to turn them off.", "material": [ "plastic", "steel" ], - "flags": [ "GNV_EFFECT", "FRAGILE", "TRADER_AVOID", "OUTER", "ELECTRONIC" ], + "extend": { "flags": [ "TRADER_AVOID" ] }, "//": "2019 commercial models can operate at under 0.375W with the IR illuminator on", "power_draw": "375 mW", "revert_to": "goggles_nv", diff --git a/data/json/mapgen/military/mil_base/mil_base_z0.json b/data/json/mapgen/military/mil_base/mil_base_z0.json index 7455a146313a4..400a3aadacb89 100644 --- a/data/json/mapgen/military/mil_base/mil_base_z0.json +++ b/data/json/mapgen/military/mil_base/mil_base_z0.json @@ -840,8 +840,11 @@ { "item": "holo_sight", "x": 10, "y": 15, "chance": 75, "repeat": 50 }, { "item": "acog_scope", "x": 11, "y": 15, "chance": 75, "repeat": 30 }, { "item": "red_dot_sight", "x": 12, "y": 15, "chance": 75, "repeat": 20 }, - { "item": "goggles_ir", "x": [ 14, 16 ], "y": 15, "chance": 75, "repeat": 50 }, - { "item": "goggles_nv", "x": [ 17, 18 ], "y": 15, "chance": 75, "repeat": 40 }, + { "item": "goggles_ir", "x": [ 14, 16 ], "y": 15, "chance": 20, "repeat": 50 }, + { "item": "goggles_nv", "x": [ 17, 18 ], "y": 15, "chance": 20, "repeat": 40 }, + { "item": "military_nvg", "x": [ 14, 16 ], "y": 15, "chance": 30, "repeat": 50 }, + { "item": "advanced_gpnvg", "x": [ 14, 16 ], "y": 15, "chance": 30, "repeat": 50 }, + { "item": "enhanced_nvg", "x": [ 17, 18 ], "y": 15, "chance": 10, "repeat": 40 }, { "item": "sheath", "x": 24, "y": 15, "chance": 75, "repeat": 100 }, { "item": "knife_combat", "x": [ 22, 23 ], "y": 15, "chance": 75, "repeat": 100 }, { "item": "holster", "x": [ 20, 21 ], "y": 15, "chance": 75, "repeat": 100 }, diff --git a/data/json/professions.json b/data/json/professions.json index 271c3e43c8813..aff86c5a17184 100644 --- a/data/json/professions.json +++ b/data/json/professions.json @@ -1767,7 +1767,7 @@ "both": { "entries": [ { "item": "combat_shirt" }, - { "item": "tac_fullhelmet" }, + { "group": "tac_helmet_nvg" }, { "item": "mask_ski" }, { "item": "gloves_liner" }, { "item": "gloves_tactical" }, @@ -1781,7 +1781,6 @@ { "item": "tank_top", "variant": "tank_top_camo" }, { "item": "pants_army", "variant": "mil_pants_navy" }, { "item": "grenade" }, - { "item": "light_battery_cell", "ammo-item": "battery", "charges": 100, "container-item": "goggles_nv" }, { "item": "water_clean", "container-item": "canteen" }, { "item": "legpouch_large", "contents-group": "army_mags_m4" }, { "item": "knife_rm42", "container-item": "sheath" }, @@ -1835,7 +1834,7 @@ { "item": "wetsuit" }, { "item": "pants_army" }, { "item": "wetsuit_hood" }, - { "item": "tac_helmet" }, + { "group": "tac_helmet_nvg" }, { "item": "wetsuit_gloves" }, { "item": "gloves_tactical" }, { "item": "socks" }, diff --git a/tools/spell_checker/dictionary.txt b/tools/spell_checker/dictionary.txt index c53a9ae506f8f..1e80ab4d4324a 100644 --- a/tools/spell_checker/dictionary.txt +++ b/tools/spell_checker/dictionary.txt @@ -2308,6 +2308,7 @@ gov gozu gozus GPMG +GPNVG GR gr graboid @@ -4322,6 +4323,8 @@ numpad nums Nunez NV +NVG +NVGs NW NY Nyâyis