Merge pull request #1220 from Erthilo/master

ERT updates, megaphone, AI holopad fixes, cleanbot limiter
This commit is contained in:
SkyMarshal
2012-06-01 14:55:41 -07:00
18 changed files with 314 additions and 117 deletions
+1 -1
View File
@@ -117,7 +117,7 @@
for(var/i = 1, i <=2, i++)
new /obj/item/weapon/storage/box/ert(src)
new /obj/item/weapon/storage/box/medic(src)
new /obj/item/weapon/storage/belt/medical(src)
new /obj/item/device/healthanalyzer(src)
return
/obj/item/weapon/storage/backpack/security
+7
View File
@@ -2061,6 +2061,13 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove
desc = "An appendix which appears to be inflamed."
icon_state = "appendixinflamed"
/obj/item/weapon/megaphone
name = "megaphone"
desc = "A device used to project your voice. Loudly."
icon = 'items.dmi'
icon_state = "megaphone"
var/cooldown = 0
/obj/item/weapon/flavor
name = "bland flavoring packet"
desc = "A sachet of flavoring, designed to be used with \"LiquidFood\" rations. The flavor is indeterminable."
+7
View File
@@ -355,6 +355,13 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
/obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob)
..()
if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm))
var/cleanbots = 0
for(var/obj/machinery/bot/cleanbot in world)
cleanbots++
if(cleanbots >= 6) //For some reason it starts at 4, so max limit is actually 2.
user << "\red The station frequencies can't handle anymore cleanbots!" //TOO MANY GODDAMN CLEANBOTS
cleanbots = 0
return
var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot
A.loc = get_turf(src.loc)
A.name = src.created_name
+1
View File
@@ -44,6 +44,7 @@ Possible to do for anyone motivated enough:
if(!(stat & NOPOWER)&&user.eyeobj.loc==src.loc)//If the projector has power and client eye is on it.
if(!hologram)//If there is not already a hologram.
create_holo(user)//Create one.
user.current = src
for(var/mob/M in viewers())
M.show_message("A holographic image of [user] flicks to life right before your eyes!",1)
else
+89
View File
@@ -0,0 +1,89 @@
/obj/structure/closet/secure_closet/ert/commander
name = "\improper ERT commander locker"
req_access = list(access_security)
icon_state = "capsecure1"
icon_closed = "capsecure"
icon_locked = "capsecure1"
icon_opened = "capsecureopen"
icon_broken = "capsecurebroken"
icon_off = "capsecureoff"
New()
..()
sleep(2)
new /obj/item/clothing/head/helmet/space/ert/commander(src)
new /obj/item/clothing/suit/space/ert/commander(src)
new /obj/item/weapon/plastique(src)
new /obj/item/weapon/storage/belt/security/full(src)
new /obj/item/weapon/gun/energy/ionrifle(src)
new /obj/item/weapon/gun/energy/gun/nuclear(src)
new /obj/item/clothing/glasses/thermal(src)
new /obj/item/weapon/lighter/zippo(src)
new /obj/item/weapon/pinpointer(src)
return
/obj/structure/closet/secure_closet/ert/security
name = "\improper ERT security locker"
req_access = list(access_security)
icon_state = "sec1"
icon_closed = "sec"
icon_locked = "sec1"
icon_opened = "secopen"
icon_broken = "secbroken"
icon_off = "secoff"
New()
..()
sleep(2)
new /obj/item/clothing/head/helmet/space/ert/security(src)
new /obj/item/clothing/suit/space/ert/security(src)
new /obj/item/weapon/plastique(src)
new /obj/item/weapon/storage/belt/security/full(src)
new /obj/item/weapon/gun/energy/ionrifle(src)
new /obj/item/weapon/gun/energy/gun/nuclear(src)
new /obj/item/clothing/glasses/thermal(src)
return
/obj/structure/closet/secure_closet/ert/engineer
name = "\improper ERT engineer locker"
req_access = list(access_engine)
icon_state = "secureeng1"
icon_closed = "secureeng"
icon_locked = "secureeng1"
icon_opened = "secureengopen"
icon_broken = "secureengbroken"
icon_off = "secureengoff"
New()
..()
sleep(2)
new /obj/item/clothing/head/helmet/space/ert/engineer(src)
new /obj/item/clothing/suit/space/ert/engineer(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/weapon/storage/belt/utility/full(src)
new /obj/item/weapon/storage/backpack/industrial/full(src)
new /obj/item/device/t_scanner(src)
new /obj/item/clothing/glasses/meson(src)
return
/obj/structure/closet/secure_closet/ert/medical
name = "\improper ERT medical locker"
req_access = list(access_medical)
icon_state = "securemed1"
icon_closed = "securemed"
icon_locked = "securemed1"
icon_opened = "securemedopen"
icon_broken = "securemedbroken"
icon_off = "securemedoff"
New()
..()
sleep(2)
new /obj/item/clothing/head/helmet/space/ert/medical(src)
new /obj/item/clothing/suit/space/ert/medical(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/weapon/storage/backpack/medic/full(src)
new /obj/item/weapon/storage/belt/medical(src)
new /obj/item/clothing/glasses/hud/health(src)
return
+17
View File
@@ -564,3 +564,20 @@
for(var/mob/M in viewers(5, src))
M << "\red \the [src] burns up."
del(src)
/obj/item/weapon/megaphone/attack_self(mob/user as mob)
if(!ishuman(user))
usr << "\red You don't know how to use this!"
return
if(cooldown)
usr << "\red \The [src] needs to recharge!"
return
var/message = copytext(sanitize(input(user, "Shout a message?", "Megaphone", null) as text),1,MAX_MESSAGE_LEN)
if(message && !cooldown)
if ((src.loc == user && usr.stat == 0))
for(var/mob/O in (viewers(user)))
O.show_message("<B>[user]</B> broadcasts, <FONT size=3>\"[message]\"</FONT>",2) // 2 stands for hearable message
cooldown = 1
spawn(100)
cooldown = 0
return
+69
View File
@@ -0,0 +1,69 @@
/obj/item/clothing/head/helmet/space/ert
name = "emergency response team helmet"
desc = "A helmet worn by members of the NanoTrasen Emergency Response Team. Armoured and space ready."
icon_state = "ert_commander"
item_state = "helm-command"
armor = list(melee = 50, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 60)
/obj/item/clothing/suit/space/ert
name = "emergency response team suit"
desc = "A suit worn by members of the NanoTrasen Emergency Response Team. Armoured, space ready, and fire resistant."
icon_state = "ert_commander"
item_state = "suit-command"
w_class = 3
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen)
slowdown = 1
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 60)
protective_temperature = 10000
allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/crowbar, \
/obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/wirecutters, /obj/item/weapon/wrench, /obj/item/device/multitool, \
/obj/item/device/radio, /obj/item/device/analyzer, /obj/item/weapon/gun/energy/laser, /obj/item/weapon/gun/energy/pulse_rifle, \
/obj/item/weapon/gun/energy/taser, /obj/item/weapon/melee/baton, /obj/item/weapon/gun/energy/gun)
//Commander
/obj/item/clothing/head/helmet/space/ert/commander
name = "emergency response team commander helmet"
desc = "A helmet worn by the commander of a NanoTrasen Emergency Response Team. Has blue highlights. Armoured and space ready."
icon_state = "ert_commander"
item_state = "helm-command"
/obj/item/clothing/suit/space/ert/commander
name = "emergency response team commander suit"
desc = "A suit worn by the commander of a NanoTrasen Emergency Response Team. Has blue highlights. Armoured, space ready, and fire resistant."
icon_state = "ert_commander"
item_state = "suit-command"
//Security
/obj/item/clothing/head/helmet/space/ert/security
name = "emergency response team security helmet"
desc = "A helmet worn by security members of a NanoTrasen Emergency Response Team. Has red highlights. Armoured and space ready."
icon_state = "ert_security"
item_state = "syndicate-helm-black-red"
/obj/item/clothing/suit/space/ert/security
name = "emergency response team security suit"
desc = "A suit worn by security members of a NanoTrasen Emergency Response Team. Has red highlights. Armoured, space ready, and fire resistant."
icon_state = "ert_security"
item_state = "syndicate-black-red"
//Engineer
/obj/item/clothing/head/helmet/space/ert/engineer
name = "emergency response team engineer helmet"
desc = "A helmet worn by engineering members of a NanoTrasen Emergency Response Team. Has blue highlights. Armoured and space ready."
icon_state = "ert_engineer"
/obj/item/clothing/suit/space/ert/engineer
name = "emergency response team engineer suit"
desc = "A suit worn by the engineering of a NanoTrasen Emergency Response Team. Has blue highlights. Armoured, space ready, and fire resistant."
icon_state = "ert_engineer"
//Medical
/obj/item/clothing/head/helmet/space/ert/medical
name = "emergency response team medical helmet"
desc = "A helmet worn by medical members of a NanoTrasen Emergency Response Team. Has white highlights. Armoured and space ready."
icon_state = "ert_medical"
/obj/item/clothing/suit/space/ert/medical
name = "emergency response team medical suit"
desc = "A suit worn by medical members of a NanoTrasen Emergency Response Team. Has white highlights. Armoured and space ready."
icon_state = "ert_medical"
+7 -3
View File
@@ -48,14 +48,18 @@
if (!message)
return
var/obj/machinery/hologram/holopad/T = client.eye//Client eye centers on an object.
if(istype(T)&&T.hologram&&T.master==src)//If there is a hologram and its master is the user.
if(!isAI(src))
return
var/mob/living/silicon/ai/A = src
var/obj/machinery/hologram/holopad/T = A.current//Client eye centers on an object.
if(istype(T) && T.hologram && T.master==src)
var/message_a = say_quote(message)
//Human-like, sorta, heard by those who understand humans.
var/rendered_a = "<span class='game say'><span class='name'>[name]</span> <span class='message'>[message_a]</span></span>"
//Speach distorted, heard by those who do not understand AIs.
//Speech distorted, heard by those who do not understand AIs.
message = stars(message)
var/message_b = say_quote(message)
var/rendered_b = "<span class='game say'><span class='name'>[voice_name]</span> <span class='message'>[message_b]</span></span>"