@@ -143,7 +143,7 @@


/obj/machinery/suit_storage_unit/New()
src.update_icon()
update_icon()
if(SUIT_TYPE)
SUIT = new SUIT_TYPE(src)
if(HELMET_TYPE)
@@ -156,6 +156,10 @@
MASK = new MASK_TYPE(src)

/obj/machinery/suit_storage_unit/update_icon()
if(!(stat & NOPOWER))
ispowered = 1
else
ispowered = 0
var/hashelmet = 0
var/hassuit = 0
var/hashuman = 0
@@ -165,28 +169,19 @@
hassuit = 1
if(OCCUPANT)
hashuman = 1
icon_state = text("suitstorage[][][][][][][][][]",hashelmet,hassuit,hashuman,src.isopen,src.islocked,src.isUV,src.ispowered,src.isbroken,src.issuperUV)

icon_state = "suitstorage[hashelmet][hassuit][hashuman][isopen][islocked][isUV][ispowered][isbroken][issuperUV]"

/obj/machinery/suit_storage_unit/power_change()
. = ..()
if(.)
if(!(stat & NOPOWER) )
src.ispowered = 1
else
src.ispowered = 0
update_icon()

/obj/machinery/suit_storage_unit/ex_act(severity)
switch(severity)
if(1.0)
if(1)
if(prob(50))
src.dump_everything() //So suits dont survive all the time
dump_everything() //So suits dont survive all the time
qdel(src)
return
if(2.0)
if(2)
if(prob(50))
src.dump_everything()
dump_everything()
qdel(src)
return
else
@@ -202,51 +197,51 @@
return
if(!user.IsAdvancedToolUser())
return 0
if(src.panelopen) //The maintenance panel is open. Time for some shady stuff
if(panelopen) //The maintenance panel is open. Time for some shady stuff
dat+= "<HEAD><TITLE>Suit storage unit: Maintenance panel</TITLE></HEAD>"
dat+= "<Font color ='black'><B>Maintenance panel controls</B></font><HR>"
dat+= "<font color ='grey'>The panel is ridden with controls, button and meters, labeled in strange signs and symbols that <BR>you cannot understand. Probably the manufactoring world's language.<BR> Among other things, a few controls catch your eye.</font><BR><BR>"
dat+= text("<font color ='black'>A small dial with a small lambda symbol on it. It's pointing towards a gauge that reads []</font>.<BR> <font color='blue'><A href='?src=\ref[];toggleUV=1'> Turn towards []</A></font><BR>",(src.issuperUV ? "15nm" : "185nm"),src,(src.issuperUV ? "185nm" : "15nm") )
dat+= text("<font color ='black'>A thick old-style button, with 2 grimy LED lights next to it. The [] LED is on.</font><BR><font color ='blue'><A href='?src=\ref[];togglesafeties=1'>Press button</a></font>",(src.safetieson? "<font color='green'><B>GREEN</B></font>" : "<font color='red'><B>RED</B></font>"),src)
dat+= text("<font color ='black'>A small dial with a small lambda symbol on it. It's pointing towards a gauge that reads []</font>.<BR> <font color='blue'><A href='?src=\ref[];toggleUV=1'> Turn towards []</A></font><BR>",(issuperUV ? "15nm" : "185nm"),src,(issuperUV ? "185nm" : "15nm") )
dat+= text("<font color ='black'>A thick old-style button, with 2 grimy LED lights next to it. The [] LED is on.</font><BR><font color ='blue'><A href='?src=\ref[];togglesafeties=1'>Press button</a></font>",(safetieson? "<font color='green'><B>GREEN</B></font>" : "<font color='red'><B>RED</B></font>"),src)
dat+= text("<HR><BR><A href='?src=\ref[];mach_close=suit_storage_unit'>Close panel</A>", user)
//user << browse(dat, "window=ssu_m_panel;size=400x500")
//onclose(user, "ssu_m_panel")
else if(src.isUV) //The thing is running its cauterisation cycle. You have to wait.
else if(isUV) //The thing is running its cauterisation cycle. You have to wait.
dat += "<HEAD><TITLE>Suit storage unit</TITLE></HEAD>"
dat+= "<font color ='red'><B>Unit is cauterising contents with selected UV ray intensity. Please wait.</font></B><BR>"
//dat+= "<font colr='black'><B>Cycle end in: [src.cycletimeleft()] seconds. </font></B>"
//dat+= "<font colr='black'><B>Cycle end in: [cycletimeleft()] seconds. </font></B>"
//user << browse(dat, "window=ssu_cycling_panel;size=400x500")
//onclose(user, "ssu_cycling_panel")

else
if(!src.isbroken)
if(!isbroken)
dat+= "<HEAD><TITLE>Suit storage unit</TITLE></HEAD>"
dat+= "<font color='blue'><font size = 4><B>U-Stor-It Suit Storage Unit, model DS1900</B></FONT><BR>"
dat+= "<B>Welcome to the Unit control panel.</B></FONT><HR>"
dat+= text("<font color='black'>Helmet storage compartment: <B>[]</B></font><BR>",(src.HELMET ? HELMET.name : "</font><font color ='grey'>No helmet detected.") )
if(HELMET && src.isopen)
dat+= text("<font color='black'>Helmet storage compartment: <B>[]</B></font><BR>",(HELMET ? HELMET.name : "</font><font color ='grey'>No helmet detected.") )
if(HELMET && isopen)
dat+=text("<A href='?src=\ref[];dispense_helmet=1'>Dispense helmet</A><BR>",src)
dat+= text("<font color='black'>Suit storage compartment: <B>[]</B></font><BR>",(src.SUIT ? SUIT.name : "</font><font color ='grey'>No suit detected.") )
if(SUIT && src.isopen)
dat+= text("<font color='black'>Suit storage compartment: <B>[]</B></font><BR>",(SUIT ? SUIT.name : "</font><font color ='grey'>No suit detected.") )
if(SUIT && isopen)
dat+=text("<A href='?src=\ref[];dispense_suit=1'>Dispense suit</A><BR>",src)
dat+= text("<font color='black'>Footwear storage compartment: <B>[]</B></font><BR>",(src.BOOTS ? BOOTS.name : "</font><font color ='grey'>No footwear detected.") )
if(BOOTS && src.isopen)
dat+= text("<font color='black'>Footwear storage compartment: <B>[]</B></font><BR>",(BOOTS ? BOOTS.name : "</font><font color ='grey'>No footwear detected.") )
if(BOOTS && isopen)
dat+=text("<A href='?src=\ref[];dispense_boots=1'>Dispense footwear</A><BR>",src)
dat+= text("<font color='black'>Tank storage compartment: <B>[]</B></font><BR>",(src.TANK ? TANK.name : "</font><font color ='grey'>No air tank detected.") )
if(TANK && src.isopen)
dat+= text("<font color='black'>Tank storage compartment: <B>[]</B></font><BR>",(TANK ? TANK.name : "</font><font color ='grey'>No air tank detected.") )
if(TANK && isopen)
dat+=text("<A href='?src=\ref[];dispense_tank=1'>Dispense air tank</A><BR>",src)
dat+= text("<font color='black'>Breathmask storage compartment: <B>[]</B></font><BR>",(src.MASK ? MASK.name : "</font><font color ='grey'>No breathmask detected.") )
if(MASK && src.isopen)
dat+= text("<font color='black'>Breathmask storage compartment: <B>[]</B></font><BR>",(MASK ? MASK.name : "</font><font color ='grey'>No breathmask detected.") )
if(MASK && isopen)
dat+=text("<A href='?src=\ref[];dispense_mask=1'>Dispense mask</A><BR>",src)
if(src.OCCUPANT)
if(OCCUPANT)
dat+= "<HR><B><font color ='red'>WARNING: Biological entity detected inside the Unit's storage. Please remove.</B></font><BR>"
dat+= "<A href='?src=\ref[src];eject_guy=1'>Eject extra load</A>"
dat+= text("<HR><font color='black'>Unit is: [] - <A href='?src=\ref[];toggle_open=1'>[] Unit</A></font> ",(src.isopen ? "Open" : "Closed"),src,(src.isopen ? "Close" : "Open"))
if(src.isopen)
dat+= text("<HR><font color='black'>Unit is: [] - <A href='?src=\ref[];toggle_open=1'>[] Unit</A></font> ",(isopen ? "Open" : "Closed"),src,(isopen ? "Close" : "Open"))
if(isopen)
dat+="<HR>"
else
dat+= text(" - <A href='?src=\ref[];toggle_lock=1'><font color ='orange'>*[] Unit*</A></font><HR>",src,(src.islocked ? "Unlock" : "Lock") )
dat+= text("Unit status: []",(src.islocked? "<font color ='red'><B>**LOCKED**</B></font><BR>" : "<font color ='green'><B>**UNLOCKED**</B></font><BR>") )
dat+= text(" - <A href='?src=\ref[];toggle_lock=1'><font color ='orange'>*[] Unit*</A></font><HR>",src,(islocked ? "Unlock" : "Lock") )
dat+= text("Unit status: []",(islocked? "<font color ='red'><B>**LOCKED**</B></font><BR>" : "<font color ='green'><B>**UNLOCKED**</B></font><BR>") )
dat+= text("<A href='?src=\ref[];start_UV=1'>Start Disinfection cycle</A><BR>",src)
dat += text("<BR><BR><A href='?src=\ref[];mach_close=suit_storage_unit'>Close control panel</A>", user)
//user << browse(dat, "window=Suit Storage Unit;size=400x500")
@@ -266,62 +261,62 @@
/obj/machinery/suit_storage_unit/Topic(href, href_list) //I fucking HATE this proc
if(..())
return
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
usr.set_machine(src)
if (href_list["toggleUV"])
src.toggleUV(usr)
src.updateUsrDialog()
src.update_icon()
toggleUV(usr)
updateUsrDialog()
update_icon()
if (href_list["togglesafeties"])
src.togglesafeties(usr)
src.updateUsrDialog()
src.update_icon()
togglesafeties(usr)
updateUsrDialog()
update_icon()
if (href_list["dispense_helmet"])
src.dispense_helmet(usr)
src.updateUsrDialog()
src.update_icon()
dispense_helmet(usr)
updateUsrDialog()
update_icon()
if (href_list["dispense_suit"])
src.dispense_suit(usr)
src.updateUsrDialog()
src.update_icon()
dispense_suit(usr)
updateUsrDialog()
update_icon()
if (href_list["dispense_boots"])
src.dispense_boots(usr)
src.updateUsrDialog()
src.update_icon()
dispense_boots(usr)
updateUsrDialog()
update_icon()
if (href_list["dispense_tank"])
src.dispense_tank(usr)
src.updateUsrDialog()
src.update_icon()
dispense_tank(usr)
updateUsrDialog()
update_icon()
if (href_list["dispense_mask"])
src.dispense_mask(usr)
src.updateUsrDialog()
src.update_icon()
dispense_mask(usr)
updateUsrDialog()
update_icon()
if (href_list["toggle_open"])
src.toggle_open(usr)
src.updateUsrDialog()
src.update_icon()
toggle_open(usr)
updateUsrDialog()
update_icon()
if (href_list["toggle_lock"])
if(!allowed(usr))
to_chat(usr, "<span class='warning'>Access Denied.</span>")
return
src.toggle_lock(usr)
src.updateUsrDialog()
src.update_icon()
toggle_lock(usr)
updateUsrDialog()
update_icon()
if (href_list["start_UV"])
src.start_UV(usr)
src.updateUsrDialog()
src.update_icon()
start_UV(usr)
updateUsrDialog()
update_icon()
if (href_list["eject_guy"])
src.eject_occupant(usr)
src.updateUsrDialog()
src.update_icon()
eject_occupant(usr)
updateUsrDialog()
update_icon()
return


/obj/machinery/suit_storage_unit/proc/toggleUV(mob/user as mob)
// var/protected = 0
// var/mob/living/carbon/human/H = user
if(!src.panelopen)
if(!panelopen)
return

/*if(istype(H)) //Let's check if the guy's wearing electrically insulated gloves
@@ -331,23 +326,23 @@
protected = 1
if(!protected)
playsound(src.loc, "sparks", 75, 1, -1)
playsound(loc, "sparks", 75, 1, -1)
to_chat(user, "<span class='warning'>You try to touch the controls but you get zapped. There must be a short circuit somewhere.</span>")
return*/
else //welp, the guy is protected, we can continue
if(src.issuperUV)
if(issuperUV)
to_chat(user, "You slide the dial back towards \"185nm\".")
src.issuperUV = 0
issuperUV = 0
else
to_chat(user, "You crank the dial all the way up to \"15nm\".")
src.issuperUV = 1
issuperUV = 1
return


/obj/machinery/suit_storage_unit/proc/togglesafeties(mob/user as mob)
// var/protected = 0
// var/mob/living/carbon/human/H = user
if(!src.panelopen) //Needed check due to bugs
if(!panelopen) //Needed check due to bugs
return

/*if(istype(H)) //Let's check if the guy's wearing electrically insulated gloves
@@ -357,14 +352,14 @@
protected = 1
if(!protected)
playsound(src.loc, "sparks", 75, 1, -1)
playsound(loc, "sparks", 75, 1, -1)
to_chat(user, "<span class='warning'>You try to touch the controls but you get zapped. There must be a short circuit somewhere.</span>")
return*/
else
to_chat(user, "You push the button. The coloured LED next to it changes.")
src.safetieson = !src.safetieson
safetieson = !safetieson

#define dispense_clothing(item) if(src.item){item.dropInto(loc); src.item = null}
#define dispense_clothing(item) if(item){item.dropInto(loc); item = null}

/obj/machinery/suit_storage_unit/proc/dispense_helmet(mob/user as mob)
dispense_clothing(HELMET)
@@ -381,110 +376,121 @@
/obj/machinery/suit_storage_unit/proc/dispense_mask(mob/user as mob)
dispense_clothing(MASK)

/obj/machinery/suit_storage_unit/proc/dump_everything()
islocked = 0 //locks go free
dispense_clothing(SUIT)
dispense_clothing(HELMET)
dispense_clothing(BOOTS)
dispense_clothing(TANK)
dispense_clothing(MASK)
if(OCCUPANT)
eject_occupant(OCCUPANT)
return

#undef dispense_clothing

/obj/machinery/suit_storage_unit/proc/toggle_open(mob/user as mob)
if(src.islocked || src.isUV)
if(islocked || isUV)
to_chat(user, "<span class='warning'>Unable to open unit.</span>")
return
if(src.OCCUPANT)
src.eject_occupant(user)
if(OCCUPANT)
eject_occupant(user)
return // eject_occupant opens the door, so we need to return
src.isopen = !src.isopen
isopen = !isopen
return


/obj/machinery/suit_storage_unit/proc/toggle_lock(mob/user as mob)
if(src.OCCUPANT && src.safetieson)
if(OCCUPANT && safetieson)
to_chat(user, "<span class='warning'>The Unit's safety protocols disallow locking when a biological form is detected inside its compartments.</span>")
return
if(src.isopen)
if(isopen)
return
src.islocked = !src.islocked
islocked = !islocked
return


/obj/machinery/suit_storage_unit/proc/start_UV(mob/user as mob)
if(src.isUV || src.isopen) //I'm bored of all these sanity checks
if(isUV || isopen) //I'm bored of all these sanity checks
return
if(src.OCCUPANT && src.safetieson)
if(OCCUPANT && safetieson)
to_chat(user, "<span class='danger'>WARNING:</span><span class='warning'> Biological entity detected in the confines of the Unit's storage. Cannot initiate cycle.</span>")
return
if(!src.HELMET && !src.MASK && !src.SUIT && !src.BOOTS && !src.TANK && !src.OCCUPANT ) //shit's empty yo
if(!HELMET && !MASK && !SUIT && !BOOTS && !TANK && !OCCUPANT ) //shit's empty yo
to_chat(user, "<span class='warning'>Unit storage bays empty. Nothing to disinfect -- Aborting.</span>")
return
to_chat(user, "You start the Unit's cauterisation cycle.")
src.cycletime_left = 20
src.isUV = 1
if(src.OCCUPANT && !src.islocked)
src.islocked = 1 //Let's lock it for good measure
src.update_icon()
src.updateUsrDialog()
cycletime_left = 20
isUV = 1
if(OCCUPANT && !islocked)
islocked = 1 //Let's lock it for good measure
update_icon()
updateUsrDialog()

var/i //our counter
for(i=0,i<4,i++)
sleep(50)
if(src.OCCUPANT)
if(OCCUPANT)
OCCUPANT.apply_effect(50, IRRADIATE, blocked = OCCUPANT.getarmor(null, "rad"))
var/obj/item/organ/internal/diona/nutrients/rad_organ = locate() in OCCUPANT.internal_organs
if (!rad_organ)
if (OCCUPANT.can_feel_pain())
OCCUPANT.emote("scream")
if(src.issuperUV)
if(issuperUV)
var/burndamage = rand(28,35)
OCCUPANT.take_organ_damage(0,burndamage)
else
var/burndamage = rand(6,10)
OCCUPANT.take_organ_damage(0,burndamage)
if(i==3) //End of the cycle
if(!src.issuperUV)
if(src.HELMET)
if(!issuperUV)
if(HELMET)
HELMET.clean_blood()
if(src.SUIT)
if(SUIT)
SUIT.clean_blood()
if(src.BOOTS)
if(BOOTS)
BOOTS.clean_blood()
if(src.TANK)
if(TANK)
TANK.clean_blood()
if(src.MASK)
if(MASK)
MASK.clean_blood()
else //It was supercycling, destroy everything
if(src.HELMET)
src.HELMET = null
if(src.SUIT)
src.SUIT = null
if(src.BOOTS)
src.BOOTS = null
if(src.TANK)
src.TANK = null
if(src.MASK)
src.MASK = null
if(HELMET)
HELMET = null
if(SUIT)
SUIT = null
if(BOOTS)
BOOTS = null
if(TANK)
TANK = null
if(MASK)
MASK = null
visible_message("<font color='red'>With a loud whining noise, the Suit Storage Unit's door grinds open. Puffs of ashen smoke come out of its chamber.</font>", 3)
src.isbroken = 1
src.isopen = 1
src.islocked = 0
src.eject_occupant(OCCUPANT) //Mixing up these two lines causes bug. DO NOT DO IT.
src.isUV = 0 //Cycle ends
src.update_icon()
src.updateUsrDialog()
isbroken = 1
isopen = 1
islocked = 0
eject_occupant(OCCUPANT) //Mixing up these two lines causes bug. DO NOT DO IT.
isUV = 0 //Cycle ends
update_icon()
updateUsrDialog()
return

/* spawn(200) //Let's clean dat shit after 20 secs //Eh, this doesn't work
if(src.HELMET)
if(HELMET)
HELMET.clean_blood()
if(src.SUIT)
if(SUIT)
SUIT.clean_blood()
if(src.MASK)
if(MASK)
MASK.clean_blood()
src.isUV = 0 //Cycle ends
src.update_icon()
src.updateUsrDialog()
isUV = 0 //Cycle ends
update_icon()
updateUsrDialog()
var/i
for(i=0,i<4,i++) //Gradually give the guy inside some damaged based on the intensity
spawn(50)
if(src.OCCUPANT)
if(src.issuperUV)
if(OCCUPANT)
if(issuperUV)
OCCUPANT.take_organ_damage(0,40)
to_chat(user, "Test. You gave him 40 damage")
else
@@ -494,33 +500,33 @@


/obj/machinery/suit_storage_unit/proc/cycletimeleft()
if(src.cycletime_left >= 1)
src.cycletime_left--
return src.cycletime_left
if(cycletime_left >= 1)
cycletime_left--
return cycletime_left


/obj/machinery/suit_storage_unit/proc/eject_occupant(mob/user as mob)
if (src.islocked)
if (islocked)
return

if (!src.OCCUPANT)
if (!OCCUPANT)
return
// for(var/obj/O in src)
// O.loc = src.loc
// O.loc = loc

if (src.OCCUPANT.client)
if (OCCUPANT.client)
if(user != OCCUPANT)
to_chat(OCCUPANT, "<span class='notice'>The machine kicks you out!</span>")
if(user.loc != src.loc)
if(user.loc != loc)
to_chat(OCCUPANT, "<span class='notice'>You leave the not-so-cozy confines of the SSU.</span>")

src.OCCUPANT.client.eye = src.OCCUPANT.client.mob
src.OCCUPANT.client.perspective = MOB_PERSPECTIVE
src.OCCUPANT.loc = src.loc
src.OCCUPANT = null
if(!src.isopen)
src.isopen = 1
src.update_icon()
OCCUPANT.client.eye = OCCUPANT.client.mob
OCCUPANT.client.perspective = MOB_PERSPECTIVE
OCCUPANT.loc = loc
OCCUPANT = null
if(!isopen)
isopen = 1
update_icon()
return


@@ -531,10 +537,10 @@

if (usr.stat != 0)
return
src.eject_occupant(usr)
eject_occupant(usr)
add_fingerprint(usr)
src.updateUsrDialog()
src.update_icon()
updateUsrDialog()
update_icon()
return


@@ -545,13 +551,13 @@

if (usr.stat != 0)
return
if (!src.isopen)
if (!isopen)
to_chat(usr, "<span class='warning'>The unit's doors are shut.</span>")
return
if (!src.ispowered || src.isbroken)
if (!ispowered || isbroken)
to_chat(usr, "<span class='warning'>The unit is not operational.</span>")
return
if ( (src.OCCUPANT) || (src.HELMET) || (src.SUIT) )
if ( (OCCUPANT) || (HELMET) || (SUIT) )
to_chat(usr, "<span class='warning'>It's too cluttered inside for you to fit in!</span>")
return
visible_message("\The [usr] starts squeezing into the suit storage unit!", 3)
@@ -561,41 +567,52 @@
usr.client.eye = src
usr.loc = src
// usr.metabslow = 1
src.OCCUPANT = usr
src.isopen = 0 //Close the thing after the guy gets inside
src.update_icon()
OCCUPANT = usr
isopen = 0 //Close the thing after the guy gets inside
update_icon()

// for(var/obj/O in src)
// qdel(O)

src.add_fingerprint(usr)
src.updateUsrDialog()
add_fingerprint(usr)
updateUsrDialog()
return
else
src.OCCUPANT = null //Testing this as a backup sanity test
OCCUPANT = null //Testing this as a backup sanity test
return


/obj/machinery/suit_storage_unit/attackby(obj/item/I as obj, mob/user as mob)
if(!src.ispowered)
if(!ispowered)
return
if(isScrewdriver(I))
src.panelopen = !src.panelopen
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
to_chat(user, text("<span class='notice'>You [] the unit's maintenance panel.</span>",(src.panelopen ? "open up" : "close") ))
src.updateUsrDialog()
panelopen = !panelopen
playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
to_chat(user, text("<span class='notice'>You [panelopen ? "open" : "close"] the unit's maintenance panel.</span>",))
updateUsrDialog()
return
if(isCrowbar(I))
if((stat & NOPOWER) && !islocked)
to_chat(usr, "<span class='warning'>You begin prying the unit open.</span>")
if(do_after(user, 50, src))
isopen = 1
to_chat(usr, "<span class='warning'>You pry the unit open.</span>")
update_icon()
else if(islocked)
to_chat(usr, "<span class='warning'>You can't pry the unit open, it's locked!</span>")
return

if ( istype(I, /obj/item/grab) )
var/obj/item/grab/G = I
if( !(ismob(G.affecting)) )
return
if (!src.isopen)
if (!isopen)
to_chat(usr, "<span class='warning'>The unit's doors are shut.</span>")
return
if (!src.ispowered || src.isbroken)
if (!ispowered || isbroken)
to_chat(usr, "<span class='warning'>The unit is not operational.</span>")
return
if ( (src.OCCUPANT) || (src.HELMET) || (src.SUIT) || (src.BOOTS) || (src.TANK) || (src.MASK)) //Unit needs to be absolutely empty
if ( (OCCUPANT) || (HELMET) || (SUIT) || (BOOTS) || (TANK) || (MASK)) //Unit needs to be absolutely empty
to_chat(user, "<span class='warning'>The unit's storage area is too cluttered.</span>")
return
visible_message("[user] starts putting [G.affecting.name] into the Suit Storage Unit.", 3)
@@ -606,94 +623,94 @@
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
M.loc = src
src.OCCUPANT = M
src.isopen = 0 //close ittt
OCCUPANT = M
isopen = 0 //close ittt

//for(var/obj/O in src)
// O.loc = src.loc
src.add_fingerprint(user)
// O.loc = loc
add_fingerprint(user)
qdel(G)
src.updateUsrDialog()
src.update_icon()
updateUsrDialog()
update_icon()
return
return
if( istype(I,/obj/item/clothing/suit/space) )
if(!src.isopen)
if(!isopen)
return
var/obj/item/clothing/suit/space/S = I
if(src.SUIT)
if(SUIT)
to_chat(user, "<span class='notice'>The unit already contains a suit.</span>")
return
to_chat(user, "You load the [S.name] into the storage compartment.")
user.drop_item()
S.forceMove(src)
src.SUIT = S
src.update_icon()
src.updateUsrDialog()
SUIT = S
update_icon()
updateUsrDialog()
return
if( istype(I,/obj/item/clothing/head/helmet/space) )
if(!src.isopen)
if(!isopen)
return
var/obj/item/clothing/head/helmet/H = I
if(src.HELMET)
if(HELMET)
to_chat(user, "<span class='notice'>The unit already contains a helmet.</span>")
return
to_chat(user, "You load the [H.name] into the storage compartment.")
user.drop_item()
H.forceMove(src)
src.HELMET = H
src.update_icon()
src.updateUsrDialog()
HELMET = H
update_icon()
updateUsrDialog()
return
if( istype(I,/obj/item/clothing/shoes/magboots) )
if(!src.isopen)
if(!isopen)
return
var/obj/item/clothing/shoes/magboots/B = I
if(src.BOOTS)
if(BOOTS)
to_chat(user, "<span class='notice'>The unit already contains a pair of magboots.</span>")
return
to_chat(user, "You load the [B.name] into the storage compartment.")
user.drop_item()
B.forceMove(src)
src.BOOTS = B
src.update_icon()
src.updateUsrDialog()
BOOTS = B
update_icon()
updateUsrDialog()
return
if( istype(I,/obj/item/weapon/tank) )
if(!src.isopen)
if(!isopen)
return
var/obj/item/weapon/tank/T = I
if(src.TANK)
if(TANK)
to_chat(user, "<span class='notice'>The unit already contains an air tank.</span>")
return
to_chat(user, "You load the [T.name] into the storage compartment.")
user.drop_item()
T.forceMove(src)
src.TANK = T
src.update_icon()
src.updateUsrDialog()
TANK = T
update_icon()
updateUsrDialog()
return
if( istype(I,/obj/item/clothing/mask) )
if(!src.isopen)
if(!isopen)
return
var/obj/item/clothing/mask/M = I
if(src.MASK)
if(MASK)
to_chat(user, "<span class='notice'>The unit already contains a mask.</span>")
return
to_chat(user, "You load the [M.name] into the storage compartment.")
user.drop_item()
M.forceMove(src)
src.MASK = M
src.update_icon()
src.updateUsrDialog()
MASK = M
update_icon()
updateUsrDialog()
return
src.update_icon()
src.updateUsrDialog()
update_icon()
updateUsrDialog()
return


/obj/machinery/suit_storage_unit/attack_ai(mob/user as mob)
return src.attack_hand(user)
return attack_hand(user)

//////////////////////////////REMINDER: Make it lock once you place some fucker inside.

@@ -799,12 +816,12 @@
species = list(SPECIES_HUMAN,SPECIES_TAJARA,SPECIES_SKRELL,SPECIES_UNATHI)

/obj/machinery/suit_cycler/attack_ai(mob/user as mob)
return src.attack_hand(user)
return attack_hand(user)

/obj/machinery/suit_cycler/attackby(obj/item/I as obj, mob/user as mob)

if(electrified != 0)
if(src.shock(user, 100))
if(shock(user, 100))
return

//Hacking init.
@@ -823,7 +840,7 @@
to_chat(user, "<span class='danger'>The suit cycler is locked.</span>")
return

if(src.contents.len > 0)
if(contents.len > 0)
to_chat(user, "<span class='danger'>There is no room inside the cycler for [G.affecting.name].</span>")
return

@@ -836,19 +853,19 @@
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
M.loc = src
src.occupant = M
occupant = M

src.add_fingerprint(user)
add_fingerprint(user)
qdel(G)

src.updateUsrDialog()
updateUsrDialog()

return
else if(isScrewdriver(I))

panel_open = !panel_open
to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.")
src.updateUsrDialog()
updateUsrDialog()
return

else if(istype(I,/obj/item/clothing/head/helmet/space) && !istype(I, /obj/item/clothing/head/helmet/space/rig))
@@ -870,8 +887,8 @@
I.loc = src
helmet = I

src.update_icon()
src.updateUsrDialog()
update_icon()
updateUsrDialog()
return

else if(istype(I,/obj/item/clothing/suit/space/void))
@@ -893,8 +910,8 @@
I.loc = src
suit = I

src.update_icon()
src.updateUsrDialog()
update_icon()
updateUsrDialog()
return

..()
@@ -910,7 +927,7 @@
emagged = 1
safeties = 0
req_access = list()
src.updateUsrDialog()
updateUsrDialog()
return 1

/obj/machinery/suit_cycler/attack_hand(mob/user as mob)
@@ -921,19 +938,19 @@
return 0

if(electrified != 0)
if(src.shock(user, 100))
if(shock(user, 100))
return

usr.set_machine(src)

var/dat = "<HEAD><TITLE>Suit Cycler Interface</TITLE></HEAD>"

if(src.active)
if(active)
dat+= "<br><font color='red'><B>The [model_text ? "[model_text] " : ""]suit cycler is currently in use. Please wait...</b></font>"

else if(locked)
dat += "<br><font color='red'><B>The [model_text ? "[model_text] " : ""]suit cycler is currently locked. Please contact your system administrator.</b></font>"
if(src.allowed(usr))
if(allowed(usr))
dat += "<br><a href='?src=\ref[src];toggle_lock=1'>\[unlock unit\]</a>"
else
dat += "<h1>Suit cycler</h1>"
@@ -1002,7 +1019,7 @@

else if(href_list["toggle_lock"])

if(src.allowed(usr))
if(allowed(usr))
locked = !locked
to_chat(usr, "You [locked ? "" : "un"]lock \the [src].")
else
@@ -1016,7 +1033,7 @@

active = 1
irradiating = 10
src.updateUsrDialog()
updateUsrDialog()

sleep(10)

@@ -1032,7 +1049,7 @@
if(radiation_level > 1)
suit.clean_blood()

src.updateUsrDialog()
updateUsrDialog()
return

/obj/machinery/suit_cycler/Process()
@@ -1069,7 +1086,7 @@
T.visible_message("\icon[src]<span class='notice'>The [src] pings loudly.</span>")
icon_state = initial(icon_state)
active = 0
src.updateUsrDialog()
updateUsrDialog()

/obj/machinery/suit_cycler/proc/repair_suit()
if(!suit || !suit.damage || !suit.can_breach)
@@ -1107,8 +1124,8 @@
occupant = null

add_fingerprint(usr)
src.updateUsrDialog()
src.update_icon()
updateUsrDialog()
update_icon()

return

@@ -1226,4 +1243,4 @@
suit.icon_state = "rig-pilot"

if(helmet) helmet.name = "refitted [helmet.name]"
if(suit) suit.name = "refitted [suit.name]"
if(suit) suit.name = "refitted [suit.name]"