Fixes reflection, various security level fixes, gamma armory update, communication console fixes

This commit is contained in:
Markolie
2014-11-29 02:05:42 +01:00
parent 7e544c17bc
commit ae8f08e2b8
18 changed files with 827 additions and 686 deletions

View File

@@ -423,6 +423,7 @@
#include "code\game\machinery\spaceheater.dm" #include "code\game\machinery\spaceheater.dm"
#include "code\game\machinery\status_display.dm" #include "code\game\machinery\status_display.dm"
#include "code\game\machinery\suit_storage_unit.dm" #include "code\game\machinery\suit_storage_unit.dm"
#include "code\game\machinery\supply_display.dm"
#include "code\game\machinery\syndicatebeacon.dm" #include "code\game\machinery\syndicatebeacon.dm"
#include "code\game\machinery\syndicatebomb.dm" #include "code\game\machinery\syndicatebomb.dm"
#include "code\game\machinery\telepad.dm" #include "code\game\machinery\telepad.dm"

View File

@@ -108,6 +108,7 @@ var/global/datum/crafting_controller/crafting_master
location.craft_holder = src location.craft_holder = src
holder = location holder = location
spawn(50) spawn(50)
if(crafting_master)
crafting_master.all_crafting_points |= src crafting_master.all_crafting_points |= src
if(family_name) if(family_name)
family = crafting_master.get_family_by_name(family_name) family = crafting_master.get_family_by_name(family_name)

View File

@@ -154,9 +154,9 @@
set category = "Malfunction" set category = "Malfunction"
set name = "System Override" set name = "System Override"
set desc = "Start the victory timer" set desc = "Start the victory timer"
if (!istype(ticker.mode,/datum/game_mode/malfunction)) //if (!istype(ticker.mode,/datum/game_mode/malfunction))
usr << "You cannot begin a takeover in this round type!." //usr << "You cannot begin a takeover in this round type!."
return //return
if (ticker.mode:malf_mode_declared) if (ticker.mode:malf_mode_declared)
usr << "You've already begun your takeover." usr << "You've already begun your takeover."
return return

View File

@@ -1027,7 +1027,7 @@ FIRE ALARM
*/ */
/obj/machinery/firealarm /obj/machinery/firealarm
name = "fire alarm" name = "fire alarm"
desc = "<i>\"Pull this in case of emergency\"<i>. Thus, keep pulling it forever." desc = "<i>\"Pull this in case of emergency\"</i>. Thus, keep pulling it forever."
icon = 'icons/obj/monitors.dmi' icon = 'icons/obj/monitors.dmi'
icon_state = "fire0" icon_state = "fire0"
var/detecting = 1.0 var/detecting = 1.0
@@ -1293,7 +1293,7 @@ FIRE ALARM
pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0
if(z == 1) if(z == 1 || z == 5)
if(security_level) if(security_level)
src.overlays += image('icons/obj/monitors.dmi', "overlay_[get_security_level()]") src.overlays += image('icons/obj/monitors.dmi', "overlay_[get_security_level()]")
else else

View File

@@ -1,4 +1,3 @@
#define CHARS_PER_LINE 5
#define FONT_SIZE "5pt" #define FONT_SIZE "5pt"
#define FONT_COLOR "#09f" #define FONT_COLOR "#09f"
#define FONT_STYLE "Arial Black" #define FONT_STYLE "Arial Black"
@@ -10,7 +9,6 @@
// Use to show shuttle ETA/ETD times // Use to show shuttle ETA/ETD times
// Alert status // Alert status
// And arbitrary messages set by comms computer // And arbitrary messages set by comms computer
/obj/machinery/status_display /obj/machinery/status_display
icon = 'icons/obj/status_display.dmi' icon = 'icons/obj/status_display.dmi'
icon_state = "frame" icon_state = "frame"
@@ -32,26 +30,31 @@
var/index2 var/index2
var/frequency = 1435 // radio frequency var/frequency = 1435 // radio frequency
var/supply_display = 0 // true if a supply shuttle display
var/friendc = 0 // track if Friend Computer mode var/friendc = 0 // track if Friend Computer mode
var/ignore_friendc = 0
var/spookymode=0 // Ghosts. var/spookymode = 0
maptext_height = 26 maptext_height = 26
maptext_width = 32 maptext_width = 32
// new display var/const/CHARS_PER_LINE = 5
var/const/STATUS_DISPLAY_BLANK = 0
var/const/STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME = 1
var/const/STATUS_DISPLAY_MESSAGE = 2
var/const/STATUS_DISPLAY_ALERT = 3
var/const/STATUS_DISPLAY_TIME = 4
var/const/STATUS_DISPLAY_CUSTOM = 99
// register for radio system // register for radio system
New() /obj/machinery/status_display/initialize()
..() ..()
spawn(5) // must wait for map loading to finish
if(radio_controller) if(radio_controller)
radio_controller.add_object(src, frequency) radio_controller.add_object(src, frequency)
// timed process // timed process
process() /obj/machinery/status_display/process()
if(stat & NOPOWER) if(stat & NOPOWER)
remove_display() remove_display()
return return
@@ -61,7 +64,7 @@
return return
update() update()
emp_act(severity) /obj/machinery/status_display/emp_act(severity)
if(stat & (BROKEN|NOPOWER)) if(stat & (BROKEN|NOPOWER))
..(severity) ..(severity)
return return
@@ -69,35 +72,35 @@
..(severity) ..(severity)
// set what is displayed // set what is displayed
/obj/machinery/status_display/proc/update()
proc/update() if(friendc && !ignore_friendc)
if(friendc && mode!=4) //Makes all status displays except supply shuttle timer display the eye -- Urist
set_picture("ai_friend") set_picture("ai_friend")
return return 1
switch(mode) switch(mode)
if(0) //blank if(STATUS_DISPLAY_BLANK) //blank
remove_display() remove_display()
if(1) //emergency shuttle timer return 1
if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME) //emergency shuttle timer
if(emergency_shuttle.waiting_to_leave()) if(emergency_shuttle.waiting_to_leave())
var/line1 = "-ETD-" message1 = "-ETD-"
var/line2
if (emergency_shuttle.shuttle.is_launching()) if (emergency_shuttle.shuttle.is_launching())
line2 = "Launch" message2 = "Launch"
else else
line2 = get_shuttle_timer_departure() message2 = get_shuttle_timer_departure()
if(length(line2) > CHARS_PER_LINE) if(length(message2) > CHARS_PER_LINE)
line2 = "Error!" message2 = "Error"
update_display(line1, line2) update_display(message1, message2)
else if(emergency_shuttle.has_eta()) else if(emergency_shuttle.has_eta())
var/line1 = "-ETA-" message1 = "-ETA-"
var/line2 = get_shuttle_timer_arrival() message2 = get_shuttle_timer_arrival()
if(length(line2) > CHARS_PER_LINE) if(length(message2) > CHARS_PER_LINE)
line2 = "Error!" message2 = "Error"
update_display(line1, line2) update_display(message1, message2)
else else
remove_display() remove_display()
if(2) //custom messages return 1
if(STATUS_DISPLAY_MESSAGE) //custom messages
var/line1 var/line1
var/line2 var/line2
@@ -119,38 +122,21 @@
if(index2 > message2_len) if(index2 > message2_len)
index2 -= message2_len index2 -= message2_len
update_display(line1, line2) update_display(line1, line2)
if(4) // supply shuttle timer return 1
var/line1 = "SUPPLY" if(STATUS_DISPLAY_TIME)
var/line2 = "" message1 = "TIME"
message2 = worldtime2text()
update_display(message1, message2)
return 1
return 0
var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle /obj/machinery/status_display/examine()
if (!shuttle)
line2 = "Error"
else if(shuttle.has_arrive_time())
line2 = get_supply_shuttle_timer()
if(lentext(line2) > CHARS_PER_LINE)
line2 = "Error"
else if (shuttle.is_launching())
if (shuttle.at_station())
line2 = "Launch"
else
line2 = "ETA"
else
if(shuttle.at_station())
line2 = "Docked"
else
line1 = ""
update_display(line1, line2)
examine()
set src in view() set src in view()
. = ..() . = ..()
switch(mode) if(mode != STATUS_DISPLAY_BLANK && mode != STATUS_DISPLAY_ALERT)
if(1,2,4) usr << "The display says:<br>\t[sanitize(message1)]<br>\t[sanitize(message2)]"
usr << "The display says:<br>\t<xmp>[message1]</xmp><br>\t<xmp>[message2]</xmp>"
/obj/machinery/status_display/proc/set_message(m1, m2)
proc/set_message(m1, m2)
if(m1) if(m1)
index1 = (length(m1) > CHARS_PER_LINE) index1 = (length(m1) > CHARS_PER_LINE)
message1 = m1 message1 = m1
@@ -165,29 +151,29 @@
message2 = "" message2 = ""
index2 = 0 index2 = 0
proc/set_picture(state) /obj/machinery/status_display/proc/set_picture(state)
picture_state = state picture_state = state
remove_display() remove_display()
overlays += image('icons/obj/status_display.dmi', icon_state=picture_state) overlays += image('icons/obj/status_display.dmi', icon_state=picture_state)
proc/update_display(line1, line2) /obj/machinery/status_display/proc/update_display(line1, line2)
var/new_text = {"<div style="font-size:[FONT_SIZE];color:[FONT_COLOR];font:'[FONT_STYLE]';text-align:center;" valign="top">[line1]<br>[line2]</div>"} var/new_text = {"<div style="font-size:[FONT_SIZE];color:[FONT_COLOR];font:'[FONT_STYLE]';text-align:center;" valign="top">[line1]<br>[line2]</div>"}
if(maptext != new_text) if(maptext != new_text)
maptext = new_text maptext = new_text
proc/get_shuttle_timer_arrival() /obj/machinery/status_display/proc/get_shuttle_timer_arrival()
var/timeleft = emergency_shuttle.estimate_arrival_time() var/timeleft = emergency_shuttle.estimate_arrival_time()
if(timeleft < 0) if(timeleft < 0)
return "" return ""
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]" return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
proc/get_shuttle_timer_departure() /obj/machinery/status_display/proc/get_shuttle_timer_departure()
var/timeleft = emergency_shuttle.estimate_launch_time() var/timeleft = emergency_shuttle.estimate_launch_time()
if(timeleft < 0) if(timeleft < 0)
return "" return ""
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]" return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
proc/get_supply_shuttle_timer() /obj/machinery/status_display/proc/get_supply_shuttle_timer()
var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
if (!shuttle) if (!shuttle)
return "Error" return "Error"
@@ -199,35 +185,30 @@
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]" return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
return "" return ""
proc/remove_display() /obj/machinery/status_display/proc/remove_display()
if(overlays.len) if(overlays.len)
overlays.Cut() overlays.Cut()
if(maptext) if(maptext)
maptext = "" maptext = ""
/obj/machinery/status_display/receive_signal(datum/signal/signal)
receive_signal(datum/signal/signal)
switch(signal.data["command"]) switch(signal.data["command"])
if("blank") if("blank")
mode = 0 mode = STATUS_DISPLAY_BLANK
if("shuttle") if("shuttle")
mode = 1 mode = STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME
if("message") if("message")
mode = 2 mode = STATUS_DISPLAY_MESSAGE
set_message(signal.data["msg1"], signal.data["msg2"]) set_message(signal.data["msg1"], signal.data["msg2"])
if("alert") if("alert")
mode = 3 mode = STATUS_DISPLAY_ALERT
set_picture(signal.data["picture_state"]) set_picture(signal.data["picture_state"])
if("supply") if("time")
if(supply_display) mode = STATUS_DISPLAY_TIME
mode = 4
/obj/machinery/ai_status_display /obj/machinery/ai_status_display
icon = 'icons/obj/status_display.dmi' icon = 'icons/obj/status_display.dmi'
@@ -236,7 +217,7 @@
anchored = 1 anchored = 1
density = 0 density = 0
var/spookymode=0 // Ghosts var/spookymode = 0
var/mode = 0 // 0 = Blank var/mode = 0 // 0 = Blank
// 1 = AI emoticon // 1 = AI emoticon
@@ -246,8 +227,7 @@
var/emotion = "Neutral" var/emotion = "Neutral"
/obj/machinery/ai_status_display/process()
process()
if(stat & NOPOWER) if(stat & NOPOWER)
overlays.Cut() overlays.Cut()
return return
@@ -255,18 +235,16 @@
spookymode = 0 spookymode = 0
overlays.Cut() overlays.Cut()
return return
update() update()
emp_act(severity) /obj/machinery/ai_status_display/emp_act(severity)
if(stat & (BROKEN|NOPOWER)) if(stat & (BROKEN|NOPOWER))
..(severity) ..(severity)
return return
set_picture("ai_bsod") set_picture("ai_bsod")
..(severity) ..(severity)
proc/update() /obj/machinery/ai_status_display/proc/update()
if(mode==0) //Blank if(mode==0) //Blank
overlays.Cut() overlays.Cut()
return return
@@ -285,6 +263,12 @@
set_picture("ai_confused") set_picture("ai_confused")
if("Sad") if("Sad")
set_picture("ai_sad") set_picture("ai_sad")
if("Surprised")
set_picture("ai_surprised")
if("Upset")
set_picture("ai_upset")
if("Angry")
set_picture("ai_angry")
if("BSOD") if("BSOD")
set_picture("ai_bsod") set_picture("ai_bsod")
if("Blank") if("Blank")
@@ -299,7 +283,6 @@
set_picture("ai_facepalm") set_picture("ai_facepalm")
if("Friend Computer") if("Friend Computer")
set_picture("ai_friend") set_picture("ai_friend")
return return
if(mode==2) // BSOD if(mode==2) // BSOD
@@ -307,7 +290,7 @@
return return
proc/set_picture(var/state) /obj/machinery/ai_status_display/proc/set_picture(var/state)
picture_state = state picture_state = state
if(overlays.len) if(overlays.len)
overlays.Cut() overlays.Cut()

View File

@@ -0,0 +1,34 @@
/obj/machinery/status_display/supply_display
ignore_friendc = 1
/obj/machinery/status_display/supply_display/update()
if(!..() && mode == STATUS_DISPLAY_CUSTOM)
message1 = "SUPPLY"
message2 = ""
var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
if (!shuttle)
message2 = "Error"
else if(shuttle.has_arrive_time())
message2 = get_supply_shuttle_timer()
if(lentext(message2) > CHARS_PER_LINE)
message2 = "Error"
else if (shuttle.is_launching())
if (shuttle.at_station())
message2 = "Launch"
else
message2 = "ETA"
else
if(shuttle.at_station())
message2 = "Docked"
else
message1 = ""
update_display(message1, message2)
return 1
return 0
/obj/machinery/status_display/supply_display/receive_signal/(datum/signal/signal)
if(signal.data["command"] == "supply")
mode = STATUS_DISPLAY_CUSTOM
else
..(signal)

View File

@@ -413,9 +413,11 @@
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent("aluminum", 25) B1.reagents.add_reagent("aluminum", 15)
B2.reagents.add_reagent("plasma", 25) B1.reagents.add_reagent("fuel",20)
B2.reagents.add_reagent("sacid", 25) B2.reagents.add_reagent("plasma", 15)
B2.reagents.add_reagent("sacid", 15)
B1.reagents.add_reagent("fuel",20)
beakers += B1 beakers += B1
beakers += B2 beakers += B2

View File

@@ -18,7 +18,7 @@ var/global/wcColored
wcColored = 1 wcColored = 1
var/list/wcBarAreas = list(/area/crew_quarters/bar) var/list/wcBarAreas = list(/area/crew_quarters/bar)
var/list/wcBrigAreas = list(/area/security,/area/security/main,/area/security/lobby,/area/security/brig,/area/security/permabrig,/area/security/prison,/area/security/prison/cell_block/A,/area/security/prison/cell_block/B,/area/security/prison/cell_block/C,/area/security/execution,/area/security/processing,/area/security/interrogation,/area/security/interrogationobs,/area/security/evidence,/area/security/prisonlockers,/area/security/medbay,/area/security/processing,/area/security/warden,/area/security/armoury,/area/security/securearmoury,/area/security/armoury/gamma,/area/security/securehallway,/area/security/hos,/area/security/podbay,/area/security/detectives_office,/area/security/range,/area/security/nuke_storage,/area/security/checkpoint,/area/security/checkpoint2,/area/security/checkpoint2,/area/security/checkpoint/supply,/area/security/checkpoint/engineering,/area/security/checkpoint/medical,/area/security/checkpoint/science,/area/security/vacantoffice,/area/security/vacantoffice2,/area/prison,/area/prison/arrival_airlock,/area/prison/control,/area/prison/crew_quarters,/area/prison/rec_room,/area/prison/closet,/area/prison/hallway/fore,/area/prison/hallway/aft,/area/prison/hallway/port,/area/prison/hallway/starboard,/area/prison/morgue,/area/prison/medical_research,/area/prison/medical,/area/prison/solar,/area/prison/podbay,/area/prison/solar_control,/area/prison/solitary,/area/prison/cell_block,/area/prison/cell_block/A,/area/prison/cell_block/B,/area/prison/cell_block/C) var/list/wcBrigAreas = list(/area/security,/area/security/main,/area/security/lobby,/area/security/brig,/area/security/permabrig,/area/security/prison,/area/security/prison/cell_block/A,/area/security/prison/cell_block/B,/area/security/prison/cell_block/C,/area/security/execution,/area/security/processing,/area/security/interrogation,/area/security/interrogationobs,/area/security/evidence,/area/security/prisonlockers,/area/security/medbay,/area/security/processing,/area/security/warden,/area/security/armoury,/area/security/securearmoury,/area/security/armoury/gamma,/area/security/securehallway,/area/security/hos,/area/security/podbay,/area/security/detectives_office,/area/security/range,/area/security/nuke_storage,/area/security/checkpoint,/area/security/checkpoint2,/area/security/checkpoint2,/area/security/checkpoint/supply,/area/security/checkpoint/engineering,/area/security/checkpoint/medical,/area/security/checkpoint/science,/area/security/vacantoffice,/area/security/vacantoffice2,/area/prison,/area/prison/arrival_airlock,/area/prison/control,/area/prison/crew_quarters,/area/prison/rec_room,/area/prison/closet,/area/prison/hallway/fore,/area/prison/hallway/aft,/area/prison/hallway/port,/area/prison/hallway/starboard,/area/prison/morgue,/area/prison/medical_research,/area/prison/medical,/area/prison/solar,/area/prison/podbay,/area/prison/solar_control,/area/prison/solitary,/area/prison/cell_block,/area/prison/cell_block/A,/area/prison/cell_block/B,/area/prison/cell_block/C,/area/shuttle/gamma/space,/area/shuttle/gamma/station)
var/newcolor var/newcolor
for(var/A in wcBarAreas) for(var/A in wcBarAreas)

View File

@@ -21,10 +21,10 @@ emp_act
var/turf/curloc = get_turf(src) var/turf/curloc = get_turf(src)
// redirect the projectile // redirect the projectile
P.firer = src
P.original = locate(new_x, new_y, P.z) P.original = locate(new_x, new_y, P.z)
P.starting = curloc P.starting = curloc
P.current = curloc P.current = curloc
P.firer = src
P.yo = new_y - curloc.y P.yo = new_y - curloc.y
P.xo = new_x - curloc.x P.xo = new_x - curloc.x

View File

@@ -39,8 +39,6 @@
ammo_type = "/obj/item/ammo_casing/c9mm" ammo_type = "/obj/item/ammo_casing/c9mm"
max_ammo = 36 max_ammo = 36
/obj/item/ammo_box/c45 /obj/item/ammo_box/c45
name = "Ammunition Box (.45)" name = "Ammunition Box (.45)"
icon_state = "9mm" icon_state = "9mm"

View File

@@ -135,6 +135,7 @@
if(M.ckey) if(M.ckey)
msg_admin_attack("UNKNOWN shot [M] ([M.ckey]) with a [src] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[firer.x];Y=[firer.y];Z=[firer.z]'>JMP</a>)") //BS12 EDIT ALG msg_admin_attack("UNKNOWN shot [M] ([M.ckey]) with a [src] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[firer.x];Y=[firer.y];Z=[firer.z]'>JMP</a>)") //BS12 EDIT ALG
spawn(0)
if(A) if(A)
if(!forcedodge) if(!forcedodge)
forcedodge = A.bullet_act(src, def_zone) // searches for return value forcedodge = A.bullet_act(src, def_zone) // searches for return value

View File

@@ -29,6 +29,14 @@
icon_state = "heavylaser" icon_state = "heavylaser"
damage = 40 damage = 40
/obj/item/projectile/beam/sniper
name = "sniper beam"
icon_state = "sniperlaser"
damage = 60
stun = 5
weaken = 5
stutter = 5
/obj/item/projectile/beam/xray /obj/item/projectile/beam/xray
name = "xray beam" name = "xray beam"
icon_state = "xray" icon_state = "xray"
@@ -628,14 +636,6 @@ var/list/beam_master = list()
M.Weaken(5) M.Weaken(5)
return 1 return 1
/obj/item/projectile/beam/sniper
name = "sniper beam"
icon_state = "sniperlaser"
damage = 60
stun = 5
weaken = 5
stutter = 5
/obj/item/projectile/beam/stun /obj/item/projectile/beam/stun
name = "stun beam" name = "stun beam"

View File

@@ -27,76 +27,108 @@
if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != security_level) if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != security_level)
switch(level) switch(level)
if(SEC_LEVEL_GREEN) if(SEC_LEVEL_GREEN)
world << "<font size=4 color='red'>Attention! Security level lowered to green</font>" world << "<font size=4 color='red'>Attention! Security level lowered to green.</font>"
world << "<font color='red'>[config.alert_desc_green]</font>" world << "<font color='red'>All threats to the station have passed. All weapons need to be holstered and privacy laws are once again fully enforced.</font>"
security_level = SEC_LEVEL_GREEN security_level = SEC_LEVEL_GREEN
for(var/obj/machinery/firealarm/FA in machines)
if(FA.z == 1) for(var/obj/machinery/firealarm/FA in world)
if(FA.z == 1 || FA.z == 5)
FA.overlays = list() FA.overlays = list()
FA.overlays += image('icons/obj/monitors.dmi', "overlay_green") FA.overlays += image('icons/obj/monitors.dmi', "overlay_green")
if(SEC_LEVEL_BLUE) if(SEC_LEVEL_BLUE)
if(security_level < SEC_LEVEL_BLUE) if(security_level < SEC_LEVEL_BLUE)
world << "<font size=4 color='red'>Attention! Security level elevated to blue</font>" world << "<font size=4 color='red'>Attention! Security level elevated to blue.</font>"
world << "<font color='red'>[config.alert_desc_blue_upto]</font>" world << "<font color='red'>The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible and random searches are permitted.</font>"
else else
world << "<font size=4 color='red'>Attention! Security level lowered to blue</font>" world << "<font size=4 color='red'>Attention! Security level lowered to blue.</font>"
world << "<font color='red'>[config.alert_desc_blue_downto]</font>" world << "<font color='red'>The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed.</font>"
security_level = SEC_LEVEL_BLUE security_level = SEC_LEVEL_BLUE
for(var/obj/machinery/firealarm/FA in machines)
if(FA.z == 1) for(var/obj/machinery/firealarm/FA in world)
if(FA.z == 1 || FA.z == 5)
FA.overlays = list() FA.overlays = list()
FA.overlays += image('icons/obj/monitors.dmi', "overlay_blue") FA.overlays += image('icons/obj/monitors.dmi', "overlay_blue")
if(SEC_LEVEL_RED) if(SEC_LEVEL_RED)
if(security_level < SEC_LEVEL_RED) if(security_level < SEC_LEVEL_RED)
world << "<font size=4 color='red'>Attention! Code red!</font>" world << "<font size=4 color='red'>Attention! Code Red!</font>"
world << "<font color='red'>[config.alert_desc_red_upto]</font>" world << "<font color='red'>There is an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised. The station's secure armory has been unlocked and is ready for use.</font>"
else else
world << "<font size=4 color='red'>Attention! Code red!</font>" world << "<font size=4 color='red'>Attention! Code Red!</font>"
world << "<font color='red'>[config.alert_desc_red_downto]</font>" world << "<font color='red'>The station's self-destruct mechanism has been deactivated, but there is still an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised.</font>"
security_level = SEC_LEVEL_RED security_level = SEC_LEVEL_RED
var/obj/machinery/door/airlock/highsecurity/red/R = locate(/obj/machinery/door/airlock/highsecurity/red) in world var/obj/machinery/door/airlock/highsecurity/red/R = locate(/obj/machinery/door/airlock/highsecurity/red) in world
message_admins("Found [R]")
if(R && R.z == 1) if(R && R.z == 1)
R.locked = 0 R.locked = 0
R.update_icon() R.update_icon()
/* - At the time of commit, setting status displays didn't work properly
var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world) var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world)
if(CC) if(CC)
CC.post_status("alert", "redalert")*/ CC.post_status("alert", "redalert")
for(var/obj/machinery/firealarm/FA in machines) for(var/obj/machinery/firealarm/FA in world)
if(FA.z == 1) if(FA.z == 1 || FA.z == 5)
FA.overlays = list() FA.overlays = list()
FA.overlays += image('icons/obj/monitors.dmi', "overlay_red") FA.overlays += icon('icons/obj/monitors.dmi', "overlay_red")
if(SEC_LEVEL_GAMMA) if(SEC_LEVEL_GAMMA)
world << "<font size=4 color='red'>Attention! GAMMA security level activated!</font>" world << "<font size=4 color='red'>Attention! Gamma security level activated!</font>"
world << "<font color='red'>[config.alert_desc_gamma]</font>" world << "<font color='red'>Central Command has ordered the Gamma security level on the station. Security is to have weapons equipped at all times, and all civilians are to immediately seek their nearest head for transportation to a secure location. The station's Gamma armory has been unlocked and is ready for use.</font>"
security_level = SEC_LEVEL_GAMMA
move_gamma_ship() move_gamma_ship()
if(security_level < SEC_LEVEL_RED) if(security_level < SEC_LEVEL_RED)
for(var/obj/machinery/door/airlock/highsecurity/red/R in world) for(var/obj/machinery/door/airlock/highsecurity/red/R in world)
if(R.z == 1) if(R.z == 1)
R.locked = 0 R.locked = 0
R.update_icon() R.update_icon()
for(var/obj/machinery/door/airlock/hatch/gamma/H in world) for(var/obj/machinery/door/airlock/hatch/gamma/H in world)
if(H.z == 1) if(H.z == 1)
H.locked = 0 H.locked = 0
H.update_icon() H.update_icon()
security_level = SEC_LEVEL_GAMMA var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world)
if(CC)
CC.post_status("alert", "redalert")
for(var/obj/machinery/firealarm/FA in world)
if(FA.z == 1 || FA.z == 5)
FA.overlays = list()
FA.overlays += image('icons/obj/monitors.dmi', "overlay_gamma")
FA.update_icon()
if(SEC_LEVEL_EPSILON) if(SEC_LEVEL_EPSILON)
world << "<font size=4 color='red'>Attention! EPSILON security level activated!</font>" world << "<font size=4 color='red'>Attention! Epsilon security level activated!</font>"
world << "<font color='red'>[config.alert_desc_epsilon]</font>" world << "<font color='red'>Central Command has ordered the Epsilon security level on the station. Consider all contracts terminated.</font>"
security_level = SEC_LEVEL_EPSILON security_level = SEC_LEVEL_EPSILON
var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world)
if(CC)
CC.post_status("alert", "redalert")
for(var/obj/machinery/firealarm/FA in world)
if(FA.z == 1 || FA.z == 5)
FA.overlays = list()
FA.overlays += image('icons/obj/monitors.dmi', "overlay_epsilon")
if(SEC_LEVEL_DELTA) if(SEC_LEVEL_DELTA)
world << "<font size=4 color='red'>Attention! Delta security level reached!</font>" world << "<font size=4 color='red'>Attention! Delta security level reached!</font>"
world << "<font color='red'>[config.alert_desc_delta]</font>" world << "<font color='red'>The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill.</font>"
security_level = SEC_LEVEL_DELTA security_level = SEC_LEVEL_DELTA
for(var/obj/machinery/firealarm/FA in machines)
if(FA.z == 1) var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world)
if(CC)
CC.post_status("alert", "redalert")
for(var/obj/machinery/firealarm/FA in world)
if(FA.z == 1 || FA.z == 5)
FA.overlays = list() FA.overlays = list()
FA.overlays += image('icons/obj/monitors.dmi', "overlay_delta") FA.overlays += image('icons/obj/monitors.dmi', "overlay_delta")
else else
return return

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 44 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -71,13 +71,13 @@ Used In File(s): /code/game/machinery/computers/communications.dm
<h3>Presets</h3> <h3>Presets</h3>
{{for data.stat_display.presets}} {{for data.stat_display.presets}}
<div class="line"> <div class="line">
<div class="statusLabel">{{:helper.link(data.label,'info',{'operation':'setstat','statdisp':name},null,(name==data.stat_display.type?'linkOn':''))}}</div> <div class="statusLabel">{{:helper.link(value.label,'info',{'operation':'setstat','statdisp':value.name},null,(name==data.stat_display.type?'linkOn':''))}}</div>
</div> </div>
{{/for}} {{/for}}
<h3>Alerts</h3> <h3>Alerts</h3>
{{for data.stat_display.alerts}} {{for data.stat_display.alerts}}
<div class="line"> <div class="line">
<div class="statusLabel">{{:helper.link(data.label,'alert',{'operation':'setstat','statdisp':'alert','alert':alert},null,(name==data.stat_display.type?'linkOn':''))}}</div> <div class="statusLabel">{{:helper.link(value.label,'alert',{'operation':'setstat','statdisp':'alert','alert':value.alert},null,(value.alert==data.stat_display.type?'linkOn':''))}}</div>
</div> </div>
{{/for}} {{/for}}
<h3>Messages</h3> <h3>Messages</h3>
@@ -125,7 +125,7 @@ Used In File(s): /code/game/machinery/computers/communications.dm
<div class="itemLabel">Presets:</div> <div class="itemLabel">Presets:</div>
<div class="itemContents"> <div class="itemContents">
{{for data.levels}} {{for data.levels}}
{{:helper.link(name,'comment',{'operation':'newalertlevel','level':data.id},null,(data.id==data.security_level?'linkOn':''))}} {{:helper.link(value.name,'comment',{'operation':'newalertlevel','level':value.id},null,(value.id==data.security_level?'linkOn':''))}}
{{/for}} {{/for}}
</div> </div>
</div> </div>