Files
Bubberstation/code/game/objects/items/storage/boxes/security_boxes.dm
necromanceranne d3fffa79d2 Labels security equipment as being lethal, nonlethal, less-than-lethal or highly destructive. (#74548)
## About The Pull Request

Labels a few bits of security equipment as lethal, nonlethal,
less-than-lethal or highly destructive (in the case of ion carbines or
flamethrowers). For shotgun shell boxes, ammo boxes and weapon crafting
kits, it clarifies this in the name. For printable individual ammo, it
clarifies this in the print name.

## Why It's Good For The Game

[This
thread](https://tgstation13.org/phpBB/viewtopic.php?p=676311#p676311)
reminded me that I've seen a lot of confusion about various pieces of
security equipment and what exactly the distinction is between lethal,
nonlethal and less-lethal actually is. People actively use a lot of
less-lethal equipment while thinking that it is nonlethal. It isn't. You
absolutely can kill someone with rubber shot and beanbags, and the AI
will get up in your grill about it.

The same can be said about weapons such as the energy crossbow. I saw
one person flabbergasted that by repeatedly shooting someone with it,
they killed their prisoner with toxin damage. While the weapon is mostly
stamina damage, it still deals a hefty amount of toxin damage, so
shouldn't be used necessarily in place of a disabler or baton. Equally,
I've seen some people using temperature guns recklessly and finding out
far too late that they've murdered a lizardperson by shooting them once,
or wondering why the AI is angry at them for using it when it doesn't
_seemingly_ cause damage immediately. This has resulted in
administrative issues.

We can't assume our players know these distinctions before utilizing
this equipment, so having some helpful gear titles will hopefully inform
them before they walk into these problems.

## Changelog
🆑
qol: Clarifies in various names and descriptions whether security
equipment is lethal, nonlethal, less-than-lethal or destructive.
/🆑
2023-04-11 07:45:25 -07:00

299 lines
9.4 KiB
Plaintext

// This file contains everything used by security, or in other combat applications.
/obj/item/storage/box/flashbangs
name = "box of flashbangs (WARNING)"
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use.</B>"
icon_state = "secbox"
illustration = "flashbang"
/obj/item/storage/box/flashbangs/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/grenade/flashbang(src)
/obj/item/storage/box/stingbangs
name = "box of stingbangs (WARNING)"
desc = "<B>WARNING: These devices are extremely dangerous and can cause severe injuries or death in repeated use.</B>"
icon_state = "secbox"
illustration = "flashbang"
/obj/item/storage/box/stingbangs/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/grenade/stingbang(src)
/obj/item/storage/box/flashes
name = "box of flashbulbs"
desc = "<B>WARNING: Flashes can cause serious eye damage, protective eyewear is required.</B>"
icon_state = "secbox"
illustration = "flash"
/obj/item/storage/box/flashes/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/assembly/flash/handheld(src)
/obj/item/storage/box/wall_flash
name = "wall-mounted flash kit"
desc = "This box contains everything necessary to build a wall-mounted flash. <B>WARNING: Flashes can cause serious eye damage, protective eyewear is required.</B>"
icon_state = "secbox"
illustration = "flash"
/obj/item/storage/box/wall_flash/PopulateContents()
var/id = rand(1000, 9999)
// FIXME what if this conflicts with an existing one?
new /obj/item/wallframe/button(src)
new /obj/item/electronics/airlock(src)
var/obj/item/assembly/control/flasher/remote = new(src)
remote.id = id
var/obj/item/wallframe/flasher/frame = new(src)
frame.id = id
new /obj/item/assembly/flash/handheld(src)
new /obj/item/screwdriver(src)
/obj/item/storage/box/teargas
name = "box of tear gas grenades (WARNING)"
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness and skin irritation.</B>"
icon_state = "secbox"
illustration = "grenade"
/obj/item/storage/box/teargas/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/grenade/chem_grenade/teargas(src)
/obj/item/storage/box/emps
name = "box of emp grenades"
desc = "A box with 5 emp grenades."
illustration = "emp"
/obj/item/storage/box/emps/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/grenade/empgrenade(src)
/obj/item/storage/box/trackimp
name = "boxed tracking implant kit"
desc = "Box full of scum-bag tracking utensils."
icon_state = "secbox"
illustration = "implant"
/obj/item/storage/box/trackimp/PopulateContents()
var/static/items_inside = list(
/obj/item/implantcase/tracking = 4,
/obj/item/implanter = 1,
/obj/item/implantpad = 1,
/obj/item/locator = 1,
)
generate_items_inside(items_inside,src)
/obj/item/storage/box/minertracker
name = "boxed tracking implant kit"
desc = "For finding those who have died on the accursed lavaworld."
illustration = "implant"
/obj/item/storage/box/minertracker/PopulateContents()
var/static/items_inside = list(
/obj/item/implantcase/tracking = 3,
/obj/item/implanter = 1,
/obj/item/implantpad = 1,
/obj/item/locator = 1,
)
generate_items_inside(items_inside,src)
/obj/item/storage/box/chemimp
name = "boxed chemical implant kit"
desc = "Box of stuff used to implant chemicals."
illustration = "implant"
/obj/item/storage/box/chemimp/PopulateContents()
var/static/items_inside = list(
/obj/item/implantcase/chem = 5,
/obj/item/implanter = 1,
/obj/item/implantpad = 1,
)
generate_items_inside(items_inside,src)
/obj/item/storage/box/exileimp
name = "boxed exile implant kit"
desc = "Box of exile implants. It has a picture of a clown being booted through the Gateway."
illustration = "implant"
/obj/item/storage/box/exileimp/PopulateContents()
var/static/items_inside = list(
/obj/item/implantcase/exile = 5,
/obj/item/implanter = 1,
)
generate_items_inside(items_inside,src)
/obj/item/storage/box/prisoner
name = "box of prisoner IDs"
desc = "Take away their last shred of dignity, their name."
icon_state = "secbox"
illustration = "id"
/obj/item/storage/box/prisoner/PopulateContents()
..()
new /obj/item/card/id/advanced/prisoner/one(src)
new /obj/item/card/id/advanced/prisoner/two(src)
new /obj/item/card/id/advanced/prisoner/three(src)
new /obj/item/card/id/advanced/prisoner/four(src)
new /obj/item/card/id/advanced/prisoner/five(src)
new /obj/item/card/id/advanced/prisoner/six(src)
new /obj/item/card/id/advanced/prisoner/seven(src)
/obj/item/storage/box/seccarts
name = "box of PDA security cartridges"
desc = "A box full of PDA cartridges used by Security."
icon_state = "secbox"
illustration = "pda"
/obj/item/storage/box/seccarts/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/computer_disk/security(src)
/obj/item/storage/box/firingpins
name = "box of standard firing pins"
desc = "A box full of standard firing pins, to allow newly-developed firearms to operate."
icon_state = "secbox"
illustration = "firingpin"
/obj/item/storage/box/firingpins/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/firing_pin(src)
/obj/item/storage/box/firingpins/paywall
name = "box of paywall firing pins"
desc = "A box full of paywall firing pins, to allow newly-developed firearms to operate behind a custom-set paywall."
illustration = "firingpin"
/obj/item/storage/box/firingpins/paywall/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/firing_pin/paywall(src)
/obj/item/storage/box/lasertagpins
name = "box of laser tag firing pins"
desc = "A box full of laser tag firing pins, to allow newly-developed firearms to require wearing brightly coloured plastic armor before being able to be used."
illustration = "firingpin"
/obj/item/storage/box/lasertagpins/PopulateContents()
for(var/i in 1 to 3)
new /obj/item/firing_pin/tag/red(src)
new /obj/item/firing_pin/tag/blue(src)
/obj/item/storage/box/handcuffs
name = "box of spare handcuffs"
desc = "A box full of handcuffs."
icon_state = "secbox"
illustration = "handcuff"
/obj/item/storage/box/handcuffs/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/restraints/handcuffs(src)
/obj/item/storage/box/zipties
name = "box of spare zipties"
desc = "A box full of zipties."
icon_state = "secbox"
illustration = "handcuff"
/obj/item/storage/box/zipties/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/restraints/handcuffs/cable/zipties(src)
/obj/item/storage/box/alienhandcuffs
name = "box of spare handcuffs"
desc = "A box full of handcuffs."
icon_state = "alienbox"
illustration = "handcuff"
/obj/item/storage/box/alienhandcuffs/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/restraints/handcuffs/alien(src)
/obj/item/storage/box/rubbershot
name = "box of shotgun shells (Less Lethal - Rubber Shot)"
desc = "A box full of rubber shot shotgun shells, designed for shotguns."
icon_state = "rubbershot_box"
illustration = null
/obj/item/storage/box/rubbershot/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/ammo_casing/shotgun/rubbershot(src)
/obj/item/storage/box/lethalshot
name = "box of shotgun shells (Lethal)"
desc = "A box full of lethal shotgun shells, designed for shotguns."
icon_state = "lethalshot_box"
illustration = null
/obj/item/storage/box/lethalshot/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/ammo_casing/shotgun/buckshot(src)
/obj/item/storage/box/beanbag
name = "box of shotgun shells (Less Lethal - Beanbag)"
desc = "A box full of beanbag shotgun shells, designed for shotguns."
icon_state = "beanbagshot_box"
illustration = null
/obj/item/storage/box/beanbag/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/ammo_casing/shotgun/beanbag(src)
/obj/item/storage/box/emptysandbags
name = "box of empty sandbags"
illustration = "sandbag"
/obj/item/storage/box/emptysandbags/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/emptysandbag(src)
/obj/item/storage/box/holy_grenades
name = "box of holy hand grenades"
desc = "Contains several grenades used to rapidly purge heresy."
illustration = "grenade"
/obj/item/storage/box/holy_grenades/PopulateContents()
for(var/i in 1 to 7)
new/obj/item/grenade/chem_grenade/holy(src)
/obj/item/storage/box/fireworks
name = "box of fireworks"
desc = "Contains an assortment of fireworks."
illustration = "sparkler"
/obj/item/storage/box/fireworks/PopulateContents()
for(var/i in 1 to 3)
new/obj/item/sparkler(src)
new/obj/item/grenade/firecracker(src)
new /obj/item/toy/snappop(src)
/obj/item/storage/box/fireworks/dangerous
desc = "This box has a small label on it stating that it's from the Gorlex Marauders. Contains an assortment of \"fireworks\"."
/obj/item/storage/box/fireworks/dangerous/PopulateContents()
for(var/i in 1 to 3)
new/obj/item/sparkler(src)
new/obj/item/grenade/firecracker(src)
if(prob(20))
new /obj/item/grenade/frag(src)
else
new /obj/item/toy/snappop(src)
/obj/item/storage/box/firecrackers
name = "box of firecrackers"
desc = "A box filled with illegal firecrackers. You wonder who still makes these."
icon_state = "syndiebox"
illustration = "firecracker"
/obj/item/storage/box/firecrackers/PopulateContents()
for(var/i in 1 to 7)
new/obj/item/grenade/firecracker(src)
/obj/item/storage/box/sparklers
name = "box of sparklers"
desc = "A box of Nanotrasen brand sparklers, burns hot even in the cold of space-winter."
illustration = "sparkler"
/obj/item/storage/box/sparklers/PopulateContents()
for(var/i in 1 to 7)
new/obj/item/sparkler(src)