Merge branch 'master' into upstream-merge-36242
This commit is contained in:
@@ -198,4 +198,3 @@ tools/MapAtmosFixer/MapAtmosFixer/obj/x86/Debug/MapAtmosFixer.csproj.CoreCompile
|
||||
|
||||
#GitHub Atom
|
||||
.atom-build.json
|
||||
cfg/admin.txt
|
||||
|
||||
+44
-10
@@ -1,16 +1,50 @@
|
||||
Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255.
|
||||
|
||||
The latest database version is 4.0; The query to update the schema revision table is:
|
||||
The latest database version is 4.1; The query to update the schema revision table is:
|
||||
|
||||
INSERT INTO `schema_revision` (`major`, `minor`) VALUES (4, 0);
|
||||
INSERT INTO `schema_revision` (`major`, `minor`) VALUES (4, 1);
|
||||
or
|
||||
INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (4, 0);
|
||||
INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (4, 1);
|
||||
|
||||
In any query remember to add a prefix to the table names if you use one.
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
12 November 2017, by Jordie0608
|
||||
Version 4.1, 3 February 2018, by Jordie0608
|
||||
Modified tables 'admin', 'admin_log' and 'admin_rank', removing unnecessary columns and adding support for excluding rights flags from admin ranks.
|
||||
This change was made to enable use of sql-based admin loading.
|
||||
To import your existing admins and ranks run the included script 'admin_import_2018-02-03.py', see the file for use instructions.
|
||||
Legacy file-based admin loading is still supported, if you want to continue using it the script doesn't need to be run.
|
||||
|
||||
ALTER TABLE `admin`
|
||||
CHANGE COLUMN `rank` `rank` VARCHAR(32) NOT NULL AFTER `ckey`,
|
||||
DROP COLUMN `id`,
|
||||
DROP COLUMN `level`,
|
||||
DROP COLUMN `flags`,
|
||||
DROP COLUMN `email`,
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`ckey`);
|
||||
|
||||
ALTER TABLE `admin_log`
|
||||
CHANGE COLUMN `datetime` `datetime` DATETIME NOT NULL AFTER `id`,
|
||||
CHANGE COLUMN `adminckey` `adminckey` VARCHAR(32) NOT NULL AFTER `datetime`,
|
||||
CHANGE COLUMN `adminip` `adminip` INT(10) UNSIGNED NOT NULL AFTER `adminckey`,
|
||||
ADD COLUMN `operation` ENUM('add admin','remove admin','change admin rank','add rank','remove rank','change rank flags') NOT NULL AFTER `adminip`,
|
||||
CHANGE COLUMN `log` `log` VARCHAR(1000) NOT NULL AFTER `operation`;
|
||||
|
||||
ALTER TABLE `admin_ranks`
|
||||
CHANGE COLUMN `rank` `rank` VARCHAR(32) NOT NULL FIRST,
|
||||
CHANGE COLUMN `flags` `flags` SMALLINT UNSIGNED NOT NULL AFTER `rank`,
|
||||
ADD COLUMN `exclude_flags` SMALLINT UNSIGNED NOT NULL AFTER `flags`,
|
||||
ADD COLUMN `can_edit_flags` SMALLINT(5) UNSIGNED NOT NULL AFTER `exclude_flags`,
|
||||
DROP COLUMN `id`,
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`rank`);
|
||||
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
Version 4.0, 12 November 2017, by Jordie0608
|
||||
Modified feedback table to use json, a python script is used to migrate data to this new format.
|
||||
|
||||
See the file 'feedback_conversion_2017-11-12.py' for instructions on how to use the script.
|
||||
@@ -29,7 +63,7 @@ CREATE TABLE `feedback` (
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
28 August 2017, by MrStonedOne
|
||||
Version 3.4, 28 August 2017, by MrStonedOne
|
||||
Modified table 'messages', adding a deleted column and editing all indexes to include it
|
||||
|
||||
ALTER TABLE `messages`
|
||||
@@ -43,7 +77,7 @@ ADD INDEX `idx_msg_type_ckey_time_odr` (`type`,`targetckey`,`timestamp`, `delete
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
25 August 2017, by Jordie0608
|
||||
Version 3.3, 25 August 2017, by Jordie0608
|
||||
|
||||
Modified tables 'connection_log', 'legacy_population', 'library', 'messages' and 'player' to add additional 'round_id' tracking in various forms and 'server_ip' and 'server_port' to the table 'messages'.
|
||||
|
||||
@@ -55,7 +89,7 @@ ALTER TABLE `player` ADD COLUMN `firstseen_round_id` INT(11) UNSIGNED NOT NULL A
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
18 August 2017, by Cyberboss and nfreader
|
||||
Version 3.2, 18 August 2017, by Cyberboss and nfreader
|
||||
|
||||
Modified table 'death', adding the columns `last_words` and 'suicide'.
|
||||
|
||||
@@ -67,7 +101,7 @@ Remember to add a prefix to the table name if you use them.
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
20th July 2017, by Shadowlight213
|
||||
Version 3.1, 20th July 2017, by Shadowlight213
|
||||
Added role_time table to track time spent playing departments.
|
||||
Also, added flags column to the player table.
|
||||
|
||||
@@ -79,7 +113,7 @@ Remember to add a prefix to the table name if you use them.
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
28 June 2017, by oranges
|
||||
Version 3.0, 28 June 2017, by oranges
|
||||
Added schema_revision to store the current db revision, why start at 3.0?
|
||||
|
||||
because:
|
||||
@@ -319,7 +353,7 @@ Remember to add prefix to the table name if you use them.
|
||||
|
||||
Modified table 'memo', removing 'id' column and making 'ckey' primary.
|
||||
|
||||
ALTER TABLE `memo` DROP COLUMN `id`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`)
|
||||
ALTER TABLE `memo` DROP COLUMN `id`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`)
|
||||
|
||||
Remember to add prefix to the table name if you use them.
|
||||
|
||||
|
||||
+13
-15
@@ -17,13 +17,9 @@ DROP TABLE IF EXISTS `admin`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `admin` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ckey` varchar(32) NOT NULL,
|
||||
`rank` varchar(32) NOT NULL DEFAULT 'Administrator',
|
||||
`level` int(2) NOT NULL DEFAULT '0',
|
||||
`flags` int(16) NOT NULL DEFAULT '0',
|
||||
`email` varchar(45) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
`rank` varchar(32) NOT NULL,
|
||||
PRIMARY KEY (`ckey`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
@@ -38,8 +34,9 @@ CREATE TABLE `admin_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`datetime` datetime NOT NULL,
|
||||
`adminckey` varchar(32) NOT NULL,
|
||||
`adminip` varchar(18) NOT NULL,
|
||||
`log` text NOT NULL,
|
||||
`adminip` int(10) unsigned NOT NULL,
|
||||
`operation` enum('add admin','remove admin','change admin rank','add rank','remove rank','change rank flags') NOT NULL,
|
||||
`log` varchar(1000) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
@@ -52,11 +49,12 @@ DROP TABLE IF EXISTS `admin_ranks`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `admin_ranks` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`rank` varchar(40) NOT NULL,
|
||||
`flags` int(16) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
|
||||
`rank` varchar(32) NOT NULL,
|
||||
`flags` smallint(5) unsigned NOT NULL,
|
||||
`exclude_flags` smallint(5) unsigned NOT NULL,
|
||||
`can_edit_flags` smallint(5) unsigned NOT NULL,
|
||||
PRIMARY KEY (`rank`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
@@ -271,11 +269,11 @@ DROP TABLE IF EXISTS `role_time`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
|
||||
CREATE TABLE `role_time`
|
||||
CREATE TABLE `role_time`
|
||||
( `ckey` VARCHAR(32) NOT NULL ,
|
||||
`job` VARCHAR(32) NOT NULL ,
|
||||
`minutes` INT UNSIGNED NOT NULL,
|
||||
PRIMARY KEY (`ckey`, `job`)
|
||||
PRIMARY KEY (`ckey`, `job`)
|
||||
) ENGINE = InnoDB;
|
||||
|
||||
--
|
||||
|
||||
@@ -17,13 +17,9 @@ DROP TABLE IF EXISTS `SS13_admin`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `SS13_admin` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ckey` varchar(32) NOT NULL,
|
||||
`rank` varchar(32) NOT NULL DEFAULT 'Administrator',
|
||||
`level` int(2) NOT NULL DEFAULT '0',
|
||||
`flags` int(16) NOT NULL DEFAULT '0',
|
||||
`email` varchar(45) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
`rank` varchar(32) NOT NULL,
|
||||
PRIMARY KEY (`ckey`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
@@ -38,8 +34,9 @@ CREATE TABLE `SS13_admin_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`datetime` datetime NOT NULL,
|
||||
`adminckey` varchar(32) NOT NULL,
|
||||
`adminip` varchar(18) NOT NULL,
|
||||
`log` text NOT NULL,
|
||||
`adminip` int(10) unsigned NOT NULL,
|
||||
`operation` enum('add admin','remove admin','change admin rank','add rank','remove rank','change rank flags') NOT NULL,
|
||||
`log` varchar(1000) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
@@ -52,11 +49,12 @@ DROP TABLE IF EXISTS `SS13_admin_ranks`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `SS13_admin_ranks` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`rank` varchar(40) NOT NULL,
|
||||
`flags` int(16) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
|
||||
`rank` varchar(32) NOT NULL,
|
||||
`flags` smallint(5) unsigned NOT NULL,
|
||||
`exclude_flags` smallint(5) unsigned NOT NULL,
|
||||
`can_edit_flags` smallint(5) unsigned NOT NULL,
|
||||
PRIMARY KEY (`rank`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
@@ -271,11 +269,11 @@ DROP TABLE IF EXISTS `SS13_role_time`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
|
||||
CREATE TABLE `SS13_role_time`
|
||||
CREATE TABLE `SS13_role_time`
|
||||
( `ckey` VARCHAR(32) NOT NULL ,
|
||||
`job` VARCHAR(32) NOT NULL ,
|
||||
`minutes` INT UNSIGNED NOT NULL,
|
||||
PRIMARY KEY (`ckey`, `job`)
|
||||
PRIMARY KEY (`ckey`, `job`)
|
||||
) ENGINE = InnoDB;
|
||||
|
||||
--
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
/area/ruin/space/abandoned_tele)
|
||||
"r" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/ruin/space/abandoned_tele)
|
||||
"s" = (
|
||||
|
||||
@@ -1840,12 +1840,12 @@
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/space/has_grav/ancientstation/deltacorridor)
|
||||
"fu" = (
|
||||
/obj/machinery/rnd/protolathe,
|
||||
/obj/machinery/rnd/production/protolathe,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/ruin/space/has_grav/ancientstation/rnd)
|
||||
"fv" = (
|
||||
/obj/machinery/rnd/circuit_imprinter,
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/item/reagent_containers/dropper,
|
||||
/turf/open/floor/plasteel/white,
|
||||
|
||||
@@ -2375,7 +2375,7 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/hotel/workroom)
|
||||
"hr" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/hotel/dock)
|
||||
"hs" = (
|
||||
|
||||
@@ -6091,7 +6091,7 @@
|
||||
"mJ" = (
|
||||
/obj/structure/sign/warning/vacuum{
|
||||
desc = "A beacon used by a teleporter.";
|
||||
icon = 'icons/obj/radio.dmi';
|
||||
icon = 'icons/obj/device.dmi';
|
||||
icon_state = "beacon";
|
||||
name = "tracking beacon"
|
||||
},
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
"az" = (
|
||||
/obj/structure/sign/warning/vacuum{
|
||||
desc = "A beacon used by a teleporter.";
|
||||
icon = 'icons/obj/radio.dmi';
|
||||
icon = 'icons/obj/device.dmi';
|
||||
icon_state = "beacon";
|
||||
name = "tracking beacon"
|
||||
},
|
||||
@@ -3397,7 +3397,7 @@
|
||||
},
|
||||
/area/awaymission/undergroundoutpost45/research)
|
||||
"hD" = (
|
||||
/obj/machinery/rnd/protolathe,
|
||||
/obj/machinery/rnd/production/protolathe,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
@@ -3670,7 +3670,7 @@
|
||||
},
|
||||
/area/awaymission/undergroundoutpost45/research)
|
||||
"ii" = (
|
||||
/obj/machinery/rnd/circuit_imprinter,
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/turf/open/floor/plasteel{
|
||||
heat_capacity = 1e+006
|
||||
},
|
||||
|
||||
@@ -37291,6 +37291,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/chair/comfy/black,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"bPz" = (
|
||||
@@ -37317,13 +37318,15 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"bPA" = (
|
||||
/obj/machinery/computer/camera_advanced/xenobio{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"bPB" = (
|
||||
@@ -37413,10 +37416,10 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"bPI" = (
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/reagent_dispensers/watertank/high,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"bPJ" = (
|
||||
@@ -38354,9 +38357,6 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"bRZ" = (
|
||||
@@ -40062,9 +40062,6 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"bWn" = (
|
||||
@@ -41536,9 +41533,6 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"bZX" = (
|
||||
@@ -43967,18 +43961,12 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/aft)
|
||||
"cgl" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 2;
|
||||
external_pressure_bound = 120;
|
||||
name = "killroom vent"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "xenobio0";
|
||||
name = "containment blast door"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/engine,
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"cgm" = (
|
||||
/obj/structure/cable{
|
||||
@@ -44376,21 +44364,9 @@
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/starboard/aft)
|
||||
"chs" = (
|
||||
/obj/machinery/door/window/northleft{
|
||||
base_state = "right";
|
||||
dir = 8;
|
||||
icon_state = "right";
|
||||
name = "Containment Pen";
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "xenobio0";
|
||||
name = "containment blast door"
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/obj/machinery/light,
|
||||
/obj/machinery/atmospherics/pipe/manifold/general/visible,
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"chv" = (
|
||||
/obj/structure/cable{
|
||||
@@ -47996,8 +47972,8 @@
|
||||
/area/space/nearstation)
|
||||
"csk" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/science/xenobiology)
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
"csl" = (
|
||||
/obj/structure/transit_tube/curved{
|
||||
dir = 4
|
||||
@@ -50012,6 +49988,15 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/hallway/secondary/entry)
|
||||
"cyA" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"cyC" = (
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
@@ -52386,6 +52371,13 @@
|
||||
dir = 6
|
||||
},
|
||||
/area/security/brig)
|
||||
"dkZ" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"dAS" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -52425,6 +52417,24 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/circuit)
|
||||
"eeP" = (
|
||||
/obj/machinery/light,
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"eiu" = (
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
|
||||
target_temperature = 80;
|
||||
dir = 2;
|
||||
on = 1
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"eiQ" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
@@ -52539,26 +52549,6 @@
|
||||
/obj/machinery/bookbinder,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/circuit)
|
||||
"fmO" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/button/door{
|
||||
id = "xenobio7";
|
||||
name = "Containment Blast Doors";
|
||||
pixel_y = 4;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"fmW" = (
|
||||
/obj/effect/turf_decal/loading_area/white,
|
||||
/obj/effect/turf_decal/stripes/white/corner{
|
||||
@@ -52580,6 +52570,13 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/hydrofloor,
|
||||
/area/hallway/secondary/service)
|
||||
"foQ" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/chair/comfy/black,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"fsC" = (
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/structure/cable{
|
||||
@@ -52763,6 +52760,11 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port)
|
||||
"hfn" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/sign/warning/biohazard,
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"hgP" = (
|
||||
/obj/structure/closet/bombcloset/security,
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
@@ -52886,6 +52888,20 @@
|
||||
dir = 4
|
||||
},
|
||||
/area/security/brig)
|
||||
"iRn" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 2;
|
||||
external_pressure_bound = 140;
|
||||
pressure_checks = 0;
|
||||
name = "killroom vent"
|
||||
},
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Xenobiology Kill Room";
|
||||
dir = 4;
|
||||
network = list("ss13","rd")
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"iZz" = (
|
||||
/obj/structure/table/wood/poker,
|
||||
/turf/open/floor/wood,
|
||||
@@ -52959,6 +52975,9 @@
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/wood,
|
||||
/area/maintenance/bar)
|
||||
"jxR" = (
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"jyX" = (
|
||||
/obj/structure/sign/warning/securearea,
|
||||
/turf/closed/wall/r_wall,
|
||||
@@ -53112,6 +53131,20 @@
|
||||
icon_state = "wood-broken7"
|
||||
},
|
||||
/area/maintenance/bar)
|
||||
"kGu" = (
|
||||
/obj/effect/turf_decal/stripes/corner{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"kHd" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"kHN" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"kNw" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
@@ -53158,6 +53191,11 @@
|
||||
dir = 10
|
||||
},
|
||||
/area/security/brig)
|
||||
"lqu" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"lxM" = (
|
||||
/obj/structure/sign/poster/random{
|
||||
pixel_y = -32
|
||||
@@ -53234,6 +53272,12 @@
|
||||
},
|
||||
/turf/open/floor/noslip,
|
||||
/area/crew_quarters/cryopod)
|
||||
"mmW" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"mnl" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 1
|
||||
@@ -53307,18 +53351,6 @@
|
||||
/obj/structure/falsewall,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/bar)
|
||||
"mHe" = (
|
||||
/obj/structure/cable,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "xenobio0";
|
||||
name = "containment blast door"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/engine,
|
||||
/area/science/xenobiology)
|
||||
"mLm" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
@@ -53382,26 +53414,11 @@
|
||||
dir = 8
|
||||
},
|
||||
/area/security/brig)
|
||||
"nvr" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/button/door{
|
||||
id = "xenobio0";
|
||||
name = "Containment Blast Doors";
|
||||
pixel_y = 4;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/light,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"nuC" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/aft)
|
||||
"nwx" = (
|
||||
/obj/machinery/disposal/bin,
|
||||
/obj/structure/disposalpipe/trunk,
|
||||
@@ -53511,6 +53528,15 @@
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/bar)
|
||||
"ock" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/clothing/shoes/winterboots,
|
||||
/obj/item/clothing/suit/hooded/wintercoat,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"ody" = (
|
||||
/obj/effect/spawner/lootdrop/keg,
|
||||
/turf/open/floor/wood{
|
||||
@@ -53642,6 +53668,12 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ai_monitored/security/armory)
|
||||
"plc" = (
|
||||
/obj/structure/sign/poster/official/safety_internals{
|
||||
pixel_x = -32
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"plH" = (
|
||||
/obj/machinery/door/window/brigdoor/security/cell{
|
||||
dir = 4;
|
||||
@@ -53832,6 +53864,18 @@
|
||||
"qWq" = (
|
||||
/turf/closed/wall,
|
||||
/area/space)
|
||||
"rgF" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/folder/white,
|
||||
/obj/item/pen,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"rhJ" = (
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
@@ -53892,6 +53936,17 @@
|
||||
/obj/machinery/power/grounding_rod,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/engine/engineering)
|
||||
"rPW" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/research{
|
||||
name = "Kill Chamber";
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"rWu" = (
|
||||
/turf/open/floor/wood{
|
||||
icon_state = "wood-broken6"
|
||||
@@ -53952,25 +54007,6 @@
|
||||
/obj/item/shovel/spade,
|
||||
/turf/open/floor/plasteel/hydrofloor,
|
||||
/area/hallway/secondary/service)
|
||||
"syV" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 2;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 5;
|
||||
pixel_y = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"sAz" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
@@ -96729,7 +96765,7 @@ bDb
|
||||
bDb
|
||||
bDb
|
||||
bDb
|
||||
bDb
|
||||
cNW
|
||||
cNW
|
||||
cQB
|
||||
czY
|
||||
@@ -96982,11 +97018,11 @@ bJN
|
||||
bRT
|
||||
bEm
|
||||
bEm
|
||||
bJN
|
||||
bRT
|
||||
bEm
|
||||
bEm
|
||||
bDb
|
||||
iRn
|
||||
eeP
|
||||
bDb
|
||||
aaa
|
||||
cNW
|
||||
cQB
|
||||
czY
|
||||
@@ -97225,7 +97261,7 @@ bJJ
|
||||
bKY
|
||||
bMi
|
||||
bNo
|
||||
bOx
|
||||
foQ
|
||||
bPA
|
||||
bJN
|
||||
bRU
|
||||
@@ -97239,12 +97275,12 @@ bJN
|
||||
bRU
|
||||
bEm
|
||||
bEm
|
||||
bJN
|
||||
bRU
|
||||
bEm
|
||||
bEm
|
||||
bDb
|
||||
cNW
|
||||
jxR
|
||||
mmW
|
||||
kHd
|
||||
aaa
|
||||
cOT
|
||||
cQB
|
||||
czY
|
||||
cOT
|
||||
@@ -97496,12 +97532,12 @@ bJN
|
||||
bRU
|
||||
bEm
|
||||
cBz
|
||||
bJN
|
||||
bRU
|
||||
bEm
|
||||
cBz
|
||||
bDb
|
||||
cNW
|
||||
jxR
|
||||
mmW
|
||||
kHd
|
||||
aaa
|
||||
cOT
|
||||
cQB
|
||||
czY
|
||||
cOT
|
||||
@@ -97740,7 +97776,7 @@ bLa
|
||||
bMi
|
||||
bNo
|
||||
bPy
|
||||
syV
|
||||
bPA
|
||||
bJN
|
||||
bRW
|
||||
bTb
|
||||
@@ -97753,11 +97789,11 @@ bJN
|
||||
bZV
|
||||
caV
|
||||
cbS
|
||||
bJN
|
||||
bDb
|
||||
cgl
|
||||
chs
|
||||
mHe
|
||||
bDb
|
||||
aaa
|
||||
cNW
|
||||
cQB
|
||||
czY
|
||||
@@ -98010,11 +98046,11 @@ bVi
|
||||
bRV
|
||||
bTa
|
||||
cbR
|
||||
bVi
|
||||
bRV
|
||||
bTa
|
||||
nvr
|
||||
bDb
|
||||
hfn
|
||||
rPW
|
||||
bDb
|
||||
aaa
|
||||
cNW
|
||||
cBN
|
||||
czY
|
||||
@@ -98267,12 +98303,12 @@ bZa
|
||||
bMi
|
||||
bMi
|
||||
bRZ
|
||||
bZa
|
||||
bMi
|
||||
bMi
|
||||
bRZ
|
||||
bDb
|
||||
cNW
|
||||
plc
|
||||
kGu
|
||||
cyA
|
||||
kHd
|
||||
aaf
|
||||
cOT
|
||||
cQB
|
||||
cAa
|
||||
cOT
|
||||
@@ -98523,13 +98559,13 @@ bUf
|
||||
bTc
|
||||
bRX
|
||||
bTc
|
||||
bUf
|
||||
bTc
|
||||
bRX
|
||||
bTc
|
||||
cbT
|
||||
kHN
|
||||
kHN
|
||||
dkZ
|
||||
lqu
|
||||
csk
|
||||
cko
|
||||
nuC
|
||||
czU
|
||||
czZ
|
||||
cOT
|
||||
@@ -98781,12 +98817,12 @@ bZb
|
||||
bRZ
|
||||
bMi
|
||||
bMi
|
||||
bZb
|
||||
bRZ
|
||||
bMi
|
||||
bMi
|
||||
bDb
|
||||
cNW
|
||||
ock
|
||||
eiu
|
||||
rgF
|
||||
kHd
|
||||
aaf
|
||||
cOT
|
||||
cgm
|
||||
czY
|
||||
cOT
|
||||
@@ -99038,11 +99074,11 @@ bVi
|
||||
bZW
|
||||
bTd
|
||||
bUg
|
||||
bVi
|
||||
fmO
|
||||
bTd
|
||||
bUg
|
||||
bDb
|
||||
bDb
|
||||
bDb
|
||||
bDb
|
||||
aaa
|
||||
cNW
|
||||
cgm
|
||||
czY
|
||||
@@ -99295,11 +99331,11 @@ bJN
|
||||
bZX
|
||||
caW
|
||||
cbU
|
||||
bJN
|
||||
bWn
|
||||
bXg
|
||||
bYh
|
||||
bDb
|
||||
aaf
|
||||
aaf
|
||||
aaa
|
||||
aaa
|
||||
cNW
|
||||
cgm
|
||||
czY
|
||||
@@ -99552,12 +99588,12 @@ bJN
|
||||
bEm
|
||||
bEm
|
||||
bRU
|
||||
bJN
|
||||
bEm
|
||||
bEm
|
||||
bRU
|
||||
bDb
|
||||
cNW
|
||||
aaf
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
cOT
|
||||
cgm
|
||||
czY
|
||||
cOT
|
||||
@@ -99809,12 +99845,12 @@ bJN
|
||||
bEm
|
||||
bEm
|
||||
bRU
|
||||
bJN
|
||||
bEm
|
||||
bEm
|
||||
bRU
|
||||
bDb
|
||||
cNW
|
||||
aaf
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
cOT
|
||||
cgm
|
||||
czY
|
||||
cOT
|
||||
@@ -100066,12 +100102,12 @@ bJN
|
||||
bEm
|
||||
bEm
|
||||
bUi
|
||||
bJN
|
||||
bEm
|
||||
bEm
|
||||
bUi
|
||||
bDb
|
||||
cNW
|
||||
aaf
|
||||
aaf
|
||||
aaa
|
||||
aaa
|
||||
cOT
|
||||
cgm
|
||||
czY
|
||||
cOT
|
||||
@@ -100324,10 +100360,10 @@ bDb
|
||||
bDb
|
||||
bDb
|
||||
bDb
|
||||
bDb
|
||||
bDb
|
||||
bDb
|
||||
bDb
|
||||
cNW
|
||||
cNW
|
||||
cNW
|
||||
cNW
|
||||
cNW
|
||||
czX
|
||||
cAc
|
||||
|
||||
@@ -67542,9 +67542,7 @@
|
||||
name = "xenobiology camera";
|
||||
network = list("ss13","xeno","rd")
|
||||
},
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/plasteel/vault/killroom,
|
||||
/area/science/xenobiology)
|
||||
"cNj" = (
|
||||
/obj/structure/closet/crate{
|
||||
@@ -69718,6 +69716,7 @@
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/general/hidden,
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"cSg" = (
|
||||
@@ -69728,7 +69727,7 @@
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/airlock/research/glass{
|
||||
name = "Xenobiology Isolation Pin";
|
||||
name = "Xenobiology Kill Room";
|
||||
req_access_txt = "47"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -70518,19 +70517,13 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"cTR" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 2;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 5;
|
||||
pixel_y = 5
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
|
||||
dir = 1;
|
||||
min_temperature = 80;
|
||||
on = 1;
|
||||
target_temperature = 80
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"cTS" = (
|
||||
@@ -72226,6 +72219,9 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"cXm" = (
|
||||
/obj/machinery/computer/camera_advanced/xenobio{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/status_display{
|
||||
pixel_x = 32
|
||||
},
|
||||
@@ -100786,6 +100782,12 @@
|
||||
dir = 8
|
||||
},
|
||||
/area/science/misc_lab)
|
||||
"gPz" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/vault/killroom,
|
||||
/area/science/xenobiology)
|
||||
"gQS" = (
|
||||
/turf/open/floor/plasteel/white/side{
|
||||
dir = 9
|
||||
@@ -100927,10 +100929,21 @@
|
||||
"jKb" = (
|
||||
/turf/open/space,
|
||||
/area/space/nearstation)
|
||||
"jRX" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 2;
|
||||
external_pressure_bound = 120;
|
||||
name = "server vent"
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"kwx" = (
|
||||
/obj/effect/turf_decal/loading_area,
|
||||
/turf/open/floor/plasteel/whitepurple/corner,
|
||||
/area/science/research)
|
||||
"kwP" = (
|
||||
/turf/open/floor/plasteel/vault/killroom,
|
||||
/area/science/xenobiology)
|
||||
"kyo" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -101036,6 +101049,21 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/circuit/green,
|
||||
/area/science/research/abandoned)
|
||||
"npb" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/hidden{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel/vault/killroom,
|
||||
/area/science/xenobiology)
|
||||
"nGW" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 2;
|
||||
external_pressure_bound = 140;
|
||||
name = "killroom vent";
|
||||
pressure_checks = 0
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"nJG" = (
|
||||
/obj/structure/lattice,
|
||||
/turf/open/space/basic,
|
||||
@@ -101070,6 +101098,9 @@
|
||||
dir = 1
|
||||
},
|
||||
/area/science/circuit)
|
||||
"pqQ" = (
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"psi" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/bodycontainer/morgue{
|
||||
@@ -101191,12 +101222,11 @@
|
||||
dir = 5
|
||||
},
|
||||
/area/medical/morgue)
|
||||
"vyI" = (
|
||||
/obj/machinery/status_display{
|
||||
pixel_x = 32
|
||||
"vOd" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/general/hidden{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/reagent_dispensers/watertank/high,
|
||||
/turf/open/floor/circuit/green,
|
||||
/turf/open/floor/plasteel/vault/killroom,
|
||||
/area/science/xenobiology)
|
||||
"wei" = (
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
@@ -132544,9 +132574,9 @@ cHA
|
||||
cjp
|
||||
cKl
|
||||
cLI
|
||||
cNd
|
||||
cNd
|
||||
cNd
|
||||
kwP
|
||||
kwP
|
||||
kwP
|
||||
cNc
|
||||
cTQ
|
||||
cVI
|
||||
@@ -132801,9 +132831,9 @@ cHB
|
||||
cjp
|
||||
cKj
|
||||
cLI
|
||||
cNd
|
||||
cNd
|
||||
cNd
|
||||
kwP
|
||||
nGW
|
||||
vOd
|
||||
cSf
|
||||
cTR
|
||||
cVP
|
||||
@@ -133059,8 +133089,8 @@ caE
|
||||
cKm
|
||||
cLI
|
||||
cNi
|
||||
cNd
|
||||
cNd
|
||||
pqQ
|
||||
gPz
|
||||
cSg
|
||||
cTS
|
||||
cVQ
|
||||
@@ -133315,9 +133345,9 @@ cHB
|
||||
cjp
|
||||
cKk
|
||||
cLI
|
||||
cNd
|
||||
cNd
|
||||
cNd
|
||||
kwP
|
||||
jRX
|
||||
npb
|
||||
cSh
|
||||
cTT
|
||||
cVR
|
||||
@@ -133572,9 +133602,9 @@ cHA
|
||||
ceb
|
||||
cKk
|
||||
cLI
|
||||
cNd
|
||||
cNd
|
||||
cNd
|
||||
kwP
|
||||
kwP
|
||||
kwP
|
||||
cNc
|
||||
cTU
|
||||
cVS
|
||||
@@ -133837,7 +133867,7 @@ cTV
|
||||
cVT
|
||||
cXm
|
||||
cZb
|
||||
vyI
|
||||
cXm
|
||||
dcu
|
||||
ddV
|
||||
cMY
|
||||
|
||||
@@ -35104,6 +35104,9 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"bvU" = (
|
||||
@@ -40974,8 +40977,11 @@
|
||||
/turf/open/floor/plasteel/bar,
|
||||
/area/crew_quarters/bar)
|
||||
"bIv" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/area/science/xenobiology)
|
||||
"bIw" = (
|
||||
/obj/machinery/light,
|
||||
/obj/machinery/camera{
|
||||
@@ -71575,7 +71581,7 @@
|
||||
"cTT" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/area/science/xenobiology)
|
||||
"cUH" = (
|
||||
/obj/structure/table/optable,
|
||||
/turf/open/floor/plasteel/white,
|
||||
@@ -72192,6 +72198,9 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
|
||||
dir = 6
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
@@ -72201,14 +72210,15 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/area/science/xenobiology)
|
||||
"daS" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg2"
|
||||
},
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"daW" = (
|
||||
/obj/machinery/button/door{
|
||||
id = "engpa";
|
||||
@@ -72343,10 +72353,8 @@
|
||||
"dbv" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/light/small,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg2"
|
||||
},
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"dbE" = (
|
||||
/obj/machinery/plantgenes,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -72753,18 +72761,15 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"dcm" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/computer/camera_advanced/xenobio,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 2;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 5;
|
||||
pixel_y = 5
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
@@ -72788,6 +72793,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/computer/camera_advanced/xenobio,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
@@ -72857,6 +72863,9 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 10
|
||||
},
|
||||
/obj/structure/chair/comfy/black{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
},
|
||||
@@ -72871,6 +72880,9 @@
|
||||
/area/science/xenobiology)
|
||||
"dcx" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/chair/comfy/black{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 6
|
||||
},
|
||||
@@ -72948,13 +72960,18 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"dcJ" = (
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 4;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/extinguisher,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/corner{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/reagent_dispensers/watertank/high,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"dcK" = (
|
||||
@@ -73380,8 +73397,11 @@
|
||||
},
|
||||
/obj/structure/chair,
|
||||
/obj/item/cigbutt,
|
||||
/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/area/science/xenobiology)
|
||||
"ddy" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
@@ -73389,8 +73409,9 @@
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"ddz" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"ddA" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/door/firedoor,
|
||||
@@ -73400,15 +73421,15 @@
|
||||
opacity = 0;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"ddC" = (
|
||||
/obj/structure/disposalpipe/trunk{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/disposaloutlet,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/area/science/xenobiology)
|
||||
"ddE" = (
|
||||
/obj/effect/landmark/start/cook,
|
||||
/obj/machinery/holopad,
|
||||
@@ -74831,6 +74852,9 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/research{
|
||||
glass = 1;
|
||||
name = "Slime Euthanization Chamber";
|
||||
@@ -74841,7 +74865,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/area/science/xenobiology)
|
||||
"dmr" = (
|
||||
/obj/machinery/door/airlock/research{
|
||||
glass = 1;
|
||||
@@ -74853,7 +74877,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
/area/science/xenobiology)
|
||||
"dmD" = (
|
||||
/obj/structure/displaycase/trophy,
|
||||
/turf/open/floor/wood,
|
||||
@@ -76142,6 +76166,15 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/hallway/secondary/entry)
|
||||
"dYv" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 1;
|
||||
external_pressure_bound = 140;
|
||||
name = "server vent";
|
||||
pressure_checks = 0
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"dZD" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
@@ -76257,6 +76290,9 @@
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"ffK" = (
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"fjy" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 5
|
||||
@@ -76303,6 +76339,14 @@
|
||||
/obj/machinery/libraryscanner,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/circuit)
|
||||
"gha" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 1;
|
||||
external_pressure_bound = 120;
|
||||
name = "server vent"
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"gix" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/structure/cable/yellow{
|
||||
@@ -76455,6 +76499,15 @@
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/engine/engineering)
|
||||
"jwP" = (
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Xenobiology Lab - Kill Chamber";
|
||||
dir = 1;
|
||||
network = list("ss13","rd","xeno");
|
||||
start_active = 1
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"jwW" = (
|
||||
/turf/closed/wall/mineral/plastitanium,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
@@ -76485,10 +76538,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/port/aft)
|
||||
"jzw" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"jFx" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
req_access_txt = "13"
|
||||
@@ -76905,6 +76954,15 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard)
|
||||
"pPA" = (
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
|
||||
dir = 1;
|
||||
name = "euthanization chamber freezer";
|
||||
on = 1;
|
||||
target_temperature = 80
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"pSX" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Auxiliary Escape Airlock"
|
||||
@@ -110259,7 +110317,7 @@ cRi
|
||||
cRi
|
||||
cRi
|
||||
daP
|
||||
cTA
|
||||
pPA
|
||||
dlV
|
||||
aaa
|
||||
aaa
|
||||
@@ -110516,10 +110574,10 @@ daF
|
||||
daJ
|
||||
cRi
|
||||
bvT
|
||||
dlV
|
||||
dlV
|
||||
dlV
|
||||
dlV
|
||||
cRi
|
||||
cRi
|
||||
cRi
|
||||
cRi
|
||||
aaa
|
||||
aai
|
||||
aaa
|
||||
@@ -110773,10 +110831,10 @@ cSn
|
||||
cSn
|
||||
cRi
|
||||
dmq
|
||||
dlV
|
||||
ddj
|
||||
ddj
|
||||
dlV
|
||||
cRi
|
||||
ffK
|
||||
ffK
|
||||
cRi
|
||||
aaf
|
||||
aag
|
||||
aaa
|
||||
@@ -111031,9 +111089,9 @@ cSn
|
||||
cRi
|
||||
ddx
|
||||
ddz
|
||||
ddj
|
||||
ddj
|
||||
jzw
|
||||
dYv
|
||||
ffK
|
||||
cRe
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -111545,9 +111603,9 @@ daK
|
||||
cRi
|
||||
bIv
|
||||
ddz
|
||||
ddj
|
||||
ddj
|
||||
jzw
|
||||
gha
|
||||
ffK
|
||||
cRe
|
||||
aaa
|
||||
aaf
|
||||
aaa
|
||||
@@ -111801,10 +111859,10 @@ cSn
|
||||
daN
|
||||
cRi
|
||||
dmr
|
||||
dlV
|
||||
ddj
|
||||
ddj
|
||||
dlV
|
||||
cRi
|
||||
ffK
|
||||
jwP
|
||||
cRi
|
||||
aaa
|
||||
aag
|
||||
aaa
|
||||
@@ -112058,10 +112116,10 @@ daI
|
||||
daM
|
||||
cRi
|
||||
cTA
|
||||
dlV
|
||||
dlV
|
||||
dlV
|
||||
dlV
|
||||
cRi
|
||||
cRi
|
||||
cRi
|
||||
cRi
|
||||
aaf
|
||||
aag
|
||||
aaa
|
||||
|
||||
@@ -12686,7 +12686,6 @@
|
||||
/area/storage/primary)
|
||||
"aGk" = (
|
||||
/obj/machinery/vending/boozeomat{
|
||||
products = list(/obj/item/reagent_containers/food/drinks/bottle/rum = 1, /obj/item/reagent_containers/food/drinks/bottle/wine = 1, /obj/item/reagent_containers/food/drinks/ale = 1, /obj/item/reagent_containers/food/drinks/drinkingglass = 6, /obj/item/reagent_containers/food/drinks/ice = 1, /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 4);
|
||||
req_access_txt = "20"
|
||||
},
|
||||
/turf/open/floor/plasteel/vault{
|
||||
@@ -27811,6 +27810,9 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"brQ" = (
|
||||
/obj/machinery/computer/camera_advanced/xenobio{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Xenobiology Port";
|
||||
dir = 8;
|
||||
@@ -28602,11 +28604,11 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"btD" = (
|
||||
/turf/open/floor/plating,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/xenobiology)
|
||||
"btE" = (
|
||||
/obj/effect/decal/remains/xeno,
|
||||
/turf/open/floor/plating,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/xenobiology)
|
||||
"btF" = (
|
||||
/obj/structure/chair{
|
||||
@@ -29227,7 +29229,12 @@
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Xenobiology Kill Room";
|
||||
dir = 8;
|
||||
network = list("ss13","rd")
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/xenobiology)
|
||||
"bva" = (
|
||||
/turf/closed/wall,
|
||||
@@ -31294,22 +31301,16 @@
|
||||
/turf/open/floor/plasteel/whitepurple/side,
|
||||
/area/science/xenobiology)
|
||||
"bzi" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 4;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 2;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 5;
|
||||
pixel_y = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/obj/structure/table/glass,
|
||||
/turf/open/floor/plasteel/whitepurple/side,
|
||||
/area/science/xenobiology)
|
||||
"bzj" = (
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/obj/machinery/requests_console{
|
||||
department = "Science";
|
||||
departmentType = 2;
|
||||
@@ -31317,7 +31318,6 @@
|
||||
pixel_x = 32;
|
||||
receive_ore_updates = 1
|
||||
},
|
||||
/obj/structure/reagent_dispensers/watertank/high,
|
||||
/turf/open/floor/plasteel/whitepurple/side,
|
||||
/area/science/xenobiology)
|
||||
"bzk" = (
|
||||
@@ -33793,8 +33793,7 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/vending/wallmed{
|
||||
pixel_y = 28;
|
||||
products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/spray/medical/sterilizer = 1)
|
||||
pixel_y = 28
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on,
|
||||
/obj/effect/landmark/blobstart,
|
||||
@@ -35454,8 +35453,7 @@
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/vending/wallmed{
|
||||
pixel_y = 28;
|
||||
products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/spray/medical/sterilizer = 1)
|
||||
pixel_y = 28
|
||||
},
|
||||
/turf/open/floor/plasteel/whiteblue/side{
|
||||
dir = 1
|
||||
@@ -36332,8 +36330,7 @@
|
||||
/area/medical/medbay/central)
|
||||
"bKw" = (
|
||||
/obj/machinery/vending/wallmed{
|
||||
pixel_y = 28;
|
||||
products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/spray/medical/sterilizer = 1)
|
||||
pixel_y = 28
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 4
|
||||
@@ -49831,7 +49828,6 @@
|
||||
/area/maintenance/department/engine)
|
||||
"cBk" = (
|
||||
/obj/machinery/vending/boozeomat{
|
||||
products = list(/obj/item/reagent_containers/food/drinks/bottle/whiskey = 1, /obj/item/reagent_containers/food/drinks/bottle/absinthe = 1, /obj/item/reagent_containers/food/drinks/bottle/limejuice = 1, /obj/item/reagent_containers/food/drinks/bottle/cream = 1, /obj/item/reagent_containers/food/drinks/soda_cans/tonic = 1, /obj/item/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/reagent_containers/food/drinks/ice = 3, /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 6, /obj/item/reagent_containers/food/drinks/flask = 1);
|
||||
req_access_txt = "0"
|
||||
},
|
||||
/turf/closed/wall,
|
||||
@@ -50435,6 +50431,12 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"uPm" = (
|
||||
/obj/machinery/computer/camera_advanced/xenobio{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"vpU" = (
|
||||
/turf/open/floor/plasteel/darkpurple,
|
||||
/area/crew_quarters/cryopod)
|
||||
@@ -93281,7 +93283,7 @@ bkE
|
||||
aht
|
||||
bnd
|
||||
boh
|
||||
bpn
|
||||
uPm
|
||||
bqx
|
||||
brQ
|
||||
btr
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -112,6 +112,30 @@
|
||||
/obj/structure/cable,
|
||||
/turf/open/space,
|
||||
/area/solar/starboard/fore)
|
||||
"aap" = (
|
||||
/turf/open/floor/plasteel/vault/killroom,
|
||||
/area/science/xenobiology)
|
||||
"aaq" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Xenobiology - Killroom Chamber";
|
||||
dir = 2;
|
||||
name = "xenobiology camera";
|
||||
network = list("ss13","xeno","rd")
|
||||
},
|
||||
/turf/open/floor/plasteel/vault/killroom,
|
||||
/area/science/xenobiology)
|
||||
"aar" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 2;
|
||||
external_pressure_bound = 140;
|
||||
name = "killroom vent";
|
||||
pressure_checks = 0
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"aas" = (
|
||||
/obj/docking_port/stationary/random{
|
||||
id = "pod_lavaland1";
|
||||
@@ -131,6 +155,35 @@
|
||||
/obj/effect/landmark/xeno_spawn,
|
||||
/turf/open/space,
|
||||
/area/solar/starboard/fore)
|
||||
"aav" = (
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"aaw" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 2;
|
||||
external_pressure_bound = 120;
|
||||
name = "server vent"
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"aax" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/general/hidden{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/vault/killroom,
|
||||
/area/science/xenobiology)
|
||||
"aay" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/vault/killroom,
|
||||
/area/science/xenobiology)
|
||||
"aaz" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/hidden{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel/vault/killroom,
|
||||
/area/science/xenobiology)
|
||||
"aaA" = (
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/pod_1)
|
||||
@@ -149,6 +202,52 @@
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/space,
|
||||
/area/solar/starboard/fore)
|
||||
"aaF" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/general/hidden,
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"aaG" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/airlock/research/glass{
|
||||
name = "Xenobiology Kill Room";
|
||||
req_access_txt = "47"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 2
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"aaH" = (
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
|
||||
dir = 1;
|
||||
min_temperature = 80;
|
||||
on = 1;
|
||||
target_temperature = 80
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"aaI" = (
|
||||
/obj/machinery/computer/camera_advanced/xenobio{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/status_display{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/floor/circuit/green,
|
||||
/area/science/xenobiology)
|
||||
"aaO" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
@@ -1312,7 +1411,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"afV" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
@@ -26364,7 +26463,7 @@
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/box,
|
||||
/obj/machinery/rnd/protolathe/department/security,
|
||||
/obj/machinery/rnd/production/techfab/department/security,
|
||||
/turf/open/floor/plasteel/red/side{
|
||||
dir = 1
|
||||
},
|
||||
@@ -35704,7 +35803,7 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 5
|
||||
},
|
||||
@@ -45268,7 +45367,7 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 4
|
||||
},
|
||||
@@ -46320,7 +46419,7 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 5
|
||||
},
|
||||
@@ -47105,7 +47204,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/starboard)
|
||||
"bXz" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
@@ -53410,7 +53509,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/courtroom)
|
||||
"cjY" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/neutral/side{
|
||||
dir = 8
|
||||
},
|
||||
@@ -58216,7 +58315,7 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
@@ -60886,7 +60985,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ai_monitored/storage/eva)
|
||||
"czU" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/neutral,
|
||||
/area/ai_monitored/storage/eva)
|
||||
"czV" = (
|
||||
@@ -61257,7 +61356,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"cAL" = (
|
||||
/obj/machinery/rnd/protolathe/department/engineering,
|
||||
/obj/machinery/rnd/production/protolathe/department/engineering,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 9
|
||||
},
|
||||
@@ -67532,20 +67631,6 @@
|
||||
dir = 5
|
||||
},
|
||||
/area/science/xenobiology)
|
||||
"cNi" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Xenobiology - Killroom Chamber";
|
||||
dir = 2;
|
||||
name = "xenobiology camera";
|
||||
network = list("ss13","xeno","rd")
|
||||
},
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 5
|
||||
},
|
||||
/area/science/xenobiology)
|
||||
"cNj" = (
|
||||
/obj/structure/closet/crate{
|
||||
icon_state = "crateopen"
|
||||
@@ -69232,8 +69317,8 @@
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/medical,
|
||||
/obj/effect/turf_decal/stripes/box,
|
||||
/obj/machinery/rnd/production/techfab/department/medical,
|
||||
/turf/open/floor/plasteel/neutral/side{
|
||||
dir = 4
|
||||
},
|
||||
@@ -69713,32 +69798,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"cSf" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"cSg" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/airlock/research/glass{
|
||||
name = "Xenobiology Isolation Pin";
|
||||
req_access_txt = "47"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 2
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"cSh" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-8"
|
||||
@@ -70517,22 +70576,6 @@
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"cTR" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 2;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 5;
|
||||
pixel_y = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"cTS" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
@@ -72225,12 +72268,6 @@
|
||||
/obj/effect/landmark/event_spawn,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"cXm" = (
|
||||
/obj/machinery/status_display{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/floor/circuit/green,
|
||||
/area/science/xenobiology)
|
||||
"cXn" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/camera{
|
||||
@@ -74856,7 +74893,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 5
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/science,
|
||||
/obj/machinery/rnd/production/protolathe/department/science,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/lab)
|
||||
"dcL" = (
|
||||
@@ -75510,7 +75547,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 6
|
||||
},
|
||||
/obj/machinery/rnd/circuit_imprinter/department/science,
|
||||
/obj/machinery/rnd/production/circuit_imprinter/department/science,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/lab)
|
||||
"dek" = (
|
||||
@@ -77248,7 +77285,7 @@
|
||||
/turf/open/floor/plasteel/neutral,
|
||||
/area/science/research)
|
||||
"dhZ" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
@@ -77486,7 +77523,7 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plasteel/whiteblue,
|
||||
/area/medical/medbay/central)
|
||||
@@ -77818,7 +77855,7 @@
|
||||
/area/science/circuit)
|
||||
"djq" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/rnd/protolathe/department/science,
|
||||
/obj/machinery/rnd/production/protolathe/department/science,
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
@@ -88762,7 +88799,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/robotics/lab)
|
||||
"dGe" = (
|
||||
/obj/machinery/rnd/circuit_imprinter,
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/obj/item/reagent_containers/glass/beaker/sulphuric,
|
||||
/obj/machinery/airalarm{
|
||||
dir = 8;
|
||||
@@ -89819,7 +89856,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/effect/landmark/blobstart,
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -91509,7 +91546,7 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/test_area)
|
||||
"dLF" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/test_area)
|
||||
@@ -93879,7 +93916,7 @@
|
||||
/turf/open/floor/plasteel/neutral,
|
||||
/area/hallway/primary/aft)
|
||||
"dQR" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/neutral,
|
||||
/area/hallway/primary/aft)
|
||||
"dQU" = (
|
||||
@@ -100613,7 +100650,7 @@
|
||||
/turf/open/floor/plasteel/caution,
|
||||
/area/engine/engineering)
|
||||
"ehw" = (
|
||||
/obj/machinery/rnd/circuit_imprinter,
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
@@ -100634,8 +100671,8 @@
|
||||
name = "Station Intercom";
|
||||
pixel_x = -26
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/service,
|
||||
/obj/effect/turf_decal/stripes/box,
|
||||
/obj/machinery/rnd/production/techfab/department/service,
|
||||
/turf/open/floor/plasteel/neutral/corner{
|
||||
dir = 1
|
||||
},
|
||||
@@ -100665,7 +100702,7 @@
|
||||
/area/hallway/secondary/service)
|
||||
"ehJ" = (
|
||||
/obj/effect/turf_decal/stripes/box,
|
||||
/obj/machinery/rnd/protolathe/department/cargo,
|
||||
/obj/machinery/rnd/production/techfab/department/cargo,
|
||||
/turf/open/floor/plasteel/brown,
|
||||
/area/quartermaster/office)
|
||||
"ehK" = (
|
||||
@@ -101123,13 +101160,6 @@
|
||||
"saw" = (
|
||||
/turf/closed/wall,
|
||||
/area/science/circuit)
|
||||
"shc" = (
|
||||
/obj/machinery/status_display{
|
||||
pixel_x = 32
|
||||
},
|
||||
/obj/structure/reagent_dispensers/watertank/high,
|
||||
/turf/open/floor/circuit/green,
|
||||
/area/science/xenobiology)
|
||||
"tdp" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 2
|
||||
@@ -132544,9 +132574,9 @@ cHA
|
||||
cjp
|
||||
cKl
|
||||
cLI
|
||||
cNd
|
||||
cNd
|
||||
cNd
|
||||
aap
|
||||
aap
|
||||
aap
|
||||
cNc
|
||||
cTQ
|
||||
cVI
|
||||
@@ -132801,11 +132831,11 @@ cHB
|
||||
cjp
|
||||
cKj
|
||||
cLI
|
||||
cNd
|
||||
cNd
|
||||
cNd
|
||||
cSf
|
||||
cTR
|
||||
aap
|
||||
aar
|
||||
aax
|
||||
aaF
|
||||
aaH
|
||||
cVP
|
||||
cXi
|
||||
cYX
|
||||
@@ -133058,10 +133088,10 @@ cHD
|
||||
caE
|
||||
cKm
|
||||
cLI
|
||||
cNi
|
||||
cNd
|
||||
cNd
|
||||
cSg
|
||||
aaq
|
||||
aav
|
||||
aay
|
||||
aaG
|
||||
cTS
|
||||
cVQ
|
||||
cXj
|
||||
@@ -133315,9 +133345,9 @@ cHB
|
||||
cjp
|
||||
cKk
|
||||
cLI
|
||||
cNd
|
||||
cNd
|
||||
cNd
|
||||
aap
|
||||
aaw
|
||||
aaz
|
||||
cSh
|
||||
cTT
|
||||
cVR
|
||||
@@ -133572,9 +133602,9 @@ cHA
|
||||
ceb
|
||||
cKk
|
||||
cLI
|
||||
cNd
|
||||
cNd
|
||||
cNd
|
||||
aap
|
||||
aap
|
||||
aap
|
||||
cNc
|
||||
cTU
|
||||
cVS
|
||||
@@ -133835,9 +133865,9 @@ cMY
|
||||
cMY
|
||||
cTV
|
||||
cVT
|
||||
cXm
|
||||
aaI
|
||||
cZb
|
||||
shc
|
||||
aaI
|
||||
dcu
|
||||
ddV
|
||||
cMY
|
||||
|
||||
@@ -2,10 +2,48 @@
|
||||
"aaa" = (
|
||||
/turf/open/space/basic,
|
||||
/area/space)
|
||||
"aab" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/computer/camera_advanced/xenobio,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"aac" = (
|
||||
/obj/effect/landmark/carpspawn,
|
||||
/turf/open/space,
|
||||
/area/space)
|
||||
"aad" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/computer/camera_advanced/xenobio,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"aae" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 10
|
||||
},
|
||||
/obj/structure/chair/comfy/black{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"aaf" = (
|
||||
/obj/structure/lattice,
|
||||
/turf/open/space,
|
||||
@@ -298,9 +336,46 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/security/prison)
|
||||
"aaU" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/chair/comfy/black{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"aaV" = (
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/pod_2)
|
||||
"aaW" = (
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 4;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/extinguisher,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/corner{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"aaX" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
|
||||
dir = 6
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"aaY" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -335,6 +410,15 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plating,
|
||||
/area/security/prison)
|
||||
"abd" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"abe" = (
|
||||
/turf/closed/wall,
|
||||
/area/security/prison)
|
||||
@@ -754,6 +838,24 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"acd" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/research{
|
||||
glass = 1;
|
||||
name = "Slime Euthanization Chamber";
|
||||
opacity = 0;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"ace" = (
|
||||
/obj/machinery/vending/sustenance{
|
||||
desc = "A vending machine normally reserved for work camps.";
|
||||
@@ -2007,6 +2109,17 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"aeD" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/chair,
|
||||
/obj/item/cigbutt,
|
||||
/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"aeE" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -2733,6 +2846,15 @@
|
||||
dir = 1
|
||||
},
|
||||
/area/security/prison)
|
||||
"afQ" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"afR" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
|
||||
dir = 1
|
||||
@@ -3700,6 +3822,12 @@
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
/area/maintenance/fore)
|
||||
"ahT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"ahU" = (
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2,
|
||||
/obj/structure/table,
|
||||
@@ -4296,6 +4424,18 @@
|
||||
/obj/item/restraints/handcuffs/cable/pink,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/fore)
|
||||
"ajk" = (
|
||||
/obj/machinery/door/airlock/research{
|
||||
glass = 1;
|
||||
name = "Slime Euthanization Chamber";
|
||||
opacity = 0;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"ajl" = (
|
||||
/obj/item/soap/deluxe,
|
||||
/obj/item/storage/secure/safe{
|
||||
@@ -4384,6 +4524,15 @@
|
||||
dir = 4
|
||||
},
|
||||
/area/security/warden)
|
||||
"aju" = (
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
|
||||
dir = 1;
|
||||
name = "euthanization chamber freezer";
|
||||
on = 1;
|
||||
target_temperature = 80
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"ajv" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 4
|
||||
@@ -5314,6 +5463,11 @@
|
||||
"alq" = (
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/starboard)
|
||||
"alr" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"als" = (
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
@@ -6120,6 +6274,17 @@
|
||||
icon_state = "platingdmg2"
|
||||
},
|
||||
/area/maintenance/port)
|
||||
"amV" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/research{
|
||||
glass = 1;
|
||||
name = "Slime Euthanization Chamber";
|
||||
opacity = 0;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"amW" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/folder,
|
||||
@@ -6365,6 +6530,9 @@
|
||||
/obj/item/paper,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/main)
|
||||
"anz" = (
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"anA" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
@@ -6801,6 +6969,15 @@
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/warden)
|
||||
"aov" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 1;
|
||||
external_pressure_bound = 140;
|
||||
name = "server vent";
|
||||
pressure_checks = 0
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"aow" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/structure/cable/yellow{
|
||||
@@ -7485,6 +7662,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
/area/security/warden)
|
||||
"apP" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"apQ" = (
|
||||
/obj/structure/reagent_dispensers/peppertank{
|
||||
pixel_x = 32
|
||||
@@ -7537,6 +7718,14 @@
|
||||
/obj/item/device/assembly/flash/handheld,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/main)
|
||||
"apX" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 1;
|
||||
external_pressure_bound = 120;
|
||||
name = "server vent"
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"apY" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/folder/red,
|
||||
@@ -7580,6 +7769,11 @@
|
||||
/obj/item/clothing/head/soft/red,
|
||||
/turf/open/floor/plasteel/vault,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"aqe" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/light/small,
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"aqf" = (
|
||||
/obj/structure/closet/lasertag/blue,
|
||||
/turf/open/floor/plasteel/vault,
|
||||
@@ -8038,6 +8232,15 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
/area/security/warden)
|
||||
"arh" = (
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Xenobiology Lab - Kill Chamber";
|
||||
dir = 1;
|
||||
network = list("ss13","rd","xeno");
|
||||
start_active = 1
|
||||
},
|
||||
/turf/open/floor/circuit/killroom,
|
||||
/area/science/xenobiology)
|
||||
"ari" = (
|
||||
/obj/machinery/holopad,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -8230,6 +8433,10 @@
|
||||
dir = 4
|
||||
},
|
||||
/area/crew_quarters/dorms)
|
||||
"arF" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/science/xenobiology)
|
||||
"arG" = (
|
||||
/obj/structure/closet,
|
||||
/obj/item/storage/box/lights/mixed,
|
||||
@@ -8884,7 +9091,7 @@
|
||||
/turf/open/floor/plasteel/red/side,
|
||||
/area/security/main)
|
||||
"asL" = (
|
||||
/obj/machinery/rnd/protolathe/department/security,
|
||||
/obj/machinery/rnd/production/techfab/department/security,
|
||||
/turf/open/floor/plasteel/red/side{
|
||||
dir = 6
|
||||
},
|
||||
@@ -9296,6 +9503,13 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/fore)
|
||||
"atC" = (
|
||||
/obj/structure/disposalpipe/trunk{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/disposaloutlet,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/xenobiology)
|
||||
"atD" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -13152,7 +13366,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 9
|
||||
},
|
||||
/obj/machinery/rnd/circuit_imprinter,
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
@@ -13161,7 +13375,7 @@
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/engineering,
|
||||
/obj/machinery/rnd/production/protolathe/department/engineering,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
@@ -15317,7 +15531,7 @@
|
||||
},
|
||||
/area/hallway/primary/fore)
|
||||
"aGo" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/red/corner{
|
||||
dir = 2
|
||||
},
|
||||
@@ -18754,7 +18968,7 @@
|
||||
/turf/open/floor/plasteel/neutral/side,
|
||||
/area/security/courtroom)
|
||||
"aOj" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/neutral/side,
|
||||
/area/security/courtroom)
|
||||
"aOk" = (
|
||||
@@ -21494,7 +21708,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/cargo,
|
||||
/obj/machinery/rnd/production/techfab/department/cargo,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/quartermaster/storage)
|
||||
"aUj" = (
|
||||
@@ -29499,7 +29713,7 @@
|
||||
},
|
||||
/area/bridge)
|
||||
"bkF" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
@@ -31939,7 +32153,7 @@
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/holopad,
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/turret_protected/aisat/foyer)
|
||||
"bpL" = (
|
||||
@@ -33370,7 +33584,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"bsm" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
@@ -35100,12 +35314,6 @@
|
||||
dir = 5
|
||||
},
|
||||
/area/hallway/primary/port)
|
||||
"bvT" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"bvU" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
|
||||
dir = 4
|
||||
@@ -36475,7 +36683,7 @@
|
||||
/area/ai_monitored/storage/satellite)
|
||||
"byP" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/caution{
|
||||
dir = 8
|
||||
},
|
||||
@@ -40762,7 +40970,7 @@
|
||||
"bIe" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/hand_tele,
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/machinery/airalarm{
|
||||
dir = 4;
|
||||
pixel_x = -23
|
||||
@@ -40973,9 +41181,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/bar,
|
||||
/area/crew_quarters/bar)
|
||||
"bIv" = (
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"bIw" = (
|
||||
/obj/machinery/light,
|
||||
/obj/machinery/camera{
|
||||
@@ -41570,7 +41775,7 @@
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/neutral/side{
|
||||
dir = 2
|
||||
},
|
||||
@@ -41883,7 +42088,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/atmos)
|
||||
"bKy" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
|
||||
dir = 8
|
||||
},
|
||||
@@ -50925,7 +51130,7 @@
|
||||
},
|
||||
/area/medical/storage)
|
||||
"cdv" = (
|
||||
/obj/machinery/rnd/protolathe/department/medical,
|
||||
/obj/machinery/rnd/production/techfab/department/medical,
|
||||
/turf/open/floor/plasteel/whiteblue/side{
|
||||
dir = 5
|
||||
},
|
||||
@@ -53408,7 +53613,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/science,
|
||||
/obj/machinery/rnd/production/protolathe/department/science,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/lab)
|
||||
"ciE" = (
|
||||
@@ -53561,7 +53766,7 @@
|
||||
/turf/open/floor/engine,
|
||||
/area/science/explab)
|
||||
"ciT" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 10
|
||||
},
|
||||
@@ -54044,7 +54249,7 @@
|
||||
"cjZ" = (
|
||||
/obj/item/reagent_containers/glass/beaker/sulphuric,
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/machinery/rnd/circuit_imprinter/department/science,
|
||||
/obj/machinery/rnd/production/circuit_imprinter/department/science,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/lab)
|
||||
"cka" = (
|
||||
@@ -56179,7 +56384,7 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/service,
|
||||
/obj/machinery/rnd/production/techfab/department/service,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/service)
|
||||
"cox" = (
|
||||
@@ -63636,7 +63841,7 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/test_area)
|
||||
"cDx" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/test_area)
|
||||
"cDy" = (
|
||||
@@ -65507,7 +65712,7 @@
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/rnd/circuit_imprinter,
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/robotics/lab)
|
||||
@@ -69856,7 +70061,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
@@ -71572,10 +71777,6 @@
|
||||
/obj/effect/landmark/xmastree,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/bar)
|
||||
"cTT" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"cUH" = (
|
||||
/obj/structure/table/optable,
|
||||
/turf/open/floor/plasteel/white,
|
||||
@@ -72124,7 +72325,7 @@
|
||||
/turf/open/floor/engine,
|
||||
/area/science/xenobiology)
|
||||
"daH" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/engine,
|
||||
/area/science/xenobiology)
|
||||
"daI" = (
|
||||
@@ -72188,27 +72389,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"daP" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"daQ" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"daS" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg2"
|
||||
},
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"daW" = (
|
||||
/obj/machinery/button/door{
|
||||
id = "engpa";
|
||||
@@ -72340,13 +72520,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/science/xenobiology)
|
||||
"dbv" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/light/small,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg2"
|
||||
},
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"dbE" = (
|
||||
/obj/machinery/plantgenes,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -72752,22 +72925,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"dcm" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 2;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 5;
|
||||
pixel_y = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"dcn" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
@@ -72784,18 +72941,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"dco" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 10
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"dcp" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-8"
|
||||
@@ -72853,15 +72998,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"dcv" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 10
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"dcw" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
@@ -72869,13 +73005,6 @@
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"dcx" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"dcy" = (
|
||||
/obj/machinery/holopad,
|
||||
/turf/open/floor/plasteel/white,
|
||||
@@ -72947,16 +73076,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"dcJ" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/corner{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/reagent_dispensers/watertank/high,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"dcK" = (
|
||||
/obj/machinery/disposal/bin,
|
||||
/obj/structure/sign/warning/deathsposal{
|
||||
@@ -73374,41 +73493,11 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"ddx" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/chair,
|
||||
/obj/item/cigbutt,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"ddy" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"ddz" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"ddA" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/research{
|
||||
glass = 1;
|
||||
name = "Slime Euthanization Chamber";
|
||||
opacity = 0;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"ddC" = (
|
||||
/obj/structure/disposalpipe/trunk{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/disposaloutlet,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"ddE" = (
|
||||
/obj/effect/landmark/start/cook,
|
||||
/obj/machinery/holopad,
|
||||
@@ -74827,33 +74916,6 @@
|
||||
"dlV" = (
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"dmq" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/research{
|
||||
glass = 1;
|
||||
name = "Slime Euthanization Chamber";
|
||||
opacity = 0;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"dmr" = (
|
||||
/obj/machinery/door/airlock/research{
|
||||
glass = 1;
|
||||
name = "Slime Euthanization Chamber";
|
||||
opacity = 0;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"dmD" = (
|
||||
/obj/structure/displaycase/trophy,
|
||||
/turf/open/floor/wood,
|
||||
@@ -76455,10 +76517,6 @@
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/engine/engineering)
|
||||
"jot" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science/xenobiology)
|
||||
"jwW" = (
|
||||
/turf/closed/wall/mineral/plastitanium,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
@@ -77193,7 +77251,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/science,
|
||||
/obj/machinery/rnd/production/protolathe/department/science,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/circuit)
|
||||
"uYk" = (
|
||||
@@ -110258,8 +110316,8 @@ cRi
|
||||
cRi
|
||||
cRi
|
||||
cRi
|
||||
daP
|
||||
cTA
|
||||
aaX
|
||||
aju
|
||||
dlV
|
||||
aaa
|
||||
aaa
|
||||
@@ -110515,11 +110573,11 @@ cSn
|
||||
daF
|
||||
daJ
|
||||
cRi
|
||||
bvT
|
||||
dlV
|
||||
dlV
|
||||
dlV
|
||||
dlV
|
||||
abd
|
||||
cRi
|
||||
cRi
|
||||
cRi
|
||||
cRi
|
||||
aaa
|
||||
aai
|
||||
aaa
|
||||
@@ -110772,11 +110830,11 @@ cSn
|
||||
cSn
|
||||
cSn
|
||||
cRi
|
||||
dmq
|
||||
dlV
|
||||
ddj
|
||||
ddj
|
||||
dlV
|
||||
acd
|
||||
cRi
|
||||
anz
|
||||
anz
|
||||
cRi
|
||||
aaf
|
||||
aag
|
||||
aaa
|
||||
@@ -111003,8 +111061,8 @@ aaa
|
||||
aaf
|
||||
cRe
|
||||
cRS
|
||||
dcm
|
||||
dcv
|
||||
aab
|
||||
aae
|
||||
cRC
|
||||
dcG
|
||||
cSe
|
||||
@@ -111029,11 +111087,11 @@ daB
|
||||
daG
|
||||
cSn
|
||||
cRi
|
||||
ddx
|
||||
ddz
|
||||
ddj
|
||||
ddj
|
||||
jot
|
||||
aeD
|
||||
alr
|
||||
aov
|
||||
anz
|
||||
cRe
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -111286,12 +111344,12 @@ cSn
|
||||
cSn
|
||||
daL
|
||||
cRi
|
||||
daQ
|
||||
ddA
|
||||
daS
|
||||
dbv
|
||||
cTT
|
||||
ddC
|
||||
afQ
|
||||
amV
|
||||
apP
|
||||
aqe
|
||||
arF
|
||||
atC
|
||||
aaf
|
||||
aaa
|
||||
aaa
|
||||
@@ -111517,8 +111575,8 @@ aaa
|
||||
aaf
|
||||
cRe
|
||||
cRS
|
||||
dco
|
||||
dcx
|
||||
aad
|
||||
aaU
|
||||
dcA
|
||||
dcI
|
||||
cRR
|
||||
@@ -111543,11 +111601,11 @@ cSn
|
||||
daH
|
||||
daK
|
||||
cRi
|
||||
bIv
|
||||
ddz
|
||||
ddj
|
||||
ddj
|
||||
jot
|
||||
ahT
|
||||
alr
|
||||
apX
|
||||
anz
|
||||
cRe
|
||||
aaa
|
||||
aaf
|
||||
aaa
|
||||
@@ -111777,7 +111835,7 @@ dcb
|
||||
cZa
|
||||
dDI
|
||||
dcB
|
||||
dcJ
|
||||
aaW
|
||||
cRa
|
||||
cSm
|
||||
cSw
|
||||
@@ -111800,11 +111858,11 @@ cSn
|
||||
cSn
|
||||
daN
|
||||
cRi
|
||||
dmr
|
||||
dlV
|
||||
ddj
|
||||
ddj
|
||||
dlV
|
||||
ajk
|
||||
cRi
|
||||
anz
|
||||
arh
|
||||
cRi
|
||||
aaa
|
||||
aag
|
||||
aaa
|
||||
@@ -112058,10 +112116,10 @@ daI
|
||||
daM
|
||||
cRi
|
||||
cTA
|
||||
dlV
|
||||
dlV
|
||||
dlV
|
||||
dlV
|
||||
cRi
|
||||
cRi
|
||||
cRi
|
||||
cRi
|
||||
aaf
|
||||
aag
|
||||
aaa
|
||||
|
||||
@@ -587,7 +587,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/mine/production)
|
||||
"bO" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/purple/corner{
|
||||
dir = 8
|
||||
},
|
||||
|
||||
@@ -4464,7 +4464,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
"aiV" = (
|
||||
/obj/machinery/rnd/protolathe/department/security,
|
||||
/obj/machinery/rnd/production/techfab/department/security,
|
||||
/turf/open/floor/plasteel/red/side{
|
||||
dir = 8
|
||||
},
|
||||
@@ -6004,7 +6004,7 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/cargo,
|
||||
/obj/machinery/rnd/production/techfab/department/cargo,
|
||||
/turf/open/floor/plasteel/brown{
|
||||
dir = 4
|
||||
},
|
||||
@@ -8288,8 +8288,8 @@
|
||||
"apX" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/obj/machinery/rnd/protolathe/department/service,
|
||||
/obj/effect/turf_decal/stripes/box,
|
||||
/obj/machinery/rnd/production/techfab/department/service,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/bar/atrium)
|
||||
"apY" = (
|
||||
@@ -18864,7 +18864,7 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/obj/machinery/rnd/circuit_imprinter,
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/plasteel/yellow/side{
|
||||
dir = 4
|
||||
@@ -19261,7 +19261,7 @@
|
||||
network = list("engine");
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/engineering,
|
||||
/obj/machinery/rnd/production/protolathe/department/engineering,
|
||||
/obj/effect/turf_decal/stripes/box,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
@@ -22628,7 +22628,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 5
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/science,
|
||||
/obj/machinery/rnd/production/protolathe/department/science,
|
||||
/turf/open/floor/plasteel/vault/side{
|
||||
dir = 4
|
||||
},
|
||||
@@ -23035,7 +23035,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 6
|
||||
},
|
||||
/obj/machinery/rnd/circuit_imprinter/department/science,
|
||||
/obj/machinery/rnd/production/circuit_imprinter/department/science,
|
||||
/turf/open/floor/plasteel/vault/side{
|
||||
dir = 4
|
||||
},
|
||||
@@ -25492,8 +25492,8 @@
|
||||
dir = 5
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/machinery/rnd/protolathe/department/medical,
|
||||
/obj/effect/turf_decal/stripes/box,
|
||||
/obj/machinery/rnd/production/techfab/department/medical,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/medical/medbay/zone3)
|
||||
"bav" = (
|
||||
@@ -30295,7 +30295,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"bkC" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
|
||||
@@ -1455,7 +1455,7 @@
|
||||
/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"afy" = (
|
||||
/obj/effect/landmark/start/cyborg,
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"afz" = (
|
||||
@@ -7515,7 +7515,7 @@
|
||||
},
|
||||
/area/bridge)
|
||||
"atU" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/darkblue/side{
|
||||
dir = 1
|
||||
},
|
||||
@@ -9537,7 +9537,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/fore)
|
||||
"ayQ" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/fore)
|
||||
"ayR" = (
|
||||
@@ -12686,7 +12686,6 @@
|
||||
/area/storage/primary)
|
||||
"aGk" = (
|
||||
/obj/machinery/vending/boozeomat{
|
||||
products = list(/obj/item/reagent_containers/food/drinks/bottle/rum = 1, /obj/item/reagent_containers/food/drinks/bottle/wine = 1, /obj/item/reagent_containers/food/drinks/ale = 1, /obj/item/reagent_containers/food/drinks/drinkingglass = 6, /obj/item/reagent_containers/food/drinks/ice = 1, /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 4);
|
||||
req_access_txt = "20"
|
||||
},
|
||||
/turf/open/floor/plasteel/vault{
|
||||
@@ -16445,7 +16444,7 @@
|
||||
/area/storage/eva)
|
||||
"aPM" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel/darkblue/side{
|
||||
dir = 10
|
||||
@@ -25241,7 +25240,7 @@
|
||||
/area/science/server)
|
||||
"blP" = (
|
||||
/obj/effect/landmark/event_spawn,
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
@@ -25812,7 +25811,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"bnq" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
|
||||
dir = 4
|
||||
},
|
||||
@@ -25991,7 +25990,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/research/lobby)
|
||||
"bnO" = (
|
||||
/obj/machinery/rnd/circuit_imprinter,
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
@@ -27811,6 +27810,9 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"brQ" = (
|
||||
/obj/machinery/computer/camera_advanced/xenobio{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Xenobiology Port";
|
||||
dir = 8;
|
||||
@@ -28602,11 +28604,11 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"btD" = (
|
||||
/turf/open/floor/plating,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/xenobiology)
|
||||
"btE" = (
|
||||
/obj/effect/decal/remains/xeno,
|
||||
/turf/open/floor/plating,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/xenobiology)
|
||||
"btF" = (
|
||||
/obj/structure/chair{
|
||||
@@ -28901,7 +28903,7 @@
|
||||
/area/science/lab)
|
||||
"bur" = (
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/obj/machinery/rnd/protolathe/department/science,
|
||||
/obj/machinery/rnd/production/protolathe/department/science,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/lab)
|
||||
"bus" = (
|
||||
@@ -29227,7 +29229,12 @@
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Xenobiology Kill Room";
|
||||
dir = 8;
|
||||
network = list("ss13","rd")
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/xenobiology)
|
||||
"bva" = (
|
||||
/turf/closed/wall,
|
||||
@@ -29419,7 +29426,7 @@
|
||||
"bvy" = (
|
||||
/obj/item/reagent_containers/glass/beaker/sulphuric,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/obj/machinery/rnd/circuit_imprinter/department/science,
|
||||
/obj/machinery/rnd/production/circuit_imprinter/department/science,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/lab)
|
||||
"bvz" = (
|
||||
@@ -31294,22 +31301,16 @@
|
||||
/turf/open/floor/plasteel/whitepurple/side,
|
||||
/area/science/xenobiology)
|
||||
"bzi" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 4;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 2;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/extinguisher{
|
||||
pixel_x = 5;
|
||||
pixel_y = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/obj/structure/table/glass,
|
||||
/turf/open/floor/plasteel/whitepurple/side,
|
||||
/area/science/xenobiology)
|
||||
"bzj" = (
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/obj/machinery/requests_console{
|
||||
department = "Science";
|
||||
departmentType = 2;
|
||||
@@ -31317,7 +31318,6 @@
|
||||
pixel_x = 32;
|
||||
receive_ore_updates = 1
|
||||
},
|
||||
/obj/structure/reagent_dispensers/watertank/high,
|
||||
/turf/open/floor/plasteel/whitepurple/side,
|
||||
/area/science/xenobiology)
|
||||
"bzk" = (
|
||||
@@ -33628,7 +33628,7 @@
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = -26
|
||||
},
|
||||
/obj/machinery/rnd/protolathe/department/medical,
|
||||
/obj/machinery/rnd/production/techfab/department/medical,
|
||||
/turf/open/floor/plasteel/whiteblue/side{
|
||||
dir = 1
|
||||
},
|
||||
@@ -33793,8 +33793,7 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/vending/wallmed{
|
||||
pixel_y = 28;
|
||||
products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/spray/medical/sterilizer = 1)
|
||||
pixel_y = 28
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on,
|
||||
/obj/effect/landmark/blobstart,
|
||||
@@ -35454,8 +35453,7 @@
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/vending/wallmed{
|
||||
pixel_y = 28;
|
||||
products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/spray/medical/sterilizer = 1)
|
||||
pixel_y = 28
|
||||
},
|
||||
/turf/open/floor/plasteel/whiteblue/side{
|
||||
dir = 1
|
||||
@@ -36332,8 +36330,7 @@
|
||||
/area/medical/medbay/central)
|
||||
"bKw" = (
|
||||
/obj/machinery/vending/wallmed{
|
||||
pixel_y = 28;
|
||||
products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/spray/medical/sterilizer = 1)
|
||||
pixel_y = 28
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 4
|
||||
@@ -36373,7 +36370,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/landmark/event_spawn,
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"bKA" = (
|
||||
@@ -39638,7 +39635,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/storage/tech)
|
||||
"bSG" = (
|
||||
@@ -39754,7 +39751,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/atmos)
|
||||
"bSS" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/atmos)
|
||||
"bST" = (
|
||||
@@ -46040,7 +46037,7 @@
|
||||
/turf/closed/mineral/random/low_chance,
|
||||
/area/asteroid/nearstation/bomb_site)
|
||||
"ckL" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/asteroid/nearstation/bomb_site)
|
||||
"ckM" = (
|
||||
@@ -46319,7 +46316,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/tcommsat/computer)
|
||||
"clS" = (
|
||||
@@ -47188,7 +47185,7 @@
|
||||
/turf/open/floor/plasteel/neutral/corner,
|
||||
/area/hallway/secondary/exit/departure_lounge)
|
||||
"coT" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/exit/departure_lounge)
|
||||
"coV" = (
|
||||
@@ -47342,7 +47339,7 @@
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/crew_quarters/kitchen)
|
||||
"cpt" = (
|
||||
/obj/item/device/radio/beacon,
|
||||
/obj/item/device/beacon,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 5
|
||||
},
|
||||
@@ -49831,7 +49828,6 @@
|
||||
/area/maintenance/department/engine)
|
||||
"cBk" = (
|
||||
/obj/machinery/vending/boozeomat{
|
||||
products = list(/obj/item/reagent_containers/food/drinks/bottle/whiskey = 1, /obj/item/reagent_containers/food/drinks/bottle/absinthe = 1, /obj/item/reagent_containers/food/drinks/bottle/limejuice = 1, /obj/item/reagent_containers/food/drinks/bottle/cream = 1, /obj/item/reagent_containers/food/drinks/soda_cans/tonic = 1, /obj/item/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/reagent_containers/food/drinks/ice = 3, /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 6, /obj/item/reagent_containers/food/drinks/flask = 1);
|
||||
req_access_txt = "0"
|
||||
},
|
||||
/turf/closed/wall,
|
||||
@@ -50018,7 +50014,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/quartermaster/storage)
|
||||
"cCD" = (
|
||||
/obj/machinery/rnd/protolathe/department/service,
|
||||
/obj/machinery/rnd/production/techfab/department/service,
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/kitchen)
|
||||
"cCF" = (
|
||||
@@ -50067,19 +50063,19 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/maintenance/department/chapel/monastery)
|
||||
"cCS" = (
|
||||
/obj/machinery/rnd/protolathe/department/security,
|
||||
/obj/machinery/rnd/production/techfab/department/security,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/security/main)
|
||||
"cCT" = (
|
||||
/obj/machinery/rnd/protolathe/department/cargo,
|
||||
/obj/machinery/rnd/production/techfab/department/cargo,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/quartermaster/storage)
|
||||
"cCU" = (
|
||||
/obj/machinery/rnd/circuit_imprinter,
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"cCV" = (
|
||||
/obj/machinery/rnd/protolathe/department/engineering,
|
||||
/obj/machinery/rnd/production/protolathe/department/engineering,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"cCW" = (
|
||||
@@ -50178,6 +50174,12 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/quartermaster/sorting)
|
||||
"gFV" = (
|
||||
/obj/machinery/computer/camera_advanced/xenobio{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"izp" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
@@ -93281,7 +93283,7 @@ bkE
|
||||
aht
|
||||
bnd
|
||||
boh
|
||||
bpn
|
||||
gFV
|
||||
bqx
|
||||
brQ
|
||||
btr
|
||||
|
||||
@@ -1514,7 +1514,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/hallway/primary/central)
|
||||
"NZ" = (
|
||||
/obj/machinery/rnd/protolathe,
|
||||
/obj/machinery/rnd/production/protolathe,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science)
|
||||
"Qt" = (
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
poojawa role=admin
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#define R_SOUNDS 0x800
|
||||
#define R_SPAWN 0x1000
|
||||
#define R_AUTOLOGIN 0x2000
|
||||
#define R_DBRANKS 0x4000
|
||||
|
||||
#define R_DEFAULT R_AUTOLOGIN
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
//Measurements are in imperial units. Inches, feet, yards, miles. Tsp, tbsp, cups, quarts, gallons, etc
|
||||
|
||||
//arousal HUD location
|
||||
#define ui_arousal "EAST-1:28,CENTER-3:11"//Below the health doll
|
||||
#define ui_arousal "EAST-1:28,CENTER-4:8"//Below the health doll
|
||||
|
||||
|
||||
//organ defines
|
||||
|
||||
@@ -81,6 +81,9 @@
|
||||
#define ABOVE_LIGHTING_PLANE 16
|
||||
#define ABOVE_LIGHTING_LAYER 16
|
||||
|
||||
#define BYOND_LIGHTING_PLANE 17
|
||||
#define BYOND_LIGHTING_LAYER 17
|
||||
|
||||
//HUD layer defines
|
||||
|
||||
#define FULLSCREEN_PLANE 18
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
#define LIGHT_RANGE_FIRE 3 //How many tiles standard fires glow.
|
||||
|
||||
#define LIGHTING_PLANE_ALPHA_VISIBLE 255
|
||||
#define LIGHTING_PLANE_ALPHA_NV_TRAIT 250
|
||||
#define LIGHTING_PLANE_ALPHA_NV_TRAIT 245
|
||||
#define LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE 192
|
||||
#define LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE 128 //For lighting alpha, small amounts lead to big changes. even at 128 its hard to figure out what is dark and what is light, at 64 you almost can't even tell.
|
||||
#define LIGHTING_PLANE_ALPHA_INVISIBLE 0
|
||||
|
||||
@@ -26,7 +26,6 @@ require only minor tweaks.
|
||||
#define MAP_REMOVE_JOB(jobpath) /datum/job/##jobpath/map_check() { return (SSmapping.config.map_name != JOB_MODIFICATION_MAP_NAME) && ..() }
|
||||
|
||||
#define SPACERUIN_MAP_EDGE_PAD 15
|
||||
#define ZLEVEL_SPACE_RUIN_COUNT 7
|
||||
|
||||
// traits
|
||||
// boolean - marks a level as having that property if present
|
||||
|
||||
@@ -86,8 +86,6 @@
|
||||
#define SCREWYHUD_DEAD 2
|
||||
#define SCREWYHUD_HEALTHY 3
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
//Moods levels for humans
|
||||
#define MOOD_LEVEL_HAPPY4 15
|
||||
#define MOOD_LEVEL_HAPPY3 10
|
||||
@@ -107,7 +105,6 @@
|
||||
|
||||
|
||||
|
||||
>>>>>>> 0bc8550... Small moodie balance changes (#36242)
|
||||
//Nutrition levels for humans
|
||||
#define NUTRITION_LEVEL_FAT 600
|
||||
#define NUTRITION_LEVEL_FULL 550
|
||||
|
||||
@@ -22,3 +22,4 @@
|
||||
#define QDELING(X) (X.gc_destroyed)
|
||||
#define QDELETED(X) (!X || QDELING(X))
|
||||
#define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
|
||||
|
||||
|
||||
@@ -43,15 +43,11 @@
|
||||
#define RDSCREEN_UI_SNODE_CHECK if(!selected_node) { return RDSCREEN_TEXT_NO_SNODE }
|
||||
#define RDSCREEN_UI_SDESIGN_CHECK if(!selected_design) { return RDSCREEN_TEXT_NO_SDESIGN }
|
||||
|
||||
#define DEPLATHE_SCREEN_PRIMARY 1
|
||||
#define DEPLATHE_SCREEN_SEARCH 2
|
||||
#define DEPLATHE_SCREEN_MATERIALS 3
|
||||
#define DEPLATHE_SCREEN_CHEMICALS 4
|
||||
|
||||
#define DEPPRINTER_SCREEN_PRIMARY 1
|
||||
#define DEPPRINTER_SCREEN_SEARCH 2
|
||||
#define DEPPRINTER_SCREEN_MATERIALS 3
|
||||
#define DEPPRINTER_SCREEN_CHEMICALS 4
|
||||
#define RESEARCH_FABRICATOR_SCREEN_MAIN 1
|
||||
#define RESEARCH_FABRICATOR_SCREEN_CHEMICALS 2
|
||||
#define RESEARCH_FABRICATOR_SCREEN_MATERIALS 3
|
||||
#define RESEARCH_FABRICATOR_SCREEN_SEARCH 4
|
||||
#define RESEARCH_FABRICATOR_SCREEN_CATEGORYVIEW 5
|
||||
|
||||
#define DEPARTMENTAL_FLAG_SECURITY 1
|
||||
#define DEPARTMENTAL_FLAG_MEDICAL 2
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//Update this whenever the db schema changes
|
||||
//make sure you add an update to the schema_version stable in the db changelog
|
||||
#define DB_MAJOR_VERSION 4
|
||||
#define DB_MINOR_VERSION 0
|
||||
#define DB_MINOR_VERSION 1
|
||||
|
||||
//Timing subsystem
|
||||
//Don't run if there is an identical unique timer active
|
||||
@@ -59,8 +59,8 @@
|
||||
#define INIT_ORDER_TRAITS 11
|
||||
#define INIT_ORDER_TICKER 10
|
||||
#define INIT_ORDER_MAPPING 9
|
||||
#define INIT_ORDER_ATOMS 8
|
||||
#define INIT_ORDER_NETWORKS 7
|
||||
#define INIT_ORDER_NETWORKS 8
|
||||
#define INIT_ORDER_ATOMS 7
|
||||
#define INIT_ORDER_LANGUAGE 6
|
||||
#define INIT_ORDER_MACHINES 5
|
||||
#define INIT_ORDER_CIRCUIT 4
|
||||
|
||||
@@ -39,13 +39,12 @@
|
||||
#define TRAIT_NOBREATH "no_breath"
|
||||
#define TRAIT_ANTIMAGIC "anti_magic"
|
||||
#define TRAIT_HOLY "holy"
|
||||
#define TRAIT_DEPRESSION "depression"
|
||||
#define TRAIT_JOLLY "jolly"
|
||||
#define TRAIT_NOCRITDAMAGE "no_crit"
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
|
||||
>>>>>>> 0bc8550... Small moodie balance changes (#36242)
|
||||
#define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance"
|
||||
#define TRAIT_AGEUSIA "ageusia"
|
||||
#define TRAIT_HEAVY_SLEEPER "heavy_sleeper"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f)
|
||||
//socks
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, GLOB.socks_list)
|
||||
//lizard bodyparts (blizzard intensifies)
|
||||
//bodypart accessories (blizzard intensifies)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/lizard, GLOB.animated_tails_list_lizard)
|
||||
@@ -29,7 +29,7 @@
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/spines_animated, GLOB.animated_spines_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, GLOB.legs_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.r_wings_list,roundstart = TRUE)
|
||||
//moffs
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/caps, GLOB.caps_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_wings, GLOB.moth_wings_list)
|
||||
|
||||
//CIT CHANGES START HERE, ADDS SNOWFLAKE BODYPARTS AND MORE
|
||||
|
||||
+13
-1
@@ -111,6 +111,7 @@
|
||||
"spines" = pick(GLOB.spines_list),
|
||||
"body_markings" = pick(GLOB.body_markings_list),
|
||||
"legs" = "Normal Legs",
|
||||
"caps" = pick(GLOB.caps_list),
|
||||
"moth_wings" = pick(GLOB.moth_wings_list),
|
||||
"taur" = "None",
|
||||
"mam_body_markings" = "None",
|
||||
@@ -166,6 +167,7 @@
|
||||
"womb_efficiency" = CUM_EFFICIENCY,
|
||||
"womb_fluid" = "femcum",
|
||||
"flavor_text" = ""))
|
||||
|
||||
/proc/random_hair_style(gender)
|
||||
switch(gender)
|
||||
if(MALE)
|
||||
@@ -369,7 +371,7 @@ Proc for attack log creation, because really why not
|
||||
checked_health["health"] = health
|
||||
return ..()
|
||||
|
||||
/proc/do_after(mob/user, delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null)
|
||||
/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null)
|
||||
if(!user)
|
||||
return 0
|
||||
var/atom/Tloc = null
|
||||
@@ -392,6 +394,16 @@ Proc for attack log creation, because really why not
|
||||
if (progress)
|
||||
progbar = new(user, delay, target)
|
||||
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, user)
|
||||
if(mood)
|
||||
switch(mood.mood) //Alerts do_after delay based on how happy you are
|
||||
if(-INFINITY to MOOD_LEVEL_SAD2)
|
||||
delay *= 1.25
|
||||
if(MOOD_LEVEL_HAPPY3 to MOOD_LEVEL_HAPPY4)
|
||||
delay *= 0.95
|
||||
if(MOOD_LEVEL_HAPPY4 to INFINITY)
|
||||
delay *= 0.9
|
||||
|
||||
var/endtime = world.time + delay
|
||||
var/starttime = world.time
|
||||
. = 1
|
||||
|
||||
@@ -500,3 +500,28 @@
|
||||
objective_parts += "<b>Objective #[count]</b>: [objective.explanation_text] <span class='redtext'>Fail.</span>"
|
||||
count++
|
||||
return objective_parts.Join("<br>")
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/save_admin_data()
|
||||
if(CONFIG_GET(flag/admin_legacy_system)) //we're already using legacy system so there's nothing to save
|
||||
return
|
||||
else if(load_admins()) //returns true if there was a database failure and the backup was loaded from
|
||||
return
|
||||
var/datum/DBQuery/query_admin_rank_update = SSdbcore.NewQuery("UPDATE [format_table_name("player")] p INNER JOIN [format_table_name("admin")] a ON p.ckey = a.ckey SET p.lastadminrank = a.rank")
|
||||
query_admin_rank_update.Execute()
|
||||
//json format backup file generation stored per server
|
||||
var/json_file = file("data/admins_backup.json")
|
||||
var/list/file_data = list("ranks" = list(), "admins" = list())
|
||||
for(var/datum/admin_rank/R in GLOB.admin_ranks)
|
||||
file_data["ranks"]["[R.name]"] = list()
|
||||
file_data["ranks"]["[R.name]"]["include rights"] = R.include_rights
|
||||
file_data["ranks"]["[R.name]"]["exclude rights"] = R.exclude_rights
|
||||
file_data["ranks"]["[R.name]"]["can edit rights"] = R.can_edit_rights
|
||||
for(var/i in GLOB.admin_datums+GLOB.deadmins)
|
||||
var/datum/admins/A = GLOB.admin_datums[i]
|
||||
if(!A)
|
||||
A = GLOB.deadmins[i]
|
||||
if (!A)
|
||||
continue
|
||||
file_data["admins"]["[i]"] = A.rank.name
|
||||
fdel(json_file)
|
||||
WRITE_FILE(json_file, json_encode(file_data))
|
||||
|
||||
+21
-19
@@ -182,38 +182,40 @@
|
||||
return ICON_OVERLAY
|
||||
|
||||
//Converts a rights bitfield into a string
|
||||
/proc/rights2text(rights, seperator="", list/adds, list/subs)
|
||||
/proc/rights2text(rights, seperator="", prefix = "+")
|
||||
seperator += prefix
|
||||
if(rights & R_BUILDMODE)
|
||||
. += "[seperator]+BUILDMODE"
|
||||
. += "[seperator]BUILDMODE"
|
||||
if(rights & R_ADMIN)
|
||||
. += "[seperator]+ADMIN"
|
||||
. += "[seperator]ADMIN"
|
||||
if(rights & R_BAN)
|
||||
. += "[seperator]+BAN"
|
||||
. += "[seperator]BAN"
|
||||
if(rights & R_FUN)
|
||||
. += "[seperator]+FUN"
|
||||
. += "[seperator]FUN"
|
||||
if(rights & R_SERVER)
|
||||
. += "[seperator]+SERVER"
|
||||
. += "[seperator]SERVER"
|
||||
if(rights & R_DEBUG)
|
||||
. += "[seperator]+DEBUG"
|
||||
. += "[seperator]DEBUG"
|
||||
if(rights & R_POSSESS)
|
||||
. += "[seperator]+POSSESS"
|
||||
. += "[seperator]POSSESS"
|
||||
if(rights & R_PERMISSIONS)
|
||||
. += "[seperator]+PERMISSIONS"
|
||||
. += "[seperator]PERMISSIONS"
|
||||
if(rights & R_STEALTH)
|
||||
. += "[seperator]+STEALTH"
|
||||
. += "[seperator]STEALTH"
|
||||
if(rights & R_POLL)
|
||||
. += "[seperator]+POLL"
|
||||
. += "[seperator]POLL"
|
||||
if(rights & R_VAREDIT)
|
||||
. += "[seperator]+VAREDIT"
|
||||
. += "[seperator]VAREDIT"
|
||||
if(rights & R_SOUNDS)
|
||||
. += "[seperator]+SOUND"
|
||||
. += "[seperator]SOUND"
|
||||
if(rights & R_SPAWN)
|
||||
. += "[seperator]+SPAWN"
|
||||
|
||||
for(var/verbpath in adds)
|
||||
. += "[seperator]+[verbpath]"
|
||||
for(var/verbpath in subs)
|
||||
. += "[seperator]-[verbpath]"
|
||||
. += "[seperator]SPAWN"
|
||||
if(rights & R_AUTOLOGIN)
|
||||
. += "[seperator]AUTOLOGIN"
|
||||
if(rights & R_DBRANKS)
|
||||
. += "[seperator]DBRANKS"
|
||||
if(!.)
|
||||
. = "NONE"
|
||||
return .
|
||||
|
||||
/proc/ui_style2icon(ui_style)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#define DEBUG //Enables byond profiling and full runtime logs - note, this may also be defined in your .dme file
|
||||
//Enables in-depth debug messages to runtime log (used for debugging)
|
||||
//#define TESTING //By using the testing("message") proc you can create debug-feedback for people with this
|
||||
//uncommented, but not visible in the release version)
|
||||
|
||||
|
||||
@@ -1,130 +1,131 @@
|
||||
//Preferences stuff
|
||||
//Hairstyles
|
||||
GLOBAL_LIST_EMPTY(hair_styles_list) //stores /datum/sprite_accessory/hair indexed by name
|
||||
GLOBAL_LIST_EMPTY(hair_styles_male_list) //stores only hair names
|
||||
GLOBAL_LIST_EMPTY(hair_styles_female_list) //stores only hair names
|
||||
GLOBAL_LIST_EMPTY(facial_hair_styles_list) //stores /datum/sprite_accessory/facial_hair indexed by name
|
||||
GLOBAL_LIST_EMPTY(facial_hair_styles_male_list) //stores only hair names
|
||||
GLOBAL_LIST_EMPTY(facial_hair_styles_female_list) //stores only hair names
|
||||
//Underwear
|
||||
GLOBAL_LIST_EMPTY(underwear_list) //stores /datum/sprite_accessory/underwear indexed by name
|
||||
GLOBAL_LIST_EMPTY(underwear_m) //stores only underwear name
|
||||
GLOBAL_LIST_EMPTY(underwear_f) //stores only underwear name
|
||||
//Undershirts
|
||||
GLOBAL_LIST_EMPTY(undershirt_list) //stores /datum/sprite_accessory/undershirt indexed by name
|
||||
GLOBAL_LIST_EMPTY(undershirt_m) //stores only undershirt name
|
||||
GLOBAL_LIST_EMPTY(undershirt_f) //stores only undershirt name
|
||||
//Socks
|
||||
GLOBAL_LIST_EMPTY(socks_list) //stores /datum/sprite_accessory/socks indexed by name
|
||||
//Lizard Bits (all datum lists indexed by name)
|
||||
GLOBAL_LIST_EMPTY(body_markings_list)
|
||||
GLOBAL_LIST_EMPTY(tails_list_lizard)
|
||||
GLOBAL_LIST_EMPTY(animated_tails_list_lizard)
|
||||
GLOBAL_LIST_EMPTY(snouts_list)
|
||||
GLOBAL_LIST_EMPTY(horns_list)
|
||||
GLOBAL_LIST_EMPTY(frills_list)
|
||||
GLOBAL_LIST_EMPTY(spines_list)
|
||||
GLOBAL_LIST_EMPTY(legs_list)
|
||||
GLOBAL_LIST_EMPTY(animated_spines_list)
|
||||
|
||||
//Mutant Human bits
|
||||
GLOBAL_LIST_EMPTY(tails_list_human)
|
||||
GLOBAL_LIST_EMPTY(animated_tails_list_human)
|
||||
GLOBAL_LIST_EMPTY(ears_list)
|
||||
GLOBAL_LIST_EMPTY(wings_list)
|
||||
GLOBAL_LIST_EMPTY(wings_open_list)
|
||||
GLOBAL_LIST_EMPTY(r_wings_list)
|
||||
GLOBAL_LIST_EMPTY(moth_wings_list)
|
||||
|
||||
GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list("ghost")) //stores the ghost forms that support directional sprites
|
||||
GLOBAL_LIST_INIT(ghost_forms_with_accessories_list, list("ghost")) //stores the ghost forms that support hair and other such things
|
||||
|
||||
GLOBAL_LIST_INIT(security_depts_prefs, list(SEC_DEPT_RANDOM, SEC_DEPT_NONE, SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, SEC_DEPT_SCIENCE, SEC_DEPT_SUPPLY))
|
||||
|
||||
//Backpacks
|
||||
#define GBACKPACK "Grey Backpack"
|
||||
#define GSATCHEL "Grey Satchel"
|
||||
#define GDUFFELBAG "Grey Duffel Bag"
|
||||
#define LSATCHEL "Leather Satchel"
|
||||
#define DBACKPACK "Department Backpack"
|
||||
#define DSATCHEL "Department Satchel"
|
||||
#define DDUFFELBAG "Department Duffel Bag"
|
||||
GLOBAL_LIST_INIT(backbaglist, list(DBACKPACK, DSATCHEL, DDUFFELBAG, GBACKPACK, GSATCHEL, GDUFFELBAG, LSATCHEL))
|
||||
|
||||
//Uplink spawn loc
|
||||
#define UPLINK_PDA "PDA"
|
||||
#define UPLINK_RADIO "Radio"
|
||||
#define UPLINK_PEN "Pen" //like a real spy!
|
||||
GLOBAL_LIST_INIT(uplink_spawn_loc_list, list(UPLINK_PDA, UPLINK_RADIO, UPLINK_PEN))
|
||||
|
||||
//Female Uniforms
|
||||
GLOBAL_LIST_EMPTY(female_clothing_icons)
|
||||
|
||||
//radical shit
|
||||
GLOBAL_LIST_INIT(hit_appends, list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF"))
|
||||
|
||||
GLOBAL_LIST_INIT(scarySounds, list('sound/weapons/thudswoosh.ogg','sound/weapons/taser.ogg','sound/weapons/armbomb.ogg','sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg','sound/voice/hiss5.ogg','sound/voice/hiss6.ogg','sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg','sound/items/welder.ogg','sound/items/welder2.ogg','sound/machines/airlock.ogg','sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg'))
|
||||
|
||||
|
||||
// Reference list for disposal sort junctions. Set the sortType variable on disposal sort junctions to
|
||||
// the index of the sort department that you want. For example, sortType set to 2 will reroute all packages
|
||||
// tagged for the Cargo Bay.
|
||||
|
||||
/* List of sortType codes for mapping reference
|
||||
0 Waste
|
||||
1 Disposals
|
||||
2 Cargo Bay
|
||||
3 QM Office
|
||||
4 Engineering
|
||||
5 CE Office
|
||||
6 Atmospherics
|
||||
7 Security
|
||||
8 HoS Office
|
||||
9 Medbay
|
||||
10 CMO Office
|
||||
11 Chemistry
|
||||
12 Research
|
||||
13 RD Office
|
||||
14 Robotics
|
||||
15 HoP Office
|
||||
16 Library
|
||||
17 Chapel
|
||||
18 Theatre
|
||||
19 Bar
|
||||
20 Kitchen
|
||||
21 Hydroponics
|
||||
22 Janitor
|
||||
23 Genetics
|
||||
*/
|
||||
|
||||
GLOBAL_LIST_INIT(TAGGERLOCATIONS, list("Disposals",
|
||||
"Cargo Bay", "QM Office", "Engineering", "CE Office",
|
||||
"Atmospherics", "Security", "HoS Office", "Medbay",
|
||||
"CMO Office", "Chemistry", "Research", "RD Office",
|
||||
"Robotics", "HoP Office", "Library", "Chapel", "Theatre",
|
||||
"Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics"))
|
||||
|
||||
GLOBAL_LIST_INIT(guitar_notes, flist("sound/guitar/"))
|
||||
|
||||
GLOBAL_LIST_INIT(station_prefixes, world.file2list("strings/station_prefixes.txt") + "")
|
||||
|
||||
GLOBAL_LIST_INIT(station_names, world.file2list("strings/station_names.txt" + ""))
|
||||
|
||||
GLOBAL_LIST_INIT(station_suffixes, world.file2list("strings/station_suffixes.txt"))
|
||||
|
||||
GLOBAL_LIST_INIT(greek_letters, world.file2list("strings/greek_letters.txt"))
|
||||
|
||||
GLOBAL_LIST_INIT(phonetic_alphabet, world.file2list("strings/phonetic_alphabet.txt"))
|
||||
|
||||
GLOBAL_LIST_INIT(numbers_as_words, world.file2list("strings/numbers_as_words.txt"))
|
||||
|
||||
/proc/generate_number_strings()
|
||||
var/list/L[198]
|
||||
for(var/i in 1 to 99)
|
||||
L += "[i]"
|
||||
L += "\Roman[i]"
|
||||
return L
|
||||
|
||||
GLOBAL_LIST_INIT(station_numerals, greek_letters + phonetic_alphabet + numbers_as_words + generate_number_strings())
|
||||
|
||||
GLOBAL_LIST_INIT(admiral_messages, list("Do you know how expensive these stations are?","Stop wasting my time.","I was sleeping, thanks a lot.","Stand and fight you cowards!","You knew the risks coming in.","Stop being paranoid.","Whatever's broken just build a new one.","No.", "<i>null</i>","<i>Error: No comment given.</i>", "It's a good day to die!"))
|
||||
//Preferences stuff
|
||||
//Hairstyles
|
||||
GLOBAL_LIST_EMPTY(hair_styles_list) //stores /datum/sprite_accessory/hair indexed by name
|
||||
GLOBAL_LIST_EMPTY(hair_styles_male_list) //stores only hair names
|
||||
GLOBAL_LIST_EMPTY(hair_styles_female_list) //stores only hair names
|
||||
GLOBAL_LIST_EMPTY(facial_hair_styles_list) //stores /datum/sprite_accessory/facial_hair indexed by name
|
||||
GLOBAL_LIST_EMPTY(facial_hair_styles_male_list) //stores only hair names
|
||||
GLOBAL_LIST_EMPTY(facial_hair_styles_female_list) //stores only hair names
|
||||
//Underwear
|
||||
GLOBAL_LIST_EMPTY(underwear_list) //stores /datum/sprite_accessory/underwear indexed by name
|
||||
GLOBAL_LIST_EMPTY(underwear_m) //stores only underwear name
|
||||
GLOBAL_LIST_EMPTY(underwear_f) //stores only underwear name
|
||||
//Undershirts
|
||||
GLOBAL_LIST_EMPTY(undershirt_list) //stores /datum/sprite_accessory/undershirt indexed by name
|
||||
GLOBAL_LIST_EMPTY(undershirt_m) //stores only undershirt name
|
||||
GLOBAL_LIST_EMPTY(undershirt_f) //stores only undershirt name
|
||||
//Socks
|
||||
GLOBAL_LIST_EMPTY(socks_list) //stores /datum/sprite_accessory/socks indexed by name
|
||||
//Lizard Bits (all datum lists indexed by name)
|
||||
GLOBAL_LIST_EMPTY(body_markings_list)
|
||||
GLOBAL_LIST_EMPTY(tails_list_lizard)
|
||||
GLOBAL_LIST_EMPTY(animated_tails_list_lizard)
|
||||
GLOBAL_LIST_EMPTY(snouts_list)
|
||||
GLOBAL_LIST_EMPTY(horns_list)
|
||||
GLOBAL_LIST_EMPTY(frills_list)
|
||||
GLOBAL_LIST_EMPTY(spines_list)
|
||||
GLOBAL_LIST_EMPTY(legs_list)
|
||||
GLOBAL_LIST_EMPTY(animated_spines_list)
|
||||
|
||||
//Mutant Human bits
|
||||
GLOBAL_LIST_EMPTY(tails_list_human)
|
||||
GLOBAL_LIST_EMPTY(animated_tails_list_human)
|
||||
GLOBAL_LIST_EMPTY(ears_list)
|
||||
GLOBAL_LIST_EMPTY(wings_list)
|
||||
GLOBAL_LIST_EMPTY(wings_open_list)
|
||||
GLOBAL_LIST_EMPTY(r_wings_list)
|
||||
GLOBAL_LIST_EMPTY(moth_wings_list)
|
||||
GLOBAL_LIST_EMPTY(caps_list)
|
||||
|
||||
GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list("ghost")) //stores the ghost forms that support directional sprites
|
||||
GLOBAL_LIST_INIT(ghost_forms_with_accessories_list, list("ghost")) //stores the ghost forms that support hair and other such things
|
||||
|
||||
GLOBAL_LIST_INIT(security_depts_prefs, list(SEC_DEPT_RANDOM, SEC_DEPT_NONE, SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, SEC_DEPT_SCIENCE, SEC_DEPT_SUPPLY))
|
||||
|
||||
//Backpacks
|
||||
#define GBACKPACK "Grey Backpack"
|
||||
#define GSATCHEL "Grey Satchel"
|
||||
#define GDUFFELBAG "Grey Duffel Bag"
|
||||
#define LSATCHEL "Leather Satchel"
|
||||
#define DBACKPACK "Department Backpack"
|
||||
#define DSATCHEL "Department Satchel"
|
||||
#define DDUFFELBAG "Department Duffel Bag"
|
||||
GLOBAL_LIST_INIT(backbaglist, list(DBACKPACK, DSATCHEL, DDUFFELBAG, GBACKPACK, GSATCHEL, GDUFFELBAG, LSATCHEL))
|
||||
|
||||
//Uplink spawn loc
|
||||
#define UPLINK_PDA "PDA"
|
||||
#define UPLINK_RADIO "Radio"
|
||||
#define UPLINK_PEN "Pen" //like a real spy!
|
||||
GLOBAL_LIST_INIT(uplink_spawn_loc_list, list(UPLINK_PDA, UPLINK_RADIO, UPLINK_PEN))
|
||||
|
||||
//Female Uniforms
|
||||
GLOBAL_LIST_EMPTY(female_clothing_icons)
|
||||
|
||||
//radical shit
|
||||
GLOBAL_LIST_INIT(hit_appends, list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF"))
|
||||
|
||||
GLOBAL_LIST_INIT(scarySounds, list('sound/weapons/thudswoosh.ogg','sound/weapons/taser.ogg','sound/weapons/armbomb.ogg','sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg','sound/voice/hiss5.ogg','sound/voice/hiss6.ogg','sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg','sound/items/welder.ogg','sound/items/welder2.ogg','sound/machines/airlock.ogg','sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg'))
|
||||
|
||||
|
||||
// Reference list for disposal sort junctions. Set the sortType variable on disposal sort junctions to
|
||||
// the index of the sort department that you want. For example, sortType set to 2 will reroute all packages
|
||||
// tagged for the Cargo Bay.
|
||||
|
||||
/* List of sortType codes for mapping reference
|
||||
0 Waste
|
||||
1 Disposals
|
||||
2 Cargo Bay
|
||||
3 QM Office
|
||||
4 Engineering
|
||||
5 CE Office
|
||||
6 Atmospherics
|
||||
7 Security
|
||||
8 HoS Office
|
||||
9 Medbay
|
||||
10 CMO Office
|
||||
11 Chemistry
|
||||
12 Research
|
||||
13 RD Office
|
||||
14 Robotics
|
||||
15 HoP Office
|
||||
16 Library
|
||||
17 Chapel
|
||||
18 Theatre
|
||||
19 Bar
|
||||
20 Kitchen
|
||||
21 Hydroponics
|
||||
22 Janitor
|
||||
23 Genetics
|
||||
*/
|
||||
|
||||
GLOBAL_LIST_INIT(TAGGERLOCATIONS, list("Disposals",
|
||||
"Cargo Bay", "QM Office", "Engineering", "CE Office",
|
||||
"Atmospherics", "Security", "HoS Office", "Medbay",
|
||||
"CMO Office", "Chemistry", "Research", "RD Office",
|
||||
"Robotics", "HoP Office", "Library", "Chapel", "Theatre",
|
||||
"Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics"))
|
||||
|
||||
GLOBAL_LIST_INIT(guitar_notes, flist("sound/guitar/"))
|
||||
|
||||
GLOBAL_LIST_INIT(station_prefixes, world.file2list("strings/station_prefixes.txt") + "")
|
||||
|
||||
GLOBAL_LIST_INIT(station_names, world.file2list("strings/station_names.txt" + ""))
|
||||
|
||||
GLOBAL_LIST_INIT(station_suffixes, world.file2list("strings/station_suffixes.txt"))
|
||||
|
||||
GLOBAL_LIST_INIT(greek_letters, world.file2list("strings/greek_letters.txt"))
|
||||
|
||||
GLOBAL_LIST_INIT(phonetic_alphabet, world.file2list("strings/phonetic_alphabet.txt"))
|
||||
|
||||
GLOBAL_LIST_INIT(numbers_as_words, world.file2list("strings/numbers_as_words.txt"))
|
||||
|
||||
/proc/generate_number_strings()
|
||||
var/list/L[198]
|
||||
for(var/i in 1 to 99)
|
||||
L += "[i]"
|
||||
L += "\Roman[i]"
|
||||
return L
|
||||
|
||||
GLOBAL_LIST_INIT(station_numerals, greek_letters + phonetic_alphabet + numbers_as_words + generate_number_strings())
|
||||
|
||||
GLOBAL_LIST_INIT(admiral_messages, list("Do you know how expensive these stations are?","Stop wasting my time.","I was sleeping, thanks a lot.","Stand and fight you cowards!","You knew the risks coming in.","Stop being paranoid.","Whatever's broken just build a new one.","No.", "<i>null</i>","<i>Error: No comment given.</i>", "It's a good day to die!"))
|
||||
|
||||
@@ -22,5 +22,6 @@ GLOBAL_LIST_EMPTY(player_details) // ckey -> /datum/player_details
|
||||
GLOBAL_LIST_INIT(bitfields, list(
|
||||
"obj_flags" = list("EMAGGED" = EMAGGED, "IN_USE" = IN_USE, "CAN_BE_HIT" = CAN_BE_HIT, "BEING_SHOCKED" = BEING_SHOCKED, "DANGEROUS_POSSESSION" = DANGEROUS_POSSESSION, "ON_BLUEPRINTS" = ON_BLUEPRINTS, "UNIQUE_RENAME" = UNIQUE_RENAME),
|
||||
"datum_flags" = list("DF_USE_TAG" = DF_USE_TAG, "DF_VAR_EDITED" = DF_VAR_EDITED),
|
||||
"item_flags" = list("BEING_REMOVED" = BEING_REMOVED, "IN_INVENTORY" = IN_INVENTORY, "FORCE_STRING_OVERRIDE" = FORCE_STRING_OVERRIDE, "NEEDS_PERMIT" = NEEDS_PERMIT)
|
||||
"item_flags" = list("BEING_REMOVED" = BEING_REMOVED, "IN_INVENTORY" = IN_INVENTORY, "FORCE_STRING_OVERRIDE" = FORCE_STRING_OVERRIDE, "NEEDS_PERMIT" = NEEDS_PERMIT),
|
||||
"admin_flags" = list("BUILDMODE" = R_BUILDMODE, "ADMIN" = R_ADMIN, "BAN" = R_BAN, "FUN" = R_FUN, "SERVER" = R_SERVER, "DEBUG" = R_DEBUG, "POSSESS" = R_POSSESS, "PERMISSIONS" = R_PERMISSIONS, "STEALTH" = R_STEALTH, "POLL" = R_POLL, "VAREDIT" = R_VAREDIT, "SOUNDS" = R_SOUNDS, "SPAWN" = R_SPAWN, "AUTOLOGIN" = R_AUTOLOGIN, "DBRANKS" = R_DBRANKS)
|
||||
))
|
||||
|
||||
@@ -103,6 +103,7 @@
|
||||
#define ui_healthdoll "EAST-1:28,CENTER-2:13"
|
||||
#define ui_health "EAST-1:28,CENTER-1:15"
|
||||
#define ui_internal "EAST-1:28,CENTER:17"
|
||||
#define ui_mood "EAST-1:28,CENTER-3:10"
|
||||
|
||||
//borgs
|
||||
#define ui_borg_health "EAST-1:28,CENTER-1:15" //borgs have the health display where humans have the pressure damage indicator.
|
||||
|
||||
@@ -346,7 +346,11 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
icon_state = "runed_sense2"
|
||||
desc = "You can no longer sense your target's presence."
|
||||
return
|
||||
desc = "You are currently tracking [blood_target] in [get_area_name(blood_target)]."
|
||||
if(isliving(blood_target))
|
||||
var/mob/living/real_target = blood_target
|
||||
desc = "You are currently tracking [real_target.real_name] in [get_area_name(blood_target)]."
|
||||
else
|
||||
desc = "You are currently tracking [blood_target] in [get_area_name(blood_target)]."
|
||||
var/target_angle = Get_Angle(Q, P)
|
||||
var/target_dist = get_dist(P, Q)
|
||||
cut_overlays()
|
||||
|
||||
@@ -106,6 +106,11 @@
|
||||
layer = BLIND_LAYER
|
||||
plane = FULLSCREEN_PLANE
|
||||
|
||||
/obj/screen/fullscreen/depression
|
||||
icon_state = "depression"
|
||||
layer = FLASH_LAYER
|
||||
plane = FULLSCREEN_PLANE
|
||||
|
||||
/obj/screen/fullscreen/curse
|
||||
icon_state = "curse"
|
||||
layer = CURSE_LAYER
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
var/obj/screen/healths
|
||||
var/obj/screen/healthdoll
|
||||
var/obj/screen/internals
|
||||
var/obj/screen/mood
|
||||
|
||||
var/ui_style_icon = 'icons/mob/screen_midnight.dmi'
|
||||
|
||||
@@ -103,6 +104,7 @@
|
||||
healths = null
|
||||
healthdoll = null
|
||||
internals = null
|
||||
mood = null
|
||||
lingchemdisplay = null
|
||||
devilsouldisplay = null
|
||||
lingstingdisplay = null
|
||||
@@ -268,4 +270,4 @@
|
||||
show_hud(HUD_STYLE_STANDARD,mymob)
|
||||
|
||||
/datum/hud/proc/update_locked_slots()
|
||||
return
|
||||
return
|
||||
|
||||
@@ -289,6 +289,10 @@
|
||||
healthdoll = new /obj/screen/healthdoll()
|
||||
infodisplay += healthdoll
|
||||
|
||||
if(!CONFIG_GET(flag/disable_human_mood))
|
||||
mood = new /obj/screen/mood()
|
||||
infodisplay += mood
|
||||
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.update_icon(mymob)
|
||||
|
||||
@@ -538,6 +538,16 @@
|
||||
name = "health doll"
|
||||
screen_loc = ui_healthdoll
|
||||
|
||||
/obj/screen/mood
|
||||
name = "mood"
|
||||
icon_state = "mood5"
|
||||
screen_loc = ui_mood
|
||||
|
||||
/obj/screen/mood/Click()
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, usr)
|
||||
if(mood)
|
||||
mood.print_mood()
|
||||
|
||||
/obj/screen/splash
|
||||
icon = 'icons/blank_title.png'
|
||||
icon_state = ""
|
||||
|
||||
@@ -47,8 +47,10 @@
|
||||
/datum/config_entry/flag/force_random_names
|
||||
|
||||
/datum/config_entry/flag/humans_need_surnames
|
||||
|
||||
|
||||
/datum/config_entry/flag/allow_ai // allow ai job
|
||||
|
||||
/datum/config_entry/flag/disable_human_mood
|
||||
|
||||
/datum/config_entry/flag/disable_secborg // disallow secborg module to be chosen.
|
||||
|
||||
|
||||
@@ -394,4 +394,4 @@
|
||||
min_val = 0
|
||||
|
||||
/datum/config_entry/string/default_view
|
||||
config_entry_value = "15x15"
|
||||
config_entry_value = "15x15"
|
||||
|
||||
@@ -3,7 +3,7 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars)
|
||||
/datum/controller/global_vars
|
||||
name = "Global Variables"
|
||||
|
||||
var/list/gvars_datum_protected_varlist
|
||||
var/static/list/gvars_datum_protected_varlist
|
||||
var/list/gvars_datum_in_built_vars
|
||||
var/list/gvars_datum_init_order
|
||||
|
||||
@@ -20,18 +20,9 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars)
|
||||
|
||||
Initialize()
|
||||
|
||||
/datum/controller/global_vars/Destroy(force)
|
||||
stack_trace("Some fucker qdel'd the global holder!")
|
||||
if(!force)
|
||||
return QDEL_HINT_LETMELIVE
|
||||
|
||||
QDEL_NULL(statclick)
|
||||
gvars_datum_protected_varlist.Cut()
|
||||
gvars_datum_in_built_vars.Cut()
|
||||
|
||||
GLOB = null
|
||||
|
||||
return ..()
|
||||
/datum/controller/global_vars/Destroy()
|
||||
//fuck off kevinz
|
||||
return QDEL_HINT_IWILLGC
|
||||
|
||||
/datum/controller/global_vars/stat_entry()
|
||||
if(!statclick)
|
||||
|
||||
@@ -50,11 +50,13 @@ SUBSYSTEM_DEF(mapping)
|
||||
preloadTemplates()
|
||||
#ifndef LOWMEMORYMODE
|
||||
// Create space ruin levels
|
||||
while (space_levels_so_far < ZLEVEL_SPACE_RUIN_COUNT)
|
||||
while (space_levels_so_far < config.space_ruin_levels)
|
||||
++space_levels_so_far
|
||||
add_new_zlevel("Empty Area [space_levels_so_far]", ZTRAITS_SPACE)
|
||||
// and one level with no ruins
|
||||
empty_space = add_new_zlevel("Empty Area [1 + space_levels_so_far]", list(ZTRAIT_LINKAGE = CROSSLINKED))
|
||||
for (var/i in 1 to config.space_empty_levels)
|
||||
++space_levels_so_far
|
||||
empty_space = add_new_zlevel("Empty Area [space_levels_so_far]", list(ZTRAIT_LINKAGE = CROSSLINKED))
|
||||
// and the transit level
|
||||
transit = add_new_zlevel("Transit", list(ZTRAIT_TRANSIT = TRUE))
|
||||
|
||||
@@ -175,7 +177,7 @@ SUBSYSTEM_DEF(mapping)
|
||||
|
||||
#ifndef LOWMEMORYMODE
|
||||
// TODO: remove this when the DB is prepared for the z-levels getting reordered
|
||||
while (world.maxz < (5 - 1) && space_levels_so_far < ZLEVEL_SPACE_RUIN_COUNT)
|
||||
while (world.maxz < (5 - 1) && space_levels_so_far < config.space_ruin_levels)
|
||||
++space_levels_so_far
|
||||
add_new_zlevel("Empty Area [space_levels_so_far]", ZTRAITS_SPACE)
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
PROCESSING_SUBSYSTEM_DEF(mood)
|
||||
name = "Mood"
|
||||
flags = SS_NO_INIT | SS_BACKGROUND
|
||||
priority = 20
|
||||
@@ -171,6 +171,8 @@ SUBSYSTEM_DEF(persistence)
|
||||
/datum/controller/subsystem/persistence/proc/SetUpTrophies(list/trophy_items)
|
||||
for(var/A in GLOB.trophy_cases)
|
||||
var/obj/structure/displaycase/trophy/T = A
|
||||
if (T.showpiece)
|
||||
continue
|
||||
T.added_roundstart = TRUE
|
||||
|
||||
var/trophy_data = pick_n_take(trophy_items)
|
||||
|
||||
@@ -9,7 +9,7 @@ PROCESSING_SUBSYSTEM_DEF(traits)
|
||||
wait = 10
|
||||
runlevels = RUNLEVEL_GAME
|
||||
|
||||
var/list/traits = list() //Assoc. list of all roundstart trait datums; "name" = /path/
|
||||
var/list/traits = list() //Assoc. list of all roundstart trait datum types; "name" = /path/
|
||||
var/list/trait_points = list() //Assoc. list of trait names and their "point cost"; positive numbers are good traits, and negative ones are bad
|
||||
var/list/trait_objects = list() //A list of all trait objects in the game, since some may process
|
||||
|
||||
@@ -24,11 +24,10 @@ PROCESSING_SUBSYSTEM_DEF(traits)
|
||||
traits[initial(T.name)] = T
|
||||
trait_points[initial(T.name)] = initial(T.value)
|
||||
|
||||
/datum/controller/subsystem/processing/traits/proc/AssignTraits(mob/living/user, client/cli)
|
||||
if(!isnewplayer(user))
|
||||
GenerateTraits(cli)
|
||||
/datum/controller/subsystem/processing/traits/proc/AssignTraits(mob/living/user, client/cli, spawn_effects)
|
||||
GenerateTraits(cli)
|
||||
for(var/V in cli.prefs.character_traits)
|
||||
user.add_trait_datum(V)
|
||||
user.add_trait_datum(V, spawn_effects)
|
||||
|
||||
/datum/controller/subsystem/processing/traits/proc/GenerateTraits(client/user)
|
||||
if(user.prefs.character_traits.len)
|
||||
|
||||
@@ -387,6 +387,8 @@ SUBSYSTEM_DEF(ticker)
|
||||
captainless=0
|
||||
if(player.mind.assigned_role != player.mind.special_role)
|
||||
SSjob.EquipRank(N, player.mind.assigned_role, 0)
|
||||
if(CONFIG_GET(flag/roundstart_traits))
|
||||
SStraits.AssignTraits(player, N.client, TRUE)
|
||||
CHECK_TICK
|
||||
if(captainless)
|
||||
for(var/mob/dead/new_player/N in GLOB.player_list)
|
||||
|
||||
@@ -458,7 +458,7 @@ SUBSYSTEM_DEF(timer)
|
||||
if (wait >= 1 && callback && callback.object && callback.object != GLOBAL_PROC && QDELETED(callback.object))
|
||||
stack_trace("addtimer called with a callback assigned to a qdeleted object")
|
||||
|
||||
wait = max(wait, world.tick_lag)
|
||||
wait = max(wait, 0)
|
||||
|
||||
if(wait >= INFINITY)
|
||||
CRASH("Attempted to create timer with INFINITY delay")
|
||||
|
||||
@@ -43,6 +43,9 @@
|
||||
|
||||
/datum/brain_trauma/mild/dumbness/on_gain()
|
||||
owner.add_trait(TRAIT_DUMB, TRAUMA_TRAIT)
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, owner)
|
||||
if(mood)
|
||||
mood.add_event("dumb", /datum/mood_event/oblivious)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/dumbness/on_life()
|
||||
@@ -56,6 +59,9 @@
|
||||
/datum/brain_trauma/mild/dumbness/on_lose()
|
||||
owner.remove_trait(TRAIT_DUMB, TRAUMA_TRAIT)
|
||||
owner.derpspeech = 0
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, owner)
|
||||
if(mood)
|
||||
mood.clear_event("dumb")
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/speech_impediment
|
||||
@@ -211,4 +217,4 @@
|
||||
to_chat(owner, "<span class='warning'>Your arm spasms!</span>")
|
||||
log_attack("[key_name(owner)] threw [I] due to a Muscle Spasm.")
|
||||
owner.throw_item(pick(targets))
|
||||
..()
|
||||
..()
|
||||
|
||||
+21
-17
@@ -223,25 +223,27 @@
|
||||
/datum/browser/modal/listpicker
|
||||
var/valueslist = list()
|
||||
|
||||
/datum/browser/modal/listpicker/New(User,Message,Title,Button1="Ok",Button2,Button3,StealFocus = 1, Timeout = FALSE,list/values,inputtype="checkbox")
|
||||
/datum/browser/modal/listpicker/New(User,Message,Title,Button1="Ok",Button2,Button3,StealFocus = 1, Timeout = FALSE,list/values,inputtype="checkbox", width, height, slidecolor)
|
||||
if (!User)
|
||||
return
|
||||
|
||||
var/output = {"<form><input type="hidden" name="src" value="[REF(src)]"><ul class="sparse">"}
|
||||
|
||||
if (inputtype == "checkbox" || inputtype == "radio")
|
||||
for (var/i in values)
|
||||
var/div_slider = slidecolor
|
||||
if(!i["allowed_edit"])
|
||||
div_slider = "locked"
|
||||
output += {"<li>
|
||||
<label class="switch">
|
||||
<input type="[inputtype]" value="1" name="[i["name"]]"[i["checked"] ? " checked" : ""]>
|
||||
<div class="slider"></div>
|
||||
<span>[i["name"]]</span>
|
||||
</label>
|
||||
</li>"}
|
||||
<label class="switch">
|
||||
<input type="[inputtype]" value="1" name="[i["name"]]"[i["checked"] ? " checked" : ""][i["allowed_edit"] ? "" : " onclick='return false' onkeydown='return false'"]>
|
||||
<div class="slider [div_slider ? "[div_slider]" : ""]"></div>
|
||||
<span>[i["name"]]</span>
|
||||
</label>
|
||||
</li>"}
|
||||
else
|
||||
for (var/i in values)
|
||||
output += {"<li><input id="name="[i["name"]]"" style="width: 50px" type="[type]" name="[i["name"]]" value="[i["value"]]">
|
||||
<label for="[i["name"]]">[i["name"]]</label></li>"}
|
||||
<label for="[i["name"]]">[i["name"]]</label></li>"}
|
||||
output += {"</ul><div style="text-align:center">
|
||||
<button type="submit" name="button" value="1" style="font-size:large;float:[( Button2 ? "left" : "right" )]">[Button1]</button>"}
|
||||
|
||||
@@ -252,7 +254,7 @@
|
||||
output += {"<button type="submit" name="button" value="3" style="font-size:large;float:right">[Button3]</button>"}
|
||||
|
||||
output += {"</form></div>"}
|
||||
..(User, ckey("[User]-[Message]-[Title]-[world.time]-[rand(1,10000)]"), Title, 350, 350, src, StealFocus, Timeout)
|
||||
..(User, ckey("[User]-[Message]-[Title]-[world.time]-[rand(1,10000)]"), Title, width, height, src, StealFocus, Timeout)
|
||||
set_content(output)
|
||||
|
||||
/datum/browser/modal/listpicker/Topic(href,href_list)
|
||||
@@ -272,30 +274,32 @@
|
||||
opentime = 0
|
||||
close()
|
||||
|
||||
/proc/presentpicker(var/mob/User,Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1,Timeout = 6000,list/values, inputtype = "checkbox")
|
||||
/proc/presentpicker(var/mob/User,Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1,Timeout = 6000,list/values, inputtype = "checkbox", width, height, slidecolor)
|
||||
if (!istype(User))
|
||||
if (istype(User, /client/))
|
||||
var/client/C = User
|
||||
User = C.mob
|
||||
else
|
||||
return
|
||||
var/datum/browser/modal/listpicker/A = new(User, Message, Title, Button1, Button2, Button3, StealFocus,Timeout, values, inputtype)
|
||||
var/datum/browser/modal/listpicker/A = new(User, Message, Title, Button1, Button2, Button3, StealFocus,Timeout, values, inputtype, width, height, slidecolor)
|
||||
A.open()
|
||||
A.wait()
|
||||
if (A.selectedbutton)
|
||||
return list("button" = A.selectedbutton, "values" = A.valueslist)
|
||||
|
||||
/proc/input_bitfield(var/mob/User, title, bitfield, current_value)
|
||||
/proc/input_bitfield(var/mob/User, title, bitfield, current_value, nwidth = 350, nheight = 350, nslidecolor, allowed_edit_list = null)
|
||||
if (!User || !(bitfield in GLOB.bitfields))
|
||||
return
|
||||
var/list/pickerlist = list()
|
||||
for (var/i in GLOB.bitfields[bitfield])
|
||||
var/can_edit = 1
|
||||
if(!isnull(allowed_edit_list) && !(allowed_edit_list & GLOB.bitfields[bitfield][i]))
|
||||
can_edit = 0
|
||||
if (current_value & GLOB.bitfields[bitfield][i])
|
||||
pickerlist += list(list("checked" = 1, "value" = GLOB.bitfields[bitfield][i], "name" = i))
|
||||
pickerlist += list(list("checked" = 1, "value" = GLOB.bitfields[bitfield][i], "name" = i, "allowed_edit" = can_edit))
|
||||
else
|
||||
pickerlist += list(list("checked" = 0, "value" = GLOB.bitfields[bitfield][i], "name" = i))
|
||||
var/list/result = presentpicker(User, "", title, Button1="Save", Button2 = "Cancel", Timeout=FALSE, values = pickerlist)
|
||||
|
||||
pickerlist += list(list("checked" = 0, "value" = GLOB.bitfields[bitfield][i], "name" = i, "allowed_edit" = can_edit))
|
||||
var/list/result = presentpicker(User, "", title, Button1="Save", Button2 = "Cancel", Timeout=FALSE, values = pickerlist, width = nwidth, height = nheight, slidecolor = nslidecolor)
|
||||
if (islist(result))
|
||||
if (result["button"] == 2) // If the user pressed the cancel button
|
||||
return
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
/datum/component/mood
|
||||
var/mood //Real happiness
|
||||
var/shown_mood //Shown happiness, this is what others can see when they try to examine you, prevents antag checking by noticing traitors are always very happy.
|
||||
var/mood_level //To track what stage of moodies they're on
|
||||
var/mood_modifier = 1 //Modifier to allow certain mobs to be less affected by moodlets
|
||||
var/datum/mood_event/list/mood_events = list()
|
||||
var/mob/living/owner
|
||||
|
||||
/datum/component/mood/Initialize()
|
||||
if(!isliving(parent))
|
||||
. = COMPONENT_INCOMPATIBLE
|
||||
CRASH("Some good for nothing loser put a mood component on something that isn't even a living mob.")
|
||||
START_PROCESSING(SSmood, src)
|
||||
owner = parent
|
||||
|
||||
/datum/component/mood/Destroy()
|
||||
STOP_PROCESSING(SSmood, src)
|
||||
return ..()
|
||||
|
||||
/datum/component/mood/proc/print_mood()
|
||||
var/msg = "<span class='info'>*---------*\n<EM>Your current mood</EM>\n"
|
||||
for(var/i in mood_events)
|
||||
var/datum/mood_event/event = mood_events[i]
|
||||
msg += event.description
|
||||
to_chat(owner, msg)
|
||||
|
||||
/datum/component/mood/proc/update_mood() //Called whenever a mood event is added or removed
|
||||
mood = 0
|
||||
shown_mood = 0
|
||||
for(var/i in mood_events)
|
||||
var/datum/mood_event/event = mood_events[i]
|
||||
mood += event.mood_change
|
||||
if(!event.hidden)
|
||||
shown_mood += event.mood_change
|
||||
mood *= mood_modifier
|
||||
shown_mood *= mood_modifier
|
||||
|
||||
switch(mood)
|
||||
if(-INFINITY to MOOD_LEVEL_SAD4)
|
||||
mood_level = 1
|
||||
if(MOOD_LEVEL_SAD4 to MOOD_LEVEL_SAD3)
|
||||
mood_level = 2
|
||||
if(MOOD_LEVEL_SAD3 to MOOD_LEVEL_SAD2)
|
||||
mood_level = 3
|
||||
if(MOOD_LEVEL_SAD2 to MOOD_LEVEL_SAD1)
|
||||
mood_level = 4
|
||||
if(MOOD_LEVEL_SAD1 to MOOD_LEVEL_HAPPY1)
|
||||
mood_level = 5
|
||||
if(MOOD_LEVEL_HAPPY1 to MOOD_LEVEL_HAPPY2)
|
||||
mood_level = 6
|
||||
if(MOOD_LEVEL_HAPPY2 to MOOD_LEVEL_HAPPY3)
|
||||
mood_level = 7
|
||||
if(MOOD_LEVEL_HAPPY3 to MOOD_LEVEL_HAPPY4)
|
||||
mood_level = 8
|
||||
if(MOOD_LEVEL_HAPPY4 to INFINITY)
|
||||
mood_level = 9
|
||||
|
||||
if(owner.client && owner.hud_used)
|
||||
owner.hud_used.mood.icon_state = "mood[mood_level]"
|
||||
|
||||
/datum/component/mood/process() //Called on SSmood process
|
||||
switch(mood)
|
||||
if(-INFINITY to MOOD_LEVEL_SAD4)
|
||||
owner.overlay_fullscreen("depression", /obj/screen/fullscreen/depression, 3)
|
||||
if(MOOD_LEVEL_SAD4 to MOOD_LEVEL_SAD3)
|
||||
owner.overlay_fullscreen("depression", /obj/screen/fullscreen/depression, 2)
|
||||
if(MOOD_LEVEL_SAD3 to MOOD_LEVEL_SAD2)
|
||||
owner.overlay_fullscreen("depression", /obj/screen/fullscreen/depression, 1)
|
||||
if(MOOD_LEVEL_SAD2 to INFINITY)
|
||||
owner.clear_fullscreen("depression")
|
||||
|
||||
if(owner.has_trait(TRAIT_DEPRESSION))
|
||||
if(prob(0.1))
|
||||
add_event("depression", /datum/mood_event/depression)
|
||||
clear_event("jolly")
|
||||
if(owner.has_trait(TRAIT_JOLLY))
|
||||
if(prob(0.1))
|
||||
add_event("jolly", /datum/mood_event/jolly)
|
||||
clear_event("depression")
|
||||
|
||||
/datum/component/mood/proc/add_event(category, type, param) //Category will override any events in the same category, should be unique unless the event is based on the same thing like hunger.
|
||||
var/datum/mood_event/the_event
|
||||
if(mood_events[category])
|
||||
the_event = mood_events[category]
|
||||
if(the_event.type != type)
|
||||
clear_event(category)
|
||||
return .()
|
||||
else
|
||||
return 0 //Don't have to update the event.
|
||||
else
|
||||
the_event = new type(src, param)
|
||||
|
||||
mood_events[category] = the_event
|
||||
update_mood()
|
||||
|
||||
if(the_event.timeout)
|
||||
addtimer(CALLBACK(src, .proc/clear_event, category), the_event.timeout)
|
||||
|
||||
/datum/component/mood/proc/clear_event(category)
|
||||
var/datum/mood_event/event = mood_events[category]
|
||||
if(!event)
|
||||
return 0
|
||||
|
||||
mood_events -= category
|
||||
qdel(event)
|
||||
update_mood()
|
||||
|
||||
/datum/component/mood/proc/update_beauty(var/area/A)
|
||||
if(A.outdoors) //if we're outside, we don't care.
|
||||
clear_event("area_beauty")
|
||||
return FALSE
|
||||
switch(A.beauty)
|
||||
if(-INFINITY to BEAUTY_LEVEL_HORRID)
|
||||
add_event("area_beauty", /datum/mood_event/disgustingroom)
|
||||
if(BEAUTY_LEVEL_HORRID to BEAUTY_LEVEL_BAD)
|
||||
add_event("area_beauty", /datum/mood_event/grossroom)
|
||||
if(BEAUTY_LEVEL_BAD to BEAUTY_LEVEL_GOOD)
|
||||
clear_event("area_beauty")
|
||||
if(BEAUTY_LEVEL_GOOD to BEAUTY_LEVEL_GREAT)
|
||||
add_event("area_beauty", /datum/mood_event/niceroom)
|
||||
if(BEAUTY_LEVEL_GREAT to INFINITY)
|
||||
add_event("area_beauty", /datum/mood_event/greatroom)
|
||||
@@ -1,59 +1,62 @@
|
||||
//Thing meant for allowing datums and objects to access a NTnet network datum.
|
||||
/datum/proc/ntnet_recieve(datum/netdata/data)
|
||||
return
|
||||
|
||||
/datum/proc/ntnet_send(datum/netdata/data, netid)
|
||||
GET_COMPONENT(NIC, /datum/component/ntnet_interface)
|
||||
if(!NIC)
|
||||
return FALSE
|
||||
return NIC.__network_send(data, netid)
|
||||
|
||||
/datum/component/ntnet_interface
|
||||
var/hardware_id //text
|
||||
var/network_name = "" //text
|
||||
var/list/networks_connected_by_id = list() //id = datum/ntnet
|
||||
|
||||
/datum/component/ntnet_interface/Initialize(force_ID, force_name = "NTNet Device", autoconnect_station_network = TRUE) //Don't force ID unless you know what you're doing!
|
||||
if(!force_ID)
|
||||
hardware_id = "[SSnetworks.assignment_hardware_id++]"
|
||||
else
|
||||
hardware_id = force_ID
|
||||
network_name = force_name
|
||||
SSnetworks.register_interface(src)
|
||||
if(autoconnect_station_network)
|
||||
register_connection(SSnetworks.station_network)
|
||||
|
||||
/datum/component/ntnet_interface/Destroy()
|
||||
unregister_all_connections()
|
||||
SSnetworks.unregister_interface(src)
|
||||
return ..()
|
||||
|
||||
/datum/component/ntnet_interface/proc/__network_recieve(datum/netdata/data) //Do not directly proccall!
|
||||
parent.SendSignal(COMSIG_COMPONENT_NTNET_RECIEVE, data)
|
||||
parent.ntnet_recieve(data)
|
||||
|
||||
/datum/component/ntnet_interface/proc/__network_send(datum/netdata/data, netid) //Do not directly proccall!
|
||||
if(netid)
|
||||
if(networks_connected_by_id[netid])
|
||||
var/datum/ntnet/net = networks_connected_by_id[netid]
|
||||
return net.process_data_transmit(src, data)
|
||||
return FALSE
|
||||
for(var/i in networks_connected_by_id)
|
||||
var/datum/ntnet/net = networks_connected_by_id[i]
|
||||
net.process_data_transmit(src, data)
|
||||
return TRUE
|
||||
|
||||
/datum/component/ntnet_interface/proc/register_connection(datum/ntnet/net)
|
||||
if(net.interface_connect(src))
|
||||
networks_connected_by_id[net.network_id] = net
|
||||
return TRUE
|
||||
|
||||
/datum/component/ntnet_interface/proc/unregister_all_connections()
|
||||
for(var/i in networks_connected_by_id)
|
||||
unregister_connection(networks_connected_by_id[i])
|
||||
return TRUE
|
||||
|
||||
/datum/component/ntnet_interface/proc/unregister_connection(datum/ntnet/net)
|
||||
net.interface_disconnect(src)
|
||||
networks_connected_by_id -= net.network_id
|
||||
return TRUE
|
||||
//Thing meant for allowing datums and objects to access a NTnet network datum.
|
||||
/datum/proc/ntnet_recieve(datum/netdata/data)
|
||||
return
|
||||
|
||||
/datum/proc/ntnet_send(datum/netdata/data, netid)
|
||||
GET_COMPONENT(NIC, /datum/component/ntnet_interface)
|
||||
if(!NIC)
|
||||
return FALSE
|
||||
return NIC.__network_send(data, netid)
|
||||
|
||||
/datum/component/ntnet_interface
|
||||
var/hardware_id //text
|
||||
var/network_name = "" //text
|
||||
var/list/networks_connected_by_id = list() //id = datum/ntnet
|
||||
|
||||
/datum/component/ntnet_interface/Initialize(force_ID, force_name = "NTNet Device", autoconnect_station_network = TRUE) //Don't force ID unless you know what you're doing!
|
||||
if(!force_ID)
|
||||
hardware_id = "[SSnetworks.assignment_hardware_id++]"
|
||||
else
|
||||
hardware_id = force_ID
|
||||
network_name = force_name
|
||||
SSnetworks.register_interface(src)
|
||||
if(autoconnect_station_network)
|
||||
register_connection(SSnetworks.station_network)
|
||||
|
||||
/datum/component/ntnet_interface/Destroy()
|
||||
unregister_all_connections()
|
||||
SSnetworks.unregister_interface(src)
|
||||
return ..()
|
||||
|
||||
/datum/component/ntnet_interface/proc/__network_recieve(datum/netdata/data) //Do not directly proccall!
|
||||
parent.SendSignal(COMSIG_COMPONENT_NTNET_RECIEVE, data)
|
||||
parent.ntnet_recieve(data)
|
||||
|
||||
/datum/component/ntnet_interface/proc/__network_send(datum/netdata/data, netid) //Do not directly proccall!
|
||||
// Process data before sending it
|
||||
data.pre_send(src)
|
||||
|
||||
if(netid)
|
||||
if(networks_connected_by_id[netid])
|
||||
var/datum/ntnet/net = networks_connected_by_id[netid]
|
||||
return net.process_data_transmit(src, data)
|
||||
return FALSE
|
||||
for(var/i in networks_connected_by_id)
|
||||
var/datum/ntnet/net = networks_connected_by_id[i]
|
||||
net.process_data_transmit(src, data)
|
||||
return TRUE
|
||||
|
||||
/datum/component/ntnet_interface/proc/register_connection(datum/ntnet/net)
|
||||
if(net.interface_connect(src))
|
||||
networks_connected_by_id[net.network_id] = net
|
||||
return TRUE
|
||||
|
||||
/datum/component/ntnet_interface/proc/unregister_all_connections()
|
||||
for(var/i in networks_connected_by_id)
|
||||
unregister_connection(networks_connected_by_id[i])
|
||||
return TRUE
|
||||
|
||||
/datum/component/ntnet_interface/proc/unregister_connection(datum/ntnet/net)
|
||||
net.interface_disconnect(src)
|
||||
networks_connected_by_id -= net.network_id
|
||||
return TRUE
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
//Proc to use when you 100% want to try to infect someone (ignoreing protective clothing and such), as long as they aren't immune
|
||||
/mob/living/proc/ForceContractDisease(datum/disease/D, make_copy = TRUE, del_on_fail = FALSE)
|
||||
if(!CanContractDisease(D))
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
A.symptoms += S.Copy()
|
||||
A.properties = properties.Copy()
|
||||
A.id = id
|
||||
A.mutable = mutable
|
||||
//this is a new disease starting over at stage 1, so processing is not copied
|
||||
return A
|
||||
|
||||
@@ -166,13 +167,10 @@
|
||||
|
||||
var/the_id = GetDiseaseID()
|
||||
if(!SSdisease.archive_diseases[the_id])
|
||||
if(new_name)
|
||||
AssignName()
|
||||
SSdisease.archive_diseases[the_id] = src // So we don't infinite loop
|
||||
SSdisease.archive_diseases[the_id] = Copy()
|
||||
|
||||
var/datum/disease/advance/A = SSdisease.archive_diseases[the_id]
|
||||
name = A.name
|
||||
if(new_name)
|
||||
AssignName()
|
||||
|
||||
//Generate disease properties based on the effects. Returns an associated list.
|
||||
/datum/disease/advance/proc/GenerateProperties()
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
var/map_file = "BoxStation.dmm"
|
||||
|
||||
var/traits = null
|
||||
var/space_ruin_levels = 7
|
||||
var/space_empty_levels = 1
|
||||
|
||||
var/minetype = "lavaland"
|
||||
|
||||
@@ -106,6 +108,20 @@
|
||||
log_world("map_config traits is not a list!")
|
||||
return
|
||||
|
||||
var/temp = json["space_ruin_levels"]
|
||||
if (isnum(temp))
|
||||
space_ruin_levels = temp
|
||||
else if (!isnull(temp))
|
||||
log_world("map_config space_ruin_levels is not a number!")
|
||||
return
|
||||
|
||||
temp = json["space_empty_levels"]
|
||||
if (isnum(temp))
|
||||
space_empty_levels = temp
|
||||
else if (!isnull(temp))
|
||||
log_world("map_config space_empty_levels is not a number!")
|
||||
return
|
||||
|
||||
if ("minetype" in json)
|
||||
minetype = json["minetype"]
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
/datum/martial_art/mushpunch
|
||||
name = "Mushroom Punch"
|
||||
|
||||
/datum/martial_art/mushpunch/basic_hit(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
var/atk_verb
|
||||
to_chat(A, "<span class='spider'>You begin to wind up an attack...</span>")
|
||||
if(do_after(A, 25, target = D))
|
||||
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
|
||||
atk_verb = pick("punches", "smashes", "ruptures", "cracks")
|
||||
D.visible_message("<span class='danger'>[A] [atk_verb] [D] with inhuman strength, sending [D.p_them()] flying backwards!</span>", \
|
||||
"<span class='userdanger'>[A] [atk_verb] you with inhuman strength, sending you flying backwards!</span>")
|
||||
D.apply_damage(rand(15,30), BRUTE)
|
||||
playsound(get_turf(D), 'sound/effects/meteorimpact.ogg', 25, 1, -1)
|
||||
var/throwtarget = get_edge_target_turf(A, get_dir(A, get_step_away(D, A)))
|
||||
D.throw_at(throwtarget, 4, 2, A)//So stuff gets tossed around at the same time.
|
||||
D.Knockdown(20)
|
||||
if(atk_verb)
|
||||
add_logs(A, D, "[atk_verb] (Mushroom Punch)")
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/item/mushpunch
|
||||
name = "mysterious mushroom"
|
||||
desc = "<I>Sapienza Ophioglossoides</I>:An odd mushroom from the flesh of a mushroom person. it has apparently retained some innate power of it's owner, as it quivers with barely-contained POWER!"
|
||||
icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
|
||||
icon_state = "mycelium-angel"
|
||||
|
||||
/obj/item/mushpunch/attack_self(mob/living/carbon/human/user)
|
||||
if(!istype(user) || !user)
|
||||
return
|
||||
var/message = "<span class='spider'>You devour [src], and a confluence of skill and power from the mushroom enhances your punches! You do need a short moment to charge these powerful punches.</span>"
|
||||
to_chat(user, message)
|
||||
var/datum/martial_art/mushpunch/mush = new(null)
|
||||
mush.teach(user)
|
||||
qdel(src)
|
||||
visible_message("<span class='warning'>[user] devours [src].</span>")
|
||||
@@ -0,0 +1,39 @@
|
||||
/datum/mood_event/drugs/high
|
||||
mood_change = 6
|
||||
description = "<span class='nicegreen'>Woooow duudeeeeee...I'm tripping baaalls...</span>\n"
|
||||
|
||||
/datum/mood_event/drugs/smoked
|
||||
description = "<span class='nicegreen'>I have had a smoke recently.</span>\n"
|
||||
mood_change = 2
|
||||
timeout = 3600
|
||||
|
||||
/datum/mood_event/drugs/overdose
|
||||
mood_change = -8
|
||||
timeout = 3000
|
||||
|
||||
/datum/mood_event/drugs/overdose/add_effects(drug_name)
|
||||
description = "<span class='warning'>I think I took a bit too much of that [drug_name]</span>\n"
|
||||
|
||||
/datum/mood_event/drugs/withdrawal_light
|
||||
mood_change = -2
|
||||
|
||||
/datum/mood_event/drugs/withdrawal_light/add_effects(drug_name)
|
||||
description = "<span class='warning'>I could use some [drug_name]</span>\n"
|
||||
|
||||
/datum/mood_event/drugs/withdrawal_medium
|
||||
mood_change = -5
|
||||
|
||||
/datum/mood_event/drugs/withdrawal_medium/add_effects(drug_name)
|
||||
description = "<span class='warning'>I really need [drug_name]</span>\n"
|
||||
|
||||
/datum/mood_event/drugs/withdrawal_severe
|
||||
mood_change = -8
|
||||
|
||||
/datum/mood_event/drugs/withdrawal_severe/add_effects(drug_name)
|
||||
description = "<span class='boldwarning'>Oh god I need some [drug_name]</span>\n"
|
||||
|
||||
/datum/mood_event/drugs/withdrawal_critical
|
||||
mood_change = -10
|
||||
|
||||
/datum/mood_event/drugs/withdrawal_critical/add_effects(drug_name)
|
||||
description = "<span class='boldwarning'>[drug_name]! [drug_name]! [drug_name]!</span>\n"
|
||||
@@ -0,0 +1,71 @@
|
||||
/datum/mood_event/hug
|
||||
description = "<span class='nicegreen'>Hugs are nice.</span>\n"
|
||||
mood_change = 1
|
||||
timeout = 1200
|
||||
|
||||
/datum/mood_event/arcade
|
||||
description = "<span class='nicegreen'>I beat the arcade game!</span>\n"
|
||||
mood_change = 3
|
||||
timeout = 3000
|
||||
|
||||
/datum/mood_event/blessing
|
||||
description = "<span class='nicegreen'>I've been blessed.</span>\n"
|
||||
mood_change = 3
|
||||
timeout = 3000
|
||||
|
||||
/datum/mood_event/book_nerd
|
||||
description = "<span class='nicegreen'>I have recently read a book.</span>\n"
|
||||
mood_change = 3
|
||||
timeout = 3000
|
||||
|
||||
/datum/mood_event/pet_corgi
|
||||
description = "<span class='nicegreen'>Corgis are adorable! I can't stop petting them!</span>\n"
|
||||
mood_change = 3
|
||||
timeout = 3000
|
||||
|
||||
/datum/mood_event/honk
|
||||
description = "<span class='nicegreen'>Maybe clowns aren't so bad after all. Honk!</span>\n"
|
||||
mood_change = 2
|
||||
timeout = 2400
|
||||
|
||||
/datum/mood_event/perform_cpr
|
||||
description = "<span class='nicegreen'>It feels good to save a life.</span>\n"
|
||||
mood_change = 6
|
||||
timeout = 3000
|
||||
|
||||
/datum/mood_event/oblivious
|
||||
description = "<span class='nicegreen'>What a lovely day.</span>\n"
|
||||
mood_change = 3
|
||||
|
||||
/datum/mood_event/happytable
|
||||
description = "<span class='nicegreen'>They want to play on the table!</span>\n"
|
||||
mood_change = 2
|
||||
timeout = 1200
|
||||
|
||||
/datum/mood_event/jolly
|
||||
description = "<span class='nicegreen'>I feel happy for no particular reason.</span>\n"
|
||||
mood_change = 6
|
||||
timeout = 1200
|
||||
|
||||
/datum/mood_event/focused
|
||||
description = "<span class='nicegreen'>I have a goal, and I will reach it, whatever it takes!</span>\n" //Used for syndies, nukeops etc so they can focus on their goals
|
||||
mood_change = 12
|
||||
hidden = TRUE
|
||||
|
||||
/datum/mood_event/revolution
|
||||
description = "<span class='nicegreen'>VIVA LA REVOLUTION!</span>\n"
|
||||
mood_change = 3
|
||||
hidden = TRUE
|
||||
|
||||
/datum/mood_event/cult
|
||||
description = "<span class='nicegreen'>I have seen the truth, praise the almighty one!</span>\n"
|
||||
mood_change = 40 //maybe being a cultist isnt that bad after all
|
||||
hidden = TRUE
|
||||
|
||||
/datum/mood_event/niceroom
|
||||
description = "<span class='nicegreen'>This room looks really pretty!</span>\n"
|
||||
mood_change = 4
|
||||
|
||||
/datum/mood_event/greatroom
|
||||
description = "<span class='nicegreen'>This room is beautiful!</span>\n"
|
||||
mood_change = 7
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/mood_event
|
||||
var/description ///For descriptions, use the span classes bold nicegreen, nicegreen, none, warning and boldwarning in order from great to horrible.
|
||||
var/mood_change = 0
|
||||
var/timeout = 0
|
||||
var/hidden = FALSE//Not shown on examine
|
||||
var/mob/owner
|
||||
|
||||
/datum/mood_event/New(mob/M, param)
|
||||
owner = M
|
||||
add_effects(param)
|
||||
|
||||
/datum/mood_event/Destroy()
|
||||
remove_effects()
|
||||
|
||||
/datum/mood_event/proc/add_effects(param)
|
||||
return
|
||||
|
||||
/datum/mood_event/proc/remove_effects()
|
||||
return
|
||||
@@ -0,0 +1,54 @@
|
||||
//nutrition
|
||||
/datum/mood_event/nutrition/fat
|
||||
description = "<span class='warning'><B>I'm so fat..</B></span>\n" //muh fatshaming
|
||||
mood_change = -4
|
||||
|
||||
/datum/mood_event/nutrition/wellfed
|
||||
description = "<span class='nicegreen'>My belly feels round and full.</span>\n"
|
||||
mood_change = 6
|
||||
|
||||
/datum/mood_event/nutrition/fed
|
||||
description = "<span class='nicegreen'>I have recently had some food.</span>\n"
|
||||
mood_change = 3
|
||||
|
||||
/datum/mood_event/nutrition/hungry
|
||||
description = "<span class='warning'>I'm getting a bit hungry.</span>\n"
|
||||
mood_change = -8
|
||||
|
||||
/datum/mood_event/nutrition/starving
|
||||
description = "<span class='boldwarning'>I'm starving!</span>\n"
|
||||
mood_change = -15
|
||||
|
||||
//Disgust
|
||||
/datum/mood_event/disgust/gross
|
||||
description = "<span class='warning'>I saw something gross.</span>\n"
|
||||
mood_change = -2
|
||||
|
||||
/datum/mood_event/disgust/verygross
|
||||
description = "<span class='warning'>I think I'm going to puke...</span>\n"
|
||||
mood_change = -5
|
||||
|
||||
/datum/mood_event/disgust/disgusted
|
||||
description = "<span class='boldwarning'>Oh god that's disgusting...</span>\n"
|
||||
mood_change = -8
|
||||
|
||||
//Generic needs events
|
||||
/datum/mood_event/favorite_food
|
||||
description = "<span class='nicegreen'>I really enjoyed eating that.</span>\n"
|
||||
mood_change = 3
|
||||
timeout = 2400
|
||||
|
||||
/datum/mood_event/gross_food
|
||||
description = "<span class='nicegreen'>I really didn't like that food.</span>\n"
|
||||
mood_change = -2
|
||||
timeout = 2400
|
||||
|
||||
/datum/mood_event/disgusting_food
|
||||
description = "<span class='nicegreen'>That food was disgusting!</span>\n"
|
||||
mood_change = -4
|
||||
timeout = 2400
|
||||
|
||||
/datum/mood_event/nice_shower
|
||||
description = "<span class='nicegreen'>I have recently had a nice shower.</span>\n"
|
||||
mood_change = 2
|
||||
timeout = 1800
|
||||
@@ -11,6 +11,9 @@
|
||||
owner.visible_message("<span class='danger'>[owner] starts having a seizure!</span>", "<span class='userdanger'>You have a seizure!</span>")
|
||||
owner.Unconscious(200)
|
||||
owner.Jitter(1000)
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, owner)
|
||||
if(mood)
|
||||
mood.add_event("epilepsy", /datum/mood_event/epilepsy)
|
||||
addtimer(CALLBACK(src, .proc/jitter_less, owner), 90)
|
||||
|
||||
/datum/mutation/human/epilepsy/proc/jitter_less(mob/living/carbon/human/owner)
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
owner.add_trait(TRAIT_STUNIMMUNE, TRAIT_HULK)
|
||||
owner.add_trait(TRAIT_PUSHIMMUNE, TRAIT_HULK)
|
||||
owner.update_body_parts()
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, owner)
|
||||
if(mood)
|
||||
mood.add_event("hulk", /datum/mood_event/hulk)
|
||||
|
||||
/datum/mutation/human/hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target, proximity)
|
||||
if(proximity) //no telekinetic hulk attack
|
||||
@@ -30,7 +33,10 @@
|
||||
owner.remove_trait(TRAIT_STUNIMMUNE, TRAIT_HULK)
|
||||
owner.remove_trait(TRAIT_PUSHIMMUNE, TRAIT_HULK)
|
||||
owner.update_body_parts()
|
||||
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, owner)
|
||||
if(mood)
|
||||
mood.clear_event("hulk")
|
||||
|
||||
/datum/mutation/human/hulk/say_mod(message)
|
||||
if(message)
|
||||
message = "[uppertext(replacetext(message, ".", "!"))]!!"
|
||||
|
||||
@@ -85,6 +85,8 @@
|
||||
if(backpack_contents)
|
||||
for(var/path in backpack_contents)
|
||||
var/number = backpack_contents[path]
|
||||
if(!isnum(number))//Default to 1
|
||||
number = 1
|
||||
for(var/i=0,i<number,i++)
|
||||
H.equip_to_slot_or_del(new path(H),slot_in_backpack)
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
var/mob_trait //if applicable, apply and remove this mob trait
|
||||
var/mob/living/trait_holder
|
||||
|
||||
/datum/trait/New(mob/living/trait_mob)
|
||||
/datum/trait/New(mob/living/trait_mob, spawn_effects)
|
||||
..()
|
||||
if(!trait_mob || (human_only && !ishuman(trait_mob)) || trait_mob.has_trait_datum(type))
|
||||
qdel(src)
|
||||
@@ -23,9 +23,9 @@
|
||||
trait_holder.add_trait(mob_trait, ROUNDSTART_TRAIT)
|
||||
START_PROCESSING(SStraits, src)
|
||||
add()
|
||||
if(!SSticker.HasRoundStarted()) //on roundstart or on latejoin; latejoin code is in new_player.dm
|
||||
if(spawn_effects)
|
||||
on_spawn()
|
||||
addtimer(CALLBACK(src, .proc/post_add), 30)
|
||||
addtimer(CALLBACK(src, .proc/post_add), 30)
|
||||
|
||||
/datum/trait/Destroy()
|
||||
STOP_PROCESSING(SStraits, src)
|
||||
@@ -38,16 +38,25 @@
|
||||
SStraits.trait_objects -= src
|
||||
return ..()
|
||||
|
||||
/datum/trait/proc/transfer_mob(mob/living/to_mob)
|
||||
trait_holder.roundstart_traits -= src
|
||||
to_mob.roundstart_traits += src
|
||||
trait_holder = to_mob
|
||||
on_transfer()
|
||||
|
||||
/datum/trait/proc/add() //special "on add" effects
|
||||
/datum/trait/proc/on_spawn() //these should only trigger when the character is being created for the first time, i.e. roundstart/latejoin
|
||||
/datum/trait/proc/remove() //special "on remove" effects
|
||||
/datum/trait/proc/on_process() //process() has some special checks, so this is the actual process
|
||||
/datum/trait/proc/post_add() //for text, disclaimers etc. given after you spawn in with the trait
|
||||
/datum/trait/proc/on_transfer() //code called when the trait is transferred to a new mob
|
||||
|
||||
/datum/trait/process()
|
||||
if(QDELETED(trait_holder))
|
||||
qdel(src)
|
||||
return
|
||||
if(trait_holder.stat == DEAD)
|
||||
return
|
||||
on_process()
|
||||
|
||||
/mob/living/proc/get_trait_string(medical) //helper string. gets a string of all the traits the mob has
|
||||
@@ -67,6 +76,16 @@
|
||||
return "None"
|
||||
return dat.Join("<br>")
|
||||
|
||||
/mob/living/proc/cleanse_trait_datums() //removes all trait datums
|
||||
for(var/V in roundstart_traits)
|
||||
var/datum/trait/T = V
|
||||
qdel(T)
|
||||
|
||||
/mob/living/proc/transfer_trait_datums(mob/living/to_mob)
|
||||
for(var/V in roundstart_traits)
|
||||
var/datum/trait/T = V
|
||||
T.transfer_mob(to_mob)
|
||||
|
||||
/*
|
||||
|
||||
Commented version of Nearsighted to help you add your own traits
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
desc = "You walk with a gentle step, making stepping on sharp objects quieter and less painful."
|
||||
value = 1
|
||||
mob_trait = TRAIT_LIGHT_STEP
|
||||
gain_text = "<span class='notice'>You walk with a little more lithenessk.</span>"
|
||||
gain_text = "<span class='notice'>You walk with a little more litheness.</span>"
|
||||
lose_text = "<span class='danger'>You start tromping around like a barbarian.</span>"
|
||||
|
||||
|
||||
@@ -81,3 +81,26 @@
|
||||
mob_trait = TRAIT_VORACIOUS
|
||||
gain_text = "<span class='notice'>You feel HONGRY.</span>"
|
||||
lose_text = "<span class='danger'>You no longer feel HONGRY.</span>"
|
||||
|
||||
|
||||
/datum/trait/jolly
|
||||
name = "Jolly"
|
||||
desc = "You sometimes just feel happy, for no reason at all."
|
||||
value = 1
|
||||
mob_trait = TRAIT_JOLLY
|
||||
|
||||
|
||||
/datum/trait/apathetic
|
||||
name = "Apathetic"
|
||||
desc = "You just don't care as much as other people, that's nice to have in a place like this, I guess."
|
||||
value = 1
|
||||
|
||||
/datum/trait/apathetic/add()
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, trait_holder)
|
||||
if(mood)
|
||||
mood.mood_modifier = 0.8
|
||||
|
||||
/datum/trait/apathetic/remove()
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, trait_holder)
|
||||
if(mood)
|
||||
mood.mood_modifier = 1 //Change this once/if species get their own mood modifiers.
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
if(trait_holder.reagents.has_reagent("mindbreaker"))
|
||||
trait_holder.hallucination = 0
|
||||
return
|
||||
if(prob(1)) //we'll all be mad soon enough
|
||||
if(prob(2)) //we'll all be mad soon enough
|
||||
madness()
|
||||
|
||||
/datum/trait/insanity/proc/madness(mad_fools)
|
||||
@@ -154,3 +154,12 @@
|
||||
else if(prob(0.5) && dumb_thing)
|
||||
to_chat(H, "<span class='danger'>You think of a dumb thing you said a long time ago and scream internally.</span>")
|
||||
dumb_thing = FALSE //only once per life
|
||||
|
||||
/datum/trait/depression
|
||||
name = "Depression"
|
||||
desc = "You sometimes just hate life."
|
||||
mob_trait = TRAIT_DEPRESSION
|
||||
value = -1
|
||||
gain_text = "<span class='danger'>You start feeling depressed.</span>"
|
||||
lose_text = "<span class='notice'>You no longer feel depressed.</span>" //if only it were that easy!
|
||||
medical_record_text = "Patient has a severe mood disorder causing them to experience sudden moments of sadness."
|
||||
|
||||
@@ -48,17 +48,15 @@
|
||||
return
|
||||
if(!A.requiresID() || A.check_access(null))
|
||||
if(A.density)
|
||||
A.open()
|
||||
INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/open)
|
||||
else
|
||||
A.close()
|
||||
INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/close)
|
||||
if(WIRE_BOLTS) // Pulse to toggle bolts (but only raise if power is on).
|
||||
if(!A.locked)
|
||||
A.bolt()
|
||||
A.audible_message("<span class='italics'>You hear a click from the bottom of the door.</span>", null, 1)
|
||||
else
|
||||
if(A.hasPower())
|
||||
A.unbolt()
|
||||
A.audible_message("<span class='italics'>You hear a click from the bottom of the door.</span>", null, 1)
|
||||
A.update_icon()
|
||||
if(WIRE_IDSCAN) // Pulse to disable emergency access and flash red lights.
|
||||
if(A.hasPower() && A.density)
|
||||
|
||||
@@ -31,6 +31,9 @@
|
||||
|
||||
var/outdoors = FALSE //For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room)
|
||||
|
||||
var/beauty = 0 //To see how clean/dirty this area is, only works with indoors areas.
|
||||
var/areasize = 0 //Size of the area in tiles, only calculated for indoors areas.
|
||||
|
||||
var/power_equip = TRUE
|
||||
var/power_light = TRUE
|
||||
var/power_environ = TRUE
|
||||
@@ -145,6 +148,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
|
||||
if(!areas_in_z["[z]"])
|
||||
areas_in_z["[z]"] = list()
|
||||
areas_in_z["[z]"] += src
|
||||
update_area_size()
|
||||
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
@@ -497,6 +501,10 @@ GLOBAL_LIST_EMPTY(teleportlocs)
|
||||
L.client.played = TRUE
|
||||
addtimer(CALLBACK(L.client, /client/proc/ResetAmbiencePlayed), 600)
|
||||
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, L)
|
||||
if(mood)
|
||||
mood.update_beauty(src)
|
||||
|
||||
/client/proc/ResetAmbiencePlayed()
|
||||
played = FALSE
|
||||
|
||||
@@ -524,6 +532,13 @@ GLOBAL_LIST_EMPTY(teleportlocs)
|
||||
blob_allowed = FALSE
|
||||
addSorted()
|
||||
|
||||
/area/proc/update_area_size()
|
||||
if(outdoors)
|
||||
return FALSE
|
||||
areasize = 0
|
||||
for(var/turf/T in src.contents)
|
||||
areasize++
|
||||
|
||||
/area/AllowDrop()
|
||||
CRASH("Bad op: area/AllowDrop() called")
|
||||
|
||||
|
||||
@@ -542,4 +542,4 @@
|
||||
if(EMERGENCY_ESCAPED_OR_ENDGAMED)
|
||||
SSticker.news_report = STATION_EVACUATED
|
||||
if(SSshuttle.emergency.is_hijacked())
|
||||
SSticker.news_report = SHUTTLE_HIJACK
|
||||
SSticker.news_report = SHUTTLE_HIJACK
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
anchored = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 0
|
||||
var/obj/item/device/radio/beacon/Beacon
|
||||
var/obj/item/device/beacon/Beacon
|
||||
|
||||
/obj/machinery/bluespace_beacon/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
flick("autolathe_o",src)//plays metal insertion animation
|
||||
if (MAT_GLASS)
|
||||
flick("autolathe_r",src)//plays glass insertion animation
|
||||
use_power(max(1000, (MINERAL_MATERIAL_AMOUNT * amount_inserted / 100)))
|
||||
use_power(min(1000, amount_inserted / 100))
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/autolathe/Topic(href, href_list)
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
return examine(user)
|
||||
|
||||
//Start growing a human clone in the pod!
|
||||
/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, se, mindref, datum/species/mrace, list/features, factions)
|
||||
/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, se, mindref, datum/species/mrace, list/features, factions, list/traits)
|
||||
if(panel_open)
|
||||
return FALSE
|
||||
if(mess || attempting)
|
||||
@@ -198,6 +198,9 @@
|
||||
if(H)
|
||||
H.faction |= factions
|
||||
|
||||
for(var/V in traits)
|
||||
new V(H)
|
||||
|
||||
H.set_cloned_appearance()
|
||||
|
||||
H.suiciding = FALSE
|
||||
@@ -316,6 +319,7 @@
|
||||
SPEAK("An emergency ejection of [clonemind.name] has occurred. Survival not guaranteed.")
|
||||
to_chat(user, "<span class='notice'>You force an emergency ejection. </span>")
|
||||
go_out()
|
||||
mob_occupant.apply_vore_prefs()
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -405,6 +409,7 @@
|
||||
connected_message(Gibberish("EMP-caused Accidental Ejection", 0))
|
||||
SPEAK(Gibberish("Exposure to electromagnetic fields has caused the ejection of [mob_occupant.real_name] prematurely." ,0))
|
||||
go_out()
|
||||
mob_occupant.apply_vore_prefs()
|
||||
..()
|
||||
|
||||
/obj/machinery/clonepod/ex_act(severity, target)
|
||||
|
||||
@@ -67,7 +67,10 @@
|
||||
return INITIALIZE_HINT_QDEL
|
||||
Reset()
|
||||
|
||||
/obj/machinery/computer/arcade/proc/prizevend()
|
||||
/obj/machinery/computer/arcade/proc/prizevend(mob/user)
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, user)
|
||||
if(mood)
|
||||
mood.add_event("arcade", /datum/mood_event/arcade)
|
||||
if(prob(0.0001)) //1 in a million
|
||||
new /obj/item/gun/energy/pulse/prize(src)
|
||||
SSmedals.UnlockMedal(MEDAL_PULSE, usr.client)
|
||||
@@ -237,7 +240,7 @@
|
||||
Reset()
|
||||
obj_flags &= ~EMAGGED
|
||||
else
|
||||
prizevend()
|
||||
prizevend(usr)
|
||||
SSblackbox.record_feedback("nested tally", "arcade_results", 1, list("win", (obj_flags & EMAGGED ? "emagged":"normal")))
|
||||
|
||||
|
||||
@@ -1031,7 +1034,7 @@
|
||||
message_admins("[key_name_admin(usr)] made it to Orion on an emagged machine and got an explosive toy ship.")
|
||||
log_game("[key_name(usr)] made it to Orion on an emagged machine and got an explosive toy ship.")
|
||||
else
|
||||
prizevend()
|
||||
prizevend(usr)
|
||||
obj_flags &= ~EMAGGED
|
||||
name = "The Orion Trail"
|
||||
desc = "Learn how our ancestors got to Orion, and have fun in the process!"
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
if(pod.occupant)
|
||||
continue //how though?
|
||||
|
||||
if(pod.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"]))
|
||||
if(pod.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"], R.fields["traits"]))
|
||||
temp = "[R.fields["name"]] => <font class='good'>Cloning cycle in progress...</font>"
|
||||
records -= R
|
||||
|
||||
@@ -409,7 +409,7 @@
|
||||
else if(pod.occupant)
|
||||
temp = "<font class='bad'>Cloning cycle already in progress.</font>"
|
||||
playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0)
|
||||
else if(pod.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"]))
|
||||
else if(pod.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"], C.fields["traits"]))
|
||||
temp = "[C.fields["name"]] => <font class='good'>Cloning cycle in progress...</font>"
|
||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||
records.Remove(C)
|
||||
@@ -482,6 +482,10 @@
|
||||
R.fields["blood_type"] = dna.blood_type
|
||||
R.fields["features"] = dna.features
|
||||
R.fields["factions"] = mob_occupant.faction
|
||||
R.fields["traits"] = list()
|
||||
for(var/V in mob_occupant.roundstart_traits)
|
||||
var/datum/trait/T = V
|
||||
R.fields["traits"] += T.type
|
||||
|
||||
if (!isnull(mob_occupant.mind)) //Save that mind so traitors can continue traitoring after cloning.
|
||||
R.fields["mind"] = "[REF(mob_occupant.mind)]"
|
||||
|
||||
@@ -75,4 +75,4 @@
|
||||
return 0
|
||||
if(B.scrambledcodes || B.emagged)
|
||||
return 0
|
||||
return ..()
|
||||
return ..()
|
||||
@@ -160,7 +160,7 @@
|
||||
var/list/L = list()
|
||||
var/list/areaindex = list()
|
||||
if(regime_set == "Teleporter")
|
||||
for(var/obj/item/device/radio/beacon/R in GLOB.teleportbeacons)
|
||||
for(var/obj/item/device/beacon/R in GLOB.teleportbeacons)
|
||||
if(is_eligible(R))
|
||||
var/area/A = get_area(R)
|
||||
L[avoid_assoc_duplicate_keys(A.name, areaindex)] = R
|
||||
|
||||
@@ -101,8 +101,6 @@
|
||||
/obj/machinery/door/airlock/Initialize()
|
||||
. = ..()
|
||||
wires = new /datum/wires/airlock(src)
|
||||
if (cyclelinkeddir)
|
||||
cyclelinkairlock()
|
||||
if(frequency)
|
||||
set_frequency(frequency)
|
||||
|
||||
@@ -127,6 +125,8 @@
|
||||
|
||||
/obj/machinery/door/airlock/LateInitialize()
|
||||
. = ..()
|
||||
if (cyclelinkeddir)
|
||||
cyclelinkairlock()
|
||||
if(abandoned)
|
||||
var/outcome = rand(1,100)
|
||||
switch(outcome)
|
||||
@@ -153,6 +153,7 @@
|
||||
|
||||
/obj/machinery/door/airlock/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/ntnet_interface)
|
||||
AddComponent(/datum/component/rad_insulation, RAD_MEDIUM_INSULATION)
|
||||
|
||||
/obj/machinery/door/airlock/proc/update_other_id()
|
||||
@@ -178,6 +179,7 @@
|
||||
limit--
|
||||
while(!FoundDoor && limit)
|
||||
if (!FoundDoor)
|
||||
log_world("### MAP WARNING, [src] at [get_area_name(src, TRUE)] [COORD(src)] failed to find a valid airlock to cyclelink with!")
|
||||
return
|
||||
FoundDoor.cyclelinkedairlock = src
|
||||
cyclelinkedairlock = FoundDoor
|
||||
@@ -188,6 +190,55 @@
|
||||
if ("cyclelinkeddir")
|
||||
cyclelinkairlock()
|
||||
|
||||
/obj/machinery/door/airlock/check_access_ntnet(datum/netdata/data)
|
||||
return !requiresID() || ..()
|
||||
|
||||
/obj/machinery/door/airlock/ntnet_recieve(datum/netdata/data)
|
||||
// Check if the airlock is powered and can accept control packets.
|
||||
if(!hasPower() || !canAIControl())
|
||||
return
|
||||
|
||||
// Check packet access level.
|
||||
if(!check_access_ntnet(data))
|
||||
return
|
||||
|
||||
// Handle recieved packet.
|
||||
var/command = lowertext(data.plaintext_data)
|
||||
var/command_value = lowertext(data.plaintext_data_secondary)
|
||||
switch(command)
|
||||
if("open")
|
||||
if(command_value == "on" && !density)
|
||||
return
|
||||
|
||||
if(command_value == "off" && density)
|
||||
return
|
||||
|
||||
if(density)
|
||||
INVOKE_ASYNC(src, .proc/open)
|
||||
else
|
||||
INVOKE_ASYNC(src, .proc/close)
|
||||
|
||||
if("bolt")
|
||||
if(command_value == "on" && locked)
|
||||
return
|
||||
|
||||
if(command_value == "off" && !locked)
|
||||
return
|
||||
|
||||
if(locked)
|
||||
unbolt()
|
||||
else
|
||||
bolt()
|
||||
|
||||
if("emergency")
|
||||
if(command_value == "on" && emergency)
|
||||
return
|
||||
|
||||
if(command_value == "off" && !emergency)
|
||||
return
|
||||
|
||||
emergency = !emergency
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/door/airlock/lock()
|
||||
bolt()
|
||||
@@ -197,6 +248,7 @@
|
||||
return
|
||||
locked = TRUE
|
||||
playsound(src,boltDown,30,0,3)
|
||||
audible_message("<span class='italics'>You hear a click from the bottom of the door.</span>", null, 1)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/door/airlock/unlock()
|
||||
@@ -207,6 +259,7 @@
|
||||
return
|
||||
locked = FALSE
|
||||
playsound(src,boltUp,30,0,3)
|
||||
audible_message("<span class='italics'>You hear a click from the bottom of the door.</span>", null, 1)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/door/airlock/narsie_act()
|
||||
@@ -320,7 +373,7 @@
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/door/airlock/proc/canAIControl(mob/user)
|
||||
return ((aiControlDisabled != 1) && (!isAllPowerCut()));
|
||||
return ((aiControlDisabled != 1) && !isAllPowerCut())
|
||||
|
||||
/obj/machinery/door/airlock/proc/canAIHack()
|
||||
return ((aiControlDisabled==1) && (!hackProof) && (!isAllPowerCut()));
|
||||
|
||||
@@ -45,11 +45,6 @@
|
||||
if(!poddoor)
|
||||
to_chat(user, "<span class='notice'>Its maintenance panel is <b>screwed</b> in place.</span>")
|
||||
|
||||
/obj/machinery/door/check_access(access)
|
||||
if(red_alert_access && GLOB.security_level >= SEC_LEVEL_RED)
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/obj/machinery/door/check_access_list(list/access_list)
|
||||
if(red_alert_access && GLOB.security_level >= SEC_LEVEL_RED)
|
||||
return TRUE
|
||||
|
||||
@@ -68,4 +68,4 @@
|
||||
|
||||
/obj/machinery/door/poddoor/try_to_crowbar(obj/item/I, mob/user)
|
||||
if(stat & NOPOWER)
|
||||
open(1)
|
||||
open(1)
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
// SINGULO BEACON SPAWNER
|
||||
/obj/item/device/sbeacondrop
|
||||
name = "suspicious beacon"
|
||||
icon = 'icons/obj/radio.dmi'
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "beacon"
|
||||
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
|
||||
|
||||
@@ -178,3 +178,4 @@
|
||||
priority = "Extreme"
|
||||
else
|
||||
priority = "Undetermined"
|
||||
|
||||
|
||||
@@ -850,7 +850,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
|
||||
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
|
||||
req_access_txt = "5"
|
||||
products = list(/obj/item/reagent_containers/syringe = 12, /obj/item/reagent_containers/dropper = 3, /obj/item/stack/medical/gauze = 8, /obj/item/reagent_containers/pill/patch/styptic = 5, /obj/item/reagent_containers/pill/insulin = 10,
|
||||
/obj/item/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/reagent_containers/glass/bottle/charcoal = 4, /obj/item/reagent_containers/spray/medical/sterilizer = 1,
|
||||
/obj/item/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/reagent_containers/medspray/styptic = 2, /obj/item/reagent_containers/medspray/silver_sulf = 2, /obj/item/reagent_containers/glass/bottle/charcoal = 4, /obj/item/reagent_containers/medspray/sterilizine = 1,
|
||||
/obj/item/reagent_containers/glass/bottle/epinephrine = 4, /obj/item/reagent_containers/glass/bottle/morphine = 4, /obj/item/reagent_containers/glass/bottle/salglu_solution = 3,
|
||||
/obj/item/reagent_containers/glass/bottle/toxin = 3, /obj/item/reagent_containers/syringe/antiviral = 6, /obj/item/reagent_containers/pill/salbutamol = 2, /obj/item/device/healthanalyzer = 4, /obj/item/device/sensor_device = 2, /obj/item/pinpointer/crew = 2)
|
||||
contraband = list(/obj/item/reagent_containers/pill/tox = 3, /obj/item/reagent_containers/pill/morphine = 4, /obj/item/reagent_containers/pill/charcoal = 6)
|
||||
@@ -876,7 +876,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
|
||||
density = FALSE
|
||||
products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 5,
|
||||
/obj/item/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/reagent_containers/pill/charcoal = 2,
|
||||
/obj/item/reagent_containers/spray/medical/sterilizer = 1)
|
||||
/obj/item/reagent_containers/medspray/sterilizine = 1)
|
||||
contraband = list(/obj/item/reagent_containers/pill/tox = 2, /obj/item/reagent_containers/pill/morphine = 2)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
@@ -19,3 +19,4 @@
|
||||
/obj/mecha/combat/durand/RemoveActions(mob/living/user, human_occupant = 0)
|
||||
..()
|
||||
defense_action.Remove(user)
|
||||
|
||||
|
||||
@@ -27,3 +27,4 @@
|
||||
..()
|
||||
switch_damtype_action.Remove(user)
|
||||
phasing_action.Remove(user)
|
||||
|
||||
|
||||
@@ -64,17 +64,6 @@
|
||||
time_coeff = round(initial(time_coeff) - (initial(time_coeff)*(T))/5,0.01)
|
||||
|
||||
|
||||
/obj/machinery/mecha_part_fabricator/check_access(obj/item/card/id/I)
|
||||
if(istype(I, /obj/item/device/pda))
|
||||
var/obj/item/device/pda/pda = I
|
||||
I = pda.id
|
||||
if(!istype(I) || !I.access) //not ID or no access
|
||||
return FALSE
|
||||
for(var/req in req_access)
|
||||
if(!(req in I.access)) //doesn't have this access
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/mecha_part_fabricator/emag_act()
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
|
||||
@@ -193,9 +193,9 @@
|
||||
var/turf/T = safepick(get_area_turfs(impact_area))
|
||||
if(T)
|
||||
// Calculate new position (searches through beacons in world)
|
||||
var/obj/item/device/radio/beacon/chosen
|
||||
var/obj/item/device/beacon/chosen
|
||||
var/list/possible = list()
|
||||
for(var/obj/item/device/radio/beacon/W in GLOB.teleportbeacons)
|
||||
for(var/obj/item/device/beacon/W in GLOB.teleportbeacons)
|
||||
possible += W
|
||||
|
||||
if(possible.len > 0)
|
||||
@@ -218,7 +218,7 @@
|
||||
var/y_distance = TO.y - FROM.y
|
||||
var/x_distance = TO.x - FROM.x
|
||||
for (var/atom/movable/A in urange(12, FROM )) // iterate thru list of mobs in the area
|
||||
if(istype(A, /obj/item/device/radio/beacon))
|
||||
if(istype(A, /obj/item/device/beacon))
|
||||
continue // don't teleport beacons because that's just insanely stupid
|
||||
if(A.anchored)
|
||||
continue
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
var/list/random_icon_states = list()
|
||||
var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA
|
||||
var/bloodiness = 0 //0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints
|
||||
var/beauty = 0
|
||||
var/mergeable_decal = TRUE //when two of these are on a same tile or do we need to merge them into just one?
|
||||
|
||||
/obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases)
|
||||
@@ -16,6 +17,7 @@
|
||||
if(C != src && C.type == src.type && !QDELETED(C))
|
||||
if (replace_decal(C))
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
if(LAZYLEN(diseases))
|
||||
var/list/datum/disease/diseases_to_add = list()
|
||||
for(var/datum/disease/D in diseases)
|
||||
@@ -24,6 +26,11 @@
|
||||
if(LAZYLEN(diseases_to_add))
|
||||
AddComponent(/datum/component/infective, diseases_to_add)
|
||||
|
||||
/obj/effect/decal/cleanable/LateInitialize()
|
||||
if(src.loc && isturf(src.loc))
|
||||
var/area/A = get_area(src)
|
||||
A.beauty += beauty / max(1, A.areasize) //Ensures that the effects scale with room size
|
||||
|
||||
/obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal
|
||||
if(mergeable_decal)
|
||||
return TRUE
|
||||
@@ -90,12 +97,9 @@
|
||||
return bloodiness
|
||||
else
|
||||
return 0
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
/obj/effect/decal/cleanable/Destroy()
|
||||
. = ..()
|
||||
if(src.loc && isturf(src.loc))
|
||||
var/area/A = get_area(src)
|
||||
A.beauty -= beauty / max(1, A.areasize)
|
||||
>>>>>>> 0bc8550... Small moodie balance changes (#36242)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7")
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
blood_state = BLOOD_STATE_XENO
|
||||
beauty = -200
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7")
|
||||
blood_state = BLOOD_STATE_HUMAN
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
beauty = -200
|
||||
|
||||
/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C)
|
||||
C.add_blood_DNA(return_blood_DNA())
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
desc = "Someone should clean that up."
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "shards"
|
||||
beauty = -150
|
||||
|
||||
/obj/effect/decal/cleanable/ash
|
||||
name = "ashes"
|
||||
@@ -10,6 +11,7 @@
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "ash"
|
||||
mergeable_decal = FALSE
|
||||
beauty = -150
|
||||
|
||||
/obj/effect/decal/cleanable/ash/Initialize()
|
||||
. = ..()
|
||||
@@ -24,6 +26,7 @@
|
||||
/obj/effect/decal/cleanable/ash/large
|
||||
name = "large pile of ashes"
|
||||
icon_state = "big_ash"
|
||||
beauty = -150
|
||||
|
||||
/obj/effect/decal/cleanable/ash/large/Initialize()
|
||||
. = ..()
|
||||
@@ -34,6 +37,7 @@
|
||||
desc = "Back to sand."
|
||||
icon = 'icons/obj/shards.dmi'
|
||||
icon_state = "tiny"
|
||||
beauty = -20
|
||||
|
||||
/obj/effect/decal/cleanable/glass/Initialize()
|
||||
. = ..()
|
||||
@@ -47,17 +51,20 @@
|
||||
desc = "Someone should clean that up."
|
||||
icon_state = "dirt"
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
beauty = -150
|
||||
|
||||
/obj/effect/decal/cleanable/flour
|
||||
name = "flour"
|
||||
desc = "It's still good. Four second rule!"
|
||||
icon_state = "flour"
|
||||
beauty = -100
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow
|
||||
name = "glowing goo"
|
||||
desc = "Jeez. I hope that's not for lunch."
|
||||
light_color = LIGHT_COLOR_GREEN
|
||||
icon_state = "greenglow"
|
||||
beauty = -100
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -73,6 +80,7 @@
|
||||
layer = WALL_OBJ_LAYER
|
||||
icon_state = "cobweb1"
|
||||
resistance_flags = FLAMMABLE
|
||||
beauty = -150
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2
|
||||
icon_state = "cobweb2"
|
||||
@@ -84,10 +92,12 @@
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "molten"
|
||||
mergeable_decal = FALSE
|
||||
beauty = -250
|
||||
|
||||
/obj/effect/decal/cleanable/molten_object/large
|
||||
name = "big gooey grey mass"
|
||||
icon_state = "big_molten"
|
||||
beauty = -200
|
||||
|
||||
//Vomit (sorry)
|
||||
/obj/effect/decal/cleanable/vomit
|
||||
@@ -96,6 +106,7 @@
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "vomit_1"
|
||||
random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4")
|
||||
beauty = -400
|
||||
|
||||
/obj/effect/decal/cleanable/vomit/attack_hand(mob/user)
|
||||
if(ishuman(user))
|
||||
@@ -127,12 +138,14 @@
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3")
|
||||
beauty = -125
|
||||
|
||||
/obj/effect/decal/cleanable/plant_smudge
|
||||
name = "plant smudge"
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_plant")
|
||||
beauty = -125
|
||||
|
||||
/obj/effect/decal/cleanable/egg_smudge
|
||||
name = "smashed egg"
|
||||
@@ -140,6 +153,7 @@
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3")
|
||||
beauty = -125
|
||||
|
||||
/obj/effect/decal/cleanable/pie_smudge //honk
|
||||
name = "smashed pie"
|
||||
@@ -147,6 +161,7 @@
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_pie")
|
||||
beauty = -125
|
||||
|
||||
/obj/effect/decal/cleanable/chem_pile
|
||||
name = "chemical pile"
|
||||
@@ -154,6 +169,7 @@
|
||||
gender = NEUTER
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "ash"
|
||||
beauty = -125
|
||||
|
||||
/obj/effect/decal/cleanable/shreds
|
||||
name = "shreds"
|
||||
@@ -161,6 +177,7 @@
|
||||
icon_state = "shreds"
|
||||
gender = PLURAL
|
||||
mergeable_decal = FALSE
|
||||
beauty = -125
|
||||
|
||||
/obj/effect/decal/cleanable/shreds/ex_act(severity, target)
|
||||
if(severity == 1) //so shreds created during an explosion aren't deleted by the explosion.
|
||||
@@ -177,12 +194,14 @@
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
icon_state = "salt_pile"
|
||||
gender = NEUTER
|
||||
beauty = -125
|
||||
|
||||
/obj/effect/decal/cleanable/glitter
|
||||
name = "generic glitter pile"
|
||||
desc = "The herpes of arts and crafts."
|
||||
icon = 'icons/effects/tile_effects.dmi'
|
||||
gender = NEUTER
|
||||
beauty = 300
|
||||
|
||||
/obj/effect/decal/cleanable/glitter/pink
|
||||
name = "pink glitter"
|
||||
@@ -200,4 +219,5 @@
|
||||
name = "stabilized plasma"
|
||||
desc = "A puddle of stabilized plasma."
|
||||
icon_state = "flour"
|
||||
color = "#C8A5DC"
|
||||
color = "#C8A5DC"
|
||||
beauty = -200
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
blood_state = BLOOD_STATE_OIL
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
mergeable_decal = FALSE
|
||||
beauty = -200
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/proc/streak(list/directions)
|
||||
set waitfor = 0
|
||||
@@ -46,6 +47,7 @@
|
||||
random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7")
|
||||
blood_state = BLOOD_STATE_OIL
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
beauty = -125
|
||||
|
||||
/obj/effect/decal/cleanable/oil/Initialize()
|
||||
. = ..()
|
||||
@@ -57,4 +59,4 @@
|
||||
/obj/effect/decal/cleanable/oil/slippery
|
||||
|
||||
/obj/effect/decal/cleanable/oil/slippery/Initialize()
|
||||
AddComponent(/datum/component/slippery, 80, (NO_SLIP_WHEN_WALKING | SLIDE))
|
||||
AddComponent(/datum/component/slippery, 80, (NO_SLIP_WHEN_WALKING | SLIDE))
|
||||
|
||||
@@ -30,4 +30,4 @@
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/old
|
||||
name = "dusty robot debris"
|
||||
desc = "Looks like nobody has touched this in a while."
|
||||
desc = "Looks like nobody has touched this in a while."
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
/obj/item/reagent_containers/food/snacks/egg)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/gladiator
|
||||
name = "gladitator costume spawner"
|
||||
name = "gladiator costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/gladiator,
|
||||
/obj/item/clothing/head/helmet/gladiator)
|
||||
|
||||
@@ -531,6 +531,10 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
else
|
||||
M.take_bodypart_damage(7)
|
||||
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, M)
|
||||
if(mood)
|
||||
mood.add_event("eye_stab", /datum/mood_event/eye_stab)
|
||||
|
||||
add_logs(user, M, "attacked", "[src.name]", "(INTENT: [uppertext(user.a_intent)])")
|
||||
|
||||
M.adjust_blurriness(3)
|
||||
|
||||
@@ -191,6 +191,7 @@
|
||||
FD.CalculateAffectingAreas()
|
||||
to_chat(usr, "<span class='notice'>You rename the '[prevname]' to '[str]'.</span>")
|
||||
log_game("[key_name(usr)] has renamed [prevname] to [str]")
|
||||
A.update_area_size()
|
||||
interact()
|
||||
return 1
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user