•SSus added. Not spoiling anything, fuuuuck you.

•Fixed some of erro's typos :3
•3 syndie suits repurposed into stationsuits. Command suit&helmet, Chief Engie suit&helmet, CMO suit&helmet
•EVA and CMO office edited. I'm inviting a mapper to do a better job of the shit I did.
•Trashbag can now pick up soda cans, spent bullet cases and cigarette packs/cigs/butts.
•Thread to bitch here: http://tgstation13.servehttp.com/phpBB3/viewtopic.php?f=3&t=5569&p=45549&sid=a4a96f5b0e896cd3e3f7c1db73f09f1b#p45549

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1948 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
polyxenitopalidou@gmail.com
2011-07-29 01:12:16 +00:00
parent f0d282c99b
commit 6f1f94b912
20 changed files with 10167 additions and 87 deletions
+19 -2
View File
@@ -1372,9 +1372,28 @@
attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/weapon/trashbag))
var/obj/item/weapon/trashbag/S = W
if (S.mode == 1)
for (var/obj/item/weapon/reagent_containers/food/drinks/D in locate(src.x,src.y,src.z))
if (S.contents.len < S.capacity)
S.contents += D;
else
user << "\blue The bag is full."
break
user << "\blue You pick up all trash."
else
if (S.contents.len < S.capacity)
S.contents += src;
else
user << "\blue The bag is full."
S.update_icon()
return
attack_self(mob/user as mob)
return
attack(mob/M as mob, mob/user as mob, def_zone)
var/datum/reagents/R = src.reagents
var/fillevel = gulp_size
@@ -1422,8 +1441,6 @@
return 0
attackby(obj/item/I as obj, mob/user as mob)
return
afterattack(obj/target, mob/user , flag)
+29 -9
View File
@@ -163,7 +163,7 @@
item_state = "helmet"
/obj/item/clothing/head/helmet/space
name = "space helmet"
name = "Space helmet"
icon_state = "space"
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES | HEADCOVERSMOUTH
@@ -173,13 +173,33 @@
armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 25, rad = 25)
/obj/item/clothing/head/helmet/space/engineering
name = "engineering space helmet"
desc = "A special helmet designed for work in a hazardous, low-pressure engironment. Painted in Engineering Orange to designate its department of origin."
name = "Engineering space helmet"
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Painted in Engineering Orange to designate its department of origin."
icon_state = "helm-orange"
item_state = "helm-orange"
radiation_protection = 0.25
armor = list(melee = 40, bullet = 30, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50)
/obj/item/clothing/head/helmet/space/command
name = "Command space helmet"
desc = "A special helmet designed to work in a hazardous, low-pressure environment. Painted in Command Blue to designate its department of origin."
icon_state = "helm-command"
item_state = "helm-command"
radiation_protection = 0.25
armor = list(melee = 40, bullet = 30, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50)
/obj/item/clothing/head/helmet/space/command/chief_engineer
name = "Chief engineer space helmet"
desc = "A special helmet designed to work in a hazardous, low-pressure environment. Bears the insignia of the chief medical officer."
icon_state = "helm-cmo"
item_state = "helm-cmo"
/obj/item/clothing/head/helmet/space/command/chief_medical_officer
name = "Chief medical offier space helmet"
desc = "A special helmet designed to work in a hazardous, low-pressure environment. Bears the insignia of the chief engineer."
icon_state = "helm-ce"
item_state = "helm-ce"
/obj/item/clothing/head/helmet/space/capspace
name = "space helmet"
icon_state = "capspace"
@@ -233,10 +253,10 @@
icon_state = "syndicate-helm-orange"
item_state = "syndicate-helm-orange"*/ //As I said: Best used for engineering suits
/obj/item/clothing/head/helmet/space/syndicate/blue
/*/obj/item/clothing/head/helmet/space/syndicate/blue
name = "Blue Space Helmet"
icon_state = "syndicate-helm-blue"
item_state = "syndicate-helm-blue"
item_state = "syndicate-helm-blue"*/
/obj/item/clothing/head/helmet/space/syndicate/black
name = "Black Space Helmet"
@@ -253,10 +273,10 @@
icon_state = "syndicate-helm-black-blue"
item_state = "syndicate-helm-black-blue"
/obj/item/clothing/head/helmet/space/syndicate/black/med
/*/obj/item/clothing/head/helmet/space/syndicate/black/med
name = "Black Space Helmet"
icon_state = "syndicate-helm-black-med"
item_state = "syndicate-helm-black"
item_state = "syndicate-helm-black"*/
/obj/item/clothing/head/helmet/space/syndicate/black/orange
name = "Black Space Helmet"
@@ -268,10 +288,10 @@
icon_state = "syndicate-helm-black-red"
item_state = "syndicate-helm-black-red"
/obj/item/clothing/head/helmet/space/syndicate/black/engie
/*/obj/item/clothing/head/helmet/space/syndicate/black/engie
name = "Black Space Helmet"
icon_state = "syndicate-helm-black-engie"
item_state = "syndicate-helm-black"
item_state = "syndicate-helm-black"*/
/obj/item/clothing/head/syndicatefake
name = "red space helmet replica"
+35 -9
View File
@@ -435,7 +435,7 @@
// SPACE SUITS
/obj/item/clothing/suit/space
name = "space suit"
name = "Space suit"
desc = "A suit that protects against low pressure environments. Has a big 13 on the back."
icon_state = "space"
item_state = "s_suit"
@@ -461,8 +461,34 @@
slowdown = 2
radiation_protection = 0.50
/obj/item/clothing/suit/space/command
name = "Command space suit"
desc = "Much like its generic counterpart, the spacesuit is painted a dark blue color to designate its department of origin."
icon_state = "suit-command"
item_state = "suit-command"
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/gun/energy)
armor = list(melee = 40, bullet = 30, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50)
slowdown = 2
radiation_protection = 0.25
/obj/item/clothing/suit/space/command/chief_engineer
name = "Chief engineer suit"
desc = "Much like its generic counterpart, the spacesuit is painted a black and dark yellow color to designate its department of origin."
icon_state = "suit-ce"
item_state = "syndicate-black"
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/satchel,/obj/item/device/t_scanner,/obj/item/weapon/gun/energy)
radiation_protection = 0.50
/obj/item/clothing/suit/space/command/chief_medical_officer
name = "Chief medical officer suit"
desc = "Much like its generic counterpart, the spacesuit is marked with the red cross to designate its department of origin."
icon_state = "suit-cmo"
item_state = "syndicate-black"
radiation_protection = 0.25
/obj/item/clothing/suit/space/rig
name = "rig suit"
name = "Rig suit"
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
icon_state = "rig"
item_state = "rig_suit"
@@ -508,12 +534,12 @@
/*/obj/item/clothing/suit/space/syndicate/orange
name = "Orange Space Suit"
icon_state = "syndicate-orange"
item_state = "syndicate-orange"*/ //Best used as an engineering suit, nyoro~n ;3
item_state = "syndicate-orange"*/ //Best used as an engineering suit, nyoro~n ;3 As is the other stuff below
/obj/item/clothing/suit/space/syndicate/blue
/*/obj/item/clothing/suit/space/syndicate/blue
name = "Blue Space Suit"
icon_state = "syndicate-blue"
item_state = "syndicate-blue"
item_state = "syndicate-blue"*/
/obj/item/clothing/suit/space/syndicate/black
name = "Black Space Suit"
@@ -530,10 +556,10 @@
icon_state = "syndicate-black-blue"
item_state = "syndicate-black-blue"
/obj/item/clothing/suit/space/syndicate/black/med
/*/obj/item/clothing/suit/space/syndicate/black/med
name = "Green Space Suit"
icon_state = "syndicate-black-med"
item_state = "syndicate-black"
item_state = "syndicate-black"*/
/obj/item/clothing/suit/space/syndicate/black/orange
name = "Black and Orange Space Suit"
@@ -545,10 +571,10 @@
icon_state = "syndicate-black-red"
item_state = "syndicate-black-red"
/obj/item/clothing/suit/space/syndicate/black/engie
/*/obj/item/clothing/suit/space/syndicate/black/engie
name = "Black Engineering Space Suit"
icon_state = "syndicate-black-engie"
item_state = "syndicate-black"
item_state = "syndicate-black"*/
/obj/item/clothing/suit/syndicatefake
name = "red space suit replica"
+1 -1
View File
@@ -151,7 +151,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
opacity = 1
doortype = 13
/obj/machinery/door/airlock/glass_command
/obj/machinery/door/airlock/glass/glass_command
name = "Maintenance Hatch"
icon = 'Doorcomglass.dmi'
opacity = 0
+1 -1
View File
@@ -46,7 +46,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
// 1 = hacked
var/announcementConsole = 0
// 0 = This console cannot be used to send department announcements
// 1 = This console can send department announcements
// 1 = This console can send department announcementsf
var/open = 0 // 1 if open
var/announceAuth = 0 //Will be set to 1 when you authenticate yourself for announcements
var/msgVerified = "" //Will contain the name of the person who varified it
+244 -61
View File
@@ -7,7 +7,7 @@
name = "Suit Storage Unit"
desc = "An industrial U-Stor-It Storage unit designed to accomodate all kinds of space suits. Its on-board equipment also allows the user to decontaminate the contents through a UV-ray purging cycle. There's a warning label dangling from the control pad, reading \"STRICTLY NO BIOLOGICALS IN THE CONFINES OF THE UNIT\"."
icon = 'suitstorage.dmi'
icon_state = "sutstorage110000100" //order is: [has helmet][has suit][has human][is open][is locked][is UV cycling][is powered][is dirty/broken] [is superUVcycling]
icon_state = "suitstorage000000100" //order is: [has helmet][has suit][has human][is open][is locked][is UV cycling][is powered][is dirty/broken] [is superUVcycling]
anchored = 1
density = 1
var/mob/living/carbon/human/OCCUPANT = null
@@ -24,11 +24,37 @@
var/safetieson = 1
var/cycletime_left = 0
/obj/machinery/suit_storage_unit/Engineering_unit //creating this just for playtestin' --Agouri
//The units themselves/////////////////
/obj/machinery/suit_storage_unit/standard_unit
SUIT = new /obj/item/clothing/suit/space/
HELMET = new /obj/item/clothing/head/helmet/space/
MASK = new /obj/item/clothing/mask/breath
/obj/machinery/suit_storage_unit/engineering_unit
SUIT = new /obj/item/clothing/suit/space/engineering
HELMET = new /obj/item/clothing/head/helmet/space/engineering
MASK = new /obj/item/clothing/mask/breath
/obj/machinery/suit_storage_unit/chief_engineer_unit
SUIT = new /obj/item/clothing/suit/space/command/chief_engineer
HELMET = new /obj/item/clothing/head/helmet/space/command/chief_engineer
MASK = new /obj/item/clothing/mask/breath
/obj/machinery/suit_storage_unit/chief_medical_officer_unit
SUIT = new /obj/item/clothing/suit/space/command/chief_medical_officer
HELMET = new /obj/item/clothing/head/helmet/space/command/chief_medical_officer
MASK = new /obj/item/clothing/mask/breath
/obj/machinery/suit_storage_unit/command_unit
SUIT = new /obj/item/clothing/suit/space/command
HELMET = new /obj/item/clothing/head/helmet/space/command
MASK = new /obj/item/clothing/mask/breath
/obj/machinery/suit_storage_unit/New()
src.update_icon()
/obj/machinery/suit_storage_unit/update_icon()
var/hashelmet = 0
var/hassuit = 0
@@ -71,66 +97,64 @@
return
/obj/machinery/suit_storage_unit/attack_hand(mob/user as mob)
var/dat
if(..())
return
if(stat & NOPOWER)
return
if(src.panelopen) //The maintenance panel is open. Time for some shady stuff
var/dat = "<HEAD><TITLE>Suit storage unit: Maintenance panel</TITLE></HEAD>"
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.<BR><BR>"
dat+= text("<font color ='black'>A small dial with a \"ë\" symbol embroidded on it. It's pointing towards a gauge that reads []</font>.<BR> <font color='blue'><A href='?src=\ref[];toggleUV=1'> Turn towards []</A>",(src.issuperUV ? "15nm" : "185nm"),src,(src.issuperUV ? "185nm" : "15nm") )
dat+= text("<font color ='black'>A small dial with a \"ë\" symbol embroidded on it. It's pointing towards a gauge that reads []</font>.<BR> <font color='blue'><A href='?src=\ref[];toggleUV=1'> Turn towards []</A><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("<HR><BR><A href='?src=\ref[];mach_close=ssu_m_panel'>Close panel</A>", user)
user << browse(dat, "window=ssu_m_panel;size=400x500")
onclose(user, "ssu_m_panel")
return
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.
var/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>"
dat+= "<font colr='black'><B>Cycle end in: [src.cycletimeleft(src.cycletime_left)] seconds. </font></B>"
user << browse(dat, "window=ssu_cycling_panel;size=400x500")
onclose(user, "ssu_cycling_panel")
sleep(10)
src.updateUsrDialog()
if(src.cycletime_left == 0)
src.isUV = 0 //Let's end the cycle here too just for good measure.
return
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>"
//user << browse(dat, "window=ssu_cycling_panel;size=400x500")
//onclose(user, "ssu_cycling_panel")
else
if(!src.isbroken)
var/dat = "<HEAD><TITLE>Suit storage unit</TITLE></HEAD>"
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><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("<A href='?src=ref[];dispense_helmet=1'>Dispense helmet</A><BR>",src)
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 exosuit detected.") )
if(SUIT && src.isopen)
dat+=text("<A href='?src=ref[];dispense_suit=1'>Dispense suit</A><BR>",src)
dat+=text("<A href='?src=\ref[];dispense_suit=1'>Dispense suit</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("<A href='?src=ref[];dispense_mask=1'>Dispense mask</A><BR>",src)
dat+=text("<A href='?src=\ref[];dispense_mask=1'>Dispense mask</A><BR>",src)
if(src.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[];eject_guy=1'>Eject extra load</A>"
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+="<BR>"
dat+="<HR>"
else
dat+= text(" - <A href='?src=ref[];toggle_lock=1'><font color ='orange'>*[] Unit*</font></A><HR>",src,(src.islocked ? "Unlock" : "Lock") )
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[];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")
onclose(user, "Suit Storage Unit")
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")
//onclose(user, "Suit Storage Unit")
else //Ohhhh shit it's dirty or broken! Let's inform the guy.
var/dat = "<HEAD><TITLE>Suit storage unit</TITLE></HEAD>"
dat+= "<HEAD><TITLE>Suit storage unit</TITLE></HEAD>"
dat+= "<font color='maroon'><B>Unit chamber is too contaminated to continue usage. Please call for a qualified individual to perform maintenance.</font></B><BR><BR>"
dat+= text("<HR><A href='?src=\ref[];mach_close=suit_storage_unit'>Close control panel</A>", user)
user << browse(dat, "window=suit_storage_unit;size=400x500")
onclose(user, "suit_storage_unit")
return
return
//user << browse(dat, "window=suit_storage_unit;size=400x500")
//onclose(user, "suit_storage_unit")
user << browse(dat, "window=suit_storage_unit;size=400x500")
onclose(user, "suit_storage_unit")
return
/obj/machinery/suit_storage_unit/Topic(href, href_list) //I fucking HATE this proc
if(..())
@@ -170,7 +194,7 @@
src.updateUsrDialog()
src.update_icon()
if (href_list["eject_guy"])
src.eject_occupant()
src.eject_occupant(usr)
src.updateUsrDialog()
src.update_icon()
/*if (href_list["refresh"])
@@ -181,6 +205,8 @@
/obj/machinery/suit_storage_unit/proc/toggleUV(mob/user as mob)
var/protected = 0
var/mob/living/carbon/human/H = user
if(!src.panelopen)
return
if(istype(H)) //Let's check if the guy's wearing electrically insulated gloves
if(H.gloves)
@@ -189,6 +215,7 @@
protected = 1
if(!protected)
playsound(src.loc, "sparks", 75, 1, -1)
user << "<font color='red'>You try to touch the controls but you get zapped. There must be a short circuit somewhere.</font>"
return
else //welp, the guy is protected, we can continue
@@ -203,6 +230,8 @@
/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
return
if(istype(H)) //Let's check if the guy's wearing electrically insulated gloves
if(H.gloves)
@@ -211,6 +240,7 @@
protected = 1
if(!protected)
playsound(src.loc, "sparks", 75, 1, -1)
user << "<font color='red'>You try to touch the controls but you get zapped. There must be a short circuit somewhere.</font>"
return
else
@@ -221,7 +251,7 @@
if(!src.HELMET)
return //Do I even need this sanity check? Nyoro~n
else
src.HELMET = new(src.loc)
src.HELMET.loc = src.loc
src.HELMET = null
return
@@ -229,7 +259,7 @@
if(!src.SUIT)
return
else
src.SUIT = new(src.loc)
src.SUIT.loc = src.loc
src.SUIT = null
return
@@ -237,50 +267,98 @@
if(!src.MASK)
return
else
src.MASK = new(src.loc)
src.MASK.loc = src.loc
src.MASK = null
return
/obj/machinery/suit_storage_unit/proc/dump_everything()
src.islocked = 0 //locks go free
if(src.SUIT)
src.SUIT = new(src.loc)
src.SUIT.loc = src.loc
src.SUIT = null
if(src.HELMET)
src.HELMET = new(src.loc)
src.HELMET.loc = src.loc
src.HELMET = null
if(src.MASK)
src.MASK = new(src.loc)
src.MASK.loc = src.loc
src.MASK = null
if(src.OCCUPANT)
src.eject_occupant()
src.eject_occupant(usr)
return
/obj/machinery/suit_storage_unit/proc/toggle_open(mob/user as mob)
if(src.islocked && src.isUV)
if(src.islocked || src.isUV)
user << "<font color='red'>Unable to open unit.</font>"
return
if(src.OCCUPANT)
src.eject_occupant(user)
return // eject_occupant opens the door, so we need to return
src.isopen = !src.isopen
user << "Test. It opened/closed."
return
/obj/machinery/suit_storage_unit/proc/toggle_lock(mob/user as mob)
if(src.OCCUPANT && src.safetieson)
user << "<font color='red>The Unit's safety protocol disallow locking when a biological form is detected inside its compartment.</font>"
return
if(src.isopen)
return
src.islocked = !src.islocked
user << "Test. You locked/unlocked it"
return
/obj/machinery/suit_storage_unit/proc/start_UV(mob/user as mob)
if(src.isUV) //I'm bored of all these sanity checks
if(src.isUV || src.isopen) //I'm bored of all these sanity checks
return
if(src.OCCUPANT && src.safetieson)
user << "<font color='red'><B>WARNING:</B> Biological form detected in the confines of the Unit's storage. Cannot initiate cycle.</font>"
user << "<font color='red'><B>WARNING:</B> Biological entity detected in the confines of the Unit's storage. Cannot initiate cycle.</font>"
return
if(!src.HELMET && !src.MASK && !src.SUIT && !src.OCCUPANT ) //shit's empty yo
user << "<font color='red'>Unit storage bays empty. Nothing to disinfect -- Aborting.</font>"
return
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()
spawn(200) //Let's clean dat shit after 20 secs
var/i //our counter
for(i=0,i<4,i++)
sleep(50)
if(src.OCCUPANT)
if(src.issuperUV)
var/burndamage = rand(28,35)
OCCUPANT.take_organ_damage(0,burndamage)
OCCUPANT.emote("scream")
else
var/burndamage = rand(6,10)
OCCUPANT.take_organ_damage(0,burndamage)
OCCUPANT.emote("scream")
if(i==3) //End of the cycle
if(!src.issuperUV)
if(src.HELMET)
HELMET.clean_blood()
if(src.SUIT)
SUIT.clean_blood()
if(src.MASK)
MASK.clean_blood()
else //It was supercycling, destroy everything
if(src.HELMET)
src.HELMET = null
if(src.SUIT)
src.SUIT = null
if(src.MASK)
src.MASK = null
for (var/mob/V in viewers(user))
V.show_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.isUV = 0 //Cycle ends
src.update_icon()
src.updateUsrDialog()
return
/* spawn(200) //Let's clean dat shit after 20 secs //Eh, this doesn't work
if(src.HELMET)
HELMET.clean_blood()
if(src.SUIT)
@@ -288,21 +366,22 @@
if(src.MASK)
MASK.clean_blood()
src.isUV = 0 //Cycle ends
user << "Test. Everything inside clean, cycle stopped."
src.update_icon()
src.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)
OCCUPANT.take_organ_damage(0,30)
user << "Test. You gave him 30 damage"
OCCUPANT.take_organ_damage(0,40)
user << "Test. You gave him 40 damage"
else
OCCUPANT.take_organ_damage(0,8)
user << "Test. You gave him 8 damage"
return
return*/
/obj/machinery/suit_storage_unit/proc/cycletimeleft(var/cycletime_left_local)
/obj/machinery/suit_storage_unit/proc/cycletimeleft()
if(src.cycletime_left >= 1)
src.cycletime_left--
return src.cycletime_left
@@ -313,15 +392,34 @@
if (!src.OCCUPANT)
return
for(var/obj/O in src)
O.loc = src.loc
// for(var/obj/O in src)
// O.loc = src.loc
if (src.OCCUPANT.client)
OCCUPANT << "<font color='blue'>The machine kicks you out!</font>"
if(user != OCCUPANT)
OCCUPANT << "<font color='blue'>The machine kicks you out!</font>"
if(user.loc != src.loc)
OCCUPANT << "<font color='blue'>You leave the not-so-cosy confines of the SSU.</font>"
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()
return
/obj/machinery/suit_storage_unit/verb/get_out()
set name = "Eject Suit Storage Unit"
set category = "Object"
set src in oview(1)
if (usr.stat != 0)
return
src.eject_occupant(usr)
add_fingerprint(usr)
src.updateUsrDialog()
src.update_icon()
return
@@ -334,11 +432,12 @@
return
if (!src.isopen)
usr << "<font color='red'>The unit's doors are shut.</font>"
return
if ( (src.OCCUPANT) || (src.HELMET) || (src.SUIT) )
usr << "<font color='red'>It's too cluttered inside for you to fit in!</font>"
return
for (var/mob/V in viewers(usr))
V.show_message("[usr] starts squeezing into the suit storage unit!.", 3)
V.show_message("[usr] starts squeezing into the suit storage unit!", 3)
if(do_after(usr, 10))
usr.pulling = null
usr.client.perspective = EYE_PERSPECTIVE
@@ -349,16 +448,99 @@
src.isopen = 0 //Close the thing after the guy gets inside
src.update_icon()
for(var/obj/O in src)
del(O)
// for(var/obj/O in src)
// del(O)
src.add_fingerprint(usr)
src.updateUsrDialog()
return
else
src.OCCUPANT = null //Testing this as a backup sanity test
return
/obj/machinery/suit_storage_unit/attackby(obj/item/weapon/W as obj, mob/user as mob)
//todo stuff
/obj/machinery/suit_storage_unit/attackby(obj/item/I as obj, mob/user as mob)
if(!src.ispowered)
return
if(istype(I, /obj/item/weapon/screwdriver))
src.panelopen = !src.panelopen
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
user << text("<font color='blue'>You [] the Unit's maintenance panel.</font>",(src.panelopen ? "open up" : "close") )
src.updateUsrDialog()
return
if ( istype(I, /obj/item/weapon/grab) )
var/obj/item/weapon/grab/G = I
if( !(ismob(G.affecting)) )
return
if (!src.isopen)
usr << "<font color='red'>The unit's doors are shut.</font>"
return
if ( (src.OCCUPANT) || (src.HELMET) || (src.SUIT) ) //Unit needs to be absolutely empty
user << "<font color='red'>The Unit's storage area is too cluttered.</font>"
return
for (var/mob/V in viewers(user))
V.show_message("[user] starts putting [G.affecting.name] into the Suit Storage Unit.", 3)
if(do_after(user, 20))
if(!G || !G.affecting) return //derpcheck
var/mob/M = G.affecting
if (M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
M.loc = src
src.OCCUPANT = M
src.isopen = 0 //close ittt
//for(var/obj/O in src)
// O.loc = src.loc
src.add_fingerprint(user)
del(G)
src.updateUsrDialog()
src.update_icon()
return
return
if( istype(I,/obj/item/clothing/suit/space) )
if(!src.isopen)
return
var/obj/item/clothing/suit/space/S = I
if(src.SUIT)
user << "<font color='blue'>The unit already contains a suit.</font>"
return
user << "You load the [S.name] into the storage compartment."
user.drop_item()
S.loc = src
src.SUIT = S
src.update_icon()
src.updateUsrDialog()
return
if( istype(I,/obj/item/clothing/head/helmet) )
if(!src.isopen)
return
var/obj/item/clothing/head/helmet/H = I
if(src.HELMET)
user << "<font color='blue'>The unit already contains a helmet.</font>"
return
user << "You load the [H.name] into the storage compartment."
user.drop_item()
H.loc = src
src.HELMET = H
src.update_icon()
src.updateUsrDialog()
return
if( istype(I,/obj/item/clothing/mask) )
if(!src.isopen)
return
var/obj/item/clothing/mask/M = I
if(src.MASK)
user << "<font color='blue'>The unit already contains a mask.</font>"
return
user << "You load the [M.name] into the storage compartment."
user.drop_item()
M.loc = src
src.MASK = M
src.update_icon()
src.updateUsrDialog()
return
src.update_icon()
src.updateUsrDialog()
return
/obj/machinery/suit_storage_unit/attack_ai(mob/user as mob)
@@ -369,3 +551,4 @@
return
//////////////////////////////REMINDER: Make it lock once you place some fucker inside.
-2
View File
@@ -4,8 +4,6 @@
new /obj/item/clothing/suit/bio_suit/janitor(src)
new /obj/item/clothing/head/bio_hood/janitor(src)
new /obj/item/clothing/under/rank/janitor(src)
new /obj/item/clothing/under/rank/janitor(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/device/flashlight(src)
new /obj/item/clothing/shoes/galoshes(src)
+1 -1
View File
@@ -28,7 +28,7 @@ obj/door_assembly
name = "Command Airlock Assembly"
icon_state = "door_as_com1"
glass_base_icon_state = "door_as_gcom"
glass_type = /obj/machinery/door/airlock/glass_command
glass_type = /obj/machinery/door/airlock/glass/glass_command
airlock_type = /obj/machinery/door/airlock/command
anchored = 1
density = 1
@@ -104,6 +104,23 @@ obj/item/weapon/matchbox.attackby(obj/item/weapon/match/W as obj, mob/user as mo
O.show_message(text("\red [] lights their [] with their []. How poor can you get?", user, src.name, W), 1)
spawn() //start fires while it's lit
src.process()*/
else if (istype(W, /obj/item/weapon/trashbag))
var/obj/item/weapon/trashbag/S = W
if (S.mode == 1)
for (var/obj/item/clothing/mask/cigarette/C in locate(src.x,src.y,src.z))
if (S.contents.len < S.capacity)
S.contents += C;
else
user << "\blue The bag is full."
break
user << "\blue You pick up all trash."
else
if (S.contents.len < S.capacity)
S.contents += src;
else
user << "\blue The bag is full."
S.update_icon()
return
/obj/item/clothing/mask/cigarette/proc/light(var/flavor_text = "[usr] lights the [name].")
if(!src.lit)
@@ -218,6 +235,26 @@ obj/item/weapon/matchbox.attackby(obj/item/weapon/match/W as obj, mob/user as mo
src.update_icon()
return
/obj/item/weapon/cigpacket/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/weapon/trashbag))
var/obj/item/weapon/trashbag/S = W
if (S.mode == 1)
for (var/obj/item/weapon/cigpacket/CP in locate(src.x,src.y,src.z))
if (S.contents.len < S.capacity)
S.contents += CP;
else
user << "\blue The bag is full."
break
user << "\blue You pick up all trash."
else
if (S.contents.len < S.capacity)
S.contents += src;
else
user << "\blue The bag is full."
S.update_icon()
return
/////////
//ZIPPO//
/////////
@@ -439,6 +439,27 @@
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/ammo_casing/attackby(obj/item/weapon/W as obj, mob/user as mob) //Adding this to the trash list. Nyoro~n --Agouri
..()
if (istype(W, /obj/item/weapon/trashbag))
var/obj/item/weapon/trashbag/S = W
if (S.mode == 1)
for (var/obj/item/ammo_casing/AC in locate(src.x,src.y,src.z))
if (S.contents.len < S.capacity)
S.contents += AC;
else
user << "\blue The bag is full."
break
user << "\blue You pick up all trash."
else
if (S.contents.len < S.capacity)
S.contents += src;
else
user << "\blue The bag is full."
S.update_icon()
return
/obj/item/ammo_magazine
name = "ammo box (.357)"
desc = "A box of .357 ammo"
+16
View File
@@ -45,6 +45,22 @@ Stuff which is in development and not yet visible to players or just code relate
(is. code improvements for expandability, etc.) should not be listed here. They
should be listed in the changelog upon commit tho. Thanks. -->
<b><font color='blue'>29 July 2011. - Day of Forum revival!</font color><b>
<ul>
<li><b>Agouri updated</b>
<ul>
<li>I was always bothered by how unprofessional it was of Nanotransen (in before >Nanotransen >professionalism) to just lay expensive spacesuits in racks and just let them be. Well, no more. Introducing...</li>
<li>Suit Storage Units. Rumored to actually be repurposed space radiators, these wondrous machines will store any kind of spacesuit in a clean and sterile environment.</li>
<li>The user can interact with the unit in various ways. You can start a UV cauterisation cycle to disinfect its contents, effectively sterilising and cleaning eveyrthing from the suits/helmets stored inside.</li>
<li>A sneaky yordle can also hide in it, if he so desires, or hack it, or lock it or do a plethora of shady stuff with it. Beware, though, there's plenty of dangerous things you can do with it, both to you and your target.</li>
<li>The Unit's control panel can be accessed by screwdriving it. That's all I'm willing to say, I'd like to let the players find out what each hack option does and doesn't. Will add more stuff later.</li>
<li>Added Command Space suit, Chief Engineer space suit and Chief Medical Officer spacesuit (In a new space that you'll probably notice by yourself) to make it easier for you to look like a special snowflake.</li>
<li>EVA and CMO office modified to accomodate the new suits and SSUs. Look, I'm not a competent mapper, okay? Fuck you too. A mapper is strongly recommended to rearrange my half assed shit.</li>
<li>Soda cans, cigarette packets, cigarettes and cigars as well as bullet casings are now considered trash and can be picked up by the trashbag. Now you can annoy the janitor even more!</li>
<li>Sprite credit goes to Alex Jones, his portfolio can be found here: <a href="http://bspbox.com/">http://bspbox.com</a>. Thanks a lot, bro.</li>
<li>With the recent forum fuss and all that, I've got a thread to specifically contain rants and bug reports about this update. <a href="http://tgstation13.servehttp.com/phpBB3/viewtopic.php?f=3&t=5569&p=45549&sid=a4a96f5b0e896cd3e3f7c1db73f09f1b#p45549">Click me</a></li>
</ul>
</ul>
<b><font color='blue'>4 July - 28 July 2011.</font color><b>
<ul>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because it is too large Load Diff
+3 -1
View File
@@ -133,6 +133,7 @@
#define FILE_DIR "icons/turf"
#define FILE_DIR "interface"
#define FILE_DIR "maps"
#define FILE_DIR "maps/backup"
#define FILE_DIR "sound"
#define FILE_DIR "sound/ambience"
#define FILE_DIR "sound/announcer"
@@ -396,6 +397,7 @@
#include "code\game\machinery\Sleeper.dm"
#include "code\game\machinery\spaceheater.dm"
#include "code\game\machinery\status_display.dm"
#include "code\game\machinery\suit_storage_unit.dm"
#include "code\game\machinery\teleporter.dm"
#include "code\game\machinery\turrets.dm"
#include "code\game\machinery\vending.dm"
@@ -860,6 +862,6 @@
#include "code\WorkInProgress\recycling\scrap.dm"
#include "code\WorkInProgress\recycling\sortingmachinery.dm"
#include "interface\skin.dmf"
#include "maps\tgstation.2.0.7.dmm"
#include "maps\tgstation.2.0.8.dmm"
// END_INCLUDE