mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-27 07:08:55 +01:00
[MIRROR] next set of globals (#12399)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
co-authored by
Kashargul
parent
b7c61c3a04
commit
ba01722b31
@@ -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)
|
||||
|
||||
@@ -3,7 +3,3 @@
|
||||
#define SMITE_HOTDOG "Hot Dog"
|
||||
|
||||
#define NEWSFILE "data/news.sav"
|
||||
|
||||
#define TGUI_VIEW_ATTACK_LOGS "Check Player Attack Logs"
|
||||
#define TGUI_VIEW_DIALOG_LOGS "Check Player Dialogue Logs"
|
||||
#define TGUI_RESIZE "Resize player"
|
||||
|
||||
@@ -99,3 +99,8 @@ _ADMIN_VERB(verb_path_name, verb_permissions, verb_name, verb_desc, verb_categor
|
||||
|
||||
// Visibility flags
|
||||
#define ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG "Map-Debug"
|
||||
|
||||
// Tgui input list options
|
||||
#define TGUI_VIEW_ATTACK_LOGS "Check Player Attack Logs"
|
||||
#define TGUI_VIEW_DIALOG_LOGS "Check Player Dialogue Logs"
|
||||
#define TGUI_RESIZE "Resize player"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -93,9 +93,6 @@
|
||||
#define NETWORK_MAINT_DECK "Maintenance Deck"
|
||||
// CHHOMPAdd End
|
||||
|
||||
// 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, NETWORK_EXPLORATION)
|
||||
|
||||
#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
|
||||
|
||||
|
||||
@@ -86,3 +86,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")
|
||||
@@ -634,7 +636,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,
|
||||
@@ -642,7 +644,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.
|
||||
@@ -1228,18 +1230,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(
|
||||
@@ -1653,6 +1643,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
|
||||
@@ -362,7 +362,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
|
||||
|
||||
@@ -20,4 +20,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,14 +41,14 @@
|
||||
|
||||
/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"
|
||||
playsound(src, 'sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications
|
||||
spawn(100) // Wait 10 seconds, then play it again
|
||||
playsound(src, 'sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications
|
||||
else
|
||||
alarms = atmosphere_alarm.minor_alarms()
|
||||
alarms = GLOB.atmosphere_alarm.minor_alarms()
|
||||
if(alarms.len)
|
||||
icon_screen = "alert:1"
|
||||
playsound(src, 'sound/effects/comp_alert_minor.ogg', 50, 1) // CHOMPEdit: Alarm notifications
|
||||
@@ -65,7 +65,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()
|
||||
|
||||
|
||||
@@ -217,7 +217,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)
|
||||
FA.soundloop.stop() // CHOMPEdit: Soundloop
|
||||
FA.firewarn = FALSE // CHOMPEdit: Soundloop Fix
|
||||
update_icon()
|
||||
@@ -231,7 +231,7 @@ FIRE ALARM
|
||||
if(!firewarn && !alarms_hidden) // CHOMPAdd
|
||||
GLOB.global_announcer.autosay("Tripped [area]", "Fire Alarm Monitor", DEPARTMENT_ENGINEERING)
|
||||
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)
|
||||
FA.soundloop.start() // CHOMPEdit: Soundloop
|
||||
FA.firewarn = TRUE // CHOMPEdit: Soundloop Fix
|
||||
update_icon()
|
||||
|
||||
@@ -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)]"
|
||||
|
||||
@@ -92,7 +92,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
|
||||
@@ -413,7 +413,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.
|
||||
|
||||
@@ -151,7 +151,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
|
||||
|
||||
@@ -101,8 +101,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,4 +1,3 @@
|
||||
|
||||
/turf/simulated/floor/outdoors/grass
|
||||
name = "grass"
|
||||
icon_state = "grass0"
|
||||
|
||||
@@ -529,7 +529,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)
|
||||
|
||||
@@ -870,7 +870,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
|
||||
@@ -882,15 +882,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!
|
||||
@@ -906,10 +906,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)
|
||||
@@ -925,10 +925,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
|
||||
|
||||
/* CHOMPRemove Start Virgo Fluffitems
|
||||
// 0-9 CKEYS
|
||||
|
||||
@@ -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,8 +180,8 @@ var/list/_human_default_emotes = list(
|
||||
/decl/emote/audible/caw2,
|
||||
/decl/emote/audible/caw_m,
|
||||
/decl/emote/audible/gwah,
|
||||
//VOREStation Add End
|
||||
//CHOMP Add start
|
||||
/decl/emote/audible/wheeze,
|
||||
/decl/emote/audible/prbt2,
|
||||
/decl/emote/audible/pain,
|
||||
/decl/emote/audible/mgeow,
|
||||
@@ -190,21 +189,17 @@ var/list/_human_default_emotes = list(
|
||||
/decl/emote/audible/xenogrowl,
|
||||
/decl/emote/audible/xenohiss,
|
||||
/decl/emote/audible/xenopurr,
|
||||
/decl/emote/audible/gwah,
|
||||
/decl/emote/audible/wawa,
|
||||
/decl/emote/audible/malehumanscream,
|
||||
/decl/emote/audible/scientist/scream,
|
||||
/decl/emote/audible/scientist/pain,
|
||||
/decl/emote/audible/caw,
|
||||
/decl/emote/audible/yip,
|
||||
/decl/emote/audible/tailthump,
|
||||
/decl/emote/audible/squeal,
|
||||
//CHOMP 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,
|
||||
@@ -348,27 +343,26 @@ var/list/_simple_mob_default_emotes = list(
|
||||
/decl/emote/audible/caw_m,
|
||||
/decl/emote/audible/gwah,
|
||||
//CHOMP Add start
|
||||
/decl/emote/audible/wheeze,
|
||||
/decl/emote/audible/prbt2,
|
||||
/decl/emote/audible/pain,
|
||||
/decl/emote/audible/mgeow,
|
||||
/decl/emote/audible/xenogrowl,
|
||||
/decl/emote/audible/xenohiss,
|
||||
/decl/emote/audible/xenopurr,
|
||||
/decl/emote/audible/caw,
|
||||
/decl/emote/audible/yip,
|
||||
/decl/emote/audible/tailthump,
|
||||
/decl/emote/audible/squeal,
|
||||
//CHOMP Add end
|
||||
)
|
||||
//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]"
|
||||
|
||||
|
||||
@@ -190,8 +190,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()
|
||||
|
||||
@@ -404,7 +404,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()
|
||||
@@ -557,7 +557,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
|
||||
|
||||
@@ -156,8 +156,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
|
||||
|
||||
@@ -148,5 +148,5 @@
|
||||
|
||||
//CHOMPEdit Start: Emotes!
|
||||
/mob/living/voice/get_available_emotes()
|
||||
LAZYOR(., global._simple_mob_default_emotes)
|
||||
LAZYOR(., GLOB.simple_mob_default_emotes)
|
||||
//CHOMPEdit End
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1125,7 +1125,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
|
||||
@@ -1149,27 +1149,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)
|
||||
@@ -1293,7 +1293,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")) //CHOMP reversion
|
||||
@@ -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
|
||||
|
||||
@@ -276,7 +276,7 @@
|
||||
|
||||
if(response == "Yes") //CHOMPEdit End
|
||||
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)
|
||||
|
||||
@@ -385,7 +385,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))
|
||||
@@ -396,7 +396,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
|
||||
|
||||
@@ -404,11 +404,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
|
||||
|
||||
@@ -416,7 +416,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
|
||||
@@ -424,20 +424,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
|
||||
|
||||
@@ -451,13 +451,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))
|
||||
@@ -471,13 +471,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())
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user