mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-12 07:35:31 +01:00
next set of globals (#19131)
This commit is contained in:
@@ -6,8 +6,6 @@
|
||||
// atmospherics devices.
|
||||
//--------------------------------------------
|
||||
|
||||
GLOBAL_LIST_INIT(pipe_colors, list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "black" = PIPE_COLOR_BLACK, "orange" = PIPE_COLOR_ORANGE, "white" = PIPE_COLOR_WHITE, "purple" = PIPE_COLOR_PURPLE))
|
||||
|
||||
/proc/pipe_color_lookup(var/color)
|
||||
for(var/C in GLOB.pipe_colors)
|
||||
if(color == GLOB.pipe_colors[C])
|
||||
|
||||
@@ -38,8 +38,6 @@ Pipelines + Other Objects -> Pipe network
|
||||
|
||||
/obj/machinery/atmospherics/Initialize(mapload, newdir)
|
||||
. = ..()
|
||||
if(!icon_manager)
|
||||
icon_manager = new()
|
||||
if(!isnull(newdir))
|
||||
set_dir(newdir)
|
||||
if(!pipe_color)
|
||||
@@ -91,28 +89,16 @@ Pipelines + Other Objects -> Pipe network
|
||||
if(node)
|
||||
if(!T.is_plating() && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||
//underlays += icon_manager.get_atmos_icon("underlay_down", direction, color_cache_name(node))
|
||||
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
|
||||
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
|
||||
else
|
||||
//underlays += icon_manager.get_atmos_icon("underlay_intact", direction, color_cache_name(node))
|
||||
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
|
||||
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
|
||||
else
|
||||
//underlays += icon_manager.get_atmos_icon("underlay_exposed", direction, pipe_color)
|
||||
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "exposed" + icon_connect_type)
|
||||
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "exposed" + icon_connect_type)
|
||||
|
||||
/obj/machinery/atmospherics/proc/update_underlays()
|
||||
if(check_icon_cache())
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
/obj/machinery/atmospherics/proc/check_icon_cache(var/safety = 0)
|
||||
if(!istype(icon_manager))
|
||||
if(!safety) //to prevent infinite loops
|
||||
icon_manager = new()
|
||||
check_icon_cache(1)
|
||||
return 0
|
||||
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/atmospherics/proc/color_cache_name(var/obj/machinery/atmospherics/node)
|
||||
//Don't use this for standard pipes
|
||||
|
||||
@@ -64,9 +64,6 @@
|
||||
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
|
||||
|
||||
/obj/machinery/atmospherics/binary/dp_vent_pump/update_icon(var/safety = 0)
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
cut_overlays()
|
||||
|
||||
var/vent_icon = "vent"
|
||||
@@ -83,25 +80,25 @@
|
||||
else
|
||||
vent_icon += "[use_power ? "[pump_direction ? "out" : "in"]" : "off"]"
|
||||
|
||||
add_overlay(icon_manager.get_atmos_icon("device", , , vent_icon))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("device", , , vent_icon))
|
||||
|
||||
/obj/machinery/atmospherics/binary/dp_vent_pump/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
if(!T.is_plating() && node1 && node2 && node1.level == 1 && node2.level == 1 && istype(node1, /obj/machinery/atmospherics/pipe) && istype(node2, /obj/machinery/atmospherics/pipe))
|
||||
return
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
if(!T.is_plating() && node1 && node2 && node1.level == 1 && node2.level == 1 && istype(node1, /obj/machinery/atmospherics/pipe) && istype(node2, /obj/machinery/atmospherics/pipe))
|
||||
return
|
||||
else
|
||||
if (node1)
|
||||
add_underlay(T, node1, turn(dir, -180), node1.icon_connect_type)
|
||||
else
|
||||
if (node1)
|
||||
add_underlay(T, node1, turn(dir, -180), node1.icon_connect_type)
|
||||
else
|
||||
add_underlay(T, node1, turn(dir, -180))
|
||||
if (node2)
|
||||
add_underlay(T, node2, dir, node2.icon_connect_type)
|
||||
else
|
||||
add_underlay(T, node2, dir)
|
||||
add_underlay(T, node1, turn(dir, -180))
|
||||
if (node2)
|
||||
add_underlay(T, node2, dir, node2.icon_connect_type)
|
||||
else
|
||||
add_underlay(T, node2, dir)
|
||||
|
||||
/obj/machinery/atmospherics/binary/dp_vent_pump/hide(var/i)
|
||||
update_icon()
|
||||
|
||||
@@ -42,13 +42,13 @@
|
||||
icon_state = (unlocked && flowing)? "on" : "off"
|
||||
|
||||
/obj/machinery/atmospherics/binary/passive_gate/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node1, turn(dir, 180))
|
||||
add_underlay(T, node2, dir)
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node1, turn(dir, 180))
|
||||
add_underlay(T, node2, dir)
|
||||
|
||||
/obj/machinery/atmospherics/binary/passive_gate/hide(var/i)
|
||||
update_underlays()
|
||||
|
||||
@@ -80,13 +80,13 @@ Thus, the two variables affect pump operation are set in New():
|
||||
icon_state = "[use_power ? "[base_icon]-on" : "[base_icon]-off"]"
|
||||
|
||||
/obj/machinery/atmospherics/binary/pump/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node1, turn(dir, -180), node1?.icon_connect_type)
|
||||
add_underlay(T, node2, dir, node2?.icon_connect_type)
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node1, turn(dir, -180), node1?.icon_connect_type)
|
||||
add_underlay(T, node2, dir, node2?.icon_connect_type)
|
||||
|
||||
/obj/machinery/atmospherics/binary/pump/hide(var/i)
|
||||
update_underlays()
|
||||
|
||||
@@ -88,13 +88,13 @@ Thus, the two variables affect pump operation are set in New():
|
||||
cut_overlay(overclock_overlay)
|
||||
|
||||
/obj/machinery/atmospherics/binary/volume_pump/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node1, turn(dir, -180), node1?.icon_connect_type)
|
||||
add_underlay(T, node2, dir, node2?.icon_connect_type)
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node1, turn(dir, -180), node1?.icon_connect_type)
|
||||
add_underlay(T, node2, dir, node2?.icon_connect_type)
|
||||
|
||||
/obj/machinery/atmospherics/binary/volume_pump/hide(var/i)
|
||||
update_underlays()
|
||||
|
||||
@@ -106,9 +106,6 @@
|
||||
return
|
||||
|
||||
/obj/machinery/atmospherics/omni/proc/build_icons()
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
var/core_icon = null
|
||||
if(istype(src, /obj/machinery/atmospherics/omni/mixer))
|
||||
core_icon = "mixer"
|
||||
@@ -119,16 +116,13 @@
|
||||
|
||||
//directional icons are layers 1-4, with the core icon on layer 5
|
||||
if(core_icon)
|
||||
overlays_off[5] = icon_manager.get_atmos_icon("omni", , , core_icon)
|
||||
overlays_on[5] = icon_manager.get_atmos_icon("omni", , , core_icon + "_glow")
|
||||
overlays_off[5] = GLOB.icon_manager.get_atmos_icon("omni", , , core_icon)
|
||||
overlays_on[5] = GLOB.icon_manager.get_atmos_icon("omni", , , core_icon + "_glow")
|
||||
|
||||
overlays_error[1] = icon_manager.get_atmos_icon("omni", , , core_icon)
|
||||
overlays_error[2] = icon_manager.get_atmos_icon("omni", , , "error")
|
||||
overlays_error[1] = GLOB.icon_manager.get_atmos_icon("omni", , , core_icon)
|
||||
overlays_error[2] = GLOB.icon_manager.get_atmos_icon("omni", , , "error")
|
||||
|
||||
/obj/machinery/atmospherics/omni/proc/update_port_icons()
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
for(var/datum/omni_port/P in ports)
|
||||
if(P.update)
|
||||
var/ref_layer = 0
|
||||
@@ -179,8 +173,8 @@
|
||||
ic_on += "_filter"
|
||||
ic_off += "_out"
|
||||
|
||||
ic_on = icon_manager.get_atmos_icon("omni", , , ic_on)
|
||||
ic_off = icon_manager.get_atmos_icon("omni", , , ic_off)
|
||||
ic_on = GLOB.icon_manager.get_atmos_icon("omni", , , ic_on)
|
||||
ic_off = GLOB.icon_manager.get_atmos_icon("omni", , , ic_off)
|
||||
|
||||
var/pipe_state
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -188,10 +182,10 @@
|
||||
return
|
||||
if(!T.is_plating() && istype(P.node, /obj/machinery/atmospherics/pipe) && P.node.level == 1 )
|
||||
//pipe_state = icon_manager.get_atmos_icon("underlay_down", P.dir, color_cache_name(P.node))
|
||||
pipe_state = icon_manager.get_atmos_icon("underlay", P.dir, color_cache_name(P.node), "down")
|
||||
pipe_state = GLOB.icon_manager.get_atmos_icon("underlay", P.dir, color_cache_name(P.node), "down")
|
||||
else
|
||||
//pipe_state = icon_manager.get_atmos_icon("underlay_intact", P.dir, color_cache_name(P.node))
|
||||
pipe_state = icon_manager.get_atmos_icon("underlay", P.dir, color_cache_name(P.node), "intact")
|
||||
pipe_state = GLOB.icon_manager.get_atmos_icon("underlay", P.dir, color_cache_name(P.node), "intact")
|
||||
|
||||
return list("on_icon" = ic_on, "off_icon" = ic_off, "pipe_icon" = pipe_state)
|
||||
|
||||
|
||||
@@ -42,12 +42,12 @@
|
||||
icon_state = "connector"
|
||||
|
||||
/obj/machinery/atmospherics/portables_connector/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node, dir, node?.icon_connect_type)
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node, dir, node?.icon_connect_type)
|
||||
|
||||
/obj/machinery/atmospherics/portables_connector/hide(var/i)
|
||||
update_underlays()
|
||||
|
||||
@@ -32,15 +32,15 @@
|
||||
initialize_directions = get_initialize_directions_trinary(dir, mirrored, tee)
|
||||
|
||||
/obj/machinery/atmospherics/trinary/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
var/list/node_connects = get_node_connect_dirs()
|
||||
add_underlay(T, node1, node_connects[1])
|
||||
add_underlay(T, node2, node_connects[2])
|
||||
add_underlay(T, node3, node_connects[3])
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
var/list/node_connects = get_node_connect_dirs()
|
||||
add_underlay(T, node1, node_connects[1])
|
||||
add_underlay(T, node2, node_connects[2])
|
||||
add_underlay(T, node3, node_connects[3])
|
||||
|
||||
/obj/machinery/atmospherics/trinary/hide(var/i)
|
||||
update_underlays()
|
||||
|
||||
@@ -34,15 +34,15 @@
|
||||
icon_state = "tvalve[mirrored ? "m" : ""][state]"
|
||||
|
||||
/obj/machinery/atmospherics/tvalve/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
var/list/node_connects = get_node_connect_dirs()
|
||||
add_underlay(T, node1, node_connects[1])
|
||||
add_underlay(T, node2, node_connects[2])
|
||||
add_underlay(T, node3, node_connects[3])
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
var/list/node_connects = get_node_connect_dirs()
|
||||
add_underlay(T, node1, node_connects[1])
|
||||
add_underlay(T, node2, node_connects[2])
|
||||
add_underlay(T, node3, node_connects[3])
|
||||
|
||||
/obj/machinery/atmospherics/tvalve/hide(var/i)
|
||||
update_underlays()
|
||||
|
||||
@@ -42,12 +42,12 @@
|
||||
icon_state = "[use_power ? "on" : "off"]"
|
||||
|
||||
/obj/machinery/atmospherics/unary/outlet_injector/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node, dir)
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node, dir)
|
||||
|
||||
/obj/machinery/atmospherics/unary/outlet_injector/power_change()
|
||||
var/old_stat = stat
|
||||
|
||||
@@ -146,9 +146,6 @@
|
||||
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //meant to match air injector
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0)
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
cut_overlays()
|
||||
|
||||
var/vent_icon = "vent"
|
||||
@@ -172,21 +169,21 @@
|
||||
playsound(src, start_sound, 25, ignore_walls = FALSE, preference = /datum/preference/toggle/air_pump_noise)
|
||||
|
||||
|
||||
add_overlay(icon_manager.get_atmos_icon("device", , , vent_icon))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("device", , , vent_icon))
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_pump/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
if(!T.is_plating() && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||
return
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
if(!T.is_plating() && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||
return
|
||||
else
|
||||
if(node)
|
||||
add_underlay(T, node, dir, node.icon_connect_type)
|
||||
else
|
||||
if(node)
|
||||
add_underlay(T, node, dir, node.icon_connect_type)
|
||||
else
|
||||
add_underlay(T,, dir)
|
||||
add_underlay(T,, dir)
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_pump/hide()
|
||||
update_icon()
|
||||
|
||||
@@ -57,9 +57,6 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/update_icon(var/safety = 0)
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
cut_overlays()
|
||||
|
||||
var/scrubber_icon = "scrubber"
|
||||
@@ -75,21 +72,21 @@
|
||||
else
|
||||
scrubber_icon += "[use_power ? "[scrubbing ? "on" : "in"]" : "off"]"
|
||||
|
||||
add_overlay(icon_manager.get_atmos_icon("device", , , scrubber_icon))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("device", , , scrubber_icon))
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
if(!T.is_plating() && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||
return
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
if(!T.is_plating() && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||
return
|
||||
else
|
||||
if(node)
|
||||
add_underlay(T, node, dir, node.icon_connect_type)
|
||||
else
|
||||
if(node)
|
||||
add_underlay(T, node, dir, node.icon_connect_type)
|
||||
else
|
||||
add_underlay(T,, dir)
|
||||
add_underlay(T,, dir)
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/proc/set_frequency(new_frequency)
|
||||
SSradio.remove_object(src, frequency)
|
||||
|
||||
@@ -29,13 +29,13 @@
|
||||
icon_state = "valve[open]"
|
||||
|
||||
/obj/machinery/atmospherics/valve/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node1, get_dir(src, node1))
|
||||
add_underlay(T, node2, get_dir(src, node2))
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node1, get_dir(src, node1))
|
||||
add_underlay(T, node2, get_dir(src, node2))
|
||||
|
||||
/obj/machinery/atmospherics/valve/hide(var/i)
|
||||
update_underlays()
|
||||
|
||||
@@ -48,13 +48,10 @@
|
||||
node.update_underlays()
|
||||
|
||||
/obj/machinery/atmospherics/pipe/cap/update_icon(var/safety = 0)
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
alpha = 255
|
||||
|
||||
cut_overlays()
|
||||
add_overlay(icon_manager.get_atmos_icon("pipe", , pipe_color, "cap[icon_connect_type]"))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("pipe", , pipe_color, "cap[icon_connect_type]"))
|
||||
|
||||
/obj/machinery/atmospherics/pipe/cap/atmos_init()
|
||||
for(var/obj/machinery/atmospherics/target in get_step(src, dir))
|
||||
|
||||
@@ -97,14 +97,11 @@
|
||||
node3.update_underlays()
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/update_icon(var/safety = 0)
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
alpha = 255
|
||||
|
||||
cut_overlays()
|
||||
add_overlay(icon_manager.get_atmos_icon("manifold", , pipe_color, "core" + icon_connect_type))
|
||||
add_overlay(icon_manager.get_atmos_icon("manifold", , , "clamps" + icon_connect_type))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("manifold", , pipe_color, "core" + icon_connect_type))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("manifold", , , "clamps" + icon_connect_type))
|
||||
underlays.Cut()
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
@@ -97,14 +97,11 @@
|
||||
node4.update_underlays()
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/update_icon(var/safety = 0)
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
alpha = 255
|
||||
|
||||
cut_overlays()
|
||||
add_overlay(icon_manager.get_atmos_icon("manifold", , pipe_color, "4way" + icon_connect_type))
|
||||
add_overlay(icon_manager.get_atmos_icon("manifold", , , "clamps_4way" + icon_connect_type))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("manifold", , pipe_color, "4way" + icon_connect_type))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("manifold", , , "clamps_4way" + icon_connect_type))
|
||||
underlays.Cut()
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
@@ -112,17 +112,14 @@
|
||||
node2.update_underlays()
|
||||
|
||||
/obj/machinery/atmospherics/pipe/simple/update_icon(var/safety = 0)
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
alpha = 255
|
||||
|
||||
cut_overlays()
|
||||
|
||||
if(node1 && node2)
|
||||
add_overlay(icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]intact[icon_connect_type]"))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]intact[icon_connect_type]"))
|
||||
else
|
||||
add_overlay(icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]exposed[node1?1:0][node2?1:0][icon_connect_type]"))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]exposed[node1?1:0][node2?1:0][icon_connect_type]"))
|
||||
|
||||
/obj/machinery/atmospherics/pipe/simple/update_underlays()
|
||||
return
|
||||
|
||||
@@ -37,12 +37,12 @@
|
||||
return list(node1)
|
||||
|
||||
/obj/machinery/atmospherics/pipe/tank/update_underlays()
|
||||
if(..())
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node1, dir)
|
||||
..()
|
||||
underlays.Cut()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
return
|
||||
add_underlay(T, node1, dir)
|
||||
|
||||
/obj/machinery/atmospherics/pipe/tank/hide()
|
||||
update_underlays()
|
||||
|
||||
@@ -11,13 +11,10 @@
|
||||
pipe_state = "universal"
|
||||
|
||||
/obj/machinery/atmospherics/pipe/simple/visible/universal/update_icon(var/safety = 0)
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
alpha = 255
|
||||
|
||||
cut_overlays()
|
||||
add_overlay(icon_manager.get_atmos_icon("pipe", , pipe_color, "universal"))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("pipe", , pipe_color, "universal"))
|
||||
underlays.Cut()
|
||||
|
||||
if (node1)
|
||||
@@ -49,13 +46,10 @@
|
||||
pipe_state = "universal"
|
||||
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/universal/update_icon(var/safety = 0) // Doesn't leak. It's a special pipe.
|
||||
if(!check_icon_cache())
|
||||
return
|
||||
|
||||
alpha = 255
|
||||
|
||||
cut_overlays()
|
||||
add_overlay(icon_manager.get_atmos_icon("pipe", , pipe_color, "universal"))
|
||||
add_overlay(GLOB.icon_manager.get_atmos_icon("pipe", , pipe_color, "universal"))
|
||||
underlays.Cut()
|
||||
|
||||
if (node1)
|
||||
@@ -122,8 +116,8 @@
|
||||
/obj/machinery/atmospherics/proc/add_underlay_adapter(var/turf/T, var/obj/machinery/atmospherics/node, var/direction, var/icon_connect_type) //modified from add_underlay, does not make exposed underlays
|
||||
if(node)
|
||||
if(!T.is_plating() && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
|
||||
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
|
||||
else
|
||||
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
|
||||
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
|
||||
else
|
||||
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "retracted" + icon_connect_type)
|
||||
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "retracted" + icon_connect_type)
|
||||
|
||||
@@ -68,3 +68,22 @@
|
||||
#define MODULAR_BODYPART_INVALID 0 // Cannot be detached or reattached.
|
||||
#define MODULAR_BODYPART_PROSTHETIC 1 // Can be detached or reattached freely.
|
||||
#define MODULAR_BODYPART_CYBERNETIC 2 // Can be detached or reattached to compatible parent organs.
|
||||
|
||||
//CitRP Port
|
||||
#define CYBERBEAST_MONITOR_STYLES "blank=cyber_blank;\
|
||||
default=cyber_default;\
|
||||
eyes=eyes;\
|
||||
static=cyber_static;\
|
||||
alert=cyber_alert;\
|
||||
happy=cyber_happ;\
|
||||
unhappy=cyber_unhapp;\
|
||||
flat=cyber_flat;\
|
||||
sad=cyber_sad;\
|
||||
heart=cyber_heart;\
|
||||
cross=cyber_cross;\
|
||||
wave=cyber_wave;\
|
||||
uwu=cyber_uwu;\
|
||||
question=cyber_question;\
|
||||
lowpower=cyber_lowpower;\
|
||||
idle=cyber_idle;\
|
||||
nwn=cyber_nwn"
|
||||
|
||||
@@ -80,9 +80,6 @@
|
||||
#define NETWORK_OUTSIDE "Outside"
|
||||
#define NETWORK_HALLS "Halls"
|
||||
|
||||
// Those networks can only be accessed by pre-existing terminals. AIs and new terminals can't use them.
|
||||
var/list/restricted_camera_networks = list(NETWORK_ERT,NETWORK_MERCENARY,"Secret", NETWORK_COMMUNICATORS)
|
||||
|
||||
#define TRANSMISSION_WIRE 0 //Is this ever used? I don't think it is.
|
||||
#define TRANSMISSION_RADIO 1 //Radio transmissions (like airlock controller to pump)
|
||||
#define TRANSMISSION_SUBSPACE 2 //Like headsets
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
/// Define that just has the current in-universe year for use in whatever context you might want to display that in. (For example, 2022 -> 2562 given a 540 year offset)
|
||||
#define CURRENT_STATION_YEAR (GLOB.year_integer + STATION_YEAR_OFFSET)
|
||||
|
||||
/// Used in the GLOB year and tgui PreInit
|
||||
#define UTC_YEAR time2text(world.realtime,"YYYY",NO_TIMEZONE)
|
||||
|
||||
/// In-universe, SS13 is set 300 years in the future from the real-world day, hence this number for determining the year-offset for the in-game year.
|
||||
#define STATION_YEAR_OFFSET 300
|
||||
|
||||
|
||||
@@ -75,3 +75,6 @@ GLOBAL_DATUM_INIT(buildmode_hud, /icon, icon('icons/misc/buildmode.dmi'))
|
||||
GLOBAL_LIST_EMPTY(cached_character_icons)
|
||||
|
||||
GLOBAL_VAR_INIT(triai, FALSE)
|
||||
|
||||
// Pipe colors, needs to be inited before our pipe icon_manager
|
||||
GLOBAL_LIST_INIT(pipe_colors, list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "black" = PIPE_COLOR_BLACK, "orange" = PIPE_COLOR_ORANGE, "white" = PIPE_COLOR_WHITE, "purple" = PIPE_COLOR_PURPLE))
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
GLOBAL_VAR_INIT(year, time2text(world.realtime,"YYYY"))
|
||||
GLOBAL_VAR_INIT(year, UTC_YEAR)
|
||||
GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013???
|
||||
|
||||
@@ -1,4 +1,18 @@
|
||||
GLOBAL_DATUM_INIT(gear_tweak_free_color_choice, /datum/gear_tweak/color, new)
|
||||
GLOBAL_DATUM_INIT(gear_tweak_implant_location, /datum/gear_tweak/implant_location, new)
|
||||
GLOBAL_DATUM_INIT(gear_tweak_collar_tag, /datum/gear_tweak/collar_tag, new)
|
||||
|
||||
//Underwear
|
||||
GLOBAL_DATUM_INIT(global_underwear, /datum/category_collection/underwear, new)
|
||||
|
||||
//Global Datums
|
||||
GLOBAL_DATUM_INIT(icon_manager, /datum/pipe_icon_manager, new)
|
||||
GLOBAL_DATUM_INIT(emergency_shuttle, /datum/emergency_shuttle_controller, new)
|
||||
|
||||
// We manually initialize the alarm handlers instead of looping over all existing types
|
||||
// to make it possible to write: camera_alarm.triggerAlarm() rather than SSalarm.managers[datum/alarm_handler/camera].triggerAlarm() or a variant thereof.
|
||||
GLOBAL_DATUM_INIT(atmosphere_alarm, /datum/alarm_handler/atmosphere, new)
|
||||
GLOBAL_DATUM_INIT(camera_alarm, /datum/alarm_handler/camera, new)
|
||||
GLOBAL_DATUM_INIT(fire_alarm, /datum/alarm_handler/fire, new)
|
||||
GLOBAL_DATUM_INIT(motion_alarm, /datum/alarm_handler/motion, new)
|
||||
GLOBAL_DATUM_INIT(power_alarm, /datum/alarm_handler/power, new)
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
var/datum/gear_tweak/collar_tag/gear_tweak_collar_tag = new()
|
||||
@@ -22,6 +22,8 @@ GLOBAL_LIST_EMPTY(mechas_list) //list of all mechs. Used by hostile mobs ta
|
||||
var/global/list/obj/item/pda/PDAs = list()
|
||||
var/global/list/obj/item/communicator/all_communicators = list()
|
||||
|
||||
// Those networks can only be accessed by pre-existing terminals. AIs and new terminals can't use them.
|
||||
GLOBAL_LIST_INIT(restricted_camera_networks, list(NETWORK_ERT,NETWORK_MERCENARY,"Secret", NETWORK_COMMUNICATORS))
|
||||
|
||||
#define all_genders_define_list list(MALE,FEMALE,PLURAL,NEUTER,HERM)
|
||||
#define all_genders_text_list list("Male","Female","Plural","Neuter","Herm")
|
||||
@@ -631,7 +633,7 @@ var/global/list/assigned_blocks[DNA_SE_LENGTH]
|
||||
GLOBAL_LIST_EMPTY(gear_distributed_to)
|
||||
GLOBAL_LIST_EMPTY(overlay_cache) //cache recent overlays
|
||||
|
||||
var/global/list/all_technomancer_gambit_spells = typesof(/obj/item/spell) - list(
|
||||
GLOBAL_LIST_INIT(all_technomancer_gambit_spells, typesof(/obj/item/spell) - list(
|
||||
/obj/item/spell,
|
||||
/obj/item/spell/gambit,
|
||||
/obj/item/spell/projectile,
|
||||
@@ -639,7 +641,7 @@ var/global/list/all_technomancer_gambit_spells = typesof(/obj/item/spell) - list
|
||||
// /obj/item/spell/insert,
|
||||
/obj/item/spell/spawner,
|
||||
/obj/item/spell/summon,
|
||||
/obj/item/spell/modifier)
|
||||
/obj/item/spell/modifier))
|
||||
|
||||
var/global/list/image/splatter_cache=list()
|
||||
var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' objective. Clumsy, rewrite sometime.
|
||||
@@ -1199,18 +1201,6 @@ GLOBAL_LIST_INIT(all_tooltip_styles, list(
|
||||
"Clockwork"
|
||||
))
|
||||
|
||||
//Global Datums
|
||||
var/global/datum/pipe_icon_manager/icon_manager
|
||||
var/global/datum/emergency_shuttle_controller/emergency_shuttle = new
|
||||
|
||||
// We manually initialize the alarm handlers instead of looping over all existing types
|
||||
// to make it possible to write: camera_alarm.triggerAlarm() rather than SSalarm.managers[datum/alarm_handler/camera].triggerAlarm() or a variant thereof.
|
||||
/var/global/datum/alarm_handler/atmosphere/atmosphere_alarm = new()
|
||||
/var/global/datum/alarm_handler/camera/camera_alarm = new()
|
||||
/var/global/datum/alarm_handler/fire/fire_alarm = new()
|
||||
/var/global/datum/alarm_handler/motion/motion_alarm = new()
|
||||
/var/global/datum/alarm_handler/power/power_alarm = new()
|
||||
|
||||
GLOBAL_LIST_EMPTY(gun_choices)
|
||||
|
||||
GLOBAL_ALIST_INIT(severity_to_string, list(
|
||||
@@ -1624,6 +1614,11 @@ GLOBAL_LIST_INIT(suitable_fish_turf_types, list(
|
||||
/turf/simulated/floor/water
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(ventcrawl_machinery, list(
|
||||
/obj/machinery/atmospherics/unary/vent_pump,
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber
|
||||
))
|
||||
|
||||
GLOBAL_LIST_BOILERPLATE(papers_dockingcode, /obj/item/paper/dockingcodes)
|
||||
|
||||
//Chamelion clothing was all stupid so it's done here instead.
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
if(Player.mind && !isnewplayer(Player))
|
||||
if(Player.stat != DEAD)
|
||||
var/turf/playerTurf = get_turf(Player)
|
||||
if(emergency_shuttle.departed && emergency_shuttle.evac)
|
||||
if(GLOB.emergency_shuttle.departed && GLOB.emergency_shuttle.evac)
|
||||
if(isNotAdminLevel(playerTurf.z))
|
||||
to_chat(Player, span_filter_system(span_blue(span_bold("You survived the round, but remained on [station_name()] as [Player.real_name]."))))
|
||||
else
|
||||
|
||||
@@ -79,8 +79,7 @@ ADMIN_VERB(debug_controller, R_DEBUG, "Debug Controller", "Debug the various per
|
||||
//Goon PS stuff, and other yet-to-be-subsystem things.
|
||||
options["LEGACY: master_controller"] = GLOB.master_controller
|
||||
options["LEGACY: job_master"] = GLOB.job_master
|
||||
options["LEGACY: SSradio"] = SSradio
|
||||
options["LEGACY: emergency_shuttle"] = emergency_shuttle
|
||||
options["LEGACY: emergency_shuttle"] = GLOB.emergency_shuttle
|
||||
options["LEGACY: paiController"] = paiController
|
||||
options["LEGACY: cameranet"] = cameranet
|
||||
options["LEGACY: transfer_controller"] = GLOB.transfer_controller
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
return 0 //not at station
|
||||
return (wait_for_launch || shuttle.moving_status != SHUTTLE_INTRANSIT)
|
||||
|
||||
//so we don't have emergency_shuttle.shuttle.location everywhere
|
||||
//so we don't have GLOB.emergency_shuttle.shuttle.location everywhere
|
||||
/datum/emergency_shuttle_controller/proc/location()
|
||||
if (!shuttle)
|
||||
return 1 //if we dont have a shuttle datum, just act like it's at centcom
|
||||
@@ -228,14 +228,14 @@
|
||||
/datum/emergency_shuttle_controller/proc/get_status_panel_eta()
|
||||
if (online())
|
||||
if (shuttle.has_arrive_time())
|
||||
var/timeleft = emergency_shuttle.estimate_arrival_time()
|
||||
var/timeleft = GLOB.emergency_shuttle.estimate_arrival_time()
|
||||
return "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]"
|
||||
|
||||
if (waiting_to_leave())
|
||||
if (shuttle.moving_status == SHUTTLE_WARMUP)
|
||||
return "Departing..."
|
||||
|
||||
var/timeleft = emergency_shuttle.estimate_launch_time()
|
||||
var/timeleft = GLOB.emergency_shuttle.estimate_launch_time()
|
||||
return "ETD-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]"
|
||||
|
||||
return ""
|
||||
|
||||
@@ -10,7 +10,7 @@ SUBSYSTEM_DEF(alarm)
|
||||
var/static/list/active_alarm_cache = list()
|
||||
|
||||
/datum/controller/subsystem/alarm/Initialize()
|
||||
all_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
|
||||
all_handlers = list(GLOB.atmosphere_alarm, GLOB.camera_alarm, GLOB.fire_alarm, GLOB.motion_alarm, GLOB.power_alarm)
|
||||
return SS_INIT_SUCCESS
|
||||
|
||||
/datum/controller/subsystem/alarm/fire(resumed = FALSE)
|
||||
|
||||
@@ -469,8 +469,8 @@ SUBSYSTEM_DEF(internal_wiki)
|
||||
SHOULD_NOT_OVERRIDE(TRUE)
|
||||
PRIVATE_PROC(TRUE)
|
||||
// assemble material wiki
|
||||
for(var/mat in name_to_material)
|
||||
var/datum/material/M = name_to_material[mat]
|
||||
for(var/mat, value in GLOB.name_to_material)
|
||||
var/datum/material/M = value
|
||||
if(M.wiki_flag & WIKI_SPOILER)
|
||||
spoiler_entries.Add(M.type)
|
||||
continue
|
||||
|
||||
@@ -36,8 +36,8 @@ SUBSYSTEM_DEF(statpanels)
|
||||
"Time Dilation: [round(SStime_track.time_dilation_current,1)]% AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, [round(SStime_track.time_dilation_avg,1)]%, [round(SStime_track.time_dilation_avg_slow,1)]%)"
|
||||
)
|
||||
|
||||
if(emergency_shuttle.evac)
|
||||
var/ETA = emergency_shuttle.get_status_panel_eta()
|
||||
if(GLOB.emergency_shuttle.evac)
|
||||
var/ETA = GLOB.emergency_shuttle.get_status_panel_eta()
|
||||
if(ETA)
|
||||
global_data += "[ETA]"
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ SUBSYSTEM_DEF(tgui)
|
||||
ntos_error = "<style type='text/css'>\n[ntos_error]\n</style>"
|
||||
basehtml = replacetextEx(basehtml, "<!-- tgui:ntos-error -->", ntos_error)
|
||||
|
||||
basehtml = replacetextEx(basehtml, "<!-- tgui:nt-copyright -->", "Nanotrasen (c) 2284-[text2num(time2text(world.realtime,"YYYY")) + STATION_YEAR_OFFSET]")
|
||||
basehtml = replacetextEx(basehtml, "<!-- tgui:nt-copyright -->", "Nanotrasen (c) 2284-[text2num(UTC_YEAR) + STATION_YEAR_OFFSET]") // This can't use the GLOB as it runs before those are populated
|
||||
|
||||
/datum/controller/subsystem/tgui/OnConfigLoad()
|
||||
var/storage_iframe = CONFIG_GET(string/storage_cdn_iframe)
|
||||
|
||||
@@ -158,10 +158,10 @@ SUBSYSTEM_DEF(ticker)
|
||||
var/game_finished = FALSE
|
||||
var/mode_finished = FALSE
|
||||
if (CONFIG_GET(flag/continuous_rounds)) // Game keeps going after mode ends.
|
||||
game_finished = (emergency_shuttle.returned() || mode.station_was_nuked)
|
||||
game_finished = (GLOB.emergency_shuttle.returned() || mode.station_was_nuked)
|
||||
mode_finished = ((end_game_state >= END_GAME_MODE_FINISHED) || mode.check_finished()) // Short circuit if already finished.
|
||||
else // Game ends when mode does
|
||||
game_finished = (mode.check_finished() || (emergency_shuttle.returned() && emergency_shuttle.evac == 1)) || GLOB.universe_has_ended
|
||||
game_finished = (mode.check_finished() || (GLOB.emergency_shuttle.returned() && GLOB.emergency_shuttle.evac == 1)) || GLOB.universe_has_ended
|
||||
mode_finished = game_finished
|
||||
|
||||
if(game_finished && mode_finished)
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
/datum/category_group/autolathe/all/New()
|
||||
..()
|
||||
|
||||
for(var/Name in name_to_material)
|
||||
var/datum/material/M = name_to_material[Name]
|
||||
for(var/mame, value in GLOB.name_to_material)
|
||||
var/datum/material/M = value
|
||||
|
||||
if(!M.stack_type) // Shouldn't happen, but might. Never know.
|
||||
continue
|
||||
@@ -93,8 +93,8 @@
|
||||
/datum/category_group/autolathe/materials/New()
|
||||
..()
|
||||
|
||||
for(var/Name in name_to_material)
|
||||
var/datum/material/M = name_to_material[Name]
|
||||
for(var/name, value in GLOB.name_to_material)
|
||||
var/datum/material/M = value
|
||||
|
||||
if(!M.stack_type) // Shouldn't happen, but might. Never know.
|
||||
continue
|
||||
|
||||
@@ -18,8 +18,7 @@
|
||||
verbpath = /mob/proc/changeling_hivedownload
|
||||
|
||||
// HIVE MIND UPLOAD/DOWNLOAD DNA
|
||||
|
||||
var/list/datum/dna/hivemind_bank = list()
|
||||
GLOBAL_LIST_EMPTY_TYPED(hivemind_bank, /datum/dna)
|
||||
|
||||
/mob/proc/changeling_hiveupload()
|
||||
set category = "Changeling"
|
||||
@@ -32,7 +31,7 @@ var/list/datum/dna/hivemind_bank = list()
|
||||
|
||||
var/list/names = list()
|
||||
for(var/datum/absorbed_dna/DNA in changeling.absorbed_dna)
|
||||
if(!(DNA in hivemind_bank))
|
||||
if(!(DNA in GLOB.hivemind_bank))
|
||||
names += DNA.name
|
||||
|
||||
if(names.len <= 0)
|
||||
@@ -48,7 +47,7 @@ var/list/datum/dna/hivemind_bank = list()
|
||||
return
|
||||
|
||||
changeling.chem_charges -= 10
|
||||
hivemind_bank += chosen_dna
|
||||
GLOB.hivemind_bank += chosen_dna
|
||||
to_chat(src, span_notice("We channel the DNA of [S] to the air."))
|
||||
feedback_add_details("changeling_powers","HU")
|
||||
return TRUE
|
||||
@@ -63,7 +62,7 @@ var/list/datum/dna/hivemind_bank = list()
|
||||
return
|
||||
|
||||
var/list/names = list()
|
||||
for(var/datum/absorbed_dna/DNA in hivemind_bank)
|
||||
for(var/datum/absorbed_dna/DNA in GLOB.hivemind_bank)
|
||||
if(!(DNA in changeling.absorbed_dna))
|
||||
names[DNA.name] = DNA
|
||||
|
||||
|
||||
@@ -109,13 +109,13 @@ GLOBAL_LIST_EMPTY(areas_by_type)
|
||||
|
||||
/area/proc/atmosalert(danger_level, var/alarm_source)
|
||||
if (danger_level == 0)
|
||||
atmosphere_alarm.clearAlarm(src, alarm_source)
|
||||
GLOB.atmosphere_alarm.clearAlarm(src, alarm_source)
|
||||
else
|
||||
var/obj/machinery/alarm/atmosalarm = alarm_source //maybe other things can trigger these, who knows
|
||||
if(istype(atmosalarm))
|
||||
atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level, hidden = atmosalarm.alarms_hidden)
|
||||
GLOB.atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level, hidden = atmosalarm.alarms_hidden)
|
||||
else
|
||||
atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level)
|
||||
GLOB.atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level)
|
||||
|
||||
//Check all the alarms before lowering atmosalm. Raising is perfectly fine.
|
||||
var/obj/machinery/alarm/AM = main_air_alarm?.resolve()
|
||||
|
||||
@@ -53,9 +53,9 @@ GLOBAL_VAR_INIT(narsie_cometh, 0)
|
||||
GLOB.narsie_cometh = 1
|
||||
|
||||
spawn(10 SECONDS)
|
||||
if(emergency_shuttle)
|
||||
emergency_shuttle.call_evac()
|
||||
emergency_shuttle.launch_time = 0 // Cannot recall
|
||||
if(GLOB.emergency_shuttle)
|
||||
GLOB.emergency_shuttle.call_evac()
|
||||
GLOB.emergency_shuttle.launch_time = 0 // Cannot recall
|
||||
|
||||
/obj/singularity/narsie/process()
|
||||
eat()
|
||||
|
||||
@@ -203,9 +203,9 @@ GLOBAL_LIST_EMPTY(sacrificed)
|
||||
GLOB.narsie_cometh = 1
|
||||
|
||||
spawn(10 SECONDS)
|
||||
if(emergency_shuttle)
|
||||
emergency_shuttle.call_evac()
|
||||
emergency_shuttle.launch_time = 0 // Cannot recall
|
||||
if(GLOB.emergency_shuttle)
|
||||
GLOB.emergency_shuttle.call_evac()
|
||||
GLOB.emergency_shuttle.launch_time = 0 // Cannot recall
|
||||
|
||||
log_and_message_admins_many(cultists, "summoned the end of days.")
|
||||
return
|
||||
|
||||
@@ -44,9 +44,9 @@ GLOBAL_VAR_INIT(universe_has_ended, 0)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
M.flash_eyes()
|
||||
|
||||
if(emergency_shuttle.can_recall())
|
||||
if(GLOB.emergency_shuttle.can_recall())
|
||||
priority_announcement.Announce("The emergency shuttle has returned due to bluespace distortion.")
|
||||
emergency_shuttle.recall()
|
||||
GLOB.emergency_shuttle.recall()
|
||||
|
||||
AreaSet()
|
||||
MiscSet()
|
||||
|
||||
@@ -214,8 +214,8 @@ GLOBAL_LIST_EMPTY(additional_antag_types)
|
||||
if(antag.is_latejoin_template())
|
||||
latejoin_templates |= antag
|
||||
|
||||
if(emergency_shuttle && auto_recall_shuttle)
|
||||
emergency_shuttle.auto_recall = 1
|
||||
if(GLOB.emergency_shuttle && auto_recall_shuttle)
|
||||
GLOB.emergency_shuttle.auto_recall = 1
|
||||
|
||||
feedback_set_details("round_start","[time2text(world.realtime)]")
|
||||
INVOKE_ASYNC(SSdbcore, TYPE_PROC_REF(/datum/controller/subsystem/dbcore, SetRoundStart))
|
||||
@@ -267,14 +267,14 @@ GLOBAL_LIST_EMPTY(additional_antag_types)
|
||||
command_announcement.Announce("The presence of [pick(reasons)] in the region is tying up all available local emergency resources; emergency response teams cannot be called at this time, and post-evacuation recovery efforts will be substantially delayed.","Emergency Transmission")
|
||||
|
||||
/datum/game_mode/proc/check_finished()
|
||||
if(emergency_shuttle.returned() || station_was_nuked)
|
||||
if(GLOB.emergency_shuttle.returned() || station_was_nuked)
|
||||
return 1
|
||||
if(end_on_antag_death && antag_templates && antag_templates.len)
|
||||
for(var/datum/antagonist/antag in antag_templates)
|
||||
if(!antag.antags_are_dead())
|
||||
return 0
|
||||
if(CONFIG_GET(flag/continuous_rounds))
|
||||
emergency_shuttle.auto_recall = 0
|
||||
GLOB.emergency_shuttle.auto_recall = 0
|
||||
return 0
|
||||
return 1
|
||||
return 0
|
||||
@@ -344,7 +344,7 @@ GLOBAL_LIST_EMPTY(additional_antag_types)
|
||||
var/text = ""
|
||||
if(surviving_total > 0)
|
||||
text += "<br>There [surviving_total>1 ? ("were " + span_bold("[surviving_total] survivors")) : ("was " + span_bold("one survivor"))] ("
|
||||
text += span_bold("[escaped_total>0 ? escaped_total : "none"] [emergency_shuttle.evac ? "escaped" : "transferred"]") + ") and " + span_bold("[ghosts] ghosts")
|
||||
text += span_bold("[escaped_total>0 ? escaped_total : "none"] [GLOB.emergency_shuttle.evac ? "escaped" : "transferred"]") + ") and " + span_bold("[ghosts] ghosts")
|
||||
text += ".<br>"
|
||||
else
|
||||
text += "There were " + span_bold("no survivors") + " (" + span_bold("[ghosts] ghosts") + ")."
|
||||
|
||||
@@ -28,10 +28,10 @@
|
||||
|
||||
/datum/game_mode/proc/try_latespawn(var/datum/mind/player, var/latejoin_only)
|
||||
|
||||
if(emergency_shuttle.departed || !round_autoantag)
|
||||
if(GLOB.emergency_shuttle.departed || !round_autoantag)
|
||||
return
|
||||
|
||||
if(emergency_shuttle.shuttle && (emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP || emergency_shuttle.shuttle.moving_status == SHUTTLE_INTRANSIT))
|
||||
if(GLOB.emergency_shuttle.shuttle && (GLOB.emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP || GLOB.emergency_shuttle.shuttle.moving_status == SHUTTLE_INTRANSIT))
|
||||
return // Don't do anything if the shuttle's coming.
|
||||
|
||||
var/mills = round_duration_in_ds
|
||||
|
||||
@@ -267,7 +267,7 @@ datum
|
||||
explanation_text = "Frame [target.current.real_name], the [target.assigned_role] for a crime and make sure they are arrested and brought back to the CentCom station alive. We'll handle the rest from there."
|
||||
|
||||
check_completion()
|
||||
if(!emergency_shuttle.returned())
|
||||
if(!GLOB.emergency_shuttle.returned())
|
||||
return 0
|
||||
if(target.current.stat == 2)
|
||||
return 0
|
||||
@@ -313,7 +313,7 @@ datum
|
||||
explanation_text = "[target.current.real_name], the [target.assigned_role] is a [pick("relative of a","friend of a","") + pick("high ranking","important","well-liked")] mercenary [pick("Leader","Officer","Agent","sympathiser")]. Make sure they get off the station safely, while minimizing intervention."
|
||||
|
||||
check_completion()
|
||||
if(!emergency_shuttle.returned())
|
||||
if(!GLOB.emergency_shuttle.returned())
|
||||
return 0
|
||||
|
||||
if(target.current.stat == 2)
|
||||
@@ -477,7 +477,7 @@ datum
|
||||
explanation_text = "Hijack the emergency shuttle by escaping alone."
|
||||
|
||||
check_completion()
|
||||
if(!emergency_shuttle.returned())
|
||||
if(!GLOB.emergency_shuttle.returned())
|
||||
return 0
|
||||
|
||||
if(!owner.current || owner.current.stat == 2)
|
||||
@@ -512,7 +512,7 @@ datum
|
||||
explanation_text = "Escape on the shuttle alive, without being arrested."
|
||||
|
||||
check_completion()
|
||||
if(!emergency_shuttle.returned())
|
||||
if(!GLOB.emergency_shuttle.returned())
|
||||
return 0
|
||||
|
||||
if(!owner.current || owner.current.stat ==2)
|
||||
@@ -1230,7 +1230,7 @@ datum
|
||||
check_completion()
|
||||
if(!istype(owner.current, /mob/living/silicon))
|
||||
return 0
|
||||
if(!emergency_shuttle.returned())
|
||||
if(!GLOB.emergency_shuttle.returned())
|
||||
return 0
|
||||
if(!owner.current)
|
||||
return 0
|
||||
@@ -1457,7 +1457,7 @@ datum
|
||||
explanation_text = "Do not allow anyone to escape the station. Only allow the shuttle to be called when everyone is dead and your story is the only one left."
|
||||
|
||||
check_completion()
|
||||
if(!emergency_shuttle.returned())
|
||||
if(!GLOB.emergency_shuttle.returned())
|
||||
return 0
|
||||
|
||||
var/area/shuttle = locate(/area/shuttle/escape/centcom)
|
||||
|
||||
@@ -41,7 +41,7 @@ GLOBAL_LIST_EMPTY(nuke_disks)
|
||||
if(!is_type_in_list(disk_area, GLOB.centcom_areas))
|
||||
disk_rescued = 0
|
||||
break
|
||||
var/crew_evacuated = (emergency_shuttle.returned())
|
||||
var/crew_evacuated = (GLOB.emergency_shuttle.returned())
|
||||
|
||||
if(!disk_rescued && station_was_nuked && !syndies_didnt_escape)
|
||||
feedback_set_details("round_end_result","win - syndicate nuke")
|
||||
|
||||
@@ -219,7 +219,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
|
||||
/datum/objective/hijack/check_completion()
|
||||
if(!owner.current || owner.current.stat)
|
||||
return 0
|
||||
if(!emergency_shuttle.returned())
|
||||
if(!GLOB.emergency_shuttle.returned())
|
||||
return 0
|
||||
if(issilicon(owner.current))
|
||||
return 0
|
||||
@@ -241,7 +241,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
|
||||
/datum/objective/block/check_completion()
|
||||
if(!istype(owner.current, /mob/living/silicon))
|
||||
return 0
|
||||
if(!emergency_shuttle.returned())
|
||||
if(!GLOB.emergency_shuttle.returned())
|
||||
return 0
|
||||
if(!owner.current)
|
||||
return 0
|
||||
@@ -259,7 +259,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
|
||||
explanation_text = "Do not allow anyone to escape the station. Only allow the shuttle to be called when everyone is dead and your story is the only one left."
|
||||
|
||||
/datum/objective/silence/check_completion()
|
||||
if(!emergency_shuttle.returned())
|
||||
if(!GLOB.emergency_shuttle.returned())
|
||||
return 0
|
||||
|
||||
for(var/mob/living/player in GLOB.player_list)
|
||||
@@ -284,7 +284,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
|
||||
return 0
|
||||
if(isbrain(owner.current))
|
||||
return 0
|
||||
if(!emergency_shuttle.returned())
|
||||
if(!GLOB.emergency_shuttle.returned())
|
||||
return 0
|
||||
if(!owner.current || owner.current.stat ==2)
|
||||
return 0
|
||||
|
||||
@@ -14,4 +14,4 @@
|
||||
/datum/game_mode/sandbox/post_setup()
|
||||
..()
|
||||
if(emergency_shuttle)
|
||||
emergency_shuttle.auto_recall = 1
|
||||
GLOB.emergency_shuttle.auto_recall = 1
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
// Gives a random spell.
|
||||
/obj/item/spell/gambit/proc/random_spell()
|
||||
var/list/potential_spells = all_technomancer_gambit_spells.Copy()
|
||||
var/list/potential_spells = GLOB.all_technomancer_gambit_spells.Copy()
|
||||
var/rare_spell_chance = between(0, calculate_spell_power(100) - 100, 100) // Having 120% spellpower means a 20% chance to get to roll for rare spells.
|
||||
if(prob(rare_spell_chance))
|
||||
potential_spells += rare_spells.Copy()
|
||||
@@ -119,6 +119,6 @@
|
||||
|
||||
// Fallback method in case nothing gets added.
|
||||
if(!potential_spells.len)
|
||||
potential_spells = all_technomancer_gambit_spells.Copy()
|
||||
potential_spells = GLOB.all_technomancer_gambit_spells.Copy()
|
||||
|
||||
return pick(potential_spells)
|
||||
|
||||
@@ -310,14 +310,14 @@
|
||||
|
||||
/obj/machinery/camera/proc/triggerCameraAlarm(var/duration = 0)
|
||||
alarm_on = 1
|
||||
camera_alarm.triggerAlarm(loc, src, duration)
|
||||
GLOB.camera_alarm.triggerAlarm(loc, src, duration)
|
||||
|
||||
/obj/machinery/camera/proc/cancelCameraAlarm()
|
||||
if(wires.is_cut(WIRE_CAM_ALARM))
|
||||
return
|
||||
|
||||
alarm_on = 0
|
||||
camera_alarm.clearAlarm(loc, src)
|
||||
GLOB.camera_alarm.clearAlarm(loc, src)
|
||||
|
||||
//if false, then the camera is listed as DEACTIVATED and cannot be used
|
||||
/obj/machinery/camera/proc/can_use()
|
||||
@@ -462,7 +462,7 @@
|
||||
|
||||
/obj/machinery/camera/proc/update_coverage(var/network_change = 0)
|
||||
if(network_change)
|
||||
var/list/open_networks = difflist(network, restricted_camera_networks)
|
||||
var/list/open_networks = difflist(network, GLOB.restricted_camera_networks)
|
||||
// Add or remove camera from the camera net as necessary
|
||||
if(on_open_network && !open_networks.len)
|
||||
cameranet.removeCamera(src)
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
if (!status || (stat & NOPOWER))
|
||||
return 0
|
||||
if (detectTime == -1)
|
||||
motion_alarm.clearAlarm(loc, src)
|
||||
GLOB.motion_alarm.clearAlarm(loc, src)
|
||||
detectTime = 0
|
||||
return 1
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
if (!status || (stat & NOPOWER))
|
||||
return 0
|
||||
if (!detectTime) return 0
|
||||
motion_alarm.triggerAlarm(loc, src)
|
||||
GLOB.motion_alarm.triggerAlarm(loc, src)
|
||||
detectTime = -1
|
||||
return 1
|
||||
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
|
||||
/obj/machinery/computer/atmos_alert/Initialize(mapload)
|
||||
. = ..()
|
||||
atmosphere_alarm.register_alarm(src, /atom/proc/update_icon)
|
||||
GLOB.atmosphere_alarm.register_alarm(src, /atom/proc/update_icon)
|
||||
|
||||
/obj/machinery/computer/atmos_alert/Destroy()
|
||||
atmosphere_alarm.unregister_alarm(src)
|
||||
GLOB.atmosphere_alarm.unregister_alarm(src)
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/computer/atmos_alert/attack_hand(mob/user)
|
||||
@@ -28,10 +28,10 @@
|
||||
var/list/major_alarms = list()
|
||||
var/list/minor_alarms = list()
|
||||
|
||||
for(var/datum/alarm/alarm in atmosphere_alarm.major_alarms(get_z(src)))
|
||||
for(var/datum/alarm/alarm in GLOB.atmosphere_alarm.major_alarms(get_z(src)))
|
||||
major_alarms[++major_alarms.len] = list("name" = sanitize(alarm.alarm_name()), "ref" = "\ref[alarm]")
|
||||
|
||||
for(var/datum/alarm/alarm in atmosphere_alarm.minor_alarms(get_z(src)))
|
||||
for(var/datum/alarm/alarm in GLOB.atmosphere_alarm.minor_alarms(get_z(src)))
|
||||
minor_alarms[++minor_alarms.len] = list("name" = sanitize(alarm.alarm_name()), "ref" = "\ref[alarm]")
|
||||
|
||||
data["priority_alarms"] = major_alarms
|
||||
@@ -41,11 +41,11 @@
|
||||
|
||||
/obj/machinery/computer/atmos_alert/update_icon()
|
||||
if(!(stat & (NOPOWER|BROKEN)))
|
||||
var/list/alarms = atmosphere_alarm.major_alarms()
|
||||
var/list/alarms = GLOB.atmosphere_alarm.major_alarms()
|
||||
if(alarms.len)
|
||||
icon_screen = "alert:2"
|
||||
else
|
||||
alarms = atmosphere_alarm.minor_alarms()
|
||||
alarms = GLOB.atmosphere_alarm.minor_alarms()
|
||||
if(alarms.len)
|
||||
icon_screen = "alert:1"
|
||||
else
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
switch(action)
|
||||
if("clear")
|
||||
var/datum/alarm/alarm = locate(params["ref"]) in atmosphere_alarm.alarms
|
||||
var/datum/alarm/alarm = locate(params["ref"]) in GLOB.atmosphere_alarm.alarms
|
||||
if(alarm)
|
||||
for(var/datum/alarm_source/alarm_source in alarm.sources)
|
||||
var/obj/machinery/alarm/air_alarm = alarm_source.source
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
/obj/machinery/computer/shuttle/attackby(var/obj/item/card/W as obj, var/mob/user as mob)
|
||||
if(stat & (BROKEN|NOPOWER)) return
|
||||
if ((!( istype(W, /obj/item/card) ) || !( SSticker ) || emergency_shuttle.location() || !( user ))) return
|
||||
if ((!( istype(W, /obj/item/card) ) || !( SSticker ) || GLOB.emergency_shuttle.location() || !( user ))) return
|
||||
if (istype(W, /obj/item/card/id)||istype(W, /obj/item/pda))
|
||||
if (istype(W, /obj/item/pda))
|
||||
var/obj/item/pda/pda = W
|
||||
@@ -29,7 +29,7 @@
|
||||
return 0
|
||||
|
||||
var/choice = tgui_alert(user, text("Would you like to (un)authorize a shortened launch time? [] authorization\s are still needed. Use abort to cancel all authorizations.", src.auth_need - src.authorized.len), "Shuttle Launch", list("Authorize", "Repeal", "Abort"))
|
||||
if(emergency_shuttle.location() && user.get_active_hand() != W)
|
||||
if(GLOB.emergency_shuttle.location() && user.get_active_hand() != W)
|
||||
return 0
|
||||
switch(choice)
|
||||
if("Authorize")
|
||||
@@ -43,7 +43,7 @@
|
||||
message_admins("[key_name_admin(user)] has launched the shuttle")
|
||||
log_game("[user.ckey] has launched the shuttle early")
|
||||
to_chat(world, span_boldnotice("Alert: Shuttle launch time shortened to 10 seconds!"))
|
||||
emergency_shuttle.set_launch_countdown(10)
|
||||
GLOB.emergency_shuttle.set_launch_countdown(10)
|
||||
//src.authorized = null
|
||||
qdel(src.authorized)
|
||||
src.authorized = list( )
|
||||
@@ -60,11 +60,11 @@
|
||||
else if (istype(W, /obj/item/card/emag) && !emagged)
|
||||
var/choice = tgui_alert(user, "Would you like to launch the shuttle?", "Shuttle control", list("Launch", "Cancel"))
|
||||
|
||||
if(!emagged && !emergency_shuttle.location() && user.get_active_hand() == W)
|
||||
if(!emagged && !GLOB.emergency_shuttle.location() && user.get_active_hand() == W)
|
||||
switch(choice)
|
||||
if("Launch")
|
||||
to_chat(world, span_boldnotice("Alert: Shuttle launch time shortened to 10 seconds!"))
|
||||
emergency_shuttle.set_launch_countdown(10)
|
||||
GLOB.emergency_shuttle.set_launch_countdown(10)
|
||||
emagged = 1
|
||||
if("Cancel")
|
||||
return
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
#define SPECOPS_DOCK_AREATYPE "/area/shuttle/specops/centcom" //Type of the spec ops shuttle area for dock
|
||||
#define SPECOPS_RETURN_DELAY 600 //Time between the shuttle is capable of moving.
|
||||
|
||||
var/specops_shuttle_moving_to_station = 0
|
||||
var/specops_shuttle_moving_to_centcom = 0
|
||||
var/specops_shuttle_at_station = 0
|
||||
var/specops_shuttle_can_send = 1
|
||||
var/specops_shuttle_time = 0
|
||||
var/specops_shuttle_timeleft = 0
|
||||
GLOBAL_VAR_INIT(specops_shuttle_moving_to_station, 0)
|
||||
GLOBAL_VAR_INIT(specops_shuttle_moving_to_centcom, 0)
|
||||
GLOBAL_VAR_INIT(specops_shuttle_at_station, 0)
|
||||
GLOBAL_VAR_INIT(specops_shuttle_can_send, 1)
|
||||
GLOBAL_VAR_INIT(specops_shuttle_time, 0)
|
||||
GLOBAL_VAR_INIT(specops_shuttle_timeleft, 0)
|
||||
|
||||
/obj/machinery/computer/specops_shuttle
|
||||
name = "special operations shuttle control console"
|
||||
@@ -32,16 +32,16 @@ var/specops_shuttle_timeleft = 0
|
||||
if(announcer)
|
||||
announcer.autosay(message, "A.L.I.C.E.", CHANNEL_RESPONSE_TEAM)
|
||||
|
||||
while(specops_shuttle_time - world.timeofday > 0)
|
||||
var/ticksleft = specops_shuttle_time - world.timeofday
|
||||
while(GLOB.specops_shuttle_time - world.timeofday > 0)
|
||||
var/ticksleft = GLOB.specops_shuttle_time - world.timeofday
|
||||
|
||||
if(ticksleft > 1e5)
|
||||
specops_shuttle_time = world.timeofday + 10 // midnight rollover
|
||||
specops_shuttle_timeleft = (ticksleft / 10)
|
||||
GLOB.specops_shuttle_time = world.timeofday + 10 // midnight rollover
|
||||
GLOB.specops_shuttle_timeleft = (ticksleft / 10)
|
||||
|
||||
//All this does is announce the time before launch.
|
||||
if(announcer)
|
||||
var/rounded_time_left = round(specops_shuttle_timeleft)//Round time so that it will report only once, not in fractions.
|
||||
var/rounded_time_left = round(GLOB.specops_shuttle_timeleft)//Round time so that it will report only once, not in fractions.
|
||||
if(rounded_time_left in message_tracker)//If that time is in the list for message announce.
|
||||
message = "\"ALERT: [rounded_time_left] SECOND[(rounded_time_left!=1)?"S":""] REMAIN\""
|
||||
if(rounded_time_left==0)
|
||||
@@ -52,10 +52,10 @@ var/specops_shuttle_timeleft = 0
|
||||
|
||||
sleep(5)
|
||||
|
||||
specops_shuttle_moving_to_station = 0
|
||||
specops_shuttle_moving_to_centcom = 0
|
||||
GLOB.specops_shuttle_moving_to_station = 0
|
||||
GLOB.specops_shuttle_moving_to_centcom = 0
|
||||
|
||||
specops_shuttle_at_station = 1
|
||||
GLOB.specops_shuttle_at_station = 1
|
||||
|
||||
var/area/start_location = locate(/area/shuttle/specops/station)
|
||||
var/area/end_location = locate(/area/shuttle/specops/centcom)
|
||||
@@ -90,7 +90,7 @@ var/specops_shuttle_timeleft = 0
|
||||
var/mob/M = locate(/mob) in T
|
||||
to_chat(M, span_notice("You have arrived at [using_map.boss_name]. Operation has ended!"))
|
||||
|
||||
specops_shuttle_at_station = 0
|
||||
GLOB.specops_shuttle_at_station = 0
|
||||
|
||||
for(var/obj/machinery/computer/specops_shuttle/S in GLOB.machines)
|
||||
S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY
|
||||
@@ -109,16 +109,16 @@ var/specops_shuttle_timeleft = 0
|
||||
// message = "ARMORED SQUAD TAKE YOUR POSITION ON GRAVITY LAUNCH PAD"
|
||||
// announcer.autosay(message, "A.L.I.C.E.", CHANNEL_RESPONSE_TEAM)
|
||||
|
||||
while(specops_shuttle_time - world.timeofday > 0)
|
||||
var/ticksleft = specops_shuttle_time - world.timeofday
|
||||
while(GLOB.specops_shuttle_time - world.timeofday > 0)
|
||||
var/ticksleft = GLOB.specops_shuttle_time - world.timeofday
|
||||
|
||||
if(ticksleft > 1e5)
|
||||
specops_shuttle_time = world.timeofday + 10 // midnight rollover
|
||||
specops_shuttle_timeleft = (ticksleft / 10)
|
||||
GLOB.specops_shuttle_time = world.timeofday + 10 // midnight rollover
|
||||
GLOB.specops_shuttle_timeleft = (ticksleft / 10)
|
||||
|
||||
//All this does is announce the time before launch.
|
||||
if(announcer)
|
||||
var/rounded_time_left = round(specops_shuttle_timeleft)//Round time so that it will report only once, not in fractions.
|
||||
var/rounded_time_left = round(GLOB.specops_shuttle_timeleft)//Round time so that it will report only once, not in fractions.
|
||||
if(rounded_time_left in message_tracker)//If that time is in the list for message announce.
|
||||
message = "\"ALERT: [rounded_time_left] SECOND[(rounded_time_left!=1)?"S":""] REMAIN\""
|
||||
if(rounded_time_left==0)
|
||||
@@ -129,11 +129,11 @@ var/specops_shuttle_timeleft = 0
|
||||
|
||||
sleep(5)
|
||||
|
||||
specops_shuttle_moving_to_station = 0
|
||||
specops_shuttle_moving_to_centcom = 0
|
||||
GLOB.specops_shuttle_moving_to_station = 0
|
||||
GLOB.specops_shuttle_moving_to_centcom = 0
|
||||
|
||||
specops_shuttle_at_station = 1
|
||||
if (specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
||||
GLOB.specops_shuttle_at_station = 1
|
||||
if (GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom) return
|
||||
|
||||
if (!specops_can_move())
|
||||
to_chat(usr, span_warning("The Special Operations shuttle is unable to leave."))
|
||||
@@ -239,7 +239,7 @@ var/specops_shuttle_timeleft = 0
|
||||
qdel(announcer)
|
||||
|
||||
/proc/specops_can_move()
|
||||
if(specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom)
|
||||
if(GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom)
|
||||
return 0
|
||||
for(var/obj/machinery/computer/specops_shuttle/S in GLOB.machines)
|
||||
if(world.timeofday <= S.specops_shuttle_timereset)
|
||||
@@ -266,8 +266,8 @@ var/specops_shuttle_timeleft = 0
|
||||
dat = temp
|
||||
else
|
||||
dat += {"<BR><B>Special Operations Shuttle</B><HR>
|
||||
\nLocation: [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "Departing for [station_name()] in ([specops_shuttle_timeleft] seconds.)":specops_shuttle_at_station ? "Station":"Dock"]<BR>
|
||||
[specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "\n*The Special Ops. shuttle is already leaving.*<BR>\n<BR>":specops_shuttle_at_station ? "\n<A href='byond://?src=\ref[src];sendtodock=1'>Shuttle standing by...</A><BR>\n<BR>":"\n<A href='byond://?src=\ref[src];sendtostation=1'>Depart to [station_name()]</A><BR>\n<BR>"]
|
||||
\nLocation: [GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom ? "Departing for [station_name()] in ([GLOB.specops_shuttle_timeleft] seconds.)":GLOB.specops_shuttle_at_station ? "Station":"Dock"]<BR>
|
||||
[GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom ? "\n*The Special Ops. shuttle is already leaving.*<BR>\n<BR>":GLOB.specops_shuttle_at_station ? "\n<A href='byond://?src=\ref[src];sendtodock=1'>Shuttle standing by...</A><BR>\n<BR>":"\n<A href='byond://?src=\ref[src];sendtostation=1'>Depart to [station_name()]</A><BR>\n<BR>"]
|
||||
\n<A href='byond://?src=\ref[user];mach_close=computer'>Close</A>"}
|
||||
|
||||
var/datum/browser/popup = new(usr, "computer", "Computer", 575, 450)
|
||||
@@ -282,7 +282,7 @@ var/specops_shuttle_timeleft = 0
|
||||
usr.set_machine(src)
|
||||
|
||||
if (href_list["sendtodock"])
|
||||
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
||||
if(!GLOB.specops_shuttle_at_station|| GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom) return
|
||||
|
||||
if (!specops_can_move())
|
||||
to_chat(usr, span_notice("[using_map.boss_name] will not allow the Special Operations shuttle to return yet."))
|
||||
@@ -297,13 +297,13 @@ var/specops_shuttle_timeleft = 0
|
||||
temp += "Shuttle departing.<BR><BR><A href='byond://?src=\ref[src];mainmenu=1'>OK</A>"
|
||||
updateUsrDialog(usr)
|
||||
|
||||
specops_shuttle_moving_to_centcom = 1
|
||||
specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
|
||||
GLOB.specops_shuttle_moving_to_centcom = 1
|
||||
GLOB.specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
|
||||
spawn(0)
|
||||
specops_return()
|
||||
|
||||
else if (href_list["sendtostation"])
|
||||
if(specops_shuttle_at_station || specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
||||
if(GLOB.specops_shuttle_at_station || GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom) return
|
||||
|
||||
if (!specops_can_move())
|
||||
to_chat(usr, span_warning("The Special Operations shuttle is unable to leave."))
|
||||
@@ -317,9 +317,9 @@ var/specops_shuttle_timeleft = 0
|
||||
var/area/centcom/specops/special_ops = locate()
|
||||
if(special_ops)
|
||||
special_ops.readyalert()//Trigger alarm for the spec ops area.
|
||||
specops_shuttle_moving_to_station = 1
|
||||
GLOB.specops_shuttle_moving_to_station = 1
|
||||
|
||||
specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
|
||||
GLOB.specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
|
||||
spawn(0)
|
||||
specops_process()
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ FIRE ALARM
|
||||
return
|
||||
var/area/area = get_area(src)
|
||||
for(var/obj/machinery/firealarm/FA in area)
|
||||
fire_alarm.clearAlarm(src.loc, FA)
|
||||
GLOB.fire_alarm.clearAlarm(src.loc, FA)
|
||||
update_icon()
|
||||
if(user)
|
||||
log_game("[user] reset a fire alarm at [COORD(src)]")
|
||||
@@ -186,7 +186,7 @@ FIRE ALARM
|
||||
return
|
||||
var/area/area = get_area(src)
|
||||
for(var/obj/machinery/firealarm/FA in area)
|
||||
fire_alarm.triggerAlarm(loc, FA, duration, hidden = alarms_hidden)
|
||||
GLOB.fire_alarm.triggerAlarm(loc, FA, duration, hidden = alarms_hidden)
|
||||
update_icon()
|
||||
playsound(src, 'sound/machines/airalarm.ogg', 25, 0, 4, volume_channel = VOLUME_CHANNEL_ALARMS)
|
||||
if(user)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var/list/floor_light_cache = list()
|
||||
GLOBAL_LIST_EMPTY(floor_light_cache)
|
||||
|
||||
/obj/item/floor_light
|
||||
name = "floor light kit"
|
||||
@@ -124,22 +124,22 @@ var/list/floor_light_cache = list()
|
||||
if(use_power && !broken())
|
||||
if(isnull(damaged))
|
||||
var/cache_key = "floorlight-[default_light_colour]"
|
||||
if(!floor_light_cache[cache_key])
|
||||
if(!GLOB.floor_light_cache[cache_key])
|
||||
var/image/I = image("on")
|
||||
I.color = default_light_colour
|
||||
I.layer = layer+0.001
|
||||
floor_light_cache[cache_key] = I
|
||||
add_overlay(floor_light_cache[cache_key])
|
||||
GLOB.floor_light_cache[cache_key] = I
|
||||
add_overlay(GLOB.floor_light_cache[cache_key])
|
||||
else
|
||||
if(damaged == 0) //Needs init.
|
||||
damaged = rand(1,4)
|
||||
var/cache_key = "floorlight-broken[damaged]-[default_light_colour]"
|
||||
if(!floor_light_cache[cache_key])
|
||||
if(!GLOB.floor_light_cache[cache_key])
|
||||
var/image/I = image("flicker[damaged]")
|
||||
I.color = default_light_colour
|
||||
I.layer = layer+0.001
|
||||
floor_light_cache[cache_key] = I
|
||||
add_overlay(floor_light_cache[cache_key])
|
||||
GLOB.floor_light_cache[cache_key] = I
|
||||
add_overlay(GLOB.floor_light_cache[cache_key])
|
||||
|
||||
/obj/machinery/floor_light/proc/broken()
|
||||
return (stat & (BROKEN|NOPOWER))
|
||||
|
||||
@@ -95,20 +95,20 @@
|
||||
if(STATUS_DISPLAY_BLANK) //blank
|
||||
return 1
|
||||
if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME) //emergency shuttle timer
|
||||
if(!emergency_shuttle)
|
||||
if(!GLOB.emergency_shuttle)
|
||||
message1 = "-ETA-"
|
||||
message2 = "Never" // You're here forever.
|
||||
return 1
|
||||
if(emergency_shuttle.waiting_to_leave())
|
||||
if(GLOB.emergency_shuttle.waiting_to_leave())
|
||||
message1 = "-ETD-"
|
||||
if(emergency_shuttle.shuttle.is_launching())
|
||||
if(GLOB.emergency_shuttle.shuttle.is_launching())
|
||||
message2 = "Launch"
|
||||
else
|
||||
message2 = get_shuttle_timer_departure()
|
||||
if(length(message2) > CHARS_PER_LINE)
|
||||
message2 = "Error"
|
||||
update_display(message1, message2)
|
||||
else if(emergency_shuttle.has_eta())
|
||||
else if(GLOB.emergency_shuttle.has_eta())
|
||||
message1 = "-ETA-"
|
||||
message2 = get_shuttle_timer_arrival()
|
||||
if(length(message2) > CHARS_PER_LINE)
|
||||
@@ -207,17 +207,17 @@
|
||||
maptext = new_text
|
||||
|
||||
/obj/machinery/status_display/proc/get_shuttle_timer_arrival()
|
||||
if(!emergency_shuttle)
|
||||
if(!GLOB.emergency_shuttle)
|
||||
return "Error"
|
||||
var/timeleft = emergency_shuttle.estimate_arrival_time()
|
||||
var/timeleft = GLOB.emergency_shuttle.estimate_arrival_time()
|
||||
if(timeleft < 0)
|
||||
return ""
|
||||
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
|
||||
|
||||
/obj/machinery/status_display/proc/get_shuttle_timer_departure()
|
||||
if(!emergency_shuttle)
|
||||
if(!GLOB.emergency_shuttle)
|
||||
return "Error"
|
||||
var/timeleft = emergency_shuttle.estimate_launch_time()
|
||||
var/timeleft = GLOB.emergency_shuttle.estimate_launch_time()
|
||||
if(timeleft < 0)
|
||||
return ""
|
||||
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
to_chat(user, "No input found please hang up and try your call again.")
|
||||
return
|
||||
var/list/tempnetwork = splittext(input, ",")
|
||||
tempnetwork = difflist(tempnetwork,restricted_camera_networks,1)
|
||||
tempnetwork = difflist(tempnetwork, GLOB.restricted_camera_networks, 1)
|
||||
if(tempnetwork.len < 1)
|
||||
to_chat(user, "No network found please hang up and try your call again.")
|
||||
return
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Donut Box
|
||||
*/
|
||||
|
||||
var/list/random_weighted_donuts = list(
|
||||
GLOBAL_LIST_INIT(random_weighted_donuts, list(
|
||||
/obj/item/reagent_containers/food/snacks/donut/plain = 5,
|
||||
/obj/item/reagent_containers/food/snacks/donut/plain/jelly = 5,
|
||||
/obj/item/reagent_containers/food/snacks/donut/pink = 4,
|
||||
@@ -26,7 +26,7 @@ var/list/random_weighted_donuts = list(
|
||||
/obj/item/reagent_containers/food/snacks/donut/choc_sprinkles = 3,
|
||||
/obj/item/reagent_containers/food/snacks/donut/choc_sprinkles/jelly = 3,
|
||||
/obj/item/reagent_containers/food/snacks/donut/chaos = 1
|
||||
)
|
||||
))
|
||||
|
||||
/obj/item/storage/box/donut
|
||||
icon = 'icons/obj/food_donuts.dmi'
|
||||
@@ -43,7 +43,7 @@ var/list/random_weighted_donuts = list(
|
||||
/obj/item/storage/box/donut/Initialize(mapload)
|
||||
if(!empty)
|
||||
for(var/i in 1 to 6)
|
||||
var/type_to_spawn = pickweight(random_weighted_donuts)
|
||||
var/type_to_spawn = pickweight(GLOB.random_weighted_donuts)
|
||||
new type_to_spawn(src)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#define TANK_IDEAL_PRESSURE 1015 //Arbitrary.
|
||||
|
||||
var/list/global/tank_gauge_cache = list()
|
||||
GLOBAL_LIST_EMPTY(tank_gauge_cache)
|
||||
|
||||
/obj/item/tank
|
||||
name = "tank"
|
||||
@@ -377,9 +377,9 @@ var/list/global/tank_gauge_cache = list()
|
||||
cut_overlays()
|
||||
add_bomb_overlay()
|
||||
var/indicator = "[gauge_icon][(gauge_pressure == -1) ? "overload" : gauge_pressure]"
|
||||
if(!tank_gauge_cache[indicator])
|
||||
tank_gauge_cache[indicator] = image(icon, indicator)
|
||||
add_overlay(tank_gauge_cache[indicator])
|
||||
if(!GLOB.tank_gauge_cache[indicator])
|
||||
GLOB.tank_gauge_cache[indicator] = image(icon, indicator)
|
||||
add_overlay(GLOB.tank_gauge_cache[indicator])
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
to_chat(user, span_notice("There isn't enough material here to construct a wall."))
|
||||
return FALSE
|
||||
|
||||
var/datum/material/M = name_to_material[S.default_type]
|
||||
var/datum/material/M = GLOB.name_to_material[S.default_type]
|
||||
if(!istype(M))
|
||||
return FALSE
|
||||
|
||||
@@ -279,7 +279,7 @@
|
||||
to_chat(user, span_notice("There isn't enough material here to reinforce the girder."))
|
||||
return 0
|
||||
|
||||
var/datum/material/M = name_to_material[S.default_type]
|
||||
var/datum/material/M = GLOB.name_to_material[S.default_type]
|
||||
if(!istype(M) || M.integrity < 50)
|
||||
to_chat(user, "You cannot reinforce \the [src] with that; it is too soft.")
|
||||
return 0
|
||||
@@ -412,7 +412,7 @@
|
||||
var/turf/simulated/wall/new_T = get_turf(src) // Ref to the wall we just built.
|
||||
// Apparently set_material(...) for walls requires refs to the material singletons and not strings.
|
||||
// This is different from how other material objects with their own set_material(...) do it, but whatever.
|
||||
var/datum/material/M = name_to_material[the_rcd.material_to_use]
|
||||
var/datum/material/M = GLOB.name_to_material[the_rcd.material_to_use]
|
||||
new_T.set_material(M, the_rcd.make_rwalls ? M : null, girder_material)
|
||||
new_T.add_hiddenprint(user)
|
||||
qdel(src)
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
var/list/flooring_types
|
||||
GLOBAL_LIST_EMPTY(flooring_types)
|
||||
|
||||
/proc/populate_flooring_types()
|
||||
flooring_types = list()
|
||||
for (var/flooring_path in typesof(/decl/flooring))
|
||||
flooring_types["[flooring_path]"] = new flooring_path
|
||||
GLOB.flooring_types["[flooring_path]"] = new flooring_path
|
||||
|
||||
/proc/get_flooring_data(var/flooring_path)
|
||||
if(!flooring_types)
|
||||
flooring_types = list()
|
||||
if(!flooring_types["[flooring_path]"])
|
||||
flooring_types["[flooring_path]"] = new flooring_path
|
||||
return flooring_types["[flooring_path]"]
|
||||
if(!GLOB.flooring_types)
|
||||
GLOB.flooring_types = list()
|
||||
if(!GLOB.flooring_types["[flooring_path]"])
|
||||
GLOB.flooring_types["[flooring_path]"] = new flooring_path
|
||||
return GLOB.flooring_types["[flooring_path]"]
|
||||
|
||||
// State values:
|
||||
// [icon_base]: initial base icon_state without edges or corners.
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
var/turf/simulated/wall/T = get_turf(src) // Ref to the wall we just built.
|
||||
// Apparently set_material(...) for walls requires refs to the material singletons and not strings.
|
||||
// This is different from how other material objects with their own set_material(...) do it, but whatever.
|
||||
var/datum/material/M = name_to_material[the_rcd.material_to_use]
|
||||
var/datum/material/M = GLOB.name_to_material[the_rcd.material_to_use]
|
||||
T.set_material(M, the_rcd.make_rwalls ? M : null, M)
|
||||
T.add_hiddenprint(user)
|
||||
return TRUE
|
||||
|
||||
@@ -107,8 +107,8 @@
|
||||
return
|
||||
var/obj/item/stack/S = C
|
||||
var/decl/flooring/use_flooring
|
||||
for(var/flooring_type in flooring_types)
|
||||
var/decl/flooring/F = flooring_types[flooring_type]
|
||||
for(var/flooring_type in GLOB.flooring_types)
|
||||
var/decl/flooring/F = GLOB.flooring_types[flooring_type]
|
||||
if(!F.build_type)
|
||||
continue
|
||||
if((S.type == F.build_type) || (S.build_type == F.build_type))
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
var/list/grass_types = list(
|
||||
|
||||
)
|
||||
|
||||
/turf/simulated/floor/outdoors/grass
|
||||
name = "grass"
|
||||
icon_state = "grass0"
|
||||
|
||||
@@ -527,7 +527,7 @@ ADMIN_VERB(deadmin, R_NONE, "DeAdmin", "Shed your admin powers.", ADMIN_CATEGORY
|
||||
message_admins(span_blue("[key_name_admin(usr)] told everyone to man up and deal with it."), 1)
|
||||
|
||||
ADMIN_VERB(give_spell, R_FUN, "Give Spell", ADMIN_VERB_NO_DESCRIPTION, ADMIN_CATEGORY_HIDDEN, mob/spell_recipient)
|
||||
var/spell/S = tgui_input_list(user, "Choose the spell to give to that guy", "ABRAKADABRA", spells)
|
||||
var/spell/S = tgui_input_list(user, "Choose the spell to give to that guy", "ABRAKADABRA", typesof(/spell))
|
||||
if(!S)
|
||||
return
|
||||
spell_recipient.spell_list += new S
|
||||
|
||||
@@ -395,19 +395,19 @@
|
||||
dat += "Current Game Mode: " + span_bold("[SSticker.mode.name]") + "<BR>"
|
||||
dat += "Round Duration: " + span_bold("[roundduration2text()]") + "<BR>"
|
||||
dat += span_bold("Emergency shuttle") + "<BR>"
|
||||
if (!emergency_shuttle.online())
|
||||
if (!GLOB.emergency_shuttle.online())
|
||||
dat += "<a href='byond://?src=\ref[src];[HrefToken()];call_shuttle=1'>Call Shuttle</a><br>"
|
||||
else
|
||||
if (emergency_shuttle.wait_for_launch)
|
||||
var/timeleft = emergency_shuttle.estimate_launch_time()
|
||||
if (GLOB.emergency_shuttle.wait_for_launch)
|
||||
var/timeleft = GLOB.emergency_shuttle.estimate_launch_time()
|
||||
dat += "ETL: <a href='byond://?src=\ref[src];[HrefToken()];edit_shuttle_time=1'>[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]</a><BR>"
|
||||
|
||||
else if (emergency_shuttle.shuttle.has_arrive_time())
|
||||
var/timeleft = emergency_shuttle.estimate_arrival_time()
|
||||
else if (GLOB.emergency_shuttle.shuttle.has_arrive_time())
|
||||
var/timeleft = GLOB.emergency_shuttle.estimate_arrival_time()
|
||||
dat += "ETA: <a href='byond://?src=\ref[src];[HrefToken()];edit_shuttle_time=1'>[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]</a><BR>"
|
||||
dat += "<a href='byond://?src=\ref[src];[HrefToken()];call_shuttle=2'>Send Back</a><br>"
|
||||
|
||||
if (emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP)
|
||||
if (GLOB.emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP)
|
||||
dat += "Launching now..."
|
||||
|
||||
dat += "<a href='byond://?src=\ref[src];[HrefToken()];delay_round_end=1'>[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]</a><br>"
|
||||
|
||||
+14
-14
@@ -83,23 +83,23 @@
|
||||
|
||||
switch(href_list["call_shuttle"])
|
||||
if("1")
|
||||
if ((!( SSticker ) || !emergency_shuttle.location()))
|
||||
if ((!( SSticker ) || !GLOB.emergency_shuttle.location()))
|
||||
return
|
||||
if (emergency_shuttle.can_call())
|
||||
emergency_shuttle.call_evac()
|
||||
if (GLOB.emergency_shuttle.can_call())
|
||||
GLOB.emergency_shuttle.call_evac()
|
||||
log_admin("[key_name(usr)] called the Emergency Shuttle")
|
||||
message_admins(span_blue("[key_name_admin(usr)] called the Emergency Shuttle to the station."), 1)
|
||||
|
||||
if("2")
|
||||
if (!( SSticker ) || !emergency_shuttle.location())
|
||||
if (!( SSticker ) || !GLOB.emergency_shuttle.location())
|
||||
return
|
||||
if (emergency_shuttle.can_call())
|
||||
emergency_shuttle.call_evac()
|
||||
if (GLOB.emergency_shuttle.can_call())
|
||||
GLOB.emergency_shuttle.call_evac()
|
||||
log_admin("[key_name(usr)] called the Emergency Shuttle")
|
||||
message_admins(span_blue("[key_name_admin(usr)] called the Emergency Shuttle to the station."), 1)
|
||||
|
||||
else if (emergency_shuttle.can_recall())
|
||||
emergency_shuttle.recall()
|
||||
else if (GLOB.emergency_shuttle.can_recall())
|
||||
GLOB.emergency_shuttle.recall()
|
||||
log_admin("[key_name(usr)] sent the Emergency Shuttle back")
|
||||
message_admins(span_blue("[key_name_admin(usr)] sent the Emergency Shuttle back."), 1)
|
||||
|
||||
@@ -108,17 +108,17 @@
|
||||
else if(href_list["edit_shuttle_time"])
|
||||
if(!check_rights(R_SERVER)) return
|
||||
|
||||
if (emergency_shuttle.wait_for_launch)
|
||||
var/new_time_left = tgui_input_number(usr, "Enter new shuttle launch countdown (seconds):","Edit Shuttle Launch Time", emergency_shuttle.estimate_launch_time() )
|
||||
if (GLOB.emergency_shuttle.wait_for_launch)
|
||||
var/new_time_left = tgui_input_number(usr, "Enter new shuttle launch countdown (seconds):","Edit Shuttle Launch Time", GLOB.emergency_shuttle.estimate_launch_time() )
|
||||
|
||||
emergency_shuttle.launch_time = world.time + new_time_left*10
|
||||
GLOB.emergency_shuttle.launch_time = world.time + new_time_left*10
|
||||
|
||||
log_admin("[key_name(usr)] edited the Emergency Shuttle's launch time to [new_time_left]")
|
||||
message_admins(span_blue("[key_name_admin(usr)] edited the Emergency Shuttle's launch time to [new_time_left*10]"), 1)
|
||||
else if (emergency_shuttle.shuttle.has_arrive_time())
|
||||
else if (GLOB.emergency_shuttle.shuttle.has_arrive_time())
|
||||
|
||||
var/new_time_left = tgui_input_number(usr, "Enter new shuttle arrival time (seconds):","Edit Shuttle Arrival Time", emergency_shuttle.estimate_arrival_time() )
|
||||
emergency_shuttle.shuttle.arrive_time = world.time + new_time_left*10
|
||||
var/new_time_left = tgui_input_number(usr, "Enter new shuttle arrival time (seconds):","Edit Shuttle Arrival Time", GLOB.emergency_shuttle.estimate_arrival_time() )
|
||||
GLOB.emergency_shuttle.shuttle.arrive_time = world.time + new_time_left*10
|
||||
|
||||
log_admin("[key_name(usr)] edited the Emergency Shuttle's arrival time to [new_time_left]")
|
||||
message_admins(span_blue("[key_name_admin(usr)] edited the Emergency Shuttle's arrival time to [new_time_left*10]"), 1)
|
||||
|
||||
@@ -869,7 +869,7 @@ ADMIN_VERB(respawn_character, (R_ADMIN|R_REJUVINATE), "Spawn Character", "(Re)Sp
|
||||
set category = "Admin.Events"
|
||||
set name = "Call Shuttle"
|
||||
|
||||
if ((!( SSticker ) || !emergency_shuttle.location()))
|
||||
if ((!( SSticker ) || !GLOB.emergency_shuttle.location()))
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
@@ -881,15 +881,15 @@ ADMIN_VERB(respawn_character, (R_ADMIN|R_REJUVINATE), "Spawn Character", "(Re)Sp
|
||||
if(SSticker.mode.auto_recall_shuttle)
|
||||
choice = tgui_input_list(usr, "The shuttle will just return if you call it. Call anyway?", "Shuttle Call", list("Confirm", "Cancel"))
|
||||
if(choice == "Confirm")
|
||||
emergency_shuttle.auto_recall = 1 //enable auto-recall
|
||||
GLOB.emergency_shuttle.auto_recall = 1 //enable auto-recall
|
||||
else
|
||||
return
|
||||
|
||||
choice = tgui_input_list(usr, "Is this an emergency evacuation or a crew transfer?", "Shuttle Call", list("Emergency", "Crew Transfer"))
|
||||
if (choice == "Emergency")
|
||||
emergency_shuttle.call_evac()
|
||||
GLOB.emergency_shuttle.call_evac()
|
||||
else
|
||||
emergency_shuttle.call_transfer()
|
||||
GLOB.emergency_shuttle.call_transfer()
|
||||
|
||||
|
||||
feedback_add_details("admin_verb","CSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -905,10 +905,10 @@ ADMIN_VERB(respawn_character, (R_ADMIN|R_REJUVINATE), "Spawn Character", "(Re)Sp
|
||||
|
||||
if(tgui_alert(src, "You sure?", "Confirm", list("Yes", "No")) != "Yes") return
|
||||
|
||||
if(!SSticker || !emergency_shuttle.can_recall())
|
||||
if(!SSticker || !GLOB.emergency_shuttle.can_recall())
|
||||
return
|
||||
|
||||
emergency_shuttle.recall()
|
||||
GLOB.emergency_shuttle.recall()
|
||||
feedback_add_details("admin_verb","CCSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] admin-recalled the emergency shuttle.")
|
||||
message_admins(span_blue("[key_name_admin(usr)] admin-recalled the emergency shuttle."), 1)
|
||||
@@ -924,10 +924,10 @@ ADMIN_VERB(respawn_character, (R_ADMIN|R_REJUVINATE), "Spawn Character", "(Re)Sp
|
||||
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
|
||||
emergency_shuttle.deny_shuttle = !emergency_shuttle.deny_shuttle
|
||||
GLOB.emergency_shuttle.deny_shuttle = !GLOB.emergency_shuttle.deny_shuttle
|
||||
|
||||
log_admin("[key_name(src)] has [emergency_shuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
|
||||
message_admins("[key_name_admin(usr)] has [emergency_shuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
|
||||
log_admin("[key_name(src)] has [GLOB.emergency_shuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
|
||||
message_admins("[key_name_admin(usr)] has [GLOB.emergency_shuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
|
||||
|
||||
/client/proc/cmd_admin_attack_log(mob/M as mob in GLOB.mob_list)
|
||||
set category = "Admin.Logs"
|
||||
|
||||
@@ -395,7 +395,7 @@
|
||||
|
||||
/datum/gear/collar/New()
|
||||
..()
|
||||
gear_tweaks += gear_tweak_collar_tag
|
||||
gear_tweaks += GLOB.gear_tweak_collar_tag
|
||||
|
||||
/datum/gear/collar/golden
|
||||
display_name = "collar, golden"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
/datum/gear/fluff/collar/New()
|
||||
..()
|
||||
gear_tweaks += gear_tweak_collar_tag
|
||||
gear_tweaks += GLOB.gear_tweak_collar_tag
|
||||
|
||||
// 0-9 CKEYS
|
||||
/datum/gear/fluff/malady_crop
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
*/
|
||||
|
||||
// Assoc list containing all material datums indexed by name.
|
||||
var/list/name_to_material
|
||||
GLOBAL_LIST_EMPTY(name_to_material)
|
||||
|
||||
//Returns the material the object is made of, if applicable.
|
||||
//Will we ever need to return more than one value here? Or should we just return the "dominant" material.
|
||||
@@ -95,21 +95,17 @@ var/list/name_to_material
|
||||
|
||||
|
||||
// Builds the datum list above.
|
||||
/proc/populate_material_list(force_remake=0)
|
||||
if(name_to_material && !force_remake) return // Already set up!
|
||||
name_to_material = list()
|
||||
/proc/populate_material_list()
|
||||
for(var/type in subtypesof(/datum/material))
|
||||
var/datum/material/new_mineral = new type
|
||||
if(!new_mineral.name)
|
||||
continue
|
||||
name_to_material[lowertext(new_mineral.name)] = new_mineral
|
||||
GLOB.name_to_material[lowertext(new_mineral.name)] = new_mineral
|
||||
return 1
|
||||
|
||||
// Safety proc to make sure the material list exists before trying to grab from it.
|
||||
/proc/get_material_by_name(name)
|
||||
if(!name_to_material)
|
||||
populate_material_list()
|
||||
return name_to_material[name]
|
||||
return GLOB.name_to_material[name]
|
||||
|
||||
/proc/material_display_name(name)
|
||||
if(istype(name, /datum/material)) //We were fed a datum.
|
||||
@@ -133,15 +129,12 @@ var/list/name_to_material
|
||||
* - The following elements are used to generate bespoke IDs
|
||||
*/
|
||||
/proc/_GetMaterialRef(list/arguments)
|
||||
if(!name_to_material)
|
||||
populate_material_list()
|
||||
|
||||
var/datum/material/key = arguments[1]
|
||||
if(istype(key))
|
||||
return key // we want to convert anything we're given to a material
|
||||
|
||||
if(istext(key)) // text ID
|
||||
. = name_to_material[key]
|
||||
. = GLOB.name_to_material[key]
|
||||
if(!.)
|
||||
WARNING("Attempted to fetch material ref with invalid text id '[key]'")
|
||||
return
|
||||
@@ -150,7 +143,7 @@ var/list/name_to_material
|
||||
CRASH("Attempted to fetch material ref with invalid key [key]")
|
||||
|
||||
key = GetIdFromArguments(arguments)
|
||||
. = name_to_material[key]
|
||||
. = GLOB.name_to_material[key]
|
||||
if(!.)
|
||||
WARNING("Attempted to fetch nonexistent material with key [key]")
|
||||
|
||||
|
||||
@@ -246,8 +246,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
/mob/observer/dead/get_status_tab_items()
|
||||
. = ..()
|
||||
if(emergency_shuttle)
|
||||
var/eta_status = emergency_shuttle.get_status_panel_eta()
|
||||
if(GLOB.emergency_shuttle)
|
||||
var/eta_status = GLOB.emergency_shuttle.get_status_panel_eta()
|
||||
if(eta_status)
|
||||
. += ""
|
||||
. += "[eta_status]"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var/list/_nymph_default_emotes = list(
|
||||
GLOBAL_LIST_INIT(nymph_default_emotes, list(
|
||||
/decl/emote/visible,
|
||||
/decl/emote/visible/scratch,
|
||||
/decl/emote/visible/drool,
|
||||
@@ -22,7 +22,7 @@ var/list/_nymph_default_emotes = list(
|
||||
/decl/emote/audible/bug_hiss,
|
||||
/decl/emote/audible/bug_chitter,
|
||||
/decl/emote/audible/chirp
|
||||
)
|
||||
))
|
||||
|
||||
/mob/living/carbon/alien/diona
|
||||
name = "diona nymph"
|
||||
@@ -47,7 +47,7 @@ var/list/_nymph_default_emotes = list(
|
||||
var/obj/item/hat
|
||||
|
||||
/mob/living/carbon/alien/diona/get_available_emotes()
|
||||
return global._nymph_default_emotes.Copy()
|
||||
return GLOB.nymph_default_emotes.Copy()
|
||||
|
||||
/mob/living/carbon/alien/diona/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var/list/_alien_default_emotes = list(
|
||||
GLOBAL_LIST_INIT(alien_default_emotes, list(
|
||||
/decl/emote/visible,
|
||||
/decl/emote/visible/scratch,
|
||||
/decl/emote/visible/drool,
|
||||
@@ -25,7 +25,7 @@ var/list/_alien_default_emotes = list(
|
||||
/decl/emote/audible/moan,
|
||||
/decl/emote/audible/gnarl,
|
||||
/decl/emote/audible/chirp
|
||||
)
|
||||
))
|
||||
|
||||
/mob/living/carbon/alien/get_available_emotes()
|
||||
. = global._alien_default_emotes.Copy()
|
||||
. = GLOB.alien_default_emotes.Copy()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var/list/_brain_default_emotes = list(
|
||||
GLOBAL_LIST_INIT(brain_default_emotes, list(
|
||||
/decl/emote/audible/alarm,
|
||||
/decl/emote/audible/alert,
|
||||
/decl/emote/audible/notice,
|
||||
@@ -8,10 +8,10 @@ var/list/_brain_default_emotes = list(
|
||||
/decl/emote/audible/boop,
|
||||
/decl/emote/visible/blink,
|
||||
/decl/emote/visible/flash
|
||||
)
|
||||
))
|
||||
|
||||
/mob/living/carbon/brain/can_emote()
|
||||
return (istype(container, /obj/item/mmi) && ..())
|
||||
|
||||
/mob/living/carbon/brain/get_available_emotes()
|
||||
return global._brain_default_emotes.Copy()
|
||||
return GLOB.brain_default_emotes.Copy()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var/list/_human_default_emotes = list(
|
||||
GLOBAL_LIST_INIT(human_default_emotes, list(
|
||||
/decl/emote/visible/blink,
|
||||
/decl/emote/audible/synth,
|
||||
/decl/emote/audible/synth/beep,
|
||||
@@ -99,7 +99,6 @@ var/list/_human_default_emotes = list(
|
||||
/decl/emote/visible/vomit,
|
||||
/decl/emote/visible/floorspin,
|
||||
/decl/emote/visible/flip,
|
||||
//VOREStation Add
|
||||
/decl/emote/audible/bug_hiss,
|
||||
/decl/emote/audible/bug_buzz,
|
||||
/decl/emote/audible/bug_chitter,
|
||||
@@ -181,14 +180,9 @@ var/list/_human_default_emotes = list(
|
||||
/decl/emote/audible/caw2,
|
||||
/decl/emote/audible/caw_m,
|
||||
/decl/emote/audible/gwah
|
||||
))
|
||||
|
||||
|
||||
//VOREStation Add End
|
||||
)
|
||||
|
||||
//VOREStation Add Start
|
||||
|
||||
var/list/_simple_mob_default_emotes = list(
|
||||
GLOBAL_LIST_INIT(simple_mob_default_emotes, list(
|
||||
/decl/emote/visible/blink,
|
||||
/decl/emote/visible/nod,
|
||||
/decl/emote/visible/shake,
|
||||
@@ -331,17 +325,15 @@ var/list/_simple_mob_default_emotes = list(
|
||||
/decl/emote/audible/caw2,
|
||||
/decl/emote/audible/caw_m,
|
||||
/decl/emote/audible/gwah
|
||||
|
||||
)
|
||||
//VOREStation Add End
|
||||
))
|
||||
|
||||
/mob/living/carbon/human/get_available_emotes()
|
||||
. = global._human_default_emotes.Copy()
|
||||
. = GLOB.human_default_emotes.Copy()
|
||||
if(length(species?.default_emotes))
|
||||
return . | species.default_emotes
|
||||
|
||||
/mob/living/simple_mob/get_available_emotes()
|
||||
. = global._simple_mob_default_emotes.Copy()
|
||||
. = GLOB.simple_mob_default_emotes.Copy()
|
||||
|
||||
/mob/living/carbon/human/verb/pose()
|
||||
set name = "Set Pose"
|
||||
|
||||
@@ -100,8 +100,8 @@
|
||||
. += ""
|
||||
. += "Intent: [a_intent]"
|
||||
. += "Move Mode: [m_intent]"
|
||||
if(emergency_shuttle)
|
||||
var/eta_status = emergency_shuttle.get_status_panel_eta()
|
||||
if(GLOB.emergency_shuttle)
|
||||
var/eta_status = GLOB.emergency_shuttle.get_status_panel_eta()
|
||||
if(eta_status)
|
||||
. += "[eta_status]"
|
||||
|
||||
|
||||
@@ -188,8 +188,8 @@
|
||||
return TRUE // yup
|
||||
|
||||
/mob/living/simple_mob/protean_blob/get_available_emotes()
|
||||
var/list/fulllist = global._robot_default_emotes.Copy()
|
||||
fulllist |= global._human_default_emotes //they're living nanites, they can make whatever sounds they want
|
||||
var/list/fulllist = GLOB.robot_default_emotes.Copy()
|
||||
fulllist |= GLOB.human_default_emotes //they're living nanites, they can make whatever sounds they want
|
||||
return fulllist
|
||||
|
||||
/mob/living/simple_mob/protean_blob/update_misc_tabs()
|
||||
|
||||
@@ -406,7 +406,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
call_shuttle_proc(src)
|
||||
|
||||
// hack to display shuttle timer
|
||||
if(emergency_shuttle.online())
|
||||
if(GLOB.emergency_shuttle.online())
|
||||
post_status(src, "shuttle", user = src)
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_recall_shuttle()
|
||||
@@ -559,7 +559,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
for (var/obj/machinery/camera/C in cameranet.cameras)
|
||||
if(!C.can_use())
|
||||
continue
|
||||
var/list/tempnetwork = difflist(C.network,restricted_camera_networks,1)
|
||||
var/list/tempnetwork = difflist(C.network, GLOB.restricted_camera_networks, 1)
|
||||
for(var/i in tempnetwork)
|
||||
cameralist[i] = i
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var/list/_silicon_default_emotes = list(
|
||||
GLOBAL_LIST_INIT(silicon_default_emotes, list(
|
||||
/decl/emote/audible/synth,
|
||||
/decl/emote/audible/synth/beep,
|
||||
/decl/emote/audible/synth/bing,
|
||||
@@ -13,15 +13,15 @@ var/list/_silicon_default_emotes = list(
|
||||
/decl/emote/audible/synth/microwave,
|
||||
/decl/emote/audible/synth/security,
|
||||
/decl/emote/audible/synth/security/halt
|
||||
)
|
||||
))
|
||||
|
||||
/mob/living/silicon/get_available_emotes()
|
||||
return global._silicon_default_emotes.Copy()
|
||||
return GLOB.silicon_default_emotes.Copy()
|
||||
|
||||
/mob/living/silicon/pai/get_available_emotes()
|
||||
|
||||
var/list/fulllist = list()
|
||||
fulllist |= _silicon_default_emotes
|
||||
fulllist |= _robot_default_emotes
|
||||
fulllist |= _human_default_emotes
|
||||
fulllist |= GLOB.silicon_default_emotes
|
||||
fulllist |= GLOB.robot_default_emotes
|
||||
fulllist |= GLOB.human_default_emotes
|
||||
return fulllist
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var/list/_robot_default_emotes = list(
|
||||
GLOBAL_LIST_INIT(robot_default_emotes, list(
|
||||
/decl/emote/audible/clap,
|
||||
/decl/emote/visible/bow,
|
||||
/decl/emote/visible/salute,
|
||||
@@ -29,13 +29,11 @@ var/list/_robot_default_emotes = list(
|
||||
/decl/emote/audible/synth/microwave,
|
||||
/decl/emote/audible/synth/security,
|
||||
/decl/emote/audible/synth/security/halt,
|
||||
//VOREStation Add
|
||||
/decl/emote/visible/mlem,
|
||||
/decl/emote/visible/blep
|
||||
//VOREStation Add End
|
||||
)
|
||||
))
|
||||
|
||||
/mob/living/silicon/robot/get_available_emotes()
|
||||
var/list/fulllist = global._robot_default_emotes.Copy()
|
||||
fulllist |= _human_default_emotes
|
||||
var/list/fulllist = GLOB.robot_default_emotes.Copy()
|
||||
fulllist |= GLOB.human_default_emotes
|
||||
return fulllist
|
||||
|
||||
@@ -155,8 +155,8 @@
|
||||
|
||||
// this function displays the shuttles ETA in the status panel if the shuttle has been called
|
||||
/mob/living/silicon/proc/show_emergency_shuttle_eta()
|
||||
if(emergency_shuttle)
|
||||
var/eta_status = emergency_shuttle.get_status_panel_eta()
|
||||
if(GLOB.emergency_shuttle)
|
||||
var/eta_status = GLOB.emergency_shuttle.get_status_panel_eta()
|
||||
if(eta_status)
|
||||
. = "[eta_status]"
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
|
||||
/mob/living/simple_mob/animal/synx/get_available_emotes()
|
||||
. = ..()
|
||||
. |= _human_default_emotes //Synx are great at mimicking
|
||||
. |= GLOB.human_default_emotes //Synx are great at mimicking
|
||||
|
||||
/mob/living/simple_mob/animal/synx/ai //AI controlled variant
|
||||
|
||||
|
||||
@@ -316,7 +316,7 @@
|
||||
comp.dark_energy_infinite = TRUE
|
||||
|
||||
/mob/living/simple_mob/shadekin/red/rakshasa/get_available_emotes()
|
||||
. = global._simple_mob_default_emotes.Copy()
|
||||
. = GLOB.simple_mob_default_emotes.Copy()
|
||||
. += /decl/emote/audible/evil_laugh
|
||||
. += /decl/emote/audible/evil_no
|
||||
. += /decl/emote/audible/evil_breathing
|
||||
|
||||
@@ -2,24 +2,6 @@ GLOBAL_LIST_INIT(dsi_to_species, list(SPECIES_TAJARAN = "DSI - Tajaran", SPECIES
|
||||
SPECIES_VULPKANIN = "DSI - Vulpkanin", SPECIES_AKULA = "DSI - Akula", SPECIES_VASILISSAN = "DSI - Vasilissan", SPECIES_ZORREN = "DSI - Zorren",\
|
||||
SPECIES_TESHARI = "DSI - Teshari", SPECIES_FENNEC = "DSI - Fennec"))
|
||||
|
||||
//CitRP Port
|
||||
var/const/cyberbeast_monitor_styles = "blank=cyber_blank;\
|
||||
default=cyber_default;\
|
||||
eyes=eyes;\
|
||||
static=cyber_static;\
|
||||
alert=cyber_alert;\
|
||||
happy=cyber_happ;\
|
||||
unhappy=cyber_unhapp;\
|
||||
flat=cyber_flat;\
|
||||
sad=cyber_sad;\
|
||||
heart=cyber_heart;\
|
||||
cross=cyber_cross;\
|
||||
wave=cyber_wave;\
|
||||
uwu=cyber_uwu;\
|
||||
question=cyber_question;\
|
||||
lowpower=cyber_lowpower;\
|
||||
idle=cyber_idle;\
|
||||
nwn=cyber_nwn"
|
||||
|
||||
// Placeholder for protean limbs during character spawning, before they have a properly set model
|
||||
/datum/robolimb/protean
|
||||
@@ -82,7 +64,7 @@ var/const/cyberbeast_monitor_styles = "blank=cyber_blank;\
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
monitor_icon = 'icons/mob/monitor_icons_vr.dmi'
|
||||
monitor_styles = cyberbeast_monitor_styles
|
||||
monitor_styles = CYBERBEAST_MONITOR_STYLES
|
||||
|
||||
/obj/item/disk/limb/cyber_beast
|
||||
company = "Cyber Tech"
|
||||
|
||||
@@ -1123,7 +1123,7 @@ GLOBAL_LIST_EMPTY(apcs)
|
||||
equipment = autoset(equipment, 0)
|
||||
lighting = autoset(lighting, 0)
|
||||
environ = autoset(environ, 0)
|
||||
power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
|
||||
GLOB.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
|
||||
autoflag = 0
|
||||
|
||||
// update icon & area power if anything changed
|
||||
@@ -1147,27 +1147,27 @@ GLOBAL_LIST_EMPTY(apcs)
|
||||
lighting = autoset(lighting, 1)
|
||||
environ = autoset(environ, 1)
|
||||
autoflag = 3
|
||||
power_alarm.clearAlarm(loc, src)
|
||||
GLOB.power_alarm.clearAlarm(loc, src)
|
||||
else if((cell.percent() <= 30) && (cell.percent() > 15) && longtermpower < 0) // <30%, turn off equipment
|
||||
if(autoflag != 2)
|
||||
equipment = autoset(equipment, 2)
|
||||
lighting = autoset(lighting, 1)
|
||||
environ = autoset(environ, 1)
|
||||
power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
|
||||
GLOB.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
|
||||
autoflag = 2
|
||||
else if(cell.percent() <= 15) // <15%, turn off lighting & equipment
|
||||
if((autoflag > 1 && longtermpower < 0) || (autoflag > 1 && longtermpower >= 0))
|
||||
equipment = autoset(equipment, 2)
|
||||
lighting = autoset(lighting, 2)
|
||||
environ = autoset(environ, 1)
|
||||
power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
|
||||
GLOB.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
|
||||
autoflag = 1
|
||||
else // zero charge, turn all off
|
||||
if(autoflag != 0)
|
||||
equipment = autoset(equipment, 0)
|
||||
lighting = autoset(lighting, 0)
|
||||
environ = autoset(environ, 0)
|
||||
power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
|
||||
GLOB.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
|
||||
autoflag = 0
|
||||
|
||||
// val 0=off, 1=off(auto) 2=on 3=on(auto)
|
||||
@@ -1291,7 +1291,7 @@ GLOBAL_LIST_EMPTY(apcs)
|
||||
//start with main breaker off, chargemode in the default state and all channels on auto upon reboot
|
||||
operating = 0
|
||||
chargemode = initial(chargemode)
|
||||
power_alarm.clearAlarm(loc, src)
|
||||
GLOB.power_alarm.clearAlarm(loc, src)
|
||||
|
||||
lighting = POWERCHAN_ON_AUTO
|
||||
equipment = POWERCHAN_ON_AUTO
|
||||
|
||||
@@ -281,7 +281,7 @@
|
||||
|
||||
switch(action)
|
||||
if("remove_mat")
|
||||
var/datum/material/material = name_to_material[params["id"]]
|
||||
var/datum/material/material = GLOB.name_to_material[params["id"]]
|
||||
if(!istype(material))
|
||||
return
|
||||
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
/*
|
||||
File: Options
|
||||
*/
|
||||
var/const //Ascii values of characters
|
||||
ascii_A =65
|
||||
ascii_Z =90
|
||||
ascii_a =97
|
||||
ascii_z =122
|
||||
ascii_DOLLAR = 36 // $
|
||||
ascii_ZERO=48
|
||||
ascii_NINE=57
|
||||
ascii_UNDERSCORE=95 // _
|
||||
//Ascii values of characters
|
||||
#define ASCII_A 65
|
||||
#define ASCII_Z 90
|
||||
#define ASCII_LOWER_A 97
|
||||
#define ASCII_LOWER_Z 122
|
||||
#define ASCII_DOLLAR 36 // $
|
||||
#define ASCII_ZERO 48
|
||||
#define ASCII_NINE 57
|
||||
#define ASCII_UNDERSCORE 95 // _
|
||||
|
||||
/*
|
||||
Class: n_scriptOptions
|
||||
*/
|
||||
/n_scriptOptions/proc/CanStartID(char) //returns true if the character can start a variable, function, or keyword name (by default letters or an underscore)
|
||||
if(!isnum(char))char=text2ascii(char)
|
||||
return (char in ascii_A to ascii_Z) || (char in ascii_a to ascii_z) || char==ascii_UNDERSCORE || char==ascii_DOLLAR
|
||||
return (char in ASCII_A to ASCII_Z) || (char in ASCII_LOWER_A to ASCII_LOWER_Z) || char==ASCII_UNDERSCORE || char==ASCII_DOLLAR
|
||||
|
||||
/n_scriptOptions/proc/IsValidIDChar(char) //returns true if the character can be in the body of a variable, function, or keyword name (by default letters, numbers, and underscore)
|
||||
if(!isnum(char))char=text2ascii(char)
|
||||
@@ -24,7 +24,7 @@ var/const //Ascii values of characters
|
||||
|
||||
/n_scriptOptions/proc/IsDigit(char)
|
||||
if(!isnum(char))char=text2ascii(char)
|
||||
return char in ascii_ZERO to ascii_NINE
|
||||
return char in ASCII_ZERO to ASCII_NINE
|
||||
|
||||
/n_scriptOptions/proc/IsValidID(id) //returns true if all the characters in the string are okay to be in an identifier name
|
||||
if(!CanStartID(id)) //don't need to grab first char in id, since text2ascii does it automatically
|
||||
@@ -98,3 +98,12 @@ associated values are <nS_Keyword> types of which the <n_Keyword.Parse()> proc w
|
||||
.=..()
|
||||
for(var/O in assign_operators+binary_operators+unary_operators)
|
||||
if(!symbols.Find(O)) symbols+=O
|
||||
|
||||
#undef ASCII_A
|
||||
#undef ASCII_Z
|
||||
#undef ASCII_LOWER_A
|
||||
#undef ASCII_LOWER_Z
|
||||
#undef ASCII_DOLLAR
|
||||
#undef ASCII_ZERO
|
||||
#undef ASCII_NINE
|
||||
#undef ASCII_UNDERSCORE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
/datum/shuttle/autodock/ferry/escape_pod/New()
|
||||
move_time = move_time + rand(-30, 60)
|
||||
if(name in emergency_shuttle.escape_pods)
|
||||
if(name in GLOB.emergency_shuttle.escape_pods)
|
||||
CRASH("An escape pod with the name '[name]' has already been defined.")
|
||||
emergency_shuttle.escape_pods[name] = src
|
||||
GLOB.emergency_shuttle.escape_pods[name] = src
|
||||
|
||||
..()
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
"docking_status" = docking_program.get_docking_status(),
|
||||
"override_enabled" = docking_program.override_enabled,
|
||||
"exterior_status" = docking_program.memory["door_status"], // TGUI DATA fails silently when there's no linked pod, leading to UI crashes
|
||||
"can_force" = pod?.can_force() || (emergency_shuttle.departed && pod?.can_launch()), //allow players to manually launch ahead of time if the shuttle leaves
|
||||
"can_force" = pod?.can_force() || (GLOB.emergency_shuttle.departed && pod?.can_launch()), //allow players to manually launch ahead of time if the shuttle leaves
|
||||
"armed" = pod?.arming_controller.armed,
|
||||
"internalTemplateName" = "EscapePodConsole",
|
||||
)
|
||||
@@ -72,7 +72,7 @@
|
||||
if("force_launch")
|
||||
if(pod.can_force())
|
||||
pod.force_launch(src)
|
||||
else if(emergency_shuttle.departed && pod.can_launch()) //allow players to manually launch ahead of time if the shuttle leaves
|
||||
else if(GLOB.emergency_shuttle.departed && pod.can_launch()) //allow players to manually launch ahead of time if the shuttle leaves
|
||||
pod.launch(src)
|
||||
. = TRUE
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
/datum/shuttle/autodock/ferry/emergency/New()
|
||||
..()
|
||||
radio_connection = SSradio.add_object(src, frequency, null)
|
||||
if(emergency_shuttle.shuttle)
|
||||
if(GLOB.emergency_shuttle.shuttle)
|
||||
CRASH("An emergency shuttle has already been defined.")
|
||||
emergency_shuttle.shuttle = src
|
||||
GLOB.emergency_shuttle.shuttle = src
|
||||
|
||||
/datum/shuttle/autodock/ferry/emergency/arrived()
|
||||
. = ..()
|
||||
@@ -17,7 +17,7 @@
|
||||
var/obj/machinery/computer/shuttle_control/emergency/C = in_use
|
||||
C.reset_authorization()
|
||||
|
||||
emergency_shuttle.shuttle_arrived()
|
||||
GLOB.emergency_shuttle.shuttle_arrived()
|
||||
|
||||
/datum/shuttle/autodock/ferry/emergency/long_jump(var/destination, var/interim, var/travel_time)
|
||||
if (!location)
|
||||
@@ -27,17 +27,17 @@
|
||||
|
||||
//update move_time and launch_time so we get correct ETAs
|
||||
move_time = travel_time
|
||||
emergency_shuttle.launch_time = world.time
|
||||
GLOB.emergency_shuttle.launch_time = world.time
|
||||
|
||||
..(destination, interim, travel_time, direction)
|
||||
|
||||
/datum/shuttle/autodock/ferry/emergency/perform_shuttle_move()
|
||||
if (current_location == landmark_station) //leaving the station
|
||||
spawn(0)
|
||||
emergency_shuttle.departed = 1
|
||||
var/estimated_time = round(emergency_shuttle.estimate_arrival_time()/60,1)
|
||||
GLOB.emergency_shuttle.departed = 1
|
||||
var/estimated_time = round(GLOB.emergency_shuttle.estimate_arrival_time()/60,1)
|
||||
|
||||
if (emergency_shuttle.evac)
|
||||
if (GLOB.emergency_shuttle.evac)
|
||||
priority_announcement.Announce(replacetext(replacetext(using_map.emergency_shuttle_leaving_dock, "%dock_name%", "[using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s"))
|
||||
else
|
||||
priority_announcement.Announce(replacetext(replacetext(using_map.shuttle_leaving_dock, "%dock_name%", "[using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s"), "Transfer System", 'sound/AI/tramdepart.ogg')
|
||||
@@ -71,8 +71,8 @@
|
||||
if (!can_launch(user)) return
|
||||
|
||||
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
||||
if (emergency_shuttle.autopilot)
|
||||
emergency_shuttle.autopilot = 0
|
||||
if (GLOB.emergency_shuttle.autopilot)
|
||||
GLOB.emergency_shuttle.autopilot = 0
|
||||
to_chat(world, span_boldnotice("Alert: The shuttle autopilot has been overridden. Launch sequence initiated!"))
|
||||
|
||||
if(usr)
|
||||
@@ -85,8 +85,8 @@
|
||||
if (!can_force(user)) return
|
||||
|
||||
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
||||
if (emergency_shuttle.autopilot)
|
||||
emergency_shuttle.autopilot = 0
|
||||
if (GLOB.emergency_shuttle.autopilot)
|
||||
GLOB.emergency_shuttle.autopilot = 0
|
||||
to_chat(world, span_boldnotice("Alert: The shuttle autopilot has been overridden. Bluespace drive engaged!"))
|
||||
|
||||
if(usr)
|
||||
@@ -99,8 +99,8 @@
|
||||
if (!can_cancel(user)) return
|
||||
|
||||
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
||||
if (emergency_shuttle.autopilot)
|
||||
emergency_shuttle.autopilot = 0
|
||||
if (GLOB.emergency_shuttle.autopilot)
|
||||
GLOB.emergency_shuttle.autopilot = 0
|
||||
to_chat(world, span_boldnotice("Alert: The shuttle autopilot has been overridden. Launch sequence aborted!"))
|
||||
|
||||
if(usr)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
var/list/spells = typesof(/spell) //needed for the badmin verb for now
|
||||
|
||||
/spell
|
||||
var/name = "Spell"
|
||||
var/desc = "A spell"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/datum/tgui_module/alarm_monitor/engineering
|
||||
/datum/tgui_module/alarm_monitor/engineering/New()
|
||||
..()
|
||||
alarm_handlers = list(atmosphere_alarm, fire_alarm, power_alarm)
|
||||
alarm_handlers = list(GLOB.atmosphere_alarm, GLOB.fire_alarm, GLOB.power_alarm)
|
||||
|
||||
// Subtype for glasses_state
|
||||
/datum/tgui_module/alarm_monitor/engineering/glasses
|
||||
@@ -44,7 +44,7 @@
|
||||
/datum/tgui_module/alarm_monitor/security
|
||||
/datum/tgui_module/alarm_monitor/security/New()
|
||||
..()
|
||||
alarm_handlers = list(camera_alarm, motion_alarm)
|
||||
alarm_handlers = list(GLOB.camera_alarm, GLOB.motion_alarm)
|
||||
|
||||
// Subtype for glasses_state
|
||||
/datum/tgui_module/alarm_monitor/security/glasses
|
||||
|
||||
@@ -145,12 +145,12 @@
|
||||
data["msg_cooldown"] = message_cooldown ? (round((message_cooldown - world.time) / 10)) : 0
|
||||
data["cc_cooldown"] = centcomm_message_cooldown ? (round((centcomm_message_cooldown - world.time) / 10)) : 0
|
||||
|
||||
data["esc_callable"] = emergency_shuttle.location() && !emergency_shuttle.online() ? TRUE : FALSE
|
||||
data["esc_recallable"] = emergency_shuttle.location() && emergency_shuttle.online() ? TRUE : FALSE
|
||||
data["esc_callable"] = GLOB.emergency_shuttle.location() && !GLOB.emergency_shuttle.online() ? TRUE : FALSE
|
||||
data["esc_recallable"] = GLOB.emergency_shuttle.location() && GLOB.emergency_shuttle.online() ? TRUE : FALSE
|
||||
data["esc_status"] = FALSE
|
||||
if(emergency_shuttle.has_eta())
|
||||
var/timeleft = emergency_shuttle.estimate_arrival_time()
|
||||
data["esc_status"] = emergency_shuttle.online() ? "ETA:" : "RECALLING:"
|
||||
if(GLOB.emergency_shuttle.has_eta())
|
||||
var/timeleft = GLOB.emergency_shuttle.estimate_arrival_time()
|
||||
data["esc_status"] = GLOB.emergency_shuttle.online() ? "ETA:" : "RECALLING:"
|
||||
data["esc_status"] += " [timeleft / 60 % 60]:[add_zero(num2text(timeleft % 60), 2)]"
|
||||
return data
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
return
|
||||
|
||||
call_shuttle_proc(ui.user)
|
||||
if(emergency_shuttle.online())
|
||||
if(GLOB.emergency_shuttle.online())
|
||||
post_status(src, "shuttle", user = ui.user)
|
||||
setMenuState(ui.user, COMM_SCREEN_MAIN)
|
||||
|
||||
@@ -381,7 +381,7 @@
|
||||
PS.allowedtocall = !(PS.allowedtocall)
|
||||
|
||||
/proc/call_shuttle_proc(var/mob/user)
|
||||
if ((!( SSticker ) || !emergency_shuttle.location()))
|
||||
if ((!( SSticker ) || !GLOB.emergency_shuttle.location()))
|
||||
return
|
||||
|
||||
if(!GLOB.universe.OnShuttleCall(user))
|
||||
@@ -392,7 +392,7 @@
|
||||
to_chat(user, "[using_map.boss_short] will not allow the shuttle to be called. Consider all contracts terminated.")
|
||||
return
|
||||
|
||||
if(emergency_shuttle.deny_shuttle)
|
||||
if(GLOB.emergency_shuttle.deny_shuttle)
|
||||
to_chat(user, "The emergency shuttle may not be sent at this time. Please try again later.")
|
||||
return
|
||||
|
||||
@@ -400,11 +400,11 @@
|
||||
to_chat(user, "The emergency shuttle is refueling. Please wait another [round((6000-world.time)/600)] minute\s before trying again.")
|
||||
return
|
||||
|
||||
if(emergency_shuttle.going_to_centcom())
|
||||
if(GLOB.emergency_shuttle.going_to_centcom())
|
||||
to_chat(user, "The emergency shuttle may not be called while returning to [using_map.boss_short].")
|
||||
return
|
||||
|
||||
if(emergency_shuttle.online())
|
||||
if(GLOB.emergency_shuttle.online())
|
||||
to_chat(user, "The emergency shuttle is already on its way.")
|
||||
return
|
||||
|
||||
@@ -412,7 +412,7 @@
|
||||
to_chat(user, "Under directive 7-10, [station_name()] is quarantined until further notice.")
|
||||
return
|
||||
|
||||
emergency_shuttle.call_evac()
|
||||
GLOB.emergency_shuttle.call_evac()
|
||||
log_game("[key_name(user)] has called the shuttle.")
|
||||
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
|
||||
admin_chat_message(message = "Emergency evac beginning! Called by [key_name(user)]!", color = "#CC2222") //VOREStation Add
|
||||
@@ -420,20 +420,20 @@
|
||||
return
|
||||
|
||||
/proc/init_shift_change(var/mob/user, var/force = 0)
|
||||
if ((!( SSticker ) || !emergency_shuttle.location()))
|
||||
if ((!( SSticker ) || !GLOB.emergency_shuttle.location()))
|
||||
return
|
||||
|
||||
if(emergency_shuttle.going_to_centcom())
|
||||
if(GLOB.emergency_shuttle.going_to_centcom())
|
||||
to_chat(user, "The shuttle may not be called while returning to [using_map.boss_short].")
|
||||
return
|
||||
|
||||
if(emergency_shuttle.online())
|
||||
if(GLOB.emergency_shuttle.online())
|
||||
to_chat(user, "The shuttle is already on its way.")
|
||||
return
|
||||
|
||||
// if force is 0, some things may stop the shuttle call
|
||||
if(!force)
|
||||
if(emergency_shuttle.deny_shuttle)
|
||||
if(GLOB.emergency_shuttle.deny_shuttle)
|
||||
to_chat(user, "[using_map.boss_short] does not currently have a shuttle available in your sector. Please try again later.")
|
||||
return
|
||||
|
||||
@@ -447,13 +447,13 @@
|
||||
|
||||
if(SSticker.mode.auto_recall_shuttle)
|
||||
//New version pretends to call the shuttle but cause the shuttle to return after a random duration.
|
||||
emergency_shuttle.auto_recall = 1
|
||||
GLOB.emergency_shuttle.auto_recall = 1
|
||||
|
||||
if(SSticker.mode.name == "blob" || SSticker.mode.name == "epidemic")
|
||||
to_chat(user, "Under directive 7-10, [station_name()] is quarantined until further notice.")
|
||||
return
|
||||
|
||||
emergency_shuttle.call_transfer()
|
||||
GLOB.emergency_shuttle.call_transfer()
|
||||
|
||||
//delay events in case of an autotransfer
|
||||
if (isnull(user))
|
||||
@@ -467,13 +467,13 @@
|
||||
return
|
||||
|
||||
/proc/cancel_call_proc(var/mob/user)
|
||||
if (!( SSticker ) || !emergency_shuttle.can_recall())
|
||||
if (!( SSticker ) || !GLOB.emergency_shuttle.can_recall())
|
||||
return
|
||||
if((SSticker.mode.name == "blob")||(SSticker.mode.name == "Meteor"))
|
||||
return
|
||||
|
||||
if(!emergency_shuttle.going_to_centcom()) //check that shuttle isn't already heading to CentCom
|
||||
emergency_shuttle.recall()
|
||||
if(!GLOB.emergency_shuttle.going_to_centcom()) //check that shuttle isn't already heading to CentCom
|
||||
GLOB.emergency_shuttle.recall()
|
||||
log_game("[key_name(user)] has recalled the shuttle.")
|
||||
message_admins("[key_name_admin(user)] has recalled the shuttle.", 1)
|
||||
return
|
||||
|
||||
@@ -62,10 +62,10 @@
|
||||
data["name"] = name
|
||||
data["duration"] = roundduration2text()
|
||||
|
||||
if(emergency_shuttle?.going_to_centcom())
|
||||
if(GLOB.emergency_shuttle?.going_to_centcom())
|
||||
data["evac"] = "Gone"
|
||||
else if(emergency_shuttle?.online())
|
||||
if(emergency_shuttle.evac)
|
||||
else if(GLOB.emergency_shuttle?.online())
|
||||
if(GLOB.emergency_shuttle.evac)
|
||||
data["evac"] = "Emergency"
|
||||
else
|
||||
data["evac"] = "Crew Transfer"
|
||||
|
||||
@@ -5,9 +5,8 @@
|
||||
|
||||
/datum/unit_test/materials_shall_have_names/Run()
|
||||
var/list/failures = list()
|
||||
populate_material_list()
|
||||
for(var/name in global.name_to_material)
|
||||
var/datum/material/mat = global.name_to_material[name]
|
||||
for(var/name, value in GLOB.name_to_material)
|
||||
var/datum/material/mat = value
|
||||
if(!mat)
|
||||
continue // how did we get here?
|
||||
if(!mat.display_name || !mat.use_name || !mat.sheet_singular_name || !mat.sheet_plural_name || !mat.sheet_collective_name)
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
var/list/ventcrawl_machinery = list(
|
||||
/obj/machinery/atmospherics/unary/vent_pump,
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber
|
||||
)
|
||||
|
||||
/mob/living/var/list/icon/pipes_shown = list()
|
||||
/mob/living/var/last_played_vent
|
||||
/mob/living/var/is_ventcrawling = FALSE
|
||||
@@ -126,7 +121,7 @@ var/list/ventcrawl_machinery = list(
|
||||
return ..()
|
||||
|
||||
/mob/living/AltClickOn(var/atom/A)
|
||||
if(is_type_in_list(A,ventcrawl_machinery))
|
||||
if(is_type_in_list(A, GLOB.ventcrawl_machinery))
|
||||
handle_ventcrawl(A)
|
||||
return 1
|
||||
return ..()
|
||||
@@ -135,7 +130,7 @@ var/list/ventcrawl_machinery = list(
|
||||
var/atom/pipe
|
||||
var/list/pipes = list()
|
||||
for(var/obj/machinery/atmospherics/unary/U in range(1))
|
||||
if(is_type_in_list(U,ventcrawl_machinery) && Adjacent(U) && !U.welded)
|
||||
if(is_type_in_list(U, GLOB.ventcrawl_machinery) && Adjacent(U) && !U.welded)
|
||||
pipes |= U
|
||||
if(!pipes || !pipes.len)
|
||||
to_chat(src, "There are no pipes that you can ventcrawl into within range!")
|
||||
@@ -164,7 +159,7 @@ var/list/ventcrawl_machinery = list(
|
||||
|
||||
if(!vent_found)
|
||||
for(var/obj/machinery/atmospherics/machine in range(1,src))
|
||||
if(is_type_in_list(machine, ventcrawl_machinery))
|
||||
if(is_type_in_list(machine, GLOB.ventcrawl_machinery))
|
||||
vent_found = machine
|
||||
|
||||
if(!vent_found || !vent_found.can_crawl_through())
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/proc/ventcrawl_to(var/mob/living/user, var/obj/machinery/atmospherics/target_move, var/direction)
|
||||
if(target_move)
|
||||
if(is_type_in_list(target_move, ventcrawl_machinery) && target_move.can_crawl_through())
|
||||
if(is_type_in_list(target_move, GLOB.ventcrawl_machinery) && target_move.can_crawl_through())
|
||||
user.remove_ventcrawl()
|
||||
user.forceMove(target_move.loc) //handles entering and so on
|
||||
user.visible_message("You hear something squeezing through the ducts.", "You climb out the ventilation system.")
|
||||
@@ -56,7 +56,7 @@
|
||||
T.runechat_message(message)
|
||||
|
||||
else
|
||||
if((direction & initialize_directions) || is_type_in_list(src, ventcrawl_machinery) && src.can_crawl_through()) //if we move in a way the pipe can connect, but doesn't - or we're in a vent
|
||||
if((direction & initialize_directions) || is_type_in_list(src, GLOB.ventcrawl_machinery) && src.can_crawl_through()) //if we move in a way the pipe can connect, but doesn't - or we're in a vent
|
||||
user.remove_ventcrawl()
|
||||
user.forceMove(src.loc)
|
||||
SEND_SIGNAL(user,COMSIG_MOB_VENTCRAWL_END,src)
|
||||
|
||||
@@ -924,7 +924,7 @@
|
||||
)
|
||||
if(O.material in rock_munch)
|
||||
nom = rock_munch[O.material]
|
||||
M = name_to_material[O.material]
|
||||
M = GLOB.name_to_material[O.material]
|
||||
else if(istype(O, /obj/item/ore/slag))
|
||||
nom = list("nutrition" = 15, "remark" = "You taste dusty, crunchy mistakes. This is a travesty... but at least it is an edible one.", "WTF" = FALSE)
|
||||
else //Random rock.
|
||||
@@ -965,7 +965,7 @@
|
||||
var/obj/item/stack/material/stack = O.split(1) //A little off the top.
|
||||
I = stack
|
||||
nom = refined_taste[O.default_type]
|
||||
M = name_to_material[O.default_type]
|
||||
M = GLOB.name_to_material[O.default_type]
|
||||
else if(istype(I, /obj/item/entrepreneur/crystal))
|
||||
nom = list("nutrition" = 100, "remark" = "The crytal was particularly brittle and not difficult to break apart, but the inside was incredibly flavoursome. Though devoid of any actual healing power, it seems to be very nutritious!", "WTF" = FALSE)
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
spawnpoint_type = /datum/spawnpoint/tram
|
||||
|
||||
/obj/machinery/cryopod/robot/door/tram/process()
|
||||
if(emergency_shuttle.online() || emergency_shuttle.returned())
|
||||
if(GLOB.emergency_shuttle.online() || GLOB.emergency_shuttle.returned())
|
||||
// Transform into a door! But first despawn anyone inside
|
||||
time_till_despawn = 0
|
||||
..()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user