Files
Polaris/code/modules/clothing/suits/storage.dm
2020-02-17 13:14:08 -05:00

111 lines
3.6 KiB
Plaintext

/obj/item/clothing/suit/storage
var/obj/item/weapon/storage/internal/pockets
/obj/item/clothing/suit/storage/New()
..()
pockets = new/obj/item/weapon/storage/internal(src)
pockets.max_w_class = ITEMSIZE_SMALL //fit only pocket sized items
pockets.max_storage_space = ITEMSIZE_COST_SMALL * 2
/obj/item/clothing/suit/storage/Destroy()
QDEL_NULL(pockets)
return ..()
/obj/item/clothing/suit/storage/attack_hand(mob/user as mob)
if (pockets.handle_attack_hand(user))
..(user)
/obj/item/clothing/suit/storage/MouseDrop(obj/over_object as obj)
if (pockets.handle_mousedrop(usr, over_object))
..(over_object)
/obj/item/clothing/suit/storage/attackby(obj/item/W as obj, mob/user as mob)
..()
pockets.attackby(W, user)
/obj/item/clothing/suit/storage/emp_act(severity)
pockets.emp_act(severity)
..()
//Jackets with buttons, used for labcoats, IA jackets, First Responder jackets, and brown jackets.
/obj/item/clothing/suit/storage/toggle
flags_inv = HIDEHOLSTER
var/open = 0 //0 is closed, 1 is open, -1 means it won't be able to toggle
verb/toggle()
set name = "Toggle Coat Buttons"
set category = "Object"
set src in usr
if(!usr.canmove || usr.stat || usr.restrained())
return 0
if(open == 1) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
open = 0
icon_state = initial(icon_state)
flags_inv = HIDETIE|HIDEHOLSTER
to_chat(usr, "You button up the coat.")
else if(open == 0)
open = 1
icon_state = "[icon_state]_open"
flags_inv = HIDEHOLSTER
to_chat(usr, "You unbutton the coat.")
else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed
to_chat(usr, "You attempt to button-up the velcro on your [src], before promptly realising how silly you are.")
return
update_clothing_icon() //so our overlays update
/obj/item/clothing/suit/storage/hooded/toggle
flags_inv = HIDEHOLSTER
var/open = 0 //0 is closed, 1 is open, -1 means it won't be able to toggle
verb/toggle()
set name = "Toggle Coat Buttons"
set category = "Object"
set src in usr
if(!usr.canmove || usr.stat || usr.restrained())
return 0
if(open == 1) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
open = 0
icon_state = initial(icon_state)
flags_inv = HIDETIE|HIDEHOLSTER
to_chat(usr, "You button up the coat.")
else if(open == 0)
open = 1
icon_state = "[icon_state]_open"
flags_inv = HIDEHOLSTER
to_chat(usr, "You unbutton the coat.")
else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed
to_chat(usr, "You attempt to button-up the velcro on your [src], before promptly realising how silly you are.")
return
update_clothing_icon() //so our overlays update
//New Vest 4 pocket storage and badge toggles, until suit accessories are a thing.
/obj/item/clothing/suit/storage/vest/heavy/New()
..()
pockets = new/obj/item/weapon/storage/internal(src)
pockets.max_w_class = ITEMSIZE_SMALL
pockets.max_storage_space = ITEMSIZE_COST_SMALL * 4
/obj/item/clothing/suit/storage/vest
var/icon_badge
var/icon_nobadge
verb/toggle()
set name ="Adjust Badge"
set category = "Object"
set src in usr
if(!usr.canmove || usr.stat || usr.restrained())
return 0
if(icon_state == icon_badge)
icon_state = icon_nobadge
to_chat(usr, "You conceal \the [src]'s badge.")
else if(icon_state == icon_nobadge)
icon_state = icon_badge
to_chat(usr, "You reveal \the [src]'s badge.")
else
to_chat(usr, "\The [src] does not have a badge.")
return
update_clothing_icon()