Map update, CE now knows wire colors, added some old BS12 stuff (AI upload sprite, warning stripes), complete mute can still be adminhelped, removed gooncode in hallucinations, fixed the poweroffline event.

Map update has a redone CE's office and AI upload.
Explosions now let admins jump to them.
This commit is contained in:
SkyMarshal
2012-03-03 20:23:10 -07:00
parent c2bf323caa
commit 3e3534f00b
14 changed files with 6302 additions and 6173 deletions
+1 -1
View File
@@ -13,7 +13,7 @@
var/datum/reagents/reagents = null
//Detective Work, used for the duplicate data points kept in the scanners
var/atom/original_atom = null
var/atom/movable/original_atom = null
//var/chem_is_open_container = 0
// replaced by OPENCONTAINER flags and atom/proc/is_open_container()
+27
View File
@@ -34,6 +34,24 @@
var/blocked = 0 //Player cannot attack/heal while set
/obj/machinery/computer/aistatus
name = "AI Status Panel"
icon = 'mainframe.dmi'
icon_state = "left"
// brightnessred = 0
// brightnessgreen = 2
// brightnessblue = 0
/obj/machinery/computer/aistatus/attack_hand(mob/user as mob)
if(stat & NOPOWER)
user << "\red The status panel has no power!"
return
if(stat & BROKEN)
user << "\red The status panel is broken!"
return
user << "\red I don't understand any of this!"
return
/obj/machinery/computer/aiupload
name = "AI Upload"
desc = "Used to upload laws to the AI."
@@ -42,6 +60,10 @@
var/mob/living/silicon/ai/current = null
var/opened = 0
/obj/machinery/computer/aiupload/mainframe
name = "AI Mainframe Upload"
icon = 'mainframe.dmi'
icon_state = "aimainframe"
/obj/machinery/computer/borgupload
name = "Cyborg Upload"
@@ -50,6 +72,11 @@
circuit = "/obj/item/weapon/circuitboard/borgupload"
var/mob/living/silicon/robot/current = null
/obj/machinery/computer/borgupload/mainframe
name = "Borg Mainframe Upload"
icon = 'mainframe.dmi'
icon_state = "aimainframe"
/obj/machinery/computer/station_alert
name = "Station Alert Computer"
+10
View File
@@ -293,3 +293,13 @@
layer = 2
icon = 'tomatodecal.dmi'
random_icon_states = list("smashed_pie")
/obj/decal/warning_stripes
icon = 'decal_warning_stripes.dmi'
layer = 2
/obj/decal/warning_stripes/New()
..()
loc.overlays += src
del src
+3 -2
View File
@@ -1,10 +1,11 @@
/datum/event/power_offline
var/list/protected_areas = list(/area/ai_monitored/storage/eva, /area/engine, /area/toxins/xenobiology, /area/turret_protected/ai)
var/list/protected_areas = list(, , , )
Announce()
for(var/obj/machinery/power/apc/a in world)
if(!a.crit && a.z == 1)
if(a.area in protected_areas)
if(istype(a.area, /area/ai_monitored/storage/eva) || istype(a.area, /area/engine)\
|| istype(a.area, /area/toxins/xenobiology) || istype(a.area, /area/turret_protected/ai))
continue
a.eventoff = 1
a.update()
+18
View File
@@ -18,6 +18,24 @@
H.equip_if_possible(new /obj/item/clothing/head/helmet/hardhat/white(H), H.slot_head)
H.equip_if_possible(new /obj/item/weapon/storage/belt/utility/full(H), H.slot_belt)
H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves)
var/list/wire_index = list(
"Orange" = 1,
"Dark red" = 2,
"White" = 3,
"Yellow" = 4,
"Red" = 5,
"Blue" = 6,
"Green" = 7,
"Grey" = 8,
"Black" = 9,
"Pink" = 10,
"Brown" = 11,
"Maroon" = 12)
H.mind.store_memory("<b>The door wires are as follows:</b>")
H.mind.store_memory("<b>Power:</b> [wire_index[airlockIndexToWireColor[2]]] and [wire_index[airlockIndexToWireColor[3]]]")
H.mind.store_memory("<b>Backup Power:</b> [wire_index[airlockIndexToWireColor[5]]] and [wire_index[airlockIndexToWireColor[6]]]")
H.mind.store_memory("<b>Door Bolts:</b> [wire_index[airlockIndexToWireColor[4]]]")
H << "\blue You have memorised the important wires for the vessel. Use them wisely."
return 1
+1 -1
View File
@@ -18,7 +18,7 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa
if(M.ear_deaf <= 0 || !M.ear_deaf) if(!istype(M.loc,/turf/space))
M << 'explosionfar.ogg'
if (adminlog)
message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ")
message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] (<a href=\"byond://?src=%admin_ref%;teleto=\ref[epicenter]\">Jump</a>)")
log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ")
tension_master.explosion()
@@ -58,6 +58,82 @@ AI MODULES
usr << "[src.current.name] selected for law changes."
/*Module Storage Unit/Closet! Solid, only modules fit in it.*/
/obj/structure/aiuploadcloset
name = "AI Mainframe Module Storage Unit"
icon = 'mainframe.dmi'
icon_state = "right-closed"
density = 1
var/open = 0 /*It's closed!*/
/obj/structure/aiuploadcloset/New()
..()
new /obj/item/weapon/aiModule/reset(src)
new /obj/item/weapon/aiModule/purge(src)
new /obj/item/weapon/aiModule/nanotrasen(src)
new /obj/item/weapon/aiModule/paladin(src)
new /obj/item/weapon/aiModule/asimov(src)
new /obj/item/weapon/aiModule/safeguard(src)
new /obj/item/weapon/aiModule/protectStation(src)
new /obj/item/weapon/aiModule/quarantine(src)
new /obj/item/weapon/aiModule/teleporterOffline(src)
new /obj/item/weapon/aiModule/oxygen(src)
new /obj/item/weapon/aiModule/oneHuman(src)
new /obj/item/weapon/aiModule/freeform(src)
for(var/obj/item/weapon/aiModule/M in src)
M.pixel_x = rand(-10, 10)
M.pixel_y = rand(-10, 10)
/obj/structure/aiuploadcloset/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/aiModule))
user.drop_item()
W.loc = get_turf(src)
else
return attack_hand(user)
/obj/structure/aiuploadcloset/attack_hand(mob/user as mob)
if(!open)
var/temp_count
for(var/obj/item/weapon/aiModule/M in src)
M.loc = src.loc
temp_count++
user << "\blue You open the module storage unit, [temp_count > 0 ? "and take out all the modules." : "\red but it's empty!"]"
open = 1
icon_state = "right-open"
else
var/temp_count
for(var/obj/item/weapon/aiModule/M in get_turf(src))
M.loc = src
temp_count++
user << "\blue [temp_count > 0 ? "You put all the modules back into the module storage unit, and then close it." : "You close the module storage unit."]"
open = 0
icon_state = "right-closed"
/obj/structure/aiuploadcloset/ex_act(severity)
switch(severity)
if (1)
for(var/obj/item/weapon/aiModule/M in src)
M.loc = src.loc
M.ex_act(severity)
del(src)
if (2)
if (prob(50))
for(var/obj/item/weapon/aiModule/M in src)
M.loc = src.loc
M.ex_act(severity)
del(src)
if (3)
if (prob(5))
for(var/obj/item/weapon/aiModule/M in src)
M.loc = src.loc
M.ex_act(severity)
del(src)
/obj/item/weapon/aiModule/proc/install(var/obj/machinery/computer/C)
if (istype(C, /obj/machinery/computer/aiupload))
var/obj/machinery/computer/aiupload/comp = C
+1 -1
View File
@@ -343,7 +343,7 @@ FINGERPRINT CARD
if (!istype(usr, /mob/living/silicon))
if (length(src.fingerprints))
if (src.amount > 1)
var/obj/item/weapon/f_card/F = new /obj/item/weapon/f_card( (ismob(src.loc) ? src.loc.loc : src.loc) )
var/obj/item/weapon/f_card/F = new /obj/item/weapon/f_card(get_turf(src))
F.amount = --src.amount
src.amount = 1
src.icon_state = "fingerprint1"
+1 -1
View File
@@ -476,7 +476,7 @@
M.client.muted_complete = !M.client.muted_complete
log_admin("[key_name(usr)] has [(M.client.muted_complete ? "completely muted" : "voiced (complete)")] [key_name(M)].")
message_admins("\blue [key_name_admin(usr)] has [(M.client.muted_complete ? "completely muted" : "voiced (complete)")] [key_name_admin(M)].", 1)
M << "You have been [(M.client.muted_complete ? "completely muted" : "voiced (complete)")]. You are unable to speak or even adminhelp"
M << "You have been [(M.client.muted_complete ? "completely muted" : "voiced (complete)")]. You are unable to speak."
if (href_list["c_mode"])
if ((src.rank in list( "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
+2 -2
View File
@@ -7,8 +7,8 @@
if (!msg)
return
if (usr.client && usr.client.muted_complete)
return
// if (usr.client && usr.client.muted_complete)
// return
for (var/mob/M in world)
if (M.client && M.client.holder && (M.client.holder.level != -3))
+4 -5
View File
@@ -243,7 +243,7 @@ proc/check_panel(mob/M)
M << "\red <B>[my_target] flails around wildly.</B>"
my_target.show_message("\red <B>[src] has been attacked by [my_target] </B>", 1) //Lazy.
//src.health -= P.power
src.health -= P.force
return
@@ -256,12 +256,13 @@ proc/check_panel(mob/M)
O << "\red <B>[my_target] stumbles around.</B>"
New()
..()
spawn(300)
if(my_target)
my_target.hallucinations -= src
del(src)
step_away(src,my_target,2)
proccess()
processing_objects.Add(src)
proc/updateimage()
@@ -283,8 +284,7 @@ proc/check_panel(mob/M)
my_target << currentimage
proc/proccess()
if(!my_target) spawn(5) .()
process()
if(src.health < 0)
collapse()
return
@@ -312,7 +312,6 @@ proc/check_panel(mob/M)
if(prob(15))
step_away(src,my_target,2)
spawn(5) .()
proc/collapse()
collapse = 1
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

+6158 -6160
View File
File diff suppressed because it is too large Load Diff