Pimped out the response team. No jobs have stupid stuff spawn in their hands, it now spawns on their person, be it on their ear (pens if they cannot find a target) of in their pockets. MAde several pre-set-up things for the response team, including portable surgery equipment and a movable optable. Made autolathe items spawn on top of it. Added Death alarms, and made explosive implants work properly. Girders are now removed when a floor is made/RCD'd into existence. Internals can now be set even if it is in suit storage or on the belt.

This commit is contained in:
SkyMarshal
2012-01-20 12:53:29 -07:00
parent df354af1f3
commit 1bf1d5db1f
28 changed files with 375 additions and 59 deletions
@@ -10,6 +10,7 @@
activate()
implanted(source as mob)
get_data()
hear(message, source as mob)
trigger(emote, source as mob)
@@ -27,6 +28,9 @@
get_data()
return "No information available"
hear(message, source as mob)
return
/obj/item/weapon/implant/uplink
@@ -236,7 +240,11 @@ the implant may become unstable and either pre-maturely inject the subject or si
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
hear_talk(M as mob, var/msg)
hear_talk(mob/M as mob, msg)
hear(msg)
return
hear(var/msg)
if(findtext(msg,phrase))
if(istype(loc, /mob/))
var/mob/T = loc
@@ -250,4 +258,41 @@ the implant may become unstable and either pre-maturely inject the subject or si
implanted(mob/source as mob)
phrase = input("Choose activation phrase:") as text
usr.mind.store_memory("Explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate.", 0, 0)
usr << "The implanted explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate."
usr << "The implanted explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate."
/obj/item/weapon/implant/death_alarm
name = "death alarm"
desc = "Danger Will Robinson!"
var/mobname = "Will Robinson"
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> NanoTrasen \"Profit Margin\" Class Employee Lifesign Sensor<BR>
<b>Life:</b> Activates upon death.<BR>
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a compact radio signaler that triggers when the host's lifesigns cease.<BR>
<b>Special Features:</b> Alerts crew to crewmember death.<BR>
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
process()
var/mob/M = src.loc
if(M.stat == 2)
var/turf/t = get_turf(M)
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null)
var/mob/living/carbon/human/G = new /mob/living/carbon/human(null)
G.real_name = "[mobname]'s death alarm"
G.name = "[mobname]'s death alarm"
G.universal_speak = 1
a.talk_into(G,"[mobname] has died in [t.loc.name]!")
del(a)
del(G)
processing_objects.Remove(src)
implanted(mob/source as mob)
mobname = source.real_name
processing_objects.Add(src)
@@ -114,4 +114,15 @@
New()
src.imp = new /obj/item/weapon/implant/loyalty( src )
..()
return
/obj/item/weapon/implantcase/death_alarm
name = "Glass Case- 'Tracking'"
desc = "A case containing a tracking implant."
icon = 'items.dmi'
icon_state = "implantcase-b"
New()
src.imp = new /obj/item/weapon/implant/death_alarm( src )
..()
return
@@ -663,9 +663,6 @@ CLIPBOARDS
else
return
src.update()
spawn(0)
attack_self(user)
return
return
/obj/item/weapon/clipboard/proc/update()
@@ -692,6 +689,15 @@ CLIPBOARDS
src.add_fingerprint(usr)
return //
/obj/item/weapon/clipboard/New()
..()
for(var/i = 1, i <= 3, i++)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
P.loc = src
src.pen = new /obj/item/weapon/pen(src)
src.update()
return
// PHOTOGRAPH
+17
View File
@@ -40,3 +40,20 @@
M.eye_blurry += 3
return
/obj/item/weapon/storage/briefcase/surgery
icon_state = "medbriefcase"
name = "surgery equipment bag"
desc = "Heavy and full of sharp things."
New()
..()
contents = list()
sleep(1)
new /obj/item/weapon/circular_saw(src)
new /obj/item/weapon/hemostat(src)
new /obj/item/weapon/scalpel(src)
new /obj/item/weapon/retractor(src)
new /obj/item/weapon/cautery(src)
new /obj/item/weapon/surgical_tool/bonegel(src)
new /obj/item/weapon/surgical_tool/bonesetter(src)
+14 -7
View File
@@ -259,9 +259,22 @@
new /obj/item/weapon/tank/emergency_oxygen/engi( src )
return
/obj/item/weapon/storage/box/medic/New()
..()
contents = list()
sleep(1)
new /obj/item/clothing/mask/medical( src )
new /obj/item/weapon/tank/emergency_oxygen/anesthetic( src )
new /obj/item/weapon/tank/emergency_oxygen/anesthetic( src )
new /obj/item/weapon/tank/emergency_oxygen/anesthetic( src )
new /obj/item/weapon/tank/emergency_oxygen/anesthetic( src )
new /obj/item/weapon/tank/emergency_oxygen/anesthetic( src )
new /obj/item/weapon/tank/emergency_oxygen/anesthetic( src )
return
/obj/item/weapon/storage/box/syndicate/New()
..()
switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1)))
switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "freedom" = 1)))
if ("bloodyspai")
new /obj/item/clothing/under/chameleon(src)
new /obj/item/clothing/mask/gas/voice(src)
@@ -290,12 +303,6 @@
new /obj/item/weapon/plastique(src)
return
if ("murder")
new /obj/item/weapon/melee/energy/sword(src)
new /obj/item/weapon/cloaking_device(src)
new /obj/item/weapon/card/emag(src)
return
if("freedom")
var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src)
O.imp = new /obj/item/weapon/implant/freedom(O)
+16
View File
@@ -33,3 +33,19 @@
icon_state = "emergency_double"
name = "Double Emergency Oxygen Tank"
volume = 10
/obj/item/weapon/tank/emergency_oxygen/anesthetic
icon_state = "emergency_sleep"
name = "emergency sleeping gas tank"
desc = "Contains an Oxygen/N2O mix."
distribute_pressure = ONE_ATMOSPHERE
New()
..()
src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD
var/datum/gas/sleeping_agent/trace_gas = new()
trace_gas.moles = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD
src.air_contents.trace_gases += trace_gas
return