Files
nevimer 00ccf0c6b5 Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026
# Conflicts:
#	.github/CODEOWNERS
#	.github/workflows/compile_changelogs.yml
#	.github/workflows/stale.yml
#	SQL/database_changelog.md
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/__DEFINES/atom_hud.dm
#	code/__DEFINES/inventory.dm
#	code/__DEFINES/mobs.dm
#	code/__DEFINES/species_clothing_paths.dm
#	code/__DEFINES/subsystems.dm
#	code/__DEFINES/surgery.dm
#	code/__HELPERS/global_lists.dm
#	code/_globalvars/lists/maintenance_loot.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/minor_mapping.dm
#	code/controllers/subsystem/processing/quirks.dm
#	code/controllers/subsystem/shuttle.dm
#	code/datums/components/palette.dm
#	code/datums/components/surgery_initiator.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/hud.dm
#	code/datums/mood.dm
#	code/datums/mutations/chameleon.dm
#	code/datums/quirks/negative_quirks/nyctophobia.dm
#	code/datums/status_effects/debuffs/debuffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/slime/slime_leech.dm
#	code/datums/weather/weather.dm
#	code/game/data_huds.dm
#	code/game/objects/items.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/frog_statue.dm
#	code/game/objects/items/rcd/RLD.dm
#	code/game/objects/items/robot/items/hypo.dm
#	code/game/objects/items/stacks/medical.dm
#	code/game/objects/items/stacks/wrap.dm
#	code/game/objects/items/storage/garment.dm
#	code/game/objects/items/tools/medical/defib.dm
#	code/game/objects/items/weaponry.dm
#	code/game/objects/items/weaponry/melee/misc.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/game/objects/structures/curtains.dm
#	code/game/objects/structures/dresser.dm
#	code/game/objects/structures/girders.dm
#	code/game/objects/structures/maintenance.dm
#	code/game/objects/structures/mirror.dm
#	code/modules/admin/greyscale_modify_menu.dm
#	code/modules/admin/verbs/light_debug.dm
#	code/modules/antagonists/ashwalker/ashwalker.dm
#	code/modules/antagonists/heretic/knowledge/starting_lore.dm
#	code/modules/antagonists/ninja/ninjaDrainAct.dm
#	code/modules/art/paintings.dm
#	code/modules/client/preferences.dm
#	code/modules/client/verbs/ooc.dm
#	code/modules/clothing/head/wig.dm
#	code/modules/events/disease_outbreak.dm
#	code/modules/holodeck/holo_effect.dm
#	code/modules/jobs/job_types/head_of_security.dm
#	code/modules/jobs/job_types/security_officer.dm
#	code/modules/library/skill_learning/generic_skillchips/point.dm
#	code/modules/mining/lavaland/ash_flora.dm
#	code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/basic/guardian/guardian.dm
#	code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm
#	code/modules/mob/living/carbon/carbon.dm
#	code/modules/mob/living/carbon/human/human.dm
#	code/modules/mob/living/carbon/human/human_defines.dm
#	code/modules/mob/living/carbon/life.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob/living/living_defines.dm
#	code/modules/mob/mob.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mod/mod_control.dm
#	code/modules/mod/modules/modules_general.dm
#	code/modules/modular_computers/computers/item/computer_ui.dm
#	code/modules/paperwork/paper.dm
#	code/modules/paperwork/paperbin.dm
#	code/modules/power/lighting/light.dm
#	code/modules/projectiles/guns/energy/kinetic_accelerator.dm
#	code/modules/projectiles/projectile.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/food_reagents.dm
#	code/modules/reagents/chemistry/reagents/other_reagents.dm
#	code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
#	code/modules/research/xenobiology/crossbreeding/_clothing.dm
#	code/modules/research/xenobiology/crossbreeding/prismatic.dm
#	code/modules/surgery/advanced/brainwashing.dm
#	code/modules/surgery/advanced/lobotomy.dm
#	code/modules/surgery/amputation.dm
#	code/modules/surgery/blood_filter.dm
#	code/modules/surgery/bodyparts/_bodyparts.dm
#	code/modules/surgery/brain_surgery.dm
#	code/modules/surgery/cavity_implant.dm
#	code/modules/surgery/coronary_bypass.dm
#	code/modules/surgery/gastrectomy.dm
#	code/modules/surgery/healing.dm
#	code/modules/surgery/limb_augmentation.dm
#	code/modules/surgery/organ_manipulation.dm
#	code/modules/surgery/revival.dm
#	code/modules/surgery/sleeper_protocol.dm
#	code/modules/surgery/surgery_helpers.dm
#	code/modules/surgery/surgery_step.dm
#	code/modules/unit_tests/_unit_tests.dm
#	code/modules/unit_tests/designs.dm
#	code/modules/unit_tests/icon_state_worn.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png
#	icons/map_icons/clothing/head/_head.dmi
#	icons/map_icons/clothing/shoes.dmi
#	icons/map_icons/items/_item.dmi
#	icons/mob/huds/hud.dmi
#	icons/mob/inhands/64x64_lefthand.dmi
#	icons/mob/inhands/64x64_righthand.dmi
#	icons/obj/machines/computer.dmi
#	tgui/packages/tgui/interfaces/OperatingComputer.jsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/types.ts
#	tgui/packages/tgui/interfaces/SurgeryInitiator.tsx
#	tools/icon_cutter/check.py
2026-02-12 23:50:09 -05:00

367 lines
13 KiB
Plaintext

/obj/structure/closet/secure_closet/captains
name = "captain's locker"
icon_state = "cap"
req_access = list(ACCESS_CAPTAIN)
/obj/structure/closet/secure_closet/captains/PopulateContents()
..()
new /obj/item/clothing/neck/petcollar(src)
new /obj/item/pet_carrier(src)
new /obj/item/storage/bag/garment/captain(src)
new /obj/item/disk/computer/command/captain(src)
new /obj/item/radio/headset/heads/captain/alt(src)
new /obj/item/radio/headset/heads/captain(src)
new /obj/item/door_remote/captain(src)
new /obj/item/storage/photo_album/captain(src)
new /obj/item/megaphone/command(src)
new /obj/item/card/id/departmental_budget(src) //SKYRAT EDIT ADDITION
/obj/structure/closet/secure_closet/captains/populate_contents_immediate()
new /obj/item/gun/energy/e_gun(src)
new /obj/item/storage/belt/sheath/sabre(src)
/obj/structure/closet/secure_closet/hop
name = "head of personnel's locker"
icon_state = "hop"
req_access = list(ACCESS_HOP)
/obj/structure/closet/secure_closet/hop/PopulateContents()
..()
new /obj/item/dog_bone(src)
new /obj/item/storage/bag/garment/hop(src)
new /obj/item/storage/lockbox/medal/service(src)
new /obj/item/disk/computer/command/hop(src)
new /obj/item/radio/headset/heads/hop(src)
new /obj/item/storage/box/ids(src)
new /obj/item/storage/box/silver_ids(src)
new /obj/item/megaphone/command(src)
new /obj/item/assembly/flash/handheld(src)
new /obj/item/clothing/neck/petcollar(src)
new /obj/item/pet_carrier(src)
new /obj/item/door_remote/head_of_personnel(src)
new /obj/item/circuitboard/machine/techfab/department/service(src)
new /obj/item/storage/photo_album/hop(src)
new /obj/item/storage/lockbox/medal/hop(src)
new /obj/item/storage/box/stamps(src)
new /obj/item/card/id/departmental_budget/srv(src) //SKYRAT EDIT ADDITION
/obj/structure/closet/secure_closet/hop/populate_contents_immediate()
new /obj/item/gun/energy/e_gun(src)
/obj/structure/closet/secure_closet/hos
name = "head of security's locker"
icon_state = "hos"
req_access = list(ACCESS_HOS)
/obj/structure/closet/secure_closet/hos/PopulateContents()
..()
new /obj/item/disk/computer/command/hos(src)
new /obj/item/radio/headset/heads/hos(src)
new /obj/item/radio/headset/heads/hos/alt(src)
new /obj/item/storage/bag/garment/hos(src)
new /obj/item/storage/lockbox/medal/sec(src)
new /obj/item/megaphone/sec(src)
new /obj/item/holosign_creator/security(src)
new /obj/item/storage/lockbox/loyalty(src)
new /obj/item/storage/box/flashbangs(src)
new /obj/item/shield/riot/tele(src)
new /obj/item/storage/belt/security/full(src)
new /obj/item/circuitboard/machine/techfab/department/security(src)
new /obj/item/storage/photo_album/hos(src)
new /obj/item/card/id/departmental_budget/sec(src) //SKYRAT EDIT ADDITION
/obj/structure/closet/secure_closet/hos/populate_contents_immediate()
. = ..()
// Traitor steal objectives
new /obj/item/gun/energy/e_gun/hos(src)
new /obj/item/pinpointer/nuke(src)
/obj/structure/closet/secure_closet/warden
name = "warden's locker"
icon_state = "warden"
req_access = list(ACCESS_ARMORY)
/obj/structure/closet/secure_closet/warden/PopulateContents()
..()
new /obj/item/dog_bone(src)
new /obj/item/radio/headset/headset_sec(src)
new /obj/item/holosign_creator/security(src)
new /obj/item/storage/bag/garment/warden(src)
new /obj/item/storage/box/zipties(src)
new /obj/item/storage/box/flashbangs(src)
new /obj/item/storage/belt/security/full(src)
new /obj/item/flashlight/seclite(src)
new /obj/item/door_remote/head_of_security(src)
new /obj/item/storage/belt/bandolier(src)
/obj/structure/closet/secure_closet/warden/populate_contents_immediate()
. = ..()
// Traitor steal objective
new /obj/item/gun/ballistic/shotgun/automatic/combat/compact(src)
/obj/structure/closet/secure_closet/security
name = "security officer's locker"
icon_state = "sec"
req_access = list(ACCESS_BRIG)
/obj/structure/closet/secure_closet/security/PopulateContents()
..()
new /obj/item/clothing/suit/armor/vest/alt/sec(src)
new /obj/item/clothing/head/helmet/sec(src)
new /obj/item/radio/headset/headset_sec(src)
new /obj/item/radio/headset/headset_sec/alt(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/flashlight/seclite(src)
new /obj/item/clothing/gloves/tackler/security(src) // SKYRAT EDIT CHANGE - Gives Them The Blue Ones - ORIGINAL: new /obj/item/clothing/gloves/tackler(src)
/obj/structure/closet/secure_closet/security/sec
/obj/structure/closet/secure_closet/security/sec/PopulateContents()
..()
new /obj/item/storage/belt/security/full(src)
// SKYRAT EDIT CHANGE -- GOOFSEC DEP GUARDS
/obj/structure/closet/secure_closet/security/cargo
name = "\proper customs agent's locker"
req_access = list(ACCESS_BRIG_ENTRANCE, ACCESS_CARGO)
icon_state = "qm"
icon = 'icons/obj/storage/closet.dmi'
/obj/structure/closet/secure_closet/security/cargo/PopulateContents()
new /obj/item/storage/bag/garment/customs_agent(src)
new /obj/item/restraints/handcuffs/cable/orange(src)
new /obj/item/assembly/flash/handheld(src)
/obj/structure/closet/secure_closet/security/engine
name = "\proper engineering guard's locker"
req_access = list(ACCESS_BRIG_ENTRANCE, ACCESS_ENGINEERING)
icon_state = "eng_secure"
icon = 'icons/obj/storage/closet.dmi'
/obj/structure/closet/secure_closet/security/engine/PopulateContents()
new /obj/item/restraints/handcuffs/cable/yellow(src)
new /obj/item/storage/bag/garment/engineering_guard(src)
new /obj/item/assembly/flash/handheld(src)
/obj/structure/closet/secure_closet/security/science
name = "\proper science guard's locker"
req_access = list(ACCESS_BRIG_ENTRANCE, ACCESS_RESEARCH)
icon_state = "science"
icon = 'icons/obj/storage/closet.dmi'
/obj/structure/closet/secure_closet/security/science/PopulateContents()
new /obj/item/restraints/handcuffs/cable/pink(src)
new /obj/item/storage/bag/garment/science_guard(src)
new /obj/item/assembly/flash/handheld(src)
/obj/structure/closet/secure_closet/security/med
name = "\proper orderly's locker"
req_access = list(ACCESS_BRIG_ENTRANCE, ACCESS_MEDICAL)
icon_state = "med_secure"
icon = 'icons/obj/storage/closet.dmi'
/obj/structure/closet/secure_closet/security/med/PopulateContents()
new /obj/item/restraints/handcuffs/cable/blue(src)
new /obj/item/storage/bag/garment/orderly(src)
new /obj/item/assembly/flash/handheld(src)
// SKYRAT EDIT CHANGE END -- GOOFSEC DEP GUARDS
/obj/structure/closet/secure_closet/detective
name = "\improper detective's cabinet"
icon_state = "cabinet"
resistance_flags = FLAMMABLE
max_integrity = 70
door_anim_time = 0 // no animation
open_sound = 'sound/machines/closet/wooden_closet_open.ogg'
close_sound = 'sound/machines/closet/wooden_closet_close.ogg'
req_access = list(ACCESS_DETECTIVE)
/obj/structure/closet/secure_closet/detective/PopulateContents()
..()
new /obj/item/storage/box/evidence(src)
new /obj/item/radio/headset/headset_sec(src)
new /obj/item/detective_scanner(src)
new /obj/item/flashlight/seclite(src)
new /obj/item/holosign_creator/security(src)
new /obj/item/reagent_containers/spray/pepper(src)
new /obj/item/clothing/suit/armor/vest/det_suit(src)
new /obj/item/toy/crayon/white(src) //SKYRAT EDIT CHANGE - ORIGINAL: /obj/item/storage/belt/holster/detective/full(src)
new /obj/item/pinpointer/crew(src)
new /obj/item/binoculars(src)
new /obj/item/storage/box/rxglasses/spyglasskit(src)
new /obj/item/clothing/head/fedora/inspector_hat(src)
/obj/structure/closet/secure_closet/injection
name = "lethal injections locker"
req_access = list(ACCESS_ARMORY)
/obj/structure/closet/secure_closet/injection/PopulateContents()
..()
for(var/i in 1 to 5)
new /obj/item/reagent_containers/syringe/lethal/execution(src)
/obj/structure/closet/secure_closet/brig
name = "brig locker"
anchored = TRUE
req_one_access = list(ACCESS_BRIG)
var/id = null
/obj/structure/closet/secure_closet/brig/genpop
name = "genpop storage locker"
desc = "Used for storing the belongings of genpop's tourists visiting the locals."
access_choices = FALSE
paint_jobs = null
/obj/structure/closet/secure_closet/brig/genpop/examine(mob/user)
. = ..()
. += span_notice("<b>Right-click</b> with a Security-level ID to reset [src]'s registered ID.")
/obj/structure/closet/secure_closet/brig/genpop/attackby(obj/item/card/id/advanced/prisoner/user_id, mob/user, list/modifiers, list/attack_modifiers)
if(!secure || !istype(user_id))
return ..()
if(isnull(id_card))
say("Prisoner ID linked to locker.")
id_card = WEAKREF(user_id)
name = "genpop storage locker - [user_id.registered_name]"
/obj/structure/closet/secure_closet/brig/genpop/proc/clear_access()
say("Authorized ID detected. Unlocking locker and resetting ID.")
locked = FALSE
id_card = null
name = initial(name)
update_appearance()
/obj/structure/closet/secure_closet/brig/genpop/attackby_secondary(obj/item/card/id/advanced/used_id, mob/user, list/modifiers, list/attack_modifiers)
if(!secure || !istype(used_id))
return ..()
var/list/id_access = used_id.GetAccess()
if(!isnull(id_card) && (ACCESS_BRIG in id_access))
clear_access()
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
/obj/structure/closet/secure_closet/evidence
anchored = TRUE
name = "secure evidence closet"
req_one_access = list(ACCESS_ARMORY, ACCESS_DETECTIVE)
/obj/structure/closet/secure_closet/brig/PopulateContents()
..()
new /obj/item/clothing/under/rank/prisoner( src )
new /obj/item/clothing/under/rank/prisoner/skirt( src )
new /obj/item/clothing/shoes/sneakers/orange( src )
/obj/structure/closet/secure_closet/courtroom
name = "courtroom locker"
req_access = list(ACCESS_COURT)
/obj/structure/closet/secure_closet/courtroom/PopulateContents()
..()
new /obj/item/clothing/shoes/laceup(src)
for(var/i in 1 to 3)
new /obj/item/paper/fluff/jobs/security/court_judgement (src)
new /obj/item/pen (src)
new /obj/item/clothing/suit/costume/judgerobe (src)
new /obj/item/clothing/head/costume/powdered_wig (src)
new /obj/item/storage/briefcase(src)
new /obj/item/clothing/under/suit/black_really(src)
new /obj/item/clothing/neck/tie/red(src)
/obj/structure/closet/secure_closet/contraband/armory
anchored = TRUE
name = "contraband locker"
req_access = list(ACCESS_ARMORY)
/obj/structure/closet/secure_closet/contraband/heads
name = "contraband locker"
req_access = list(ACCESS_COMMAND)
anchored = TRUE
/obj/structure/closet/secure_closet/armory1
name = "armory armor locker"
icon_state = "armory"
req_access = list(ACCESS_ARMORY)
/obj/structure/closet/secure_closet/armory1/PopulateContents()
..()
for(var/i in 1 to 3)
new /obj/item/clothing/suit/armor/riot(src)
for(var/i in 1 to 3)
new /obj/item/clothing/head/helmet/toggleable/riot(src)
for(var/i in 1 to 3)
new /obj/item/shield/riot(src)
/obj/structure/closet/secure_closet/armory1/populate_contents_immediate()
. = ..()
// Traitor steal objective
new /obj/item/clothing/suit/hooded/ablative(src)
/obj/structure/closet/secure_closet/armory2
name = "armory ballistics locker"
icon_state = "tac"
icon_door = "armory_shotgun"
req_access = list(ACCESS_ARMORY)
/obj/structure/closet/secure_closet/armory2/PopulateContents()
..()
new /obj/item/storage/box/firingpins(src)
for(var/i in 1 to 3)
new /obj/item/storage/box/rubbershot(src)
/obj/structure/closet/secure_closet/armory2/populate_contents_immediate()
for(var/i in 1 to 3)
new /obj/item/gun/ballistic/shotgun/riot(src)
/obj/structure/closet/secure_closet/armory3
name = "armory energy gun locker"
icon_state = "tac"
icon_door = "armory_energy"
req_access = list(ACCESS_ARMORY)
/obj/structure/closet/secure_closet/armory3/PopulateContents()
..()
new /obj/item/storage/box/firingpins(src)
new /obj/item/gun/energy/ionrifle(src)
for(var/i in 1 to 3)
new /obj/item/gun/energy/laser/pistol(src)
/obj/structure/closet/secure_closet/armory3/populate_contents_immediate()
for(var/i in 1 to 3)
new /obj/item/gun/energy/e_gun(src)
for(var/i in 1 to 3)
new /obj/item/gun/energy/laser(src)
/obj/structure/closet/secure_closet/tac
name = "armory tac locker"
icon_state = "tac"
req_access = list(ACCESS_ARMORY)
/obj/structure/closet/secure_closet/tac/PopulateContents()
..()
new /obj/item/gun/ballistic/automatic/wt550(src)
new /obj/item/clothing/head/helmet/alt(src)
new /obj/item/clothing/mask/gas/sechailer(src)
new /obj/item/clothing/suit/armor/bulletproof(src)
/obj/structure/closet/secure_closet/labor_camp_security
name = "labor camp security locker"
icon_state = "sec"
req_access = list(ACCESS_SECURITY)
/obj/structure/closet/secure_closet/labor_camp_security/PopulateContents()
..()
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/head/helmet/sec(src)
new /obj/item/clothing/under/rank/security/officer(src)
new /obj/item/clothing/under/rank/security/officer/skirt(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/flashlight/seclite(src)