@@ -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] "