Files
+37 21b4095dfd [MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2026-05-16 00:56:00 +02:00

164 lines
6.3 KiB
Plaintext

/// Base pouch type. Fits in pockets, as its main gimmick.
/obj/item/storage/pouch
name = "storage pouch"
desc = "It's a nondescript pouch made with dark fabric. It has a clip, for fitting in pockets."
icon = 'modular_skyrat/modules/modular_items/icons/storage.dmi'
icon_state = "survival"
w_class = WEIGHT_CLASS_BULKY
resistance_flags = FLAMMABLE
slot_flags = ITEM_SLOT_POCKETS
/obj/item/storage/pouch/Initialize(mapload)
. = ..()
atom_storage.max_specific_storage = WEIGHT_CLASS_SMALL
atom_storage.max_slots = 5
/obj/item/storage/pouch/ammo
name = "ammo pouch"
desc = "A pouch for your ammo that goes in your pocket."
icon = 'modular_skyrat/modules/modular_items/icons/storage.dmi'
icon_state = "ammopouch"
custom_price = PAYCHECK_CREW * 4
/obj/item/storage/pouch/ammo/Initialize(mapload)
. = ..()
atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL
atom_storage.max_total_storage = 12
atom_storage.max_slots = 3
atom_storage.numerical_stacking = FALSE
atom_storage.can_hold = typecacheof(list(/obj/item/ammo_box/magazine, /obj/item/ammo_casing))
AddComponent(/datum/component/reskinable_item, /datum/atom_skin/ammo_pouch)
RegisterSignal(src, COMSIG_OBJ_RESKIN, PROC_REF(on_reskin))
/datum/atom_skin/ammo_pouch
abstract_type = /datum/atom_skin/ammo_pouch
/datum/atom_skin/ammo_pouch/ammo
preview_name = "Ammo Pouch"
new_icon_state = "ammopouch"
/datum/atom_skin/ammo_pouch/casing
preview_name = "Casing Pouch"
new_icon_state = "casingpouch"
/obj/item/storage/pouch/ammo/proc/on_reskin()
SIGNAL_HANDLER
if(icon_state == "casingpouch")
name = "casing pouch"
desc = "A pouch for your ammo that goes in your pocket, carefully segmented for holding shell casings and nothing else."
atom_storage.can_hold = typecacheof(list(/obj/item/ammo_casing))
atom_storage.max_specific_storage = WEIGHT_CLASS_TINY
atom_storage.numerical_stacking = TRUE
atom_storage.max_slots = 14
atom_storage.max_total_storage = WEIGHT_CLASS_TINY * 10
/obj/item/storage/pouch/material
name = "material pouch"
desc = "A pouch for sheets and RCD ammunition that manages to hang where you would normally put things in your pocket."
icon = 'modular_skyrat/modules/modular_items/icons/storage.dmi'
icon_state = "materialpouch"
custom_price = PAYCHECK_CREW * 4
/obj/item/storage/pouch/material/Initialize(mapload)
. = ..()
atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL
atom_storage.max_total_storage = INFINITY
atom_storage.max_slots = 2
atom_storage.numerical_stacking = TRUE
atom_storage.can_hold = typecacheof(list(/obj/item/rcd_ammo, /obj/item/stack/sheet))
/// It's a pocket medkit. Use sparingly?
/obj/item/storage/pouch/medical
name = "medkit pouch"
desc = "A standard medkit pouch compartmentalized for field medical care. Comes with a set of pocket clips."
resistance_flags = FIRE_PROOF
icon_state = "medkit"
/// The list of things that medical pouches can hold. Stolen from what medkits can hold, but modified for things you would probably want at pocket-access.
var/static/list/med_pouch_holdables = list(
/obj/item/healthanalyzer,
/obj/item/hypospray/mkii,
/obj/item/dnainjector,
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/cup/vial,
/obj/item/reagent_containers/applicator/pill,
/obj/item/reagent_containers/syringe,
/obj/item/reagent_containers/medigel,
/obj/item/reagent_containers/spray,
/obj/item/reagent_containers/hypospray,
/obj/item/storage/pill_bottle,
/obj/item/storage/box/bandages,
/obj/item/stack/cable_coil,
/obj/item/stack/medical,
/obj/item/flashlight/pen,
/obj/item/bonesetter,
/obj/item/cautery,
/obj/item/hemostat,
/obj/item/reagent_containers/blood,
/obj/item/stack/medical/wrap/sticky_tape,
)
/obj/item/storage/pouch/medical/Initialize(mapload)
. = ..()
atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL
atom_storage.max_slots = 7
atom_storage.max_total_storage = 14
atom_storage.set_holdable(med_pouch_holdables)
/obj/item/storage/pouch/medical/loaded/Initialize(mapload)
. = ..()
var/static/items_inside = list(
/obj/item/stack/medical/wrap/gauze/twelve = 1,
/obj/item/stack/medical/suture = 2,
/obj/item/stack/medical/mesh = 2,
/obj/item/reagent_containers/hypospray/medipen = 1,
/obj/item/healthanalyzer/simple = 1,
)
generate_items_inside(items_inside, src)
desc += " Repackaged with station-standard medical supplies."
/// It's... not as egregious as a full pocket medkit.
/obj/item/storage/pouch/medical/firstaid
name = "first aid pouch"
desc = "A standard nondescript first-aid pouch, compartmentalized for the bare essentials of field medical care. Comes with a pocket clip."
icon_state = "firstaid"
/obj/item/storage/pouch/medical/firstaid/Initialize(mapload)
. = ..()
atom_storage.max_specific_storage = WEIGHT_CLASS_SMALL
/*
hi. you might think this is egregious. five slots? that's a lot!
here's a thought: the pocket first aid kit from the colonial replicator [modular_skyrat\modules\food_replicator\code\storage.dm] has
mostly unrestricted storage, limited by having 4 max total storage, so at best you're only fitting 4 tiny items. but that's 4 of *any* tiny item.
or 2 small items (that aren't guns/mags). so it's basically just turning 1 pocket slot into 2, if you think about it hard enough.
this is a thing you have to buy from cargo's goodies tab. not even an import. and it only fits medical supplies.
i think it can have a lil extra storage as a treat.
*/
atom_storage.max_slots = 5
atom_storage.max_total_storage = 10
/obj/item/storage/pouch/medical/firstaid/loaded/Initialize(mapload)
. = ..()
desc += " Repackaged with station-standard medical supplies."
var/static/items_inside = list(
/obj/item/stack/medical/suture = 1,
/obj/item/stack/medical/mesh = 1,
/obj/item/storage/box/bandages = 1,
/obj/item/stack/medical/wrap/gauze/twelve = 1,
/obj/item/reagent_containers/hypospray/medipen/ekit = 1,
)
generate_items_inside(items_inside, src)
/obj/item/storage/pouch/medical/firstaid/stabilizer/Initialize(mapload)
. = ..()
desc += " Repackaged with a wound stabilization-focused loadout."
var/static/items_inside = list(
/obj/item/cautery = 1,
/obj/item/bonesetter = 1,
/obj/item/stack/medical/wrap/gauze/twelve = 1,
/obj/item/reagent_containers/hypospray/medipen/ekit = 2,
)
generate_items_inside(items_inside, src)