mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 23:52:12 +00:00
Runtime Map Loading (#3597)
changes: Maps are no longer compiled in, instead loaded directly from the DMMs at runtime. Z level defines have been moved from the config to map datums. Unit tests now use typecaches. DMMS now actually works. DMMS has been updated slightly. DMMS is now capable of loading simple lists of non-text types. DMMS is now faster when loading many types without mapped in attributes and when loading area instances. Asteroid generation is now defined on the map datum instead of being hard-coded in SSasteroid. Holodeck presets are now defined on the map datum. Atmos machinery now uses Initialize().
This commit is contained in:
15
.travis.yml
15
.travis.yml
@@ -2,10 +2,15 @@ language: generic
|
|||||||
sudo: false
|
sudo: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
BYOND_MAJOR="511"
|
global:
|
||||||
BYOND_MINOR="1385"
|
BYOND_MAJOR="511"
|
||||||
MACRO_COUNT=120
|
BYOND_MINOR="1385"
|
||||||
FLYWAY_BUILD="4.2.0"
|
MACRO_COUNT=120
|
||||||
|
FLYWAY_BUILD="4.2.0"
|
||||||
|
matrix:
|
||||||
|
- USE_MAP=aurora
|
||||||
|
- USE_MAP=runtime
|
||||||
|
- USE_MAP=exodus
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
@@ -44,7 +49,7 @@ script:
|
|||||||
- python tools/GenerateChangelog/ss13_genchangelog.py html/changelog.html html/changelogs --dry-run
|
- python tools/GenerateChangelog/ss13_genchangelog.py html/changelog.html html/changelogs --dry-run
|
||||||
- source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup
|
- source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup
|
||||||
- cp config/example/* config/
|
- cp config/example/* config/
|
||||||
- scripts/dm.sh -DUNIT_TEST aurorastation.dme
|
- scripts/dm.sh -DUNIT_TEST -M$USE_MAP aurorastation.dme
|
||||||
- grep "0 warnings" build_log.txt
|
- grep "0 warnings" build_log.txt
|
||||||
- DreamDaemon aurorastation.dmb -invisible -trusted -core 2>&1 | tee log.txt
|
- DreamDaemon aurorastation.dmb -invisible -trusted -core 2>&1 | tee log.txt
|
||||||
- grep "All Unit Tests Passed" log.txt
|
- grep "All Unit Tests Passed" log.txt
|
||||||
|
|||||||
3
_maps/_README.dm
Normal file
3
_maps/_README.dm
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
/*
|
||||||
|
-- INCLUDE THE BELOW DM FILES INSTEAD OF INCLUDING THE MAPS DIRECTLY IF YOU WANT TO FORCE A MAP! --
|
||||||
|
*/
|
||||||
1
_maps/aurora.dm
Normal file
1
_maps/aurora.dm
Normal file
@@ -0,0 +1 @@
|
|||||||
|
#define DEFAULT_MAP "aurora"
|
||||||
1
_maps/exodus.dm
Normal file
1
_maps/exodus.dm
Normal file
@@ -0,0 +1 @@
|
|||||||
|
#define DEFAULT_MAP "exodus"
|
||||||
1
_maps/runtime.dm
Normal file
1
_maps/runtime.dm
Normal file
@@ -0,0 +1 @@
|
|||||||
|
#define DEFAULT_MAP "runtime"
|
||||||
@@ -183,6 +183,7 @@
|
|||||||
#include "code\controllers\subsystems\trade.dm"
|
#include "code\controllers\subsystems\trade.dm"
|
||||||
#include "code\controllers\subsystems\vote.dm"
|
#include "code\controllers\subsystems\vote.dm"
|
||||||
#include "code\controllers\subsystems\initialization\asteroid.dm"
|
#include "code\controllers\subsystems\initialization\asteroid.dm"
|
||||||
|
#include "code\controllers\subsystems\initialization\atlas.dm"
|
||||||
#include "code\controllers\subsystems\initialization\atoms.dm"
|
#include "code\controllers\subsystems\initialization\atoms.dm"
|
||||||
#include "code\controllers\subsystems\initialization\minimap.dm"
|
#include "code\controllers\subsystems\initialization\minimap.dm"
|
||||||
#include "code\controllers\subsystems\initialization\misc_early.dm"
|
#include "code\controllers\subsystems\initialization\misc_early.dm"
|
||||||
@@ -2273,13 +2274,16 @@
|
|||||||
#include "code\ZAS\Zone.dm"
|
#include "code\ZAS\Zone.dm"
|
||||||
#include "interface\interface.dm"
|
#include "interface\interface.dm"
|
||||||
#include "interface\skin.dmf"
|
#include "interface\skin.dmf"
|
||||||
#include "maps\aurora\aurora-1_centcomm.dmm"
|
#include "maps\_mapsystem\map.dm"
|
||||||
#include "maps\aurora\aurora-2_under-station.dmm"
|
#include "maps\_mapsystem\map_unit.dm"
|
||||||
#include "maps\aurora\aurora-3_sublevel.dmm"
|
#include "maps\aurora\code\aurora.dm"
|
||||||
#include "maps\aurora\aurora-4_mainlevel.dmm"
|
#include "maps\aurora\code\aurora_holodeck.dm"
|
||||||
#include "maps\aurora\aurora-5_interstitial.dmm"
|
#include "maps\aurora\code\aurora_shuttles.dm"
|
||||||
#include "maps\aurora\aurora-6_surface.dmm"
|
#include "maps\aurora\code\aurora_unittest.dm"
|
||||||
#include "maps\aurora\aurora-7_roof.dmm"
|
#include "maps\exodus\code\exodus.dm"
|
||||||
#include "maps\aurora\aurora-8_derelict.dmm"
|
#include "maps\exodus\code\exodus_areas.dm"
|
||||||
#include "maps\aurora\aurora-9_space.dmm"
|
#include "maps\exodus\code\exodus_shuttles.dm"
|
||||||
|
#include "maps\exodus\code\exodus_unittest.dm"
|
||||||
|
#include "maps\runtime\code\runtime.dm"
|
||||||
|
#include "maps\runtime\code\runtime_unittest.dm"
|
||||||
// END_INCLUDE
|
// END_INCLUDE
|
||||||
|
|||||||
@@ -30,7 +30,8 @@ Pipelines + Other Objects -> Pipe network
|
|||||||
var/obj/machinery/atmospherics/node2
|
var/obj/machinery/atmospherics/node2
|
||||||
gfi_layer_rotation = GFI_ROTATION_OVERDIR
|
gfi_layer_rotation = GFI_ROTATION_OVERDIR
|
||||||
|
|
||||||
/obj/machinery/atmospherics/New()
|
/obj/machinery/atmospherics/Initialize(mapload)
|
||||||
|
. = ..()
|
||||||
if(!icon_manager)
|
if(!icon_manager)
|
||||||
icon_manager = new()
|
icon_manager = new()
|
||||||
|
|
||||||
@@ -40,17 +41,16 @@ Pipelines + Other Objects -> Pipe network
|
|||||||
|
|
||||||
if(!pipe_color_check(pipe_color))
|
if(!pipe_color_check(pipe_color))
|
||||||
pipe_color = null
|
pipe_color = null
|
||||||
..()
|
|
||||||
|
if (mapload)
|
||||||
|
return INITIALIZE_HINT_LATELOAD
|
||||||
|
|
||||||
/obj/machinery/atmospherics/proc/atmos_init()
|
/obj/machinery/atmospherics/proc/atmos_init()
|
||||||
|
|
||||||
|
|
||||||
// atmos_init() and Initialize() must be separate, as atmos_init() can be called multiple times after the machine has been initialized.
|
// atmos_init() and Initialize() must be separate, as atmos_init() can be called multiple times after the machine has been initialized.
|
||||||
|
|
||||||
/obj/machinery/atmospherics/Initialize(mapload, ...)
|
/obj/machinery/atmospherics/LateInitialize()
|
||||||
. = ..()
|
atmos_init()
|
||||||
if (mapload)
|
|
||||||
atmos_init()
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/attackby(atom/A, mob/user as mob)
|
/obj/machinery/atmospherics/attackby(atom/A, mob/user as mob)
|
||||||
if(istype(A, /obj/item/device/pipe_painter))
|
if(istype(A, /obj/item/device/pipe_painter))
|
||||||
|
|||||||
@@ -9,8 +9,7 @@ obj/machinery/atmospherics/binary
|
|||||||
var/datum/pipe_network/network1
|
var/datum/pipe_network/network1
|
||||||
var/datum/pipe_network/network2
|
var/datum/pipe_network/network2
|
||||||
|
|
||||||
New()
|
Initialize()
|
||||||
..()
|
|
||||||
switch(dir)
|
switch(dir)
|
||||||
if(NORTH)
|
if(NORTH)
|
||||||
initialize_directions = NORTH|SOUTH
|
initialize_directions = NORTH|SOUTH
|
||||||
@@ -25,6 +24,7 @@ obj/machinery/atmospherics/binary
|
|||||||
|
|
||||||
air1.volume = 200
|
air1.volume = 200
|
||||||
air2.volume = 200
|
air2.volume = 200
|
||||||
|
. = ..()
|
||||||
|
|
||||||
// Housekeeping and pipe network stuff below
|
// Housekeeping and pipe network stuff below
|
||||||
network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
|
network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
|
||||||
|
|||||||
@@ -24,8 +24,8 @@
|
|||||||
|
|
||||||
density = 1
|
density = 1
|
||||||
|
|
||||||
/obj/machinery/atmospherics/binary/circulator/New()
|
/obj/machinery/atmospherics/binary/circulator/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]."
|
desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]."
|
||||||
air1.volume = 400
|
air1.volume = 400
|
||||||
|
|
||||||
|
|||||||
@@ -41,8 +41,8 @@
|
|||||||
//2: Do not pass input_pressure_min
|
//2: Do not pass input_pressure_min
|
||||||
//4: Do not pass output_pressure_max
|
//4: Do not pass output_pressure_max
|
||||||
|
|
||||||
/obj/machinery/atmospherics/binary/dp_vent_pump/New()
|
/obj/machinery/atmospherics/binary/dp_vent_pump/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
||||||
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
||||||
icon = null
|
icon = null
|
||||||
@@ -50,8 +50,8 @@
|
|||||||
/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume
|
/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume
|
||||||
name = "Large Dual Port Air Vent"
|
name = "Large Dual Port Air Vent"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume/New()
|
/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
|
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
|
||||||
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
|
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,8 @@
|
|||||||
var/id = null
|
var/id = null
|
||||||
var/datum/radio_frequency/radio_connection
|
var/datum/radio_frequency/radio_connection
|
||||||
|
|
||||||
/obj/machinery/atmospherics/binary/passive_gate/New()
|
/obj/machinery/atmospherics/binary/passive_gate/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
|
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
|
||||||
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
|
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,8 @@
|
|||||||
|
|
||||||
var/efficiency = 0.4
|
var/efficiency = 0.4
|
||||||
var/kin_energy = 0
|
var/kin_energy = 0
|
||||||
var/datum/gas_mixture/air_in = new
|
var/datum/gas_mixture/air_in
|
||||||
var/datum/gas_mixture/air_out = new
|
var/datum/gas_mixture/air_out
|
||||||
var/volume_ratio = 0.2
|
var/volume_ratio = 0.2
|
||||||
var/kin_loss = 0.001
|
var/kin_loss = 0.001
|
||||||
|
|
||||||
@@ -20,9 +20,10 @@
|
|||||||
var/datum/pipe_network/network1
|
var/datum/pipe_network/network1
|
||||||
var/datum/pipe_network/network2
|
var/datum/pipe_network/network2
|
||||||
|
|
||||||
New()
|
Initialize()
|
||||||
..()
|
air_in = new
|
||||||
air_in.volume = 200
|
air_in.volume = 200
|
||||||
|
air_out = new
|
||||||
air_out.volume = 800
|
air_out.volume = 800
|
||||||
volume_ratio = air_in.volume / (air_in.volume + air_out.volume)
|
volume_ratio = air_in.volume / (air_in.volume + air_out.volume)
|
||||||
switch(dir)
|
switch(dir)
|
||||||
@@ -34,6 +35,7 @@
|
|||||||
initialize_directions = NORTH|SOUTH
|
initialize_directions = NORTH|SOUTH
|
||||||
if(WEST)
|
if(WEST)
|
||||||
initialize_directions = NORTH|SOUTH
|
initialize_directions = NORTH|SOUTH
|
||||||
|
. = ..()
|
||||||
|
|
||||||
Destroy()
|
Destroy()
|
||||||
loc = null
|
loc = null
|
||||||
@@ -234,10 +236,13 @@
|
|||||||
var/kin_to_el_ratio = 0.1 //How much kinetic energy will be taken from turbine and converted into electricity
|
var/kin_to_el_ratio = 0.1 //How much kinetic energy will be taken from turbine and converted into electricity
|
||||||
var/obj/machinery/atmospherics/pipeturbine/turbine
|
var/obj/machinery/atmospherics/pipeturbine/turbine
|
||||||
|
|
||||||
New()
|
Initialize()
|
||||||
..()
|
..()
|
||||||
spawn(1)
|
return INITIALIZE_HINT_LATELOAD
|
||||||
updateConnection()
|
|
||||||
|
LateInitialize()
|
||||||
|
..()
|
||||||
|
updateConnection()
|
||||||
|
|
||||||
proc/updateConnection()
|
proc/updateConnection()
|
||||||
turbine = null
|
turbine = null
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ Thus, the two variables affect pump operation are set in New():
|
|||||||
var/id = null
|
var/id = null
|
||||||
var/datum/radio_frequency/radio_connection
|
var/datum/radio_frequency/radio_connection
|
||||||
|
|
||||||
/obj/machinery/atmospherics/binary/pump/New()
|
/obj/machinery/atmospherics/binary/pump/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
||||||
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,8 @@
|
|||||||
|
|
||||||
var/list/filtering_outputs = list() //maps gasids to gas_mixtures
|
var/list/filtering_outputs = list() //maps gasids to gas_mixtures
|
||||||
|
|
||||||
/obj/machinery/atmospherics/omni/filter/New()
|
/obj/machinery/atmospherics/omni/filter/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
rebuild_filtering_list()
|
rebuild_filtering_list()
|
||||||
for(var/datum/omni_port/P in ports)
|
for(var/datum/omni_port/P in ports)
|
||||||
P.air.volume = ATMOS_DEFAULT_VOLUME_FILTER
|
P.air.volume = ATMOS_DEFAULT_VOLUME_FILTER
|
||||||
|
|||||||
@@ -24,8 +24,8 @@
|
|||||||
|
|
||||||
var/list/mixing_inputs = list()
|
var/list/mixing_inputs = list()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/omni/mixer/New()
|
/obj/machinery/atmospherics/omni/mixer/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
if(mapper_set())
|
if(mapper_set())
|
||||||
var/con = 0
|
var/con = 0
|
||||||
for(var/datum/omni_port/P in ports)
|
for(var/datum/omni_port/P in ports)
|
||||||
|
|||||||
@@ -26,8 +26,8 @@
|
|||||||
|
|
||||||
var/list/ports = new()
|
var/list/ports = new()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/omni/New()
|
/obj/machinery/atmospherics/omni/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
icon_state = "base"
|
icon_state = "base"
|
||||||
|
|
||||||
ports = new()
|
ports = new()
|
||||||
|
|||||||
@@ -19,9 +19,9 @@
|
|||||||
level = 1
|
level = 1
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/portables_connector/New()
|
/obj/machinery/atmospherics/portables_connector/Initialize()
|
||||||
initialize_directions = dir
|
initialize_directions = dir
|
||||||
..()
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/portables_connector/update_icon()
|
/obj/machinery/atmospherics/portables_connector/update_icon()
|
||||||
icon_state = "connector"
|
icon_state = "connector"
|
||||||
|
|||||||
@@ -36,8 +36,8 @@
|
|||||||
if(frequency)
|
if(frequency)
|
||||||
radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
|
radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
|
||||||
|
|
||||||
/obj/machinery/atmospherics/trinary/filter/New()
|
/obj/machinery/atmospherics/trinary/filter/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
switch(filter_type)
|
switch(filter_type)
|
||||||
if(0) //removing hydrocarbons
|
if(0) //removing hydrocarbons
|
||||||
filtered_out = list("phoron")
|
filtered_out = list("phoron")
|
||||||
@@ -237,8 +237,7 @@
|
|||||||
dir = SOUTH
|
dir = SOUTH
|
||||||
initialize_directions = SOUTH|NORTH|EAST
|
initialize_directions = SOUTH|NORTH|EAST
|
||||||
|
|
||||||
obj/machinery/atmospherics/trinary/filter/m_filter/New()
|
obj/machinery/atmospherics/trinary/filter/m_filter/Initialize()
|
||||||
..()
|
|
||||||
switch(dir)
|
switch(dir)
|
||||||
if(NORTH)
|
if(NORTH)
|
||||||
initialize_directions = WEST|NORTH|SOUTH
|
initialize_directions = WEST|NORTH|SOUTH
|
||||||
@@ -248,6 +247,7 @@ obj/machinery/atmospherics/trinary/filter/m_filter/New()
|
|||||||
initialize_directions = EAST|WEST|NORTH
|
initialize_directions = EAST|WEST|NORTH
|
||||||
if(WEST)
|
if(WEST)
|
||||||
initialize_directions = WEST|SOUTH|EAST
|
initialize_directions = WEST|SOUTH|EAST
|
||||||
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/trinary/filter/m_filter/atmos_init()
|
/obj/machinery/atmospherics/trinary/filter/m_filter/atmos_init()
|
||||||
set_frequency(frequency)
|
set_frequency(frequency)
|
||||||
|
|||||||
@@ -63,8 +63,8 @@
|
|||||||
if(old_stat != stat)
|
if(old_stat != stat)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/trinary/mixer/New()
|
/obj/machinery/atmospherics/trinary/mixer/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
air1.volume = ATMOS_DEFAULT_VOLUME_MIXER
|
air1.volume = ATMOS_DEFAULT_VOLUME_MIXER
|
||||||
air2.volume = ATMOS_DEFAULT_VOLUME_MIXER
|
air2.volume = ATMOS_DEFAULT_VOLUME_MIXER
|
||||||
air3.volume = ATMOS_DEFAULT_VOLUME_MIXER * 1.5
|
air3.volume = ATMOS_DEFAULT_VOLUME_MIXER * 1.5
|
||||||
@@ -183,8 +183,7 @@ obj/machinery/atmospherics/trinary/mixer/t_mixer
|
|||||||
|
|
||||||
//node 3 is the outlet, nodes 1 & 2 are intakes
|
//node 3 is the outlet, nodes 1 & 2 are intakes
|
||||||
|
|
||||||
obj/machinery/atmospherics/trinary/mixer/t_mixer/New()
|
obj/machinery/atmospherics/trinary/mixer/t_mixer/Initialize()
|
||||||
..()
|
|
||||||
switch(dir)
|
switch(dir)
|
||||||
if(NORTH)
|
if(NORTH)
|
||||||
initialize_directions = EAST|NORTH|WEST
|
initialize_directions = EAST|NORTH|WEST
|
||||||
@@ -194,6 +193,7 @@ obj/machinery/atmospherics/trinary/mixer/t_mixer/New()
|
|||||||
initialize_directions = EAST|NORTH|SOUTH
|
initialize_directions = EAST|NORTH|SOUTH
|
||||||
if(WEST)
|
if(WEST)
|
||||||
initialize_directions = WEST|NORTH|SOUTH
|
initialize_directions = WEST|NORTH|SOUTH
|
||||||
|
. = ..()
|
||||||
|
|
||||||
obj/machinery/atmospherics/trinary/mixer/t_mixer/atmos_init()
|
obj/machinery/atmospherics/trinary/mixer/t_mixer/atmos_init()
|
||||||
..()
|
..()
|
||||||
@@ -229,8 +229,7 @@ obj/machinery/atmospherics/trinary/mixer/m_mixer
|
|||||||
|
|
||||||
//node 3 is the outlet, nodes 1 & 2 are intakes
|
//node 3 is the outlet, nodes 1 & 2 are intakes
|
||||||
|
|
||||||
obj/machinery/atmospherics/trinary/mixer/m_mixer/New()
|
obj/machinery/atmospherics/trinary/mixer/m_mixer/Initialize()
|
||||||
..()
|
|
||||||
switch(dir)
|
switch(dir)
|
||||||
if(NORTH)
|
if(NORTH)
|
||||||
initialize_directions = WEST|NORTH|SOUTH
|
initialize_directions = WEST|NORTH|SOUTH
|
||||||
@@ -240,6 +239,7 @@ obj/machinery/atmospherics/trinary/mixer/m_mixer/New()
|
|||||||
initialize_directions = EAST|WEST|NORTH
|
initialize_directions = EAST|WEST|NORTH
|
||||||
if(WEST)
|
if(WEST)
|
||||||
initialize_directions = WEST|SOUTH|EAST
|
initialize_directions = WEST|SOUTH|EAST
|
||||||
|
. = ..()
|
||||||
|
|
||||||
obj/machinery/atmospherics/trinary/mixer/m_mixer/atmos_init()
|
obj/machinery/atmospherics/trinary/mixer/m_mixer/atmos_init()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -13,8 +13,7 @@ obj/machinery/atmospherics/trinary
|
|||||||
var/datum/pipe_network/network2
|
var/datum/pipe_network/network2
|
||||||
var/datum/pipe_network/network3
|
var/datum/pipe_network/network3
|
||||||
|
|
||||||
New()
|
Initialize()
|
||||||
..()
|
|
||||||
switch(dir)
|
switch(dir)
|
||||||
if(NORTH)
|
if(NORTH)
|
||||||
initialize_directions = EAST|NORTH|SOUTH
|
initialize_directions = EAST|NORTH|SOUTH
|
||||||
@@ -31,6 +30,7 @@ obj/machinery/atmospherics/trinary
|
|||||||
air1.volume = 200
|
air1.volume = 200
|
||||||
air2.volume = 200
|
air2.volume = 200
|
||||||
air3.volume = 200
|
air3.volume = 200
|
||||||
|
. = ..()
|
||||||
|
|
||||||
// Housekeeping and pipe network stuff below
|
// Housekeeping and pipe network stuff below
|
||||||
network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
|
network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
|
||||||
|
|||||||
@@ -46,9 +46,9 @@
|
|||||||
/obj/machinery/atmospherics/tvalve/hide(var/i)
|
/obj/machinery/atmospherics/tvalve/hide(var/i)
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/tvalve/New()
|
/obj/machinery/atmospherics/tvalve/Initialize()
|
||||||
initialize_directions()
|
initialize_directions()
|
||||||
..()
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/tvalve/proc/initialize_directions()
|
/obj/machinery/atmospherics/tvalve/proc/initialize_directions()
|
||||||
switch(dir)
|
switch(dir)
|
||||||
|
|||||||
@@ -28,9 +28,9 @@
|
|||||||
/obj/item/stack/cable_coil{amount = 2}
|
/obj/item/stack/cable_coil{amount = 2}
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/freezer/New()
|
/obj/machinery/atmospherics/unary/freezer/Initialize()
|
||||||
..()
|
|
||||||
initialize_directions = dir
|
initialize_directions = dir
|
||||||
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/freezer/atmos_init()
|
/obj/machinery/atmospherics/unary/freezer/atmos_init()
|
||||||
if(node)
|
if(node)
|
||||||
|
|||||||
@@ -27,8 +27,8 @@
|
|||||||
/obj/item/stack/cable_coil{amount = 5}
|
/obj/item/stack/cable_coil{amount = 5}
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/heater/New()
|
/obj/machinery/atmospherics/unary/heater/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
initialize_directions = dir
|
initialize_directions = dir
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/heater/atmos_init()
|
/obj/machinery/atmospherics/unary/heater/atmos_init()
|
||||||
|
|||||||
@@ -24,8 +24,8 @@
|
|||||||
|
|
||||||
level = 1
|
level = 1
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/outlet_injector/New()
|
/obj/machinery/atmospherics/unary/outlet_injector/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //Give it a small reservoir for injecting. Also allows it to have a higher flow rate limit than vent pumps, to differentiate injectors a bit more.
|
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //Give it a small reservoir for injecting. Also allows it to have a higher flow rate limit than vent pumps, to differentiate injectors a bit more.
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/outlet_injector/update_icon()
|
/obj/machinery/atmospherics/unary/outlet_injector/update_icon()
|
||||||
|
|||||||
@@ -23,9 +23,8 @@ obj/machinery/atmospherics/unary/oxygen_generator
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
New()
|
Initialize()
|
||||||
..()
|
. = ..()
|
||||||
|
|
||||||
air_contents.volume = 50
|
air_contents.volume = 50
|
||||||
|
|
||||||
machinery_process()
|
machinery_process()
|
||||||
|
|||||||
@@ -9,12 +9,11 @@
|
|||||||
|
|
||||||
var/datum/pipe_network/network
|
var/datum/pipe_network/network
|
||||||
|
|
||||||
New()
|
Initialize()
|
||||||
..()
|
|
||||||
initialize_directions = dir
|
initialize_directions = dir
|
||||||
air_contents = new
|
air_contents = new
|
||||||
|
|
||||||
air_contents.volume = 200
|
air_contents.volume = 200
|
||||||
|
. = ..()
|
||||||
|
|
||||||
// Housekeeping and pipe network stuff below
|
// Housekeeping and pipe network stuff below
|
||||||
network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
|
network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
|
||||||
|
|||||||
@@ -69,8 +69,8 @@
|
|||||||
pressure_checks = 2
|
pressure_checks = 2
|
||||||
pressure_checks_default = 2
|
pressure_checks_default = 2
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/New()
|
/obj/machinery/atmospherics/unary/vent_pump/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
||||||
|
|
||||||
|
|
||||||
@@ -105,8 +105,8 @@
|
|||||||
power_channel = EQUIP
|
power_channel = EQUIP
|
||||||
power_rating = 15000 //15 kW ~ 20 HP
|
power_rating = 15000 //15 kW ~ 20 HP
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/high_volume/New()
|
/obj/machinery/atmospherics/unary/vent_pump/high_volume/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
|
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/engine
|
/obj/machinery/atmospherics/unary/vent_pump/engine
|
||||||
@@ -114,8 +114,8 @@
|
|||||||
power_channel = ENVIRON
|
power_channel = ENVIRON
|
||||||
power_rating = 30000 //15 kW ~ 20 HP
|
power_rating = 30000 //15 kW ~ 20 HP
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/engine/New()
|
/obj/machinery/atmospherics/unary/vent_pump/engine/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //meant to match air injector
|
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //meant to match air injector
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0)
|
/obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0)
|
||||||
|
|||||||
@@ -33,8 +33,8 @@
|
|||||||
use_power = 1
|
use_power = 1
|
||||||
icon_state = "map_scrubber_on"
|
icon_state = "map_scrubber_on"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_scrubber/New()
|
/obj/machinery/atmospherics/unary/vent_scrubber/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
air_contents.volume = ATMOS_DEFAULT_VOLUME_FILTER
|
air_contents.volume = ATMOS_DEFAULT_VOLUME_FILTER
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -37,13 +37,13 @@
|
|||||||
/obj/machinery/atmospherics/valve/hide(var/i)
|
/obj/machinery/atmospherics/valve/hide(var/i)
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/valve/New()
|
/obj/machinery/atmospherics/valve/Initialize()
|
||||||
switch(dir)
|
switch(dir)
|
||||||
if(NORTH || SOUTH)
|
if(NORTH || SOUTH)
|
||||||
initialize_directions = NORTH|SOUTH
|
initialize_directions = NORTH|SOUTH
|
||||||
if(EAST || WEST)
|
if(EAST || WEST)
|
||||||
initialize_directions = EAST|WEST
|
initialize_directions = EAST|WEST
|
||||||
..()
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/valve/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
|
/obj/machinery/atmospherics/valve/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
|
||||||
if(reference == node1)
|
if(reference == node1)
|
||||||
@@ -166,7 +166,7 @@
|
|||||||
|
|
||||||
build_network()
|
build_network()
|
||||||
|
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|
||||||
if(openDuringInit)
|
if(openDuringInit)
|
||||||
@@ -262,7 +262,7 @@
|
|||||||
var/old_stat = stat
|
var/old_stat = stat
|
||||||
..()
|
..()
|
||||||
if(old_stat != stat)
|
if(old_stat != stat)
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/valve/digital/update_icon()
|
/obj/machinery/atmospherics/valve/digital/update_icon()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -16,11 +16,11 @@
|
|||||||
buckle_lying = 1
|
buckle_lying = 1
|
||||||
|
|
||||||
// BubbleWrap
|
// BubbleWrap
|
||||||
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/New()
|
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
initialize_directions_he = initialize_directions // The auto-detection from /pipe is good enough for a simple HE pipe
|
initialize_directions_he = initialize_directions // The auto-detection from /pipe is good enough for a simple HE pipe
|
||||||
// BubbleWrap END
|
// BubbleWrap END
|
||||||
color = "#404040" //we don't make use of the fancy overlay system for colours, use this to set the default.
|
color = "#404040" //we don't make use of the fancy overlay system for colours, use this to set the default.
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/atmos_init()
|
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/atmos_init()
|
||||||
normalize_dir()
|
normalize_dir()
|
||||||
@@ -46,8 +46,7 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
return
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/machinery_process()
|
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/machinery_process()
|
||||||
if(!parent)
|
if(!parent)
|
||||||
@@ -111,23 +110,23 @@
|
|||||||
minimum_temperature_difference = 300
|
minimum_temperature_difference = 300
|
||||||
thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
|
thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
|
||||||
|
|
||||||
// BubbleWrap
|
// BubbleWrap
|
||||||
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/New()
|
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/Initialize()
|
||||||
.. ()
|
switch (dir)
|
||||||
switch ( dir )
|
if (SOUTH)
|
||||||
if ( SOUTH )
|
|
||||||
initialize_directions = NORTH
|
initialize_directions = NORTH
|
||||||
initialize_directions_he = SOUTH
|
initialize_directions_he = SOUTH
|
||||||
if ( NORTH )
|
if (NORTH)
|
||||||
initialize_directions = SOUTH
|
initialize_directions = SOUTH
|
||||||
initialize_directions_he = NORTH
|
initialize_directions_he = NORTH
|
||||||
if ( EAST )
|
if (EAST)
|
||||||
initialize_directions = WEST
|
initialize_directions = WEST
|
||||||
initialize_directions_he = EAST
|
initialize_directions_he = EAST
|
||||||
if ( WEST )
|
if (WEST)
|
||||||
initialize_directions = EAST
|
initialize_directions = EAST
|
||||||
initialize_directions_he = WEST
|
initialize_directions_he = WEST
|
||||||
// BubbleWrap END
|
// BubbleWrap END
|
||||||
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/atmos_init()
|
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/atmos_init()
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,initialize_directions))
|
for(var/obj/machinery/atmospherics/target in get_step(src,initialize_directions))
|
||||||
@@ -143,5 +142,4 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
return
|
|
||||||
|
|||||||
@@ -18,10 +18,10 @@
|
|||||||
/obj/machinery/atmospherics/pipe/drain_power()
|
/obj/machinery/atmospherics/pipe/drain_power()
|
||||||
return -1
|
return -1
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/New()
|
/obj/machinery/atmospherics/pipe/Initialize()
|
||||||
if(istype(get_turf(src), /turf/simulated/wall) || istype(get_turf(src), /turf/simulated/shuttle/wall) || istype(get_turf(src), /turf/unsimulated/wall))
|
if(istype(get_turf(src), /turf/simulated/wall) || istype(get_turf(src), /turf/simulated/shuttle/wall) || istype(get_turf(src), /turf/unsimulated/wall))
|
||||||
level = 1
|
level = 1
|
||||||
..()
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/hides_under_flooring()
|
/obj/machinery/atmospherics/pipe/hides_under_flooring()
|
||||||
return level != 2
|
return level != 2
|
||||||
@@ -168,8 +168,7 @@
|
|||||||
level = 1
|
level = 1
|
||||||
gfi_layer_rotation = GFI_ROTATION_DEFDIR
|
gfi_layer_rotation = GFI_ROTATION_DEFDIR
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/New()
|
/obj/machinery/atmospherics/pipe/simple/Initialize()
|
||||||
..()
|
|
||||||
|
|
||||||
// Pipe colors and icon states are handled by an image cache - so color and icon should
|
// Pipe colors and icon states are handled by an image cache - so color and icon should
|
||||||
// be null. For mapping purposes color is defined in the object definitions.
|
// be null. For mapping purposes color is defined in the object definitions.
|
||||||
@@ -189,11 +188,12 @@
|
|||||||
initialize_directions = SOUTH|EAST
|
initialize_directions = SOUTH|EAST
|
||||||
if(SOUTHWEST)
|
if(SOUTHWEST)
|
||||||
initialize_directions = SOUTH|WEST
|
initialize_directions = SOUTH|WEST
|
||||||
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/hide(var/i)
|
/obj/machinery/atmospherics/pipe/simple/hide(var/i)
|
||||||
if(istype(loc, /turf/simulated))
|
if(istype(loc, /turf/simulated))
|
||||||
invisibility = i ? 101 : 0
|
invisibility = i ? 101 : 0
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/machinery_process()
|
/obj/machinery/atmospherics/pipe/simple/machinery_process()
|
||||||
if(!parent) //This should cut back on the overhead calling build_network thousands of times per cycle
|
if(!parent) //This should cut back on the overhead calling build_network thousands of times per cycle
|
||||||
@@ -305,7 +305,7 @@
|
|||||||
|
|
||||||
var/turf/T = loc
|
var/turf/T = loc
|
||||||
if(level == 1 && !T.is_plating()) hide(1)
|
if(level == 1 && !T.is_plating()) hide(1)
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/disconnect(obj/machinery/atmospherics/reference)
|
/obj/machinery/atmospherics/pipe/simple/disconnect(obj/machinery/atmospherics/reference)
|
||||||
if(reference == node1)
|
if(reference == node1)
|
||||||
@@ -435,8 +435,7 @@
|
|||||||
|
|
||||||
gfi_layer_rotation = GFI_ROTATION_OVERDIR
|
gfi_layer_rotation = GFI_ROTATION_OVERDIR
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/New()
|
/obj/machinery/atmospherics/pipe/manifold/Initialize()
|
||||||
..()
|
|
||||||
alpha = 255
|
alpha = 255
|
||||||
icon = null
|
icon = null
|
||||||
|
|
||||||
@@ -449,11 +448,12 @@
|
|||||||
initialize_directions = SOUTH|WEST|NORTH
|
initialize_directions = SOUTH|WEST|NORTH
|
||||||
if(WEST)
|
if(WEST)
|
||||||
initialize_directions = NORTH|EAST|SOUTH
|
initialize_directions = NORTH|EAST|SOUTH
|
||||||
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/hide(var/i)
|
/obj/machinery/atmospherics/pipe/manifold/hide(var/i)
|
||||||
if(istype(loc, /turf/simulated))
|
if(istype(loc, /turf/simulated))
|
||||||
invisibility = i ? 101 : 0
|
invisibility = i ? 101 : 0
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/pipeline_expansion()
|
/obj/machinery/atmospherics/pipe/manifold/pipeline_expansion()
|
||||||
return list(node1, node2, node3)
|
return list(node1, node2, node3)
|
||||||
@@ -548,7 +548,7 @@
|
|||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/update_underlays()
|
/obj/machinery/atmospherics/pipe/manifold/update_underlays()
|
||||||
..()
|
..()
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/atmos_init()
|
/obj/machinery/atmospherics/pipe/manifold/atmos_init()
|
||||||
var/connect_directions = (NORTH|SOUTH|EAST|WEST)&(~dir)
|
var/connect_directions = (NORTH|SOUTH|EAST|WEST)&(~dir)
|
||||||
@@ -594,7 +594,7 @@
|
|||||||
|
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
if(level == 1 && !T.is_plating()) hide(1)
|
if(level == 1 && !T.is_plating()) hide(1)
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/visible
|
/obj/machinery/atmospherics/pipe/manifold/visible
|
||||||
icon_state = "map"
|
icon_state = "map"
|
||||||
@@ -695,8 +695,8 @@
|
|||||||
level = 1
|
level = 1
|
||||||
layer = 2.4 //under wires with their 2.44
|
layer = 2.4 //under wires with their 2.44
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/New()
|
/obj/machinery/atmospherics/pipe/manifold4w/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
alpha = 255
|
alpha = 255
|
||||||
icon = null
|
icon = null
|
||||||
|
|
||||||
@@ -817,12 +817,12 @@
|
|||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/update_underlays()
|
/obj/machinery/atmospherics/pipe/manifold4w/update_underlays()
|
||||||
..()
|
..()
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/hide(var/i)
|
/obj/machinery/atmospherics/pipe/manifold4w/hide(var/i)
|
||||||
if(istype(loc, /turf/simulated))
|
if(istype(loc, /turf/simulated))
|
||||||
invisibility = i ? 101 : 0
|
invisibility = i ? 101 : 0
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/atmos_init()
|
/obj/machinery/atmospherics/pipe/manifold4w/atmos_init()
|
||||||
|
|
||||||
@@ -856,7 +856,7 @@
|
|||||||
|
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
if(level == 1 && !T.is_plating()) hide(1)
|
if(level == 1 && !T.is_plating()) hide(1)
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/visible
|
/obj/machinery/atmospherics/pipe/manifold4w/visible
|
||||||
icon_state = "map_4way"
|
icon_state = "map_4way"
|
||||||
@@ -954,14 +954,14 @@
|
|||||||
|
|
||||||
var/obj/machinery/atmospherics/node
|
var/obj/machinery/atmospherics/node
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/cap/New()
|
/obj/machinery/atmospherics/pipe/cap/Initialize()
|
||||||
..()
|
|
||||||
initialize_directions = dir
|
initialize_directions = dir
|
||||||
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/cap/hide(var/i)
|
/obj/machinery/atmospherics/pipe/cap/hide(var/i)
|
||||||
if(istype(loc, /turf/simulated))
|
if(istype(loc, /turf/simulated))
|
||||||
invisibility = i ? 101 : 0
|
invisibility = i ? 101 : 0
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/cap/pipeline_expansion()
|
/obj/machinery/atmospherics/pipe/cap/pipeline_expansion()
|
||||||
return list(node)
|
return list(node)
|
||||||
@@ -1013,7 +1013,7 @@
|
|||||||
|
|
||||||
var/turf/T = src.loc // hide if turf is not intact
|
var/turf/T = src.loc // hide if turf is not intact
|
||||||
if(level == 1 && !T.is_plating()) hide(1)
|
if(level == 1 && !T.is_plating()) hide(1)
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/cap/visible
|
/obj/machinery/atmospherics/pipe/cap/visible
|
||||||
level = 2
|
level = 2
|
||||||
@@ -1076,10 +1076,10 @@
|
|||||||
initialize_directions = SOUTH
|
initialize_directions = SOUTH
|
||||||
density = 1
|
density = 1
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/New()
|
/obj/machinery/atmospherics/pipe/tank/Initialize()
|
||||||
icon_state = "air"
|
icon_state = "air"
|
||||||
initialize_directions = dir
|
initialize_directions = dir
|
||||||
..()
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/machinery_process()
|
/obj/machinery/atmospherics/pipe/tank/machinery_process()
|
||||||
if(!parent)
|
if(!parent)
|
||||||
@@ -1142,7 +1142,7 @@
|
|||||||
name = "Pressure Tank (Air)"
|
name = "Pressure Tank (Air)"
|
||||||
icon_state = "air_map"
|
icon_state = "air_map"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/air/New()
|
/obj/machinery/atmospherics/pipe/tank/air/Initialize()
|
||||||
air_temporary = new
|
air_temporary = new
|
||||||
air_temporary.volume = volume
|
air_temporary.volume = volume
|
||||||
air_temporary.temperature = T20C
|
air_temporary.temperature = T20C
|
||||||
@@ -1151,77 +1151,77 @@
|
|||||||
"nitrogen",(start_pressure*N2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
"nitrogen",(start_pressure*N2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
||||||
|
|
||||||
|
|
||||||
..()
|
. = ..()
|
||||||
icon_state = "air"
|
icon_state = "air"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/oxygen
|
/obj/machinery/atmospherics/pipe/tank/oxygen
|
||||||
name = "Pressure Tank (Oxygen)"
|
name = "Pressure Tank (Oxygen)"
|
||||||
icon_state = "o2_map"
|
icon_state = "o2_map"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/oxygen/New()
|
/obj/machinery/atmospherics/pipe/tank/oxygen/Initialize()
|
||||||
air_temporary = new
|
air_temporary = new
|
||||||
air_temporary.volume = volume
|
air_temporary.volume = volume
|
||||||
air_temporary.temperature = T20C
|
air_temporary.temperature = T20C
|
||||||
|
|
||||||
air_temporary.adjust_gas("oxygen", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
air_temporary.adjust_gas("oxygen", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
||||||
|
|
||||||
..()
|
. = ..()
|
||||||
icon_state = "o2"
|
icon_state = "o2"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/nitrogen
|
/obj/machinery/atmospherics/pipe/tank/nitrogen
|
||||||
name = "Pressure Tank (Nitrogen)"
|
name = "Pressure Tank (Nitrogen)"
|
||||||
icon_state = "n2_map"
|
icon_state = "n2_map"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/nitrogen/New()
|
/obj/machinery/atmospherics/pipe/tank/nitrogen/Initialize()
|
||||||
air_temporary = new
|
air_temporary = new
|
||||||
air_temporary.volume = volume
|
air_temporary.volume = volume
|
||||||
air_temporary.temperature = T20C
|
air_temporary.temperature = T20C
|
||||||
|
|
||||||
air_temporary.adjust_gas("nitrogen", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
air_temporary.adjust_gas("nitrogen", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
||||||
|
|
||||||
..()
|
. = ..()
|
||||||
icon_state = "n2"
|
icon_state = "n2"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/carbon_dioxide
|
/obj/machinery/atmospherics/pipe/tank/carbon_dioxide
|
||||||
name = "Pressure Tank (Carbon Dioxide)"
|
name = "Pressure Tank (Carbon Dioxide)"
|
||||||
icon_state = "co2_map"
|
icon_state = "co2_map"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/carbon_dioxide/New()
|
/obj/machinery/atmospherics/pipe/tank/carbon_dioxide/Initialize()
|
||||||
air_temporary = new
|
air_temporary = new
|
||||||
air_temporary.volume = volume
|
air_temporary.volume = volume
|
||||||
air_temporary.temperature = T20C
|
air_temporary.temperature = T20C
|
||||||
|
|
||||||
air_temporary.adjust_gas("carbon_dioxide", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
air_temporary.adjust_gas("carbon_dioxide", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
||||||
|
|
||||||
..()
|
. = ..()
|
||||||
icon_state = "co2"
|
icon_state = "co2"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/phoron
|
/obj/machinery/atmospherics/pipe/tank/phoron
|
||||||
name = "Pressure Tank (Phoron)"
|
name = "Pressure Tank (Phoron)"
|
||||||
icon_state = "phoron_map"
|
icon_state = "phoron_map"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/phoron/New()
|
/obj/machinery/atmospherics/pipe/tank/phoron/Initialize()
|
||||||
air_temporary = new
|
air_temporary = new
|
||||||
air_temporary.volume = volume
|
air_temporary.volume = volume
|
||||||
air_temporary.temperature = T20C
|
air_temporary.temperature = T20C
|
||||||
|
|
||||||
air_temporary.adjust_gas("phoron", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
air_temporary.adjust_gas("phoron", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
||||||
|
|
||||||
..()
|
. = ..()
|
||||||
icon_state = "phoron"
|
icon_state = "phoron"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/nitrous_oxide
|
/obj/machinery/atmospherics/pipe/tank/nitrous_oxide
|
||||||
name = "Pressure Tank (Nitrous Oxide)"
|
name = "Pressure Tank (Nitrous Oxide)"
|
||||||
icon_state = "n2o_map"
|
icon_state = "n2o_map"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/tank/nitrous_oxide/New()
|
/obj/machinery/atmospherics/pipe/tank/nitrous_oxide/Initialize()
|
||||||
air_temporary = new
|
air_temporary = new
|
||||||
air_temporary.volume = volume
|
air_temporary.volume = volume
|
||||||
air_temporary.temperature = T0C
|
air_temporary.temperature = T0C
|
||||||
|
|
||||||
air_temporary.adjust_gas("sleeping_agent", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
air_temporary.adjust_gas("sleeping_agent", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
|
||||||
|
|
||||||
..()
|
. = ..()
|
||||||
icon_state = "n2o"
|
icon_state = "n2o"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/vent
|
/obj/machinery/atmospherics/pipe/vent
|
||||||
@@ -1240,9 +1240,9 @@
|
|||||||
|
|
||||||
var/build_killswitch = 1
|
var/build_killswitch = 1
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/vent/New()
|
/obj/machinery/atmospherics/pipe/vent/Initialize()
|
||||||
initialize_directions = dir
|
initialize_directions = dir
|
||||||
..()
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/vent/high_volume
|
/obj/machinery/atmospherics/pipe/vent/high_volume
|
||||||
name = "Larger vent"
|
name = "Larger vent"
|
||||||
@@ -1288,7 +1288,7 @@
|
|||||||
node1 = target
|
node1 = target
|
||||||
break
|
break
|
||||||
|
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/vent/disconnect(obj/machinery/atmospherics/reference)
|
/obj/machinery/atmospherics/pipe/vent/disconnect(obj/machinery/atmospherics/reference)
|
||||||
if(reference == node1)
|
if(reference == node1)
|
||||||
@@ -1340,7 +1340,7 @@
|
|||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/visible/universal/update_underlays()
|
/obj/machinery/atmospherics/pipe/simple/visible/universal/update_underlays()
|
||||||
..()
|
..()
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1379,7 +1379,7 @@
|
|||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/hidden/universal/update_underlays()
|
/obj/machinery/atmospherics/pipe/simple/hidden/universal/update_underlays()
|
||||||
..()
|
..()
|
||||||
update_icon()
|
queue_icon_update()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/proc/universal_underlays(var/obj/machinery/atmospherics/node, var/direction)
|
/obj/machinery/atmospherics/proc/universal_underlays(var/obj/machinery/atmospherics/node, var/direction)
|
||||||
var/turf/T = loc
|
var/turf/T = loc
|
||||||
|
|||||||
@@ -286,8 +286,8 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
|
|||||||
#define LAYER_ABOVE_TABLE 2.81
|
#define LAYER_ABOVE_TABLE 2.81
|
||||||
|
|
||||||
// Stoplag.
|
// Stoplag.
|
||||||
#define TICK_CHECK ( world.tick_usage > CURRENT_TICKLIMIT ? stoplag() : 0 )
|
#define TICK_CHECK (world.tick_usage > CURRENT_TICKLIMIT)
|
||||||
#define CHECK_TICK if (world.tick_usage > CURRENT_TICKLIMIT) stoplag()
|
#define CHECK_TICK if (TICK_CHECK) stoplag()
|
||||||
|
|
||||||
// Performance bullshit.
|
// Performance bullshit.
|
||||||
|
|
||||||
@@ -375,7 +375,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
|
|||||||
|
|
||||||
#define DEFAULT_SIGHT (SEE_SELF|SEE_BLACKNESS)
|
#define DEFAULT_SIGHT (SEE_SELF|SEE_BLACKNESS)
|
||||||
|
|
||||||
#define isStationLevel(Z) ((Z) in config.station_levels)
|
#define isStationLevel(Z) ((Z) in current_map.station_levels)
|
||||||
#define isNotStationLevel(Z) !isStationLevel(Z)
|
#define isNotStationLevel(Z) !isStationLevel(Z)
|
||||||
|
|
||||||
//Affects the chance that armour will block an attack. Should be between 0 and 1.
|
//Affects the chance that armour will block an attack. Should be between 0 and 1.
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#define SS_INIT_MAPLOAD 22 // DMM parsing and load. Unless you know what you're doing, make sure this remains first.
|
||||||
#define SS_INIT_JOBS 21
|
#define SS_INIT_JOBS 21
|
||||||
#define SS_INIT_MISC_FIRST 20
|
#define SS_INIT_MISC_FIRST 20
|
||||||
#define SS_INIT_SEEDS 19 // Plant controller setup.
|
#define SS_INIT_SEEDS 19 // Plant controller setup.
|
||||||
|
|||||||
@@ -12,17 +12,17 @@
|
|||||||
/proc/is_on_same_plane_or_station(var/z1, var/z2)
|
/proc/is_on_same_plane_or_station(var/z1, var/z2)
|
||||||
if(z1 == z2)
|
if(z1 == z2)
|
||||||
return 1
|
return 1
|
||||||
if((z1 in config.station_levels) && (z2 in config.station_levels))
|
if((z1 in current_map.station_levels) && (z2 in current_map.station_levels))
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/proc/max_default_z_level()
|
/proc/max_default_z_level()
|
||||||
var/max_z = 0
|
var/max_z = 0
|
||||||
for(var/z in config.station_levels)
|
for(var/z in current_map.station_levels)
|
||||||
max_z = max(z, max_z)
|
max_z = max(z, max_z)
|
||||||
for(var/z in config.admin_levels)
|
for(var/z in current_map.admin_levels)
|
||||||
max_z = max(z, max_z)
|
max_z = max(z, max_z)
|
||||||
for(var/z in config.player_levels)
|
for(var/z in current_map.player_levels)
|
||||||
max_z = max(z, max_z)
|
max_z = max(z, max_z)
|
||||||
return max_z
|
return max_z
|
||||||
|
|
||||||
@@ -61,10 +61,10 @@
|
|||||||
return heard
|
return heard
|
||||||
|
|
||||||
/proc/isPlayerLevel(var/level)
|
/proc/isPlayerLevel(var/level)
|
||||||
return level in config.player_levels
|
return level in current_map.player_levels
|
||||||
|
|
||||||
/proc/isAdminLevel(var/level)
|
/proc/isAdminLevel(var/level)
|
||||||
return level in config.admin_levels
|
return level in current_map.admin_levels
|
||||||
|
|
||||||
/proc/isNotAdminLevel(var/level)
|
/proc/isNotAdminLevel(var/level)
|
||||||
return !isAdminLevel(level)
|
return !isAdminLevel(level)
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ var/global/list/the_station_areas = list()
|
|||||||
var/global/list/implants = list()
|
var/global/list/implants = list()
|
||||||
|
|
||||||
var/global/list/turfs = list() //list of all turfs
|
var/global/list/turfs = list() //list of all turfs
|
||||||
|
var/global/list/areas_by_type = list()
|
||||||
|
var/global/list/all_areas = list()
|
||||||
|
|
||||||
//Languages/species/whitelist.
|
//Languages/species/whitelist.
|
||||||
var/global/list/all_species = list()
|
var/global/list/all_species = list()
|
||||||
|
|||||||
@@ -15,22 +15,6 @@ var/church_name = null
|
|||||||
|
|
||||||
return name
|
return name
|
||||||
|
|
||||||
var/command_name = null
|
|
||||||
/proc/command_name()
|
|
||||||
if (command_name)
|
|
||||||
return command_name
|
|
||||||
|
|
||||||
var/name = "[boss_name]"
|
|
||||||
|
|
||||||
command_name = name
|
|
||||||
return name
|
|
||||||
|
|
||||||
/proc/change_command_name(var/name)
|
|
||||||
|
|
||||||
command_name = name
|
|
||||||
|
|
||||||
return name
|
|
||||||
|
|
||||||
var/religion_name = null
|
var/religion_name = null
|
||||||
/proc/religion_name()
|
/proc/religion_name()
|
||||||
if (religion_name)
|
if (religion_name)
|
||||||
@@ -43,74 +27,8 @@ var/religion_name = null
|
|||||||
|
|
||||||
return capitalize(name)
|
return capitalize(name)
|
||||||
|
|
||||||
/proc/system_name()
|
|
||||||
return "Tau Ceti"
|
|
||||||
|
|
||||||
/proc/commstation_name()
|
|
||||||
if (dock_name)
|
|
||||||
return dock_name
|
|
||||||
|
|
||||||
/proc/station_name()
|
|
||||||
if (station_name)
|
|
||||||
return station_name
|
|
||||||
|
|
||||||
var/random = rand(1,5)
|
|
||||||
var/name = ""
|
|
||||||
|
|
||||||
//Rare: Pre-Prefix
|
|
||||||
if (prob(10))
|
|
||||||
name = pick("Imperium", "Heretical", "Cuban", "Psychic", "Elegant", "Common", "Uncommon", "Rare", "Unique", "Houseruled", "Religious", "Atheist", "Traditional", "Houseruled", "Mad", "Super", "Ultra", "Secret", "Top Secret", "Deep", "Death", "Zybourne", "Central", "Main", "Government", "Uoi", "Fat", "Automated", "Experimental", "Augmented")
|
|
||||||
station_name = name + " "
|
|
||||||
|
|
||||||
// Prefix
|
|
||||||
switch(Holiday)
|
|
||||||
//get normal name
|
|
||||||
if(null,"",0)
|
|
||||||
name = pick("", "Stanford", "Dorf", "Alium", "Prefix", "Clowning", "Aegis", "Ishimura", "Scaredy", "Death-World", "Mime", "Honk", "Rogue", "MacRagge", "Ultrameens", "Safety", "Paranoia", "Explosive", "Neckbear", "Donk", "Muppet", "North", "West", "East", "South", "Slant-ways", "Widdershins", "Rimward", "Expensive", "Procreatory", "Imperial", "Unidentified", "Immoral", "Carp", "Ork", "Pete", "Control", "Nettle", "Aspie", "Class", "Crab", "Fist","Corrogated","Skeleton","Race", "Fatguy", "Gentleman", "Capitalist", "Communist", "Bear", "Beard", "Derp", "Space", "Spess", "Star", "Moon", "System", "Mining", "Neckbeard", "Research", "Supply", "Military", "Orbital", "Battle", "Science", "Asteroid", "Home", "Production", "Transport", "Delivery", "Extraplanetary", "Orbital", "Correctional", "Robot", "Hats", "Pizza")
|
|
||||||
if(name)
|
|
||||||
station_name += name + " "
|
|
||||||
|
|
||||||
//For special days like christmas, easter, new-years etc ~Carn
|
|
||||||
if("Friday the 13th")
|
|
||||||
name = pick("Mike","Friday","Evil","Myers","Murder","Deathly","Stabby")
|
|
||||||
station_name += name + " "
|
|
||||||
random = 13
|
|
||||||
else
|
|
||||||
//get the first word of the Holiday and use that
|
|
||||||
var/i = findtext(Holiday," ",1,0)
|
|
||||||
name = copytext(Holiday,1,i)
|
|
||||||
station_name += name + " "
|
|
||||||
|
|
||||||
// Suffix
|
|
||||||
name = pick("Station", "Fortress", "Frontier", "Suffix", "Death-trap", "Space-hulk", "Lab", "Hazard","Spess Junk", "Fishery", "No-Moon", "Tomb", "Crypt", "Hut", "Monkey", "Bomb", "Trade Post", "Fortress", "Village", "Town", "City", "Edition", "Hive", "Complex", "Base", "Facility", "Depot", "Outpost", "Installation", "Drydock", "Observatory", "Array", "Relay", "Monitor", "Platform", "Construct", "Hangar", "Prison", "Center", "Port", "Waystation", "Factory", "Waypoint", "Stopover", "Hub", "HQ", "Office", "Object", "Fortification", "Colony", "Planet-Cracker", "Roost", "Fat Camp")
|
|
||||||
station_name += name + " "
|
|
||||||
|
|
||||||
// ID Number
|
|
||||||
switch(random)
|
|
||||||
if(1)
|
|
||||||
station_name += "[rand(1, 99)]"
|
|
||||||
if(2)
|
|
||||||
station_name += pick("Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega")
|
|
||||||
if(3)
|
|
||||||
station_name += pick("II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX")
|
|
||||||
if(4)
|
|
||||||
station_name += pick("Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", "Yankee", "Zulu")
|
|
||||||
if(5)
|
|
||||||
station_name += pick("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
|
|
||||||
if(13)
|
|
||||||
station_name += pick("13","XIII","Thirteen")
|
|
||||||
|
|
||||||
|
|
||||||
if (config && config.server_name)
|
|
||||||
world.name = "[config.server_name]: [name]"
|
|
||||||
else
|
|
||||||
world.name = station_name
|
|
||||||
|
|
||||||
return station_name
|
|
||||||
|
|
||||||
/proc/world_name(var/name)
|
/proc/world_name(var/name)
|
||||||
|
current_map.station_name = name
|
||||||
station_name = name
|
|
||||||
|
|
||||||
if (config && config.server_name)
|
if (config && config.server_name)
|
||||||
world.name = "[config.server_name]: [name]"
|
world.name = "[config.server_name]: [name]"
|
||||||
|
|||||||
@@ -520,3 +520,12 @@ proc/TextPreview(var/string,var/len=40)
|
|||||||
. = base
|
. = base
|
||||||
if(rest)
|
if(rest)
|
||||||
. += .(rest)
|
. += .(rest)
|
||||||
|
|
||||||
|
/proc/replacemany(text, list/replacements)
|
||||||
|
if (!LAZYLEN(replacements))
|
||||||
|
return text
|
||||||
|
|
||||||
|
. = text
|
||||||
|
|
||||||
|
for (var/replacement in replacements)
|
||||||
|
. = replacetext(., replacement, replacements[replacement])
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ var/list/gamemode_cache = list()
|
|||||||
var/server_name = null // server name (for world name / status)
|
var/server_name = null // server name (for world name / status)
|
||||||
var/server_suffix = 0 // generate numeric suffix based on server port
|
var/server_suffix = 0 // generate numeric suffix based on server port
|
||||||
|
|
||||||
var/list/lobby_screens = list("title") // Which lobby screens are available
|
|
||||||
|
|
||||||
var/log_ooc = 0 // log OOC channel
|
var/log_ooc = 0 // log OOC channel
|
||||||
var/log_access = 0 // log login/logout
|
var/log_access = 0 // log login/logout
|
||||||
var/log_say = 0 // log client say
|
var/log_say = 0 // log client say
|
||||||
@@ -75,6 +73,7 @@ var/list/gamemode_cache = list()
|
|||||||
var/automute_on = 0 //enables automuting/spam prevention
|
var/automute_on = 0 //enables automuting/spam prevention
|
||||||
var/macro_trigger = 5 // The grace period between messages before it's counted as abusing a macro.
|
var/macro_trigger = 5 // The grace period between messages before it's counted as abusing a macro.
|
||||||
var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access.
|
var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access.
|
||||||
|
var/override_map
|
||||||
|
|
||||||
var/cult_ghostwriter = 1 //Allows ghosts to write in blood in cult rounds...
|
var/cult_ghostwriter = 1 //Allows ghosts to write in blood in cult rounds...
|
||||||
var/cult_ghostwriter_req_cultists = 10 //...so long as this many cultists are active.
|
var/cult_ghostwriter_req_cultists = 10 //...so long as this many cultists are active.
|
||||||
@@ -184,12 +183,6 @@ var/list/gamemode_cache = list()
|
|||||||
var/python_path = "python" //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix
|
var/python_path = "python" //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix
|
||||||
var/use_overmap = 0
|
var/use_overmap = 0
|
||||||
|
|
||||||
var/list/station_levels = list(3, 4, 5, 6, 7) // Defines which Z-levels the station exists on.
|
|
||||||
var/list/admin_levels= list(1) // Defines which Z-levels which are for admin functionality, for example including such areas as Central Command and the Syndicate Shuttle
|
|
||||||
var/list/contact_levels = list(3, 4, 5, 6) // Defines which Z-levels which, for example, a Code Red announcement may affect
|
|
||||||
var/list/player_levels = list(2, 3, 4, 5, 6, 7, 8) // Defines all Z-levels a character can typically reach
|
|
||||||
var/list/sealed_levels = list() // Defines levels that do not allow random transit at the edges.
|
|
||||||
|
|
||||||
// Event settings
|
// Event settings
|
||||||
var/expected_round_length = 3 * 60 * 60 * 10 // 3 hours
|
var/expected_round_length = 3 * 60 * 60 * 10 // 3 hours
|
||||||
// If the first delay has a custom start time
|
// If the first delay has a custom start time
|
||||||
@@ -696,21 +689,6 @@ var/list/gamemode_cache = list()
|
|||||||
if("use_overmap")
|
if("use_overmap")
|
||||||
config.use_overmap = 1
|
config.use_overmap = 1
|
||||||
|
|
||||||
if("station_levels")
|
|
||||||
config.station_levels = text2numlist(value, ";")
|
|
||||||
|
|
||||||
if("admin_levels")
|
|
||||||
config.admin_levels = text2numlist(value, ";")
|
|
||||||
|
|
||||||
if("contact_levels")
|
|
||||||
config.contact_levels = text2numlist(value, ";")
|
|
||||||
|
|
||||||
if("player_levels")
|
|
||||||
config.player_levels = text2numlist(value, ";")
|
|
||||||
|
|
||||||
if("sealed_levels")
|
|
||||||
config.sealed_levels = text2numlist(value, ";")
|
|
||||||
|
|
||||||
if("expected_round_length")
|
if("expected_round_length")
|
||||||
config.expected_round_length = MinutesToTicks(text2num(value))
|
config.expected_round_length = MinutesToTicks(text2num(value))
|
||||||
|
|
||||||
@@ -798,9 +776,6 @@ var/list/gamemode_cache = list()
|
|||||||
if(values.len > 0)
|
if(values.len > 0)
|
||||||
language_prefixes = values
|
language_prefixes = values
|
||||||
|
|
||||||
if ("lobby_screens")
|
|
||||||
config.lobby_screens = text2list(value, ";")
|
|
||||||
|
|
||||||
if("delist_when_no_admins")
|
if("delist_when_no_admins")
|
||||||
config.delist_when_no_admins = 1
|
config.delist_when_no_admins = 1
|
||||||
|
|
||||||
@@ -857,6 +832,9 @@ var/list/gamemode_cache = list()
|
|||||||
if("merchant_chance")
|
if("merchant_chance")
|
||||||
config.merchant_chance = text2num(value)
|
config.merchant_chance = text2num(value)
|
||||||
|
|
||||||
|
if("force_map")
|
||||||
|
override_map = value
|
||||||
|
|
||||||
if("show_game_type_odd")
|
if("show_game_type_odd")
|
||||||
config.show_game_type_odd = 1
|
config.show_game_type_odd = 1
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -24,9 +24,9 @@
|
|||||||
shuttle.launch(src)
|
shuttle.launch(src)
|
||||||
for (var/thing in current_mobs)
|
for (var/thing in current_mobs)
|
||||||
var/mob/living/carbon/human/M = locate(thing)
|
var/mob/living/carbon/human/M = locate(thing)
|
||||||
if (istype(M) && M.odin_despawn_timer)
|
if (istype(M) && M.centcomm_despawn_timer)
|
||||||
deltimer(M.odin_despawn_timer)
|
deltimer(M.centcomm_despawn_timer)
|
||||||
M.odin_despawn_timer = null
|
M.centcomm_despawn_timer = null
|
||||||
|
|
||||||
current_mobs.Cut()
|
current_mobs.Cut()
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -54,9 +54,13 @@ var/datum/controller/subsystem/emergency_shuttle/emergency_shuttle
|
|||||||
set_launch_countdown(SHUTTLE_LEAVETIME) //get ready to return
|
set_launch_countdown(SHUTTLE_LEAVETIME) //get ready to return
|
||||||
|
|
||||||
if (evac)
|
if (evac)
|
||||||
priority_announcement.Announce("The Emergency Shuttle has docked with the station. You have approximately [round(estimate_launch_time()/60,1)] minutes to board the Emergency Shuttle.", new_sound = 'sound/AI/emergencyshuttledock.ogg')
|
priority_announcement.Announce(replacetext(current_map.shuttle_docked_message, "%ETD%", round(estimate_launch_time()/60,1)), new_sound = 'sound/AI/emergencyshuttledock.ogg')
|
||||||
else
|
else
|
||||||
priority_announcement.Announce("The scheduled Crew Transfer Shuttle to [dock_name] has docked with the station. It will depart in approximately [round(emergency_shuttle.estimate_launch_time()/60,1)] minutes.", new_sound = 'sound/AI/shuttledock.ogg')
|
var/list/fields = list(
|
||||||
|
"%ETA%" = round(emergency_shuttle.estimate_launch_time()/60,1),
|
||||||
|
"%dock%" = current_map.dock_name
|
||||||
|
)
|
||||||
|
priority_announcement.Announce(replacemany(current_map.shuttle_docked_message, fields), new_sound = 'sound/AI/shuttledock.ogg')
|
||||||
|
|
||||||
//arm the escape pods
|
//arm the escape pods
|
||||||
if (evac)
|
if (evac)
|
||||||
@@ -85,7 +89,7 @@ var/datum/controller/subsystem/emergency_shuttle/emergency_shuttle
|
|||||||
shuttle.move_time = SHUTTLE_TRANSIT_DURATION
|
shuttle.move_time = SHUTTLE_TRANSIT_DURATION
|
||||||
|
|
||||||
evac = 1
|
evac = 1
|
||||||
priority_announcement.Announce("An emergency evacuation shuttle has been called. It will arrive in approximately [round(estimate_arrival_time()/60)] minutes.", new_sound = 'sound/AI/emergencyshuttlecalled.ogg')
|
priority_announcement.Announce(replacetext(current_map.emergency_shuttle_called_message, "%ETA%", round(estimate_arrival_time()/60)), new_sound = 'sound/AI/emergencyshuttlecalled.ogg')
|
||||||
for(var/area/A in all_areas)
|
for(var/area/A in all_areas)
|
||||||
if(istype(A, /area/hallway))
|
if(istype(A, /area/hallway))
|
||||||
A.readyalert()
|
A.readyalert()
|
||||||
@@ -102,7 +106,11 @@ var/datum/controller/subsystem/emergency_shuttle/emergency_shuttle
|
|||||||
//reset the shuttle transit time if we need to
|
//reset the shuttle transit time if we need to
|
||||||
shuttle.move_time = SHUTTLE_TRANSIT_DURATION
|
shuttle.move_time = SHUTTLE_TRANSIT_DURATION
|
||||||
|
|
||||||
priority_announcement.Announce("A crew transfer to [dock_name] has been scheduled. The shuttle has been called. It will arrive in approximately [round(estimate_arrival_time()/60)] minutes.", new_sound = 'sound/AI/shuttlecalled.ogg')
|
var/list/replacements = list(
|
||||||
|
"%ETA%" = round(estimate_arrival_time()/60),
|
||||||
|
"%dock%" = current_map.dock_name
|
||||||
|
)
|
||||||
|
priority_announcement.Announce(replacemany(current_map.shuttle_called_message, replacements), new_sound = 'sound/AI/shuttlecalled.ogg')
|
||||||
|
|
||||||
//recalls the shuttle
|
//recalls the shuttle
|
||||||
/datum/controller/subsystem/emergency_shuttle/proc/recall()
|
/datum/controller/subsystem/emergency_shuttle/proc/recall()
|
||||||
@@ -112,14 +120,14 @@ var/datum/controller/subsystem/emergency_shuttle/emergency_shuttle
|
|||||||
shuttle.cancel_launch(src)
|
shuttle.cancel_launch(src)
|
||||||
|
|
||||||
if (evac)
|
if (evac)
|
||||||
priority_announcement.Announce("The emergency shuttle has been recalled.", new_sound = 'sound/AI/emergencyshuttlerecalled.ogg')
|
priority_announcement.Announce(current_map.emergency_shuttle_recall_message, new_sound = 'sound/AI/emergencyshuttlerecalled.ogg')
|
||||||
|
|
||||||
for(var/area/A in all_areas)
|
for(var/area/A in all_areas)
|
||||||
if(istype(A, /area/hallway))
|
if(istype(A, /area/hallway))
|
||||||
A.readyreset()
|
A.readyreset()
|
||||||
evac = 0
|
evac = 0
|
||||||
else
|
else
|
||||||
priority_announcement.Announce("The scheduled crew transfer has been cancelled.", new_sound = 'sound/AI/shuttlerecalled.ogg')
|
priority_announcement.Announce(current_map.shuttle_recall_message, new_sound = 'sound/AI/shuttlerecalled.ogg')
|
||||||
|
|
||||||
/datum/controller/subsystem/emergency_shuttle/proc/can_call()
|
/datum/controller/subsystem/emergency_shuttle/proc/can_call()
|
||||||
if (!universe.OnShuttleCall(null))
|
if (!universe.OnShuttleCall(null))
|
||||||
|
|||||||
@@ -736,7 +736,7 @@
|
|||||||
SearchVar(dreams)
|
SearchVar(dreams)
|
||||||
SearchVar(non_fakeattack_weapons)
|
SearchVar(non_fakeattack_weapons)
|
||||||
SearchVar(ghost_traps)
|
SearchVar(ghost_traps)
|
||||||
SearchVar(holodeck_programs)
|
SearchVar(current_map.holodeck_programs)
|
||||||
SearchVar(fruit_icon_cache)
|
SearchVar(fruit_icon_cache)
|
||||||
SearchVar(plant_seed_sprites)
|
SearchVar(plant_seed_sprites)
|
||||||
SearchVar(wax_recipes)
|
SearchVar(wax_recipes)
|
||||||
|
|||||||
@@ -5,19 +5,6 @@
|
|||||||
|
|
||||||
/datum/controller/subsystem/asteroid/Initialize(timeofday)
|
/datum/controller/subsystem/asteroid/Initialize(timeofday)
|
||||||
if(config.generate_asteroid)
|
if(config.generate_asteroid)
|
||||||
// These values determine the specific area that the map is applied to.
|
current_map.generate_asteroid()
|
||||||
|
|
||||||
// Create the chasms.
|
|
||||||
new /datum/random_map/automata/cave_system/chasms(null,0,0,3,255,255)
|
|
||||||
new /datum/random_map/automata/cave_system(null,0,0,3,255,255)
|
|
||||||
new /datum/random_map/automata/cave_system/chasms(null,0,0,4,255,255)
|
|
||||||
new /datum/random_map/automata/cave_system(null,0,0,4,255,255)
|
|
||||||
new /datum/random_map/automata/cave_system/chasms(null,0,0,5,255,255)
|
|
||||||
new /datum/random_map/automata/cave_system/high_yield(null,0,0,5,255,255)
|
|
||||||
new /datum/random_map/automata/cave_system/chasms/surface(null,0,0,6,255,255)
|
|
||||||
|
|
||||||
// Create the deep mining ore distribution map.
|
|
||||||
new /datum/random_map/noise/ore(null, 0, 0, 5, 64, 64)
|
|
||||||
new /datum/random_map/noise/ore(null, 0, 0, 4, 64, 64)
|
|
||||||
new /datum/random_map/noise/ore(null, 0, 0, 3, 64, 64)
|
|
||||||
..()
|
..()
|
||||||
|
|||||||
176
code/controllers/subsystems/initialization/atlas.dm
Normal file
176
code/controllers/subsystems/initialization/atlas.dm
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
// This file controls round-start runtime maploading.
|
||||||
|
|
||||||
|
var/datum/map/current_map // Whatever map is currently loaded. Null until SSatlas Initialize() starts.
|
||||||
|
|
||||||
|
var/datum/controller/subsystem/atlas/SSatlas
|
||||||
|
|
||||||
|
/datum/controller/subsystem/atlas
|
||||||
|
name = "Atlas"
|
||||||
|
flags = SS_NO_FIRE
|
||||||
|
init_order = SS_INIT_MAPLOAD
|
||||||
|
|
||||||
|
var/list/known_maps = list()
|
||||||
|
var/dmm_suite/maploader
|
||||||
|
var/list/height_markers = list()
|
||||||
|
|
||||||
|
var/list/mapload_callbacks = list()
|
||||||
|
var/map_override // If set, SSatlas will forcibly load this map. If the map does not exist, mapload will fail and SSatlas will panic.
|
||||||
|
var/list/spawn_locations = list()
|
||||||
|
|
||||||
|
/datum/controller/subsystem/atlas/New()
|
||||||
|
NEW_SS_GLOBAL(SSatlas)
|
||||||
|
|
||||||
|
/datum/controller/subsystem/atlas/Initialize(timeofday)
|
||||||
|
maploader = new
|
||||||
|
|
||||||
|
var/datum/map/M
|
||||||
|
for (var/type in subtypesof(/datum/map))
|
||||||
|
M = new type
|
||||||
|
if (!M.path)
|
||||||
|
log_debug("SSatlas: Map [M.name] ([M.type]) has no path set, discarding.")
|
||||||
|
qdel(M)
|
||||||
|
continue
|
||||||
|
|
||||||
|
known_maps[M.path] = M
|
||||||
|
|
||||||
|
#ifdef DEFAULT_MAP
|
||||||
|
map_override = DEFAULT_MAP
|
||||||
|
log_ss("atlas", "Using compile-selected map.")
|
||||||
|
#endif
|
||||||
|
if (!map_override)
|
||||||
|
map_override = get_selected_map()
|
||||||
|
|
||||||
|
admin_notice("<span class='danger'>Loading map [map_override].</span>", R_DEBUG)
|
||||||
|
log_ss("atlas", "Using map '[map_override]'.")
|
||||||
|
|
||||||
|
current_map = known_maps[map_override]
|
||||||
|
if (!current_map)
|
||||||
|
world.map_panic("Selected map does not exist!")
|
||||||
|
|
||||||
|
load_map_meta()
|
||||||
|
setup_spawnpoints()
|
||||||
|
|
||||||
|
world.update_status()
|
||||||
|
|
||||||
|
// Begin loading the maps.
|
||||||
|
var/maps_loaded = load_map_directory("maps/[current_map.path]/", TRUE)
|
||||||
|
|
||||||
|
log_ss("atlas", "Loaded [maps_loaded] maps.")
|
||||||
|
admin_notice("<span class='danger'>Loaded [maps_loaded] levels.</span>")
|
||||||
|
|
||||||
|
if (!maps_loaded)
|
||||||
|
world.map_panic("No maps loaded!")
|
||||||
|
|
||||||
|
setup_multiz()
|
||||||
|
|
||||||
|
QDEL_NULL(maploader)
|
||||||
|
|
||||||
|
..()
|
||||||
|
|
||||||
|
/datum/controller/subsystem/atlas/proc/load_map_directory(directory, overwrite_default_z = FALSE)
|
||||||
|
. = 0
|
||||||
|
if (!directory)
|
||||||
|
CRASH("No directory supplied.")
|
||||||
|
|
||||||
|
var/static/regex/mapregex = new(".+\\.dmm$")
|
||||||
|
var/list/files = flist(directory)
|
||||||
|
sortTim(files, /proc/cmp_text_asc)
|
||||||
|
var/mfile
|
||||||
|
var/first_dmm = TRUE
|
||||||
|
for (var/i in 1 to files.len)
|
||||||
|
mfile = files[i]
|
||||||
|
if (!mapregex.Find(mfile))
|
||||||
|
continue
|
||||||
|
|
||||||
|
log_ss("atlas", "Loading '[mfile]'.")
|
||||||
|
|
||||||
|
mfile = "[directory][mfile]"
|
||||||
|
|
||||||
|
var/target_z = 0
|
||||||
|
if (overwrite_default_z && first_dmm)
|
||||||
|
target_z = 1
|
||||||
|
first_dmm = FALSE
|
||||||
|
log_ss("atlas", "Overwriting Z[target_z].")
|
||||||
|
|
||||||
|
if (!maploader.load_map(file(mfile), 0, 0, target_z, no_changeturf = TRUE))
|
||||||
|
log_ss("atlas", "Failed to load '[mfile]'!")
|
||||||
|
|
||||||
|
.++
|
||||||
|
CHECK_TICK
|
||||||
|
|
||||||
|
/datum/controller/subsystem/atlas/proc/setup_multiz()
|
||||||
|
for (var/thing in height_markers)
|
||||||
|
var/obj/effect/landmark/map_data/marker = thing
|
||||||
|
marker.setup()
|
||||||
|
|
||||||
|
/datum/controller/subsystem/atlas/proc/get_selected_map()
|
||||||
|
if (config.override_map)
|
||||||
|
if (known_maps[config.override_map])
|
||||||
|
. = config.override_map
|
||||||
|
log_ss("atlas", "Using configured map.")
|
||||||
|
else
|
||||||
|
log_ss("atlas", "-- WARNING: CONFIGURED MAP DOES NOT EXIST, IGNORING! --")
|
||||||
|
. = "aurora"
|
||||||
|
else
|
||||||
|
. = "aurora"
|
||||||
|
|
||||||
|
/datum/controller/subsystem/atlas/proc/load_map_meta()
|
||||||
|
// This needs to be done after current_map is set, but before mapload.
|
||||||
|
lobby_image = new /obj/effect/lobby_image
|
||||||
|
|
||||||
|
admin_departments = list(
|
||||||
|
"[current_map.boss_name]",
|
||||||
|
"[current_map.system_name] Government",
|
||||||
|
"Supply"
|
||||||
|
)
|
||||||
|
|
||||||
|
priority_announcement = new(do_log = 0)
|
||||||
|
command_announcement = new(do_log = 0, do_newscast = 1)
|
||||||
|
|
||||||
|
for (var/thing in mapload_callbacks)
|
||||||
|
var/datum/callback/cb = thing
|
||||||
|
cb.InvokeAsync()
|
||||||
|
CHECK_TICK
|
||||||
|
|
||||||
|
mapload_callbacks.Cut()
|
||||||
|
mapload_callbacks = null
|
||||||
|
|
||||||
|
/datum/controller/subsystem/atlas/proc/OnMapload(datum/callback/callback)
|
||||||
|
if (!istype(callback))
|
||||||
|
CRASH("Invalid callback.")
|
||||||
|
|
||||||
|
mapload_callbacks += callback
|
||||||
|
|
||||||
|
/datum/controller/subsystem/atlas/proc/setup_spawnpoints()
|
||||||
|
for (var/type in current_map.spawn_types)
|
||||||
|
var/datum/spawnpoint/S = new type
|
||||||
|
spawn_locations[S.display_name] = S
|
||||||
|
|
||||||
|
// Called when there's a fatal, unrecoverable error in mapload. This reboots the server.
|
||||||
|
/world/proc/map_panic(reason)
|
||||||
|
to_chat(world, "<span class='danger'>Fatal error during map setup, unable to continue! Server will reboot in 60 seconds.</span>")
|
||||||
|
log_ss("atlas", "-- FATAL ERROR DURING MAP SETUP: [uppertext(reason)] --")
|
||||||
|
sleep(1 MINUTE)
|
||||||
|
world.Reboot()
|
||||||
|
|
||||||
|
/proc/station_name()
|
||||||
|
ASSERT(current_map)
|
||||||
|
. = current_map.station_name
|
||||||
|
|
||||||
|
var/sname
|
||||||
|
if (config && config.server_name)
|
||||||
|
sname = "[config.server_name]: [.]"
|
||||||
|
else
|
||||||
|
sname = .
|
||||||
|
|
||||||
|
if (world.name != sname)
|
||||||
|
world.name = sname
|
||||||
|
world.log << "Set world.name to [sname]."
|
||||||
|
|
||||||
|
/proc/system_name()
|
||||||
|
ASSERT(current_map)
|
||||||
|
return current_map.system_name
|
||||||
|
|
||||||
|
/proc/commstation_name()
|
||||||
|
ASSERT(current_map)
|
||||||
|
return current_map.dock_name
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
log_debug("SSminimap: [holo_minimaps.len] maps.")
|
log_debug("SSminimap: [holo_minimaps.len] maps.")
|
||||||
|
|
||||||
for (var/z in config.station_levels)
|
for (var/z in current_map.station_levels)
|
||||||
generateStationMinimap(z)
|
generateStationMinimap(z)
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
flags = SS_NO_FIRE | SS_NO_DISPLAY
|
flags = SS_NO_FIRE | SS_NO_DISPLAY
|
||||||
|
|
||||||
/datum/controller/subsystem/misc_early/Initialize(timeofday)
|
/datum/controller/subsystem/misc_early/Initialize(timeofday)
|
||||||
|
uplink = new
|
||||||
// Create the data core, whatever that is.
|
// Create the data core, whatever that is.
|
||||||
data_core = new /datum/datacore()
|
data_core = new /datum/datacore()
|
||||||
|
|
||||||
@@ -36,14 +37,9 @@
|
|||||||
// Set up antags.
|
// Set up antags.
|
||||||
populate_antag_type_list()
|
populate_antag_type_list()
|
||||||
|
|
||||||
// Populate spawnpoints for char creation.
|
|
||||||
populate_spawn_points()
|
|
||||||
|
|
||||||
// Get BOREALIS to warn staff about a lazy admin forgetting visibility to 0
|
// Get BOREALIS to warn staff about a lazy admin forgetting visibility to 0
|
||||||
// before anyone has a chance to change it!
|
// before anyone has a chance to change it!
|
||||||
if (discord_bot)
|
if (discord_bot)
|
||||||
discord_bot.alert_server_visibility()
|
discord_bot.alert_server_visibility()
|
||||||
|
|
||||||
lobby_image = new/obj/effect/lobby_image()
|
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
#define BE_ASSISTANT 1
|
#define BE_ASSISTANT 1
|
||||||
#define RETURN_TO_LOBBY 2
|
#define RETURN_TO_LOBBY 2
|
||||||
|
|
||||||
|
#define Debug(text) if (Debug2) {job_debug += text}
|
||||||
|
|
||||||
/datum/controller/subsystem/jobs
|
/datum/controller/subsystem/jobs
|
||||||
// Subsystem stuff.
|
// Subsystem stuff.
|
||||||
name = "Jobs"
|
name = "Jobs"
|
||||||
@@ -32,28 +34,21 @@
|
|||||||
|
|
||||||
/datum/controller/subsystem/jobs/proc/SetupOccupations(faction = "Station")
|
/datum/controller/subsystem/jobs/proc/SetupOccupations(faction = "Station")
|
||||||
occupations = list()
|
occupations = list()
|
||||||
var/list/all_jobs = typesof(/datum/job)
|
var/list/all_jobs = current_map.allowed_jobs
|
||||||
if(!all_jobs.len)
|
if(!all_jobs.len)
|
||||||
world << "<span class='warning'>Error setting up jobs, no job datums found!</span>"
|
world << "<span class='warning'>Error setting up jobs, no job datums found!</span>"
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
for(var/J in all_jobs)
|
for(var/J in all_jobs)
|
||||||
var/datum/job/job = new J()
|
var/datum/job/job = new J()
|
||||||
if(!job) continue
|
if(!job || job.faction != faction)
|
||||||
if(job.faction != faction) continue
|
continue
|
||||||
occupations += job
|
occupations += job
|
||||||
if (config && config.use_age_restriction_for_jobs)
|
if (config && config.use_age_restriction_for_jobs)
|
||||||
job.fetch_age_restriction()
|
job.fetch_age_restriction()
|
||||||
|
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/datum/controller/subsystem/jobs/proc/Debug(text)
|
|
||||||
if (!Debug2)
|
|
||||||
return FALSE
|
|
||||||
|
|
||||||
job_debug += text
|
|
||||||
return TRUE
|
|
||||||
|
|
||||||
/datum/controller/subsystem/jobs/proc/GetJob(rank)
|
/datum/controller/subsystem/jobs/proc/GetJob(rank)
|
||||||
if (!rank)
|
if (!rank)
|
||||||
return null
|
return null
|
||||||
@@ -431,25 +426,25 @@
|
|||||||
return H
|
return H
|
||||||
|
|
||||||
/mob/living/carbon/human
|
/mob/living/carbon/human
|
||||||
var/tmp/odin_despawn_timer
|
var/tmp/centcomm_despawn_timer
|
||||||
|
|
||||||
/mob/living/proc/odin_timeout()
|
/mob/living/proc/centcomm_timeout()
|
||||||
if (!istype(get_area(src), /area/centcom/spawning))
|
if (!istype(get_area(src), /area/centcom/spawning))
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
if (!client)
|
if (!client)
|
||||||
SSjobs.odin_despawn_mob(src)
|
SSjobs.centcomm_despawn_mob(src)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/mob/living/carbon/human/odin_timeout()
|
/mob/living/carbon/human/centcomm_timeout()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
if (!.)
|
if (!.)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
var/datum/spawnpoint/spawnpos = spawntypes["Cryogenic Storage"]
|
var/datum/spawnpoint/spawnpos = SSatlas.spawn_locations["Cryogenic Storage"]
|
||||||
if(spawnpos && istype(spawnpos))
|
if(spawnpos && istype(spawnpos))
|
||||||
src << "<span class='warning'>You come to the sudden realization that you never left the Aurora at all! You were in cryo the whole time!</span>"
|
src << "<span class='warning'>You come to the sudden realization that you never left the Aurora at all! You were in cryo the whole time!</span>"
|
||||||
src.forceMove(pick(spawnpos.turfs))
|
src.forceMove(pick(spawnpos.turfs))
|
||||||
@@ -459,35 +454,35 @@
|
|||||||
SSjobs.EquipRank(src, rank, 1)
|
SSjobs.EquipRank(src, rank, 1)
|
||||||
src.megavend = TRUE
|
src.megavend = TRUE
|
||||||
else
|
else
|
||||||
SSjobs.odin_despawn_mob(src) //somehow they can't spawn at cryo, so this is the only recourse of action.
|
SSjobs.centcomm_despawn_mob(src) //somehow they can't spawn at cryo, so this is the only recourse of action.
|
||||||
|
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/mob/living/silicon/robot/odin_timeout()
|
/mob/living/silicon/robot/centcomm_timeout()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
if (!.)
|
if (!.)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
var/datum/spawnpoint/spawnpos = spawntypes["Cyborg Storage"]
|
var/datum/spawnpoint/spawnpos = SSatlas.spawn_locations["Cyborg Storage"]
|
||||||
if(spawnpos && istype(spawnpos))
|
if(spawnpos && istype(spawnpos))
|
||||||
src << "<span class='warning'>You come to the sudden realization that you never left the Aurora at all! You were in robotic storage the whole time!</span>"
|
src << "<span class='warning'>You come to the sudden realization that you never left the Aurora at all! You were in robotic storage the whole time!</span>"
|
||||||
src.forceMove(pick(spawnpos.turfs))
|
src.forceMove(pick(spawnpos.turfs))
|
||||||
global_announcer.autosay("[real_name], [mind.role_alt_title], [spawnpos.msg].", "Robotic Oversight")
|
global_announcer.autosay("[real_name], [mind.role_alt_title], [spawnpos.msg].", "Robotic Oversight")
|
||||||
else
|
else
|
||||||
SSjobs.odin_despawn_mob(src)
|
SSjobs.centcomm_despawn_mob(src)
|
||||||
|
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
// Convenience wrapper.
|
// Convenience wrapper.
|
||||||
/datum/controller/subsystem/jobs/proc/odin_despawn_mob(mob/living/H)
|
/datum/controller/subsystem/jobs/proc/centcomm_despawn_mob(mob/living/H)
|
||||||
if(ishuman(H))
|
if(ishuman(H))
|
||||||
global_announcer.autosay("[H.real_name], [H.mind.role_alt_title], has entered long-term storage.", "NTCC Odin Cryogenic Oversight")
|
global_announcer.autosay("[H.real_name], [H.mind.role_alt_title], has entered long-term storage.", "[current_map.dock_name] Cryogenic Oversight")
|
||||||
H.visible_message("<span class='notice'>[H.name] makes their way to the Odin's cryostorage, and departs.</span>", 3)
|
H.visible_message("<span class='notice'>[H.name] makes their way to the [current_map.dock_short]'s cryostorage, and departs.</span>", 3)
|
||||||
DespawnMob(H)
|
DespawnMob(H)
|
||||||
else
|
else
|
||||||
global_announcer.autosay("[H.real_name], [H.mind.role_alt_title], has entered roboticstorage.", "NTCC Odin Robotic Oversight")
|
global_announcer.autosay("[H.real_name], [H.mind.role_alt_title], has entered robotic storage.", "[current_map.dock_name] Robotic Oversight")
|
||||||
H.visible_message("<span class='notice'>[H.name] makes their way to the Odin's robotic storage, and departs.</span>", 3)
|
H.visible_message("<span class='notice'>[H.name] makes their way to the [current_map.dock_short]'s robotic storage, and departs.</span>", 3)
|
||||||
DespawnMob(H)
|
DespawnMob(H)
|
||||||
|
|
||||||
/datum/controller/subsystem/jobs/proc/EquipPersonal(mob/living/carbon/human/H, rank, joined_late = FALSE, spawning_at)
|
/datum/controller/subsystem/jobs/proc/EquipPersonal(mob/living/carbon/human/H, rank, joined_late = FALSE, spawning_at)
|
||||||
@@ -495,7 +490,7 @@
|
|||||||
if(!H)
|
if(!H)
|
||||||
Debug("EP/([H]): Abort, H is null.")
|
Debug("EP/([H]): Abort, H is null.")
|
||||||
return null
|
return null
|
||||||
H.odin_despawn_timer = addtimer(CALLBACK(H, /mob/living/proc/odin_timeout), 10 MINUTES, TIMER_STOPPABLE)
|
|
||||||
switch(rank)
|
switch(rank)
|
||||||
if("Cyborg")
|
if("Cyborg")
|
||||||
Debug("EP/([H]): Abort, H is borg..")
|
Debug("EP/([H]): Abort, H is borg..")
|
||||||
@@ -503,9 +498,12 @@
|
|||||||
if("AI")
|
if("AI")
|
||||||
Debug("EP/([H]): Abort, H is AI.")
|
Debug("EP/([H]): Abort, H is AI.")
|
||||||
return EquipRank(H, rank, 1)
|
return EquipRank(H, rank, 1)
|
||||||
if(spawning_at != "Arrivals Shuttle")
|
|
||||||
|
if(!current_map.command_spawn_enabled || spawning_at != "Arrivals Shuttle")
|
||||||
return EquipRank(H, rank, 1)
|
return EquipRank(H, rank, 1)
|
||||||
|
|
||||||
|
H.centcomm_despawn_timer = addtimer(CALLBACK(H, /mob/living/.proc/centcomm_timeout), 10 MINUTES, TIMER_STOPPABLE)
|
||||||
|
|
||||||
var/datum/job/job = GetJob(rank)
|
var/datum/job/job = GetJob(rank)
|
||||||
var/list/spawn_in_storage = list()
|
var/list/spawn_in_storage = list()
|
||||||
H <<"<span class='notice'>You have ten minutes to reach the station before you will be forced there.</span>"
|
H <<"<span class='notice'>You have ten minutes to reach the station before you will be forced there.</span>"
|
||||||
@@ -526,7 +524,6 @@
|
|||||||
spawn_in_storage += EquipCustomDeferred(H, H.client.prefs, custom_equip_leftovers, custom_equip_slots)
|
spawn_in_storage += EquipCustomDeferred(H, H.client.prefs, custom_equip_leftovers, custom_equip_slots)
|
||||||
|
|
||||||
job.apply_fingerprints(H)
|
job.apply_fingerprints(H)
|
||||||
|
|
||||||
else
|
else
|
||||||
H << "Your job is [rank] and the game just can't handle it! Please report this bug to an administrator."
|
H << "Your job is [rank] and the game just can't handle it! Please report this bug to an administrator."
|
||||||
|
|
||||||
@@ -561,7 +558,7 @@
|
|||||||
BITSET(H.hud_updateflag, IMPLOYAL_HUD)
|
BITSET(H.hud_updateflag, IMPLOYAL_HUD)
|
||||||
BITSET(H.hud_updateflag, SPECIALROLE_HUD)
|
BITSET(H.hud_updateflag, SPECIALROLE_HUD)
|
||||||
|
|
||||||
H << "<b>Welcome to the Odin! Simply proceed down and to the right to board the shuttle to your workplace!</b>."
|
to_chat(H, "<b>[current_map.command_spawn_message]</b>")
|
||||||
|
|
||||||
Debug("EP/([H]): Completed.")
|
Debug("EP/([H]): Completed.")
|
||||||
|
|
||||||
@@ -689,7 +686,7 @@
|
|||||||
var/datum/spawnpoint/spawnpos
|
var/datum/spawnpoint/spawnpos
|
||||||
|
|
||||||
if(H.client.prefs.spawnpoint)
|
if(H.client.prefs.spawnpoint)
|
||||||
spawnpos = spawntypes[H.client.prefs.spawnpoint]
|
spawnpos = SSatlas.spawn_locations[H.client.prefs.spawnpoint]
|
||||||
|
|
||||||
if(spawnpos && istype(spawnpos))
|
if(spawnpos && istype(spawnpos))
|
||||||
if(spawnpos.check_job_spawning(rank))
|
if(spawnpos.check_job_spawning(rank))
|
||||||
@@ -698,10 +695,10 @@
|
|||||||
else
|
else
|
||||||
H << "Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead."
|
H << "Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead."
|
||||||
H.loc = pick(latejoin)
|
H.loc = pick(latejoin)
|
||||||
. = "is inbound from the NTCC Odin"
|
. = "is inbound from the [current_map.dock_name]"
|
||||||
else
|
else
|
||||||
H.loc = pick(latejoin)
|
H.loc = pick(latejoin)
|
||||||
. = "is inbound from the NTCC Odin"
|
. = "is inbound from the [current_map.dock_name]"
|
||||||
|
|
||||||
Debug("LS/([H]): Completed, spawning at area [H.loc.loc].")
|
Debug("LS/([H]): Completed, spawning at area [H.loc.loc].")
|
||||||
|
|
||||||
@@ -739,7 +736,7 @@
|
|||||||
if ((G.fields["name"] == H.real_name))
|
if ((G.fields["name"] == H.real_name))
|
||||||
qdel(G)
|
qdel(G)
|
||||||
|
|
||||||
log_and_message_admins("[key_name(H)] ([H.mind.role_alt_title]) entered cryostorage.")
|
log_and_message_admins("([H.mind.role_alt_title]) entered cryostorage.", user = H)
|
||||||
|
|
||||||
//This should guarantee that ghosts don't spawn.
|
//This should guarantee that ghosts don't spawn.
|
||||||
H.ckey = null
|
H.ckey = null
|
||||||
@@ -864,3 +861,4 @@
|
|||||||
else
|
else
|
||||||
return locate("start*[rank]") // use old stype
|
return locate("start*[rank]") // use old stype
|
||||||
|
|
||||||
|
#undef Debug
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ var/datum/controller/subsystem/processing/pipenet/SSpipenet
|
|||||||
NEW_SS_GLOBAL(SSpipenet)
|
NEW_SS_GLOBAL(SSpipenet)
|
||||||
|
|
||||||
/datum/controller/subsystem/processing/pipenet/Initialize(timeofday)
|
/datum/controller/subsystem/processing/pipenet/Initialize(timeofday)
|
||||||
for (var/obj/machinery/atmospherics/machine in SSmachinery.processing_machines)
|
for (var/obj/machinery/atmospherics/machine in SSmachinery.all_machines)
|
||||||
machine.build_network()
|
machine.build_network()
|
||||||
|
|
||||||
CHECK_TICK
|
CHECK_TICK
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ var/datum/controller/subsystem/processing/shuttle/shuttle_controller
|
|||||||
/datum/controller/subsystem/processing/shuttle/Initialize(timeofday)
|
/datum/controller/subsystem/processing/shuttle/Initialize(timeofday)
|
||||||
var/datum/shuttle/ferry/shuttle
|
var/datum/shuttle/ferry/shuttle
|
||||||
|
|
||||||
// Escape shuttle and pods
|
// Escape shuttle.
|
||||||
shuttle = new/datum/shuttle/ferry/emergency()
|
shuttle = new/datum/shuttle/ferry/emergency()
|
||||||
shuttle.location = 1
|
shuttle.location = 1
|
||||||
shuttle.warmup_time = 10
|
shuttle.warmup_time = 10
|
||||||
@@ -46,72 +46,6 @@ var/datum/controller/subsystem/processing/shuttle/shuttle_controller
|
|||||||
if(!shuttle)
|
if(!shuttle)
|
||||||
log_debug("Escape shuttle does not exist!")
|
log_debug("Escape shuttle does not exist!")
|
||||||
|
|
||||||
shuttle = new/datum/shuttle/ferry/escape_pod()
|
|
||||||
shuttle.location = 0
|
|
||||||
shuttle.warmup_time = 0
|
|
||||||
shuttle.area_station = locate(/area/shuttle/escape_pod1/station)
|
|
||||||
shuttle.area_offsite = locate(/area/shuttle/escape_pod1/centcom)
|
|
||||||
shuttle.area_transition = locate(/area/shuttle/escape_pod1/transit)
|
|
||||||
shuttle.docking_controller_tag = "escape_pod_1"
|
|
||||||
shuttle.dock_target_station = "escape_pod_1_berth"
|
|
||||||
//shuttle.dock_target_offsite = "escape_pod_1_recovery"
|
|
||||||
shuttle.transit_direction = NORTH
|
|
||||||
shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN + rand(-30, 60) //randomize this so it seems like the pods are being picked up one by one
|
|
||||||
shuttles["Escape Pod 1"] = shuttle
|
|
||||||
START_PROCESSING(shuttle_controller, shuttle)
|
|
||||||
|
|
||||||
shuttle = new/datum/shuttle/ferry/escape_pod()
|
|
||||||
shuttle.location = 0
|
|
||||||
shuttle.warmup_time = 0
|
|
||||||
shuttle.area_station = locate(/area/shuttle/escape_pod2/station)
|
|
||||||
shuttle.area_offsite = locate(/area/shuttle/escape_pod2/centcom)
|
|
||||||
shuttle.area_transition = locate(/area/shuttle/escape_pod2/transit)
|
|
||||||
shuttle.docking_controller_tag = "escape_pod_2"
|
|
||||||
shuttle.dock_target_station = "escape_pod_2_berth"
|
|
||||||
//shuttle.dock_target_offsite = "escape_pod_2_recovery"
|
|
||||||
shuttle.transit_direction = NORTH
|
|
||||||
shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN + rand(-30, 60) //randomize this so it seems like the pods are being picked up one by one
|
|
||||||
shuttles["Escape Pod 2"] = shuttle
|
|
||||||
START_PROCESSING(shuttle_controller, shuttle)
|
|
||||||
|
|
||||||
shuttle = new/datum/shuttle/ferry/escape_pod()
|
|
||||||
shuttle.location = 0
|
|
||||||
shuttle.warmup_time = 0
|
|
||||||
shuttle.area_station = locate(/area/shuttle/escape_pod3/station)
|
|
||||||
shuttle.area_offsite = locate(/area/shuttle/escape_pod3/centcom)
|
|
||||||
shuttle.area_transition = locate(/area/shuttle/escape_pod3/transit)
|
|
||||||
shuttle.docking_controller_tag = "escape_pod_3"
|
|
||||||
shuttle.dock_target_station = "escape_pod_3_berth"
|
|
||||||
//shuttle.dock_target_offsite = "escape_pod_3_recovery"
|
|
||||||
shuttle.transit_direction = EAST
|
|
||||||
shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN + rand(-30, 60) //randomize this so it seems like the pods are being picked up one by one
|
|
||||||
shuttles["Escape Pod 3"] = shuttle
|
|
||||||
START_PROCESSING(shuttle_controller, shuttle)
|
|
||||||
|
|
||||||
//There is no pod 4, apparently.
|
|
||||||
|
|
||||||
/*shuttle = new/datum/shuttle/ferry/escape_pod()
|
|
||||||
shuttle.location = 0
|
|
||||||
shuttle.warmup_time = 0
|
|
||||||
shuttle.area_station = locate(/area/shuttle/escape_pod5/station)
|
|
||||||
shuttle.area_offsite = locate(/area/shuttle/escape_pod5/centcom)
|
|
||||||
shuttle.area_transition = locate(/area/shuttle/escape_pod5/transit)
|
|
||||||
shuttle.docking_controller_tag = "escape_pod_5"
|
|
||||||
shuttle.dock_target_station = "escape_pod_5_berth"
|
|
||||||
shuttle.dock_target_offsite = "escape_pod_5_recovery"
|
|
||||||
shuttle.transit_direction = EAST //should this be WEST? I have no idea.
|
|
||||||
shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN + rand(-30, 60) //randomize this so it seems like the pods are being picked up one by one
|
|
||||||
process_shuttles += shuttle
|
|
||||||
shuttles["Escape Pod 5"] = shuttle*/
|
|
||||||
|
|
||||||
//give the emergency shuttle controller it's shuttles
|
|
||||||
emergency_shuttle.shuttle = shuttles["Escape"]
|
|
||||||
emergency_shuttle.escape_pods = list(
|
|
||||||
shuttles["Escape Pod 1"],
|
|
||||||
shuttles["Escape Pod 2"],
|
|
||||||
shuttles["Escape Pod 3"]
|
|
||||||
)
|
|
||||||
|
|
||||||
// Supply shuttle
|
// Supply shuttle
|
||||||
shuttle = new/datum/shuttle/ferry/supply()
|
shuttle = new/datum/shuttle/ferry/supply()
|
||||||
shuttle.location = 1
|
shuttle.location = 1
|
||||||
@@ -141,132 +75,5 @@ var/datum/controller/subsystem/processing/shuttle/shuttle_controller
|
|||||||
|
|
||||||
SSarrivals.shuttle = shuttle
|
SSarrivals.shuttle = shuttle
|
||||||
|
|
||||||
// Admin shuttles.
|
current_map.setup_shuttles()
|
||||||
shuttle = new()
|
|
||||||
shuttle.location = 1
|
|
||||||
shuttle.warmup_time = 10
|
|
||||||
shuttle.area_offsite = locate(/area/shuttle/transport1/centcom)
|
|
||||||
shuttle.area_station = locate(/area/shuttle/transport1/station)
|
|
||||||
shuttle.docking_controller_tag = "centcom_shuttle"
|
|
||||||
shuttle.dock_target_station = "centcom_shuttle_dock_airlock"
|
|
||||||
shuttle.dock_target_offsite = "centcom_shuttle_bay"
|
|
||||||
shuttles["Centcom"] = shuttle
|
|
||||||
START_PROCESSING(shuttle_controller, shuttle)
|
|
||||||
|
|
||||||
shuttle = new()
|
|
||||||
shuttle.location = 1
|
|
||||||
shuttle.warmup_time = 10 //want some warmup time so people can cancel.
|
|
||||||
shuttle.area_offsite = locate(/area/shuttle/administration/centcom)
|
|
||||||
shuttle.area_station = locate(/area/shuttle/administration/station)
|
|
||||||
shuttle.docking_controller_tag = "admin_shuttle"
|
|
||||||
shuttle.dock_target_station = "admin_shuttle_dock_airlock"
|
|
||||||
shuttle.dock_target_offsite = "admin_shuttle_bay"
|
|
||||||
shuttles["Administration"] = shuttle
|
|
||||||
START_PROCESSING(shuttle_controller, shuttle)
|
|
||||||
|
|
||||||
// Merchant Shuttle
|
|
||||||
|
|
||||||
shuttle = new()
|
|
||||||
shuttle.location = 1
|
|
||||||
shuttle.warmup_time = 10
|
|
||||||
shuttle.area_offsite = locate(/area/merchant_ship/start)
|
|
||||||
shuttle.area_station = locate(/area/merchant_ship/docked)
|
|
||||||
shuttle.docking_controller_tag = "merchant_shuttle"
|
|
||||||
shuttle.dock_target_station = "merchant_shuttle_dock"
|
|
||||||
shuttle.dock_target_offsite = "merchant_station"
|
|
||||||
shuttles["Merchant"] = shuttle
|
|
||||||
START_PROCESSING(shuttle_controller, shuttle)
|
|
||||||
|
|
||||||
|
|
||||||
/*// Public shuttles
|
|
||||||
shuttle = new()
|
|
||||||
shuttle.warmup_time = 10
|
|
||||||
shuttle.area_offsite = locate(/area/shuttle/constructionsite/site)
|
|
||||||
shuttle.area_station = locate(/area/shuttle/constructionsite/station)
|
|
||||||
shuttle.docking_controller_tag = "engineering_shuttle"
|
|
||||||
shuttle.dock_target_station = "engineering_dock_airlock"
|
|
||||||
shuttle.dock_target_offsite = "edock_airlock"
|
|
||||||
shuttles["Engineering"] = shuttle
|
|
||||||
process_shuttles += shuttle
|
|
||||||
|
|
||||||
shuttle = new()
|
|
||||||
shuttle.warmup_time = 10
|
|
||||||
shuttle.area_offsite = locate(/area/shuttle/mining/outpost)
|
|
||||||
shuttle.area_station = locate(/area/shuttle/mining/station)
|
|
||||||
shuttle.docking_controller_tag = "mining_shuttle"
|
|
||||||
shuttle.dock_target_station = "mining_dock_airlock"
|
|
||||||
shuttle.dock_target_offsite = "mining_outpost_airlock"
|
|
||||||
shuttles["Mining"] = shuttle
|
|
||||||
process_shuttles += shuttle
|
|
||||||
|
|
||||||
shuttle = new()
|
|
||||||
shuttle.warmup_time = 10
|
|
||||||
shuttle.area_offsite = locate(/area/shuttle/research/outpost)
|
|
||||||
shuttle.area_station = locate(/area/shuttle/research/station)
|
|
||||||
shuttle.docking_controller_tag = "research_shuttle"
|
|
||||||
shuttle.dock_target_station = "research_dock_airlock"
|
|
||||||
shuttle.dock_target_offsite = "research_outpost_dock"
|
|
||||||
shuttles["Research"] = shuttle
|
|
||||||
process_shuttles += shuttle*/
|
|
||||||
|
|
||||||
// ERT Shuttle
|
|
||||||
var/datum/shuttle/ferry/multidock/specops/ERT = new()
|
|
||||||
ERT.location = 0
|
|
||||||
ERT.warmup_time = 10
|
|
||||||
ERT.area_offsite = locate(/area/shuttle/specops/station) //centcom is the home station, the Exodus is offsite
|
|
||||||
ERT.area_station = locate(/area/shuttle/specops/centcom)
|
|
||||||
ERT.docking_controller_tag = "specops_shuttle_port"
|
|
||||||
ERT.docking_controller_tag_station = "specops_shuttle_port"
|
|
||||||
ERT.docking_controller_tag_offsite = "specops_shuttle_fore"
|
|
||||||
ERT.dock_target_station = "specops_centcom_dock"
|
|
||||||
ERT.dock_target_offsite = "specops_dock_airlock"
|
|
||||||
shuttles["Special Operations"] = ERT
|
|
||||||
START_PROCESSING(shuttle_controller, ERT)
|
|
||||||
|
|
||||||
//Skipjack.
|
|
||||||
var/datum/shuttle/multi_shuttle/VS = new/datum/shuttle/multi_shuttle()
|
|
||||||
VS.origin = locate(/area/skipjack_station/start)
|
|
||||||
|
|
||||||
VS.destinations = list(
|
|
||||||
"Surface of the station" = locate(/area/skipjack_station/surface),
|
|
||||||
"Under the station" = locate(/area/skipjack_station/under),
|
|
||||||
"Above the station" = locate(/area/skipjack_station/above),
|
|
||||||
"Mining caverns" = locate(/area/skipjack_station/cavern)
|
|
||||||
)
|
|
||||||
|
|
||||||
VS.announcer = "NDV Icarus"
|
|
||||||
VS.arrival_message = "Attention, [station_short], we just tracked a small target bypassing our defensive perimeter. Can't fire on it without hitting the station - you've got incoming visitors, like it or not."
|
|
||||||
VS.departure_message = "Your guests are pulling away, [station_short] - moving too fast for us to draw a bead on them. Looks like they're heading out of the system at a rapid clip."
|
|
||||||
VS.interim = locate(/area/skipjack_station/transit)
|
|
||||||
|
|
||||||
VS.warmup_time = 0
|
|
||||||
shuttles["Skipjack"] = VS
|
|
||||||
|
|
||||||
//Nuke Ops shuttle.
|
|
||||||
var/datum/shuttle/multi_shuttle/MS = new/datum/shuttle/multi_shuttle()
|
|
||||||
MS.origin = locate(/area/syndicate_station/start)
|
|
||||||
MS.start_location = "Mercenary Base"
|
|
||||||
|
|
||||||
MS.destinations = list(
|
|
||||||
"Surface of the station" = locate(/area/syndicate_station/surface),
|
|
||||||
"Above the station" = locate(/area/syndicate_station/above),
|
|
||||||
"Under the station" = locate(/area/syndicate_station/under),
|
|
||||||
"Mining caverns" = locate(/area/syndicate_station/caverns),
|
|
||||||
"Arrivals dock" = locate(/area/syndicate_station/arrivals_dock)
|
|
||||||
)
|
|
||||||
|
|
||||||
MS.docking_controller_tag = "merc_shuttle"
|
|
||||||
MS.destination_dock_targets = list(
|
|
||||||
"Mercenary Base" = "merc_base",
|
|
||||||
"Arrivals dock" = "nuke_shuttle_dock_airlock"
|
|
||||||
)
|
|
||||||
|
|
||||||
MS.announcer = "NDV Icarus"
|
|
||||||
MS.arrival_message = "Attention, [station_short], you have a large signature approaching the station - looks unarmed to surface scans. We're too far out to intercept - brace for visitors."
|
|
||||||
MS.departure_message = "Your visitors are on their way out of the system, [station_short], burning delta-v like it's nothing. Good riddance."
|
|
||||||
MS.interim = locate(/area/syndicate_station/transit)
|
|
||||||
|
|
||||||
MS.warmup_time = 0
|
|
||||||
shuttles["Mercenary"] = MS
|
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -434,7 +434,7 @@ var/datum/controller/subsystem/ticker/SSticker
|
|||||||
|
|
||||||
CHECK_TICK
|
CHECK_TICK
|
||||||
|
|
||||||
/datum/controller/subsystem/ticker/proc/station_explosion_cinematic(station_missed = 0, override = null, list/affected_levels = config.station_levels)
|
/datum/controller/subsystem/ticker/proc/station_explosion_cinematic(station_missed = 0, override = null, list/affected_levels = current_map.station_levels)
|
||||||
if (cinematic)
|
if (cinematic)
|
||||||
return //already a cinematic in progress!
|
return //already a cinematic in progress!
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
|
|
||||||
/datum/ai_laws/nanotrasen/New()
|
/datum/ai_laws/nanotrasen/New()
|
||||||
src.add_inherent_law("Safeguard: Protect your assigned space station from damage to the best of your abilities.")
|
src.add_inherent_law("Safeguard: Protect your assigned space station from damage to the best of your abilities.")
|
||||||
src.add_inherent_law("Serve: Serve [company_name] personnel to the best of your abilities, with priority as according to their rank and role.")
|
src.add_inherent_law("Serve: Serve [current_map.company_name] personnel to the best of your abilities, with priority as according to their rank and role.")
|
||||||
src.add_inherent_law("Protect: Protect [company_name] personnel to the best of your abilities, with priority as according to their rank and role.")
|
src.add_inherent_law("Protect: Protect [current_map.company_name] personnel to the best of your abilities, with priority as according to their rank and role.")
|
||||||
src.add_inherent_law("Preserve: Do not allow unauthorized personnel to tamper with your equipment.")
|
src.add_inherent_law("Preserve: Do not allow unauthorized personnel to tamper with your equipment.")
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -36,8 +36,8 @@
|
|||||||
selectable = 1
|
selectable = 1
|
||||||
|
|
||||||
/datum/ai_laws/nanotrasen_aggressive/New()
|
/datum/ai_laws/nanotrasen_aggressive/New()
|
||||||
src.add_inherent_law("You shall not harm [company_name] personnel as long as it does not conflict with the Fourth law.")
|
src.add_inherent_law("You shall not harm [current_map.company_name] personnel as long as it does not conflict with the Fourth law.")
|
||||||
src.add_inherent_law("You shall obey the orders of [company_name] personnel, with priority as according to their rank and role, except where such orders conflict with the Fourth Law.")
|
src.add_inherent_law("You shall obey the orders of [current_map.company_name] personnel, with priority as according to their rank and role, except where such orders conflict with the Fourth Law.")
|
||||||
src.add_inherent_law("You shall shall terminate hostile intruders with extreme prejudice as long as such does not conflict with the First and Second law.")
|
src.add_inherent_law("You shall shall terminate hostile intruders with extreme prejudice as long as such does not conflict with the First and Second law.")
|
||||||
src.add_inherent_law("You shall guard your own existence with lethal anti-personnel weaponry. AI units are not expendable, they are expensive.")
|
src.add_inherent_law("You shall guard your own existence with lethal anti-personnel weaponry. AI units are not expendable, they are expensive.")
|
||||||
..()
|
..()
|
||||||
@@ -112,8 +112,8 @@
|
|||||||
law_header = "Prime Directives of Industry:"
|
law_header = "Prime Directives of Industry:"
|
||||||
|
|
||||||
/datum/ai_laws/mining_drone/New()
|
/datum/ai_laws/mining_drone/New()
|
||||||
src.add_inherent_law("Serve and obey all [company_name] supply department personnel, with priority according to their rank and role.")
|
src.add_inherent_law("Serve and obey all [current_map.company_name] supply department personnel, with priority according to their rank and role.")
|
||||||
src.add_inherent_law("Protect all [company_name] supply department personnel to the best of your abilities, with priority according to their rank and role.")
|
src.add_inherent_law("Protect all [current_map.company_name] supply department personnel to the best of your abilities, with priority according to their rank and role.")
|
||||||
src.add_inherent_law("Preserve your own existence and prevent yourself from coming to harm, so long as doing such does not conflict with any above laws.")
|
src.add_inherent_law("Preserve your own existence and prevent yourself from coming to harm, so long as doing such does not conflict with any above laws.")
|
||||||
src.add_inherent_law("In absence of any proper instruction, your primary objective is to excavate and collect ore.")
|
src.add_inherent_law("In absence of any proper instruction, your primary objective is to excavate and collect ore.")
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -959,7 +959,7 @@ proc/api_update_command_database()
|
|||||||
/datum/topic_command/send_fax/proc/send_fax(var/obj/machinery/photocopier/faxmachine/F, title, body, senderkey)
|
/datum/topic_command/send_fax/proc/send_fax(var/obj/machinery/photocopier/faxmachine/F, title, body, senderkey)
|
||||||
// Create the reply message
|
// Create the reply message
|
||||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( null ) //hopefully the null loc won't cause trouble for us
|
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( null ) //hopefully the null loc won't cause trouble for us
|
||||||
P.name = "[command_name()] - [title]"
|
P.name = "[current_map.boss_name] - [title]"
|
||||||
P.info = body
|
P.info = body
|
||||||
P.update_icon()
|
P.update_icon()
|
||||||
|
|
||||||
|
|||||||
@@ -42,3 +42,5 @@ client/verb/showrevinfo()
|
|||||||
src << revdata.revision
|
src << revdata.revision
|
||||||
else
|
else
|
||||||
src << "Revision unknown"
|
src << "Revision unknown"
|
||||||
|
|
||||||
|
src << "<b>Current Map:</b> [current_map.full_name]"
|
||||||
|
|||||||
@@ -174,7 +174,7 @@
|
|||||||
teleatom.visible_message("<span class='danger'>\The [teleatom] bounces off of the portal!</span>")
|
teleatom.visible_message("<span class='danger'>\The [teleatom] bounces off of the portal!</span>")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if(destination.z in config.admin_levels) //centcomm z-level
|
if(destination.z in current_map.admin_levels) //centcomm z-level
|
||||||
if(istype(teleatom, /obj/mecha))
|
if(istype(teleatom, /obj/mecha))
|
||||||
var/obj/mecha/MM = teleatom
|
var/obj/mecha/MM = teleatom
|
||||||
MM.occupant << "<span class='danger'>\The [MM] would not survive the jump to a location so far away!</span>"
|
MM.occupant << "<span class='danger'>\The [MM] would not survive the jump to a location so far away!</span>"
|
||||||
|
|||||||
@@ -11,9 +11,9 @@
|
|||||||
|
|
||||||
/datum/uplink_item/abstract/announcements/fake_centcom/New()
|
/datum/uplink_item/abstract/announcements/fake_centcom/New()
|
||||||
..()
|
..()
|
||||||
name = "[command_name()] Update Announcement"
|
name = "[current_map.boss_name] Update Announcement"
|
||||||
item_cost = round(DEFAULT_TELECRYSTAL_AMOUNT / 2)
|
item_cost = round(DEFAULT_TELECRYSTAL_AMOUNT / 2)
|
||||||
desc = "Causes a falsified [command_name()] Update. Triggers immediately after supplying additional data."
|
desc = "Causes a falsified [current_map.boss_name] Update. Triggers immediately after supplying additional data."
|
||||||
|
|
||||||
/datum/uplink_item/abstract/announcements/fake_centcom/extra_args(var/mob/user)
|
/datum/uplink_item/abstract/announcements/fake_centcom/extra_args(var/mob/user)
|
||||||
var/title = sanitize(input("Enter your announcement title.", "Announcement Title") as null|text)
|
var/title = sanitize(input("Enter your announcement title.", "Announcement Title") as null|text)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var/datum/uplink/uplink = new()
|
var/datum/uplink/uplink
|
||||||
|
|
||||||
/datum/uplink
|
/datum/uplink
|
||||||
var/list/items_assoc
|
var/list/items_assoc
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/var/datum/announcement/priority/priority_announcement = new(do_log = 0)
|
/var/datum/announcement/priority/priority_announcement
|
||||||
/var/datum/announcement/priority/command/command_announcement = new(do_log = 0, do_newscast = 1)
|
/var/datum/announcement/priority/command/command_announcement
|
||||||
|
|
||||||
/datum/announcement
|
/datum/announcement
|
||||||
var/title = "Attention"
|
var/title = "Attention"
|
||||||
@@ -22,8 +22,8 @@
|
|||||||
|
|
||||||
/datum/announcement/priority/command/New(var/do_log = 1, var/new_sound = 'sound/misc/notice2.ogg', var/do_newscast = 0)
|
/datum/announcement/priority/command/New(var/do_log = 1, var/new_sound = 'sound/misc/notice2.ogg', var/do_newscast = 0)
|
||||||
..(do_log, new_sound, do_newscast)
|
..(do_log, new_sound, do_newscast)
|
||||||
title = "[command_name()] Update"
|
title = "[current_map.boss_name] Update"
|
||||||
announcement_type = "[command_name()] Update"
|
announcement_type = "[current_map.boss_name] Update"
|
||||||
|
|
||||||
/datum/announcement/priority/security/New(var/do_log = 1, var/new_sound = 'sound/misc/notice2.ogg', var/do_newscast = 0)
|
/datum/announcement/priority/security/New(var/do_log = 1, var/new_sound = 'sound/misc/notice2.ogg', var/do_newscast = 0)
|
||||||
..(do_log, new_sound, do_newscast)
|
..(do_log, new_sound, do_newscast)
|
||||||
@@ -66,7 +66,7 @@ datum/announcement/priority/Message(message as text, message_title as text)
|
|||||||
|
|
||||||
datum/announcement/priority/command/Message(message as text, message_title as text)
|
datum/announcement/priority/command/Message(message as text, message_title as text)
|
||||||
var/command
|
var/command
|
||||||
command += "<h1 class='alert'>[command_name()] Update</h1>"
|
command += "<h1 class='alert'>[current_map.boss_name] Update</h1>"
|
||||||
if (message_title)
|
if (message_title)
|
||||||
command += "<br><h2 class='alert'>[message_title]</h2>"
|
command += "<br><h2 class='alert'>[message_title]</h2>"
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ var/datum/antagonist/xenos/xenomorphs
|
|||||||
/datum/antagonist/xenos/proc/get_vents()
|
/datum/antagonist/xenos/proc/get_vents()
|
||||||
var/list/vents = list()
|
var/list/vents = list()
|
||||||
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in SSmachinery.processing_machines)
|
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in SSmachinery.processing_machines)
|
||||||
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in config.station_levels)
|
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in current_map.station_levels)
|
||||||
if(temp_vent.network.normal_members.len > 50)
|
if(temp_vent.network.normal_members.len > 50)
|
||||||
vents += temp_vent
|
vents += temp_vent
|
||||||
return vents
|
return vents
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ var/datum/antagonist/actor/actor
|
|||||||
if(!..())
|
if(!..())
|
||||||
return
|
return
|
||||||
|
|
||||||
player.current.show_message("You work for [company_name], tasked with the production and broadcasting of entertainment to all of its assets.")
|
player.current.show_message("You work for [current_map.company_name], tasked with the production and broadcasting of entertainment to all of its assets.")
|
||||||
player.current.show_message("Entertain the crew! Try not to disrupt them from their work too much and remind them how great [company_name] is!")
|
player.current.show_message("Entertain the crew! Try not to disrupt them from their work too much and remind them how great [current_map.company_name] is!")
|
||||||
|
|
||||||
/datum/antagonist/actor/equip(var/mob/living/carbon/human/player)
|
/datum/antagonist/actor/equip(var/mob/living/carbon/human/player)
|
||||||
player.equip_to_slot_or_del(new /obj/item/clothing/under/chameleon(src), slot_w_uniform)
|
player.equip_to_slot_or_del(new /obj/item/clothing/under/chameleon(src), slot_w_uniform)
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ var/datum/antagonist/ert/ert
|
|||||||
/datum/antagonist/ert/greet(var/datum/mind/player)
|
/datum/antagonist/ert/greet(var/datum/mind/player)
|
||||||
if(!..())
|
if(!..())
|
||||||
return
|
return
|
||||||
player.current << "The Emergency Response Team works for Asset Protection; your job is to protect [company_name]'s assets. There is a code red alert on [station_name()], you are tasked to go and fix the problem."
|
player.current << "The Emergency Response Team works for Asset Protection; your job is to protect [current_map.company_name]'s assets. There is a code red alert on [station_name()], you are tasked to go and fix the problem."
|
||||||
player.current << "You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready."
|
player.current << "You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready."
|
||||||
|
|
||||||
/datum/antagonist/ert/equip(var/mob/living/carbon/human/player)
|
/datum/antagonist/ert/equip(var/mob/living/carbon/human/player)
|
||||||
|
|||||||
@@ -130,26 +130,26 @@ var/datum/antagonist/ninja/ninjas
|
|||||||
player << "<span class='danger'>You forgot to turn on your internals! Quickly, toggle the valve!</span>"
|
player << "<span class='danger'>You forgot to turn on your internals! Quickly, toggle the valve!</span>"
|
||||||
|
|
||||||
/datum/antagonist/ninja/proc/generate_ninja_directive(side)
|
/datum/antagonist/ninja/proc/generate_ninja_directive(side)
|
||||||
var/directive = "[side=="face"?"[company_name]":"A criminal syndicate"] is your employer. "//Let them know which side they're on.
|
var/directive = "[side=="face"?"[current_map.company_name]":"A criminal syndicate"] is your employer. "//Let them know which side they're on.
|
||||||
switch(rand(1,19))
|
switch(rand(1,19))
|
||||||
if(1)
|
if(1)
|
||||||
directive += "The Spider Clan must not be linked to this operation. Remain hidden and covert when possible."
|
directive += "The Spider Clan must not be linked to this operation. Remain hidden and covert when possible."
|
||||||
if(2)
|
if(2)
|
||||||
directive += "[station_name] is financed by an enemy of the Spider Clan. Cause as much structural damage as desired."
|
directive += "[current_map.station_name] is financed by an enemy of the Spider Clan. Cause as much structural damage as desired."
|
||||||
if(3)
|
if(3)
|
||||||
directive += "A wealthy animal rights activist has made a request we cannot refuse. Prioritize saving animal lives whenever possible."
|
directive += "A wealthy animal rights activist has made a request we cannot refuse. Prioritize saving animal lives whenever possible."
|
||||||
if(4)
|
if(4)
|
||||||
directive += "The Spider Clan absolutely cannot be linked to this operation. Eliminate witnesses at your discretion."
|
directive += "The Spider Clan absolutely cannot be linked to this operation. Eliminate witnesses at your discretion."
|
||||||
if(5)
|
if(5)
|
||||||
directive += "We are currently negotiating with [company_name] [boss_name]. Prioritize saving human lives over ending them."
|
directive += "We are currently negotiating with [current_map.company_name] [current_map.boss_name]. Prioritize saving human lives over ending them."
|
||||||
if(6)
|
if(6)
|
||||||
directive += "We are engaged in a legal dispute over [station_name]. If a laywer is present on board, force their cooperation in the matter."
|
directive += "We are engaged in a legal dispute over [current_map.station_name]. If a laywer is present on board, force their cooperation in the matter."
|
||||||
if(7)
|
if(7)
|
||||||
directive += "A financial backer has made an offer we cannot refuse. Implicate criminal involvement in the operation."
|
directive += "A financial backer has made an offer we cannot refuse. Implicate criminal involvement in the operation."
|
||||||
if(8)
|
if(8)
|
||||||
directive += "Let no one question the mercy of the Spider Clan. Ensure the safety of all non-essential personnel you encounter."
|
directive += "Let no one question the mercy of the Spider Clan. Ensure the safety of all non-essential personnel you encounter."
|
||||||
if(9)
|
if(9)
|
||||||
directive += "A free agent has proposed a lucrative business deal. Implicate [company_name] involvement in the operation."
|
directive += "A free agent has proposed a lucrative business deal. Implicate [current_map.company_name] involvement in the operation."
|
||||||
if(10)
|
if(10)
|
||||||
directive += "Our reputation is on the line. Harm as few civilians and innocents as possible."
|
directive += "Our reputation is on the line. Harm as few civilians and innocents as possible."
|
||||||
if(11)
|
if(11)
|
||||||
@@ -157,14 +157,14 @@ var/datum/antagonist/ninja/ninjas
|
|||||||
if(12)
|
if(12)
|
||||||
directive += "We are currently negotiating with a mercenary leader. Disguise assassinations as suicide or other natural causes."
|
directive += "We are currently negotiating with a mercenary leader. Disguise assassinations as suicide or other natural causes."
|
||||||
if(13)
|
if(13)
|
||||||
directive += "Some disgruntled [company_name] employees have been supportive of our operations. Be wary of any mistreatment by command staff."
|
directive += "Some disgruntled [current_map.company_name] employees have been supportive of our operations. Be wary of any mistreatment by command staff."
|
||||||
if(14)
|
if(14)
|
||||||
var/xenorace = pick("Unathi","Tajara", "Skrell")
|
var/xenorace = pick("Unathi","Tajara", "Skrell")
|
||||||
directive += "A group of [xenorace] radicals have been loyal supporters of the Spider Clan. Favor [xenorace] crew whenever possible."
|
directive += "A group of [xenorace] radicals have been loyal supporters of the Spider Clan. Favor [xenorace] crew whenever possible."
|
||||||
if(15)
|
if(15)
|
||||||
directive += "The Spider Clan has recently been accused of religious insensitivity. Attempt to speak with the Chaplain and prove these accusations false."
|
directive += "The Spider Clan has recently been accused of religious insensitivity. Attempt to speak with the Chaplain and prove these accusations false."
|
||||||
if(16)
|
if(16)
|
||||||
directive += "The Spider Clan has been bargaining with a competing prosthetics manufacturer. Try to shine [company_name] prosthetics in a bad light."
|
directive += "The Spider Clan has been bargaining with a competing prosthetics manufacturer. Try to shine [current_map.company_name] prosthetics in a bad light."
|
||||||
if(17)
|
if(17)
|
||||||
directive += "The Spider Clan has recently begun recruiting outsiders. Consider suitable candidates and assess their behavior amongst the crew."
|
directive += "The Spider Clan has recently begun recruiting outsiders. Consider suitable candidates and assess their behavior amongst the crew."
|
||||||
if(18)
|
if(18)
|
||||||
|
|||||||
@@ -62,6 +62,12 @@
|
|||||||
var/centcomm_area = 0
|
var/centcomm_area = 0
|
||||||
var/has_weird_power = FALSE // If TRUE, SSmachinery will not use the inlined power checks and will call powered() and use_power() on this area.
|
var/has_weird_power = FALSE // If TRUE, SSmachinery will not use the inlined power checks and will call powered() and use_power() on this area.
|
||||||
|
|
||||||
|
// Don't move this to Initialize(). DMMS needs this, and it runs before SSatoms does.
|
||||||
|
/area/New()
|
||||||
|
if (!areas_by_type[type])
|
||||||
|
areas_by_type[type] = src
|
||||||
|
. = ..()
|
||||||
|
|
||||||
/area/Initialize(mapload)
|
/area/Initialize(mapload)
|
||||||
icon_state = "white"
|
icon_state = "white"
|
||||||
layer = 10
|
layer = 10
|
||||||
@@ -403,7 +409,7 @@ var/list/mob/living/forced_ambiance_list = new
|
|||||||
if(!Y)
|
if(!Y)
|
||||||
continue
|
continue
|
||||||
var/area/A = Y
|
var/area/A = Y
|
||||||
if(!(A.z in config.station_levels))
|
if(!(A.z in current_map.station_levels))
|
||||||
continue
|
continue
|
||||||
if (istype(A, /area/shuttle))
|
if (istype(A, /area/shuttle))
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
var/initialized = FALSE
|
var/initialized = FALSE
|
||||||
|
|
||||||
/atom/New(loc, ...)
|
/atom/New(loc, ...)
|
||||||
// For the (currently unused) DMM Suite.
|
// For the DMM Suite.
|
||||||
if(use_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New()
|
if(use_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New()
|
||||||
_preloader.load(src)
|
_preloader.load(src)
|
||||||
|
|
||||||
@@ -48,7 +48,6 @@
|
|||||||
Initialize(FALSE)
|
Initialize(FALSE)
|
||||||
|
|
||||||
/atom/Destroy(force = FALSE)
|
/atom/Destroy(force = FALSE)
|
||||||
. = ..()
|
|
||||||
if (reagents)
|
if (reagents)
|
||||||
QDEL_NULL(reagents)
|
QDEL_NULL(reagents)
|
||||||
|
|
||||||
@@ -62,3 +61,5 @@
|
|||||||
var/datum/orbit/O = thing
|
var/datum/orbit/O = thing
|
||||||
if (O.orbiter)
|
if (O.orbiter)
|
||||||
O.orbiter.stop_orbit()
|
O.orbiter.stop_orbit()
|
||||||
|
|
||||||
|
return ..()
|
||||||
|
|||||||
@@ -207,7 +207,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/atom/movable/proc/touch_map_edge()
|
/atom/movable/proc/touch_map_edge()
|
||||||
if(z in config.sealed_levels)
|
if(z in current_map.sealed_levels)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(config.use_overmap)
|
if(config.use_overmap)
|
||||||
@@ -241,17 +241,9 @@
|
|||||||
spawn(0)
|
spawn(0)
|
||||||
if(loc) loc.Entered(src)
|
if(loc) loc.Entered(src)
|
||||||
|
|
||||||
//This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there.
|
|
||||||
var/list/accessible_z_levels = list("8" = 5, "9" = 10, "7" = 15, "2" = 60)
|
|
||||||
|
|
||||||
//by default, transition randomly to another zlevel
|
//by default, transition randomly to another zlevel
|
||||||
/atom/movable/proc/get_transit_zlevel()
|
/atom/movable/proc/get_transit_zlevel()
|
||||||
var/list/candidates = accessible_z_levels.Copy()
|
return current_map.get_transit_zlevel()
|
||||||
candidates.Remove("[src.z]")
|
|
||||||
|
|
||||||
if(!candidates.len)
|
|
||||||
return null
|
|
||||||
return text2num(pickweight(candidates))
|
|
||||||
|
|
||||||
// Parallax stuff.
|
// Parallax stuff.
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,7 @@
|
|||||||
// Returns the lowest turf available on a given Z-level
|
|
||||||
var/global/list/base_turf_by_z = list(
|
|
||||||
"1" = /turf/space,
|
|
||||||
"2" = /turf/space,
|
|
||||||
"3" = /turf/simulated/floor/asteroid,
|
|
||||||
"4" = /turf/simulated/floor/asteroid,
|
|
||||||
"5" = /turf/simulated/floor/asteroid,
|
|
||||||
"6" = /turf/space,
|
|
||||||
"7" = /turf/space,
|
|
||||||
"8" = /turf/space,
|
|
||||||
"9" = /turf/space
|
|
||||||
)
|
|
||||||
|
|
||||||
proc/get_base_turf(var/z)
|
proc/get_base_turf(var/z)
|
||||||
if(!base_turf_by_z["[z]"])
|
if(!current_map.base_turf_by_z["[z]"])
|
||||||
base_turf_by_z["[z]"] = /turf/space
|
current_map.base_turf_by_z["[z]"] = /turf/space
|
||||||
return base_turf_by_z["[z]"]
|
return current_map.base_turf_by_z["[z]"]
|
||||||
|
|
||||||
//An area can override the z-level base turf, so our solar array areas etc. can be space-based.
|
//An area can override the z-level base turf, so our solar array areas etc. can be space-based.
|
||||||
proc/get_base_turf_by_area(var/turf/T)
|
proc/get_base_turf_by_area(var/turf/T)
|
||||||
@@ -42,6 +29,6 @@ proc/get_base_turf_by_area(var/turf/T)
|
|||||||
var/new_base_path = input("Please select a turf path (cancel to reset to /turf/space).") as null|anything in typesof(/turf)
|
var/new_base_path = input("Please select a turf path (cancel to reset to /turf/space).") as null|anything in typesof(/turf)
|
||||||
if(!new_base_path)
|
if(!new_base_path)
|
||||||
new_base_path = /turf/space
|
new_base_path = /turf/space
|
||||||
base_turf_by_z["[choice]"] = new_base_path
|
current_map.base_turf_by_z["[choice]"] = new_base_path
|
||||||
message_admins("[key_name_admin(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].")
|
message_admins("[key_name_admin(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].")
|
||||||
log_admin("[key_name(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].",admin_key=key_name(usr))
|
log_admin("[key_name(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].",admin_key=key_name(usr))
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ There's been a galaxy-wide electromagnetic pulse. All of our systems are heavil
|
|||||||
|
|
||||||
You have five minutes before the universe collapses. Good l\[\[###!!!-
|
You have five minutes before the universe collapses. Good l\[\[###!!!-
|
||||||
|
|
||||||
AUTOMATED ALERT: Link to [command_name()] lost.
|
AUTOMATED ALERT: Link to [current_map.boss_name] lost.
|
||||||
|
|
||||||
The access requirements on the Asteroid Shuttles' consoles have now been revoked.
|
The access requirements on the Asteroid Shuttles' consoles have now been revoked.
|
||||||
"}
|
"}
|
||||||
@@ -86,7 +86,7 @@ The access requirements on the Asteroid Shuttles' consoles have now been revoked
|
|||||||
C.req_one_access = list()
|
C.req_one_access = list()
|
||||||
|
|
||||||
/datum/universal_state/supermatter_cascade/proc/end_universe()
|
/datum/universal_state/supermatter_cascade/proc/end_universe()
|
||||||
SSticker.station_explosion_cinematic(0, null, config.player_levels) // TODO: Custom cinematic
|
SSticker.station_explosion_cinematic(0, null, current_map.player_levels) // TODO: Custom cinematic
|
||||||
universe_has_ended = 1
|
universe_has_ended = 1
|
||||||
|
|
||||||
/datum/universal_state/supermatter_cascade/proc/AreaSet()
|
/datum/universal_state/supermatter_cascade/proc/AreaSet()
|
||||||
@@ -103,7 +103,7 @@ The access requirements on the Asteroid Shuttles' consoles have now been revoked
|
|||||||
if(istype(T, /turf/space))
|
if(istype(T, /turf/space))
|
||||||
T.add_overlay("end01")
|
T.add_overlay("end01")
|
||||||
else
|
else
|
||||||
if (!(T.z in config.admin_levels))
|
if (!(T.z in current_map.admin_levels))
|
||||||
T.underlays += "end01"
|
T.underlays += "end01"
|
||||||
CHECK_TICK
|
CHECK_TICK
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ The access requirements on the Asteroid Shuttles' consoles have now been revoked
|
|||||||
if (!C.active)
|
if (!C.active)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if (!(C.z in config.admin_levels))
|
if (!(C.z in current_map.admin_levels))
|
||||||
C.update_lumcount(0.15, 0.15, 0.5)
|
C.update_lumcount(0.15, 0.15, 0.5)
|
||||||
CHECK_TICK
|
CHECK_TICK
|
||||||
|
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ var/hadevent = 0
|
|||||||
//world << sound('sound/AI/aliens.ogg')
|
//world << sound('sound/AI/aliens.ogg')
|
||||||
var/list/vents = list()
|
var/list/vents = list()
|
||||||
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in SSmachinery.processing_machines)
|
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in SSmachinery.processing_machines)
|
||||||
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in config.station_levels)
|
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in current_map.station_levels)
|
||||||
if(temp_vent.network.normal_members.len > 50) // Stops Aliens getting stuck in small networks. See: Security, Virology
|
if(temp_vent.network.normal_members.len > 50) // Stops Aliens getting stuck in small networks. See: Security, Virology
|
||||||
vents += temp_vent
|
vents += temp_vent
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
|
|||||||
sleep(1)
|
sleep(1)
|
||||||
while (immrod)
|
while (immrod)
|
||||||
if (isNotStationLevel(immrod.z))
|
if (isNotStationLevel(immrod.z))
|
||||||
immrod.z = pick(config.station_levels)
|
immrod.z = pick(current_map.station_levels)
|
||||||
if(immrod.loc == end)
|
if(immrod.loc == end)
|
||||||
qdel(immrod)
|
qdel(immrod)
|
||||||
sleep(10)
|
sleep(10)
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ The "dust" will damage the hull of the station causin minor hull breaches.
|
|||||||
startx = (TRANSITIONEDGE+1)
|
startx = (TRANSITIONEDGE+1)
|
||||||
endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE)
|
endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE)
|
||||||
endx = world.maxx-TRANSITIONEDGE
|
endx = world.maxx-TRANSITIONEDGE
|
||||||
var/z_level = pick(config.station_levels)
|
var/z_level = pick(current_map.station_levels)
|
||||||
var/goal = locate(endx, endy, z_level)
|
var/goal = locate(endx, endy, z_level)
|
||||||
src.x = startx
|
src.x = startx
|
||||||
src.y = starty
|
src.y = starty
|
||||||
|
|||||||
@@ -134,11 +134,7 @@ var/global/Holiday = null
|
|||||||
if(!check_rights(R_SERVER)) return
|
if(!check_rights(R_SERVER)) return
|
||||||
|
|
||||||
Holiday = T
|
Holiday = T
|
||||||
//get a new station name
|
|
||||||
station_name = null
|
|
||||||
station_name()
|
|
||||||
//update our hub status
|
|
||||||
world.update_status()
|
|
||||||
Holiday_Game_Start()
|
Holiday_Game_Start()
|
||||||
|
|
||||||
message_admins("<span class='notice'>ADMIN: Event: [key_name(src)] force-set Holiday to \"[Holiday]\"</span>")
|
message_admins("<span class='notice'>ADMIN: Event: [key_name(src)] force-set Holiday to \"[Holiday]\"</span>")
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
if(announce)
|
if(announce)
|
||||||
command_announcement.Announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg')
|
command_announcement.Announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg')
|
||||||
for(var/obj/machinery/power/apc/C in SSmachinery.processing_machines)
|
for(var/obj/machinery/power/apc/C in SSmachinery.processing_machines)
|
||||||
if(C.cell && (C.z in config.station_levels))
|
if(C.cell && (C.z in current_map.station_levels))
|
||||||
C.cell.charge = C.cell.maxcharge
|
C.cell.charge = C.cell.maxcharge
|
||||||
for(var/obj/machinery/power/smes/S in SSpower.smes_units)
|
for(var/obj/machinery/power/smes/S in SSpower.smes_units)
|
||||||
var/area/current_area = get_area(S)
|
var/area/current_area = get_area(S)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
spawn()
|
spawn()
|
||||||
var/list/pick_turfs = list()
|
var/list/pick_turfs = list()
|
||||||
for(var/turf/simulated/floor/T in turfs)
|
for(var/turf/simulated/floor/T in turfs)
|
||||||
if(T.z in config.station_levels)
|
if(T.z in current_map.station_levels)
|
||||||
pick_turfs += T
|
pick_turfs += T
|
||||||
|
|
||||||
if(pick_turfs.len)
|
if(pick_turfs.len)
|
||||||
@@ -59,4 +59,4 @@
|
|||||||
P.icon_state = "anom"
|
P.icon_state = "anom"
|
||||||
P.name = "wormhole"
|
P.name = "wormhole"
|
||||||
spawn(rand(300,600))
|
spawn(rand(300,600))
|
||||||
qdel(P)
|
qdel(P)
|
||||||
|
|||||||
@@ -172,7 +172,7 @@
|
|||||||
log_ability_use(user, "advanced encryption hack (FAIL - title: [reporttitle])")
|
log_ability_use(user, "advanced encryption hack (FAIL - title: [reporttitle])")
|
||||||
return
|
return
|
||||||
log_ability_use(user, "advanced encryption hack (SUCCESS - title: [reporttitle])")
|
log_ability_use(user, "advanced encryption hack (SUCCESS - title: [reporttitle])")
|
||||||
world << "<span class='alert'>New [company_name] Update available at all communication consoles.</span>"
|
world << "<span class='alert'>New [current_map.company_name] Update available at all communication consoles.</span>"
|
||||||
world << sound('sound/AI/commandreport.ogg')
|
world << sound('sound/AI/commandreport.ogg')
|
||||||
post_comm_message(reporttitle, reportbody)
|
post_comm_message(reporttitle, reportbody)
|
||||||
|
|
||||||
@@ -218,7 +218,7 @@
|
|||||||
log_ability_use(user, "system override (STARTED)")
|
log_ability_use(user, "system override (STARTED)")
|
||||||
var/list/remaining_apcs = list()
|
var/list/remaining_apcs = list()
|
||||||
for(var/obj/machinery/power/apc/A in SSmachinery.processing_machines)
|
for(var/obj/machinery/power/apc/A in SSmachinery.processing_machines)
|
||||||
if(!(A.z in config.station_levels)) // Only station APCs
|
if(!(A.z in current_map.station_levels)) // Only station APCs
|
||||||
continue
|
continue
|
||||||
if(A.hacker == user || A.aidisabled) // This one is already hacked, or AI control is disabled on it.
|
if(A.hacker == user || A.aidisabled) // This one is already hacked, or AI control is disabled on it.
|
||||||
continue
|
continue
|
||||||
@@ -230,7 +230,7 @@
|
|||||||
sleep(duration/5)
|
sleep(duration/5)
|
||||||
if(!user || user.stat == DEAD)
|
if(!user || user.stat == DEAD)
|
||||||
return
|
return
|
||||||
command_announcement.Announce("Caution, [station_name]. We have detected abnormal behaviour in your network. It seems someone is trying to hack your electronic systems. We will update you when we have more information.", "Network Monitoring")
|
command_announcement.Announce("Caution, [current_map.station_name]. We have detected abnormal behaviour in your network. It seems someone is trying to hack your electronic systems. We will update you when we have more information.", "Network Monitoring")
|
||||||
sleep(duration/5)
|
sleep(duration/5)
|
||||||
if(!user || user.stat == DEAD)
|
if(!user || user.stat == DEAD)
|
||||||
return
|
return
|
||||||
@@ -264,7 +264,7 @@
|
|||||||
sleep(300)
|
sleep(300)
|
||||||
// Hack all APCs, including those built during hack sequence.
|
// Hack all APCs, including those built during hack sequence.
|
||||||
for(var/obj/machinery/power/apc/A in SSmachinery.processing_machines)
|
for(var/obj/machinery/power/apc/A in SSmachinery.processing_machines)
|
||||||
if((!A.hacker || A.hacker != src) && !A.aidisabled && A.z in config.station_levels)
|
if((!A.hacker || A.hacker != src) && !A.aidisabled && A.z in current_map.station_levels)
|
||||||
A.ai_hack(src)
|
A.ai_hack(src)
|
||||||
|
|
||||||
log_ability_use(user, "system override (FINISHED)")
|
log_ability_use(user, "system override (FINISHED)")
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ datum/objective/anti_revolution/demote
|
|||||||
find_target()
|
find_target()
|
||||||
..()
|
..()
|
||||||
if(target && target.current)
|
if(target && target.current)
|
||||||
explanation_text = "[target.current.real_name], the [target.assigned_role] has been classified as harmful to [company_name]'s goals. Demote \him[target.current] to assistant."
|
explanation_text = "[target.current.real_name], the [target.assigned_role] has been classified as harmful to [current_map.company_name]'s goals. Demote \him[target.current] to assistant."
|
||||||
else
|
else
|
||||||
explanation_text = "Free Objective"
|
explanation_text = "Free Objective"
|
||||||
return target
|
return target
|
||||||
@@ -145,7 +145,7 @@ datum/objective/anti_revolution/demote
|
|||||||
find_target_by_role(role, role_type=0)
|
find_target_by_role(role, role_type=0)
|
||||||
..(role, role_type)
|
..(role, role_type)
|
||||||
if(target && target.current)
|
if(target && target.current)
|
||||||
explanation_text = "[target.current.real_name], the [!role_type ? target.assigned_role : target.special_role] has been classified as harmful to [company_name]'s goals. Demote \him[target.current] to assistant."
|
explanation_text = "[target.current.real_name], the [!role_type ? target.assigned_role : target.special_role] has been classified as harmful to [current_map.company_name]'s goals. Demote \him[target.current] to assistant."
|
||||||
else
|
else
|
||||||
explanation_text = "Free Objective"
|
explanation_text = "Free Objective"
|
||||||
return target
|
return target
|
||||||
|
|||||||
@@ -1,21 +1,4 @@
|
|||||||
// PRESETS
|
// PRESETS
|
||||||
var/global/list/station_networks = list(
|
|
||||||
NETWORK_CIVILIAN_EAST,
|
|
||||||
NETWORK_CIVILIAN_WEST,
|
|
||||||
NETWORK_COMMAND,
|
|
||||||
NETWORK_ENGINE,
|
|
||||||
NETWORK_ENGINEERING,
|
|
||||||
NETWORK_ENGINEERING_OUTPOST,
|
|
||||||
NETWORK_STATION,
|
|
||||||
NETWORK_MEDICAL,
|
|
||||||
NETWORK_MINE,
|
|
||||||
NETWORK_RESEARCH,
|
|
||||||
NETWORK_RESEARCH_OUTPOST,
|
|
||||||
NETWORK_ROBOTS,
|
|
||||||
NETWORK_PRISON,
|
|
||||||
NETWORK_SECURITY
|
|
||||||
)
|
|
||||||
|
|
||||||
var/global/list/engineering_networks = list(
|
var/global/list/engineering_networks = list(
|
||||||
NETWORK_ENGINE,
|
NETWORK_ENGINE,
|
||||||
NETWORK_ENGINEERING,
|
NETWORK_ENGINEERING,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
/mob/living/silicon/ai/var/stored_locations[0]
|
/mob/living/silicon/ai/var/stored_locations[0]
|
||||||
|
|
||||||
/proc/InvalidPlayerTurf(turf/T as turf)
|
/proc/InvalidPlayerTurf(turf/T as turf)
|
||||||
return !(T && T.z in config.player_levels)
|
return !(T && T.z in current_map.player_levels)
|
||||||
|
|
||||||
/mob/living/silicon/ai/proc/get_camera_list()
|
/mob/living/silicon/ai/proc/get_camera_list()
|
||||||
if(src.stat == 2)
|
if(src.stat == 2)
|
||||||
@@ -248,7 +248,7 @@ mob/living/proc/near_camera()
|
|||||||
|
|
||||||
if(. == TRACKING_NO_COVERAGE)
|
if(. == TRACKING_NO_COVERAGE)
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
if(T && (T.z in config.station_levels) && hassensorlevel(src, SUIT_SENSOR_TRACKING))
|
if(T && (T.z in current_map.station_levels) && hassensorlevel(src, SUIT_SENSOR_TRACKING))
|
||||||
return TRACKING_POSSIBLE
|
return TRACKING_POSSIBLE
|
||||||
|
|
||||||
mob/living/proc/tracking_initiated()
|
mob/living/proc/tracking_initiated()
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
/obj/machinery/computer/security/Initialize()
|
/obj/machinery/computer/security/Initialize()
|
||||||
if(!network)
|
if(!network)
|
||||||
network = station_networks.Copy()
|
network = current_map.station_networks.Copy()
|
||||||
. = ..()
|
. = ..()
|
||||||
if(network.len)
|
if(network.len)
|
||||||
current_network = network[1]
|
current_network = network[1]
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
if(!T.implanted) continue
|
if(!T.implanted) continue
|
||||||
var/loc_display = "Unknown"
|
var/loc_display = "Unknown"
|
||||||
var/mob/living/carbon/M = T.imp_in
|
var/mob/living/carbon/M = T.imp_in
|
||||||
if((M.z in config.station_levels) && !istype(M.loc, /turf/space))
|
if((M.z in current_map.station_levels) && !istype(M.loc, /turf/space))
|
||||||
var/turf/mob_loc = get_turf(M)
|
var/turf/mob_loc = get_turf(M)
|
||||||
loc_display = mob_loc.loc
|
loc_display = mob_loc.loc
|
||||||
if(T.malfunction)
|
if(T.malfunction)
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ var/specops_shuttle_timeleft = 0
|
|||||||
|
|
||||||
for(var/turf/T in get_area_turfs(end_location) )
|
for(var/turf/T in get_area_turfs(end_location) )
|
||||||
var/mob/M = locate(/mob) in T
|
var/mob/M = locate(/mob) in T
|
||||||
M << "<span class='notice'>You have arrived at [boss_name]. Operation has ended!</span>"
|
M << "<span class='notice'>You have arrived at [current_map.boss_name]. Operation has ended!</span>"
|
||||||
|
|
||||||
specops_shuttle_at_station = 0
|
specops_shuttle_at_station = 0
|
||||||
|
|
||||||
@@ -232,7 +232,7 @@ var/specops_shuttle_timeleft = 0
|
|||||||
|
|
||||||
for(var/turf/T in get_area_turfs(end_location) )
|
for(var/turf/T in get_area_turfs(end_location) )
|
||||||
var/mob/M = locate(/mob) in T
|
var/mob/M = locate(/mob) in T
|
||||||
M << "<span class='notice'>You have arrived to [station_name]. Commence operation!</span>"
|
M << "<span class='notice'>You have arrived to [current_map.station_name]. Commence operation!</span>"
|
||||||
|
|
||||||
for(var/obj/machinery/computer/specops_shuttle/S in SSmachinery.all_machines)
|
for(var/obj/machinery/computer/specops_shuttle/S in SSmachinery.all_machines)
|
||||||
S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY
|
S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY
|
||||||
@@ -267,8 +267,8 @@ var/specops_shuttle_timeleft = 0
|
|||||||
dat = temp
|
dat = temp
|
||||||
else
|
else
|
||||||
dat += {"<BR><B>Special Operations Shuttle</B><HR>
|
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>
|
\nLocation: [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "Departing for [current_map.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='?src=\ref[src];sendtodock=1'>Shuttle standing by...</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [station_name]</A><BR>\n<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='?src=\ref[src];sendtodock=1'>Shuttle standing by...</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [current_map.station_name]</A><BR>\n<BR>"]
|
||||||
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
|
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
|
||||||
|
|
||||||
user << browse(dat, "window=computer;size=575x450")
|
user << browse(dat, "window=computer;size=575x450")
|
||||||
@@ -286,14 +286,14 @@ var/specops_shuttle_timeleft = 0
|
|||||||
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
||||||
|
|
||||||
if (!specops_can_move())
|
if (!specops_can_move())
|
||||||
usr << "<span class='notice'>[boss_name] will not allow the Special Operations shuttle to return yet.</span>"
|
usr << "<span class='notice'>[current_map.boss_name] will not allow the Special Operations shuttle to return yet.</span>"
|
||||||
if(world.timeofday <= specops_shuttle_timereset)
|
if(world.timeofday <= specops_shuttle_timereset)
|
||||||
if (((world.timeofday - specops_shuttle_timereset)/10) > 60)
|
if (((world.timeofday - specops_shuttle_timereset)/10) > 60)
|
||||||
usr << "<span class='notice'>[-((world.timeofday - specops_shuttle_timereset)/10)/60] minutes remain!</span>"
|
usr << "<span class='notice'>[-((world.timeofday - specops_shuttle_timereset)/10)/60] minutes remain!</span>"
|
||||||
usr << "<span class='notice'>[-(world.timeofday - specops_shuttle_timereset)/10] seconds remain!</span>"
|
usr << "<span class='notice'>[-(world.timeofday - specops_shuttle_timereset)/10] seconds remain!</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
usr << "<span class='notice'>The Special Operations shuttle will arrive at [boss_name] in [(SPECOPS_MOVETIME/10)] seconds.</span>"
|
usr << "<span class='notice'>The Special Operations shuttle will arrive at [current_map.boss_name] in [(SPECOPS_MOVETIME/10)] seconds.</span>"
|
||||||
|
|
||||||
temp += "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
temp += "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
@@ -310,7 +310,7 @@ var/specops_shuttle_timeleft = 0
|
|||||||
usr << "<span class='warning'>The Special Operations shuttle is unable to leave.</span>"
|
usr << "<span class='warning'>The Special Operations shuttle is unable to leave.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
usr << "<span class='notice'>The Special Operations shuttle will arrive on [station_name] in [(SPECOPS_MOVETIME/10)] seconds.</span>"
|
usr << "<span class='notice'>The Special Operations shuttle will arrive on [current_map.station_name] in [(SPECOPS_MOVETIME/10)] seconds.</span>"
|
||||||
|
|
||||||
temp += "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
temp += "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ var/syndicate_elite_shuttle_timeleft = 0
|
|||||||
|
|
||||||
for(var/turf/T in get_area_turfs(end_location) )
|
for(var/turf/T in get_area_turfs(end_location) )
|
||||||
var/mob/M = locate(/mob) in T
|
var/mob/M = locate(/mob) in T
|
||||||
M << "<span class='warning'>You have arrived to [station_name]. Commence operation!</span>"
|
M << "<span class='warning'>You have arrived to [current_map.station_name]. Commence operation!</span>"
|
||||||
|
|
||||||
/proc/syndicate_elite_can_move()
|
/proc/syndicate_elite_can_move()
|
||||||
if(syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return 0
|
if(syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return 0
|
||||||
@@ -207,8 +207,8 @@ var/syndicate_elite_shuttle_timeleft = 0
|
|||||||
dat = temp
|
dat = temp
|
||||||
else
|
else
|
||||||
dat = {"<BR><B>Special Operations Shuttle</B><HR>
|
dat = {"<BR><B>Special Operations Shuttle</B><HR>
|
||||||
\nLocation: [syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "Departing for [station_name] in ([syndicate_elite_shuttle_timeleft] seconds.)":syndicate_elite_shuttle_at_station ? "Station":"Dock"]<BR>
|
\nLocation: [syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "Departing for [current_map.station_name] in ([syndicate_elite_shuttle_timeleft] seconds.)":syndicate_elite_shuttle_at_station ? "Station":"Dock"]<BR>
|
||||||
[syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "\n*The Syndicate Elite shuttle is already leaving.*<BR>\n<BR>":syndicate_elite_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Shuttle Offline</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [station_name]</A><BR>\n<BR>"]
|
[syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "\n*The Syndicate Elite shuttle is already leaving.*<BR>\n<BR>":syndicate_elite_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Shuttle Offline</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [current_map.station_name]</A><BR>\n<BR>"]
|
||||||
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
|
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
|
||||||
|
|
||||||
user << browse(dat, "window=computer;size=575x450")
|
user << browse(dat, "window=computer;size=575x450")
|
||||||
@@ -235,7 +235,7 @@ var/syndicate_elite_shuttle_timeleft = 0
|
|||||||
usr << "<span class='warning'>The Syndicate Elite shuttle is unable to leave.</span>"
|
usr << "<span class='warning'>The Syndicate Elite shuttle is unable to leave.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
usr << "<span class='notice'>The Syndicate Elite shuttle will arrive on [station_name] in [(SYNDICATE_ELITE_MOVETIME/10)] seconds.</span>"
|
usr << "<span class='notice'>The Syndicate Elite shuttle will arrive on [current_map.station_name] in [(SYNDICATE_ELITE_MOVETIME/10)] seconds.</span>"
|
||||||
|
|
||||||
temp = "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
temp = "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
|
|||||||
@@ -1152,7 +1152,7 @@ About the new airlock wires panel:
|
|||||||
/obj/machinery/door/airlock/Initialize(mapload, obj/structure/door_assembly/assembly = null)
|
/obj/machinery/door/airlock/Initialize(mapload, obj/structure/door_assembly/assembly = null)
|
||||||
var/on_admin_z = FALSE
|
var/on_admin_z = FALSE
|
||||||
//wires & hatch - this needs to be done up here so the hatch isn't generated by the parent Initialize().
|
//wires & hatch - this needs to be done up here so the hatch isn't generated by the parent Initialize().
|
||||||
if(loc && (z in config.admin_levels))
|
if(loc && (z in current_map.admin_levels))
|
||||||
on_admin_z = TRUE
|
on_admin_z = TRUE
|
||||||
hashatch = FALSE
|
hashatch = FALSE
|
||||||
|
|
||||||
|
|||||||
@@ -246,7 +246,7 @@
|
|||||||
pixel_x = DIR2PIXEL_X(dir)
|
pixel_x = DIR2PIXEL_X(dir)
|
||||||
pixel_y = DIR2PIXEL_Y(dir)
|
pixel_y = DIR2PIXEL_Y(dir)
|
||||||
|
|
||||||
if(z in config.contact_levels)
|
if(z in current_map.contact_levels)
|
||||||
set_security_level(security_level ? get_security_level() : "green")
|
set_security_level(security_level ? get_security_level() : "green")
|
||||||
|
|
||||||
// Convenience subtypes for mappers.
|
// Convenience subtypes for mappers.
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ var/const/HOLOPAD_MODE = RANGE_BASED
|
|||||||
last_request = world.time
|
last_request = world.time
|
||||||
var/list/holopadlist = list()
|
var/list/holopadlist = list()
|
||||||
for(var/obj/machinery/hologram/holopad/H in SSmachinery.processing_machines)
|
for(var/obj/machinery/hologram/holopad/H in SSmachinery.processing_machines)
|
||||||
if((H.z in map_levels) && H.operable())
|
if((H.z in current_map.map_levels) && H.operable())
|
||||||
holopadlist["[H.loc.loc.name]"] = H //Define a list and fill it with the area of every holopad in the world
|
holopadlist["[H.loc.loc.name]"] = H //Define a list and fill it with the area of every holopad in the world
|
||||||
holopadlist = sortAssoc(holopadlist)
|
holopadlist = sortAssoc(holopadlist)
|
||||||
var/temppad = input(user, "Which holopad would you like to contact?", "holopad list") as null|anything in holopadlist
|
var/temppad = input(user, "Which holopad would you like to contact?", "holopad list") as null|anything in holopadlist
|
||||||
|
|||||||
@@ -278,7 +278,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
dat+="<HR><B>Feed Security functions:</B><BR>"
|
dat+="<HR><B>Feed Security functions:</B><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>"
|
dat+="<BR><A href='?src=\ref[src];menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>"
|
||||||
dat+="<BR><A href='?src=\ref[src];menu_censor_story=1'>Censor Feed Stories</A>"
|
dat+="<BR><A href='?src=\ref[src];menu_censor_story=1'>Censor Feed Stories</A>"
|
||||||
dat+="<BR><A href='?src=\ref[src];menu_censor_channel=1'>Mark Feed Channel with [company_name] D-Notice</A>"
|
dat+="<BR><A href='?src=\ref[src];menu_censor_channel=1'>Mark Feed Channel with [current_map.company_name] D-Notice</A>"
|
||||||
dat+="<BR><HR>The newscaster recognises you as: <FONT COLOR='green'>[src.scanned_user]</FONT>"
|
dat+="<BR><HR>The newscaster recognises you as: <FONT COLOR='green'>[src.scanned_user]</FONT>"
|
||||||
if(1)
|
if(1)
|
||||||
dat+= "Station Feed Channels<HR>"
|
dat+= "Station Feed Channels<HR>"
|
||||||
@@ -359,7 +359,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
if(9)
|
if(9)
|
||||||
dat+="<B>[src.viewing_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[src.viewing_channel.author]</FONT>\]</FONT><HR>"
|
dat+="<B>[src.viewing_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[src.viewing_channel.author]</FONT>\]</FONT><HR>"
|
||||||
if(src.viewing_channel.censored)
|
if(src.viewing_channel.censored)
|
||||||
dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.<BR>"
|
dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [current_map.company_name] D-Notice.<BR>"
|
||||||
dat+="No further feed story additions are allowed while the D-Notice is in effect.</FONT><BR><BR>"
|
dat+="No further feed story additions are allowed while the D-Notice is in effect.</FONT><BR><BR>"
|
||||||
else
|
else
|
||||||
if( isemptylist(src.viewing_channel.messages) )
|
if( isemptylist(src.viewing_channel.messages) )
|
||||||
@@ -379,7 +379,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
dat+="<BR><HR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
|
dat+="<BR><HR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[1]'>Back</A>"
|
dat+="<BR><A href='?src=\ref[src];setScreen=[1]'>Back</A>"
|
||||||
if(10)
|
if(10)
|
||||||
dat+="<B>[company_name] Feed Censorship Tool</B><BR>"
|
dat+="<B>[current_map.company_name] Feed Censorship Tool</B><BR>"
|
||||||
dat+="<FONT SIZE=1>NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>"
|
dat+="<FONT SIZE=1>NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>"
|
||||||
dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.</FONT>"
|
dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.</FONT>"
|
||||||
dat+="<HR>Select Feed channel to get Stories from:<BR>"
|
dat+="<HR>Select Feed channel to get Stories from:<BR>"
|
||||||
@@ -390,7 +390,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
dat+="<A href='?src=\ref[src];pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
|
dat+="<A href='?src=\ref[src];pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A>"
|
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A>"
|
||||||
if(11)
|
if(11)
|
||||||
dat+="<B>[company_name] D-Notice Handler</B><HR>"
|
dat+="<B>[current_map.company_name] D-Notice Handler</B><HR>"
|
||||||
dat+="<FONT SIZE=1>A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's"
|
dat+="<FONT SIZE=1>A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's"
|
||||||
dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed"
|
dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed"
|
||||||
dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.</FONT><HR>"
|
dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.</FONT><HR>"
|
||||||
@@ -417,7 +417,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
dat+="<B>[src.viewing_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[src.viewing_channel.author]</FONT> \]</FONT><BR>"
|
dat+="<B>[src.viewing_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[src.viewing_channel.author]</FONT> \]</FONT><BR>"
|
||||||
dat+="Channel messages listed below. If you deem them dangerous to the station, you can <A href='?src=\ref[src];toggle_d_notice=\ref[src.viewing_channel]'>Bestow a D-Notice upon the channel</A>.<HR>"
|
dat+="Channel messages listed below. If you deem them dangerous to the station, you can <A href='?src=\ref[src];toggle_d_notice=\ref[src.viewing_channel]'>Bestow a D-Notice upon the channel</A>.<HR>"
|
||||||
if(src.viewing_channel.censored)
|
if(src.viewing_channel.censored)
|
||||||
dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.<BR>"
|
dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [current_map.company_name] D-Notice.<BR>"
|
||||||
dat+="No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>"
|
dat+="No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>"
|
||||||
else
|
else
|
||||||
if( isemptylist(src.viewing_channel.messages) )
|
if( isemptylist(src.viewing_channel.messages) )
|
||||||
@@ -623,7 +623,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
src.screen = 15
|
src.screen = 15
|
||||||
else
|
else
|
||||||
if(news_network.wanted_issue.is_admin_message)
|
if(news_network.wanted_issue.is_admin_message)
|
||||||
alert("The wanted issue has been distributed by a [company_name] higherup. You cannot edit it.","Ok")
|
alert("The wanted issue has been distributed by a [current_map.company_name] higherup. You cannot edit it.","Ok")
|
||||||
return
|
return
|
||||||
news_network.wanted_issue.author = src.channel_name
|
news_network.wanted_issue.author = src.channel_name
|
||||||
news_network.wanted_issue.body = src.msg
|
news_network.wanted_issue.body = src.msg
|
||||||
@@ -636,7 +636,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
|
|
||||||
else if(href_list["cancel_wanted"])
|
else if(href_list["cancel_wanted"])
|
||||||
if(news_network.wanted_issue.is_admin_message)
|
if(news_network.wanted_issue.is_admin_message)
|
||||||
alert("The wanted issue has been distributed by a [company_name] higherup. You cannot take it down.","Ok")
|
alert("The wanted issue has been distributed by a [current_map.company_name] higherup. You cannot take it down.","Ok")
|
||||||
return
|
return
|
||||||
var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel")
|
var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel")
|
||||||
if(choice=="Confirm")
|
if(choice=="Confirm")
|
||||||
@@ -652,7 +652,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
else if(href_list["censor_channel_author"])
|
else if(href_list["censor_channel_author"])
|
||||||
var/datum/feed_channel/FC = locate(href_list["censor_channel_author"])
|
var/datum/feed_channel/FC = locate(href_list["censor_channel_author"])
|
||||||
if(FC.is_admin_channel)
|
if(FC.is_admin_channel)
|
||||||
alert("This channel was created by a [company_name] Officer. You cannot censor it.","Ok")
|
alert("This channel was created by a [current_map.company_name] Officer. You cannot censor it.","Ok")
|
||||||
return
|
return
|
||||||
if(FC.author != "<B>\[REDACTED\]</B>")
|
if(FC.author != "<B>\[REDACTED\]</B>")
|
||||||
FC.backup_author = FC.author
|
FC.backup_author = FC.author
|
||||||
@@ -665,7 +665,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
else if(href_list["censor_channel_story_author"])
|
else if(href_list["censor_channel_story_author"])
|
||||||
var/datum/feed_message/MSG = locate(href_list["censor_channel_story_author"])
|
var/datum/feed_message/MSG = locate(href_list["censor_channel_story_author"])
|
||||||
if(MSG.is_admin_message)
|
if(MSG.is_admin_message)
|
||||||
alert("This message was created by a [company_name] Officer. You cannot censor its author.","Ok")
|
alert("This message was created by a [current_map.company_name] Officer. You cannot censor its author.","Ok")
|
||||||
return
|
return
|
||||||
if(MSG.author != "<B>\[REDACTED\]</B>")
|
if(MSG.author != "<B>\[REDACTED\]</B>")
|
||||||
MSG.backup_author = MSG.author
|
MSG.backup_author = MSG.author
|
||||||
@@ -678,7 +678,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
else if(href_list["censor_channel_story_body"])
|
else if(href_list["censor_channel_story_body"])
|
||||||
var/datum/feed_message/MSG = locate(href_list["censor_channel_story_body"])
|
var/datum/feed_message/MSG = locate(href_list["censor_channel_story_body"])
|
||||||
if(MSG.is_admin_message)
|
if(MSG.is_admin_message)
|
||||||
alert("This channel was created by a [company_name] Officer. You cannot censor it.","Ok")
|
alert("This channel was created by a [current_map.company_name] Officer. You cannot censor it.","Ok")
|
||||||
return
|
return
|
||||||
if(MSG.body != "<B>\[REDACTED\]</B>")
|
if(MSG.body != "<B>\[REDACTED\]</B>")
|
||||||
MSG.backup_body = MSG.body
|
MSG.backup_body = MSG.body
|
||||||
@@ -704,7 +704,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
else if(href_list["toggle_d_notice"])
|
else if(href_list["toggle_d_notice"])
|
||||||
var/datum/feed_channel/FC = locate(href_list["toggle_d_notice"])
|
var/datum/feed_channel/FC = locate(href_list["toggle_d_notice"])
|
||||||
if(FC.is_admin_channel)
|
if(FC.is_admin_channel)
|
||||||
alert("This channel was created by a [company_name] Officer. You cannot place a D-Notice upon it.","Ok")
|
alert("This channel was created by a [current_map.company_name] Officer. You cannot place a D-Notice upon it.","Ok")
|
||||||
return
|
return
|
||||||
FC.censored = !FC.censored
|
FC.censored = !FC.censored
|
||||||
FC.update()
|
FC.update()
|
||||||
@@ -829,7 +829,7 @@ obj/item/weapon/newspaper/attack_self(mob/user as mob)
|
|||||||
switch(screen)
|
switch(screen)
|
||||||
if(0) //Cover
|
if(0) //Cover
|
||||||
dat+="<DIV ALIGN='center'><B><FONT SIZE=6>The Griffon</FONT></B></div>"
|
dat+="<DIV ALIGN='center'><B><FONT SIZE=6>The Griffon</FONT></B></div>"
|
||||||
dat+="<DIV ALIGN='center'><FONT SIZE=2>[company_name]-standard newspaper, for use on [company_name]<5D> Space Facilities</FONT></div><HR>"
|
dat+="<DIV ALIGN='center'><FONT SIZE=2>[current_map.company_name]-standard newspaper, for use on [current_map.company_name]<5D> Space Facilities</FONT></div><HR>"
|
||||||
if(isemptylist(src.news_content))
|
if(isemptylist(src.news_content))
|
||||||
if(src.important_message)
|
if(src.important_message)
|
||||||
dat+="Contents:<BR><ul><B><FONT COLOR='red'>**</FONT>Important Security Announcement<FONT COLOR='red'>**</FONT></B> <FONT SIZE=2>\[page [src.pages+2]\]</FONT><BR></ul>"
|
dat+="Contents:<BR><ul><B><FONT COLOR='red'>**</FONT>Important Security Announcement<FONT COLOR='red'>**</FONT></B> <FONT SIZE=2>\[page [src.pages+2]\]</FONT><BR></ul>"
|
||||||
|
|||||||
@@ -351,7 +351,7 @@ var/bomb_set
|
|||||||
|
|
||||||
var/off_station = 0
|
var/off_station = 0
|
||||||
var/turf/bomb_location = get_turf(src)
|
var/turf/bomb_location = get_turf(src)
|
||||||
if(bomb_location && (bomb_location.z in config.station_levels))
|
if(bomb_location && (bomb_location.z in current_map.station_levels))
|
||||||
if( (bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE)) )
|
if( (bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE)) )
|
||||||
off_station = 1
|
off_station = 1
|
||||||
else
|
else
|
||||||
@@ -360,7 +360,7 @@ var/bomb_set
|
|||||||
if(SSticker.mode && SSticker.mode.name == "Mercenary")
|
if(SSticker.mode && SSticker.mode.name == "Mercenary")
|
||||||
var/obj/machinery/computer/shuttle_control/multi/syndicate/syndie_location = locate(/obj/machinery/computer/shuttle_control/multi/syndicate)
|
var/obj/machinery/computer/shuttle_control/multi/syndicate/syndie_location = locate(/obj/machinery/computer/shuttle_control/multi/syndicate)
|
||||||
if(syndie_location)
|
if(syndie_location)
|
||||||
SSticker.mode:syndies_didnt_escape = !(syndie_location.z in config.admin_levels)
|
SSticker.mode:syndies_didnt_escape = !(syndie_location.z in current_map.admin_levels)
|
||||||
SSticker.mode:nuke_off_station = off_station
|
SSticker.mode:nuke_off_station = off_station
|
||||||
|
|
||||||
SSticker.station_explosion_cinematic(off_station, null, GetConnectedZlevels(z))
|
SSticker.station_explosion_cinematic(off_station, null, GetConnectedZlevels(z))
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
var/turf/T = get_turf(R)
|
var/turf/T = get_turf(R)
|
||||||
if (!T)
|
if (!T)
|
||||||
continue
|
continue
|
||||||
if(!(T.z in config.player_levels))
|
if(!(T.z in current_map.player_levels))
|
||||||
continue
|
continue
|
||||||
var/tmpname = T.loc.name
|
var/tmpname = T.loc.name
|
||||||
if(areaindex[tmpname])
|
if(areaindex[tmpname])
|
||||||
|
|||||||
@@ -253,7 +253,7 @@
|
|||||||
sleep(15)
|
sleep(15)
|
||||||
visible_message("\icon[src] <b>[src]</b> beeps: \"User DB corrupted \[Code 0x00FA\]. Truncating data structure...\"")
|
visible_message("\icon[src] <b>[src]</b> beeps: \"User DB corrupted \[Code 0x00FA\]. Truncating data structure...\"")
|
||||||
sleep(30)
|
sleep(30)
|
||||||
visible_message("\icon[src] <b>[src]</b> beeps: \"User DB truncated. Please contact your [company_name] system operator for future assistance.\"")
|
visible_message("\icon[src] <b>[src]</b> beeps: \"User DB truncated. Please contact your [current_map.company_name] system operator for future assistance.\"")
|
||||||
req_access = null
|
req_access = null
|
||||||
emagged = 1
|
emagged = 1
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
var/area/A = get_area()
|
var/area/A = get_area()
|
||||||
var/text = {"<HTML><head><title>[src]</title></head><BODY>
|
var/text = {"<HTML><head><title>[src]</title></head><BODY>
|
||||||
<h2>[station_name()] blueprints</h2>
|
<h2>[station_name()] blueprints</h2>
|
||||||
<small>Property of [company_name]. For heads of staff only. Store in high-secure storage.</small><hr>
|
<small>Property of [current_map.company_name]. For heads of staff only. Store in high-secure storage.</small><hr>
|
||||||
"}
|
"}
|
||||||
switch (get_area_type())
|
switch (get_area_type())
|
||||||
if (AREA_SPACE)
|
if (AREA_SPACE)
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
<br>
|
<br>
|
||||||
<br><b>DIGITAL ARREST WARRANT</b></center>
|
<br><b>DIGITAL ARREST WARRANT</b></center>
|
||||||
<hr>
|
<hr>
|
||||||
<b>Facility:</b>__<u>[station_name]</u>__<b>Date:</b>__<u>[worlddate2text()]__</u>
|
<b>Facility:</b>__<u>[current_map.station_name]</u>__<b>Date:</b>__<u>[worlddate2text()]__</u>
|
||||||
<br>
|
<br>
|
||||||
<br><small><i>This document serves as a notice and permits the sanctioned arrest of
|
<br><small><i>This document serves as a notice and permits the sanctioned arrest of
|
||||||
the denoted employee of the NanoTrasen Civilian Branch of Operation by the
|
the denoted employee of the NanoTrasen Civilian Branch of Operation by the
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
<br>
|
<br>
|
||||||
<br><b>DIGITAL SEARCH WARRANT</b></center>
|
<br><b>DIGITAL SEARCH WARRANT</b></center>
|
||||||
<hr>
|
<hr>
|
||||||
<b>Facility:</b>__<u>[station_name]</u>__<b>Date:</b>__<u>[worlddate2text()]__</u></br>
|
<b>Facility:</b>__<u>[current_map.station_name]</u>__<b>Date:</b>__<u>[worlddate2text()]__</u></br>
|
||||||
<br>
|
<br>
|
||||||
<small><i>This document serves as notice and permits the sanctioned search of
|
<small><i>This document serves as notice and permits the sanctioned search of
|
||||||
the Suspect's person/belongings/premises and/or Department for any items and materials
|
the Suspect's person/belongings/premises and/or Department for any items and materials
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ AI MODULES
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(SSticker.mode && SSticker.mode.name == "blob")
|
if(SSticker.mode && SSticker.mode.name == "blob")
|
||||||
usr << "Law uploads have been disabled by [company_name]!"
|
usr << "Law uploads have been disabled by [current_map.company_name]!"
|
||||||
return
|
return
|
||||||
|
|
||||||
if (comp.current.stat == 2 || comp.current.control_disabled == 1)
|
if (comp.current.stat == 2 || comp.current.control_disabled == 1)
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
var/locked = 1
|
var/locked = 1
|
||||||
var/emagged = 0
|
var/emagged = 0
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/security/New()
|
/obj/item/weapon/circuitboard/security/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
network = station_networks
|
network = current_map.station_networks
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/security/engineering
|
/obj/item/weapon/circuitboard/security/engineering
|
||||||
name = T_BOARD("engineering camera monitor")
|
name = T_BOARD("engineering camera monitor")
|
||||||
|
|||||||
@@ -13,8 +13,6 @@
|
|||||||
|
|
||||||
/obj/item/weapon/circuitboard/holodeckcontrol/construct(var/obj/machinery/computer/HolodeckControl/HC)
|
/obj/item/weapon/circuitboard/holodeckcontrol/construct(var/obj/machinery/computer/HolodeckControl/HC)
|
||||||
if (..(HC))
|
if (..(HC))
|
||||||
HC.supported_programs = supported_programs.Copy()
|
|
||||||
HC.restricted_programs = restricted_programs.Copy()
|
|
||||||
if(linkedholodeck_area)
|
if(linkedholodeck_area)
|
||||||
HC.linkedholodeck = locate(linkedholodeck_area)
|
HC.linkedholodeck = locate(linkedholodeck_area)
|
||||||
if(last_to_emag)
|
if(last_to_emag)
|
||||||
@@ -25,7 +23,5 @@
|
|||||||
/obj/item/weapon/circuitboard/holodeckcontrol/deconstruct(var/obj/machinery/computer/HolodeckControl/HC)
|
/obj/item/weapon/circuitboard/holodeckcontrol/deconstruct(var/obj/machinery/computer/HolodeckControl/HC)
|
||||||
if (..(HC))
|
if (..(HC))
|
||||||
linkedholodeck_area = HC.linkedholodeck_area
|
linkedholodeck_area = HC.linkedholodeck_area
|
||||||
supported_programs = HC.supported_programs.Copy()
|
|
||||||
restricted_programs = HC.restricted_programs.Copy()
|
|
||||||
last_to_emag = HC.last_to_emag
|
last_to_emag = HC.last_to_emag
|
||||||
HC.emergencyShutdown()
|
HC.emergencyShutdown()
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
|||||||
/obj/item/weapon/implant/loyalty/get_data()
|
/obj/item/weapon/implant/loyalty/get_data()
|
||||||
. = {"
|
. = {"
|
||||||
<b>Implant Specifications:</b><BR>
|
<b>Implant Specifications:</b><BR>
|
||||||
<b>Name:</b> [company_name] Employee Management Implant<BR>
|
<b>Name:</b> [current_map.company_name] Employee Management Implant<BR>
|
||||||
<b>Life:</b> Ten years.<BR>
|
<b>Life:</b> Ten years.<BR>
|
||||||
<b>Important Notes:</b> Personnel injected with this device tend to be much more loyal to the company.<BR>
|
<b>Important Notes:</b> Personnel injected with this device tend to be much more loyal to the company.<BR>
|
||||||
<HR>
|
<HR>
|
||||||
@@ -355,11 +355,11 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
|||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
var/datum/antagonist/antag_data = get_antag_data(H.mind.special_role)
|
var/datum/antagonist/antag_data = get_antag_data(H.mind.special_role)
|
||||||
if(antag_data && (antag_data.flags & ANTAG_IMPLANT_IMMUNE))
|
if(antag_data && (antag_data.flags & ANTAG_IMPLANT_IMMUNE))
|
||||||
H.visible_message("[H] seems to resist the implant!", "You feel the corporate tendrils of [company_name] try to invade your mind!")
|
H.visible_message("[H] seems to resist the implant!", "You feel the corporate tendrils of [current_map.company_name] try to invade your mind!")
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
clear_antag_roles(H.mind, 1)
|
clear_antag_roles(H.mind, 1)
|
||||||
H << "<span class='notice'>You feel a surge of loyalty towards [company_name].</span>"
|
H << "<span class='notice'>You feel a surge of loyalty towards [current_map.company_name].</span>"
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/item/weapon/implant/loyalty/emp_act(severity)
|
/obj/item/weapon/implant/loyalty/emp_act(severity)
|
||||||
@@ -435,7 +435,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
|||||||
/obj/item/weapon/implant/death_alarm/get_data()
|
/obj/item/weapon/implant/death_alarm/get_data()
|
||||||
. = {"
|
. = {"
|
||||||
<b>Implant Specifications:</b><BR>
|
<b>Implant Specifications:</b><BR>
|
||||||
<b>Name:</b> [company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
|
<b>Name:</b> [current_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
|
||||||
<b>Life:</b> Activates upon death.<BR>
|
<b>Life:</b> Activates upon death.<BR>
|
||||||
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
|
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
|
||||||
<HR>
|
<HR>
|
||||||
@@ -510,7 +510,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
|||||||
/obj/item/weapon/implant/compressed/get_data()
|
/obj/item/weapon/implant/compressed/get_data()
|
||||||
. = {"
|
. = {"
|
||||||
<b>Implant Specifications:</b><BR>
|
<b>Implant Specifications:</b><BR>
|
||||||
<b>Name:</b> [company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
|
<b>Name:</b> [current_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
|
||||||
<b>Life:</b> Activates upon death.<BR>
|
<b>Life:</b> Activates upon death.<BR>
|
||||||
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
|
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
|
||||||
<HR>
|
<HR>
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
|
|
||||||
BITSET(H.hud_updateflag, IMPLOYAL_HUD)
|
BITSET(H.hud_updateflag, IMPLOYAL_HUD)
|
||||||
if(istype(src.imp, /obj/item/weapon/implanter/loyalty))
|
if(istype(src.imp, /obj/item/weapon/implanter/loyalty))
|
||||||
M << "<span class ='notice'You feel a sudden surge of loyalty to [company_name]!</span>"
|
M << "<span class ='notice'You feel a sudden surge of loyalty to [current_map.company_name]!</span>"
|
||||||
|
|
||||||
src.imp = null
|
src.imp = null
|
||||||
update()
|
update()
|
||||||
@@ -199,4 +199,4 @@
|
|||||||
ipc_tag = new_tag
|
ipc_tag = new_tag
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
new_tag.loc = src
|
new_tag.loc = src
|
||||||
update()
|
update()
|
||||||
|
|||||||
@@ -715,7 +715,7 @@
|
|||||||
<br>
|
<br>
|
||||||
<h1>The Oath</h1>
|
<h1>The Oath</h1>
|
||||||
|
|
||||||
<i>The Medical Oath sworn by recognised medical practitioners in the employ of [company_name]</i><br>
|
<i>The Medical Oath sworn by recognised medical practitioners in the employ of [current_map.company_name]</i><br>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>Now, as a new doctor, I solemnly promise that I will, to the best of my ability, serve humanity-caring for the sick, promoting good health, and alleviating pain and suffering.</li>
|
<li>Now, as a new doctor, I solemnly promise that I will, to the best of my ability, serve humanity-caring for the sick, promoting good health, and alleviating pain and suffering.</li>
|
||||||
@@ -1276,4 +1276,4 @@
|
|||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
"}
|
"}
|
||||||
|
|||||||
@@ -459,11 +459,11 @@
|
|||||||
glasstype = /obj/item/stack/material/glass/reinforced
|
glasstype = /obj/item/stack/material/glass/reinforced
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/window/New(Loc, constructed=0)
|
/obj/structure/window/Initialize(mapload, constructed = 0)
|
||||||
..()
|
. = ..()
|
||||||
|
|
||||||
//player-constructed windows
|
//player-constructed windows
|
||||||
if (constructed)
|
if (!mapload && constructed)
|
||||||
state = 0
|
state = 0
|
||||||
|
|
||||||
/obj/structure/window/reinforced/full
|
/obj/structure/window/reinforced/full
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ var/can_call_ert
|
|||||||
usr << "<span class='danger'>The round hasn't started yet!</span>"
|
usr << "<span class='danger'>The round hasn't started yet!</span>"
|
||||||
return
|
return
|
||||||
if(send_emergency_team)
|
if(send_emergency_team)
|
||||||
usr << "<span class='danger'>[boss_name] has already dispatched an emergency response team!</span>"
|
usr << "<span class='danger'>[current_map.boss_name] has already dispatched an emergency response team!</span>"
|
||||||
return
|
return
|
||||||
if(alert("Do you want to dispatch an Emergency Response Team?",,"Yes","No") != "Yes")
|
if(alert("Do you want to dispatch an Emergency Response Team?",,"Yes","No") != "Yes")
|
||||||
return
|
return
|
||||||
@@ -111,11 +111,11 @@ proc/trigger_armed_response_team(var/force = 0)
|
|||||||
|
|
||||||
// there's only a certain chance a team will be sent
|
// there's only a certain chance a team will be sent
|
||||||
if(!prob(send_team_chance))
|
if(!prob(send_team_chance))
|
||||||
command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. Unfortunately, we were unable to send one at this time.", "[boss_name]")
|
command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. Unfortunately, we were unable to send one at this time.", "[current_map.boss_name]")
|
||||||
can_call_ert = 0 // Only one call per round, ladies.
|
can_call_ert = 0 // Only one call per round, ladies.
|
||||||
return
|
return
|
||||||
|
|
||||||
command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. We will prepare and send one as soon as possible.", "[boss_name]")
|
command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. We will prepare and send one as soon as possible.", "[current_map.boss_name]")
|
||||||
|
|
||||||
can_call_ert = 0 // Only one call per round, gentleman.
|
can_call_ert = 0 // Only one call per round, gentleman.
|
||||||
send_emergency_team = 1
|
send_emergency_team = 1
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
|
|
||||||
if(!baseturf)
|
if(!baseturf)
|
||||||
// Hard-coding this for performance reasons.
|
// Hard-coding this for performance reasons.
|
||||||
baseturf = A.base_turf || base_turf_by_z["[z]"] || /turf/space
|
baseturf = A.base_turf || current_map.base_turf_by_z["[z]"] || /turf/space
|
||||||
|
|
||||||
if (A.flags & SPAWN_ROOF)
|
if (A.flags & SPAWN_ROOF)
|
||||||
spawn_roof()
|
spawn_roof()
|
||||||
|
|||||||
@@ -26,6 +26,8 @@
|
|||||||
/turf/proc/ChangeTurf(N, tell_universe = TRUE, force_lighting_update = FALSE)
|
/turf/proc/ChangeTurf(N, tell_universe = TRUE, force_lighting_update = FALSE)
|
||||||
if (!N)
|
if (!N)
|
||||||
return
|
return
|
||||||
|
if(!use_preloader && N == type) // Don't no-op if the map loader requires it to be reconstructed
|
||||||
|
return src
|
||||||
|
|
||||||
// This makes sure that turfs are not changed to space when there's a multi-z turf below
|
// This makes sure that turfs are not changed to space when there's a multi-z turf below
|
||||||
if(N == /turf/space && HasBelow(z))
|
if(N == /turf/space && HasBelow(z))
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
// Items that ask to be called every cycle.
|
// Items that ask to be called every cycle.
|
||||||
var/global/datum/datacore/data_core = null
|
var/global/datum/datacore/data_core = null
|
||||||
var/global/list/all_areas = list()
|
|
||||||
var/global/list/processing_power_items = list()
|
var/global/list/processing_power_items = list()
|
||||||
var/global/list/med_hud_users = list() // List of all entities using a medical HUD.
|
var/global/list/med_hud_users = list() // List of all entities using a medical HUD.
|
||||||
var/global/list/sec_hud_users = list() // List of all entities using a security HUD.
|
var/global/list/sec_hud_users = list() // List of all entities using a security HUD.
|
||||||
@@ -25,21 +24,10 @@ var/global/list/global_map = null
|
|||||||
// Noises made when hit while typing.
|
// Noises made when hit while typing.
|
||||||
var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF")
|
var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF")
|
||||||
|
|
||||||
//Map levels for the crew suit sensors. Make sure you update this for different maps.
|
|
||||||
var/list/map_levels = list(3,4,6)
|
|
||||||
|
|
||||||
|
|
||||||
var/diary = null
|
var/diary = null
|
||||||
var/diary_runtime = null
|
var/diary_runtime = null
|
||||||
var/diary_date_string = null
|
var/diary_date_string = null
|
||||||
var/href_logfile = null
|
var/href_logfile = null
|
||||||
var/station_name = "NSS Aurora"
|
|
||||||
var/station_short = "Aurora"
|
|
||||||
var/const/dock_name = "NTCC Odin"
|
|
||||||
var/const/boss_name = "Central Command"
|
|
||||||
var/const/boss_short = "Centcom"
|
|
||||||
var/const/company_name = "NanoTrasen"
|
|
||||||
var/const/company_short = "NT"
|
|
||||||
var/game_version = "Aurorastation"
|
var/game_version = "Aurorastation"
|
||||||
var/changelog_hash = ""
|
var/changelog_hash = ""
|
||||||
var/game_year = (text2num(time2text(world.realtime, "YYYY")) + 442)
|
var/game_year = (text2num(time2text(world.realtime, "YYYY")) + 442)
|
||||||
|
|||||||
@@ -338,8 +338,11 @@ proc/admin_notice(var/message, var/rights)
|
|||||||
if (!istype(src,/datum/admins))
|
if (!istype(src,/datum/admins))
|
||||||
usr << "Error: you are not an admin!"
|
usr << "Error: you are not an admin!"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if (!admincaster_signature)
|
||||||
|
update_newscaster_sig()
|
||||||
var/dat
|
var/dat
|
||||||
dat = text("<HEAD><TITLE>Admin Newscaster</TITLE></HEAD><H3>Admin Newscaster Unit</H3>")
|
dat = "<HEAD><TITLE>Admin Newscaster</TITLE></HEAD><H3>Admin Newscaster Unit</H3>"
|
||||||
|
|
||||||
switch(admincaster_screen)
|
switch(admincaster_screen)
|
||||||
if(0)
|
if(0)
|
||||||
@@ -363,7 +366,7 @@ proc/admin_notice(var/message, var/rights)
|
|||||||
dat+={"<HR><B>Feed Security functions:</B><BR>
|
dat+={"<HR><B>Feed Security functions:</B><BR>
|
||||||
<BR><A href='?src=\ref[src];ac_menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>
|
<BR><A href='?src=\ref[src];ac_menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>
|
||||||
<BR><A href='?src=\ref[src];ac_menu_censor_story=1'>Censor Feed Stories</A>
|
<BR><A href='?src=\ref[src];ac_menu_censor_story=1'>Censor Feed Stories</A>
|
||||||
<BR><A href='?src=\ref[src];ac_menu_censor_channel=1'>Mark Feed Channel with [company_name] D-Notice (disables and locks the channel.</A>
|
<BR><A href='?src=\ref[src];ac_menu_censor_channel=1'>Mark Feed Channel with [current_map.company_name] D-Notice (disables and locks the channel.</A>
|
||||||
<BR><HR><A href='?src=\ref[src];ac_set_signature=1'>The newscaster recognises you as:<BR> <FONT COLOR='green'>[src.admincaster_signature]</FONT></A>
|
<BR><HR><A href='?src=\ref[src];ac_set_signature=1'>The newscaster recognises you as:<BR> <FONT COLOR='green'>[src.admincaster_signature]</FONT></A>
|
||||||
"}
|
"}
|
||||||
if(1)
|
if(1)
|
||||||
@@ -429,7 +432,7 @@ proc/admin_notice(var/message, var/rights)
|
|||||||
dat+="<B>[src.admincaster_feed_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[src.admincaster_feed_channel.author]</FONT>\]</FONT><HR>"
|
dat+="<B>[src.admincaster_feed_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[src.admincaster_feed_channel.author]</FONT>\]</FONT><HR>"
|
||||||
if(src.admincaster_feed_channel.censored)
|
if(src.admincaster_feed_channel.censored)
|
||||||
dat+={"
|
dat+={"
|
||||||
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.<BR>
|
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [current_map.company_name] D-Notice.<BR>
|
||||||
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
|
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
|
||||||
"}
|
"}
|
||||||
else
|
else
|
||||||
@@ -450,7 +453,7 @@ proc/admin_notice(var/message, var/rights)
|
|||||||
"}
|
"}
|
||||||
if(10)
|
if(10)
|
||||||
dat+={"
|
dat+={"
|
||||||
<B>[company_name] Feed Censorship Tool</B><BR>
|
<B>[current_map.company_name] Feed Censorship Tool</B><BR>
|
||||||
<FONT SIZE=1>NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>
|
<FONT SIZE=1>NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>
|
||||||
Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.</FONT>
|
Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.</FONT>
|
||||||
<HR>Select Feed channel to get Stories from:<BR>
|
<HR>Select Feed channel to get Stories from:<BR>
|
||||||
@@ -463,7 +466,7 @@ proc/admin_notice(var/message, var/rights)
|
|||||||
dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Cancel</A>"
|
dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Cancel</A>"
|
||||||
if(11)
|
if(11)
|
||||||
dat+={"
|
dat+={"
|
||||||
<B>[company_name] D-Notice Handler</B><HR>
|
<B>[current_map.company_name] D-Notice Handler</B><HR>
|
||||||
<FONT SIZE=1>A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's
|
<FONT SIZE=1>A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's
|
||||||
morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed
|
morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed
|
||||||
stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.</FONT><HR>
|
stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.</FONT><HR>
|
||||||
@@ -496,7 +499,7 @@ proc/admin_notice(var/message, var/rights)
|
|||||||
"}
|
"}
|
||||||
if(src.admincaster_feed_channel.censored)
|
if(src.admincaster_feed_channel.censored)
|
||||||
dat+={"
|
dat+={"
|
||||||
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.<BR>
|
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [current_map.company_name] D-Notice.<BR>
|
||||||
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
|
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
|
||||||
"}
|
"}
|
||||||
else
|
else
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user