From 35e581db94e0172c2601843fef2b0967cc167086 Mon Sep 17 00:00:00 2001 From: Rail Runner Date: Fri, 24 May 2019 21:03:55 +0300 Subject: [PATCH 1/3] Implement installable gunmods to mod other gunmods --- data/json/items/classes/gun.json | 20 +++- data/json/items/crossbows.json | 12 ++- data/json/items/gun/22.json | 24 ++++- data/json/items/gun/223.json | 22 ++++- data/json/items/gun/3006.json | 24 ++++- data/json/items/gun/308.json | 16 +++- data/json/items/gun/38.json | 33 ++++++- data/json/items/gun/40.json | 14 ++- data/json/items/gun/40mm.json | 36 ++++++- data/json/items/gun/44.json | 15 ++- data/json/items/gun/45.json | 11 ++- data/json/items/gun/454.json | 10 +- data/json/items/gun/50.json | 4 +- data/json/items/gun/500.json | 14 ++- data/json/items/gun/762x25.json | 3 +- data/json/items/gun/9mm.json | 23 ++++- data/json/items/gun/blunderbuss.json | 9 +- data/json/items/gun/flammable.json | 12 ++- data/json/items/gun/flintlock.json | 29 +++++- data/json/items/gun/metal_rail.json | 2 +- data/json/items/gun/nail.json | 24 ++++- data/json/items/gun/paintball.json | 9 +- data/json/items/gun/shot.json | 82 ++++++++++++++-- data/json/items/gun/signal_flare.json | 9 +- data/json/items/gun/ups.json | 9 +- data/json/items/gunmod/mount.json | 95 +++++++++++++++++++ data/json/items/ranged.json | 108 ++++++++++++++++++--- data/json/recipes/weapon/mods.json | 130 ++++++++++++++++++++++++++ 28 files changed, 733 insertions(+), 66 deletions(-) create mode 100644 data/json/items/gunmod/mount.json diff --git a/data/json/items/classes/gun.json b/data/json/items/classes/gun.json index aa59c80e71a85..f30bba45055cd 100644 --- a/data/json/items/classes/gun.json +++ b/data/json/items/classes/gun.json @@ -26,7 +26,7 @@ "name": "base launcher", "skill": "launcher", "modes": [ [ "DEFAULT", "single", 1, "NPC_AVOID" ] ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "barrel", 1 ], [ "sights", 1 ] ], + "valid_mod_locations": [ [ "accessories", 2 ], [ "barrel", 1 ], [ "sights", 1 ], [ "sling", 1 ] ], "flags": [ "RELOAD_ONE", "RELOAD_EJECT", "NEVER_JAMS" ] }, { @@ -56,7 +56,19 @@ "type": "GUN", "name": "backup pistol", "//": "diminuitive backup pistols that lack underbarrel rails, sight dovetails and decent places to affix stocks.", - "valid_mod_locations": [ [ "accessories", 2 ], [ "barrel", 1 ], [ "bore", 1 ], [ "grip", 1 ], [ "mechanism", 2 ] ] + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "barrel", 1 ], + [ "bore", 1 ], + [ "brass catcher", 1 ], + [ "grip", 1 ], + [ "mechanism", 2 ], + [ "muzzle", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "abstract": "pistol_revolver", @@ -73,7 +85,9 @@ [ "grip", 1 ], [ "mechanism", 4 ], [ "sights", 1 ], - [ "stock", 1 ] + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] ] }, { diff --git a/data/json/items/crossbows.json b/data/json/items/crossbows.json index b2544408bd056..25fcb894b389f 100644 --- a/data/json/items/crossbows.json +++ b/data/json/items/crossbows.json @@ -297,7 +297,17 @@ "durability": 6, "clip_size": 1, "reload": 500, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "sling", 1 ], [ "stock", 1 ], [ "dampening", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "dampening", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "compositecrossbow", diff --git a/data/json/items/gun/22.json b/data/json/items/gun/22.json index 195c117b3cc02..2f8950bf3b9a6 100644 --- a/data/json/items/gun/22.json +++ b/data/json/items/gun/22.json @@ -77,7 +77,7 @@ }, { "id": "moss_brownie", - "copy-from": "pistol_backup", + "copy-from": "pistol_base", "type": "GUN", "name": "Mossberg Brownie", "name_plural": "Mossberg Brownie", @@ -94,6 +94,17 @@ "dispersion": 520, "durability": 6, "clip_size": 4, + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "barrel", 1 ], + [ "bore", 1 ], + [ "grip", 1 ], + [ "mechanism", 2 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_ONE", "NEVER_JAMS", "RELOAD_EJECT" ] }, { @@ -120,7 +131,16 @@ "clip_size": 1, "reload": 200, "barrel_length": 2, - "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_EJECT" ] }, { diff --git a/data/json/items/gun/223.json b/data/json/items/gun/223.json index 30054193912e1..0bf3cff7213bc 100644 --- a/data/json/items/gun/223.json +++ b/data/json/items/gun/223.json @@ -302,7 +302,16 @@ "clip_size": 1, "reload": 200, "barrel_length": 4, - "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_EJECT" ] }, { @@ -332,7 +341,11 @@ [ "mechanism", 4 ], [ "muzzle", 1 ], [ "sights", 1 ], - [ "sling", 1 ] + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] ], "magazines": [ [ "223", [ "ruger5", "stanag10", "ruger30" ] ] ] }, @@ -439,7 +452,10 @@ [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ], - [ "underbarrel", 1 ] + [ "underbarrel", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ] ], "magazines": [ [ "223", [ "survivor223mag", "stanag30", "stanag50" ] ] ] } diff --git a/data/json/items/gun/3006.json b/data/json/items/gun/3006.json index 8399cba3ff1f0..3938ea7497996 100644 --- a/data/json/items/gun/3006.json +++ b/data/json/items/gun/3006.json @@ -98,7 +98,11 @@ [ "mechanism", 4 ], [ "muzzle", 1 ], [ "sights", 1 ], - [ "sling", 1 ] + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] ], "magazines": [ [ "3006", [ "3006_clip" ] ] ], "flags": [ "RELOAD_ONE" ] @@ -167,7 +171,7 @@ "name": "pipe rifle: .30-06", "name_plural": "pipe rifles: .30-06", "//": "It's the same size as the others, but it's still a scrap weapon.", - "description": "A homemade rifle. It is simply a pipe attached to a stock, with a hammer to strike the single round it holds. This one is made to support more gun attachments.", + "description": "A homemade rifle. It is simply a pipe attached to a stock, with a hammer to strike the single round it holds.", "weight": 4080, "volume": 12, "price": 110000, @@ -185,7 +189,16 @@ "clip_size": 1, "reload": 200, "barrel_length": 4, - "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_EJECT" ] }, { @@ -204,7 +217,10 @@ [ "mechanism", 4 ], [ "muzzle", 1 ], [ "sights", 1 ], - [ "sling", 1 ] + [ "sling", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] ], "relative": { "durability": -3 }, "proportional": { "reload": 4 } diff --git a/data/json/items/gun/308.json b/data/json/items/gun/308.json index 05b4ebe7fe1fb..1ffc9600239c9 100644 --- a/data/json/items/gun/308.json +++ b/data/json/items/gun/308.json @@ -124,7 +124,11 @@ [ "mechanism", 4 ], [ "muzzle", 1 ], [ "sights", 1 ], - [ "sling", 1 ] + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] ], "magazines": [ [ "308", [ "m14mag", "m14smallmag" ] ] ] }, @@ -231,7 +235,10 @@ [ "stock", 1 ], [ "mechanism", 4 ], [ "sights", 1 ], - [ "sling", 1 ] + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] ], "flags": [ "RELOAD_ONE" ] }, @@ -299,7 +306,10 @@ [ "sling", 1 ], [ "stock", 1 ], [ "mechanism", 4 ], - [ "sights", 1 ] + [ "sights", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] ], "flags": [ "NEVER_JAMS" ] }, diff --git a/data/json/items/gun/38.json b/data/json/items/gun/38.json index fc0b290e0b99b..a5b1913fbacbd 100644 --- a/data/json/items/gun/38.json +++ b/data/json/items/gun/38.json @@ -21,12 +21,19 @@ "durability": 3, "clip_size": 2, "reload": 200, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "sights", 1 ], [ "underbarrel", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "sights", 1 ], + [ "underbarrel", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ] + ], "flags": [ "RELOAD_ONE", "RELOAD_EJECT" ] }, { "id": "cop_38", - "copy-from": "pistol_backup", + "copy-from": "pistol_base", "type": "GUN", "name": "COP .38", "name_plural": "COP .38", @@ -42,6 +49,17 @@ "dispersion": 520, "durability": 6, "clip_size": 4, + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "barrel", 1 ], + [ "bore", 1 ], + [ "grip", 1 ], + [ "mechanism", 2 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_ONE", "NEVER_JAMS", "RELOAD_EJECT" ] }, { @@ -67,7 +85,16 @@ "clip_size": 1, "reload": 200, "barrel_length": 3, - "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_EJECT" ] }, { diff --git a/data/json/items/gun/40.json b/data/json/items/gun/40.json index c3746ac6d3011..3c0d41090079e 100644 --- a/data/json/items/gun/40.json +++ b/data/json/items/gun/40.json @@ -58,7 +58,16 @@ "clip_size": 1, "reload": 200, "barrel_length": 3, - "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_EJECT" ] }, { @@ -162,7 +171,8 @@ [ "grip", 1 ], [ "sights", 1 ], [ "stock", 1 ], - [ "underbarrel", 1 ] + [ "underbarrel", 1 ], + [ "rail mount", 1 ] ], "flags": [ "RELOAD_ONE", "NEVER_JAMS", "RELOAD_EJECT" ] }, diff --git a/data/json/items/gun/40mm.json b/data/json/items/gun/40mm.json index eb65edf0bb497..ecaa74b57123a 100644 --- a/data/json/items/gun/40mm.json +++ b/data/json/items/gun/40mm.json @@ -15,7 +15,17 @@ "dispersion": 550, "durability": 6, "clip_size": 1, - "reload": 350 + "reload": 350, + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "barrel", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "m320", @@ -53,7 +63,17 @@ "dispersion": 150, "durability": 8, "clip_size": 1, - "reload": 250 + "reload": 250, + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "barrel", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "mark19", @@ -95,7 +115,17 @@ "dispersion": 270, "durability": 8, "clip_size": 6, - "reload": 300 + "reload": 300, + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "barrel", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "rm802", diff --git a/data/json/items/gun/44.json b/data/json/items/gun/44.json index 3157a34fb46e6..8b71f2975d269 100644 --- a/data/json/items/gun/44.json +++ b/data/json/items/gun/44.json @@ -63,7 +63,9 @@ [ "mechanism", 4 ], [ "sights", 1 ], [ "sling", 1 ], - [ "stock", 1 ] + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] ] }, { @@ -121,7 +123,16 @@ "clip_size": 1, "reload": 200, "barrel_length": 3, - "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_EJECT" ] }, { diff --git a/data/json/items/gun/45.json b/data/json/items/gun/45.json index 21bdeff9016e0..ecb0eb3ab4467 100644 --- a/data/json/items/gun/45.json +++ b/data/json/items/gun/45.json @@ -153,7 +153,16 @@ "clip_size": 1, "reload": 200, "barrel_length": 3, - "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_EJECT" ] }, { diff --git a/data/json/items/gun/454.json b/data/json/items/gun/454.json index 0ae49def132de..2d23f7242be00 100644 --- a/data/json/items/gun/454.json +++ b/data/json/items/gun/454.json @@ -19,6 +19,14 @@ "durability": 8, "clip_size": 5, "magazines": [ [ "454", [ "454_speedloader5" ] ] ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "rail", 1 ], [ "sights", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "rail", 1 ], + [ "sights", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ] } ] diff --git a/data/json/items/gun/50.json b/data/json/items/gun/50.json index 92c7e96a1e40b..893a3d280bbc3 100644 --- a/data/json/items/gun/50.json +++ b/data/json/items/gun/50.json @@ -76,7 +76,9 @@ [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ], - [ "grip", 1 ] + [ "grip", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] ], "magazines": [ ], "relative": { "weight": -21500, "volume": -6, "price": -1210000, "ranged_damage": -4, "dispersion": 60, "barrel_length": -1 }, diff --git a/data/json/items/gun/500.json b/data/json/items/gun/500.json index e9fcac8e51a86..db91e828956d5 100644 --- a/data/json/items/gun/500.json +++ b/data/json/items/gun/500.json @@ -27,7 +27,9 @@ [ "mechanism", 4 ], [ "sights", 1 ], [ "sling", 1 ], - [ "stock", 1 ] + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] ] }, { @@ -50,6 +52,14 @@ "durability": 8, "clip_size": 5, "magazines": [ [ "500", [ "500_speedloader5" ] ] ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "rail", 1 ], [ "sights", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "rail", 1 ], + [ "sights", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ] } ] diff --git a/data/json/items/gun/762x25.json b/data/json/items/gun/762x25.json index e09bf2ad236de..c85ca979a82b3 100644 --- a/data/json/items/gun/762x25.json +++ b/data/json/items/gun/762x25.json @@ -31,7 +31,8 @@ [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ], - [ "underbarrel", 1 ] + [ "underbarrel", 1 ], + [ "rail mount", 1 ] ], "magazines": [ [ "762x25", [ "ppshmag", "ppshdrum" ] ] ] }, diff --git a/data/json/items/gun/9mm.json b/data/json/items/gun/9mm.json index baffdd09212b7..fa21508e56f46 100644 --- a/data/json/items/gun/9mm.json +++ b/data/json/items/gun/9mm.json @@ -19,6 +19,7 @@ "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "3 rd.", 3 ], [ "AUTO", "auto", 5 ] ], "armor_data": { "covers": [ "ARM_EITHER", "HAND_EITHER" ], "coverage": 10, "encumbrance": 30, "material_thickness": 1 }, "magazines": [ [ "9mm", [ "stenmag", "survivor9mm_mag" ] ] ], + "valid_mod_locations": [ [ "rail mount", 1 ] ], "flags": [ "OVERSIZE", "BELTED", "FANCY", "RESTRICT_HANDS" ] }, { @@ -309,7 +310,16 @@ "clip_size": 1, "reload": 200, "barrel_length": 3, - "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_EJECT" ] }, { @@ -368,7 +378,16 @@ "dispersion": 360, "durability": 5, "modes": [ [ "DEFAULT", "auto", 10 ] ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "magazines": [ [ "9mm", [ "stenmag", "survivor9mm_mag" ] ] ] }, { diff --git a/data/json/items/gun/blunderbuss.json b/data/json/items/gun/blunderbuss.json index fe7566e16280f..ed669f9ceb461 100644 --- a/data/json/items/gun/blunderbuss.json +++ b/data/json/items/gun/blunderbuss.json @@ -21,6 +21,13 @@ "loudness": 200, "clip_size": 1, "reload": 300, - "valid_mod_locations": [ [ "sling", 1 ], [ "stock", 1 ] ] + "valid_mod_locations": [ + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ] } ] diff --git a/data/json/items/gun/flammable.json b/data/json/items/gun/flammable.json index 63b3c611091e4..178ea295d3d86 100644 --- a/data/json/items/gun/flammable.json +++ b/data/json/items/gun/flammable.json @@ -15,7 +15,15 @@ "dispersion": 300, "durability": 8, "burst": 4, - "valid_mod_locations": [ [ "accessories", 1 ], [ "grip", 1 ], [ "sling", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 1 ], + [ "grip", 1 ], + [ "sling", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "magazines": [ [ "flammable", [ "pressurized_tank" ] ] ] }, { @@ -32,7 +40,7 @@ "dispersion": 300, "durability": 8, "clip_size": 100, - "valid_mod_locations": [ [ "grip", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ [ "sling", 1 ], [ "stock", 1 ], [ "rail mount", 1 ] ], "relative": { "reload": 4 } }, { diff --git a/data/json/items/gun/flintlock.json b/data/json/items/gun/flintlock.json index 763417387a223..2b0ea91ddb3bf 100644 --- a/data/json/items/gun/flintlock.json +++ b/data/json/items/gun/flintlock.json @@ -5,7 +5,15 @@ "type": "GUN", "name": "flintlock carbine", "description": "This short rifle design once dominated the battlefields of ancient Europe, and may yet re-earn its feared status due to its ease of handling and ability to use easily-crafted ammunition.", - "valid_mod_locations": [ [ "accessories", 1 ], [ "sling", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 1 ], + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ], "relative": { "weight": -500, "volume": -4, "range": -2, "ranged_damage": -4 }, "proportional": { "bashing": 0.6, "dispersion": 1.35, "reload": 0.6 } }, @@ -42,7 +50,14 @@ "durability": 6, "clip_size": 1, "reload": 600, - "valid_mod_locations": [ [ "accessories", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "NEVER_JAMS" ] }, { @@ -67,7 +82,15 @@ "durability": 6, "clip_size": 1, "reload": 1200, - "valid_mod_locations": [ [ "accessories", 1 ], [ "sling", 1 ], [ "underbarrel", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 1 ], + [ "sling", 1 ], + [ "underbarrel", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "stock mount", 1 ] + ], "flags": [ "NEVER_JAMS", "DURABLE_MELEE" ] } ] diff --git a/data/json/items/gun/metal_rail.json b/data/json/items/gun/metal_rail.json index a5de980544c52..86c6e8e9a2091 100644 --- a/data/json/items/gun/metal_rail.json +++ b/data/json/items/gun/metal_rail.json @@ -55,7 +55,7 @@ "clip_size": 1, "ups_charges": 40, "reload": 200, - "valid_mod_locations": [ [ "grip", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "sights", 1 ] ], + "valid_mod_locations": [ [ "grip", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "sights", 1 ], [ "rail mount", 1 ], [ "underbarrel mount", 1 ] ], "ammo_effects": [ "INCENDIARY", "TRAIL" ] } ] diff --git a/data/json/items/gun/nail.json b/data/json/items/gun/nail.json index 4eb69087af1af..40358228eae6d 100644 --- a/data/json/items/gun/nail.json +++ b/data/json/items/gun/nail.json @@ -20,7 +20,15 @@ "dispersion": 180, "durability": 5, "ups_charges": 5, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ], "magazines": [ [ "nail", [ "nailmag" ] ] ] }, { @@ -43,7 +51,8 @@ "durability": 8, "loudness": 5, "clip_size": 20, - "reload": 50 + "reload": 50, + "valid_mod_locations": [ [ "grip mount", 1 ], [ "rail mount", 1 ], [ "sights mount", 1 ], [ "stock mount", 1 ], [ "underbarrel mount", 1 ] ] }, { "id": "nailrifle", @@ -56,7 +65,16 @@ "skill": "rifle", "burst": 10, "clip_size": 0, - "valid_mod_locations": [ [ "accessories", 4 ], [ "barrel", 1 ], [ "grip", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "barrel", 1 ], + [ "grip", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ], "magazines": [ [ "nail", [ "nailmag" ] ] ], "relative": { "weight": 1000, "volume": 6, "range": 3, "ranged_damage": 4 }, "proportional": { "price": 3, "dispersion": 0.5 } diff --git a/data/json/items/gun/paintball.json b/data/json/items/gun/paintball.json index 8442e45d6795f..af27f4da5c571 100644 --- a/data/json/items/gun/paintball.json +++ b/data/json/items/gun/paintball.json @@ -22,6 +22,13 @@ "durability": 7, "clip_size": 50, "reload": 50, - "valid_mod_locations": [ [ "sling", 1 ] ] + "valid_mod_locations": [ + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ] } ] diff --git a/data/json/items/gun/shot.json b/data/json/items/gun/shot.json index f5b1f25cc3fdf..3c6de451d2aa6 100644 --- a/data/json/items/gun/shot.json +++ b/data/json/items/gun/shot.json @@ -42,7 +42,15 @@ "durability": 6, "clip_size": 1, "reload": 80, - "valid_mod_locations": [ [ "accessories", 1 ], [ "grip", 1 ], [ "stock", 1 ], [ "mechanism", 4 ], [ "sights", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 1 ], + [ "grip", 1 ], + [ "stock", 1 ], + [ "mechanism", 4 ], + [ "sights", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "NEVER_JAMS", "RELOAD_EJECT" ] }, { @@ -63,7 +71,15 @@ "burst": 6, "clip_size": 6, "reload": 110, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_ONE", "RELOAD_EJECT" ] }, { @@ -164,6 +180,16 @@ "clip_size": 2, "modes": [ [ "DEFAULT", "single", 1 ], [ "DOUBLE", "double", 2 ] ], "relative": { "weight": 500, "volume": 1, "price": 5000 }, + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "barrel", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "extend": { "flags": [ "RELOAD_ONE" ] } }, { @@ -184,7 +210,17 @@ "clip_size": 1, "reload": 200, "barrel_length": 4, - "valid_mod_locations": [ [ "accessories", 2 ], [ "sling", 1 ], [ "stock", 1 ], [ "barrel", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "barrel", 1 ], + [ "muzzle", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "NEVER_JAMS", "RELOAD_EJECT" ] }, { @@ -222,7 +258,16 @@ "clip_size": 6, "reload": 200, "barrel_length": 4, - "valid_mod_locations": [ [ "accessories", 2 ], [ "sling", 1 ], [ "stock", 1 ], [ "barrel", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "barrel", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_ONE", "NEVER_JAMS", "RELOAD_EJECT" ] }, { @@ -253,6 +298,17 @@ "clip_size": 2, "modes": [ [ "DEFAULT", "single", 1 ], [ "DOUBLE", "double", 2 ] ], "relative": { "weight": 500, "volume": 1, "price": 5000 }, + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "barrel", 1 ], + [ "bore", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ], "extend": { "flags": [ "RELOAD_ONE" ] } }, { @@ -278,7 +334,10 @@ [ "muzzle", 1 ], [ "sights", 1 ], [ "sling", 1 ], - [ "stock", 1 ] + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] ], "flags": [ "NEVER_JAMS", "RELOAD_EJECT" ] }, @@ -300,7 +359,18 @@ "clip_size": 8, "reload": 200, "barrel_length": 4, - "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "barrel", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "brass catcher", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "barrel", 1 ], + [ "muzzle", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "RELOAD_ONE" ] } ] diff --git a/data/json/items/gun/signal_flare.json b/data/json/items/gun/signal_flare.json index 5aa9be4643700..d4312e4d3ab9f 100644 --- a/data/json/items/gun/signal_flare.json +++ b/data/json/items/gun/signal_flare.json @@ -17,7 +17,14 @@ "durability": 7, "loudness": 40, "clip_size": 1, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "stock", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], "flags": [ "WATERPROOF_GUN", "NEVER_JAMS", "RELOAD_EJECT" ] } ] diff --git a/data/json/items/gun/ups.json b/data/json/items/gun/ups.json index 2e150b7515e9d..f0982f7d7a614 100644 --- a/data/json/items/gun/ups.json +++ b/data/json/items/gun/ups.json @@ -58,7 +58,14 @@ "loudness": 8, "ups_charges": 25, "reload": 200, - "valid_mod_locations": [ [ "sling", 1 ] ], + "valid_mod_locations": [ + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ], "ammo_effects": [ "LASER", "INCENDIARY" ], "flags": [ "NO_UNLOAD" ] }, diff --git a/data/json/items/gunmod/mount.json b/data/json/items/gunmod/mount.json new file mode 100644 index 0000000000000..4728f4102a767 --- /dev/null +++ b/data/json/items/gunmod/mount.json @@ -0,0 +1,95 @@ +[ + { + "id": "grip_mount", + "type": "GUNMOD", + "name": "replaceable furniture kit", + "description": "This is a kit consisting of various steel and plastic parts; when installed, it would permanently modify and partially replace some of the weapon's furniture so that it could be easily changed if needed. This allows installing any kind of more advanced grips or other furniture.", + "weight": 80, + "volume": "50ml", + "integral_volume": 0, + "price": 6000, + "material": [ "steel", "plastic" ], + "symbol": ":", + "color": "light_gray", + "location": "grip mount", + "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher" ], + "install_time": 60000, + "min_skills": [ [ "gun", 5 ] ], + "add_mod": [ [ "grip", 1 ] ], + "flags": [ "INSTALL_DIFFICULT", "IRREMOVABLE" ] + }, + { + "id": "rail_mount", + "type": "GUNMOD", + "name": "side mount", + "description": "This is a plastic mount for attaching a rail accessory, designed to be permanently installed onto almost any weapon, along with some fasteners. Ideal for bringing out your inner tacticool on older guns.", + "weight": 10, + "volume": "8ml", + "price": 6000, + "material": [ "steel", "plastic" ], + "symbol": ":", + "color": "light_gray", + "location": "rail mount", + "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher" ], + "install_time": 15000, + "min_skills": [ [ "gun", 3 ] ], + "add_mod": [ [ "rail", 1 ] ], + "flags": [ "INSTALL_DIFFICULT", "IRREMOVABLE" ] + }, + { + "id": "sights_mount", + "type": "GUNMOD", + "name": "sights mount", + "description": "This is a plastic mount for attaching a sight, designed to be permanently installed onto almost any weapon, along with some fasteners. Ideal for bringing out your inner tacticool on older guns.", + "weight": 10, + "volume": "8ml", + "price": 6000, + "material": [ "steel", "plastic" ], + "symbol": ":", + "color": "light_gray", + "location": "sights mount", + "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher" ], + "install_time": 15000, + "min_skills": [ [ "gun", 3 ] ], + "add_mod": [ [ "sights", 1 ] ], + "flags": [ "INSTALL_DIFFICULT", "IRREMOVABLE" ] + }, + { + "id": "stock_mount", + "type": "GUNMOD", + "name": "replaceable stock kit", + "description": "This is a kit consisting of various steel parts; when installed, it would remove the weapon's original fixed stock, install a new stock mount on its place, modify original stock to fit it and then reattach it to the gun, or simply attach a stock mount if gun had no stock to start with. This allows easy installation of any kind of more advanced stocks.", + "weight": 80, + "volume": "50ml", + "integral_volume": 0, + "price": 6000, + "material": [ "steel" ], + "symbol": ":", + "color": "light_gray", + "location": "stock mount", + "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher" ], + "install_time": 60000, + "min_skills": [ [ "gun", 5 ] ], + "add_mod": [ [ "stock", 1 ] ], + "flags": [ "INSTALL_DIFFICULT", "IRREMOVABLE" ] + }, + { + "id": "underbarrel_mount", + "type": "GUNMOD", + "name": "bottom mount", + "description": "This is a plastic mount for attaching an underbarrel accessory, designed to be permanently installed onto almost any weapon, along with some fasteners. Ideal for bringing out your inner tacticool on older guns.", + "weight": 10, + "volume": "8ml", + "price": 6000, + "material": [ "steel", "plastic" ], + "symbol": ":", + "color": "light_gray", + "location": "rail mount", + "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher" ], + "install_time": 15000, + "min_skills": [ [ "gun", 3 ] ], + "add_mod": [ [ "underbarrel", 1 ] ], + "flags": [ "INSTALL_DIFFICULT", "IRREMOVABLE" ] + } +] + diff --git a/data/json/items/ranged.json b/data/json/items/ranged.json index b47849d09c020..1b5db623c0b80 100644 --- a/data/json/items/ranged.json +++ b/data/json/items/ranged.json @@ -23,7 +23,15 @@ "durability": 7, "clip_size": 150, "reload": 50, - "valid_mod_locations": [ [ "accessories", 4 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "sling", @@ -263,7 +271,15 @@ "loudness": 25, "barrel_length": 2, "built_in_mods": [ "combination_gun_shotgun_pipe" ], - "valid_mod_locations": [ [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ] + "valid_mod_locations": [ + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "tihar", @@ -290,7 +306,16 @@ "clip_size": 15, "reload": 1000, "loudness": 18, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "helsing", @@ -316,7 +341,16 @@ "clip_size": 8, "reload": 1000, "loudness": 22, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "mininuke_launcher", @@ -340,7 +374,7 @@ "durability": 7, "clip_size": 1, "reload": 800, - "valid_mod_locations": [ [ "sling", 1 ] ] + "valid_mod_locations": [ [ "sling", 1 ], [ "grip mount", 1 ], [ "rail mount", 1 ], [ "sights mount", 1 ], [ "underbarrel mount", 1 ] ] }, { "id": "m202_flash", @@ -366,7 +400,15 @@ "clip_size": 4, "reload": 600, "loudness": 200, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "sights", 1 ], [ "sling", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "RPG", @@ -391,7 +433,15 @@ "durability": 10, "clip_size": 1, "reload": 150, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "sights", 1 ], [ "sling", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "speargun", @@ -416,7 +466,15 @@ "durability": 8, "clip_size": 1, "reload": 700, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "minispeargun", @@ -439,7 +497,14 @@ "durability": 8, "clip_size": 1, "reload": 600, - "valid_mod_locations": [ [ "accessories", 2 ], [ "grip", 1 ], [ "sights", 1 ], [ "stock", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "grip", 1 ], + [ "sights", 1 ], + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "doublespeargun", @@ -464,7 +529,15 @@ "durability": 7, "clip_size": 2, "reload": 700, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "airspeargun", @@ -490,7 +563,15 @@ "clip_size": 4, "reload": 1000, "loudness": 11, - "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ] }, { "id": "combination_gun", @@ -524,7 +605,8 @@ [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ], - [ "underbarrel", 1 ] + [ "underbarrel", 1 ], + [ "rail mount", 1 ] ] }, { @@ -550,7 +632,7 @@ "clip_size": 1, "reload": 800, "loudness": 200, - "valid_mod_locations": [ [ "sling", 1 ] ] + "valid_mod_locations": [ [ "sling", 1 ], [ "grip mount", 1 ], [ "rail mount", 1 ], [ "sights mount", 1 ], [ "underbarrel mount", 1 ] ] }, { "id": "watercannon", diff --git a/data/json/recipes/weapon/mods.json b/data/json/recipes/weapon/mods.json index a2658382b220b..b246cf76517d6 100644 --- a/data/json/recipes/weapon/mods.json +++ b/data/json/recipes/weapon/mods.json @@ -51,6 +51,136 @@ "tools": [ [ [ "large_repairkit", 10 ], [ "small_repairkit", 30 ] ] ], "components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] }, + { + "result": "sights_mount", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MODS", + "skill_used": "fabrication", + "difficulty": 3, + "skills_required": [ [ "gun", 4 ] ], + "time": 30000, + "book_learn": [ + [ "mag_guns", 4 ], + [ "mag_pistol", 4 ], + [ "mag_shotgun", 4 ], + [ "mag_smg", 4 ], + [ "mag_rifle", 4 ], + [ "manual_gun", 4 ], + [ "manual_pistol", 4 ], + [ "manual_shotgun", 4 ], + [ "manual_smg", 4 ], + [ "manual_rifle", 4 ] + ], + "using": [ [ "soldering_standard", 15 ] ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ], + "tools": [ [ [ "large_repairkit", 10 ], [ "small_repairkit", 30 ] ] ], + "components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] + }, + { + "result": "rail_mount", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MODS", + "skill_used": "fabrication", + "difficulty": 3, + "skills_required": [ [ "gun", 4 ] ], + "time": 30000, + "book_learn": [ + [ "mag_guns", 4 ], + [ "mag_pistol", 4 ], + [ "mag_shotgun", 4 ], + [ "mag_smg", 4 ], + [ "mag_rifle", 4 ], + [ "manual_gun", 4 ], + [ "manual_pistol", 4 ], + [ "manual_shotgun", 4 ], + [ "manual_smg", 4 ], + [ "manual_rifle", 4 ] + ], + "using": [ [ "soldering_standard", 15 ] ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ], + "tools": [ [ [ "large_repairkit", 10 ], [ "small_repairkit", 30 ] ] ], + "components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] + }, + { + "result": "underbarrel_mount", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MODS", + "skill_used": "fabrication", + "difficulty": 3, + "skills_required": [ [ "gun", 4 ] ], + "time": 30000, + "book_learn": [ + [ "mag_guns", 4 ], + [ "mag_pistol", 4 ], + [ "mag_shotgun", 4 ], + [ "mag_smg", 4 ], + [ "mag_rifle", 4 ], + [ "manual_gun", 4 ], + [ "manual_pistol", 4 ], + [ "manual_shotgun", 4 ], + [ "manual_smg", 4 ], + [ "manual_rifle", 4 ] + ], + "using": [ [ "soldering_standard", 15 ] ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ], + "tools": [ [ [ "large_repairkit", 10 ], [ "small_repairkit", 30 ] ] ], + "components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] + }, + { + "result": "stock_mount", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MODS", + "skill_used": "fabrication", + "difficulty": 3, + "skills_required": [ [ "gun", 5 ] ], + "time": 30000, + "book_learn": [ + [ "mag_guns", 4 ], + [ "mag_pistol", 4 ], + [ "mag_shotgun", 4 ], + [ "mag_smg", 4 ], + [ "mag_rifle", 4 ], + [ "manual_gun", 4 ], + [ "manual_pistol", 4 ], + [ "manual_shotgun", 4 ], + [ "manual_smg", 4 ], + [ "manual_rifle", 4 ] + ], + "using": [ [ "soldering_standard", 15 ] ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ], + "tools": [ [ [ "large_repairkit", 10 ], [ "small_repairkit", 30 ] ] ], + "components": [ [ [ "scrap", 3 ] ] ] + }, + { + "result": "grip_mount", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MODS", + "skill_used": "fabrication", + "difficulty": 3, + "skills_required": [ [ "gun", 5 ] ], + "time": 30000, + "book_learn": [ + [ "mag_guns", 4 ], + [ "mag_pistol", 4 ], + [ "mag_shotgun", 4 ], + [ "mag_smg", 4 ], + [ "mag_rifle", 4 ], + [ "manual_gun", 4 ], + [ "manual_pistol", 4 ], + [ "manual_shotgun", 4 ], + [ "manual_smg", 4 ], + [ "manual_rifle", 4 ] + ], + "using": [ [ "soldering_standard", 15 ] ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ], + "tools": [ [ [ "large_repairkit", 10 ], [ "small_repairkit", 30 ] ] ], + "components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 3 ] ] ] + }, { "type": "recipe", "result": "tele_sight", From fbff7212a90180344d9820a4c6cc244c3b27adc0 Mon Sep 17 00:00:00 2001 From: Rail Runner Date: Sat, 25 May 2019 05:12:42 +0300 Subject: [PATCH 2/3] Fix bottom mount and delete double empty line --- data/json/items/gunmod/mount.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/data/json/items/gunmod/mount.json b/data/json/items/gunmod/mount.json index 4728f4102a767..8a370b307a7f0 100644 --- a/data/json/items/gunmod/mount.json +++ b/data/json/items/gunmod/mount.json @@ -84,7 +84,7 @@ "material": [ "steel", "plastic" ], "symbol": ":", "color": "light_gray", - "location": "rail mount", + "location": "underbarrel mount", "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher" ], "install_time": 15000, "min_skills": [ [ "gun", 3 ] ], @@ -92,4 +92,3 @@ "flags": [ "INSTALL_DIFFICULT", "IRREMOVABLE" ] } ] - From 57d3f57eb3d259c998337f40c09348decea642eb Mon Sep 17 00:00:00 2001 From: Rail Runner Date: Mon, 27 May 2019 19:35:36 +0300 Subject: [PATCH 3/3] Update --- data/json/items/gun/223.json | 15 +++++++-- data/json/items/gun/460.json | 27 ++++++++++++---- data/json/items/gun/8x40mm.json | 1 - data/json/items/gun/9mm.json | 11 ++++++- data/json/items/gun/shot.json | 12 ++++++- data/json/items/gunmod/grip.json | 2 +- data/json/items/gunmod/mount.json | 42 ++++++++++++++++++++++-- data/json/items/ranged.json | 6 ++-- data/json/recipes/weapon/mods.json | 52 ++++++++++++++++++++++++++++++ 9 files changed, 151 insertions(+), 17 deletions(-) diff --git a/data/json/items/gun/223.json b/data/json/items/gun/223.json index 0bf3cff7213bc..cdcb2502c8585 100644 --- a/data/json/items/gun/223.json +++ b/data/json/items/gun/223.json @@ -129,7 +129,7 @@ "dispersion": 140, "durability": 3, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 3 ] ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], [ "sling", 1 ] ], + "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], [ "muzzle", 1 ], [ "sling", 1 ] ], "magazines": [ [ "223", [ "lw223mag", "lw223bigmag" ] ] ], "flags": [ "DISABLE_SIGHTS" ] }, @@ -147,6 +147,7 @@ "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], + [ "muzzle", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "barrel", 1 ], @@ -170,6 +171,7 @@ "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], + [ "muzzle", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "barrel", 1 ], @@ -192,6 +194,7 @@ "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], + [ "muzzle", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "barrel", 1 ], @@ -209,7 +212,15 @@ "durability": 9, "relative": { "weight": 1200, "volume": 2 }, "built_in_mods": [ "lead_acog_scope", "lead_red_dot_sight", "lead_grip", "lead_glm", "lead_stabilizer" ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], [ "sights", 2 ], [ "sling", 1 ], [ "underbarrel", 2 ], [ "rail", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "brass catcher", 1 ], + [ "muzzle", 1 ], + [ "sights", 2 ], + [ "sling", 1 ], + [ "underbarrel", 2 ], + [ "rail", 1 ] + ] }, { "id": "m249", diff --git a/data/json/items/gun/460.json b/data/json/items/gun/460.json index 2a67cd8b9d26b..3d4a6fbe09264 100644 --- a/data/json/items/gun/460.json +++ b/data/json/items/gun/460.json @@ -8,8 +8,7 @@ "price": 90000, "ammo": "460", "relative": { "durability": -1 }, - "built_in_mods": [ "lead_holo_sight", "muzzle_brake", "lead_laser_sight" ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], [ "muzzle", 1 ], [ "sights", 1 ], [ "underbarrel", 1 ] ] + "built_in_mods": [ "lead_holo_sight", "muzzle_brake", "lead_laser_sight" ] }, { "id": "l_mp_45", @@ -19,8 +18,7 @@ "description": "After the success of their 9x19mm machine pistol, Leadworks LLC developed the L39B-45 from their .460 Rowland semi-autos, intending them to be used with .45ACP. Because it shares most of its parts with the L39-460, this variant retains the ability to fire fearsome .460 Rowland, though users are strongly advised not to do so during automatic fire. Comes with built in red dot, recoil compensator and laser sights. Similar to other Leadworks products it doesn't accept third-party modifications.", "ammo": "460", "relative": { "durability": -1 }, - "built_in_mods": [ "lead_holo_sight", "muzzle_brake", "lead_laser_sight" ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], [ "muzzle", 1 ], [ "sights", 1 ], [ "underbarrel", 1 ] ] + "built_in_mods": [ "lead_holo_sight", "muzzle_brake", "lead_laser_sight" ] }, { "id": "l_enforcer_45", @@ -45,7 +43,14 @@ "clip_size": 6, "magazines": [ [ "460", [ "460_speedloader6" ] ] ], "built_in_mods": [ "lead_holo_sight", "lead_laser_sight" ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "sights", 1 ], [ "underbarrel", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "sights", 1 ], + [ "underbarrel", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ] + ] }, { "id": "l_long_45", @@ -72,7 +77,17 @@ "clip_size": 12, "barrel_length": 2, "built_in_mods": [ "lead_holo_sight", "lead_laser_sight" ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "underbarrel", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "brass catcher", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "underbarrel", 1 ], + [ "muzzle", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ] + ], "flags": [ "RELOAD_ONE" ] } ] diff --git a/data/json/items/gun/8x40mm.json b/data/json/items/gun/8x40mm.json index bf24c8787bc46..bc2b0aaa85440 100644 --- a/data/json/items/gun/8x40mm.json +++ b/data/json/items/gun/8x40mm.json @@ -64,7 +64,6 @@ [ "rail", 1 ], [ "sights", 1 ], [ "sling", 1 ], - [ "stock", 1 ], [ "underbarrel", 1 ] ], "magazines": [ [ "8x40mm", [ "8x40_10_mag", "8x40_25_mag" ] ] ], diff --git a/data/json/items/gun/9mm.json b/data/json/items/gun/9mm.json index fa21508e56f46..90897577c7b93 100644 --- a/data/json/items/gun/9mm.json +++ b/data/json/items/gun/9mm.json @@ -259,7 +259,16 @@ "dispersion": 340, "durability": 9, "built_in_mods": [ "lead_red_dot_sight", "lead_laser_sight" ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], [ "sights", 1 ], [ "underbarrel", 1 ] ], + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "brass catcher", 1 ], + [ "sights", 1 ], + [ "underbarrel", 1 ], + [ "muzzle", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ] + ], "magazine_well": 1, "magazines": [ [ "9mm", [ "lw21mag" ] ], [ "460", [ "lw12mag" ] ] ], "flags": [ "DURABLE_MELEE" ] diff --git a/data/json/items/gun/shot.json b/data/json/items/gun/shot.json index 3c6de451d2aa6..dba218e02bdcb 100644 --- a/data/json/items/gun/shot.json +++ b/data/json/items/gun/shot.json @@ -132,7 +132,17 @@ "durability": 8, "clip_size": 8, "built_in_mods": [ "lead_red_dot_sight", "lead_laser_sight" ], - "valid_mod_locations": [ [ "accessories", 2 ], [ "brass catcher", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "underbarrel", 1 ] ] + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "brass catcher", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "underbarrel", 1 ], + [ "muzzle", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "stock mount", 1 ] + ] }, { "id": "m1014", diff --git a/data/json/items/gunmod/grip.json b/data/json/items/gunmod/grip.json index 69703b435a96a..ffdb5e500ff8b 100644 --- a/data/json/items/gunmod/grip.json +++ b/data/json/items/gunmod/grip.json @@ -31,7 +31,7 @@ "symbol": ":", "color": "dark_gray", "location": "grip", - "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher" ], + "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher", "bow" ], "handling_modifier": 2, "min_skills": [ [ "weapon", 2 ] ] } diff --git a/data/json/items/gunmod/mount.json b/data/json/items/gunmod/mount.json index 8a370b307a7f0..0f3cf6a6c46e4 100644 --- a/data/json/items/gunmod/mount.json +++ b/data/json/items/gunmod/mount.json @@ -40,7 +40,7 @@ "id": "sights_mount", "type": "GUNMOD", "name": "sights mount", - "description": "This is a plastic mount for attaching a sight, designed to be permanently installed onto almost any weapon, along with some fasteners. Ideal for bringing out your inner tacticool on older guns.", + "description": "This is a plastic mount for attaching a sight, designed to be permanently installed onto almost any weapon other than launchers and pistols, along with some fasteners. Ideal for bringing out your inner tacticool on older guns.", "weight": 10, "volume": "8ml", "price": 6000, @@ -48,7 +48,43 @@ "symbol": ":", "color": "light_gray", "location": "sights mount", - "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher" ], + "mod_targets": [ "smg", "rifle", "shotgun", "crossbow" ], + "install_time": 15000, + "min_skills": [ [ "gun", 3 ] ], + "add_mod": [ [ "sights", 1 ] ], + "flags": [ "INSTALL_DIFFICULT", "IRREMOVABLE" ] + }, + { + "id": "sights_mount_launcher", + "type": "GUNMOD", + "name": "launcher sights mount", + "description": "This is a plastic mount for attaching a sight, designed to be permanently installed onto almost any launcher, along with some fasteners. Ideal for bringing out your inner tacticool on rocket launchers.", + "weight": 60, + "volume": "80ml", + "price": 6000, + "material": [ "steel", "plastic" ], + "symbol": ":", + "color": "light_gray", + "location": "sights mount", + "mod_targets": [ "launcher" ], + "install_time": 15000, + "min_skills": [ [ "gun", 3 ] ], + "add_mod": [ [ "sights", 1 ] ], + "flags": [ "INSTALL_DIFFICULT", "IRREMOVABLE" ] + }, + { + "id": "sights_mount_pistol", + "type": "GUNMOD", + "name": "pistol sights mount", + "description": "This is a plastic mount for attaching a sight, designed to be permanently installed onto almost any pistol, along with some fasteners. Ideal for bringing out your inner tacticool on pocket pistols.", + "weight": 60, + "volume": "80ml", + "price": 6000, + "material": [ "steel", "plastic" ], + "symbol": ":", + "color": "light_gray", + "location": "sights mount", + "mod_targets": [ "pistol" ], "install_time": 15000, "min_skills": [ [ "gun", 3 ] ], "add_mod": [ [ "sights", 1 ] ], @@ -85,7 +121,7 @@ "symbol": ":", "color": "light_gray", "location": "underbarrel mount", - "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher" ], + "mod_targets": [ "smg", "rifle", "pistol", "shotgun", "crossbow", "launcher", "bow" ], "install_time": 15000, "min_skills": [ [ "gun", 3 ] ], "add_mod": [ [ "underbarrel", 1 ] ], diff --git a/data/json/items/ranged.json b/data/json/items/ranged.json index 1b5db623c0b80..a0377f95e90d9 100644 --- a/data/json/items/ranged.json +++ b/data/json/items/ranged.json @@ -74,7 +74,8 @@ "range": 5, "dispersion": 75, "durability": 6, - "clip_size": 1 + "clip_size": 1, + "valid_mod_locations": [ [ "grip mount", 1 ], [ "underbarrel mount", 1 ] ] }, { "id": "wristrocket", @@ -95,7 +96,8 @@ "range": 8, "dispersion": 45, "durability": 7, - "clip_size": 1 + "clip_size": 1, + "valid_mod_locations": [ [ "grip mount", 1 ], [ "underbarrel mount", 1 ] ] }, { "id": "bullet_crossbow", diff --git a/data/json/recipes/weapon/mods.json b/data/json/recipes/weapon/mods.json index b246cf76517d6..6369ddc349745 100644 --- a/data/json/recipes/weapon/mods.json +++ b/data/json/recipes/weapon/mods.json @@ -77,6 +77,58 @@ "tools": [ [ [ "large_repairkit", 10 ], [ "small_repairkit", 30 ] ] ], "components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] }, + { + "result": "sights_mount_launcher", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MODS", + "skill_used": "fabrication", + "difficulty": 3, + "skills_required": [ [ "gun", 4 ] ], + "time": 30000, + "book_learn": [ + [ "mag_guns", 4 ], + [ "mag_pistol", 4 ], + [ "mag_shotgun", 4 ], + [ "mag_smg", 4 ], + [ "mag_rifle", 4 ], + [ "manual_gun", 4 ], + [ "manual_pistol", 4 ], + [ "manual_shotgun", 4 ], + [ "manual_smg", 4 ], + [ "manual_rifle", 4 ] + ], + "using": [ [ "soldering_standard", 15 ] ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ], + "tools": [ [ [ "large_repairkit", 10 ], [ "small_repairkit", 30 ] ] ], + "components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] + }, + { + "result": "sights_mount_pistol", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MODS", + "skill_used": "fabrication", + "difficulty": 3, + "skills_required": [ [ "gun", 4 ] ], + "time": 30000, + "book_learn": [ + [ "mag_guns", 4 ], + [ "mag_pistol", 4 ], + [ "mag_shotgun", 4 ], + [ "mag_smg", 4 ], + [ "mag_rifle", 4 ], + [ "manual_gun", 4 ], + [ "manual_pistol", 4 ], + [ "manual_shotgun", 4 ], + [ "manual_smg", 4 ], + [ "manual_rifle", 4 ] + ], + "using": [ [ "soldering_standard", 15 ] ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ], + "tools": [ [ [ "large_repairkit", 10 ], [ "small_repairkit", 30 ] ] ], + "components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] + }, { "result": "rail_mount", "type": "recipe",