From 30517b3811fa707a3dcfb0849efb0cfd4977c98d Mon Sep 17 00:00:00 2001 From: Chaosvolt Date: Mon, 12 Dec 2022 08:08:09 -0600 Subject: [PATCH 148/177] Ammo rebalance project, part 7 (#2121) * [WIP] Ammo rebalance project, part 7 * Typofix Doi * Update 40x46mm, casing description stuff * And do 40x53mm * Obsolete/migrate redundant 8mm ammo * Re-add comment that got ate by merge conflict fix * Updates per feedback --- .../itemgroups/Weapons_Mods_Ammo/ammo.json | 1 - data/json/itemgroups/military.json | 4 +- data/json/items/ammo/40x46mm.json | 57 ++++++++----------- data/json/items/ammo/40x53mm.json | 29 +++------- data/json/items/ammo/5x50.json | 8 ++- data/json/items/ammo/8x40mm.json | 23 ++++---- data/json/items/generic/casing.json | 8 +-- data/json/items/handloaded_bullets.json | 8 ++- data/json/items/migration.json | 15 +++++ data/json/obsoletion/recipes.json | 10 ++++ data/json/professions.json | 4 +- data/json/recipes/ammo/shot.json | 4 +- .../Generic_Guns/ammo/gg_ammo_migration.json | 3 - .../Generic_Guns/recipes/recipe_obsolete.json | 7 +-- data/mods/No_Rivtech_Guns/modinfo.json | 1 - .../more_classes_scenarios/cs_classes.json | 6 +- doc/GAME_BALANCE.md | 6 +- 22 files changed, 110 insertions(+), 108 deletions(-) diff --git a/data/json/itemgroups/Weapons_Mods_Ammo/ammo.json b/data/json/itemgroups/Weapons_Mods_Ammo/ammo.json index c10de498fb4..63682ca9ef1 100644 --- a/data/json/itemgroups/Weapons_Mods_Ammo/ammo.json +++ b/data/json/itemgroups/Weapons_Mods_Ammo/ammo.json @@ -246,7 +246,6 @@ { "item": "762_51_incendiary", "prob": 10 }, { "item": "762_51", "prob": 40 }, { "item": "8mm_caseless", "prob": 30 }, - { "item": "8mm_fmj", "prob": 30 }, { "item": "8mm_hvp", "prob": 10 }, { "item": "8mm_inc", "prob": 20 }, { "item": "8mm_jhp", "prob": 10 }, diff --git a/data/json/itemgroups/military.json b/data/json/itemgroups/military.json index 67766ba566a..8f564eb87aa 100644 --- a/data/json/itemgroups/military.json +++ b/data/json/itemgroups/military.json @@ -226,7 +226,7 @@ { "item": "8mm_caseless", "prob": 2 }, { "item": "rm99_pistol", "prob": 1 }, { "item": "8mm_jhp", "prob": 2 }, - { "item": "8mm_fmj", "prob": 2 }, + { "item": "8mm_hvp", "prob": 2 }, { "item": "laser_rifle", "prob": 1 }, { "item": "rm103a_pistol", "prob": 1 }, { "item": "laser_sight", "prob": 15 }, @@ -388,7 +388,7 @@ { "item": "50_mk211", "prob": 1 }, { "item": "50ss", "prob": 8 }, { "item": "50_incendiary", "prob": 8 }, - { "item": "8mm_fmj", "prob": 6 }, + { "item": "8mm_jhp", "prob": 6 }, { "item": "8mm_inc", "prob": 6 }, { "item": "8mm_caseless", "prob": 6 }, { "item": "m202_flash", "prob": 15 }, diff --git a/data/json/items/ammo/40x46mm.json b/data/json/items/ammo/40x46mm.json index 530278fd5d8..352b67d154c 100644 --- a/data/json/items/ammo/40x46mm.json +++ b/data/json/items/ammo/40x46mm.json @@ -22,7 +22,7 @@ "id": "40x46mm_m1006", "copy-from": "40x46mm_grenade", "type": "AMMO", - "name": { "str": "40x46mm M1006" }, + "name": { "str": "40x46mm M1006 stun" }, "description": "A low velocity less-lethal 40x46mm round with a foam and plastic projectile intended to cause pain and disorientation to the target. May still injure or kill.", "weight": "68 g", "damage": { "damage_type": "bash", "amount": 20 }, @@ -33,7 +33,7 @@ "id": "40x46mm_m433", "copy-from": "40x46mm_grenade", "type": "AMMO", - "name": { "str": "40x46mm M433" }, + "name": { "str": "40x46mm M433 HEDP" }, "description": "A low velocity 40x46mm HEDP grenade. It can penetrate 2 inches of steel armor and fragmentation of the projectile body also makes it suitable for use against infantry.", "weight": "230 g", "damage": { "damage_type": "bullet", "amount": 200, "armor_penetration": 30 }, @@ -44,11 +44,11 @@ "id": "40x46mm_m576", "copy-from": "40x46mm_grenade", "type": "AMMO", - "name": { "str": "40x46mm M576" }, + "name": { "str": "40x46mm M576 buckshot" }, "description": "A 40x46mm buckshot load, designed for use in thick vegetation or room clearing.", "weight": "120 g", "range": 12, - "damage": { "damage_type": "bullet", "amount": 120, "armor_penetration": 4 }, + "damage": { "damage_type": "bullet", "amount": 120 }, "recoil": 1000, "casing": "40x46mm_m199_casing", "extend": { "effects": [ "SHOT" ] } @@ -57,7 +57,7 @@ "id": "40x46mm_m651", "copy-from": "40x46mm_grenade", "type": "AMMO", - "name": { "str": "40x46mm M651" }, + "name": { "str": "40x46mm M651 teargas" }, "description": "A low velocity 40mm tear gas canister. It is effective for riot control and driving infantry from entrenched positions", "weight": "290 g", "damage": { "damage_type": "bullet", "amount": 15 }, @@ -69,37 +69,25 @@ "id": "40x46mm_buckshot_m118", "copy-from": "40x46mm_grenade", "type": "AMMO", - "name": { "str": "40x46mm buckshot" }, - "description": "An improvised 40x46mm buckshot load somewhat resembling M576.", + "name": { "str": "improvised 40x46mm buckshot" }, + "description": "An improvised 40x46mm buckshot load somewhat resembling M576. Aside from using the M118 casing normally used by HEDP shells, it performs as well as buckshot loads using the intended M199 casing.", "weight": "120 g", "range": 10, - "damage": { "damage_type": "bullet", "amount": 90, "armor_penetration": 4 }, + "damage": { "damage_type": "bullet", "amount": 120 }, "recoil": 1000, "casing": "40x46mm_m118_casing", "extend": { "effects": [ "SHOT" ] } }, - { - "id": "40x46mm_buckshot_m199", - "copy-from": "40x46mm_grenade", - "type": "AMMO", - "name": { "str": "40x46mm buckshot" }, - "description": "An improvised 40x46mm buckshot load somewhat resembling M576.", - "weight": "120 g", - "range": 10, - "damage": { "damage_type": "bullet", "amount": 90, "armor_penetration": 4 }, - "recoil": 1000, - "casing": "40x46mm_m199_casing", - "extend": { "effects": [ "SHOT" ] } - }, { "id": "40x46mm_slug_m118", "copy-from": "40x46mm_grenade", "type": "AMMO", - "name": { "str": "40x46mm slug" }, - "description": "An improvised 40x46mm load resembling an oversized shotgun slug.", + "name": { "str": "improvised 40x46mm slug" }, + "description": "An improvised 40x46mm load resembling an oversized shotgun slug. Aside from using the M118 casing normally used by HEDP shells, it performs as well as slugs using the M199 casing.", "weight": "120 g", "range": 10, - "damage": { "damage_type": "bullet", "amount": 120, "armor_penetration": 6 }, + "//": "Balanced as FMJ.", + "damage": { "damage_type": "bullet", "amount": 96, "armor_penetration": 42 }, "recoil": 1000, "casing": "40x46mm_m118_casing" }, @@ -107,11 +95,12 @@ "id": "40x46mm_slug_m199", "copy-from": "40x46mm_grenade", "type": "AMMO", - "name": { "str": "40x46mm slug" }, - "description": "An improvised 40x46mm load resembling an oversized shotgun slug.", + "name": { "str": "improvised 40x46mm slug" }, + "description": "An improvised 40x46mm load resembling an oversized shotgun slug, loaded into the M199 casing used by M576 buckshot shells.", "weight": "120 g", "range": 10, - "damage": { "damage_type": "bullet", "amount": 120, "armor_penetration": 6 }, + "//": "Balanced as FMJ.", + "damage": { "damage_type": "bullet", "amount": 96, "armor_penetration": 42 }, "recoil": 1000, "casing": "40x46mm_m199_casing" }, @@ -119,11 +108,12 @@ "id": "40x46mm_flechette_m118", "copy-from": "40x46mm_grenade", "type": "AMMO", - "name": { "str": "40x46mm flechette" }, - "description": "An improvised 40x46mm flechette load containing 70 steel darts.", + "name": { "str": "improvised 40x46mm flechette" }, + "description": "An improvised 40x46mm flechette load containing 70 steel darts. Aside from using the M118 casing normally used by HEDP shells, it performs as well as flechette shells using the M199 casing.", "weight": "120 g", "range": 10, - "damage": { "damage_type": "bullet", "amount": 75, "armor_penetration": 6 }, + "//": "Balanced as AP.", + "damage": { "damage_type": "bullet", "amount": 84, "armor_penetration": 72 }, "recoil": 1000, "casing": "40x46mm_m118_casing", "extend": { "effects": [ "SHOT" ] } @@ -132,11 +122,12 @@ "id": "40x46mm_flechette_m199", "copy-from": "40x46mm_grenade", "type": "AMMO", - "name": { "str": "40x46mm flechette" }, - "description": "An improvised 40x46mm flechette load containing 70 steel darts.", + "name": { "str": "improvised 40x46mm flechette" }, + "description": "An improvised 40x46mm flechette load containing 70 steel darts, loaded into the M199 casing used by M576 buckshot shells.", "weight": "120 g", "range": 10, - "damage": { "damage_type": "bullet", "amount": 75, "armor_penetration": 6 }, + "//": "Balanced as AP.", + "damage": { "damage_type": "bullet", "amount": 84, "armor_penetration": 72 }, "recoil": 1000, "casing": "40x46mm_m199_casing", "extend": { "effects": [ "SHOT" ] } diff --git a/data/json/items/ammo/40x53mm.json b/data/json/items/ammo/40x53mm.json index 4541de0dab2..aeb0d2e732e 100644 --- a/data/json/items/ammo/40x53mm.json +++ b/data/json/items/ammo/40x53mm.json @@ -22,11 +22,12 @@ "id": "40x53mm_m1001", "copy-from": "40x53mm_grenade", "type": "AMMO", - "name": { "str": "40x53mm M1001" }, + "name": { "str": "40x53mm M1001 flechette" }, "description": "40x53mm canister shot loaded with 17 grain flechettes.", "weight": "340 g", + "//": "Balanced as AP.", "range": 10, - "damage": { "damage_type": "bullet", "amount": 150, "armor_penetration": 10 }, + "damage": { "damage_type": "bullet", "amount": 91, "armor_penetration": 78 }, "recoil": 1000, "casing": "40x53mm_m169_casing", "extend": { "effects": [ "SHOT" ] } @@ -35,6 +36,6 @@ "id": "40x53mm_m430a1", "copy-from": "40x53mm_grenade", "type": "AMMO", - "name": { "str": "40x53mm M430A1" }, + "name": { "str": "40x53mm M430A1 HEDP" }, "description": "A high velocity 40x53mm HEDP grenade. It can penetrate 3 inches of steel armor and fragmentation of the projectile body also makes it suitable for use against infantry.", "weight": "340 g", @@ -47,11 +48,11 @@ "id": "40x53mm_buckshot_m169", "copy-from": "40x53mm_grenade", "type": "AMMO", - "name": { "str": "40x53mm buckshot" }, + "name": { "str": "improvised 40x53mm buckshot" }, "description": "An improvised 40x53mm buckshot load somewhat resembling M576.", "weight": "340 g", "range": 10, - "damage": { "damage_type": "bullet", "amount": 100, "armor_penetration": 4 }, + "damage": { "damage_type": "bullet", "amount": 130 }, "recoil": 1200, "casing": "40x53mm_m169_casing", "extend": { "effects": [ "SHOT" ] } @@ -60,25 +61,13 @@ "id": "40x53mm_slug_m169", "copy-from": "40x53mm_grenade", "type": "AMMO", - "name": { "str": "40x53mm slug" }, + "name": { "str": "improvised 40x53mm slug" }, "description": "An improvised 40x53mm load resembling an oversized shotgun slug.", "weight": "340 g", "range": 10, - "damage": { "damage_type": "bullet", "amount": 130, "armor_penetration": 6 }, + "//": "Balanced as FMJ.", + "damage": { "damage_type": "bullet", "amount": 104, "armor_penetration": 46 }, "recoil": 1200, "casing": "40x53mm_m169_casing" - }, - { - "id": "40x53mm_flechette_m169", - "copy-from": "40x53mm_grenade", - "type": "AMMO", - "name": { "str": "40x53mm flechette" }, - "description": "An improvised 40x53mm flechette load containing 100 steel darts.", - "weight": "340 g", - "range": 10, - "damage": { "damage_type": "bullet", "amount": 85, "armor_penetration": 6 }, - "recoil": 1200, - "casing": "40x53mm_m169_casing", - "extend": { "effects": [ "SHOT" ] } } ] diff --git a/data/json/items/ammo/5x50.json b/data/json/items/ammo/5x50.json index efd00754091..49ba3eb858e 100644 --- a/data/json/items/ammo/5x50.json +++ b/data/json/items/ammo/5x50.json @@ -15,7 +15,8 @@ "ammo_type": "5x50", "casing": "5x50_hull", "range": 60, - "damage": { "damage_type": "bullet", "amount": 20, "armor_penetration": 30 }, + "//": "Balanced as AP", + "damage": { "damage_type": "bullet", "amount": 30, "armor_penetration": 26 }, "dispersion": 60, "recoil": 400, "flags": [ "IRREPLACEABLE_CONSUMABLE" ], @@ -31,7 +32,8 @@ "weight": "9 g", "price": 1688, "price_postapoc": 2400, - "relative": { "range": -10, "damage": { "damage_type": "bullet", "amount": 5, "armor_penetration": 20 }, "dispersion": 20 }, - "proportional": { "recoil": 1.1 } + "//": "Balanced as AP, with 25% higher damage and 50% higher arpen", + "relative": { "range": -10, "damage": { "damage_type": "bullet", "amount": 8, "armor_penetration": 13 } }, + "proportional": { "dispersion": 1.5, "recoil": 1.5 } } ] diff --git a/data/json/items/ammo/8x40mm.json b/data/json/items/ammo/8x40mm.json index 25d9b16a37b..8ca62a1bfb3 100644 --- a/data/json/items/ammo/8x40mm.json +++ b/data/json/items/ammo/8x40mm.json @@ -39,14 +39,6 @@ "dispersion": 1.2, "recoil": 0.5 }, - { - "id": "8mm_fmj", - "copy-from": "8mm_caseless", - "type": "AMMO", - "name": { "str": "8x40mm FMJ" }, - "description": "8x40mm caseless rounds, full metal jacket. Military grade ammunition for Rivtech firearms. Being caseless rounds, these cannot be disassembled or reloaded.", - "relative": { "damage": { "damage_type": "bullet", "amount": -5, "armor_penetration": 10 } } - }, { "id": "8mm_hvp", "copy-from": "8mm_caseless", diff --git a/data/json/items/generic/casing.json b/data/json/items/generic/casing.json index 510b4ba9c1f..f486ad3126a 100644 --- a/data/json/items/generic/casing.json +++ b/data/json/items/generic/casing.json @@ -148,7 +148,7 @@ "type": "GENERIC", "category": "spare_parts", "name": { "str": "40x46mm M212 casing" }, - "description": "A large canister from a spent 40mm cartridge.", + "description": "A large canister from a spent 40mm cartridge, used by M1006 stun rounds. Not very useful now that the world has ended; less-lethal rounds aren't very useful against undead, and it likely won't tolerate higher pressures.", "weight": "50 g", "volume": "55ml", "material": "steel", @@ -160,7 +160,7 @@ "type": "GENERIC", "category": "spare_parts", "name": { "str": "40x46mm M118 casing" }, - "description": "A large canister from a spent 40mm cartridge.", + "description": "A large canister from a spent 40mm cartridge, used by M433 HEDP rounds. It could be repurposed for makeshift buckshot and other handloads.", "weight": "50 g", "volume": "58ml", "material": "steel", @@ -172,7 +172,7 @@ "type": "GENERIC", "category": "spare_parts", "name": { "str": "40x46mm M199 casing" }, - "description": "A large canister from a spent 40mm cartridge.", + "description": "A large canister from a spent 40mm cartridge, used by M576 buckshot rounds. It could be reused to make new buckshot or other makeshift handloads.", "weight": "50 g", "volume": "59ml", "material": "steel", @@ -184,7 +184,7 @@ "type": "GENERIC", "category": "spare_parts", "name": { "str": "40x46mm M195 casing" }, - "description": "A large canister from a spent 40mm cartridge.", + "description": "A large canister from a spent 40mm cartridge, used by M651 teargas rounds. Not very useful now that the world has ended; less-lethal rounds aren't very useful against undead, and it likely won't tolerate higher pressures.", "weight": "50 g", "volume": "45ml", "material": "steel", diff --git a/data/json/items/handloaded_bullets.json b/data/json/items/handloaded_bullets.json index 1d6da22013b..937239328dd 100644 --- a/data/json/items/handloaded_bullets.json +++ b/data/json/items/handloaded_bullets.json @@ -13,7 +13,8 @@ "weight": "3 g", "bashing": 1, "ammo_type": "blunderbuss", - "damage": { "damage_type": "bullet", "amount": 60, "armor_penetration": 8 }, + "//": "Half the expected armor pernetration, additionally all blinderbuss rounds have an armor multiplier.", + "damage": { "damage_type": "bullet", "amount": 44, "armor_penetration": 12, "armor_multiplier": 1.5 }, "range": 12, "dispersion": 60, "recoil": 840, @@ -33,7 +34,7 @@ "weight": "2 g", "bashing": 1, "ammo_type": "blunderbuss", - "damage": { "damage_type": "bullet", "amount": 60 }, + "damage": { "damage_type": "bullet", "amount": 55, "armor_multiplier": 1.5 }, "range": 6, "recoil": 780, "effects": [ "COOKOFF", "SHOT", "RECYCLED" ] @@ -52,7 +53,8 @@ "weight": "3 g", "bashing": 1, "ammo_type": "blunderbuss", - "damage": { "damage_type": "bullet", "amount": 53, "armor_penetration": 12 }, + "//": "Balanced as standard FMJ to allow lower damage but more penetration over shot.", + "damage": { "damage_type": "bullet", "amount": 44, "armor_penetration": 24, "armor_multiplier": 1.5 }, "range": 10, "recoil": 840, "effects": [ "COOKOFF", "SHOT", "RECYCLED" ] diff --git a/data/json/items/migration.json b/data/json/items/migration.json index ed67da394f0..31158a8187c 100644 --- a/data/json/obsoletion/migration.json +++ b/data/json/obsoletion/migration.json @@ -1740,6 +1740,21 @@ "id": "rubber_armor_horse", "type": "MIGRATION", "replace": "rubber_armor_medium_quadruped" + }, + { + "id": "40x46mm_buckshot_m199", + "type": "MIGRATION", + "replace": "40x46mm_m576" + }, + { + "id": "40x53mm_flechette_m169", + "type": "MIGRATION", + "replace": "40x53mm_m1001" + }, + { + "id": "8mm_fmj", + "type": "MIGRATION", + "replace": "8mm_caseless" }, { "id": "chem_zinc_powder", diff --git a/data/json/obsoletion/recipes.json b/data/json/obsoletion/recipes.json index c0c56cead36..8e1335380e2 100644 --- a/data/json/obsoletion/recipes.json +++ b/data/json/obsoletion/recipes.json @@ -3147,5 +3147,15 @@ "type": "recipe", "result": "rubber_armor_horse_from_scratch", "obsolete": true + }, + { + "type": "recipe", + "result": "40x46mm_buckshot_m199", + "obsolete": true + }, + { + "type": "recipe", + "result": "40x53mm_flechette_m169", + "obsolete": true }, { "type": "recipe", diff --git a/data/json/professions.json b/data/json/professions.json index cd30799fa83..f84f94b6d33 100644 --- a/data/json/professions.json +++ b/data/json/professions.json @@ -45,8 +45,8 @@ "subtype": "collection", "id": "army_mags_rm11b", "entries": [ - { "item": "8x40_10_mag", "ammo-item": "8mm_fmj", "charges": 10 }, - { "item": "8x40_10_mag", "ammo-item": "8mm_fmj", "charges": 10 } + { "item": "8x40_10_mag", "ammo-item": "8mm_caseless", "charges": 10 }, + { "item": "8x40_10_mag", "ammo-item": "8mm_caseless", "charges": 10 } ] }, { diff --git a/data/json/recipes/ammo/shot.json b/data/json/recipes/ammo/shot.json index 80a7881ea64..27b7bb17832 100644 --- a/data/json/recipes/ammo/shot.json +++ b/data/json/recipes/ammo/shot.json @@ -149,7 +149,7 @@ ] }, { - "result": "40x53mm_flechette_m169", + "result": "40x53mm_m1001", "type": "recipe", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", @@ -197,7 +197,7 @@ ] }, { - "result": "40x46mm_buckshot_m199", + "result": "40x46mm_m576", "type": "recipe", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", diff --git a/data/mods/Generic_Guns/ammo/gg_ammo_migration.json b/data/mods/Generic_Guns/ammo/gg_ammo_migration.json index 675f5ba932d..8e61d596190 100644 --- a/data/mods/Generic_Guns/ammo/gg_ammo_migration.json +++ b/data/mods/Generic_Guns/ammo/gg_ammo_migration.json @@ -147,7 +147,6 @@ "556_incendiary", "762_m43", "8mm_caseless", - "8mm_fmj", "8mm_hvp", "8mm_inc", "reloaded_556", @@ -260,11 +259,9 @@ "id": [ "40x46mm_m576", "40x46mm_buckshot_m118", - "40x46mm_buckshot_m199", "40x46mm_flechette_m118", "40x46mm_flechette_m199", "40x53mm_m1001", - "40x53mm_flechette_m169", "40x53mm_buckshot_m169" ], "type": "MIGRATION", diff --git a/data/mods/Generic_Guns/recipes/recipe_obsolete.json b/data/mods/Generic_Guns/recipes/recipe_obsolete.json index e4e3796a108..8653252ae1d 100644 --- a/data/mods/Generic_Guns/recipes/recipe_obsolete.json +++ b/data/mods/Generic_Guns/recipes/recipe_obsolete.json @@ -366,7 +366,7 @@ }, { "type": "recipe", - "result": "40x46mm_buckshot_m199", + "result": "40x46mm_m576", "obsolete": true }, { @@ -399,11 +399,6 @@ "result": "40x53mm_slug_m169", "obsolete": true }, - { - "type": "recipe", - "result": "40x53mm_flechette_m169", - "obsolete": true - }, { "type": "recipe", "result": "shot_paper_00", diff --git a/data/mods/No_Rivtech_Guns/modinfo.json b/data/mods/No_Rivtech_Guns/modinfo.json index 716658fe996..983a1d1d2e4 100644 --- a/data/mods/No_Rivtech_Guns/modinfo.json +++ b/data/mods/No_Rivtech_Guns/modinfo.json @@ -14,7 +14,6 @@ "items": [ "8mm_caseless", "8mm_bootleg", - "8mm_fmj", "8mm_jhp", "8mm_inc", "5x50dart", diff --git a/data/mods/more_classes_scenarios/cs_classes.json b/data/mods/more_classes_scenarios/cs_classes.json index d10e81bd771..95a92381547 100644 --- a/data/mods/more_classes_scenarios/cs_classes.json +++ b/data/mods/more_classes_scenarios/cs_classes.json @@ -4,8 +4,8 @@ "subtype": "collection", "id": "army_mags_rm2000", "entries": [ - { "item": "8x40_10_mag", "ammo-item": "8mm_fmj", "charges": 10 }, - { "item": "8x40_10_mag", "ammo-item": "8mm_fmj", "charges": 10 } + { "item": "8x40_10_mag", "ammo-item": "8mm_caseless", "charges": 10 }, + { "item": "8x40_10_mag", "ammo-item": "8mm_caseless", "charges": 10 } ] }, { @@ -53,7 +53,7 @@ { "item": "kukri", "container-item": "sheath" }, { "item": "rm2000_smg", - "ammo-item": "8mm_fmj", + "ammo-item": "8mm_caseless", "charges": 25, "contents-item": [ "shoulder_strap", "suppressor", "holo_sight" ] }, -- 2.39.0