mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-18 15:06:43 +01:00
requires #6644 Entirely replaces how (most) belts perform insertion checks. This pretty much allows belts to hold most things. Armor vests are next. Trashbags will also use the systems we use on main. Closes #7256 and #7435 --------- Co-authored-by: silicons <silicons@silicons.dev>
86 lines
3.1 KiB
Plaintext
86 lines
3.1 KiB
Plaintext
// -----------------------------
|
|
// Quickdraw storage
|
|
// -----------------------------
|
|
//These items are pouches and cases made to be kept in belts or pockets to quickly draw objects from
|
|
//Largely inspired by the vest pouches on Colonial Marines
|
|
|
|
/obj/item/storage/quickdraw
|
|
name = "quickdraw"
|
|
desc = "This object should not appear"
|
|
icon = 'icons/obj/storage.dmi'
|
|
|
|
// todo: i just fully disabled this for now. sorry.
|
|
// todo: add quickdrawing.
|
|
|
|
//Quickmode
|
|
//When set to 0, this storage will operate as a regular storage, and clicking on it while equipped will open it as a storage
|
|
//When set to 1, a click while it is equipped will instead move the first item inside it to your hand
|
|
// var/quickmode = 0
|
|
|
|
// /obj/item/storage/quickdraw/attack_hand(mob/user, datum/event_args/actor/clickchain/e_args)
|
|
// if(src.loc == user) //If they aren't holding us, we do nothing special
|
|
// if(ishuman(user))
|
|
// var/mob/living/carbon/human/H = user
|
|
// if(quickmode)
|
|
// var/first_item = contents[1]
|
|
// if(first_item && !H.get_active_held_item()) //Do we have anything to give you?
|
|
// H.put_in_hands(first_item)
|
|
// return
|
|
|
|
// if(H.l_store == src && !H.get_active_held_item()) //overrides
|
|
// src.open(user)
|
|
// return
|
|
// if(H.r_store == src && !H.get_active_held_item())
|
|
// src.open(user)
|
|
// return
|
|
// ..() //Nothing special happened, go call the other proc
|
|
|
|
|
|
// /obj/item/storage/quickdraw/verb/toggle_quickdraw()
|
|
// set name = "Switch Quickdraw Mode"
|
|
// set category = VERB_CATEGORY_OBJECT
|
|
|
|
// quickmode = !quickmode
|
|
// switch (quickmode)
|
|
// if(1)
|
|
// to_chat(usr, "[src] now draws the first object inside.")
|
|
// if(0)
|
|
// to_chat(usr, "[src] now opens as a container.")
|
|
|
|
// /obj/item/storage/quickdraw/AltClick(mob/user)
|
|
// ..()
|
|
// if(src.loc == user) //Are they carrying us?
|
|
// toggle_quickdraw()
|
|
|
|
|
|
// If we start adding more of these, we'll need to make them their own folder. 'til then, this one should be fine.
|
|
|
|
// -----------------------------
|
|
// Syringe case
|
|
// -----------------------------
|
|
|
|
/obj/item/storage/quickdraw/syringe_case
|
|
name = "syringe case"
|
|
desc = "A small case for safely carrying sharps around."
|
|
icon_state = "syringe_case"
|
|
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
max_single_weight_class = WEIGHT_CLASS_TINY
|
|
max_combined_volume = WEIGHT_CLASS_TINY * 6 //Capable of holding six syringes
|
|
belt_storage_class = BELT_CLASS_SMALL
|
|
|
|
//Can hold syringes and autoinjectors, but also pills if you really wanted. Syringe-shaped objects like pens and cigarettes also fit, but why would you do that?
|
|
insertion_whitelist = list(/obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray/autoinjector,
|
|
/obj/item/reagent_containers/pill, /obj/item/pen, /obj/item/flashlight/pen, /obj/item/clothing/mask/smokable/cigarette)
|
|
|
|
// quickmode = 1 //Starts in quickdraw mode
|
|
//Preloaded for your convenience!
|
|
starts_with = list(
|
|
/obj/item/reagent_containers/syringe,
|
|
/obj/item/reagent_containers/syringe,
|
|
/obj/item/reagent_containers/syringe,
|
|
/obj/item/reagent_containers/syringe,
|
|
/obj/item/reagent_containers/syringe,
|
|
/obj/item/reagent_containers/syringe
|
|
)
|