diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 3cabbac3e75..f7fed41581d 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -159,12 +159,44 @@ /obj/machinery/suit_storage_unit/attackby(obj/item/I as obj, mob/user as mob, params) if(!is_operational()) + if(panel_open) + to_chat(usr, "Close the maintenance panel first.") + else + to_chat(usr, "The unit is not operational.") return if(isscrewdriver(I)) panel_open = !panel_open playsound(loc, I.usesound, 100, 1) to_chat(user, text("You [panel_open ? "open up" : "close"] the unit's maintenance panel.")) updateUsrDialog() + return + if(state_open) + if(store_item(I, user)) + update_icon() + updateUsrDialog() + to_chat(user, "You load the [I] into the storage compartment.") + else + to_chat(user, "The unit already contains that item.") + + +/obj/machinery/suit_storage_unit/proc/store_item(obj/item/I, mob/user) + . = FALSE + if(istype(I, /obj/item/clothing/suit/space) && !suit) + suit = I + . = TRUE + if(istype(I, /obj/item/clothing/head/helmet) && !helmet) + helmet = I + . = TRUE + if(istype(I, /obj/item/clothing/mask) && !mask) + mask = I + . = TRUE + if((istype(I, /obj/item/tank) || istype(I, /obj/item/clothing/shoes/magboots)) && !storage) + storage = I + . = TRUE + if(.) + user.drop_item() + I.forceMove(src) + /obj/machinery/suit_storage_unit/power_change() ..() @@ -380,7 +412,7 @@ dat+= text("Breathmask storage compartment: []
",(mask ? mask.name : "No breathmask detected.") ) if(mask && state_open) dat+="Dispense mask
" - dat+= text("Breathmask storage compartment: []
",(storage ? storage.name : "
No storage item detected.") ) + dat+= text("Tank, Magboots storage compartment: []
",(storage ? storage.name : "
No storage item detected.") ) if(storage && state_open) dat+="Dispense storage item
" if(occupant)