Merge pull request #1 from Citadel-Station-13/master

dsgsdg
This commit is contained in:
Cameron!
2018-03-13 16:52:26 -04:00
committed by GitHub
1136 changed files with 31454 additions and 33123 deletions
+3 -3
View File
@@ -6,15 +6,15 @@
#deathride58
/modular_citadel/ @deathride58
/code/citadel/ @deathride58
#LetterJay
/modular_citadel/code/modules/client/loadout/__donator.dm @LetterJay
#Poojawa
/code/modules/vore @Poojawa
/code/citadel/dogborgstuff.dmm @Poojawa
/modular_citadel/code/modules/vore @Poojawa
/code/game/objects/items/devices/dogborg_sleeper.dm @Poojawa
/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm @Poojawa
/tgui/ @Poojawa
/modular_citadel/code/modules/clothing/spacesuits/flightsuit.dm @Poojawa
/modular_citadel/code/game/objects/ids.dm @Poojawa
+3 -1
View File
@@ -13,7 +13,6 @@
*.lk
*.int
*.backup
*.int
### https://raw.github.com/github/gitignore/cc542de017c606138a87ee4880e5f06b3a306def/Global/Linux.gitignore
*~
@@ -127,6 +126,9 @@ celerybeat-schedule
venv/
ENV/
# IntelliJ IDEA / PyCharm (with plugin)
.idea
# Spyder project settings
.spyderproject
+44 -10
View File
@@ -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
View File
@@ -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;
--
+13 -15
View File
@@ -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;
--
@@ -24,7 +24,7 @@
/area/ruin/unpowered)
"f" = (
/obj/structure/mirror{
desc = "Oh no, seven years of bad luck!";
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
icon_state = "mirror_broke";
pixel_x = 28;
broken = 1
@@ -56,6 +56,7 @@
/area/ruin/unpowered)
"k" = (
/obj/structure/mirror{
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
icon_state = "mirror_broke";
pixel_y = 28;
broken = 1
@@ -65,7 +66,7 @@
/area/ruin/unpowered)
"l" = (
/obj/structure/mirror{
desc = "Oh no, seven years of bad luck!";
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
icon_state = "mirror_broke";
pixel_x = 28;
broken = 1
@@ -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" = (
@@ -0,0 +1,503 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/closed/wall/r_wall,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"c" = (
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"d" = (
/turf/closed/wall/r_wall/rust,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"e" = (
/obj/machinery/defibrillator_mount/loaded,
/turf/closed/wall/r_wall,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"f" = (
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"g" = (
/obj/structure/table,
/obj/item/device/flashlight/lamp,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plasteel/whiteblue,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"h" = (
/obj/structure/table,
/obj/item/pen,
/obj/item/paper/fluff/ruins/exp_cloning/log,
/turf/open/floor/plasteel/whiteblue,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"i" = (
/obj/machinery/dna_scannernew,
/turf/open/floor/plasteel/whiteblue,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"j" = (
/obj/machinery/computer/prototype_cloning,
/obj/machinery/light{
dir = 1
},
/obj/item/paper/fluff/ruins/exp_cloning/manual,
/turf/open/floor/plasteel/whiteblue,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"k" = (
/obj/machinery/clonepod/experimental,
/turf/open/floor/plasteel/whiteblue,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"l" = (
/obj/effect/decal/cleanable/vomit/old,
/turf/open/floor/plasteel/whiteblue,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"m" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plasteel/whiteblue,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"n" = (
/obj/structure/sign/nanotrasen,
/turf/closed/wall,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"o" = (
/obj/machinery/vending/snack/teal,
/turf/open/floor/plasteel/airless/floorgrime,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"p" = (
/turf/open/floor/plasteel/airless/floorgrime,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"q" = (
/obj/structure/sign/directions/science{
dir = 8
},
/turf/closed/wall/r_wall,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"r" = (
/obj/effect/decal/remains/human,
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"s" = (
/obj/machinery/iv_drip,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"t" = (
/obj/machinery/light{
dir = 4
},
/obj/structure/bed,
/obj/item/bedsheet/medical,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"u" = (
/obj/machinery/light{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"v" = (
/turf/open/floor/plasteel/whiteblue/corner{
dir = 4
},
/area/ruin/space/has_grav/powered/ancient_shuttle)
"w" = (
/obj/structure/chair/office{
dir = 1
},
/turf/open/floor/plasteel/whiteblue/side{
dir = 1
},
/area/ruin/space/has_grav/powered/ancient_shuttle)
"x" = (
/turf/open/floor/plasteel/whiteblue/side{
dir = 1
},
/area/ruin/space/has_grav/powered/ancient_shuttle)
"y" = (
/obj/structure/chair/office{
dir = 1
},
/turf/open/floor/plasteel/whiteblue,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"z" = (
/obj/machinery/light{
dir = 4
},
/turf/open/floor/plasteel/whiteblue/corner{
dir = 1
},
/area/ruin/space/has_grav/powered/ancient_shuttle)
"A" = (
/obj/structure/sign/departments/science,
/turf/closed/wall,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"B" = (
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"C" = (
/turf/open/floor/plating/airless,
/area/space/nearstation)
"D" = (
/obj/structure/chair/comfy{
dir = 8
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"E" = (
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"F" = (
/obj/machinery/door/airlock/research/glass,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"G" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"H" = (
/obj/machinery/door/airlock/research/glass,
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"I" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"J" = (
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"K" = (
/obj/machinery/door/airlock/research/glass,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"L" = (
/turf/open/floor/plating/airless{
icon_state = "platingdmg1"
},
/area/space/nearstation)
"M" = (
/obj/structure/fluff/broken_flooring{
name = "broken plating";
icon_state = "plating";
dir = 8
},
/turf/template_noop,
/area/space/nearstation)
"N" = (
/obj/item/book/random/triple,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"O" = (
/obj/machinery/light{
dir = 4
},
/obj/structure/bookcase/random/fiction,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"P" = (
/obj/structure/table/glass,
/obj/machinery/light,
/obj/structure/bedsheetbin,
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"Q" = (
/obj/structure/table/glass,
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"R" = (
/obj/structure/table/glass,
/obj/item/storage/firstaid/regular,
/obj/item/device/healthanalyzer{
desc = "A prototype hand-held body scanner able to distinguish vital signs of the subject.";
name = "prototype health analyzer"
},
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"S" = (
/obj/structure/table/glass,
/obj/item/storage/box/syringes,
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"T" = (
/turf/closed/wall,
/area/ruin/space/has_grav/powered/ancient_shuttle)
"U" = (
/turf/open/floor/plating/airless{
icon_state = "platingdmg2"
},
/area/space/nearstation)
"V" = (
/turf/closed/wall/r_wall/rust,
/area/space/nearstation)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
"}
(2,1,1) = {"
a
a
a
a
a
a
a
a
a
"}
(3,1,1) = {"
a
a
c
c
c
c
c
a
a
"}
(4,1,1) = {"
a
a
c
r
D
N
c
a
a
"}
(5,1,1) = {"
a
a
c
s
E
E
c
a
a
"}
(6,1,1) = {"
a
a
d
t
E
O
d
a
a
"}
(7,1,1) = {"
a
a
d
b
F
d
d
a
a
"}
(8,1,1) = {"
a
a
a
b
G
b
a
a
a
"}
(9,1,1) = {"
a
a
d
d
H
b
b
a
a
"}
(10,1,1) = {"
a
b
b
u
I
I
c
a
a
"}
(11,1,1) = {"
a
c
g
v
J
J
c
a
a
"}
(12,1,1) = {"
a
c
h
w
J
J
d
a
a
"}
(13,1,1) = {"
a
d
i
x
J
P
b
a
a
"}
(14,1,1) = {"
a
b
j
y
J
Q
c
a
a
"}
(15,1,1) = {"
a
b
k
x
J
R
c
a
a
"}
(16,1,1) = {"
a
e
l
x
J
S
d
a
a
"}
(17,1,1) = {"
a
d
m
z
J
J
d
a
a
"}
(18,1,1) = {"
a
d
n
A
K
T
b
a
a
"}
(19,1,1) = {"
a
f
o
B
p
C
V
a
a
"}
(20,1,1) = {"
a
f
p
p
C
U
M
a
a
"}
(21,1,1) = {"
a
d
q
C
L
M
a
a
a
"}
(22,1,1) = {"
a
a
b
f
M
a
a
a
a
"}
(23,1,1) = {"
a
a
a
a
a
a
a
a
a
"}
+2 -2
View File
@@ -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,
+1 -1
View File
@@ -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" = (
+2 -4
View File
@@ -4078,10 +4078,8 @@
pixel_x = 11
},
/obj/structure/mirror{
desc = "Oh no, seven years of bad luck!";
icon_state = "mirror_broke";
pixel_x = 28;
broken = 1
pixel_x = 28
},
/turf/open/floor/plasteel/freezer{
heat_capacity = 1e+006
@@ -6091,7 +6089,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"
},
+3 -3
View File
@@ -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
},
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+78 -137
View File
@@ -2574,7 +2574,7 @@
c_tag = "AI Vault - Port";
dir = 4;
name = "ai camera";
network = list("Sat");
network = list("minisat");
start_active = 1
},
/obj/effect/turf_decal/stripes/line{
@@ -3515,7 +3515,7 @@
c_tag = "AI Vault - Starboard";
dir = 8;
name = "ai camera";
network = list("Sat");
network = list("minisat");
start_active = 1
},
/obj/effect/turf_decal/stripes/line{
@@ -4081,8 +4081,7 @@
},
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/machinery/camera{
c_tag = "Armoury - Internal";
network = list("Labor")
c_tag = "Armoury - Internal"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -4542,8 +4541,7 @@
dir = 8
},
/obj/machinery/camera{
c_tag = "Security - Cell 1";
network = list("MINE")
c_tag = "Security - Cell 1"
},
/turf/open/floor/plasteel/red/side{
dir = 5
@@ -4569,8 +4567,7 @@
},
/obj/machinery/camera{
c_tag = "Fore Primary Hallway";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/red/corner{
dir = 1
@@ -5967,8 +5964,7 @@
/obj/item/stamp,
/obj/machinery/camera{
c_tag = "Cargo Bay Entrance";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/brown{
dir = 8
@@ -6147,8 +6143,7 @@
dir = 8
},
/obj/machinery/camera{
c_tag = "Security - Cell 2";
network = list("MINE")
c_tag = "Security - Cell 2"
},
/turf/open/floor/plasteel/red/side{
dir = 5
@@ -6521,8 +6516,7 @@
},
/obj/machinery/camera{
c_tag = "Security - Office";
dir = 4;
network = list("MINE")
dir = 4
},
/turf/open/floor/plasteel/red/corner{
dir = 1
@@ -6547,8 +6541,7 @@
"amK" = (
/obj/machinery/camera{
c_tag = "Security - Central";
dir = 4;
network = list("MINE")
dir = 4
},
/turf/open/floor/plasteel/neutral/side{
dir = 8
@@ -6629,8 +6622,7 @@
"amS" = (
/obj/machinery/camera{
c_tag = "Locker Room Toilets";
dir = 8;
network = list("SS13")
dir = 8
},
/turf/open/floor/plasteel/freezer,
/area/hallway/primary/central)
@@ -8505,8 +8497,7 @@
/obj/item/shovel,
/obj/machinery/camera{
c_tag = "Mining Dock";
dir = 4;
network = list("SS13")
dir = 4
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
@@ -9015,7 +9006,6 @@
},
/obj/machinery/camera{
c_tag = "Atmospherics Tank 4";
network = list("thunder");
pixel_x = 10
},
/turf/open/floor/plasteel/green/side{
@@ -9418,8 +9408,7 @@
},
/obj/machinery/camera{
c_tag = "Central Diner 3";
dir = 4;
network = list("MINE")
dir = 4
},
/turf/open/floor/plasteel/vault/side{
dir = 4
@@ -10058,8 +10047,7 @@
"atz" = (
/obj/machinery/camera{
c_tag = "Atmospherics Tank 1";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/vault{
dir = 5
@@ -10454,8 +10442,7 @@
},
/obj/machinery/camera{
c_tag = "Bar";
dir = 8;
network = list("SS13")
dir = 8
},
/turf/open/floor/plasteel/vault{
dir = 8
@@ -10473,8 +10460,7 @@
},
/obj/machinery/camera{
c_tag = "Bar Backroom";
dir = 4;
network = list("MINE")
dir = 4
},
/turf/open/floor/plasteel/vault,
/area/crew_quarters/bar/atrium)
@@ -11736,8 +11722,7 @@
},
/obj/machinery/camera{
c_tag = "Atmospherics East";
dir = 8;
network = list("SS13")
dir = 8
},
/turf/open/floor/plasteel/caution{
dir = 4
@@ -11956,8 +11941,7 @@
"axj" = (
/obj/machinery/camera{
c_tag = "Atmospherics Tank 2";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/vault{
dir = 5
@@ -12059,8 +12043,7 @@
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/camera{
c_tag = "Atmospherics Monitoring";
dir = 2;
network = list("SS13")
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
@@ -12634,8 +12617,7 @@
},
/obj/machinery/camera{
c_tag = "Central Diner 2";
dir = 4;
network = list("MINE")
dir = 4
},
/turf/open/floor/plasteel/vault/side{
dir = 4
@@ -13466,8 +13448,7 @@
/obj/structure/bedsheetbin,
/obj/machinery/camera{
c_tag = "Locker Room East";
dir = 8;
network = list("SS13")
dir = 8
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel/arrival{
@@ -14488,8 +14469,7 @@
},
/obj/machinery/camera{
c_tag = "Central Hallway East";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/neutral/corner{
dir = 1
@@ -15091,8 +15071,7 @@
},
/obj/machinery/camera{
c_tag = "Engineering Secure Storage";
dir = 4;
network = list("SS13")
dir = 4
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel/vault/side{
@@ -15337,8 +15316,7 @@
},
/obj/machinery/camera{
c_tag = "Locker Room South";
dir = 8;
network = list("SS13")
dir = 8
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel/vault{
@@ -15695,8 +15673,7 @@
},
/obj/machinery/camera{
c_tag = "SMES Access";
dir = 8;
network = list("SS13")
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 2
@@ -15739,8 +15716,7 @@
},
/obj/machinery/camera{
c_tag = "Engineering Access";
dir = 8;
network = list("Labor")
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -15877,8 +15853,7 @@
},
/obj/machinery/camera{
c_tag = "Central Diner 1";
dir = 4;
network = list("MINE")
dir = 4
},
/turf/open/floor/plasteel/redyellow,
/area/crew_quarters/bar/atrium)
@@ -16458,8 +16433,7 @@
"aHg" = (
/obj/machinery/camera{
c_tag = "Gravity Generator Room";
dir = 8;
network = list("SS13")
dir = 8
},
/obj/effect/turf_decal/bot_white/left,
/turf/open/floor/plasteel/vault{
@@ -16559,7 +16533,7 @@
/obj/machinery/camera{
c_tag = "Engineering Fore";
dir = 2;
network = list("SS13","Engine");
network = list("ss13","engine");
pixel_x = 23
},
/turf/open/floor/engine,
@@ -17184,8 +17158,7 @@
},
/obj/machinery/camera{
c_tag = "Engineering Monitoring";
dir = 2;
network = list("SS13")
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
@@ -18010,7 +17983,7 @@
/obj/machinery/camera{
c_tag = "Kitchen Coldroom";
dir = 4;
network = list("MINE")
network = list("mine")
},
/turf/open/floor/plasteel/freezer,
/area/crew_quarters/kitchen)
@@ -19145,7 +19118,7 @@
/obj/machinery/camera{
c_tag = "Engineering Port";
dir = 4;
network = list("SS13","Engine")
network = list("ss13","engine")
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -19171,7 +19144,7 @@
/obj/machinery/camera{
c_tag = "Supermatter Chamber";
dir = 2;
network = list("Engine");
network = list("engine");
pixel_x = 23
},
/obj/structure/cable{
@@ -19285,7 +19258,7 @@
desc = "Used for watching the Engine.";
dir = 1;
name = "Engine Monitor";
network = list("Engine");
network = list("engine");
pixel_y = -32
},
/obj/machinery/rnd/protolathe/department/engineering,
@@ -19335,8 +19308,7 @@
},
/obj/machinery/camera{
c_tag = "Atmospherics South West";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/neutral/corner{
dir = 8;
@@ -19468,8 +19440,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/camera{
c_tag = "Hydroponics South";
dir = 8;
network = list("SS13")
dir = 8
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel/vault/side{
@@ -20153,8 +20124,7 @@
icon_state = "4-8"
},
/obj/machinery/camera{
c_tag = "Aft Primary Hallway 4";
network = list("SS13","Prison")
c_tag = "Aft Primary Hallway 4"
},
/turf/open/floor/plasteel/green/corner{
dir = 1
@@ -20262,8 +20232,7 @@
icon_state = "4-8"
},
/obj/machinery/camera{
c_tag = "Aft Primary Hallway 3";
network = list("SS13","Prison")
c_tag = "Aft Primary Hallway 3"
},
/turf/open/floor/plasteel/green/corner{
dir = 1
@@ -21100,7 +21069,7 @@
/obj/machinery/camera{
c_tag = "Engineering Aft";
dir = 2;
network = list("SS13","Engine");
network = list("ss13","engine");
pixel_x = 23
},
/obj/machinery/atmospherics/pipe/simple/orange/visible{
@@ -21257,8 +21226,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/camera{
c_tag = "Aft Primary Hallway 2";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/yellow/corner{
dir = 8
@@ -21535,8 +21503,7 @@
},
/obj/machinery/camera{
c_tag = "Library 2";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/dark,
/area/library)
@@ -21685,8 +21652,7 @@
},
/obj/machinery/camera{
c_tag = "Chemistry";
dir = 2;
network = list("SS13")
dir = 2
},
/turf/open/floor/plasteel/whiteyellow/corner{
dir = 1
@@ -22567,8 +22533,7 @@
"aUo" = (
/obj/machinery/camera{
c_tag = "Genetics Cloning";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/whiteblue/corner{
dir = 1
@@ -23136,7 +23101,7 @@
/obj/machinery/camera{
c_tag = "Server Room";
dir = 2;
network = list("SS13","RD");
network = list("ss13","rd");
pixel_x = 22
},
/turf/open/floor/circuit/green/telecomms/mainframe,
@@ -23645,8 +23610,7 @@
/obj/structure/closet/crate/bin,
/obj/machinery/camera{
c_tag = "Medbay Morgue";
dir = 8;
network = list("SS13")
dir = 8
},
/turf/open/floor/plasteel/vault/side{
dir = 8
@@ -23914,8 +23878,7 @@
},
/obj/machinery/camera{
c_tag = "Medbay West";
dir = 2;
network = list("SS13")
dir = 2
},
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -24230,8 +24193,7 @@
},
/obj/machinery/camera{
c_tag = "Medbay Storage";
dir = 2;
network = list("SS13")
dir = 2
},
/obj/effect/turf_decal/delivery,
/obj/structure/window/reinforced{
@@ -24495,8 +24457,7 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/obj/machinery/camera{
c_tag = "Research Division South";
dir = 8;
network = list("SS13")
dir = 8
},
/turf/open/floor/plasteel/whitepurple/corner,
/area/science/research)
@@ -25331,7 +25292,7 @@
/obj/machinery/camera{
c_tag = "Robotics Lab";
dir = 2;
network = list("SS13","RD")
network = list("ss13","rd")
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel/vault/side,
@@ -25637,8 +25598,7 @@
},
/obj/machinery/camera{
c_tag = "Medbay Foyer";
dir = 8;
network = list("SS13")
dir = 8
},
/turf/open/floor/plasteel/neutral,
/area/hallway/primary/central)
@@ -26708,8 +26668,7 @@
},
/obj/machinery/camera{
c_tag = "Medbay South";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/whiteblue/corner{
dir = 8
@@ -27226,8 +27185,7 @@
},
/obj/machinery/camera{
c_tag = "Medbay Recovery Room";
dir = 8;
network = list("SS13")
dir = 8
},
/turf/open/floor/plasteel/vault/side{
dir = 8
@@ -28451,7 +28409,7 @@
/obj/machinery/camera{
c_tag = "Xenobiology Test Chamber";
dir = 2;
network = list("Xeno","RD")
network = list("xeno","rd")
},
/turf/open/floor/plasteel/vault{
dir = 4
@@ -28546,7 +28504,7 @@
/obj/machinery/camera{
c_tag = "Crematorium";
dir = 4;
network = list("MINE")
network = list("mine")
},
/turf/open/floor/plasteel/vault/side{
dir = 4
@@ -29231,8 +29189,7 @@
},
/obj/machinery/camera{
c_tag = "Chaplain's Quarters";
dir = 2;
network = list("SS13")
dir = 2
},
/turf/open/floor/plasteel/vault{
dir = 8
@@ -29278,8 +29235,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/machinery/camera{
c_tag = "Chapel Office";
dir = 2;
network = list("SS13")
dir = 2
},
/turf/open/floor/wood,
/area/chapel/main)
@@ -29714,8 +29670,7 @@
},
/obj/machinery/camera{
c_tag = "Chapel South";
dir = 8;
network = list("SS13")
dir = 8
},
/turf/open/floor/plasteel/vault{
dir = 5
@@ -29737,8 +29692,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/camera{
c_tag = "Arrivals Hallway 3";
dir = 8;
network = list("SS13")
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 2
@@ -29825,7 +29779,7 @@
c_tag = "Science - Server Room";
dir = 8;
name = "science camera";
network = list("SS13","RD")
network = list("ss13","rd")
},
/turf/open/floor/circuit/green/telecomms/mainframe,
/area/science/xenobiology)
@@ -30413,8 +30367,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/camera{
c_tag = "Port Primary Hallway";
dir = 4;
network = list("SS13")
dir = 4
},
/obj/effect/turf_decal/stripes/line{
dir = 2
@@ -30431,8 +30384,7 @@
},
/obj/machinery/camera{
c_tag = "Starboard Primary Hallway 2";
dir = 8;
network = list("SS13")
dir = 8
},
/turf/open/floor/plasteel/neutral/corner,
/area/hallway/primary/central)
@@ -30440,8 +30392,7 @@
/obj/structure/closet/firecloset,
/obj/machinery/camera{
c_tag = "Starboard Primary Hallway 2";
dir = 2;
network = list("SS13")
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel/vault/side{
@@ -30464,8 +30415,7 @@
"blk" = (
/obj/machinery/camera{
c_tag = "Atmospherics Tank 3";
dir = 4;
network = list("SS13")
dir = 4
},
/turf/open/floor/plasteel/vault{
dir = 5
@@ -30478,12 +30428,11 @@
/obj/machinery/camera{
c_tag = "Shuttle Docking Foyer";
dir = 8;
network = list("MINE")
network = list("mine")
},
/obj/machinery/camera{
c_tag = "Escape Arm Airlocks";
dir = 8;
network = list("SS13")
dir = 8
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
@@ -30492,8 +30441,7 @@
/obj/structure/closet/emcloset,
/obj/machinery/camera{
c_tag = "Starboard Primary Hallway";
dir = 2;
network = list("SS13")
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel/vault/side{
@@ -30507,7 +30455,7 @@
/obj/machinery/camera{
c_tag = "Engineering Starboard";
dir = 8;
network = list("SS13","Engine")
network = list("ss13","engine")
},
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -30523,8 +30471,7 @@
},
/obj/machinery/camera{
c_tag = "Research Division Access";
dir = 2;
network = list("SS13")
dir = 2
},
/obj/structure/cable/white{
icon_state = "2-8"
@@ -30538,7 +30485,6 @@
/obj/machinery/camera{
c_tag = "Aft Primary Hallway 1";
dir = 8;
network = list("SS13");
pixel_y = -22
},
/turf/open/floor/plasteel/purple/corner,
@@ -30583,7 +30529,6 @@
/obj/machinery/camera{
c_tag = "Surgery Operating";
dir = 1;
network = list("SS13");
pixel_x = 22
},
/turf/open/floor/plasteel/neutral,
@@ -30592,7 +30537,7 @@
/obj/machinery/camera{
c_tag = "Xenobiology Test Chamber";
dir = 2;
network = list("Xeno","RD")
network = list("xeno","rd")
},
/turf/open/floor/plasteel/vault{
dir = 5
@@ -30615,8 +30560,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/camera{
c_tag = "Arrivals Hallway";
dir = 8;
network = list("SS13")
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -30627,8 +30571,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/camera{
c_tag = "Arrivals Hallway 2";
dir = 8;
network = list("SS13")
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -30685,8 +30628,7 @@
},
/obj/machinery/camera{
c_tag = "Chapel Mass Driver";
dir = 8;
network = list("SS13")
dir = 8
},
/obj/machinery/light/small,
/obj/machinery/button/massdriver{
@@ -31264,8 +31206,7 @@
"buU" = (
/obj/machinery/camera{
c_tag = "Communications Relay";
dir = 8;
network = list("MINE")
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -33064,7 +33005,7 @@
c_tag = "AI Chamber - Core";
dir = 2;
name = "core camera";
network = list("RD")
network = list("rd")
},
/obj/machinery/cell_charger,
/turf/open/floor/plasteel/vault/side,
@@ -33247,7 +33188,7 @@
c_tag = "AI Chamber - Core";
dir = 2;
name = "core camera";
network = list("RD")
network = list("rd")
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -33384,7 +33325,7 @@
c_tag = "AI Chamber - Core";
dir = 2;
name = "core camera";
network = list("RD")
network = list("rd")
},
/obj/machinery/light{
dir = 1
@@ -33617,7 +33558,7 @@
c_tag = "AI Satellite - Access";
dir = 4;
name = "ai camera";
network = list("Sat");
network = list("minisat");
start_active = 1
},
/turf/open/floor/plasteel/vault/side{
@@ -33905,7 +33846,7 @@
c_tag = "AI Satellite - Maintenance";
dir = 8;
name = "ai camera";
network = list("Sat");
network = list("minisat");
start_active = 1
},
/obj/machinery/atmospherics/components/unary/vent_pump/on{
@@ -33977,7 +33918,7 @@
c_tag = "AI Satellite - Antechamber";
dir = 4;
name = "ai camera";
network = list("Sat");
network = list("minisat");
start_active = 1
},
/turf/open/floor/plasteel/vault/side{
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -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)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -8538,7 +8538,8 @@
dwidth = 3;
name = "steel rain";
port_direction = 4;
preferred_direction = 4
preferred_direction = 4;
timid = 0
},
/turf/open/floor/plating,
/area/shuttle/assault_pod)
-1
View File
@@ -1 +0,0 @@
+15 -45
View File
@@ -44,20 +44,6 @@
//Mutations that cant be taken from genetics and are not in SE
#define NON_SCANNABLE -1
// Extra powers:
#define LASER 9 // harm intent - click anywhere to shoot lasers from eyes
#define HEAL 10 // healing people with hands
#define SHADOW 11 // shadow teleportation (create in/out portals anywhere) (25%)
#define SCREAM 12 // supersonic screaming (25%)
#define EXPLOSIVE 13 // exploding on-demand (15%)
#define REGENERATION 14 // superhuman regeneration (30%)
#define REPROCESSOR 15 // eat anything (50%)
#define SHAPESHIFTING 16 // take on the appearance of anything (40%)
#define PHASING 17 // ability to phase through walls (40%)
#define SHIELD 18 // shielding from all projectile attacks (30%)
#define SHOCKWAVE 19 // attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%)
#define ELECTRICITY 20 // ability to shoot electric attacks (15%)
//DNA - Because fuck you and your magic numbers being all over the codebase.
#define DNA_BLOCK_SIZE 3
@@ -81,7 +67,6 @@
#define TR_KEEPIMPLANTS 16
#define TR_KEEPSE 32 // changelings shouldn't edit the DNA's SE when turning into a monkey
#define TR_DEFAULTMSG 64
#define TR_KEEPSRC 128
#define TR_KEEPORGANS 256
@@ -94,36 +79,21 @@
#define FACEHAIR 3
#define EYECOLOR 4
#define LIPS 5
#define RESISTHOT 6
#define RESISTCOLD 7
#define RESISTPRESSURE 8
#define RADIMMUNE 9
#define NOBREATH 10
#define NOGUNS 11
#define NOBLOOD 12
#define NOFIRE 13
#define VIRUSIMMUNE 14
#define PIERCEIMMUNE 15
#define NOTRANSSTING 16
#define MUTCOLORS_PARTSONLY 17 //Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless.
#define NODISMEMBER 18
#define NOHUNGER 19
#define NOCRITDAMAGE 20
#define NOZOMBIE 21
#define EASYDISMEMBER 22
#define EASYLIMBATTACHMENT 23
#define TOXINLOVER 24
#define DIGITIGRADE 25 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi)
#define NO_UNDERWEAR 26
#define NOLIVER 27
#define NOSTOMACH 28
#define NO_DNA_COPY 29
#define DRINKSBLOOD 30
#define SPECIES_ORGANIC 31
#define SPECIES_INORGANIC 32
#define SPECIES_UNDEAD 33
#define SPECIES_ROBOTIC 34
#define NOEYES 35
#define NOBLOOD 6
#define NOTRANSSTING 7
#define MUTCOLORS_PARTSONLY 8 //Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless.
#define NOZOMBIE 9
#define DIGITIGRADE 10 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi)
#define NO_UNDERWEAR 11
#define NOLIVER 12
#define NOSTOMACH 13
#define NO_DNA_COPY 14
#define DRINKSBLOOD 15
#define SPECIES_ORGANIC 16
#define SPECIES_INORGANIC 17
#define SPECIES_UNDEAD 18
#define SPECIES_ROBOTIC 19
#define NOEYES 20
#define ORGAN_SLOT_BRAIN "brain"
#define ORGAN_SLOT_APPENDIX "appendix"
+1 -6
View File
@@ -34,15 +34,10 @@
#define R_SOUNDS 0x800
#define R_SPAWN 0x1000
#define R_AUTOLOGIN 0x2000
#define R_DBRANKS 0x4000
#define R_DEFAULT R_AUTOLOGIN
#if DM_VERSION > 512
#error Remove the flag below , its been long enough
#endif
//legacy , remove post 512, it was replaced by R_POLL
#define R_REJUVINATE 2
#define R_MAXPERMISSION 4096 //This holds the maximum value for a permission. It is used in iteration, so keep it updated.
#define ADMIN_QUE(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminmoreinfo=[REF(user)]'>?</a>)"
+1 -13
View File
@@ -28,7 +28,6 @@
#define CELL_VOLUME 2500 //liters in a cell
#define BREATH_VOLUME 0.5 //liters in a normal breath
#define BREATH_PERCENTAGE (BREATH_VOLUME/CELL_VOLUME) //Amount of air to take a from a tile
#define HUMAN_NEEDED_OXYGEN (MOLES_CELLSTANDARD*BREATH_PERCENTAGE*0.16) //Amount of air needed before pass out/suffocation commences
//EXCITED GROUPS
#define EXCITED_GROUP_BREAKDOWN_CYCLES 4 //number of FULL air controller ticks before an excited group breaks down (averages gas contents across turfs)
@@ -46,10 +45,7 @@
//HEAT TRANSFER COEFFICIENTS
//Must be between 0 and 1. Values closer to 1 equalize temperature faster
//Should not exceed 0.4 else strange heat flow occur
#define FLOOR_HEAT_TRANSFER_COEFFICIENT 0.4
#define WALL_HEAT_TRANSFER_COEFFICIENT 0.0
#define DOOR_HEAT_TRANSFER_COEFFICIENT 0.0
#define SPACE_HEAT_TRANSFER_COEFFICIENT 0.2 //a hack to partly simulate radiative heat
#define OPEN_HEAT_TRANSFER_COEFFICIENT 0.4
#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.1 //a hack for now
#define HEAT_CAPACITY_VACUUM 7000 //a hack to help make vacuums "cold", sacrificing realism for gameplay
@@ -59,8 +55,6 @@
#define FIRE_MINIMUM_TEMPERATURE_TO_EXIST 100+T0C
#define FIRE_SPREAD_RADIOSITY_SCALE 0.85
#define FIRE_GROWTH_RATE 40000 //For small fires
#define CARBON_LIFEFORM_FIRE_RESISTANCE 200+T0C //Resistance to fire damage
#define CARBON_LIFEFORM_FIRE_DAMAGE 4 //Fire damage
#define PLASMA_MINIMUM_BURN_TEMPERATURE 100+T0C
//GASES
@@ -74,11 +68,6 @@
#define REACTING 1
#define STOP_REACTIONS 2
//HUMANS
//Hurty numbers
#define FIRE_DAMAGE_MODIFIER 0.0215 //Higher values result in more external fire damage to the skin
#define AIR_DAMAGE_MODIFIER 1.025 //More means less damage from hot air scalding lungs, less = more damage //CITADEL EDIT 1.025
// Pressure limits.
#define HAZARD_HIGH_PRESSURE 550 //This determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant)
#define WARNING_HIGH_PRESSURE 325 //This determins when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE)
@@ -123,7 +112,7 @@
#define SHOES_MAX_TEMP_PROTECT 1500 //For gloves
#define PRESSURE_DAMAGE_COEFFICIENT 4 //The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE
#define MAX_HIGH_PRESSURE_DAMAGE 16 // CITADEL CHANGES Max to 16, low to 8.
#define MAX_HIGH_PRESSURE_DAMAGE 16 // CITADEL CHANGES Max to 16, low to 8.
#define LOW_PRESSURE_DAMAGE 8 //The amount of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value).
#define COLD_SLOWDOWN_FACTOR 20 //Humans are slowed by the difference between bodytemp and BODYTEMP_COLD_DAMAGE_LIMIT divided by this
@@ -196,4 +185,3 @@ GLOBAL_LIST_INIT(pipe_paint_colors, list(
"Violet" = rgb(64,0,128),
"Yellow" = rgb(255,198,0)
))
+20 -15
View File
@@ -19,8 +19,9 @@
#define DIAG_AIRLOCK_HUD "15"//Airlock shock overlay
#define DIAG_PATH_HUD "16"//Bot path indicators
#define GLAND_HUD "17"//Gland indicators for abductors
#define SENTIENT_DISEASE_HUD "18"
//for antag huds. these are used at the /mob level
#define ANTAG_HUD "18"
#define ANTAG_HUD "19"
//by default everything in the hud_list of an atom is an image
//a value in hud_list with one of these will change that behavior
@@ -35,23 +36,27 @@
#define DATA_HUD_DIAGNOSTIC_BASIC 5
#define DATA_HUD_DIAGNOSTIC_ADVANCED 6
#define DATA_HUD_ABDUCTOR 7
#define DATA_HUD_SENTIENT_DISEASE 8
//antag HUD defines
#define ANTAG_HUD_CULT 8
#define ANTAG_HUD_REV 9
#define ANTAG_HUD_OPS 10
#define ANTAG_HUD_WIZ 11
#define ANTAG_HUD_SHADOW 12
#define ANTAG_HUD_TRAITOR 13
#define ANTAG_HUD_NINJA 14
#define ANTAG_HUD_CHANGELING 15
#define ANTAG_HUD_ABDUCTOR 16
#define ANTAG_HUD_DEVIL 17
#define ANTAG_HUD_SINTOUCHED 18
#define ANTAG_HUD_SOULLESS 19
#define ANTAG_HUD_CLOCKWORK 20
#define ANTAG_HUD_BROTHER 21
#define ANTAG_HUD_CULT 9
#define ANTAG_HUD_REV 10
#define ANTAG_HUD_OPS 11
#define ANTAG_HUD_WIZ 12
#define ANTAG_HUD_SHADOW 13
#define ANTAG_HUD_TRAITOR 14
#define ANTAG_HUD_NINJA 15
#define ANTAG_HUD_CHANGELING 16
#define ANTAG_HUD_ABDUCTOR 17
#define ANTAG_HUD_DEVIL 18
#define ANTAG_HUD_SINTOUCHED 19
#define ANTAG_HUD_SOULLESS 20
#define ANTAG_HUD_CLOCKWORK 21
#define ANTAG_HUD_BROTHER 22
// Notification action types
#define NOTIFY_JUMP "jump"
#define NOTIFY_ATTACK "attack"
#define NOTIFY_ORBIT "orbit"
#define ADD_HUD_TO_COOLDOWN 20 //cooldown for being shown the images for any particular data hud
+17 -3
View File
@@ -2,8 +2,16 @@
//Be sure to update the min/max of these if you do change them.
//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
//HUD stuff
#define ui_arousal "EAST-1:28,CENTER-4:8"//Below the health doll
#define ui_stamina "EAST-1:28,CENTER:17" // replacing internals button
#define ui_overridden_resist "EAST-3:24,SOUTH+1:7"
#define ui_combat_toggle "EAST-4:22,SOUTH:5"
//1:1 HUD layout stuff
#define ui_boxcraft "EAST-4:22,SOUTH+1:6"
#define ui_boxarea "EAST-4:6,SOUTH+1:6"
#define ui_boxlang "EAST-5:22,SOUTH+1:6"
//organ defines
@@ -100,4 +108,10 @@
//Brainslugs
#define isborer(A) (istype(A, /mob/living/simple_animal/borer))
#define CITADEL_MENTOR_OOC_COLOUR "#ad396e"
#define CITADEL_MENTOR_OOC_COLOUR "#ad396e"
//stamina stuff
#define STAMINA_SOFTCRIT 100 //softcrit for stamina damage. prevents standing up, prevents performing actions that cost stamina, etc, but doesn't force a rest or stop movement
#define STAMINA_CRIT 140 //crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit
#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations
#define STAMINA_CRIT_TRADITIONAL -40 //ditto, but for STAMINA_CRIT
+1 -1
View File
@@ -1,5 +1,5 @@
//Cleaning tool strength
#define CLEAN_VERY_WEAK 1 // What are you scrubbing the ground with a toothpick?
// 1 is also a valid cleaning strength but completely unused so left undefined
#define CLEAN_WEAK 2
#define CLEAN_MEDIUM 3 // Acceptable tools
#define CLEAN_STRONG 4 // Industrial strength
-2
View File
@@ -64,8 +64,6 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us
#define GATEWAY_RATVAR_ARRIVAL 600 //when progress is at or above this, game over ratvar's here everybody go home
#define ARK_SUMMON_COST 5 //how many of each component an Ark costs to summon
//Objective text define
#define CLOCKCULT_OBJECTIVE "Construct the Ark of the Clockwork Justicar and free Ratvar."
+12 -12
View File
@@ -3,26 +3,26 @@
#define COLOR_INPUT_DISABLED "#F0F0F0"
#define COLOR_INPUT_ENABLED "#D3B5B5"
#define COLOR_WHITE "#EEEEEE"
#define COLOR_SILVER "#C0C0C0"
#define COLOR_GRAY "#808080"
//#define COLOR_WHITE "#EEEEEE"
//#define COLOR_SILVER "#C0C0C0"
//#define COLOR_GRAY "#808080"
#define COLOR_FLOORTILE_GRAY "#8D8B8B"
#define COLOR_ALMOST_BLACK "#333333"
#define COLOR_BLACK "#000000"
//#define COLOR_BLACK "#000000"
#define COLOR_RED "#FF0000"
#define COLOR_RED_LIGHT "#FF3333"
#define COLOR_MAROON "#800000"
//#define COLOR_RED_LIGHT "#FF3333"
//#define COLOR_MAROON "#800000"
#define COLOR_YELLOW "#FFFF00"
#define COLOR_OLIVE "#808000"
#define COLOR_LIME "#32CD32"
//#define COLOR_OLIVE "#808000"
//#define COLOR_LIME "#32CD32"
#define COLOR_GREEN "#008000"
#define COLOR_CYAN "#00FFFF"
#define COLOR_TEAL "#008080"
//#define COLOR_TEAL "#008080"
#define COLOR_BLUE "#0000FF"
#define COLOR_BLUE_LIGHT "#33CCFF"
#define COLOR_NAVY "#000080"
//#define COLOR_BLUE_LIGHT "#33CCFF"
//#define COLOR_NAVY "#000080"
#define COLOR_PINK "#FFC0CB"
#define COLOR_MAGENTA "#FF00FF"
//#define COLOR_MAGENTA "#FF00FF"
#define COLOR_PURPLE "#800080"
#define COLOR_ORANGE "#FF9900"
#define COLOR_BEIGE "#CEB689"
-4
View File
@@ -110,11 +110,7 @@
#define EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER 8 //Coefficient of multiplication for the damage the item does when removed without a surgery (this*item.w_class)
#define EMBEDDED_UNSAFE_REMOVAL_TIME 30 //A Time in ticks, total removal time = (this*item.w_class)
//Gun Stuff
#define SAWN_INTACT 0
#define SAWN_OFF 1
//Gun weapon weight
#define WEAPON_DUAL_WIELD 0
#define WEAPON_LIGHT 1
#define WEAPON_MEDIUM 2
#define WEAPON_HEAVY 3
-1
View File
@@ -31,7 +31,6 @@
//Positions for overrides list
#define EXAMINE_POSITION_ARTICLE 1
#define EXAMINE_POSITION_BEFORE 2
#define EXAMINE_POSITION_NAME 3
//End positions
#define COMPONENT_EXNAME_CHANGED 1
#define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (/atom/movable, /atom)
-11
View File
@@ -37,12 +37,6 @@
#define FAILED_UNFASTEN 1
#define SUCCESSFUL_UNFASTEN 2
//disposal unit mode defines, which do double time as the construction defines
#define PRESSURE_OFF 0
#define PRESSURE_ON 1
#define PRESSURE_MAXED 2
#define SCREWS_OUT -1
//ai core defines
#define EMPTY_CORE 0
#define CIRCUIT_CORE 1
@@ -51,11 +45,6 @@
#define GLASS_CORE 4
#define AI_READY_CORE 5
//field generator construction defines
#define FG_UNSECURED 0
#define FG_SECURED 1
#define FG_WELDED 2
//emitter construction defines
#define EM_UNSECURED 0
#define EM_SECURED 1
+17 -14
View File
@@ -1,3 +1,7 @@
#define DISEASE_LIMIT 1
#define VIRUS_SYMPTOM_LIMIT 6
//Visibility Flags
#define HIDDEN_SCANNER 1
#define HIDDEN_PANDEMIC 2
@@ -8,19 +12,18 @@
#define CAN_RESIST 4
//Spread Flags
#define VIRUS_SPREAD_SPECIAL 1
#define VIRUS_SPREAD_NON_CONTAGIOUS 2
#define VIRUS_SPREAD_BLOOD 4
#define VIRUS_SPREAD_CONTACT_FLUIDS 8
#define VIRUS_SPREAD_CONTACT_SKIN 16
#define VIRUS_SPREAD_AIRBORNE 32
#define DISEASE_SPREAD_SPECIAL 1
#define DISEASE_SPREAD_NON_CONTAGIOUS 2
#define DISEASE_SPREAD_BLOOD 4
#define DISEASE_SPREAD_CONTACT_FLUIDS 8
#define DISEASE_SPREAD_CONTACT_SKIN 16
#define DISEASE_SPREAD_AIRBORNE 32
//Severity Defines
#define VIRUS_SEVERITY_POSITIVE "Positive" //Diseases that buff, heal, or at least do nothing at all
#define VIRUS_SEVERITY_NONTHREAT "Harmless" //Diseases that may have annoying effects, but nothing disruptive (sneezing)
#define VIRUS_SEVERITY_MINOR "Minor" //Diseases that can annoy in concrete ways (dizziness)
#define VIRUS_SEVERITY_MEDIUM "Medium" //Diseases that can do minor harm, or severe annoyance (vomit)
#define VIRUS_SEVERITY_HARMFUL "Harmful" //Diseases that can do significant harm, or severe disruption (brainrot)
#define VIRUS_SEVERITY_DANGEROUS "Dangerous" //Diseases that can kill or maim if left untreated (flesh eating, blindness)
#define VIRUS_SEVERITY_BIOHAZARD "BIOHAZARD" //Diseases that can quickly kill an unprepared victim (fungal tb, gbs)
#define DISEASE_SEVERITY_POSITIVE "Positive" //Diseases that buff, heal, or at least do nothing at all
#define DISEASE_SEVERITY_NONTHREAT "Harmless" //Diseases that may have annoying effects, but nothing disruptive (sneezing)
#define DISEASE_SEVERITY_MINOR "Minor" //Diseases that can annoy in concrete ways (dizziness)
#define DISEASE_SEVERITY_MEDIUM "Medium" //Diseases that can do minor harm, or severe annoyance (vomit)
#define DISEASE_SEVERITY_HARMFUL "Harmful" //Diseases that can do significant harm, or severe disruption (brainrot)
#define DISEASE_SEVERITY_DANGEROUS "Dangerous" //Diseases that can kill or maim if left untreated (flesh eating, blindness)
#define DISEASE_SEVERITY_BIOHAZARD "BIOHAZARD" //Diseases that can quickly kill an unprepared victim (fungal tb, gbs)
-2
View File
@@ -26,7 +26,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define ON_BORDER_1 512 // item has priority to check when entering or leaving
#define NOSLIP_1 1024 //prevents from slipping on wet floors, in space etc
#define _UNUSED_1 2048
// BLOCK_GAS_SMOKE_EFFECT_1 only used in masks at the moment.
#define BLOCK_GAS_SMOKE_EFFECT_1 4096 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
@@ -84,7 +83,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
//Movement Types
#define IMMOBILE 0
#define GROUND 1
#define FLYING 2
-16
View File
@@ -118,22 +118,6 @@
#define NECK 2048
#define FULL_BODY 4095
// bitflags for the percentual amount of protection a piece of clothing which covers the body part offers.
// Used with human/proc/get_heat_protection() and human/proc/get_cold_protection()
// The values here should add up to 1.
// Hands and feet have 2.5%, arms and legs 7.5%, each of the torso parts has 15% and the head has 30%
#define THERMAL_PROTECTION_HEAD 0.3
#define THERMAL_PROTECTION_CHEST 0.15
#define THERMAL_PROTECTION_GROIN 0.15
#define THERMAL_PROTECTION_LEG_LEFT 0.075
#define THERMAL_PROTECTION_LEG_RIGHT 0.075
#define THERMAL_PROTECTION_FOOT_LEFT 0.025
#define THERMAL_PROTECTION_FOOT_RIGHT 0.025
#define THERMAL_PROTECTION_ARM_LEFT 0.075
#define THERMAL_PROTECTION_ARM_RIGHT 0.075
#define THERMAL_PROTECTION_HAND_LEFT 0.025
#define THERMAL_PROTECTION_HAND_RIGHT 0.025
//flags for female outfits: How much the game can safely "take off" the uniform without it looking weird
#define NO_FEMALE_UNIFORM 0
#define FEMALE_UNIFORM_FULL 1
+1 -16
View File
@@ -1,7 +1,5 @@
// simple is_type and similar inline helpers
#define isdatum(D) (istype(D, /datum))
#define islist(L) (istype(L, /list))
#if DM_VERSION >= 512
@@ -64,7 +62,6 @@
#define isjellyperson(A) (is_species(A, /datum/species/jelly))
#define isslimeperson(A) (is_species(A, /datum/species/jelly/slime))
#define isluminescent(A) (is_species(A, /datum/species/jelly/luminescent))
#define isshadowperson(A) (is_species(A, /datum/species/shadow))
#define iszombie(A) (is_species(A, /datum/species/zombie))
#define ishumanbasic(A) (is_species(A, /datum/species/human))
@@ -106,8 +103,6 @@
#define isbot(A) (istype(A, /mob/living/simple_animal/bot))
#define iscrab(A) (istype(A, /mob/living/simple_animal/crab))
#define isshade(A) (istype(A, /mob/living/simple_animal/shade))
#define ismouse(A) (istype(A, /mob/living/simple_animal/mouse))
@@ -118,16 +113,10 @@
#define iscat(A) (istype(A, /mob/living/simple_animal/pet/cat))
#define isdog(A) (istype(A, /mob/living/simple_animal/pet/dog))
#define iscorgi(A) (istype(A, /mob/living/simple_animal/pet/dog/corgi))
#define ishostile(A) (istype(A, /mob/living/simple_animal/hostile))
#define isbear(A) (istype(A, /mob/living/simple_animal/hostile/bear))
#define iscarp(A) (istype(A, /mob/living/simple_animal/hostile/carp))
#define isswarmer(A) (istype(A, /mob/living/simple_animal/hostile/swarmer))
#define isguardian(A) (istype(A, /mob/living/simple_animal/hostile/guardian))
@@ -183,14 +172,10 @@ GLOBAL_LIST_INIT(pointed_types, typecacheof(list(
#define isigniter(O) (istype(O, /obj/item/device/assembly/igniter))
#define isinfared(O) (istype(O, /obj/item/device/assembly/infra))
#define isprox(O) (istype(O, /obj/item/device/assembly/prox_sensor))
#define issignaler(O) (istype(O, /obj/item/device/assembly/signaler))
#define istimer(O) (istype(O, /obj/item/device/assembly/timer))
GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list(
/obj/item/stack/sheet/glass,
/obj/item/stack/sheet/rglass,
@@ -201,4 +186,4 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list(
#define is_glass_sheet(O) (is_type_in_typecache(O, GLOB.glass_sheet_types))
#define isblobmonster(O) (istype(O, /mob/living/simple_animal/hostile/blob))
#define isblobmonster(O) (istype(O, /mob/living/simple_animal/hostile/blob))
+3 -1
View File
@@ -9,7 +9,6 @@
#define GAME_PLANE -1
#define BLACKNESS_PLANE 0 //To keep from conflicts with SEE_BLACKNESS internals
#define SPACE_LAYER 1.8
#define ABOVE_SPACE_LAYER 1.9
//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define
#define MID_TURF_LAYER 2.02
#define HIGH_TURF_LAYER 2.03
@@ -82,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
+2 -22
View File
@@ -23,27 +23,6 @@
0, 0, 0, 1 \
) \
// Helpers so we can (more easily) control the colour matrices.
#define CL_MATRIX_RR 1
#define CL_MATRIX_RG 2
#define CL_MATRIX_RB 3
#define CL_MATRIX_RA 4
#define CL_MATRIX_GR 5
#define CL_MATRIX_GG 6
#define CL_MATRIX_GB 7
#define CL_MATRIX_GA 8
#define CL_MATRIX_BR 9
#define CL_MATRIX_BG 10
#define CL_MATRIX_BB 11
#define CL_MATRIX_BA 12
#define CL_MATRIX_AR 13
#define CL_MATRIX_AG 14
#define CL_MATRIX_AB 15
#define CL_MATRIX_AA 16
#define CL_MATRIX_CR 17
#define CL_MATRIX_CG 18
#define CL_MATRIX_CB 19
#define CL_MATRIX_CA 20
//Some defines to generalise colours used in lighting.
//Important note on colors. Colors can end up significantly different from the basic html picture, especially when saturated
@@ -73,6 +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 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
@@ -89,4 +69,4 @@
#define LIGHTING_NO_UPDATE 0
#define LIGHTING_VIS_UPDATE 1
#define LIGHTING_CHECK_UPDATE 2
#define LIGHTING_FORCE_UPDATE 3
#define LIGHTING_FORCE_UPDATE 3
-3
View File
@@ -85,6 +85,3 @@
#define SUPERMATTER_DANGER 4 // Integrity < 50%
#define SUPERMATTER_EMERGENCY 5 // Integrity < 25%
#define SUPERMATTER_DELAMINATING 6 // Pretty obvious.
//R&D Snowflakes
#define RD_CONSOLE_LOCKED_SCREEN 0.2
-1
View File
@@ -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
-1
View File
@@ -10,7 +10,6 @@
#define BOSS_MEDAL_DRAKE "Drake"
#define BOSS_MEDAL_HIEROPHANT "Hierophant"
#define BOSS_MEDAL_LEGION "Legion"
#define BOSS_MEDAL_SWARMER "Swarmer Beacon"
#define BOSS_MEDAL_TENDRIL "Tendril"
// Score names
+6 -72
View File
@@ -20,8 +20,8 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define THIS_PROC_TYPE_STR "[THIS_PROC_TYPE]" //Because you can only obtain a string of THIS_PROC_TYPE using "[]", and it's nice to just +/+= strings
#define THIS_PROC_TYPE_STR_WITH_ARGS "[THIS_PROC_TYPE]([args.Join(",")])"
#define THIS_PROC_TYPE_WEIRD ...... //This one is WEIRD, in some cases (When used in certain defines? (eg: ASSERT)) THIS_PROC_TYPE will fail to work, but THIS_PROC_TYPE_WEIRD will work instead
#define THIS_PROC_TYPE_WEIRD_STR "[THIS_PROC_TYPE_WEIRD]" //Included for completeness
#define THIS_PROC_TYPE_WEIRD_STR_WITH_ARGS "[THIS_PROC_TYPE_WEIRD]([args.Join(",")])" //Ditto
//define THIS_PROC_TYPE_WEIRD_STR "[THIS_PROC_TYPE_WEIRD]" //Included for completeness
//define THIS_PROC_TYPE_WEIRD_STR_WITH_ARGS "[THIS_PROC_TYPE_WEIRD]([args.Join(",")])" //Ditto
#define MIDNIGHT_ROLLOVER 864000 //number of deciseconds in a day
@@ -46,7 +46,6 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define HALLOWEEN "Halloween"
#define CHRISTMAS "Christmas"
#define FESTIVE_SEASON "Festive Season"
#define FRIDAY_13TH "Friday the 13th"
//Human Overlays Indexes/////////
//LOTS OF CIT CHANGES HERE. BE CAREFUL WHEN UPSTREAM ADDS MORE LAYERS
@@ -86,58 +85,11 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
//Because I *KNOW* somebody will think layer+1 means "above"
//IT DOESN'T OK, IT MEANS "UNDER"
#define UNDER_BODY_BEHIND_LAYER BODY_BEHIND_LAYER+1
#define UNDER_BODY_LAYER BODY_LAYER+1
#define UNDER_BODY_ADJ_LAYER BODY_ADJ_LAYER+1
#define UNDER_MUTATIONS_LAYER MUTATIONS_LAYER+1
#define UNDER_BODYPARTS_LAYER BODYPARTS_LAYER+1
#define UNDER_DAMAGE_LAYER DAMAGE_LAYER+1
#define UNDER_UNIFORM_LAYER UNIFORM_LAYER+1
#define UNDER_ID_LAYER ID_LAYER+1
#define UNDER_HANDS_PART_LAYER HANDS_PART_LAYER+1
#define UNDER_GLOVES_LAYER GLOVES_LAYER+1
#define UNDER_SHOES_LAYER SHOES_LAYER+1
#define UNDER_EARS_LAYER EARS_LAYER+1
#define UNDER_SUIT_LAYER SUIT_LAYER+1
#define UNDER_GLASSES_LAYER GLASSES_LAYER+1
#define UNDER_BELT_LAYER BELT_LAYER+1
#define UNDER_SUIT_STORE_LAYER SUIT_STORE_LAYER+1
#define UNDER_BACK_LAYER BACK_LAYER+1
#define UNDER_HAIR_LAYER HAIR_LAYER+1
#define UNDER_FACEMASK_LAYER FACEMASK_LAYER+1
#define UNDER_HEAD_LAYER HEAD_LAYER+1
#define UNDER_HANDCUFF_LAYER HANDCUFF_LAYER+1
#define UNDER_LEGCUFF_LAYER LEGCUFF_LAYER+1
#define UNDER_HANDS_LAYER HANDS_LAYER+1
#define UNDER_BODY_FRONT_LAYER BODY_FRONT_LAYER+1
#define UNDER_FIRE_LAYER FIRE_LAYER+1
//AND -1 MEANS "ABOVE", OK?, OK!?!
#define ABOVE_BODY_BEHIND_LAYER BODY_BEHIND_LAYER-1
#define ABOVE_BODY_LAYER BODY_LAYER-1
#define ABOVE_BODY_ADJ_LAYER BODY_ADJ_LAYER-1
#define ABOVE_MUTATIONS_LAYER MUTATIONS_LAYER-1
#define ABOVE_BODYPARTS_LAYER BODYPARTS_LAYER-1
#define ABOVE_DAMAGE_LAYER DAMAGE_LAYER-1
#define ABOVE_UNIFORM_LAYER UNIFORM_LAYER-1
#define ABOVE_ID_LAYER ID_LAYER-1
#define ABOVE_HANDS_PART_LAYER HANDS_PART_LAYER-1
#define ABOVE_GLOVES_LAYER GLOVES_LAYER-1
#define ABOVE_SHOES_LAYER SHOES_LAYER-1
#define ABOVE_EARS_LAYER EARS_LAYER-1
#define ABOVE_SUIT_LAYER SUIT_LAYER-1
#define ABOVE_GLASSES_LAYER GLASSES_LAYER-1
#define ABOVE_BELT_LAYER BELT_LAYER-1
#define ABOVE_SUIT_STORE_LAYER SUIT_STORE_LAYER-1
#define ABOVE_BACK_LAYER BACK_LAYER-1
#define ABOVE_HAIR_LAYER HAIR_LAYER-1
#define ABOVE_FACEMASK_LAYER FACEMASK_LAYER-1
#define ABOVE_HEAD_LAYER HEAD_LAYER-1
#define ABOVE_HANDCUFF_LAYER HANDCUFF_LAYER-1
#define ABOVE_LEGCUFF_LAYER LEGCUFF_LAYER-1
#define ABOVE_HANDS_LAYER HANDS_LAYER-1
#define ABOVE_BODY_FRONT_LAYER BODY_FRONT_LAYER-1
#define ABOVE_FIRE_LAYER FIRE_LAYER-1
//Security levels
@@ -195,7 +147,6 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define AI_MECH_HACK 3 //Malfunctioning AI hijacking mecha
//check_target_facings() return defines
#define FACING_FAILED 0
#define FACING_SAME_DIR 1
#define FACING_EACHOTHER 2
#define FACING_INIT_FACING_TARGET_TARGET_FACING_PERPENDICULAR 3 //Do I win the most informative but also most stupid define award?
@@ -213,7 +164,6 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache)
#define BLOOD_GAIN_PER_STEP 100
#define BLOOD_LOSS_PER_STEP 5
#define BLOOD_LOSS_IN_SPREAD 20
#define BLOOD_FADEOUT_TIME 2
//Bloody shoe blood states
#define BLOOD_STATE_HUMAN "blood"
@@ -241,7 +191,6 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache)
#define TURF_WET_LUBE 2
#define TURF_WET_ICE 3
#define TURF_WET_PERMAFROST 4
#define TURF_WET_SLIDE 5
//Maximum amount of time, (in approx. seconds.) a tile can be wet for.
#define MAXIMUM_WET_TIME 300
@@ -309,10 +258,8 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
/////////////////////////////////////
// atom.appearence_flags shortcuts //
/////////////////////////////////////
//this was added midway thru 510, so it might not exist in some versions, but we can't check by minor verison
#ifndef TILE_BOUND
#error this version of 510 is too old, You must use byond 510.1332 or later. (TILE_BOUND is not defined)
#endif
/*
// Disabling certain features
#define APPEARANCE_IGNORE_TRANSFORM RESET_TRANSFORM
@@ -330,12 +277,7 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define APPEARANCE_CONSIDER_ALPHA ~RESET_ALPHA
#define APPEARANCE_LONG_GLIDE LONG_GLIDE
#ifndef PIXEL_SCALE
#define PIXEL_SCALE 0
#if DM_VERSION >= 512
#error HEY, PIXEL_SCALE probably exists now, remove this gross ass shim.
#endif
#endif
*/
// Consider these images/atoms as part of the UI/HUD
#define APPEARANCE_UI_IGNORE_ALPHA RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE
@@ -417,14 +359,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define CLOCK_PROSELYTIZATION 23
#define SHUTTLE_HIJACK 24
#define TURF_DECAL_PAINT "paint"
#define TURF_DECAL_DAMAGE "damage"
#define TURF_DECAL_DIRT "dirt"
//Error handler defines
#define ERROR_USEFUL_LEN 2
#define NO_FIELD 0
#define FIELD_TURF 1
#define FIELD_EDGE 2
@@ -459,7 +393,7 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
//Dummy mob reserve slots
#define DUMMY_HUMAN_SLOT_PREFERENCES "dummy_preference_preview"
#define DUMMY_HUMAN_SLOT_ADMIN "admintools"
#define DUMMY_HUMAN_SLOT_MANIFEST "dummy_manifest_generation"
#define PR_ANNOUNCEMENTS_PER_ROUND 5 //The number of unique PR announcements allowed per round
+24 -24
View File
@@ -86,6 +86,25 @@
#define SCREWYHUD_DEAD 2
#define SCREWYHUD_HEALTHY 3
//Moods levels for humans
#define MOOD_LEVEL_HAPPY4 15
#define MOOD_LEVEL_HAPPY3 10
#define MOOD_LEVEL_HAPPY2 6
#define MOOD_LEVEL_HAPPY1 2
#define MOOD_LEVEL_NEUTRAL 0
#define MOOD_LEVEL_SAD1 -3
#define MOOD_LEVEL_SAD2 -12
#define MOOD_LEVEL_SAD3 -18
#define MOOD_LEVEL_SAD4 -26
//Beauty levels of areas for carbons
#define BEAUTY_LEVEL_HORRID -50
#define BEAUTY_LEVEL_BAD -25
#define BEAUTY_LEVEL_GOOD 25
#define BEAUTY_LEVEL_GREAT 50
//Nutrition levels for humans
#define NUTRITION_LEVEL_FAT 600
#define NUTRITION_LEVEL_FULL 550
@@ -118,7 +137,7 @@
//Sentience types, to prevent things like sentience potions from giving bosses sentience
#define SENTIENCE_ORGANIC 1
#define SENTIENCE_ARTIFICIAL 2
#define SENTIENCE_OTHER 3
// #define SENTIENCE_OTHER 3 unused
#define SENTIENCE_MINEBOT 4
#define SENTIENCE_BOSS 5
@@ -137,29 +156,6 @@
#define ENVIRONMENT_SMASH_WALLS 2 //walls
#define ENVIRONMENT_SMASH_RWALLS 4 //rwalls
//SNPCs
//AI defines
#define INTERACTING 2
#define TRAVEL 4
#define FIGHTING 8
//Trait defines
#define TRAIT_ROBUST 2
#define TRAIT_UNROBUST 4
#define TRAIT_SMART 8
#define TRAIT_DUMB 16
#define TRAIT_MEAN 32
#define TRAIT_FRIENDLY 64
#define TRAIT_THIEVING 128
//Range/chance defines
#define MAX_RANGE_FIND 32
#define MIN_RANGE_FIND 16
#define FUZZY_CHANCE_HIGH 85
#define FUZZY_CHANCE_LOW 50
#define CHANCE_TALK 1
#define TK_MAXRANGE 15
#define NO_SLIP_WHEN_WALKING 1
#define SLIDE 2
#define GALOSHES_DONT_HELP 4
@@ -216,6 +212,10 @@
#define REAGENTS_METABOLISM 0.4 //How many units of reagent are consumed per tick, by default.
#define REAGENTS_EFFECT_MULTIPLIER (REAGENTS_METABOLISM / 0.4) // By defining the effect multiplier this way, it'll exactly adjust all effects according to how they originally were with the 0.4 metabolism
// Roundstart trait system
#define MAX_TRAITS 6 //The maximum amount of traits one character can have at roundstart
// AI Toggles
#define AI_CAMERA_LUMINOSITY 5
#define AI_VOX // Comment out if you don't want VOX to be enabled and have players download the voice sounds.
+5 -3
View File
@@ -14,8 +14,10 @@
#define SOUND_ANNOUNCEMENTS 2048
#define DISABLE_DEATHRATTLE 4096
#define DISABLE_ARRIVALRATTLE 8192
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS)
#define MEDIHOUND_SLEEPER 16384 //CITADEL EDITS, vore prefs.
#define EATING_NOISES 32768
#define DIGESTION_NOISES 65536
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS|MEDIHOUND_SLEEPER|EATING_NOISES|DIGESTION_NOISES)
//Chat toggles
#define CHAT_OOC 1
@@ -65,4 +67,4 @@
#define EXP_TYPE_GHOST "Ghost"
//Flags in the players table in the db
#define DB_FLAG_EXEMPT 1
#define DB_FLAG_EXEMPT 1
+1
View File
@@ -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)
-1
View File
@@ -49,7 +49,6 @@
#define RADIO_FROM_AIRALARM "from_airalarm"
#define RADIO_SIGNALER "signaler"
#define RADIO_ATMOSIA "atmosia"
#define RADIO_NAVBEACONS "navbeacons"
#define RADIO_AIRLOCK "airlock"
#define RADIO_MAGNETS "magnets"
+5 -9
View File
@@ -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 -3
View File
@@ -31,11 +31,9 @@
// Ripples, effects that signal a shuttle's arrival
#define SHUTTLE_RIPPLE_TIME 100
#define SHUTTLE_RIPPLE_FADEIN 50
#define TRANSIT_REQUEST 1
#define TRANSIT_READY 2
#define TRANSIT_FULL 3
#define SHUTTLE_TRANSIT_BORDER 8
@@ -79,4 +77,4 @@
#define SHUTTLE_DEFAULT_TURF_TYPE /turf/open/space
#define SHUTTLE_DEFAULT_BASETURF_TYPE /turf/open/space
#define SHUTTLE_DEFAULT_SHUTTLE_AREA_TYPE /area/shuttle
#define SHUTTLE_DEFAULT_UNDERLYING_AREA /area/space
#define SHUTTLE_DEFAULT_UNDERLYING_AREA /area/space
+4 -4
View File
@@ -4,11 +4,11 @@
#define SEE_INVISIBLE_LIVING 25
#define SEE_INVISIBLE_LEVEL_ONE 35 //currently unused
#define INVISIBILITY_LEVEL_ONE 35 //currently unused
//#define SEE_INVISIBLE_LEVEL_ONE 35 //currently unused
//#define INVISIBILITY_LEVEL_ONE 35 //currently unused
#define SEE_INVISIBLE_LEVEL_TWO 45 //currently unused
#define INVISIBILITY_LEVEL_TWO 45 //currently unused
//#define SEE_INVISIBLE_LEVEL_TWO 45 //currently unused
//#define INVISIBILITY_LEVEL_TWO 45 //currently unused
#define INVISIBILITY_OBSERVER 60
#define SEE_INVISIBLE_OBSERVER 60
+3 -2
View File
@@ -11,12 +11,13 @@
//CIT CHANNELS - TRY NOT TO REGRESS
#define CHANNEL_PRED 1015
#define CHANNEL_PREYLOOP 1014
#define CHANNEL_DIGEST 1014
#define CHANNEL_PREYLOOP 1013
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED
#define CHANNEL_HIGHEST_AVAILABLE 1013 //CIT CHANGE - COMPENSATES FOR VORESOUND CHANNELS
#define CHANNEL_HIGHEST_AVAILABLE 1012 //CIT CHANGE - COMPENSATES FOR VORESOUND CHANNELS
#define SOUND_MINIMUM_PRESSURE 10
-1
View File
@@ -15,6 +15,5 @@
#define EMPED 8 // temporary broken by EMP pulse
//ai power requirement defines
#define POWER_REQ_NONE 0
#define POWER_REQ_ALL 1
#define POWER_REQ_CLOCKCULT 2
+2 -2
View File
@@ -7,8 +7,6 @@
#define STATUS_EFFECT_REPLACE 2 //if it allows only one, but new instances replace
#define BASIC_STATUS_EFFECT /datum/status_effect //Has no effect.
///////////
// BUFFS //
///////////
@@ -32,6 +30,8 @@
#define STATUS_EFFECT_EXERCISED /datum/status_effect/exercised //Prevents heart disease
#define STATUS_EFFECT_HIPPOCRATIC_OATH /datum/status_effect/hippocraticOath //Gives you an aura of healing as well as regrowing the Rod of Asclepius if lost
/////////////
// DEBUFFS //
/////////////
+12 -11
View File
@@ -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
@@ -56,13 +56,14 @@
#define INIT_ORDER_RESEARCH 14
#define INIT_ORDER_EVENTS 13
#define INIT_ORDER_JOBS 12
#define INIT_ORDER_TICKER 11
#define INIT_ORDER_MAPPING 10
#define INIT_ORDER_ATOMS 9
#define INIT_ORDER_TRAITS 11
#define INIT_ORDER_TICKER 10
#define INIT_ORDER_MAPPING 9
#define INIT_ORDER_NETWORKS 8
#define INIT_ORDER_LANGUAGE 7
#define INIT_ORDER_MACHINES 6
#define INIT_ORDER_CIRCUIT 5
#define INIT_ORDER_ATOMS 7
#define INIT_ORDER_LANGUAGE 6
#define INIT_ORDER_MACHINES 5
#define INIT_ORDER_CIRCUIT 4
#define INIT_ORDER_TIMER 1
#define INIT_ORDER_DEFAULT 0
#define INIT_ORDER_AIR -1
@@ -83,24 +84,24 @@
#define FIRE_PRIORITY_IDLE_NPC 10
#define FIRE_PRIORITY_SERVER_MAINT 10
#define FIRE_PRIORITY_RESEARCH 10
#define FIRE_PRIORITY_GARBAGE 15
#define FIRE_PRIORITY_RESEARCH 15
#define FIRE_PRIORITY_AIR 20
#define FIRE_PRIORITY_NPC 20
#define FIRE_PRIORITY_PROCESS 25
#define FIRE_PRIORITY_THROWING 25
#define FIRE_PRIORITY_FLIGHTPACKS 30
#define FIRE_PRIORITY_SPACEDRIFT 30
#define FIRE_PRIORITY_FIELDS 30
#define FIRE_PRIOTITY_SMOOTHING 35
#define FIRE_PRIORITY_ORBIT 35
#define FIRE_PRIORITY_NETWORKS 40
#define FIRE_PRIORITY_OBJ 40
#define FIRE_PRIORUTY_FIELDS 40
#define FIRE_PRIORITY_ACID 40
#define FIRE_PRIOTITY_BURNING 40
#define FIRE_PRIORITY_INBOUNDS 40
#define FIRE_PRIORITY_DEFAULT 50
#define FIRE_PRIORITY_PARALLAX 65
#define FIRE_PRIORITY_NETWORKS 80
#define FIRE_PRIORITY_FLIGHTPACKS 80
#define FIRE_PRIORITY_MOBS 100
#define FIRE_PRIORITY_TGUI 110
#define FIRE_PRIORITY_TICKER 200
+35
View File
@@ -21,10 +21,43 @@
#define TRAIT_SLEEPIMMUNE "sleep_immunity"
#define TRAIT_PUSHIMMUNE "push_immunity"
#define TRAIT_SHOCKIMMUNE "shock_immunity"
#define TRAIT_STABLEHEART "stable_heart"
#define TRAIT_RESISTHEAT "resist_heat"
#define TRAIT_RESISTCOLD "resist_cold"
#define TRAIT_RESISTHIGHPRESSURE "resist_high_pressure"
#define TRAIT_RESISTLOWPRESSURE "resist_low_pressure"
#define TRAIT_RADIMMUNE "rad_immunity"
#define TRAIT_VIRUSIMMUNE "virus_immunity"
#define TRAIT_PIERCEIMMUNE "pierce_immunity"
#define TRAIT_NODISMEMBER "dismember_immunity"
#define TRAIT_NOFIRE "nonflammable"
#define TRAIT_NOGUNS "no_guns"
#define TRAIT_NOHUNGER "no_hunger"
#define TRAIT_EASYDISMEMBER "easy_dismember"
#define TRAIT_LIMBATTACHMENT "limb_attach"
#define TRAIT_TOXINLOVER "toxinlover"
#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"
#define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance"
#define TRAIT_AGEUSIA "ageusia"
#define TRAIT_HEAVY_SLEEPER "heavy_sleeper"
#define TRAIT_NIGHT_VISION "night_vision"
#define TRAIT_LIGHT_STEP "light_step"
#define TRAIT_SPIRITUAL "spiritual"
#define TRAIT_VORACIOUS "voracious"
#define TRAIT_SELF_AWARE "self_aware"
#define TRAIT_FREERUNNING "freerunning"
#define TRAIT_SKITTISH "skittish"
#define TRAIT_POOR_AIM "poor_aim"
#define TRAIT_PROSOPAGNOSIA "prosopagnosia"
// common trait sources
#define TRAIT_GENERIC "generic"
#define EYE_DAMAGE "eye_damage"
@@ -33,6 +66,7 @@
#define MAGIC_TRAIT "magic"
#define TRAUMA_TRAIT "trauma"
#define SPECIES_TRAIT "species"
#define ROUNDSTART_TRAIT "roundstart" //cannot be removed without admin intervention
// unique trait sources, still defines
#define STATUE_MUTE "statue"
@@ -43,3 +77,4 @@
#define TRAIT_HULK "hulk"
#define STASIS_MUTE "stasis"
#define GENETICS_SPELL "genetics_spell"
#define EYES_COVERED "eyes_covered"
+18
View File
@@ -5,6 +5,9 @@
#define DM_NOISY "Noisy"
#define DM_DRAGON "Dragon"
#define isbelly(A) istype(A, /obj/belly)
#define QDEL_NULL_LIST(x) if(x) { for(var/y in x) { qdel(y) } ; x = null }
#define VORE_STRUGGLE_EMOTE_CHANCE 40
// Stance for hostile mobs to be in while devouring someone.
@@ -60,6 +63,10 @@ GLOBAL_LIST_INIT(pred_vore_sounds, list(
"Squish3" = 'sound/vore/pred/squish_03.ogg',
"Squish4" = 'sound/vore/pred/squish_04.ogg',
"Rustle (cloth)" = 'sound/effects/rustle5.ogg',
"rustle2(cloth)" = 'sound/effects/rustle2.ogg',
"rustle3(cloth)" = 'sound/effects/rustle3.ogg',
"rustle4(cloth)" = 'sound/effects/rustle4.ogg',
"rustle5(cloth)" = 'sound/effects/rustle5.ogg',
"None" = null))
/*
GLOBAL_LIST_INIT(pred_struggle_sounds, list(
@@ -121,3 +128,14 @@ GLOBAL_LIST_INIT(death_prey, list(
"death9" = 'sound/vore/prey/death_09.ogg',
"death10" = 'sound/vore/prey/death_10.ogg'))
*/
GLOBAL_LIST_INIT(release_sound, list(
"rustle (cloth)" = 'sound/effects/rustle1.ogg',
"rustle2 (cloth)" = 'sound/effects/rustle2.ogg',
"rustle3 (cloth)" = 'sound/effects/rustle3.ogg',
"rustle4 (cloth)" = 'sound/effects/rustle4.ogg',
"rustle5 (cloth)" = 'sound/effects/rustle5.ogg',
"Stomach Move" = 'sound/vore/pred/stomachmove.ogg',
"Pred Escape" = 'sound/vore/pred/escape.ogg',
"Splatter" = 'sound/effects/splat.ogg',
"None" = null))
+4 -1
View File
@@ -77,4 +77,7 @@ GLOBAL_VAR_INIT(cmp_field, "name")
if(A.plane != B.plane)
return A.plane - B.plane
else
return A.layer - B.layer
return A.layer - B.layer
/proc/cmp_advdisease_resistance_asc(datum/disease/advance/A, datum/disease/advance/B)
return A.totalResistance() - B.totalResistance()
+6 -1
View File
@@ -35,6 +35,7 @@
return path
#define FTPDELAY 200 //200 tick delay to discourage spam
#define ADMIN_FTPDELAY_MODIFIER 0.5 //Admins get to spam files faster since we ~trust~ them!
/* This proc is a failsafe to prevent spamming of file requests.
It is just a timer that only permits a download every [FTPDELAY] ticks.
This can be changed by modifying FTPDELAY's value above.
@@ -45,9 +46,13 @@
if(time_to_wait > 0)
to_chat(src, "<font color='red'>Error: file_spam_check(): Spam. Please wait [DisplayTimeText(time_to_wait)].</font>")
return 1
GLOB.fileaccess_timer = world.time + FTPDELAY
var/delay = FTPDELAY
if(holder)
delay *= ADMIN_FTPDELAY_MODIFIER
GLOB.fileaccess_timer = world.time + delay
return 0
#undef FTPDELAY
#undef ADMIN_FTPDELAY_MODIFIER
/proc/pathwalk(path)
var/list/jobs = list(path)
+2 -2
View File
@@ -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
View File
@@ -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
+25
View File
@@ -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))
+6 -10
View File
@@ -598,33 +598,29 @@ GLOBAL_LIST_INIT(binary, list("0","1"))
return
//Regular expressions are, as usual, absolute magic
var/regex/is_website = new("http|www.|\[a-z0-9_-]+.(com|org|net|mil|edu)+", "i")
var/regex/is_email = new("\[a-z0-9_-]+@\[a-z0-9_-]+.\[a-z0-9_-]+", "i")
var/regex/alphanumeric = new("\[a-z0-9]+", "i")
var/regex/punctuation = new("\[.!?]+", "i")
var/regex/all_invalid_symbols = new("\[^ -~]+")
var/list/accepted = list()
for(var/string in proposed)
if(findtext(string,is_website) || findtext(string,is_email) || findtext(string,all_invalid_symbols) || !findtext(string,alphanumeric))
if(findtext(string,GLOB.is_website) || findtext(string,GLOB.is_email) || findtext(string,all_invalid_symbols) || !findtext(string,GLOB.is_alphanumeric))
continue
var/buffer = ""
var/early_culling = TRUE
for(var/pos = 1, pos <= lentext(string), pos++)
var/let = copytext(string, pos, (pos + 1) % lentext(string))
if(early_culling && !findtext(let,alphanumeric))
if(early_culling && !findtext(let,GLOB.is_alphanumeric))
continue
early_culling = FALSE
buffer += let
if(!findtext(buffer,alphanumeric))
if(!findtext(buffer,GLOB.is_alphanumeric))
continue
var/punctbuffer = ""
var/cutoff = lentext(buffer)
for(var/pos = lentext(buffer), pos >= 0, pos--)
var/let = copytext(buffer, pos, (pos + 1) % lentext(buffer))
if(findtext(let,alphanumeric))
if(findtext(let,GLOB.is_alphanumeric))
break
if(findtext(let,punctuation))
if(findtext(let,GLOB.is_punctuation))
punctbuffer = let + punctbuffer //Note this isn't the same thing as using +=
cutoff = pos
if(punctbuffer) //We clip down excessive punctuation to get the letter count lower and reduce repeats. It's not perfect but it helps.
@@ -652,7 +648,7 @@ GLOBAL_LIST_INIT(binary, list("0","1"))
else
punctbuffer = "" //Grammer nazis be damned
buffer = copytext(buffer, 1, cutoff) + punctbuffer
if(!findtext(buffer,alphanumeric))
if(!findtext(buffer,GLOB.is_alphanumeric))
continue
if(!buffer || lentext(buffer) > 280 || lentext(buffer) <= cullshort || buffer in accepted)
continue
+3 -3
View File
@@ -11,11 +11,11 @@
wtime = world.time
return time2text(wtime - GLOB.timezoneOffset, format)
/proc/station_time()
return ((((world.time - SSticker.round_start_time) * SSticker.station_time_rate_multiplier) + SSticker.gametime_offset) % 864000) - GLOB.timezoneOffset
/proc/station_time(display_only = FALSE)
return ((((world.time - SSticker.round_start_time) * SSticker.station_time_rate_multiplier) + SSticker.gametime_offset) % 864000) - (display_only? GLOB.timezoneOffset : 0)
/proc/station_time_timestamp(format = "hh:mm:ss")
return time2text(station_time(), format)
return time2text(station_time(TRUE), format)
/proc/station_time_debug(force_set)
if(isnum(force_set))
+21 -19
View File
@@ -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)
+4
View File
@@ -105,3 +105,7 @@
. += copytext(text, last_found, found)
last_found = found + delim_len
while (found)
// Returns true if val is from min to max, inclusive.
/proc/IsInRange(val, min, max)
return (val >= min) && (val <= max)
+19 -11
View File
@@ -518,16 +518,24 @@ Turf and target are separate in case you want to teleport some distance from a t
Gets all contents of contents and returns them all in a list.
*/
/atom/proc/GetAllContents()
/atom/proc/GetAllContents(var/T)
var/list/processing_list = list(src)
var/list/assembled = list()
while(processing_list.len)
var/atom/A = processing_list[1]
processing_list.Cut(1, 2)
//Byond does not allow things to be in multiple contents, or double parent-child hierarchies, so only += is needed
//This is also why we don't need to check against assembled as we go along
processing_list += A.contents
assembled += A
if(T)
while(processing_list.len)
var/atom/A = processing_list[1]
processing_list.Cut(1, 2)
//Byond does not allow things to be in multiple contents, or double parent-child hierarchies, so only += is needed
//This is also why we don't need to check against assembled as we go along
processing_list += A.contents
if(istype(A,T))
assembled += A
else
while(processing_list.len)
var/atom/A = processing_list[1]
processing_list.Cut(1, 2)
processing_list += A.contents
assembled += A
return assembled
/atom/proc/GetAllContentsIgnoring(list/ignore_typecache)
@@ -912,7 +920,7 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list(
That said, this proc should not be used if the change facing proc of the click code is overriden at the same time*/
if(!ismob(target) || target.lying)
//Make sure we are not doing this for things that can't have a logical direction to the players given that the target would be on their side
return FACING_FAILED
return FALSE
if(initator.dir == target.dir) //mobs are facing the same direction
return FACING_SAME_DIR
if(is_A_facing_B(initator,target) && is_A_facing_B(target,initator)) //mobs are facing each other
@@ -987,9 +995,9 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list(
var/mob/living/LA = A
if(LA.lying)
return 0
var/goal_dir = angle2dir(dir2angle(get_dir(B,A)+180))
var/goal_dir = get_dir(A,B)
var/clockwise_A_dir = turn(A.dir, -45)
var/anticlockwise_A_dir = turn(B.dir, 45)
var/anticlockwise_A_dir = turn(A.dir, 45)
if(A.dir == goal_dir || clockwise_A_dir == goal_dir || anticlockwise_A_dir == goal_dir)
return 1
-2
View File
@@ -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)
+131 -130
View File
@@ -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!"))
+3 -1
View File
@@ -25,8 +25,10 @@ GLOBAL_LIST_EMPTY(available_ai_shells)
GLOBAL_LIST_INIT(simple_animals, list(list(),list(),list(),list())) // One for each AI_* status define
GLOBAL_LIST_EMPTY(spidermobs) //all sentient spider mobs
GLOBAL_LIST_EMPTY(bots_list)
GLOBAL_LIST_EMPTY(living_cameras)
GLOBAL_LIST_EMPTY(language_datum_instances)
GLOBAL_LIST_EMPTY(all_languages)
GLOBAL_LIST_EMPTY(latejoiners) //CIT CHANGE - All latejoining people, for traitor-target purposes.
GLOBAL_LIST_EMPTY(latejoiners) //CIT CHANGE - All latejoining people, for traitor-target purposes.
GLOBAL_LIST_EMPTY(sentient_disease_instances)
-2
View File
@@ -1,10 +1,8 @@
//Each lists stores ckeys for "Never for this round" option category
#define POLL_IGNORE_PAI "pai"
#define POLL_IGNORE_SENTIENCE_POTION "sentience_potion"
#define POLL_IGNORE_POSSESSED_BLADE "possessed_blade"
#define POLL_IGNORE_ALIEN_LARVA "alien_larva"
#define POLL_IGNORE_CLOCKWORK_MARAUDER "clockwork_marauder"
#define POLL_IGNORE_SYNDICATE "syndicate"
#define POLL_IGNORE_HOLOPARASITE "holoparasite"
+2 -1
View File
@@ -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)
))
+7
View File
@@ -0,0 +1,7 @@
//These are a bunch of regex datums for use /((any|every|no|some|head|foot)where(wolf)?\sand\s)+(\.[\.\s]+\s?where\?)?/i
GLOBAL_DATUM_INIT(is_http_protocol, /regex, regex("^https?://"))
GLOBAL_DATUM_INIT(is_website, /regex, regex("http|www.|\[a-z0-9_-]+.(com|org|net|mil|edu)+", "i"))
GLOBAL_DATUM_INIT(is_email, /regex, regex("\[a-z0-9_-]+@\[a-z0-9_-]+.\[a-z0-9_-]+", "i"))
GLOBAL_DATUM_INIT(is_alphanumeric, /regex, regex("\[a-z0-9]+", "i"))
GLOBAL_DATUM_INIT(is_punctuation, /regex, regex("\[.!?]+", "i"))
-1
View File
@@ -1 +0,0 @@
GLOBAL_VAR_INIT(enable_examine_tips, TRUE)
+5 -1
View File
@@ -75,7 +75,7 @@
if(modifiers["middle"])
MiddleClickOn(A)
return
if(modifiers["shift"])
if(modifiers["shift"] && (client && client.show_popup_menus || modifiers["right"])) //CIT CHANGE - makes shift-click examine use right click instead of left click in combat mode
ShiftClickOn(A)
return
if(modifiers["alt"]) // alt and alt-gr (rightalt)
@@ -85,6 +85,10 @@
CtrlClickOn(A)
return
if(modifiers["right"]) //CIT CHANGE - allows right clicking to perform actions
RightClickOn(A,params) //CIT CHANGE - ditto
return //CIT CHANGE - ditto
if(incapacitated(ignore_restraints = 1))
return
-8
View File
@@ -1,8 +0,0 @@
/mob/camera/god/UnarmedAttack(atom/A)
A.attack_god(src)
/mob/camera/god/RangedAttack(atom/A)
A.attack_god(src)
/atom/proc/attack_god(mob/user)
return
+6 -5
View File
@@ -66,7 +66,7 @@
#define ui_monkey_neck "CENTER-3:15,SOUTH:5" //monkey
#define ui_monkey_back "CENTER-2:16,SOUTH:5" //monkey
#define ui_alien_storage_l "CENTER-2:14,SOUTH:5"//alien
//#define ui_alien_storage_l "CENTER-2:14,SOUTH:5"//alien
#define ui_alien_storage_r "CENTER+1:18,SOUTH:5"//alien
#define ui_alien_language_menu "EAST-3:26,SOUTH:5" //alien
@@ -82,9 +82,9 @@
#define ui_acti "EAST-3:24,SOUTH:5"
#define ui_zonesel "EAST-1:28,SOUTH:5"
#define ui_acti_alt "EAST-1:28,SOUTH:5" //alternative intent switcher for when the interface is hidden (F12)
#define ui_crafting "EAST-4:22,SOUTH:5"
#define ui_building "EAST-4:22,SOUTH:21"
#define ui_language_menu "EAST-4:6,SOUTH:21"
#define ui_crafting "EAST-5:20,SOUTH:5"//CIT CHANGE - moves this over one tile to accommodate for combat mode toggle
#define ui_building "EAST-5:20,SOUTH:21"//CIT CHANGE - ditto
#define ui_language_menu "EAST-5:4,SOUTH:21"//CIT CHANGE - ditto
#define ui_borg_pull "EAST-2:26,SOUTH+1:7"
#define ui_borg_radio "EAST-1:28,SOUTH+1:7"
@@ -102,7 +102,8 @@
//Middle right (status indicators)
#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_internal "EAST-1:28,CENTER+1:19"//CIT CHANGE - moves internal icon up a little bit to accommodate for the stamina meter
#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.
+5 -1
View File
@@ -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()
+5
View File
@@ -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
+3 -1
View File
@@ -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
+44 -4
View File
@@ -89,19 +89,29 @@
..()
owner.overlay_fullscreen("see_through_darkness", /obj/screen/fullscreen/see_through_darkness)
var/widescreenlayout = FALSE //CIT CHANGE - adds support for different hud layouts depending on widescreen pref
if(owner.client && owner.client.prefs && owner.client.prefs.widescreenpref) //CIT CHANGE - ditto
widescreenlayout = TRUE // CIT CHANGE - ditto
var/obj/screen/using
var/obj/screen/inventory/inv_box
using = new /obj/screen/craft
using.icon = ui_style
if(!widescreenlayout) // CIT CHANGE
using.screen_loc = ui_boxcraft // CIT CHANGE
static_inventory += using
using = new/obj/screen/language_menu
using.icon = ui_style
if(!widescreenlayout) // CIT CHANGE
using.screen_loc = ui_boxlang // CIT CHANGE
static_inventory += using
using = new /obj/screen/area_creator
using.icon = ui_style
if(!widescreenlayout) // CIT CHANGE
using.screen_loc = ui_boxarea // CIT CHANGE
static_inventory += using
action_intent = new /obj/screen/act_intent/segmented
@@ -109,11 +119,19 @@
static_inventory += action_intent
using = new /obj/screen/mov_intent
using.icon = ui_style
using.icon = tg_ui_icon_to_cit_ui(ui_style) // CIT CHANGE - overrides mov intent icon
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
using.screen_loc = ui_movi
static_inventory += using
//CITADEL CHANGES - sprint button
using = new /obj/screen/sprintbutton
using.icon = tg_ui_icon_to_cit_ui(ui_style)
using.icon_state = (owner.sprinting ? "act_sprint_on" : "act_sprint")
using.screen_loc = ui_movi
static_inventory += using
//END OF CITADEL CHANGES
using = new /obj/screen/drop()
using.icon = ui_style
using.screen_loc = ui_drop_throw
@@ -207,9 +225,21 @@
using = new /obj/screen/resist()
using.icon = ui_style
using.screen_loc = ui_pull_resist
using.screen_loc = ui_overridden_resist // CIT CHANGE - changes this to overridden resist
hotkeybuttons += using
//CIT CHANGES - rest and combat mode buttons
using = new /obj/screen/restbutton()
using.icon = tg_ui_icon_to_cit_ui(ui_style)
using.screen_loc = ui_pull_resist
static_inventory += using
using = new /obj/screen/combattoggle()
using.icon = tg_ui_icon_to_cit_ui(ui_style)
using.screen_loc = ui_combat_toggle
static_inventory += using
//END OF CIT CHANGES
using = new /obj/screen/human/toggle()
using.icon = ui_style
using.screen_loc = ui_inventory
@@ -280,15 +310,25 @@
healths = new /obj/screen/healths()
infodisplay += healths
//CIT CHANGE - adds arousal to hud
//CIT CHANGE - adds arousal and stamina to hud
arousal = new /obj/screen/arousal()
arousal.icon_state = (owner.canbearoused == 1 ? "arousal0" : "")
infodisplay += arousal
staminas = new /obj/screen/staminas()
infodisplay += staminas
staminabuffer = new /obj/screen/staminabuffer()
infodisplay += staminabuffer
//END OF CIT CHANGES
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)
@@ -314,7 +354,7 @@
inv.hud = src
inv_slots[inv.slot_id] = inv
inv.update_icon()
update_locked_slots()
/datum/hud/human/update_locked_slots()
-13
View File
@@ -1,13 +0,0 @@
/datum/hud/brain/show_hud(version = 0)
if(!ismob(mymob))
return 0
if(!mymob.client)
return 0
mymob.client.screen = list()
mymob.client.screen += mymob.client.void
/mob/living/brain/create_mob_hud()
if(client && !hud_used)
hud_used = new /datum/hud/brain(src)
-6
View File
@@ -152,12 +152,6 @@
continue
var/newstate = initial(L.icon_state)
if (animatedir)
if(animatedir == NORTH || animatedir == SOUTH)
newstate += "_vertical"
else
newstate += "_horizontal"
var/T = PARALLAX_LOOP_TIME / L.speed
if (newstate in icon_states(L.icon))
+10
View File
@@ -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 = ""
+19 -1
View File
@@ -54,6 +54,10 @@
if(flags_1 & NOBLUDGEON_1)
return
if(user.staminaloss >= STAMINA_SOFTCRIT) // CIT CHANGE - makes it impossible to attack in stamina softcrit
to_chat(user, "<span class='warning'>You're too exhausted.</span>") // CIT CHANGE - ditto
return // CIT CHANGE - ditto
if(force && user.has_trait(TRAIT_PACIFISM))
to_chat(user, "<span class='warning'>You don't want to harm other living beings!</span>")
return
@@ -72,12 +76,17 @@
add_logs(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
add_fingerprint(user)
user.adjustStaminaLossBuffered(getweight())//CIT CHANGE - makes attacking things cause stamina loss
//the equivalent of the standard version of attack() but for object targets.
/obj/item/proc/attack_obj(obj/O, mob/living/user)
SendSignal(COMSIG_ITEM_ATTACK_OBJ, O, user)
if(flags_1 & NOBLUDGEON_1)
return
if(user.staminaloss >= STAMINA_SOFTCRIT) // CIT CHANGE - makes it impossible to attack in stamina softcrit
to_chat(user, "<span class='warning'>You're too exhausted.</span>") // CIT CHANGE - ditto
return // CIT CHANGE - ditto
user.adjustStaminaLossBuffered(getweight()*1.2)//CIT CHANGE - makes attacking things cause stamina loss
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(O)
O.attacked_by(src, user)
@@ -94,7 +103,16 @@
/mob/living/attacked_by(obj/item/I, mob/living/user)
send_item_attack_message(I, user)
if(I.force)
apply_damage(I.force, I.damtype)
//CIT CHANGES START HERE - combatmode and resting checks
var/totitemdamage = I.force
if(iscarbon(user))
var/mob/living/carbon/tempcarb = user
if(!tempcarb.combatmode)
totitemdamage *= 0.5
if(user.resting)
totitemdamage *= 0.5
//CIT CHANGES END HERE
apply_damage(totitemdamage, I.damtype) //CIT CHANGE - replaces I.force with totitemdamage
if(I.damtype == BRUTE)
if(prob(33))
I.add_mob_blood(src)
+1 -1
View File
@@ -103,7 +103,7 @@
"<span class='userdanger'>[name] bites [ML]!</span>")
if(armor >= 2)
return
for(var/thing in viruses)
for(var/thing in diseases)
var/datum/disease/D = thing
ML.ForceContractDisease(D)
else
+5
View File
@@ -10,6 +10,8 @@
By default, emulate the user's unarmed attack
*/
#define TK_MAXRANGE 15
/atom/proc/attack_tk(mob/user)
if(user.stat || !tkMaxRangeCheck(user, src))
return
@@ -188,3 +190,6 @@
/obj/item/tk_grab/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is using [user.p_their()] telekinesis to choke [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!</span>")
return (OXYLOSS)
#undef TK_MAXRANGE
File diff suppressed because it is too large Load Diff
-40
View File
@@ -1,40 +0,0 @@
/obj/item/clothing/under/bb_sweater
name = "cream sweater"
desc = "Why trade style for comfort? Now you can go commando down south and still be cozy up north."
icon_state = "bb_turtle"
item_state = "w_suit"
item_color = "bb_turtle"
body_parts_covered = CHEST|ARMS
can_adjust = 1
icon = 'icons/obj/clothing/turtlenecks.dmi'
icon_override = 'icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/bb_sweater/black
name = "black sweater"
icon_state = "bb_turtleblk"
item_state = "bl_suit"
item_color = "bb_turtleblk"
/obj/item/clothing/under/bb_sweater/purple
name = "purple sweater"
icon_state = "bb_turtlepur"
item_state = "p_suit"
item_color = "bb_turtlepur"
/obj/item/clothing/under/bb_sweater/green
name = "green sweater"
icon_state = "bb_turtlegrn"
item_state = "g_suit"
item_color = "bb_turtlegrn"
/obj/item/clothing/under/bb_sweater/red
name = "red sweater"
icon_state = "bb_turtlered"
item_state = "r_suit"
item_color = "bb_turtlered"
/obj/item/clothing/under/bb_sweater/blue
name = "blue sweater"
icon_state = "bb_turtleblu"
item_state = "b_suit"
item_color = "bb_turtleblu"
-102
View File
@@ -1,102 +0,0 @@
#define STANDARD_CHARGE 1
#define CONTRABAND_CHARGE 2
#define COIN_CHARGE 3
/obj/machinery/vending/kink
name = "KinkMate"
desc = "A vending machine for all your unmentionable desires."
icon = 'icons/obj/citvending.dmi'
icon_state = "kink"
product_slogans = "Kinky!;Sexy!;Check me out, big boy!"
vend_reply = "Have fun, you shameless pervert!"
products = list(
/obj/item/clothing/under/maid = 5,
/obj/item/clothing/under/stripper_pink = 5,
/obj/item/clothing/under/stripper_green = 5,
/obj/item/dildo/custom = 5
)
contraband = list(/obj/item/restraints/handcuffs/fake/kinky = 5,
/obj/item/clothing/neck/petcollar = 5,
/obj/item/clothing/under/mankini = 1,
/obj/item/dildo/flared/huge = 1
)
premium = list(/obj/item/device/electropack/shockcollar = 1)
refill_canister = /obj/item/vending_refill/kink
/*
/obj/machinery/vending/nazivend
name = "Nazivend"
desc = "A vending machine containing Nazi German supplies. A label reads: \"Remember the gorrilions lost.\""
icon = 'icons/obj/citvending.dmi'
icon_state = "nazi"
vend_reply = "SIEG HEIL!"
product_slogans = "Das Vierte Reich wird zuruckkehren!;ENTFERNEN JUDEN!;Billiger als die Juden jemals geben!;Rader auf dem adminbus geht rund und rund.;Warten Sie, warum wir wieder hassen Juden?- *BZZT*"
products = list(
/obj/item/clothing/head/stalhelm = 20,
/obj/item/clothing/head/panzer = 20,
/obj/item/clothing/suit/soldiercoat = 20,
// /obj/item/clothing/under/soldieruniform = 20,
/obj/item/clothing/shoes/jackboots = 20
)
contraband = list(
/obj/item/clothing/head/naziofficer = 10,
// /obj/item/clothing/suit/officercoat = 10,
// /obj/item/clothing/under/officeruniform = 10,
/obj/item/clothing/suit/space/hardsuit/nazi = 3,
/obj/item/gun/energy/plasma/MP40k = 4
)
premium = list()
refill_canister = /obj/item/vending_refill/nazi
*/
/obj/machinery/vending/sovietvend
name = "KomradeVendtink"
desc = "Rodina-mat' zovyot!"
icon = 'icons/obj/citvending.dmi'
icon_state = "soviet"
vend_reply = "The fascist and capitalist svin'ya shall fall, komrade!"
product_slogans = "Quality worth waiting in line for!; Get Hammer and Sickled!; Sosvietsky soyuz above all!; With capitalist pigsky, you would have paid a fortunetink! ; Craftink in Motherland herself!"
products = list(
/obj/item/clothing/under/soviet = 20,
/obj/item/clothing/head/ushanka = 20,
/obj/item/clothing/shoes/jackboots = 20,
/obj/item/clothing/head/squatter_hat = 20,
/obj/item/clothing/under/squatter_outfit = 20,
/obj/item/clothing/under/russobluecamooutfit = 20,
/obj/item/clothing/head/russobluecamohat = 20
)
contraband = list(
/obj/item/clothing/under/syndicate/tacticool = 4,
/obj/item/clothing/mask/balaclava = 4,
/obj/item/clothing/suit/russofurcoat = 4,
/obj/item/clothing/head/russofurhat = 4,
/obj/item/clothing/suit/space/hardsuit/soviet = 3,
/obj/item/gun/energy/laser/LaserAK = 4
)
premium = list()
refill_canister = /obj/item/vending_refill/soviet
#undef STANDARD_CHARGE
#undef CONTRABAND_CHARGE
#undef COIN_CHARGE
/obj/item/vending_refill/kink
machine_name = "KinkMate"
icon = 'modular_citadel/icons/vending_restock.dmi'
icon_state = "refill_kink"
charges = list(8, 5, 0)// of 20 standard, 12 contraband, 0 premium
init_charges = list(8, 5, 0)
/obj/item/vending_refill/nazi
machine_name = "nazivend"
icon_state = "refill_nazi"
charges = list(33, 13, 0)
init_charges = list(33, 13, 0)
/obj/item/vending_refill/soviet
machine_name = "sovietvend"
icon_state = "refill_soviet"
charges = list(47, 7, 0)
init_charges = list(47, 7, 0)
-13
View File
@@ -1,13 +0,0 @@
/proc/send2maindiscord(var/msg)
send2discord(msg, FALSE)
/proc/send2admindiscord(var/msg, var/ping = FALSE)
send2discord(msg, TRUE, ping)
/proc/send2discord(var/msg, var/admin = FALSE, var/ping = FALSE)
// if (!config.discord_url || !config.discord_password)
// return
// var/url = "[config.discord_url]?pass=[url_encode(config.discord_password)]&admin=[admin ? "true" : "false"]&content=[url_encode(msg)]&ping=[ping ? "true" : "false"]"
// world.Export(url)
return
-287
View File
@@ -1,287 +0,0 @@
GLOBAL_VAR_INIT(config_dir, "config/")
GLOBAL_PROTECT(config_dir)
/datum/controller/configuration
name = "Configuration"
var/hiding_entries_by_type = TRUE //Set for readability, admins can set this to FALSE if they want to debug it
var/list/entries
var/list/entries_by_type
var/list/maplist
var/datum/map_config/defaultmap
var/list/modes // allowed modes
var/list/gamemode_cache
var/list/votable_modes // votable modes
var/list/mode_names
var/list/mode_reports
var/list/mode_false_report_weight
/datum/controller/configuration/New()
config = src
var/list/config_files = InitEntries()
LoadModes()
for(var/I in config_files)
LoadEntries(I)
if(Get(/datum/config_entry/flag/maprotation))
loadmaplist(CONFIG_MAPS_FILE)
/datum/controller/configuration/Destroy()
entries_by_type.Cut()
QDEL_LIST_ASSOC_VAL(entries)
QDEL_LIST_ASSOC_VAL(maplist)
QDEL_NULL(defaultmap)
config = null
return ..()
/datum/controller/configuration/proc/InitEntries()
var/list/_entries = list()
entries = _entries
var/list/_entries_by_type = list()
entries_by_type = _entries_by_type
. = list()
for(var/I in typesof(/datum/config_entry)) //typesof is faster in this case
var/datum/config_entry/E = I
if(initial(E.abstract_type) == I)
continue
E = new I
_entries_by_type[I] = E
var/esname = E.name
var/datum/config_entry/test = _entries[esname]
if(test)
log_config("Error: [test.type] has the same name as [E.type]: [esname]! Not initializing [E.type]!")
qdel(E)
continue
_entries[esname] = E
.[E.resident_file] = TRUE
/datum/controller/configuration/proc/RemoveEntry(datum/config_entry/CE)
entries -= CE.name
entries_by_type -= CE.type
/datum/controller/configuration/proc/LoadEntries(filename)
log_config("Loading config file [filename]...")
var/list/lines = world.file2list("[GLOB.config_dir][filename]")
var/list/_entries = entries
for(var/L in lines)
if(!L)
continue
if(copytext(L, 1, 2) == "#")
continue
var/pos = findtext(L, " ")
var/entry = null
var/value = null
if(pos)
entry = lowertext(copytext(L, 1, pos))
value = copytext(L, pos + 1)
else
entry = lowertext(L)
if(!entry)
continue
var/datum/config_entry/E = _entries[entry]
if(!E)
log_config("Unknown setting in configuration: '[entry]'")
continue
if(filename != E.resident_file)
log_config("Found [entry] in [filename] when it should have been in [E.resident_file]! Ignoring.")
continue
var/validated = E.ValidateAndSet(value)
if(!validated)
log_config("Failed to validate setting \"[value]\" for [entry]")
else if(E.modified && !E.dupes_allowed)
log_config("Duplicate setting for [entry] ([value]) detected! Using latest.")
if(validated)
E.modified = TRUE
/datum/controller/configuration/can_vv_get(var_name)
return (var_name != "entries_by_type" || !hiding_entries_by_type) && ..()
/datum/controller/configuration/vv_edit_var(var_name, var_value)
return !(var_name in list("entries_by_type", "entries")) && ..()
/datum/controller/configuration/stat_entry()
if(!statclick)
statclick = new/obj/effect/statclick/debug(null, "Edit", src)
stat("[name]:", statclick)
/datum/controller/configuration/proc/Get(entry_type)
if(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Get" && GLOB.LastAdminCalledTargetRef == "\ref[src]")
log_admin_private("Config access of [entry_type] attempted by [key_name(usr)]")
return
var/datum/config_entry/E = entry_type
var/entry_is_abstract = initial(E.abstract_type) == entry_type
if(entry_is_abstract)
CRASH("Tried to retrieve an abstract config_entry: [entry_type]")
E = entries_by_type[entry_type]
if(!E)
CRASH("Missing config entry for [entry_type]!")
return E.value
/datum/controller/configuration/proc/Set(entry_type, new_val)
if(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Set" && GLOB.LastAdminCalledTargetRef == "\ref[src]")
log_admin_private("Config rewrite of [entry_type] to [new_val] attempted by [key_name(usr)]")
return
var/datum/config_entry/E = entry_type
var/entry_is_abstract = initial(E.abstract_type) == entry_type
if(entry_is_abstract)
CRASH("Tried to retrieve an abstract config_entry: [entry_type]")
E = entries_by_type[entry_type]
if(!E)
CRASH("Missing config entry for [entry_type]!")
return E.ValidateAndSet(new_val)
/datum/controller/configuration/proc/LoadModes()
gamemode_cache = typecacheof(/datum/game_mode, TRUE)
modes = list()
mode_names = list()
mode_reports = list()
mode_false_report_weight = list()
votable_modes = list()
var/list/probabilities = Get(/datum/config_entry/keyed_number_list/probability)
for(var/T in gamemode_cache)
// I wish I didn't have to instance the game modes in order to look up
// their information, but it is the only way (at least that I know of).
var/datum/game_mode/M = new T()
if(M.config_tag)
if(!(M.config_tag in modes)) // ensure each mode is added only once
modes += M.config_tag
mode_names[M.config_tag] = M.name
probabilities[M.config_tag] = M.probability
mode_reports[M.config_tag] = M.generate_report()
mode_false_report_weight[M.config_tag] = M.false_report_weight
if(M.votable)
votable_modes += M.config_tag
qdel(M)
votable_modes += "secret"
/datum/controller/configuration/proc/loadmaplist(filename)
filename = "[GLOB.config_dir][filename]"
var/list/Lines = world.file2list(filename)
var/datum/map_config/currentmap = null
for(var/t in Lines)
if(!t)
continue
t = trim(t)
if(length(t) == 0)
continue
else if(copytext(t, 1, 2) == "#")
continue
var/pos = findtext(t, " ")
var/command = null
var/data = null
if(pos)
command = lowertext(copytext(t, 1, pos))
data = copytext(t, pos + 1)
else
command = lowertext(t)
if(!command)
continue
if (!currentmap && command != "map")
continue
switch (command)
if ("map")
currentmap = new ("_maps/[data].json")
if(currentmap.defaulted)
log_config("Failed to load map config for [data]!")
if ("minplayers","minplayer")
currentmap.config_min_users = text2num(data)
if ("maxplayers","maxplayer")
currentmap.config_max_users = text2num(data)
if ("weight","voteweight")
currentmap.voteweight = text2num(data)
if ("default","defaultmap")
defaultmap = currentmap
if ("endmap")
LAZYINITLIST(maplist)
maplist[currentmap.map_name] = currentmap
currentmap = null
if ("disabled")
currentmap = null
else
WRITE_FILE(GLOB.config_error_log, "Unknown command in map vote config: '[command]'")
/datum/controller/configuration/proc/pick_mode(mode_name)
// I wish I didn't have to instance the game modes in order to look up
// their information, but it is the only way (at least that I know of).
// ^ This guy didn't try hard enough
for(var/T in gamemode_cache)
var/datum/game_mode/M = T
var/ct = initial(M.config_tag)
if(ct && ct == mode_name)
return new T
return new /datum/game_mode/extended()
/datum/controller/configuration/proc/get_runnable_modes()
var/list/datum/game_mode/runnable_modes = new
var/list/probabilities = Get(/datum/config_entry/keyed_number_list/probability)
var/list/min_pop = Get(/datum/config_entry/keyed_number_list/min_pop)
var/list/max_pop = Get(/datum/config_entry/keyed_number_list/max_pop)
var/list/repeated_mode_adjust = Get(/datum/config_entry/number_list/repeated_mode_adjust)
for(var/T in gamemode_cache)
var/datum/game_mode/M = new T()
if(!(M.config_tag in modes))
qdel(M)
continue
if(probabilities[M.config_tag]<=0)
qdel(M)
continue
if(min_pop[M.config_tag])
M.required_players = min_pop[M.config_tag]
if(max_pop[M.config_tag])
M.maximum_players = max_pop[M.config_tag]
if(M.can_start())
var/final_weight = probabilities[M.config_tag]
if(SSpersistence.saved_modes.len == 3 && repeated_mode_adjust.len == 3)
var/recent_round = min(SSpersistence.saved_modes.Find(M.config_tag),3)
var/adjustment = 0
while(recent_round)
adjustment += repeated_mode_adjust[recent_round]
recent_round = SSpersistence.saved_modes.Find(M.config_tag,recent_round+1,0)
final_weight *= ((100-adjustment)/100)
runnable_modes[M] = final_weight
return runnable_modes
/datum/controller/configuration/proc/get_runnable_midround_modes(crew)
var/list/datum/game_mode/runnable_modes = new
var/list/probabilities = Get(/datum/config_entry/keyed_number_list/probability)
var/list/min_pop = Get(/datum/config_entry/keyed_number_list/min_pop)
var/list/max_pop = Get(/datum/config_entry/keyed_number_list/max_pop)
for(var/T in (gamemode_cache - SSticker.mode.type))
var/datum/game_mode/M = new T()
if(!(M.config_tag in modes))
qdel(M)
continue
if(probabilities[M.config_tag]<=0)
qdel(M)
continue
if(min_pop[M.config_tag])
M.required_players = min_pop[M.config_tag]
if(max_pop[M.config_tag])
M.maximum_players = max_pop[M.config_tag]
if(M.required_players <= crew)
if(M.maximum_players >= 0 && M.maximum_players < crew)
continue
runnable_modes[M] = probabilities[M.config_tag]
return runnable_modes
@@ -33,12 +33,12 @@
/datum/config_entry/can_vv_get(var_name)
. = ..()
if(var_name == "value" || var_name == "default")
if(var_name == NAMEOF(src, config_entry_value) || var_name == NAMEOF(src, default))
. &= !(protection & CONFIG_ENTRY_HIDDEN)
/datum/config_entry/vv_edit_var(var_name, var_value)
var/static/list/banned_edits = list("name", "default", "resident_file", "protection", "abstract_type", "modified", "dupes_allowed")
if(var_name == "value")
var/static/list/banned_edits = list(NAMEOF(src, name), NAMEOF(src, default), NAMEOF(src, resident_file), NAMEOF(src, protection), NAMEOF(src, abstract_type), NAMEOF(src, modified), NAMEOF(src, dupes_allowed))
if(var_name == NAMEOF(src, config_entry_value))
if(protection & CONFIG_ENTRY_LOCKED)
return FALSE
. = ValidateAndSet("[var_value]")
@@ -67,6 +67,9 @@
entries_by_type -= CE.type
/datum/controller/configuration/proc/LoadEntries(filename, list/stack = list())
if(IsAdminAdvancedProcCall())
return
var/filename_to_test = world.system_type == MS_WINDOWS ? lowertext(filename) : filename
if(filename_to_test in stack)
log_config("Warning: Config recursion detected ([english_list(stack)]), breaking!")
@@ -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.
@@ -92,6 +94,20 @@
/datum/config_entry/flag/allow_latejoin_antagonists // If late-joining players can be traitor/changeling
/datum/config_entry/flag/use_antag_rep // see game_options.txt for details
/datum/config_entry/number/antag_rep_maximum
config_entry_value = 200
min_val = 0
/datum/config_entry/number/default_antag_tickets
config_entry_value = 100
min_val = 0
/datum/config_entry/number/max_tickets_per_roll
config_entry_value = 100
min_val = 0
/datum/config_entry/number/midround_antag_time_check // How late (in minutes you want the midround antag system to stay on, setting this to 0 will disable the system)
config_entry_value = 60
min_val = 0
@@ -276,6 +292,8 @@
/datum/config_entry/flag/ic_printing
/datum/config_entry/flag/roundstart_traits
/datum/config_entry/flag/enable_night_shifts
/datum/config_entry/flag/randomize_shift_time
@@ -120,6 +120,15 @@
/datum/config_entry/flag/admin_legacy_system //Defines whether the server uses the legacy admin system with admins.txt or the SQL system
protection = CONFIG_ENTRY_LOCKED
/datum/config_entry/flag/protect_legacy_admins //Stops any admins loaded by the legacy system from having their rank edited by the permissions panel
protection = CONFIG_ENTRY_LOCKED
/datum/config_entry/flag/protect_legacy_ranks //Stops any ranks loaded by the legacy system from having their flags edited by the permissions panel
protection = CONFIG_ENTRY_LOCKED
/datum/config_entry/flag/enable_localhost_rank //Gives the !localhost! rank to any client connecting from 127.0.0.1 or ::1
protection = CONFIG_ENTRY_LOCKED
/datum/config_entry/string/hostedby
/datum/config_entry/flag/norespawn
@@ -311,7 +320,6 @@
/datum/config_entry/number/client_warn_version
config_entry_value = null
min_val = 500
max_val = DM_VERSION - 1
/datum/config_entry/string/client_warn_message
config_entry_value = "Your version of byond may have issues or be blocked from accessing this server in the future."
@@ -321,7 +329,6 @@
/datum/config_entry/number/client_error_version
config_entry_value = null
min_val = 500
max_val = DM_VERSION - 1
/datum/config_entry/string/client_error_message
config_entry_value = "Your version of byond is too old, may have issues, and is blocked from accessing this server."

Some files were not shown because too many files have changed in this diff Show More