From 756cb7eed50057012d2e724a4a81e18d17447e2a Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Fri, 25 Oct 2024 21:57:24 -0500 Subject: [PATCH] Bullet Stack Fixes + Other (#3568) ## About The Pull Request - Fixes .299 Eoehoma being 5 per stack instead of 15 - Fixes 5.56x42 CLIP being 5 per stack instead of 15 - Rebalanced the tinyass .22lr bullet stacks to be 25 instead of 15, for 100 rounds per box - Changed the ammo can to be bulky and lets it hold 4 ammo boxes, fixes pre-spawned ammo cans to actually fit ammo boxes - Ammo cans can only hold ammo and explosives - Fixed a few icons and descriptions for ammo boxes - Fixed 12g beanbag to actually have beanbag inside / along with 12g rubbershot - Increased the speed of reloading until we get loading benches - .22 is out of the black market since its in cargo ## Why It's Good For The Game Fixes a bunch of stuff leftover from Bulletstacks. Rebalanced a few ammostacks to actually be usable with their guns. You will no longer have to stand in place for 3 minutes to reload a single Pounder panmag. Bug fixes good. ## Changelog :cl: balance: .22lr is now 25 per handful instead of 12 balance: Reloading speed from stacks doubled balance: Increase ammo can to bulky and lets it hold 4 normal-sized ammoboxes, can only hold ammo and explosives. balance: Adjusted price of .299 Eoehoma slightly, adds a second box to the cargo order since its 60 instead of 120 fix: Fixes a bunch of bullet stacks to have correct numbers fix: Larger handfuls (.22lr) fix: Mapped in ammo cans now hold their boxes fix: 12g beanbag now has beanbag instead of rubber + beanbag fix: Ammo box icons and descriptions del: Removed .22lr from the blackmarket. Its in cargo already. /:cl: --- code/game/objects/items/storage/ammo_can.dm | 17 +++++++++++++++++ .../cargo/blackmarket/blackmarket_items/ammo.dm | 11 ----------- .../blackmarket/blackmarket_items/weapons.dm | 4 ++-- code/modules/cargo/packs/ammo.dm | 9 +++++---- .../projectiles/ammunition/_ammo_casing.dm | 2 +- .../projectiles/ammunition/ballistic/pistol.dm | 2 +- .../projectiles/ammunition/ballistic/rifle.dm | 4 ++-- .../boxes_magazines/_box_magazine.dm | 2 +- .../prefab_stacks/premade_pistol_stacks.dm | 8 +++++--- .../prefab_stacks/premade_rifle_stacks.dm | 2 +- .../prefab_stacks/premade_shotshell_stacks.dm | 4 ++-- 11 files changed, 37 insertions(+), 28 deletions(-) diff --git a/code/game/objects/items/storage/ammo_can.dm b/code/game/objects/items/storage/ammo_can.dm index 7962621674ad4..e619aced06927 100644 --- a/code/game/objects/items/storage/ammo_can.dm +++ b/code/game/objects/items/storage/ammo_can.dm @@ -8,6 +8,23 @@ pickup_sound = 'sound/items/handling/ammobox_pickup.ogg' material_flags = NONE has_latches = FALSE + w_class = WEIGHT_CLASS_BULKY + +/obj/item/storage/toolbox/ammo/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_volume = STORAGE_VOLUME_BACKPACK + STR.max_w_class = MAX_WEIGHT_CLASS_BACKPACK + STR.set_holdable(list( + /obj/item/storage/box/ammo, + /obj/item/mine, + /obj/item/grenade, + /obj/item/ammo_casing/caseless/rocket, + /obj/item/ammo_box/magazine/ammo_stack, + /obj/item/ammo_casing, + /obj/item/mine, + /obj/item/grenade + )) /obj/item/storage/toolbox/ammo/a850r/PopulateContents() name = "ammo can (8x50mmR)" diff --git a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm index 0dad1cd32c7cb..fb7a967a913d2 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm @@ -25,17 +25,6 @@ stock_max = 10 availability_prob = 0 -/datum/blackmarket_item/ammo/himehabu_box - name = ".22 LR Ammo Box" - desc = "A 75 round ammo box of .22 LR. Trust me, you'll need every shot." - item = /obj/item/storage/box/ammo/c22lr - - price_min = 100 - price_max = 300 - stock_min = 6 - stock_max = 10 - availability_prob = 0 - /datum/blackmarket_item/ammo/a357_box name = ".357 Ammo Box" desc = "A 50 round ammo box of .357." diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm index c3f3116f324b5..a6761a39608d8 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -98,7 +98,7 @@ name = "Himehabu Pistol" desc = "Great things come in small packages. The Himehabu is perfect for all your espionage needs. Chambered in .22lr." item = /obj/item/gun/ballistic/automatic/pistol/himehabu - pair_item = list(/datum/blackmarket_item/ammo/himehabu_mag, /datum/blackmarket_item/ammo/himehabu_box) + pair_item = list(/datum/blackmarket_item/ammo/himehabu_mag) price_min = 100 price_max = 600 @@ -320,7 +320,7 @@ name = "Pounder Submachine Gun" desc = "There's a certain quality to quantity. With a massive 50 round capacity, this .22lr submachine is capable of laying down an jawdropping amount of fire." item = /obj/item/gun/ballistic/automatic/smg/pounder - pair_item = list(/datum/blackmarket_item/ammo/pounder_mag,/datum/blackmarket_item/ammo/himehabu_box) + pair_item = list(/datum/blackmarket_item/ammo/pounder_mag) price_min = 1500 price_max = 2000 diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index 4cd6814189a35..2722d80f5b113 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -426,12 +426,13 @@ /datum/supply_pack/ammo/c299 name = ".299 Eoehoma Caseless Ammo Box Crate" - desc = "Contains a 120-round box of .299 Caseless ammo from the defunct Eoehoma. Used for the E-40 Hybrid Rifle." - contains = list(/obj/item/storage/box/ammo/c299) - cost = 250 + desc = "Contains two 60-round boxes of .299 Caseless ammo from the defunct Eoehoma. Used for the E-40 Hybrid Rifle." + contains = list(/obj/item/storage/box/ammo/c299, + /obj/item/storage/box/ammo/c299) + cost = 400 /datum/supply_pack/ammo/c22lr name = ".22 LR Ammo Box Crate" - desc = "Contains a 60-round ammo box for refilling .22 LR weapons." + desc = "Contains one 100-round ammo box for refilling .22 LR weapons." contains = list(/obj/item/storage/box/ammo/c22lr) cost = 250 diff --git a/code/modules/projectiles/ammunition/_ammo_casing.dm b/code/modules/projectiles/ammunition/_ammo_casing.dm index 1c259d6229313..1562909a4f254 100644 --- a/code/modules/projectiles/ammunition/_ammo_casing.dm +++ b/code/modules/projectiles/ammunition/_ammo_casing.dm @@ -48,7 +48,7 @@ ///What this casing can be stacked into. var/obj/item/ammo_box/magazine/stack_type = /obj/item/ammo_box/magazine/ammo_stack ///Maximum stack size of ammunition - var/stack_size = 12 + var/stack_size = 15 /obj/item/ammo_casing/attackby(obj/item/attacking_item, mob/user, params) if(istype(attacking_item, /obj/item/pen)) diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index 9e1f880ffe1be..3d378a4020ebc 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -137,4 +137,4 @@ desc = "A .22 LR bullet casing." projectile_type = /obj/projectile/bullet/c22lr caliber = "22lr" - stack_size = 15 + stack_size = 25 diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 04545410300b7..4ee38a7e378e8 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -44,7 +44,7 @@ icon_state = "rifle-brass" caliber = "5.56x42mm" projectile_type = /obj/projectile/bullet/a556_42 - stack_size = 5 + stack_size = 15 // 5.45x39mm (SKM-24v) @@ -91,7 +91,7 @@ icon_state = "caseless" caliber = ".299 caseless" projectile_type = /obj/projectile/bullet/c299 - stack_size = 5 + stack_size = 15 /obj/item/ammo_casing/a65clip name = "6.5x57mm CLIP bullet casing" diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 6f7900e2d6cbc..9c0003fd4b5d3 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -126,7 +126,7 @@ if(istype(attacking_obj, /obj/item/ammo_box/magazine/ammo_stack)) var/obj/item/ammo_box/attacking_box = attacking_obj for(var/obj/item/ammo_casing/casing_to_insert in attacking_box.stored_ammo) - if(!((instant_load && attacking_box.instant_load) || (stored_ammo.len >= max_ammo) || do_after(user, 1 SECONDS, attacking_box, timed_action_flags = IGNORE_USER_LOC_CHANGE))) + if(!((instant_load && attacking_box.instant_load) || (stored_ammo.len >= max_ammo) || do_after(user, 0.5 SECONDS, attacking_box, timed_action_flags = IGNORE_USER_LOC_CHANGE))) break var/did_load = give_round(casing_to_insert, replace_spent) if(!did_load) diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm index 68ea1a7faeb51..6edc29a7b17a6 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm @@ -247,7 +247,7 @@ ammo_type = /obj/item/ammo_casing/c45/rubber /obj/item/storage/box/ammo/c45_rubber - name = "box of incendiary .45 ammo" + name = "box of rubbershot .45 ammo" desc = "A box of .45 rubbershot ammo, designed to disable targets without causing serious damage." icon_state = "45box-rubbershot" @@ -269,6 +269,7 @@ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr ammo_type = /obj/item/ammo_casing/c22lr + max_ammo = 25 /obj/item/storage/box/ammo/c22lr name = "box of .22 LR ammo" @@ -388,6 +389,7 @@ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c38 ammo_type = /obj/item/ammo_casing/c38 + max_ammo = 15 /obj/item/storage/box/ammo/c38 name = "box of .38 ammo" @@ -489,8 +491,8 @@ /obj/item/storage/box/ammo/a44roum_hp name = "box of HP .44 roumain ammo" - desc = "A box of .44 roumain rubbershot ammo, designed to disable targets without causing serious damage." - icon_state = "a44roum-rubber" + desc = "A box of .44 roumain hollowpoint ammo, designed to disable targets without causing serious damage." + icon_state = "a44roum-hp" /obj/item/storage/box/ammo/a44roum_hp/PopulateContents() ..() diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_rifle_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_rifle_stacks.dm index d22f62ec21658..b480cd4dad582 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_rifle_stacks.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_rifle_stacks.dm @@ -121,7 +121,7 @@ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c299 ammo_type = /obj/item/ammo_casing/caseless/c299 - max_ammo = 5 + max_ammo = 15 /obj/item/storage/box/ammo/c299 name = "box of .299 Eoehoma caseless ammo" diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_shotshell_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_shotshell_stacks.dm index f67800330724d..139abb6de8513 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_shotshell_stacks.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_shotshell_stacks.dm @@ -48,11 +48,11 @@ ammo_type = /obj/item/ammo_casing/shotgun/rubbershot /obj/item/storage/box/ammo/a12g_rubbershot - name = "box of 12ga beanbags" + name = "box of 12ga rubbershot" desc = "A box of 12-gauge rubbershot shells, designed for riot control." icon_state = "12gbox-rubbershot" -/obj/item/storage/box/ammo/a12g_beanbag/PopulateContents() +/obj/item/storage/box/ammo/a12g_rubbershot/PopulateContents() ..() var/static/items_inside = list( /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/rubber = 4)