From f0c83f98037d900fefbcbf6d375591cbdf9e5d48 Mon Sep 17 00:00:00 2001
From: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Date: Fri, 4 Jul 2025 15:13:08 -0400
Subject: [PATCH] Adds Stinger Grenades (#29178)
* ballin
* sprite change
* curse of balance
* Update code/game/objects/items/weapons/storage/boxes.dm
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
---------
Signed-off-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
---
_maps/map_files/stations/boxstation.dmm | 4 ++++
_maps/map_files/stations/cerestation.dmm | 1 +
_maps/map_files/stations/deltastation.dmm | 1 +
_maps/map_files/stations/emeraldstation.dmm | 1 +
_maps/map_files/stations/metastation.dmm | 1 +
.../objects/items/weapons/grenades/frag.dm | 16 ++++++++++++++++
.../objects/items/weapons/storage/belt.dm | 1 +
.../objects/items/weapons/storage/boxes.dm | 9 +++++++++
.../modules/projectiles/projectile/bullets.dm | 7 +++++++
.../supply/supply_packs/pack_security.dm | 7 +++++++
icons/obj/grenade.dmi | Bin 5719 -> 6310 bytes
11 files changed, 48 insertions(+)
diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm
index ebc87d4687b..cdf79f3c730 100644
--- a/_maps/map_files/stations/boxstation.dmm
+++ b/_maps/map_files/stations/boxstation.dmm
@@ -1691,6 +1691,10 @@
pixel_x = 3;
pixel_y = -3
},
+/obj/item/storage/box/stingers{
+ pixel_x = 3;
+ pixel_y = 3
+ },
/obj/structure/window/reinforced{
dir = 8
},
diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm
index 92ca3f5ec0a..3100f2fc7fb 100644
--- a/_maps/map_files/stations/cerestation.dmm
+++ b/_maps/map_files/stations/cerestation.dmm
@@ -92015,6 +92015,7 @@
pixel_y = -2
},
/obj/item/storage/box/handcuffs,
+/obj/item/storage/box/stingers,
/obj/item/storage/box/teargas{
pixel_x = -3;
pixel_y = -3
diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm
index 12cc0a8a1fc..d6510ce5c30 100644
--- a/_maps/map_files/stations/deltastation.dmm
+++ b/_maps/map_files/stations/deltastation.dmm
@@ -15929,6 +15929,7 @@
pixel_y = -3
},
/obj/item/storage/box/handcuffs,
+/obj/item/storage/box/stingers,
/obj/item/storage/box/flashbangs{
pixel_x = -2;
pixel_y = -2
diff --git a/_maps/map_files/stations/emeraldstation.dmm b/_maps/map_files/stations/emeraldstation.dmm
index cccfbe11e01..2f940dbf33a 100644
--- a/_maps/map_files/stations/emeraldstation.dmm
+++ b/_maps/map_files/stations/emeraldstation.dmm
@@ -110878,6 +110878,7 @@
/obj/item/storage/box/flashbangs{
pixel_x = -3
},
+/obj/item/storage/box/stingers,
/obj/item/storage/box/teargas{
pixel_x = -1;
pixel_y = 2
diff --git a/_maps/map_files/stations/metastation.dmm b/_maps/map_files/stations/metastation.dmm
index b6c46433d6f..d54fe0bf7d3 100644
--- a/_maps/map_files/stations/metastation.dmm
+++ b/_maps/map_files/stations/metastation.dmm
@@ -65653,6 +65653,7 @@
pixel_x = 1;
pixel_y = 4
},
+/obj/item/storage/box/stingers,
/obj/item/storage/box/teargas{
pixel_x = -1;
pixel_y = 2
diff --git a/code/game/objects/items/weapons/grenades/frag.dm b/code/game/objects/items/weapons/grenades/frag.dm
index 676477a6900..52d95636b5f 100644
--- a/code/game/objects/items/weapons/grenades/frag.dm
+++ b/code/game/objects/items/weapons/grenades/frag.dm
@@ -17,6 +17,22 @@
create_shrapnel(loc, shrapnel_contained, shrapnel_type = embedded_type)
qdel(src)
+/obj/item/grenade/frag/stinger
+ name = "stingball grenade"
+ desc = "A specialized less-lethal hand grenade used for police action. Launches hard rubber balls in all directions upon detonation."
+ icon_state = "stinger"
+ item_state = "grenade"
+ det_time = 5 SECONDS
+ modifiable_timer = FALSE
+ shrapnel_contained = 50
+ embedded_type = /obj/item/projectile/bullet/pellet/rubber/stinger
+
+/obj/item/grenade/frag/prime()
+ update_mob()
+ explosion(loc, 0, 0, 0, 0, DEFAULT_SHRAPNEL_RANGE + 2, cause = name, breach = FALSE)
+ create_shrapnel(loc, shrapnel_contained, shrapnel_type = embedded_type)
+ qdel(src)
+
/**
* Shrapnel that flies through the air and hits you
*/
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 6098f358144..a0efde6cdbe 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -311,6 +311,7 @@
/obj/item/grenade/barrier,
/obj/item/grenade/flashbang,
/obj/item/grenade/chem_grenade/teargas,
+ /obj/item/grenade/frag/stinger,
/obj/item/reagent_containers/spray/pepper,
/obj/item/restraints/handcuffs,
/obj/item/flash,
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 9c3c83a6a66..c77bafb2c3e 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -569,6 +569,15 @@
for(var/I in 1 to 7)
new /obj/item/grenade/flashbang(src)
+/obj/item/storage/box/stingers
+ name = "box of stinger grenades (WARNING)"
+ desc = "WARNING: These devices are dangerous and can cause significant physical harm with repeated use."
+ icon_state = "flashbang_box"
+
+/obj/item/storage/box/stingers/populate_contents()
+ for(var/I in 1 to 7)
+ new /obj/item/grenade/frag/stinger(src)
+
/obj/item/storage/box/smoke_grenades
name = "smoke grenades"
desc = "A box with 7 smoke grenades."
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index 6fb3ddd2bb6..3c49efc0c1b 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -99,6 +99,13 @@
if(initial(range) - range <= 5 && H.getStaminaLoss() >= 60)
H.KnockDown(8 SECONDS)
+/obj/item/projectile/bullet/pellet/rubber/stinger
+ name = "stingball"
+ damage = 1
+ stamina = 12.5
+ icon_state = "bullet-r"
+ armour_penetration_flat = -10
+
/obj/item/projectile/bullet/pellet/assassination
damage = 12
tile_dropoff = 1 // slightly less damage and greater damage falloff compared to normal buckshot
diff --git a/code/modules/supply/supply_packs/pack_security.dm b/code/modules/supply/supply_packs/pack_security.dm
index 36ac74377fb..a4e19f7ae2a 100644
--- a/code/modules/supply/supply_packs/pack_security.dm
+++ b/code/modules/supply/supply_packs/pack_security.dm
@@ -226,6 +226,13 @@
containertype = /obj/structure/closet/crate/secure/plasma
containername = "energy shotgun crate"
+/datum/supply_packs/security/armory/stingers
+ name = "Stinger Grenade Crate"
+ contains = list(/obj/item/storage/box/stingers,
+ /obj/item/storage/box/stingers)
+ cost = 300
+ containername = "stingball grenade crate"
+
/// costs 3/5ths of the normal e-guns for 3/4ths the total ammo, making it cheaper to arm more people, but less convient for any one person
/datum/supply_packs/security/armory/epistol
name = "Energy Pistol Crate"
diff --git a/icons/obj/grenade.dmi b/icons/obj/grenade.dmi
index dae1a66e726d1484646ed29c5d580de4e22de3e6..51ea2b94d446b6f3045c4dbdb3ca294765008e7f 100644
GIT binary patch
delta 5956
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
Io4}O+11#vUV*mgE
delta 5382
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