Merge branch 'master' into master

This commit is contained in:
Raeschen
2017-10-04 20:23:58 +01:00
committed by GitHub
1446 changed files with 121644 additions and 43522 deletions
+3
View File
@@ -125,6 +125,9 @@ var/path_type = /obj/item/baseball_bat
var/path_type = "/obj/item/baseball_bat"
```
### Use var/name format when declaring variables
While DM allows other ways of declaring variables, this one should be used for consistency.
### Tabs, not spaces
You must use tabs to indent your code, NOT SPACES.
+2 -2
View File
@@ -1,3 +1,3 @@
[Note]: # (<B>Please enter the `Round ID` from the `Status` panel if you can!</B> If you believe the issue to be caused by a testmerge, please report it in its relative PR thread. State what the issue is from a "whats wrong" prospective. Issue reports should clearly allow maintainers to understand whats wrong and how to test/reproduce if that is not obvious. Avoid ambiguity. Start your issue report below both of these lines (or remove them))
[Directions]: # (Include the Round ID from the Status panel or retrieve it from https://atlantaned.space/newSS13tools/round.php ! If you believe the issue to be caused by a testmerge [OOC tab -> Show Server Revision], report it in the pull request's comment section instead. Explain your issue in detail, including the steps to reproduce it.)
[Admins]: # (If you are reporting a bug that occured AFTER you used varedit/admin buttons to alter an object out of normal operating conditions, please verify that you can re-create the bug without the varedit usage/admin buttons before reporting the issue.)
[For Admins]: # (Oddities induced by var-edits and other admin tools are not necessarily bugs. Verify that your issues occur under regular circumstances before reporting them.)
+2 -3
View File
@@ -1,5 +1,4 @@
[Changelogs]: # (Please make a changelog if you're adding, removing or changing content that'll affect players. This includes, but is not limited to, new features, sprites, sounds; balance changes; map edits and important fixes)
[]: # (See here for how to easily make a changelog: https://github.com/tgstation/tgstation/wiki/Changelogs. An example changelog has been provided below. Please edit or remove)
[Changelogs]: # (Please make a changelog if you're adding, removing or changing content that'll affect players. This includes, but is not limited to, new features, sprites, sounds; balance changes; map edits and important fixes. An example changelog has been provided below for you to edit or remove. If you need help, read https://github.com/tgstation/tgstation/wiki/Changelogs)
:cl: optional name here
@@ -18,4 +17,4 @@ spellcheck: fixed a few typos
experiment: added an experimental thingy
/:cl:
[why]: # (Please add a short description [on the next line] of why you think these changes would benefit the game. If you can't justify it in words, it might not be worth adding:)
[why]: # (Please add a short description [two lines down] of why you think these changes would benefit the game. If you can't justify it in words, it might not be worth adding.)
+3 -2
View File
@@ -1,7 +1,5 @@
language: generic
sudo: false
dist: precise
env:
global:
- BYOND_MAJOR="511"
@@ -23,12 +21,15 @@ cache:
addons:
apt:
sources:
- sourceline: 'ppa:ondrej/php'
packages:
- libc6-i386
- libgcc1:i386
- libstdc++6:i386
- python
- python-pip
- php5.6
install:
- tools/travis/install_build_tools.sh
+153 -146
View File
@@ -1,147 +1,154 @@
##Citadel Station 13 <BR>
Based and maintained from /tg/station.<BR>
[![Build Status](https://api.travis-ci.org/Citadel-Station-13/Citadel-Station-13.png)](https://travis-ci.org/Citadel-Station-13/Citadel-Station-13) [![Krihelimeter](http://www.krihelinator.xyz/badge/Citadel-Station-13/Citadel-Station-13)](http://www.krihelinator.xyz)
[![Percentage of issues still open](http://isitmaintained.com/badge/open/Citadel-Station-13/Citadel-Station-13.svg)](http://isitmaintained.com/project/Citadel-Station-13/Citadel-Station-13 "Percentage of issues still open") [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/Citadel-Station-13/Citadel-Station-13.svg)](http://isitmaintained.com/project/Citadel-Station-13/Citadel-Station-13 "Average time to resolve an issue")
**Upstream Information** <BR>
**Website:** http://www.tgstation13.org <BR>
**Code:** https://github.com/tgstation/tgstation <BR>
**Wiki** http://tgstation13.org/wiki/Main_Page <BR>
**IRC:** irc://irc.rizon.net/coderbus or if you dont have an IRC client, you can click [here](https://kiwiirc.com/client/irc.rizon.net:6667/?&theme=cli#coderbus).<BR>
**Citadel Station Information** <BR>
**Forums:** http://citadel-station.net/forum/ <BR>
**Ban Appeals:** http://citadel-station.net/forum/forumdisplay.php?fid=8 <BR>
**Code:** https://github.com/Citadel-Station-13/Citadel-Station-13 <BR>
**Discord:** [Here](https://discord.gg/3gJ9pnM). <BR>
## DOWNLOADING
There are a number of ways to download the source code. Some are described here, an alternative all-inclusive guide is also located at http://www.tgstation13.org/wiki/Downloading_the_source_code
Option 1:
Follow this: http://www.tgstation13.org/wiki/Setting_up_git
##Citadel Station 13 <BR>
Based and maintained from /tg/station.<BR>
[![Build Status](https://api.travis-ci.org/Citadel-Station-13/Citadel-Station-13.png)](https://travis-ci.org/Citadel-Station-13/Citadel-Station-13) [![Krihelimeter](http://www.krihelinator.xyz/badge/Citadel-Station-13/Citadel-Station-13)](http://www.krihelinator.xyz)
[![Percentage of issues still open](http://isitmaintained.com/badge/open/Citadel-Station-13/Citadel-Station-13.svg)](http://isitmaintained.com/project/Citadel-Station-13/Citadel-Station-13 "Percentage of issues still open") [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/Citadel-Station-13/Citadel-Station-13.svg)](http://isitmaintained.com/project/Citadel-Station-13/Citadel-Station-13 "Average time to resolve an issue")
**Upstream Information** <BR>
**Website:** http://www.tgstation13.org <BR>
**Code:** https://github.com/tgstation/tgstation <BR>
**Wiki** http://tgstation13.org/wiki/Main_Page <BR>
**IRC:** irc://irc.rizon.net/coderbus or if you dont have an IRC client, you can click [here](https://kiwiirc.com/client/irc.rizon.net:6667/?&theme=cli#coderbus).<BR>
**Citadel Station Information** <BR>
**Forums:** http://citadel-station.net/forum/ <BR>
**Ban Appeals:** http://citadel-station.net/forum/forumdisplay.php?fid=8 <BR>
**Code:** https://github.com/Citadel-Station-13/Citadel-Station-13 <BR>
**Discord:** [Here](https://discord.gg/3gJ9pnM). <BR>
## DOWNLOADING
There are a number of ways to download the source code. Some are described here, an alternative all-inclusive guide is also located at http://www.tgstation13.org/wiki/Downloading_the_source_code
Option 1:
Follow this: http://www.tgstation13.org/wiki/Setting_up_git
Option 2: Download the source code as a zip by clicking the ZIP button in the
code tab of https://github.com/tgstation/tgstation
(note: this will use a lot of bandwidth if you wish to update and is a lot of
hassle if you want to make any changes at all, so it's not recommended.)
## INSTALLATION
First-time installation should be fairly straightforward. First, you'll need
BYOND installed. You can get it from http://www.byond.com/. Once you've done
that, extract the game files to wherever you want to keep them. This is a
sourcecode-only release, so the next step is to compile the server files.
Open tgstation.dme by double-clicking it, open the Build menu, and click
compile. This'll take a little while, and if everything's done right you'll get
a message like this:
```
saving tgstation.dmb (DEBUG mode)
tgstation.dmb - 0 errors, 0 warnings
```
If you see any errors or warnings, something has gone wrong - possibly a corrupt
download or the files extracted wrong. If problems persist, ask for assistance
in irc://irc.rizon.net/coderbus
Once that's done, open up the config folder. You'll want to edit config.txt to
set the probabilities for different gamemodes in Secret and to set your server
location so that all your players don't get disconnected at the end of each
round. It's recommended you don't turn on the gamemodes with probability 0,
except Extended, as they have various issues and aren't currently being tested,
so they may have unknown and bizarre bugs. Extended is essentially no mode, and
isn't in the Secret rotation by default as it's just not very fun.
You'll also want to edit config/admins.txt to remove the default admins and add
your own. "Game Master" is the highest level of access, and probably the one
you'll want to use for now. You can set up your own ranks and find out more in
config/admin_ranks.txt
The format is
```
byondkey = Rank
((i.e. spessmans = Host ))
```
where the admin rank must be properly capitalised.
Finally, to start the server, run Dream Daemon and enter the path to your
compiled tgstation.dmb file. Make sure to set the port to the one you
specified in the config.txt, and set the Security box to 'Safe'. Then press GO
and the server should start up and be ready to join. It is also recommended that
you set up the SQL backend (see below).
## UPDATING
To update an existing installation, first back up your /config and /data folders
as these store your server configuration, player preferences and banlist.
Then, extract the new files (preferably into a clean directory, but updating in
place should work fine), copy your /config and /data folders back into the new
install, overwriting when prompted except if we've specified otherwise, and
recompile the game. Once you start the server up again, you should be running
the new version.
## MAPS
Citadel Station maintains their own map, but frequently uses /tg/station's currently maintained maps as well.
* [tgstation2 (default)](http://tgstation13.org/wiki/Boxstation)
* [MetaStation](https://tgstation13.org/wiki/MetaStation)
* [DeltaStation](https://tgstation13.org/wiki/DeltaStation)
* [OmegaStation](https://tgstation13.org/wiki/OmegaStation)
* [PubbyStation](https://tgstation13.org/wiki/PubbyStation)
All maps have their own code file that is in the base of the _maps directory. Maps are loaded dynamically when the game starts. Follow this guideline when adding your own map, to your fork, for easy compatibility.
The map that will be loaded for the upcoming round is determined by reading data/next_map.json, which is a copy of the json files found in the _maps tree. If this file does not exist, the default map from config/maps.txt will be loaded. Failing that, tgstation2 will be loaded. If you want to set a specific map to load next round you can use the Change Map verb in game before restarting the server or copy a json from _maps to data/next_map.json before starting the server. Also, for debugging purposes, ticking a corresponding map's code file in Dream Maker will force that map to load every round.
If you are hosting a server, and want randomly picked maps to be played each round, you can enable map rotation in [config.txt](config/config.txt) and then set the maps to be picked in the [maps.txt](config/maps.txt) file.
Anytime you want to make changes to a map it's imperative you use the [Map Merging tools](http://tgstation13.org/wiki/Map_Merger)
## AWAY MISSIONS
/tg/station supports loading away missions however they are disabled by default.
Map files for away missions are located in the _maps/RandomZLevels directory. Each away mission includes it's own code definitions located in /code/modules/awaymissions/mission_code. These files must be included and compiled with the server beforehand otherwise the server will crash upon trying to load away missions that lack their code.
To enable an away mission open `config/awaymissionconfig.txt` and uncomment one of the .dmm lines by removing the #. If more than one away mission is uncommented then the away mission loader will randomly select one the enabled ones to load.
## SQL SETUP
The SQL backend requires a MySQL server. SQL is required for the library, stats tracking, admin notes, and job-only bans, among other features, mostly related to server administration. Your server details go in /config/dbconfig.txt, and the SQL schema is in /SQL/tgstation_schema.sql and /SQL/tgstation_schema_prefix.sql depending on if you want table prefixes. More detailed setup instructions are located here: http://www.tgstation13.org/wiki/Downloading_the_source_code#Setting_up_the_database
## IRC BOT SETUP
Included in the repository is a python3 compatible IRC bot capable of relaying adminhelps to a specified
IRC channel/server, see the /bot folder for more
## CONTRIBUTING
Please see [CONTRIBUTING.md](.github/CONTRIBUTING.md)
## LICENSE
All code after [commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST](https://github.com/tgstation/tgstation/commit/333c566b88108de218d882840e61928a9b759d8f) is licensed under [GNU AGPL v3](http://www.gnu.org/licenses/agpl-3.0.html).
All code before [commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST](https://github.com/tgstation/tgstation/commit/333c566b88108de218d882840e61928a9b759d8f) is licensed under [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.html).
(Including tools unless their readme specifies otherwise.)
See LICENSE-AGPLv3.txt and LICENSE-GPLv3.txt for more details.
tgui clientside is licensed as a subproject under the MIT license.
Font Awesome font files, used by tgui, are licensed under the SIL Open Font License v1.1
tgui assets are licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
See tgui/LICENSE.md for the MIT license.
See tgui/assets/fonts/SIL-OFL-1.1-LICENSE.md for the SIL Open Font License.
All assets including icons and sound are under a [Creative Commons 3.0 BY-SA license](http://creativecommons.org/licenses/by-sa/3.0/) unless otherwise indicated.
code tab of https://github.com/tgstation/tgstation
(note: this will use a lot of bandwidth if you wish to update and is a lot of
hassle if you want to make any changes at all, so it's not recommended.)
## INSTALLATION
First-time installation should be fairly straightforward. First, you'll need
BYOND installed. You can get it from http://www.byond.com/. Once you've done
that, extract the game files to wherever you want to keep them. This is a
sourcecode-only release, so the next step is to compile the server files.
Open tgstation.dme by double-clicking it, open the Build menu, and click
compile. This'll take a little while, and if everything's done right you'll get
a message like this:
```
saving tgstation.dmb (DEBUG mode)
tgstation.dmb - 0 errors, 0 warnings
```
If you see any errors or warnings, something has gone wrong - possibly a corrupt
download or the files extracted wrong. If problems persist, ask for assistance
in irc://irc.rizon.net/coderbus
Once that's done, open up the config folder. You'll want to edit config.txt to
set the probabilities for different gamemodes in Secret and to set your server
location so that all your players don't get disconnected at the end of each
round. It's recommended you don't turn on the gamemodes with probability 0,
except Extended, as they have various issues and aren't currently being tested,
so they may have unknown and bizarre bugs. Extended is essentially no mode, and
isn't in the Secret rotation by default as it's just not very fun.
You'll also want to edit config/admins.txt to remove the default admins and add
your own. "Game Master" is the highest level of access, and probably the one
you'll want to use for now. You can set up your own ranks and find out more in
config/admin_ranks.txt
The format is
```
byondkey = Rank
```
where the admin rank must be properly capitalised.
Finally, to start the server, run Dream Daemon and enter the path to your
compiled tgstation.dmb file. Make sure to set the port to the one you
specified in the config.txt, and set the Security box to 'Safe'. Then press GO
and the server should start up and be ready to join. It is also recommended that
you set up the SQL backend (see below).
## UPDATING
To update an existing installation, first back up your /config and /data folders
as these store your server configuration, player preferences and banlist.
Then, extract the new files (preferably into a clean directory, but updating in
place should work fine), copy your /config and /data folders back into the new
install, overwriting when prompted except if we've specified otherwise, and
recompile the game. Once you start the server up again, you should be running
the new version.
## HOSTING
If you'd like a more robust server hosting option for tgstation and its
derivatives. Check out our server tools suite at
https://github.com/tgstation/tgstation-server
## MAPS
/tg/station currently comes equipped with five maps.
* [BoxStation (default)](http://tgstation13.org/wiki/Boxstation)
* [MetaStation](https://tgstation13.org/wiki/MetaStation)
* [DeltaStation](https://tgstation13.org/wiki/DeltaStation)
* [OmegaStation](https://tgstation13.org/wiki/OmegaStation)
* [PubbyStation](https://tgstation13.org/wiki/PubbyStation)
All maps have their own code file that is in the base of the _maps directory. Maps are loaded dynamically when the game starts. Follow this guideline when adding your own map, to your fork, for easy compatibility.
The map that will be loaded for the upcoming round is determined by reading data/next_map.json, which is a copy of the json files found in the _maps tree. If this file does not exist, the default map from config/maps.txt will be loaded. Failing that, tgstation2 will be loaded. If you want to set a specific map to load next round you can use the Change Map verb in game before restarting the server or copy a json from _maps to data/next_map.json before starting the server. Also, for debugging purposes, ticking a corresponding map's code file in Dream Maker will force that map to load every round.
If you are hosting a server, and want randomly picked maps to be played each round, you can enable map rotation in [config.txt](config/config.txt) and then set the maps to be picked in the [maps.txt](config/maps.txt) file.
Anytime you want to make changes to a map it's imperative you use the [Map Merging tools](http://tgstation13.org/wiki/Map_Merger)
## AWAY MISSIONS
/tg/station supports loading away missions however they are disabled by default.
Map files for away missions are located in the _maps/RandomZLevels directory. Each away mission includes it's own code definitions located in /code/modules/awaymissions/mission_code. These files must be included and compiled with the server beforehand otherwise the server will crash upon trying to load away missions that lack their code.
To enable an away mission open `config/awaymissionconfig.txt` and uncomment one of the .dmm lines by removing the #. If more than one away mission is uncommented then the away mission loader will randomly select one the enabled ones to load.
## SQL SETUP
The SQL backend requires a MySQL server. SQL is required for the library, stats tracking, admin notes, and job-only bans, among other features, mostly related to server administration. Your server details go in /config/dbconfig.txt, and the SQL schema is in /SQL/tgstation_schema.sql and /SQL/tgstation_schema_prefix.sql depending on if you want table prefixes. More detailed setup instructions are located here: http://www.tgstation13.org/wiki/Downloading_the_source_code#Setting_up_the_database
## IRC BOT SETUP
Included in the repository is a python3 compatible IRC bot capable of relaying adminhelps to a specified
IRC channel/server, see the /tools/minibot folder for more
## CONTRIBUTING
Please see [CONTRIBUTING.md](.github/CONTRIBUTING.md)
## LICENSE
All code after [commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST](https://github.com/tgstation/tgstation/commit/333c566b88108de218d882840e61928a9b759d8f) is licensed under [GNU AGPL v3](http://www.gnu.org/licenses/agpl-3.0.html).
All code before [commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST](https://github.com/tgstation/tgstation/commit/333c566b88108de218d882840e61928a9b759d8f) is licensed under [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.html).
(Including tools unless their readme specifies otherwise.)
See LICENSE-AGPLv3.txt and LICENSE-GPLv3.txt for more details.
tgui clientside is licensed as a subproject under the MIT license.
Font Awesome font files, used by tgui, are licensed under the SIL Open Font License v1.1
tgui assets are licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
The TGS3 API is licensed as a subproject under the MIT license.
See tgui/LICENSE.md for the MIT license.
See tgui/assets/fonts/SIL-OFL-1.1-LICENSE.md for the SIL Open Font License.
See the footers of code/\_\_DEFINES/server\_tools.dm, code/modules/server\_tools/st\_commands.dm, and code/modules/server\_tools/st\_inteface.dm for the MIT license.
All assets including icons and sound are under a [Creative Commons 3.0 BY-SA license](http://creativecommons.org/licenses/by-sa/3.0/) unless otherwise indicated.
+50 -12
View File
@@ -1,3 +1,52 @@
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 3.4; The query to update the schema revision table is:
INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 4);
or
INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (3, 4);
In any query remember to add a prefix to the table names if you use one.
----------------------------------------------------
28 August 2017, by MrStonedOne
Modified table 'messages', adding a deleted column and editing all indexes to include it
ALTER TABLE `messages`
ADD COLUMN `deleted` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `edits`,
DROP INDEX `idx_msg_ckey_time`,
DROP INDEX `idx_msg_type_ckeys_time`,
DROP INDEX `idx_msg_type_ckey_time_odr`,
ADD INDEX `idx_msg_ckey_time` (`targetckey`,`timestamp`, `deleted`),
ADD INDEX `idx_msg_type_ckeys_time` (`type`,`targetckey`,`adminckey`,`timestamp`, `deleted`),
ADD INDEX `idx_msg_type_ckey_time_odr` (`type`,`targetckey`,`timestamp`, `deleted`);
----------------------------------------------------
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'.
ALTER TABLE `connection_log` ADD COLUMN `round_id` INT(11) UNSIGNED NOT NULL AFTER `server_port`;
ALTER TABLE `legacy_population` ADD COLUMN `round_id` INT(11) UNSIGNED NOT NULL AFTER `server_port`;
ALTER TABLE `library` ADD COLUMN `round_id_created` INT(11) UNSIGNED NOT NULL AFTER `deleted`;
ALTER TABLE `messages` ADD COLUMN `server_ip` INT(10) UNSIGNED NOT NULL AFTER `server`, ADD COLUMN `server_port` SMALLINT(5) UNSIGNED NOT NULL AFTER `server_ip`, ADD COLUMN `round_id` INT(11) UNSIGNED NOT NULL AFTER `server_port`;
ALTER TABLE `player` ADD COLUMN `firstseen_round_id` INT(11) UNSIGNED NOT NULL AFTER `firstseen`, ADD COLUMN `lastseen_round_id` INT(11) UNSIGNED NOT NULL AFTER `lastseen`;
----------------------------------------------------
18 August 2017, by Cyberboss and nfreader
Modified table 'death', adding the columns `last_words` and 'suicide'.
ALTER TABLE `death`
ADD COLUMN `last_words` varchar(255) DEFAULT NULL AFTER `staminaloss`,
ADD COLUMN `suicide` tinyint(0) NOT NULL DEFAULT '0' AFTER `last_words`;
Remember to add a prefix to the table name if you use them.
----------------------------------------------------
20th July 2017, by Shadowlight213
Added role_time table to track time spent playing departments.
@@ -7,21 +56,10 @@ CREATE TABLE `role_time` ( `ckey` VARCHAR(32) NOT NULL , `job` VARCHAR(128) NOT
ALTER TABLE `player` ADD `flags` INT NOT NULL default '0' AFTER `accountjoindate`;
UPDATE `schema_revision` SET minor = 1;
Remember to add a prefix to the table name if you use them.
----------------------------------------------------
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 3.0; The query to update the schema revision table is:
INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 0);
or
INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (3, 0);
----------------------------------------------------
28 June 2017, by oranges
Added schema_revision to store the current db revision, why start at 3.0?
@@ -326,4 +364,4 @@ UPDATE erro_library SET deleted = 1 WHERE id = someid
(Replace someid with the id of the book you want to soft delete.)
----------------------------------------------------
----------------------------------------------------
+1 -1
View File
@@ -12,4 +12,4 @@ ALTER TABLE erro_poll_option RENAME TO SS13_poll_option;
ALTER TABLE erro_poll_question RENAME TO SS13_poll_question;
ALTER TABLE erro_poll_textreply RENAME TO SS13_poll_textreply;
ALTER TABLE erro_poll_vote RENAME TO SS13_poll_vote;
ALTER TABLE erro_watch RENAME TO SS13_watch;
ALTER TABLE erro_watch RENAME TO SS13_watch;
+34 -34
View File
@@ -38,7 +38,7 @@ Take note some columns have been renamed, removed or changed type. Any services
----------------------------------------------------*/
START TRANSACTION;
ALTER TABLE `feedback`.`ban`
ALTER TABLE `ban`
DROP COLUMN `rounds`
, CHANGE COLUMN `bantype` `bantype` ENUM('PERMABAN', 'TEMPBAN', 'JOB_PERMABAN', 'JOB_TEMPBAN', 'ADMIN_PERMABAN', 'ADMIN_TEMPBAN') NOT NULL
, CHANGE COLUMN `reason` `reason` VARCHAR(2048) NOT NULL
@@ -51,14 +51,14 @@ ALTER TABLE `feedback`.`ban`
, ADD COLUMN `a_ipTEMP` INT UNSIGNED NOT NULL AFTER `a_ip`
, ADD COLUMN `unbanned_ipTEMP` INT UNSIGNED NULL DEFAULT NULL AFTER `unbanned_ip`;
SET SQL_SAFE_UPDATES = 0;
UPDATE `feedback`.`ban`
UPDATE `ban`
SET `server_ip` = INET_ATON(SUBSTRING_INDEX(IF(`serverip` = '', '0', IF(SUBSTRING_INDEX(`serverip`, ':', 1) LIKE '%_._%', `serverip`, '0')), ':', 1))
, `server_port` = IF(`serverip` LIKE '%:_%', CAST(SUBSTRING_INDEX(`serverip`, ':', -1) AS UNSIGNED), '0')
, `ipTEMP` = INET_ATON(IF(`ip` LIKE '%_._%', `ip`, '0'))
, `a_ipTEMP` = INET_ATON(IF(`a_ip` LIKE '%_._%', `a_ip`, '0'))
, `unbanned_ipTEMP` = INET_ATON(IF(`unbanned_ip` LIKE '%_._%', `unbanned_ip`, '0'));
SET SQL_SAFE_UPDATES = 1;
ALTER TABLE `feedback`.`ban`
ALTER TABLE `ban`
DROP COLUMN `unbanned_ip`
, DROP COLUMN `a_ip`
, DROP COLUMN `ip`
@@ -69,17 +69,17 @@ ALTER TABLE `feedback`.`ban`
COMMIT;
START TRANSACTION;
ALTER TABLE `feedback`.`connection_log`
ALTER TABLE `connection_log`
ADD COLUMN `server_ip` INT UNSIGNED NOT NULL AFTER `serverip`
, ADD COLUMN `server_port` SMALLINT UNSIGNED NOT NULL AFTER `server_ip`
, ADD COLUMN `ipTEMP` INT UNSIGNED NOT NULL AFTER `ip`;
SET SQL_SAFE_UPDATES = 0;
UPDATE `feedback`.`connection_log`
UPDATE `connection_log`
SET `server_ip` = INET_ATON(SUBSTRING_INDEX(IF(`serverip` = '', '0', IF(SUBSTRING_INDEX(`serverip`, ':', 1) LIKE '%_._%', `serverip`, '0')), ':', 1))
, `server_port` = IF(`serverip` LIKE '%:_%', CAST(SUBSTRING_INDEX(`serverip`, ':', -1) AS UNSIGNED), '0')
, `ipTEMP` = INET_ATON(IF(`ip` LIKE '%_._%', `ip`, '0'));
SET SQL_SAFE_UPDATES = 1;
ALTER TABLE `feedback`.`connection_log`
ALTER TABLE `connection_log`
DROP COLUMN `ip`
, DROP COLUMN `serverip`
, CHANGE COLUMN `ipTEMP` `ip` INT(10) UNSIGNED NOT NULL;
@@ -87,12 +87,12 @@ COMMIT;
START TRANSACTION;
SET SQL_SAFE_UPDATES = 0;
UPDATE `feedback`.`death`
UPDATE `death`
SET `bruteloss` = LEAST(`bruteloss`, 65535)
, `brainloss` = LEAST(`brainloss`, 65535)
, `fireloss` = LEAST(`fireloss`, 65535)
, `oxyloss` = LEAST(`oxyloss`, 65535);
ALTER TABLE `feedback`.`death`
ALTER TABLE `death`
CHANGE COLUMN `pod` `pod` VARCHAR(50) NOT NULL
, CHANGE COLUMN `coord` `coord` VARCHAR(32) NOT NULL
, CHANGE COLUMN `mapname` `mapname` VARCHAR(32) NOT NULL
@@ -109,39 +109,39 @@ ALTER TABLE `feedback`.`death`
, CHANGE COLUMN `oxyloss` `oxyloss` SMALLINT UNSIGNED NOT NULL
, ADD COLUMN `server_ip` INT UNSIGNED NOT NULL AFTER `server`
, ADD COLUMN `server_port` SMALLINT UNSIGNED NOT NULL AFTER `server_ip`;
UPDATE `feedback`.`death`
UPDATE `death`
SET `server_ip` = INET_ATON(SUBSTRING_INDEX(IF(`server` = '', '0', IF(SUBSTRING_INDEX(`server`, ':', 1) LIKE '%_._%', `server`, '0')), ':', 1))
, `server_port` = IF(`server` LIKE '%:_%', CAST(SUBSTRING_INDEX(`server`, ':', -1) AS UNSIGNED), '0');
SET SQL_SAFE_UPDATES = 1;
ALTER TABLE `feedback`.`death`
ALTER TABLE `death`
DROP COLUMN `server`;
COMMIT;
ALTER TABLE `feedback`.`library`
ALTER TABLE `library`
CHANGE COLUMN `category` `category` ENUM('Any', 'Fiction', 'Non-Fiction', 'Adult', 'Reference', 'Religion') NOT NULL
, CHANGE COLUMN `ckey` `ckey` VARCHAR(32) NOT NULL DEFAULT 'LEGACY'
, CHANGE COLUMN `datetime` `datetime` DATETIME NOT NULL
, CHANGE COLUMN `deleted` `deleted` TINYINT(1) UNSIGNED NULL DEFAULT NULL;
ALTER TABLE `feedback`.`messages`
ALTER TABLE `messages`
CHANGE COLUMN `type` `type` ENUM('memo', 'message', 'message sent', 'note', 'watchlist entry') NOT NULL
, CHANGE COLUMN `text` `text` VARCHAR(2048) NOT NULL
, CHANGE COLUMN `secret` `secret` TINYINT(1) UNSIGNED NOT NULL;
START TRANSACTION;
ALTER TABLE `feedback`.`player`
ALTER TABLE `player`
ADD COLUMN `ipTEMP` INT UNSIGNED NOT NULL AFTER `ip`;
SET SQL_SAFE_UPDATES = 0;
UPDATE `feedback`.`player`
UPDATE `player`
SET `ipTEMP` = INET_ATON(IF(`ip` LIKE '%_._%', `ip`, '0'));
SET SQL_SAFE_UPDATES = 1;
ALTER TABLE `feedback`.`player`
ALTER TABLE `player`
DROP COLUMN `ip`
, CHANGE COLUMN `ipTEMP` `ip` INT(10) UNSIGNED NOT NULL;
COMMIT;
START TRANSACTION;
ALTER TABLE `feedback`.`poll_question`
ALTER TABLE `poll_question`
CHANGE COLUMN `polltype` `polltype` ENUM('OPTION', 'TEXT', 'NUMVAL', 'MULTICHOICE', 'IRV') NOT NULL
, CHANGE COLUMN `adminonly` `adminonly` TINYINT(1) UNSIGNED NOT NULL
, CHANGE COLUMN `createdby_ckey` `createdby_ckey` VARCHAR(32) NULL DEFAULT NULL
@@ -149,36 +149,36 @@ ALTER TABLE `feedback`.`poll_question`
, ADD COLUMN `createdby_ipTEMP` INT UNSIGNED NOT NULL AFTER `createdby_ip`
, DROP COLUMN `for_trialmin`;
SET SQL_SAFE_UPDATES = 0;
UPDATE `feedback`.`poll_question`
UPDATE `poll_question`
SET `createdby_ipTEMP` = INET_ATON(IF(`createdby_ip` LIKE '%_._%', `createdby_ip`, '0'));
SET SQL_SAFE_UPDATES = 1;
ALTER TABLE `feedback`.`poll_question`
ALTER TABLE `poll_question`
DROP COLUMN `createdby_ip`
, CHANGE COLUMN `createdby_ipTEMP` `createdby_ip` INT(10) UNSIGNED NOT NULL;
COMMIT;
START TRANSACTION;
ALTER TABLE `feedback`.`poll_textreply`
ALTER TABLE `poll_textreply`
CHANGE COLUMN `replytext` `replytext` VARCHAR(2048) NOT NULL
, ADD COLUMN `ipTEMP` INT UNSIGNED NOT NULL AFTER `ip`;
SET SQL_SAFE_UPDATES = 0;
UPDATE `feedback`.`poll_textreply`
UPDATE `poll_textreply`
SET `ipTEMP` = INET_ATON(IF(`ip` LIKE '%_._%', `ip`, '0'));
SET SQL_SAFE_UPDATES = 1;
ALTER TABLE `feedback`.`poll_textreply`
ALTER TABLE `poll_textreply`
DROP COLUMN `ip`
, CHANGE COLUMN `ipTEMP` `ip` INT(10) UNSIGNED NOT NULL;
COMMIT;
START TRANSACTION;
ALTER TABLE `feedback`.`poll_vote`
ALTER TABLE `poll_vote`
CHANGE COLUMN `ckey` `ckey` VARCHAR(32) NOT NULL
, ADD COLUMN `ipTEMP` INT UNSIGNED NOT NULL AFTER `ip`;
SET SQL_SAFE_UPDATES = 0;
UPDATE `feedback`.`poll_vote`
UPDATE `poll_vote`
SET `ipTEMP` = INET_ATON(IF(`ip` LIKE '%_._%', `ip`, '0'));
SET SQL_SAFE_UPDATES = 1;
ALTER TABLE `feedback`.`poll_vote`
ALTER TABLE `poll_vote`
DROP COLUMN `ip`
, CHANGE COLUMN `ipTEMP` `ip` INT(10) UNSIGNED NOT NULL;
COMMIT;
@@ -191,39 +191,39 @@ You may find it helpful to modify or create your own indexes if you utilise addi
----------------------------------------------------*/
ALTER TABLE `feedback`.`ban`
ALTER TABLE `ban`
ADD INDEX `idx_ban_checkban` (`ckey` ASC, `bantype` ASC, `expiration_time` ASC, `unbanned` ASC, `job` ASC)
, ADD INDEX `idx_ban_isbanned` (`ckey` ASC, `ip` ASC, `computerid` ASC, `bantype` ASC, `expiration_time` ASC, `unbanned` ASC)
, ADD INDEX `idx_ban_count` (`id` ASC, `a_ckey` ASC, `bantype` ASC, `expiration_time` ASC, `unbanned` ASC);
ALTER TABLE `feedback`.`ipintel`
ALTER TABLE `ipintel`
ADD INDEX `idx_ipintel` (`ip` ASC, `intel` ASC, `date` ASC);
ALTER TABLE `feedback`.`library`
ALTER TABLE `library`
ADD INDEX `idx_lib_id_del` (`id` ASC, `deleted` ASC)
, ADD INDEX `idx_lib_del_title` (`deleted` ASC, `title` ASC)
, ADD INDEX `idx_lib_search` (`deleted` ASC, `author` ASC, `title` ASC, `category` ASC);
ALTER TABLE `feedback`.`messages`
ALTER TABLE `messages`
ADD INDEX `idx_msg_ckey_time` (`targetckey` ASC, `timestamp` ASC)
, ADD INDEX `idx_msg_type_ckeys_time` (`type` ASC, `targetckey` ASC, `adminckey` ASC, `timestamp` ASC)
, ADD INDEX `idx_msg_type_ckey_time_odr` (`type` ASC, `targetckey` ASC, `timestamp` ASC);
ALTER TABLE `feedback`.`player`
ALTER TABLE `player`
ADD INDEX `idx_player_cid_ckey` (`computerid` ASC, `ckey` ASC)
, ADD INDEX `idx_player_ip_ckey` (`ip` ASC, `ckey` ASC);
ALTER TABLE `feedback`.`poll_option`
ALTER TABLE `poll_option`
ADD INDEX `idx_pop_pollid` (`pollid` ASC);
ALTER TABLE `feedback`.`poll_question`
ALTER TABLE `poll_question`
ADD INDEX `idx_pquest_question_time_ckey` (`question` ASC, `starttime` ASC, `endtime` ASC, `createdby_ckey` ASC, `createdby_ip` ASC)
, ADD INDEX `idx_pquest_time_admin` (`starttime` ASC, `endtime` ASC, `adminonly` ASC)
, ADD INDEX `idx_pquest_id_time_type_admin` (`id` ASC, `starttime` ASC, `endtime` ASC, `polltype` ASC, `adminonly` ASC);
ALTER TABLE `feedback`.`poll_vote`
ALTER TABLE `poll_vote`
ADD INDEX `idx_pvote_pollid_ckey` (`pollid` ASC, `ckey` ASC)
, ADD INDEX `idx_pvote_optionid_ckey` (`optionid` ASC, `ckey` ASC);
ALTER TABLE `feedback`.`poll_textreply`
ADD INDEX `idx_ptext_pollid_ckey` (`pollid` ASC, `ckey` ASC);
ALTER TABLE `poll_textreply`
ADD INDEX `idx_ptext_pollid_ckey` (`pollid` ASC, `ckey` ASC);
+15 -4
View File
@@ -110,6 +110,7 @@ CREATE TABLE `connection_log` (
`datetime` datetime DEFAULT NULL,
`server_ip` int(10) unsigned NOT NULL,
`server_port` smallint(5) unsigned NOT NULL,
`round_id` int(11) unsigned NOT NULL,
`ckey` varchar(45) DEFAULT NULL,
`ip` int(10) unsigned NOT NULL,
`computerid` varchar(45) DEFAULT NULL,
@@ -148,6 +149,8 @@ CREATE TABLE `death` (
`toxloss` smallint(5) unsigned NOT NULL,
`cloneloss` smallint(5) unsigned NOT NULL,
`staminaloss` smallint(5) unsigned NOT NULL,
`last_words` varchar(255) DEFAULT NULL,
`suicide` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -200,6 +203,7 @@ CREATE TABLE `legacy_population` (
`time` datetime NOT NULL,
`server_ip` int(10) unsigned NOT NULL,
`server_port` smallint(5) unsigned NOT NULL,
`round_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -220,6 +224,7 @@ CREATE TABLE `library` (
`ckey` varchar(32) NOT NULL DEFAULT 'LEGACY',
`datetime` datetime NOT NULL,
`deleted` tinyint(1) unsigned DEFAULT NULL,
`round_id_created` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `deleted_idx` (`deleted`),
KEY `idx_lib_id_del` (`id`,`deleted`),
@@ -243,13 +248,17 @@ CREATE TABLE `messages` (
`text` varchar(2048) NOT NULL,
`timestamp` datetime NOT NULL,
`server` varchar(32) DEFAULT NULL,
`server_ip` int(10) unsigned NOT NULL,
`server_port` smallint(5) unsigned NOT NULL,
`round_id` int(11) unsigned NOT NULL,
`secret` tinyint(1) unsigned NOT NULL,
`lasteditor` varchar(32) DEFAULT NULL,
`edits` text,
`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `idx_msg_ckey_time` (`targetckey`,`timestamp`),
KEY `idx_msg_type_ckeys_time` (`type`,`targetckey`,`adminckey`,`timestamp`),
KEY `idx_msg_type_ckey_time_odr` (`type`,`targetckey`,`timestamp`)
KEY `idx_msg_ckey_time` (`targetckey`,`timestamp`, `deleted`),
KEY `idx_msg_type_ckeys_time` (`type`,`targetckey`,`adminckey`,`timestamp`, `deleted`),
KEY `idx_msg_type_ckey_time_odr` (`type`,`targetckey`,`timestamp`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -278,7 +287,9 @@ DROP TABLE IF EXISTS `player`;
CREATE TABLE `player` (
`ckey` varchar(32) NOT NULL,
`firstseen` datetime NOT NULL,
`firstseen_round_id` int(11) unsigned NOT NULL,
`lastseen` datetime NOT NULL,
`lastseen_round_id` int(11) unsigned NOT NULL,
`ip` int(10) unsigned NOT NULL,
`computerid` varchar(32) NOT NULL,
`lastadminrank` varchar(32) NOT NULL DEFAULT 'Player',
@@ -420,4 +431,4 @@ CREATE TABLE `schema_revision` (
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-9
View File
@@ -1,9 +0,0 @@
diff a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql (rejected hunks)
@@ -268,7 +283,6 @@ CREATE TABLE `player` (
`ip` int(10) unsigned NOT NULL,
`computerid` varchar(32) NOT NULL,
`lastadminrank` varchar(32) NOT NULL DEFAULT 'Player',
- `exp` mediumtext,
PRIMARY KEY (`id`),
UNIQUE KEY `ckey` (`ckey`),
KEY `idx_player_cid_ckey` (`computerid`,`ckey`),
+16 -5
View File
@@ -31,7 +31,7 @@ CREATE TABLE `SS13_admin` (
-- Table structure for table `SS13_admin_log`
--
DROP TABLE IF EXISTS `SS13_dmin_log`;
DROP TABLE IF EXISTS `SS13_admin_log`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `SS13_admin_log` (
@@ -110,6 +110,7 @@ CREATE TABLE `SS13_connection_log` (
`datetime` datetime DEFAULT NULL,
`server_ip` int(10) unsigned NOT NULL,
`server_port` smallint(5) unsigned NOT NULL,
`round_id` int(11) unsigned NOT NULL,
`ckey` varchar(45) DEFAULT NULL,
`ip` int(10) unsigned NOT NULL,
`computerid` varchar(45) DEFAULT NULL,
@@ -148,6 +149,8 @@ CREATE TABLE `SS13_death` (
`toxloss` smallint(5) unsigned NOT NULL,
`cloneloss` smallint(5) unsigned NOT NULL,
`staminaloss` smallint(5) unsigned NOT NULL,
`last_words` varchar(255) DEFAULT NULL,
`suicide` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -200,6 +203,7 @@ CREATE TABLE `SS13_legacy_population` (
`time` datetime NOT NULL,
`server_ip` int(10) unsigned NOT NULL,
`server_port` smallint(5) unsigned NOT NULL,
`round_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -220,6 +224,7 @@ CREATE TABLE `SS13_library` (
`ckey` varchar(32) NOT NULL DEFAULT 'LEGACY',
`datetime` datetime NOT NULL,
`deleted` tinyint(1) unsigned DEFAULT NULL,
`round_id_created` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `deleted_idx` (`deleted`),
KEY `idx_lib_id_del` (`id`,`deleted`),
@@ -243,13 +248,17 @@ CREATE TABLE `SS13_messages` (
`text` varchar(2048) NOT NULL,
`timestamp` datetime NOT NULL,
`server` varchar(32) DEFAULT NULL,
`server_ip` int(10) unsigned NOT NULL,
`server_port` smallint(5) unsigned NOT NULL,
`round_id` int(11) unsigned NOT NULL,
`secret` tinyint(1) unsigned NOT NULL,
`lasteditor` varchar(32) DEFAULT NULL,
`edits` text,
`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `idx_msg_ckey_time` (`targetckey`,`timestamp`),
KEY `idx_msg_type_ckeys_time` (`type`,`targetckey`,`adminckey`,`timestamp`),
KEY `idx_msg_type_ckey_time_odr` (`type`,`targetckey`,`timestamp`)
KEY `idx_msg_ckey_time` (`targetckey`,`timestamp`, `deleted`),
KEY `idx_msg_type_ckeys_time` (`type`,`targetckey`,`adminckey`,`timestamp`, `deleted`),
KEY `idx_msg_type_ckey_time_odr` (`type`,`targetckey`,`timestamp`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -278,7 +287,9 @@ DROP TABLE IF EXISTS `SS13_player`;
CREATE TABLE `SS13_player` (
`ckey` varchar(32) NOT NULL,
`firstseen` datetime NOT NULL,
`firstseen_round_id` int(11) unsigned NOT NULL,
`lastseen` datetime NOT NULL,
`lastseen_round_id` int(11) unsigned NOT NULL,
`ip` int(10) unsigned NOT NULL,
`computerid` varchar(32) NOT NULL,
`lastadminrank` varchar(32) NOT NULL DEFAULT 'Player',
@@ -420,4 +431,4 @@ CREATE TABLE `SS13_schema_revision` (
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-9
View File
@@ -1,9 +0,0 @@
diff a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql (rejected hunks)
@@ -268,7 +297,6 @@ CREATE TABLE `SS13_player` (
`ip` int(10) unsigned NOT NULL,
`computerid` varchar(32) NOT NULL,
`lastadminrank` varchar(32) NOT NULL DEFAULT 'Player',
- `exp` mediumtext,
PRIMARY KEY (`id`),
UNIQUE KEY `ckey` (`ckey`),
KEY `idx_player_cid_ckey` (`computerid`,`ckey`),
+22
View File
@@ -0,0 +1,22 @@
{
"documentation": "/tg/station server 3 configuration file",
"changelog": {
"script": "tools/ss13_genchangelog.py",
"arguments": "html/changelog.html html/changelogs",
"pip_dependancies": [
"PyYaml",
"beautifulsoup4"
]
},
"synchronize_paths": [
"html/changelog.html",
"html/changelogs/*"
],
"static_directories": [
"config",
"data"
],
"dlls": [
"libmysql.dll"
]
}
@@ -378,9 +378,7 @@
invisibility = 101
},
/obj/structure/table,
/obj/item/paper/crumpled/bloody{
info = "If you dare not continue down this path of madness, escape can be found through the chute in this room. "
},
/obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/escape,
/obj/item/pen/fourcolor,
/turf/open/indestructible{
icon_state = "white"
@@ -925,9 +923,7 @@
/turf/open/lava/smooth,
/area/ruin/powered/clownplanet)
"CB" = (
/obj/item/paper/crumpled/bloody{
info = "Abandon hope, all ye who enter here."
},
/obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/hope,
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/noslip{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
@@ -1,4 +1,4 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/turf/template_noop,
/area/template_noop)
@@ -47,7 +47,7 @@
/area/ruin/powered/animal_hospital)
"al" = (
/obj/structure/table/wood,
/obj/item/toy/carpplushie,
/obj/item/toy/plush/carpplushie,
/turf/open/floor/plasteel/cmo,
/area/ruin/powered/animal_hospital)
"am" = (
@@ -166,7 +166,7 @@
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"aF" = (
/obj/machinery/door/unpowered/shuttle{
/obj/machinery/door/airlock/shuttle{
name = "Restroom"
},
/turf/open/floor/plasteel/bar,
@@ -263,6 +263,9 @@
/area/ruin/powered/animal_hospital)
"aX" = (
/obj/item/stack/cable_coil/random,
/obj/item/stack/sheet/mineral/titanium{
amount = 30
},
/turf/open/floor/plating,
/area/ruin/powered/animal_hospital)
"aY" = (
@@ -335,6 +338,9 @@
/area/ruin/powered/animal_hospital)
"bk" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/item/device/flashlight/glowstick/blue,
/obj/item/device/flashlight/glowstick/blue,
/obj/item/device/flashlight/glowstick/blue,
/turf/open/floor/plating,
/area/ruin/powered/animal_hospital)
"bl" = (
@@ -373,16 +379,15 @@
},
/area/ruin/powered/animal_hospital)
"bn" = (
/obj/structure/bed/dogbed,
/obj/machinery/light/small{
dir = 1
/obj/machinery/sleeper{
dir = 4
},
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"bo" = (
/obj/item/reagent_containers/glass/bowl,
/obj/item/reagent_containers/food/snacks/cheesewedge,
/obj/item/reagent_containers/food/snacks/cheesewedge,
/obj/machinery/light/small{
dir = 1
},
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"bp" = (
@@ -420,10 +425,8 @@
},
/area/ruin/powered/animal_hospital)
"bv" = (
/obj/effect/mob_spawn/mouse{
dir = 4;
flavour_text = "<font size=3><b>Y</b></font><b>ou're a mousey! You're getting pretty old as mice go, and you haven't been feeling well as of late. Your master loves you a lot so he took you to this place so you can get better! You can't wait to see him again!<b>";
mob_name = "Stallman Jr."
/obj/effect/mob_spawn/human/doctor/alive/lavaland{
dir = 4
},
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
@@ -433,8 +436,7 @@
/area/ruin/powered/animal_hospital)
"bx" = (
/obj/machinery/door/airlock/medical{
name = "Patient Room";
req_access_txt = "0"
name = "Rejuvenation Pods"
},
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
@@ -468,12 +470,11 @@
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"bD" = (
/obj/structure/table/glass,
/obj/item/reagent_containers/glass/bottle/cyanide{
desc = "A cocktail of chemotherapy drugs intended to treat bladder cancer.";
name = "MVAC regimen"
/mob/living/simple_animal/bot/medbot{
desc = "A little medical robot. It's programmed to only act in emergencies.";
heal_threshold = 40;
name = "emergency Medibot"
},
/obj/item/reagent_containers/syringe,
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"bE" = (
@@ -553,16 +554,12 @@
},
/area/lavaland/surface/outdoors)
"bP" = (
/obj/structure/chair/office/light{
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/glass,
/obj/item/storage/firstaid/fire,
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"bQ" = (
/obj/structure/table/glass,
/obj/item/clothing/neck/petcollar,
/obj/item/pen/blue,
/obj/machinery/light/small,
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"bR" = (
@@ -582,6 +579,8 @@
/obj/item/defibrillator/loaded,
/obj/item/storage/belt/medical,
/obj/item/clothing/glasses/hud/health,
/obj/item/clothing/glasses/hud/health,
/obj/item/clothing/glasses/hud/health,
/turf/open/floor/plasteel/blue/side{
dir = 6
},
@@ -664,46 +663,46 @@
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"cg" = (
/obj/machinery/door/unpowered/shuttle{
/obj/machinery/door/airlock/shuttle{
name = "Break Room"
},
/turf/open/floor/plasteel/cmo,
/area/ruin/powered/animal_hospital)
"ch" = (
/obj/machinery/door/unpowered/shuttle{
name = "Emergency Care"
/obj/machinery/door/airlock/shuttle{
name = "Operating Theatre"
},
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"ci" = (
/obj/machinery/door/unpowered/shuttle{
desc = "There's a note wedged in the seam saying something about directing pizza here.";
/obj/structure/fans/tiny/invisible,
/obj/machinery/door/airlock/shuttle{
desc = "There's a smudged note wedged into it that says something about pizza dropoffs.";
name = "Staff Entrance"
},
/obj/structure/fans/tiny/invisible,
/turf/open/floor/plating,
/area/ruin/powered/animal_hospital)
"cj" = (
/obj/machinery/door/unpowered/shuttle{
/obj/machinery/door/airlock/shuttle{
name = "Morgue"
},
/turf/open/floor/plating,
/area/ruin/powered/animal_hospital)
"ck" = (
/obj/machinery/door/unpowered/shuttle{
/obj/machinery/door/airlock/shuttle{
name = "Medical Supplies"
},
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"cl" = (
/obj/machinery/door/unpowered/shuttle{
/obj/machinery/door/airlock/shuttle{
name = "Safety Supplies"
},
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"cm" = (
/obj/machinery/door/unpowered/shuttle{
name = "Tool Storage"
/obj/machinery/door/airlock/shuttle{
name = "Storage"
},
/turf/open/floor/plating,
/area/ruin/powered/animal_hospital)
@@ -811,6 +810,33 @@
/obj/effect/baseturf_helper/lava_land/surface,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ruin/powered/animal_hospital)
"cG" = (
/obj/machinery/door/airlock/shuttle{
desc = "There's a smudged note wedged into it that says something about pizza dropoffs.";
name = "Staff Entrance"
},
/turf/open/floor/plasteel/cmo,
/area/ruin/powered/animal_hospital)
"cH" = (
/mob/living/simple_animal/bot/cleanbot,
/turf/open/floor/plasteel/blue/side{
dir = 0
},
/area/ruin/powered/animal_hospital)
"cI" = (
/obj/structure/table/glass,
/obj/item/storage/firstaid/toxin,
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"cJ" = (
/obj/machinery/sleeper{
dir = 4
},
/obj/machinery/light/small{
dir = 8
},
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
(1,1,1) = {"
aa
@@ -1037,7 +1063,7 @@ cw
ae
aV
ba
bh
cI
aG
aL
br
@@ -1092,7 +1118,7 @@ aj
at
as
ae
ct
aL
aK
ck
ao
@@ -1122,7 +1148,7 @@ ak
as
az
ae
aM
cv
aP
ae
ae
@@ -1152,7 +1178,7 @@ al
au
as
ae
ct
aL
aK
cl
ao
@@ -1181,9 +1207,9 @@ ae
am
cs
as
cg
cG
aK
aP
cH
ae
aW
ao
@@ -1249,12 +1275,12 @@ ae
ae
ae
ae
bh
bv
bv
cJ
bn
bv
bC
ae
bn
bN
bP
ae
cE
@@ -1280,10 +1306,10 @@ be
bk
ae
bo
bw
ao
bD
ae
bK
ao
ao
ao
bQ
ae
@@ -1311,11 +1337,11 @@ ae
ae
af
bx
ae
af
ae
af
bx
ae
af
ae
aa
aa
@@ -198,6 +198,7 @@
/obj/structure/stone_tile{
dir = 4
},
/obj/item/dildo/custom,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"aC" = (
@@ -287,6 +288,7 @@
/obj/structure/stone_tile/cracked{
dir = 4
},
/obj/item/dildo/custom,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"aN" = (
@@ -305,6 +307,7 @@
/area/ruin/unpowered/ash_walkers)
"aP" = (
/obj/structure/stone_tile,
/obj/item/dildo/custom,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"aQ" = (
@@ -379,6 +382,7 @@
/obj/structure/stone_tile/cracked{
dir = 1
},
/obj/item/dildo/custom,
/turf/open/indestructible/boss,
/area/ruin/unpowered/ash_walkers)
"aZ" = (
@@ -401,6 +405,7 @@
/obj/structure/stone_tile{
dir = 4
},
/obj/item/dildo/custom,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"bb" = (
@@ -489,6 +494,7 @@
dir = 4
},
/obj/item/storage/bag/plants/portaseeder,
/obj/item/dildo/custom,
/turf/open/indestructible/boss,
/area/ruin/unpowered/ash_walkers)
"bk" = (
@@ -509,6 +515,7 @@
/obj/structure/stone_tile/cracked{
dir = 1
},
/obj/item/dildo/custom,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"bm" = (
@@ -568,6 +575,7 @@
/obj/structure/stone_tile{
dir = 8
},
/obj/item/dildo/custom,
/turf/open/indestructible/boss/air,
/area/ruin/unpowered/ash_walkers)
"br" = (
@@ -897,6 +905,7 @@
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 8
},
/obj/item/dildo/custom,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"ci" = (
@@ -1042,6 +1051,7 @@
icon_state = "cracked_slab1";
dir = 4
},
/obj/item/dildo/custom,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"cB" = (
@@ -1475,6 +1485,26 @@
/obj/structure/stone_tile,
/turf/closed/mineral/volcanic,
/area/lavaland/surface/outdoors)
"dG" = (
/obj/structure/stone_tile/slab,
/obj/item/dildo/custom,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"dH" = (
/obj/structure/stone_tile/block/cracked,
/obj/structure/stone_tile/block{
dir = 1
},
/obj/item/dildo/custom,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"dI" = (
/obj/structure/stone_tile{
dir = 4
},
/obj/item/dildo/custom,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
(1,1,1) = {"
aa
@@ -1597,7 +1627,7 @@ aO
bl
bx
bD
bS
dG
de
bV
dg
@@ -1625,7 +1655,7 @@ ci
bA
ct
bN
bL
dI
cI
ah
ah
@@ -1732,7 +1762,7 @@ ak
bP
bL
bX
dh
dH
do
du
dz
@@ -24,15 +24,6 @@
/area/ruin/unpowered)
"g" = (
/obj/effect/decal/cleanable/blood/old,
/obj/effect/step_trigger/thrower{
name = "south";
tiles = 5
},
/obj/effect/step_trigger/sound_effect{
name = "turn around";
sound = 'sound/hallucinations/turn_around1.ogg';
triggerer_only = 1
},
/turf/open/floor/engine/cult{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
@@ -79,16 +70,6 @@
/area/ruin/unpowered)
"n" = (
/obj/effect/decal/cleanable/blood/old,
/obj/effect/step_trigger/thrower{
direction = 4;
name = "east";
tiles = 5
},
/obj/effect/step_trigger/sound_effect{
name = "turn around";
sound = 'sound/hallucinations/turn_around1.ogg';
triggerer_only = 1
},
/turf/open/floor/engine/cult{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
@@ -117,16 +98,6 @@
/area/ruin/unpowered)
"p" = (
/obj/effect/decal/cleanable/blood/old,
/obj/effect/step_trigger/thrower{
direction = 8;
name = "west";
tiles = 5
},
/obj/effect/step_trigger/sound_effect{
name = "turn around";
sound = 'sound/hallucinations/turn_around1.ogg';
triggerer_only = 1
},
/turf/open/floor/engine/cult{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
@@ -142,16 +113,6 @@
/area/ruin/unpowered)
"r" = (
/obj/effect/decal/cleanable/blood/old,
/obj/effect/step_trigger/thrower{
direction = 1;
name = "north";
tiles = 5
},
/obj/effect/step_trigger/sound_effect{
name = "turn around";
sound = 'sound/hallucinations/turn_around1.ogg';
triggerer_only = 1
},
/turf/open/floor/engine/cult{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
@@ -7,6 +7,9 @@
/area/ruin/powered/golem_ship)
"c" = (
/obj/structure/closet/crate,
/obj/item/shovel,
/obj/item/shovel,
/obj/item/shovel,
/obj/item/pickaxe,
/obj/item/pickaxe,
/obj/item/pickaxe,
@@ -19,6 +22,8 @@
/area/ruin/powered/golem_ship)
"d" = (
/obj/structure/closet/crate,
/obj/item/shovel,
/obj/item/shovel,
/obj/item/pickaxe,
/obj/item/pickaxe,
/obj/item/storage/bag/ore,
@@ -76,8 +76,7 @@
/area/ruin/powered/syndicate_lava_base)
"al" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
icon_state = "plant-21"
},
/turf/open/floor/plasteel/vault,
/area/ruin/powered/syndicate_lava_base)
@@ -320,8 +319,7 @@
/area/ruin/powered/syndicate_lava_base)
"aS" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
icon_state = "plant-21"
},
/turf/open/floor/plasteel/vault{
dir = 5
@@ -413,8 +411,7 @@
/area/ruin/powered/syndicate_lava_base)
"bd" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
icon_state = "plant-21"
},
/obj/machinery/light/small,
/turf/open/floor/plasteel/black,
@@ -694,16 +691,15 @@
/area/ruin/powered/syndicate_lava_base)
"bJ" = (
/obj/structure/table/reinforced,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot,
/turf/open/floor/plasteel/vault{
dir = 8
},
/area/ruin/powered/syndicate_lava_base)
"bK" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
icon_state = "plant-21"
},
/turf/open/floor/plasteel/vault{
dir = 8
@@ -969,8 +965,7 @@
/area/ruin/powered/syndicate_lava_base)
"cq" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
icon_state = "plant-21"
},
/turf/open/floor/plasteel/podhatch{
dir = 5
@@ -48,7 +48,7 @@
/area/ruin/unpowered)
"j" = (
/obj/machinery/abductor/experiment{
team = 100
team_number = 100
},
/turf/open/floor/plating/abductor{
initial_gas_mix = "o2=16;n2=23;TEMP=300"
@@ -61,7 +61,7 @@
/area/ruin/unpowered)
"l" = (
/obj/machinery/abductor/pad{
team = 100
team_number = 100
},
/turf/open/floor/plating/abductor{
initial_gas_mix = "o2=16;n2=23;TEMP=300"
+90 -36
View File
@@ -252,7 +252,9 @@
/turf/open/floor/plating/airless,
/area/template_noop)
"aF" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/obj/structure/window/reinforced,
/turf/open/floor/plating,
/area/ruin/space/derelict/solar_control)
@@ -416,7 +418,9 @@
/turf/open/floor/plasteel,
/area/ruin/space/derelict/solar_control)
"bc" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/ruin/space/derelict/solar_control)
"bd" = (
@@ -985,7 +989,9 @@
/turf/open/floor/plating,
/area/ruin/space/derelict/bridge/access)
"cU" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/ruin/space/derelict/bridge/access)
"cV" = (
@@ -1018,11 +1024,15 @@
/turf/open/floor/plasteel,
/area/ruin/space/derelict/bridge/access)
"cY" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/southwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 10
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/gravity_generator)
"cZ" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/gravity_generator)
"da" = (
@@ -1033,11 +1043,15 @@
/turf/open/floor/plasteel,
/area/ruin/space/derelict/gravity_generator)
"db" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/north,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 1
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/gravity_generator)
"dc" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northeast,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 5
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/gravity_generator)
"dd" = (
@@ -1488,15 +1502,19 @@
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"ev" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side,
/obj/effect/spawner/structure/window/hollow/reinforced/directional,
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"ew" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 6
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"ex" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/east,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 4
},
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
dir = 8
@@ -1663,7 +1681,9 @@
/turf/template_noop,
/area/template_noop)
"eW" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 9
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"eX" = (
@@ -1697,11 +1717,15 @@
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"fc" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/north,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 1
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"fd" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northeast,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 5
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"fe" = (
@@ -1783,7 +1807,9 @@
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/bridge)
"fq" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/west,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 8
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"fr" = (
@@ -1807,7 +1833,9 @@
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"ft" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/east,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 4
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"fu" = (
@@ -1890,7 +1918,9 @@
},
/area/ruin/space/derelict/singularity_engine)
"fI" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/southwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 10
},
/turf/open/floor/plasteel/airless{
icon_state = "damaged2"
},
@@ -2128,7 +2158,9 @@
},
/area/ruin/space/derelict/singularity_engine)
"gt" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 9
},
/obj/item/shard{
icon_state = "medium"
},
@@ -2146,7 +2178,9 @@
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"gw" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"gx" = (
@@ -2194,7 +2228,9 @@
},
/area/ruin/unpowered/no_grav)
"gE" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"gF" = (
@@ -2292,7 +2328,9 @@
/turf/closed/wall,
/area/ruin/space/derelict/singularity_engine)
"gZ" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/southwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 10
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/singularity_engine)
"ha" = (
@@ -2408,7 +2446,9 @@
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/medical)
"hx" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/north,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 1
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/medical)
"hy" = (
@@ -2691,7 +2731,9 @@
/turf/template_noop,
/area/template_noop)
"iu" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 6
},
/turf/template_noop,
/area/template_noop)
"iv" = (
@@ -3129,7 +3171,9 @@
/turf/open/floor/plating,
/area/ruin/space/derelict/arrival)
"jK" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/ruin/space/derelict/arrival)
"jL" = (
@@ -3548,11 +3592,15 @@
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/hallway/primary)
"kP" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/hallway/primary)
"kQ" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/hallway/primary)
"kR" = (
@@ -3717,11 +3765,7 @@
/obj/item/reagent_containers/glass/beaker{
list_reagents = list("sacid" = 50)
},
/obj/item/paper/crumpled/bloody{
desc = "Looks like someone started shakily writing a will in space common, but were interrupted by something bloody...";
info = "I, Victor Belyakov, do hereby leave my _- ";
name = "unfinished paper scrap"
},
/obj/item/paper/crumpled/bloody/ruins/thederelict/unfinished,
/obj/item/pen,
/turf/open/floor/plasteel/airless,
/area/ruin/space/derelict/hallway/primary)
@@ -3776,7 +3820,9 @@
/turf/open/floor/plasteel/airless,
/area/ruin/unpowered/no_grav)
"lD" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"lE" = (
@@ -3854,7 +3900,9 @@
/turf/open/floor/plasteel/airless,
/area/ruin/unpowered/no_grav)
"lR" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"lS" = (
@@ -4066,7 +4114,9 @@
/turf/open/floor/plasteel/airless,
/area/ruin/space/derelict/hallway/secondary)
"mD" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/hallway/secondary)
"mE" = (
@@ -4178,7 +4228,9 @@
/turf/open/floor/plasteel/airless,
/area/ruin/space/derelict/hallway/secondary)
"mY" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/hallway/secondary)
"mZ" = (
@@ -4370,7 +4422,7 @@
/turf/template_noop,
/area/ruin/space/derelict/hallway/secondary)
"ny" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side,
/obj/effect/spawner/structure/window/hollow/reinforced/directional,
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/hallway/secondary)
"nz" = (
@@ -4421,7 +4473,9 @@
/turf/open/floor/plasteel/airless,
/area/ruin/space/derelict/hallway/secondary)
"nH" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/north,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 1
},
/turf/open/floor/plating/airless,
/area/ruin/space/derelict/hallway/secondary)
"nI" = (
@@ -36,11 +36,15 @@
/turf/open/floor/plating/airless,
/area/ruin/space/abandoned_tele)
"j" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating/airless,
/area/ruin/space/abandoned_tele)
"k" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating/airless,
/area/ruin/space/abandoned_tele)
"l" = (
@@ -78,7 +82,9 @@
/turf/open/floor/plating/airless,
/area/ruin/space/abandoned_tele)
"t" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating/airless,
/area/ruin/space/abandoned_tele)
"u" = (
@@ -743,10 +743,7 @@
/turf/open/floor/plasteel/darkgreen,
/area/ruin/space/has_grav/abandonedzoo)
"bN" = (
/obj/structure/grille{
density = 0;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/obj/item/shard{
icon_state = "small"
},
@@ -799,10 +796,7 @@
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/abandonedzoo)
"bU" = (
/obj/structure/grille{
density = 0;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/abandonedzoo)
"bV" = (
+7 -12
View File
@@ -67,7 +67,7 @@
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"ao" = (
/obj/machinery/power/apc{
cell_type = 0;
start_charge = 0;
dir = 4;
name = "Cargo Bay APC";
pixel_x = 24
@@ -258,9 +258,7 @@
name = "critter crate - mr.tiggles";
opened = 1
},
/obj/item/paper/crumpled/ruins/snowdin{
info = "<i>A crumpled piece of manifest paper, out of the barely legible pen writing, you can see something about a warning involving whatever was originally in the crate.</i>"
},
/obj/item/paper/crumpled/ruins/bigderelict1/manifest,
/obj/structure/alien/weeds{
color = "#4BAE56";
desc = "A thick gelatinous surface covers the floor. Someone get the golashes.";
@@ -454,10 +452,7 @@
name = "Tradeport Officer";
random = 1
},
/obj/item/paper/crumpled/ruins/snowdin{
icon_state = "scrap_bloodied";
info = "If anyone finds this, please, don't let my kids know I died a coward.."
},
/obj/item/paper/crumpled/ruins/bigderelict1/coward,
/obj/effect/decal/cleanable/blood/old{
name = "dried blood splatter";
pixel_x = -29
@@ -754,7 +749,7 @@
/area/ruin/space/has_grav/derelictoutpost/powerstorage)
"ca" = (
/obj/machinery/power/apc{
cell_type = 0;
start_charge = 0;
dir = 4;
name = "Power Storage APC";
pixel_x = 23;
@@ -850,7 +845,7 @@
/area/ruin/space/has_grav/derelictoutpost)
"ck" = (
/obj/machinery/power/apc{
cell_type = 0;
start_charge = 0;
dir = 2;
name = "Tradepost APC";
pixel_y = -24
@@ -2011,7 +2006,7 @@
/area/ruin/space/has_grav/derelictoutpost/cargostorage)
"el" = (
/obj/machinery/power/apc{
cell_type = 0;
start_charge = 0;
dir = 4;
name = "Cargo Storage APC";
pixel_x = 24
@@ -3912,4 +3907,4 @@ aa
aa
aa
aa
"}
"}
@@ -590,9 +590,9 @@
"bW" = (
/obj/structure/closet/crate/secure/gear,
/obj/item/ammo_box/c10mm,
/obj/item/ammo_casing/shotgun/meteorshot,
/obj/item/ammo_casing/shotgun/meteorshot,
/obj/item/ammo_casing/shotgun/meteorshot,
/obj/item/ammo_casing/shotgun/meteorslug,
/obj/item/ammo_casing/shotgun/meteorslug,
/obj/item/ammo_casing/shotgun/meteorslug,
/turf/open/floor/mineral/titanium/yellow/airless,
/area/ruin/unpowered)
"bX" = (
@@ -815,8 +815,8 @@
/area/ruin/unpowered)
"cC" = (
/obj/structure/closet/crate/secure/weapon,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot,
/turf/open/floor/mineral/titanium/yellow/airless,
/area/ruin/unpowered)
"cD" = (
+39 -13
View File
@@ -17,7 +17,9 @@
/turf/closed/wall/mineral/titanium/overspace,
/area/awaymission/BMPship/Aft)
"af" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/engine,
/area/awaymission/BMPship/Aft)
"ag" = (
@@ -38,7 +40,9 @@
/turf/open/floor/plating,
/area/awaymission/BMPship/Aft)
"aj" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/engine,
/area/awaymission/BMPship/Aft)
"ak" = (
@@ -54,7 +58,9 @@
/area/template_noop)
"an" = (
/obj/structure/window/reinforced,
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/engine,
/area/awaymission/BMPship/Aft)
"ao" = (
@@ -224,7 +230,9 @@
/turf/open/floor/plating,
/area/awaymission/BMPship/Aft)
"aQ" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating/airless,
/area/awaymission/BMPship/Fore)
"aR" = (
@@ -350,7 +358,9 @@
/turf/open/floor/plating,
/area/awaymission/BMPship/Aft)
"bl" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating/airless,
/area/awaymission/BMPship/Fore)
"bm" = (
@@ -394,7 +404,9 @@
/area/awaymission/BMPship/Aft)
"bt" = (
/obj/structure/window/reinforced,
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating/airless,
/area/awaymission/BMPship/Fore)
"bu" = (
@@ -1165,7 +1177,9 @@
/turf/open/floor/plasteel,
/area/awaymission/BMPship/Aft)
"dG" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/BMPship/Fore)
"dH" = (
@@ -1372,7 +1386,9 @@
/turf/open/floor/plasteel,
/area/awaymission/BMPship/Aft)
"ed" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/BMPship/Fore)
"ee" = (
@@ -1592,7 +1608,9 @@
/obj/structure/window/reinforced{
dir = 8
},
/obj/effect/spawner/structure/window/hollow/reinforced/corner,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 6
},
/turf/open/floor/plating,
/area/awaymission/BMPship/Fore)
"eI" = (
@@ -2115,7 +2133,9 @@
/turf/open/floor/plasteel,
/area/awaymission/BMPship/Aft)
"gk" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating/airless,
/area/awaymission/BMPship/Fore)
"gl" = (
@@ -2247,7 +2267,9 @@
/turf/open/floor/plating/asteroid/airless,
/area/awaymission/BMPship)
"gF" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/east,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 4
},
/obj/item/shard{
icon_state = "small"
},
@@ -2308,7 +2330,9 @@
/turf/open/floor/plating/asteroid/airless,
/area/awaymission/BMPship)
"gR" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 6
},
/turf/open/floor/plating/airless,
/area/awaymission/BMPship/Fore)
"gS" = (
@@ -2448,7 +2472,9 @@
/turf/open/floor/plating/asteroid/airless,
/area/awaymission/BMPship)
"ho" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/engine,
/area/awaymission/BMPship/Aft)
"hp" = (
+5 -9
View File
@@ -1096,8 +1096,7 @@
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Hydroponics APC";
pixel_x = 24
@@ -1466,8 +1465,7 @@
/area/ruin/space/has_grav/deepstorage)
"cQ" = (
/obj/structure/cable/yellow,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Storage APC";
pixel_x = 24
@@ -2260,8 +2258,7 @@
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Armory APC";
pixel_x = 24
@@ -3085,8 +3082,7 @@
"fE" = (
/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
/obj/structure/cable/yellow,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Dormory APC";
pixel_x = 24
@@ -6625,4 +6621,4 @@ aa
aa
aa
aa
"}
"}
@@ -174,7 +174,6 @@
dir = 1
},
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Worn-out APC";
pixel_x = 1;
File diff suppressed because it is too large Load Diff
+27 -10
View File
@@ -44,7 +44,6 @@
/area/tcommsat/chamber)
"ak" = (
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Worn-out APC";
pixel_x = 1;
@@ -452,11 +451,15 @@
/turf/open/floor/plasteel/airless/black,
/area/tcommsat/chamber)
"bA" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating/airless,
/area/tcommsat/chamber)
"bB" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/north,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 1
},
/turf/open/floor/plating/airless,
/area/tcommsat/chamber)
"bC" = (
@@ -464,7 +467,9 @@
/turf/open/floor/plating/airless,
/area/tcommsat/chamber)
"bD" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating/airless,
/area/tcommsat/chamber)
"bE" = (
@@ -513,7 +518,9 @@
/turf/open/floor/plasteel/airless/black,
/area/tcommsat/chamber)
"bK" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 9
},
/turf/open/floor/plating,
/area/tcommsat/chamber)
"bL" = (
@@ -521,7 +528,9 @@
/turf/open/floor/plating,
/area/tcommsat/chamber)
"bM" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/tcommsat/chamber)
"bN" = (
@@ -541,7 +550,9 @@
/turf/open/floor/plasteel/airless/black,
/area/tcommsat/chamber)
"bP" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/tcommsat/chamber)
"bQ" = (
@@ -554,7 +565,9 @@
/turf/open/floor/plasteel/airless/black,
/area/tcommsat/chamber)
"bS" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/obj/structure/window/reinforced,
/turf/open/floor/plating,
/area/tcommsat/chamber)
@@ -610,7 +623,9 @@
/turf/open/floor/plasteel/airless/black,
/area/tcommsat/chamber)
"cc" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/tcommsat/chamber)
"cd" = (
@@ -633,7 +648,9 @@
/turf/open/floor/plasteel/airless/black,
/area/tcommsat/chamber)
"ch" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/southwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 10
},
/turf/open/floor/plating,
/area/tcommsat/chamber)
"ci" = (
+65 -23
View File
@@ -53,7 +53,9 @@
/turf/closed/wall/rust,
/area/ruin/space/has_grav/ancientstation/comm)
"al" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/obj/machinery/door/poddoor{
id = "ancient"
},
@@ -67,7 +69,9 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/comm)
"an" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/obj/machinery/door/poddoor{
id = "ancient"
},
@@ -483,11 +487,15 @@
/turf/closed/wall/rust,
/area/ruin/space/has_grav/ancientstation/comm)
"bz" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/comm)
"bA" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/comm)
"bB" = (
@@ -900,7 +908,9 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/deltacorridor)
"cK" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating/airless,
/area/template_noop)
"cL" = (
@@ -946,7 +956,9 @@
/turf/closed/wall/rust,
/area/ruin/space/has_grav/ancientstation/hydroponics)
"cR" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/hydroponics)
"cS" = (
@@ -954,7 +966,9 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/hydroponics)
"cT" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/hydroponics)
"cU" = (
@@ -1794,7 +1808,9 @@
/turf/open/floor/plating/airless,
/area/template_noop)
"fb" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/engi)
"fc" = (
@@ -1978,7 +1994,9 @@
/turf/open/floor/plating/airless,
/area/template_noop)
"fB" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/engi)
"fC" = (
@@ -1986,7 +2004,9 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/engi)
"fD" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 6
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/engi)
"fE" = (
@@ -2805,7 +2825,9 @@
/turf/open/floor/plasteel/airless/floorgrime,
/area/template_noop)
"gV" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northeast,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 5
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/engi)
"gW" = (
@@ -2869,7 +2891,9 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/deltacorridor)
"hf" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/rnd)
@@ -2879,7 +2903,9 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/rnd)
"hh" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/rnd)
@@ -3736,7 +3762,9 @@
/turf/closed/wall/rust,
/area/ruin/space/has_grav/ancientstation/engi)
"iY" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/kitchen)
"iZ" = (
@@ -3744,7 +3772,9 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/kitchen)
"ja" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/kitchen)
"jb" = (
@@ -4069,11 +4099,15 @@
/turf/open/floor/plating/airless,
/area/template_noop)
"jS" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation)
"jT" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation)
"jU" = (
@@ -4227,7 +4261,9 @@
/turf/open/floor/engine/airless,
/area/ruin/space/has_grav/ancientstation/atmo)
"ko" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating/airless,
/area/template_noop)
"kp" = (
@@ -4238,7 +4274,7 @@
dir = 6
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/showcase/oldpod,
/obj/structure/showcase/machinery/oldpod,
/turf/open/floor/plasteel/floorgrime,
/area/ruin/space/has_grav/ancientstation)
"kq" = (
@@ -4250,7 +4286,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/showcase/oldpod,
/obj/structure/showcase/machinery/oldpod,
/turf/open/floor/plasteel/floorgrime,
/area/ruin/space/has_grav/ancientstation)
"kr" = (
@@ -4329,7 +4365,9 @@
/turf/open/floor/engine/airless,
/area/ruin/space/has_grav/ancientstation/atmo)
"kB" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating/airless,
/area/template_noop)
"kC" = (
@@ -4583,11 +4621,15 @@
/turf/closed/mineral/plasma,
/area/ruin/unpowered)
"li" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/proto)
"lj" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/ancientstation/proto)
"lk" = (
+1 -6
View File
@@ -350,7 +350,6 @@
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Mining Drone Bay APC";
pixel_y = 24
@@ -848,7 +847,6 @@
d2 = 4
},
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Bridge APC";
pixel_y = 24
@@ -1227,10 +1225,7 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/onehalf/bridge)
"dc" = (
/obj/structure/grille{
density = 0;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/obj/structure/cable{
d1 = 1;
d2 = 2;
@@ -541,12 +541,7 @@
/area/ruin/powered)
"bB" = (
/obj/structure/easel,
/obj/item/paper/pamphlet{
icon = 'icons/obj/fluff.dmi';
icon_state = "painting4";
info = "<i>This picture depicts a crudely-drawn stickman firing a crudely-drawn gun.</i>";
name = "Painting - 'BANG' "
},
/obj/item/paper/pamphlet/ruin/originalcontent/stickman,
/turf/open/indestructible/paper,
/area/ruin/powered)
"bC" = (
@@ -609,12 +604,7 @@
dir = 1
},
/obj/structure/easel,
/obj/item/paper/pamphlet{
icon = 'icons/obj/fluff.dmi';
icon_state = "painting1";
info = "<i>This picture depicts a sunny day on a lush hillside, set under a shaded tree.</i>";
name = "Painting - 'Treeside' "
},
/obj/item/paper/pamphlet/ruin/originalcontent/treeside,
/turf/open/indestructible/paper,
/area/ruin/powered)
"bK" = (
@@ -716,12 +706,7 @@
dir = 8
},
/obj/structure/easel,
/obj/item/paper/pamphlet{
icon = 'icons/obj/fluff.dmi';
icon_state = "painting3";
info = "<i>This picture depicts a smiling clown. Something doesn't feel right about this..</i>";
name = "Painting - 'Pennywise' "
},
/obj/item/paper/pamphlet/ruin/originalcontent/pennywise,
/turf/open/indestructible/paper,
/area/ruin/powered)
"bX" = (
@@ -869,12 +854,7 @@
"cr" = (
/obj/structure/fluff/paper,
/obj/structure/easel,
/obj/item/paper/pamphlet{
icon = 'icons/obj/fluff.dmi';
icon_state = "painting2";
info = "<i>This picture depicts a man yelling on a bridge for no apparent reason.</i>";
name = "Painting - 'Hands-On-Face' "
},
/obj/item/paper/pamphlet/ruin/originalcontent/yelling,
/turf/open/indestructible/paper,
/area/ruin/powered)
"cs" = (
+14 -28
View File
@@ -655,8 +655,7 @@
name = "Hotel Guest Room 3"
})
"bN" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Guest Room APC";
pixel_y = -24
@@ -719,8 +718,7 @@
name = "Hotel Guest Room 4"
})
"bT" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Guest Room APC";
pixel_y = -24
@@ -783,8 +781,7 @@
name = "Hotel Guest Room 5"
})
"bZ" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Guest Room APC";
pixel_y = -24
@@ -847,8 +844,7 @@
name = "Hotel Guest Room 6"
})
"cf" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Guest Room APC";
pixel_y = -24
@@ -1379,8 +1375,7 @@
name = "Hotel Guest Room 2"
})
"dn" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Guest Room APC";
pixel_y = 25
@@ -1461,8 +1456,7 @@
name = "Hotel Guest Room 1"
})
"dv" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Guest Room APC";
pixel_y = 25
@@ -1874,8 +1868,7 @@
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/hotel/workroom)
"eA" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Laundry APC";
pixel_y = -24
@@ -2080,8 +2073,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/hotel)
"fh" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Kitchen APC";
pixel_y = -24
@@ -2874,8 +2866,7 @@
/turf/open/floor/plasteel/cafeteria,
/area/ruin/space/has_grav/hotel/bar)
"hA" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Staff Room APC";
pixel_y = -24
@@ -3261,8 +3252,7 @@
},
/area/ruin/space/has_grav/hotel/power)
"iw" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Power Storage APC";
pixel_y = 25
@@ -3427,8 +3417,7 @@
},
/area/ruin/space/has_grav/hotel/power)
"iU" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Security APC";
pixel_y = -24
@@ -3500,8 +3489,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/hotel/pool)
"iZ" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Pool APC";
pixel_y = -24
@@ -3559,8 +3547,7 @@
/obj/machinery/light{
dir = 8
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Dock APC";
pixel_y = -24
@@ -4824,8 +4811,7 @@
/turf/open/floor/plasteel/neutral,
/area/ruin/space/has_grav/hotel/custodial)
"mJ" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Custodial APC";
pixel_y = -24
+114 -38
View File
@@ -9,7 +9,9 @@
/turf/closed/wall/r_wall,
/area/awaymission/centcomAway/cafe)
"ad" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/cafe)
"ae" = (
@@ -17,7 +19,9 @@
/turf/open/floor/plating,
/area/awaymission/centcomAway/cafe)
"af" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/cafe)
"ag" = (
@@ -101,7 +105,9 @@
},
/area/awaymission/centcomAway/cafe)
"at" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/cafe)
"au" = (
@@ -136,7 +142,9 @@
},
/area/awaymission/centcomAway/cafe)
"aB" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/cafe)
"aC" = (
@@ -223,7 +231,9 @@
},
/area/awaymission/centcomAway/maint)
"aS" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/closed/wall/r_wall,
/area/awaymission/centcomAway/maint)
"aT" = (
@@ -231,7 +241,9 @@
/turf/closed/wall/r_wall,
/area/awaymission/centcomAway/maint)
"aU" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/closed/wall/r_wall,
/area/awaymission/centcomAway/maint)
"aV" = (
@@ -582,7 +594,9 @@
/turf/open/floor/plasteel/hydrofloor,
/area/awaymission/centcomAway/cafe)
"ci" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/maint)
"cj" = (
@@ -632,7 +646,9 @@
/turf/open/floor/plasteel/hydrofloor,
/area/awaymission/centcomAway/cafe)
"cu" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/maint)
"cv" = (
@@ -1016,11 +1032,15 @@
/turf/closed/wall/mineral/titanium,
/area/awaymission/centcomAway/hangar)
"dS" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/cafe)
"dT" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/cafe)
"dU" = (
@@ -1178,7 +1198,9 @@
/turf/open/floor/plating,
/area/awaymission/centcomAway/maint)
"ey" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/east,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/maint)
"ez" = (
@@ -1387,7 +1409,9 @@
/turf/open/floor/plasteel/black,
/area/awaymission/centcomAway/courtroom)
"fn" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/hangar)
"fo" = (
@@ -1395,7 +1419,9 @@
/turf/open/floor/plating,
/area/awaymission/centcomAway/hangar)
"fp" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/hangar)
"fq" = (
@@ -1415,7 +1441,9 @@
/turf/closed/wall/r_wall,
/area/awaymission/centcomAway/general)
"fu" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"fv" = (
@@ -1423,11 +1451,15 @@
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"fw" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"fx" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"fy" = (
@@ -1618,11 +1650,15 @@
},
/area/awaymission/centcomAway/general)
"gd" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 9
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"ge" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"gf" = (
@@ -1637,7 +1673,9 @@
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"gh" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northeast,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 5
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"gi" = (
@@ -1808,7 +1846,9 @@
/turf/open/floor/plasteel/black,
/area/awaymission/centcomAway/general)
"gM" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"gN" = (
@@ -1868,7 +1908,9 @@
},
/area/awaymission/centcomAway/general)
"gX" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"gY" = (
@@ -1973,11 +2015,15 @@
},
/area/awaymission/centcomAway/general)
"hq" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/closed/wall/r_wall,
/area/awaymission/centcomAway/courtroom)
"hr" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/courtroom)
"hs" = (
@@ -1985,7 +2031,9 @@
/turf/open/floor/carpet,
/area/awaymission/centcomAway/courtroom)
"ht" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/courtroom)
"hu" = (
@@ -2049,7 +2097,9 @@
/turf/open/floor/plasteel/black,
/area/awaymission/centcomAway/courtroom)
"hF" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/courtroom)
"hG" = (
@@ -2279,7 +2329,9 @@
/turf/closed/wall/r_wall,
/area/awaymission/centcomAway/courtroom)
"ix" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/closed/wall/r_wall,
/area/awaymission/centcomAway/courtroom)
"iy" = (
@@ -2309,7 +2361,9 @@
},
/area/awaymission/centcomAway/hangar)
"iC" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"iD" = (
@@ -2658,7 +2712,9 @@
},
/area/awaymission/centcomAway/general)
"jH" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plasteel{
name = "plating"
},
@@ -2670,13 +2726,17 @@
},
/area/awaymission/centcomAway/general)
"jJ" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plasteel{
name = "plating"
},
/area/awaymission/centcomAway/general)
"jK" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/obj/structure/window/reinforced,
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
@@ -2736,7 +2796,9 @@
/turf/open/floor/plasteel,
/area/awaymission/centcomAway/general)
"jT" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"jU" = (
@@ -2785,7 +2847,9 @@
/turf/open/floor/plating,
/area/awaymission/centcomAway/hangar)
"kb" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"kc" = (
@@ -2846,12 +2910,16 @@
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"kl" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/obj/structure/window/reinforced,
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"km" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"kn" = (
@@ -2904,7 +2972,9 @@
},
/area/awaymission/centcomAway/general)
"kv" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/southwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 10
},
/obj/structure/window/reinforced{
dir = 4
},
@@ -3015,7 +3085,9 @@
},
/area/awaymission/centcomAway/general)
"kM" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/general)
"kN" = (
@@ -3218,7 +3290,9 @@
/turf/open/floor/plasteel/black,
/area/awaymission/centcomAway/thunderdome)
"lw" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/thunderdome)
"lx" = (
@@ -3226,7 +3300,9 @@
/turf/open/floor/plating,
/area/awaymission/centcomAway/thunderdome)
"ly" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/centcomAway/thunderdome)
"lz" = (
+18 -6
View File
@@ -248,11 +248,15 @@
/turf/open/floor/plating/airless,
/area/awaymission/challenge/main)
"aY" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/west,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 8
},
/turf/open/floor/plating/airless,
/area/awaymission/challenge/main)
"aZ" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/east,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 4
},
/turf/open/floor/plating/airless,
/area/awaymission/challenge/main)
"ba" = (
@@ -874,7 +878,9 @@
/turf/open/space,
/area/space)
"cM" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 9
},
/turf/open/floor/plating,
/area/awaymission/challenge/end)
"cN" = (
@@ -882,11 +888,15 @@
/turf/open/floor/plating,
/area/awaymission/challenge/end)
"cO" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northeast,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 5
},
/turf/open/floor/plating,
/area/awaymission/challenge/end)
"cP" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/challenge/end)
"cQ" = (
@@ -1044,7 +1054,9 @@
/turf/open/floor/plasteel/black,
/area/awaymission/challenge/end)
"dl" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/challenge/end)
"dm" = (
+15 -64
View File
@@ -1922,11 +1922,7 @@
name = "Syndicate Outpost"
})
"cG" = (
/obj/structure/grille{
density = 0;
broken = 1;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/obj/item/stack/rods,
/obj/item/stack/rods,
/obj/item/shard,
@@ -1973,8 +1969,7 @@
})
"cK" = (
/obj/structure/cable,
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 1;
name = "Worn-out APC";
@@ -4886,11 +4881,7 @@
name = "MO19 Research"
})
"gE" = (
/obj/structure/grille{
density = 0;
broken = 1;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/obj/item/stack/rods,
/obj/item/stack/rods,
/obj/item/shard,
@@ -4917,8 +4908,7 @@
})
"gG" = (
/obj/structure/cable,
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 4;
locked = 0;
name = "Worn-out APC";
@@ -5156,22 +5146,10 @@
})
"gW" = (
/obj/structure/filingcabinet/filingcabinet,
/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_hivemind{
info = "Researcher: <u>Dr. Mark Douglas </u><br>Date: <u>17/06/2554</u><br><br>Report:<br>Earlier today we have observed a new phenomenon with our subjects. While feeding them our last monkey subject and throwing out the box, the aliens merely looked at us instead of infecting the monkey right away. They looked to be collectively distressed as they would no longer be given hosts, where instead we would move to the next phase of the experiment. When I glanced at the gas tanks and piping leading to their cell, I looked back to see all of them were up against the glass, even the queen! It was as if they all understood what was going to happen, even though we knew only the queen had the cognitive capability to do so.<br><br>The only explanation for this is a form of communication between the aliens, but we have seen no such action take place anywhere in the cell until now. We also know that regular drone and hunter xenomorphs have no personality or instinct to survive by themselves. Perhaps the queen has a direct link to them? A form of a commander or overseer that controls their every move? A hivemind?";
name = "The Hivemind Hypothesis"
},
/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_behavior{
info = "Researcher: <u>Dr. Sakuma Sano </u><br>Date: <u>08/06/2554</u><br><br>Report:<br>The xenomorphs we have come to study here are a remarkable species. They are almost universally aggressive across all castes, showing no remorse or guilt or pause before or after acts of violence. They appear to be a species entirely designed to kill. Oddly enough, even their method of reproduction is a brutal two-for-one method of birthing a new xenomorph and killing its host.<br><br>The lone xenomorph we studied only five days ago showed little sign of intelligence. Only a simple drone that flung itself at the safety glass and shields repeatedly and thankfully without success. Once the drone molted into a queen, it became much more calm and calculating, merely looking at us and waiting while building its nest. As the hive grew in size and in numbers, so too did the intelligence of the common hunter and drone. We are still researching how they can communicate with one another and the relationship between the different castes and the queen. We will continue to update our research as we learn more about the species.";
name = "A Preliminary Study of Alien Behavior"
},
/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_castes{
info = "Researcher: <u>Dr. Mark Douglas </u><br>Date: <u>06/06/2554</u><br><br>Report:<br>While observing the growing number of aliens in the containment cell, we began to notice subtle differences that were consistently repeating. Like ants, these creatures clearly have different specialized variations that determine their roles in the hive. We have dubbed the three currently observed castes as Hunters, Drones, and Sentinels.<br><br>Hunters have been observed to be by far the most aggressive and agile of the three, constantly running on every surface and frequently swiping at the windows. They are also remarkably good at camouflaging themselves in darkness and on their resin structures, appearing almost invisible to the unwary observer. They are always the first to reach the monkeys we send in leading us to believe that this caste is primarily used for finding and retrieving hosts.<br><br>Drones on the other hand are much more docile and seem more shy by comparison, though not any less aggressive than the other castes. They have been observed to have a much wider head and lack dorsal tubes. They have shown to be less agile and visibly more fragile than any other caste. The drone however has never been observed to interact with the monkeys directly and instead preferring maintenance of the hive by building walls of resin and moving eggs around the nest. As far as we know, we have only ever observed a drone become a queen, and we have no way of knowing if the other castes have that capability.<br><br>Lastly, we have the Sentinels, which appear at first glance to be the guards of the hive. They have so far been only observed to remain near the queen and the eggs, frequently curled up against the walls. We have only observed one instance where they have interacted with a monkey who strayed too closely to the queen, and was pounced and held down immediately until it was applied with a facehugger. Their lack of movement makes it difficult to determine their exact purpose as guards, sentries, or other role.";
name = "The Xenomorph 'Castes'"
},
/obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_autopsy{
info = "Researcher: <u>Dr. Mark Douglas </u><br>Date: <u>04/06/2554</u><br><br>Report:<br>After an extremely dangerous, time consuming and costly dissection, we have managed to record and identify several of the organs inside of the first stage of the xenomorph cycle: the larva. This procedure took an extensive amount of time because these creatures have incredibly, almost-comically acidic blood that can melt through almost anything in a few moments. We had to use over a dozen scalpels and retractors to complete the autopsy.<br><br>The larva seems to possess far fewer and quite different organs than that of a human. There is a stomach, with no digestive tract, a heart, which seems to lack any blood-oxygen circulation purpose, and an elongated brain, even though its as dumb as any large cat. It also lacks any liver, kidneys, or other basic organs.<br><br>We can't determine the exact nature of how these creatures grow, nor if they gain organs as they become adults. The larger breeds of xenomorph are too dangerous to kill and capture to give us an accurate answer to these questions. All that we can conclude is that being able to function with so little and yet be so deadly means that these creatures are highly evolved and likely to be extremely durable to various hazards that would otherwise be lethal to humans.";
name = "Larva Xenomorph Autopsy Report"
},
/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_hivemind,
/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_behavior,
/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_castes,
/obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_autopsy,
/obj/structure/alien/weeds,
/turf/open/floor/plasteel/white,
/area/awaycontent/a2{
@@ -5537,11 +5515,7 @@
name = "MO19 Research"
})
"hx" = (
/obj/structure/grille{
density = 0;
broken = 1;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/obj/item/stack/rods,
/obj/item/stack/rods,
/obj/item/shard{
@@ -6792,7 +6766,6 @@
"jq" = (
/obj/item/twohanded/required/kirbyplants{
desc = "A plastic potted plant.";
layer = 4.1;
pixel_y = 3
},
/turf/open/floor/plasteel{
@@ -6981,8 +6954,7 @@
icon_state = "0-2";
d2 = 2
},
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 1;
locked = 0;
name = "Worn-out APC";
@@ -7802,11 +7774,7 @@
})
"kP" = (
/obj/item/stack/rods,
/obj/structure/grille{
density = 0;
broken = 1;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/obj/item/stack/rods,
/obj/item/shard{
icon_state = "medium"
@@ -7820,11 +7788,7 @@
name = "MO19 Arrivals"
})
"kQ" = (
/obj/structure/grille{
density = 0;
broken = 1;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/obj/item/stack/rods,
/turf/open/floor/plating{
broken = 1;
@@ -9335,11 +9299,7 @@
name = "MO19 Arrivals"
})
"ns" = (
/obj/structure/grille{
density = 0;
broken = 1;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/obj/item/stack/rods,
/turf/open/floor/plating{
heat_capacity = 1e+006
@@ -9485,11 +9445,7 @@
poweralm = 0
})
"nD" = (
/obj/structure/grille{
density = 0;
broken = 1;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/obj/item/stack/rods,
/obj/item/shard,
/obj/effect/decal/cleanable/blood/tracks{
@@ -9824,7 +9780,6 @@
"ob" = (
/obj/item/twohanded/required/kirbyplants{
desc = "A plastic potted plant.";
layer = 4.1;
pixel_y = 3
},
/turf/open/floor/plasteel/neutral/side{
@@ -9948,11 +9903,7 @@
poweralm = 0
})
"oj" = (
/obj/structure/grille{
density = 0;
broken = 1;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/turf/open/floor/mineral/titanium,
/area/awaycontent/a3{
always_unpowered = 1;
+13 -28
View File
@@ -119,7 +119,6 @@
"ax" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-20";
layer = 4.1;
pixel_y = 3
},
/turf/open/floor/plasteel/whiteyellow/corner{
@@ -371,9 +370,8 @@
icon_state = "0-2";
d2 = 2
},
/obj/machinery/power/apc{
/obj/machinery/power/apc/highcap/ten_k{
auto_name = 1;
cell_type = 9000;
dir = 4;
name = "Engineering APC";
pixel_x = 27;
@@ -660,8 +658,7 @@
/turf/open/floor/plasteel/black,
/area/awaymission/research/interior/gateway)
"cb" = (
/obj/machinery/power/apc{
cell_type = 12000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 4;
name = "Gateway APC";
pixel_x = 24
@@ -988,8 +985,7 @@
d2 = 2;
icon_state = "1-2"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Genetics APC";
pixel_x = 24
@@ -1320,8 +1316,7 @@
/area/awaymission/research/interior/secure)
"dN" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-16";
layer = 4.1
icon_state = "plant-16"
},
/turf/open/floor/plasteel/darkpurple,
/area/awaymission/research/interior/genetics)
@@ -1718,8 +1713,7 @@
/turf/open/floor/plasteel/whitepurple,
/area/awaymission/research/interior)
"fa" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Cryostatis APC";
pixel_x = 24
@@ -1889,8 +1883,7 @@
/turf/open/floor/plasteel/black,
/area/awaymission/research/interior/secure)
"fy" = (
/obj/machinery/power/apc{
cell_type = 12000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 4;
name = "Vault APC";
pixel_x = 24
@@ -2829,8 +2822,7 @@
/area/awaymission/research/interior/genetics)
"hV" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-10";
layer = 4.1
icon_state = "plant-10"
},
/turf/open/floor/plasteel/darkpurple,
/area/awaymission/research/interior/genetics)
@@ -3057,8 +3049,7 @@
/turf/open/floor/plating,
/area/awaymission/research/interior/maint)
"iw" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Genetics APC";
pixel_x = 24
@@ -3312,8 +3303,7 @@
/area/awaymission/research/interior/dorm)
"jm" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-14";
layer = 4.1
icon_state = "plant-14"
},
/turf/open/floor/plasteel/yellowsiding{
dir = 9
@@ -3655,8 +3645,7 @@
},
/area/awaymission/research/interior/medbay)
"kp" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Dorms APC";
pixel_x = 24
@@ -4060,8 +4049,7 @@
/area/awaymission/research/interior/medbay)
"ly" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-16";
layer = 4.1
icon_state = "plant-16"
},
/turf/open/floor/plasteel/yellowsiding{
dir = 10
@@ -4466,9 +4454,7 @@
},
/area/awaymission/research/interior/escapepods)
"mJ" = (
/obj/item/twohanded/required/kirbyplants{
layer = 4.1
},
/obj/item/twohanded/required/kirbyplants,
/turf/open/floor/plasteel/whitegreen/side{
dir = 8
},
@@ -4502,8 +4488,7 @@
/area/awaymission/research/interior/escapepods)
"mN" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "applebush";
layer = 4.1
icon_state = "applebush"
},
/turf/open/floor/plasteel/whitegreen/side{
dir = 4
+3 -16
View File
@@ -633,12 +633,7 @@
},
/area/awaymission/snowdin/base)
"bC" = (
/obj/structure/showcase{
desc = "A strange machine thats supposedly used to help pick up and decrypt wave signals. ";
icon = 'icons/obj/machines/telecomms.dmi';
icon_state = "processor";
name = "subsystem signal decrypter"
},
/obj/structure/showcase/machinery/signal_decrypter,
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/snow
},
@@ -2498,12 +2493,7 @@
/area/awaymission/snowdin/post)
"gL" = (
/obj/machinery/light/small,
/obj/structure/showcase{
desc = "A strange machine thats supposedly used to help pick up and decrypt wave signals. ";
icon = 'icons/obj/machines/telecomms.dmi';
icon_state = "processor";
name = "subsystem signal decrypter"
},
/obj/structure/showcase/machinery/signal_decrypter,
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/snow
},
@@ -3909,10 +3899,7 @@
},
/area/awaymission/snowdin)
"kA" = (
/obj/structure/grille{
density = 0;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/snow;
icon = 'icons/turf/snow.dmi';
+49 -17
View File
@@ -842,7 +842,9 @@
/turf/open/floor/plasteel,
/area/awaymission/spacebattle/cruiser)
"cY" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"cZ" = (
@@ -865,7 +867,9 @@
/turf/open/floor/mineral/plastitanium,
/area/awaymission/spacebattle/cruiser)
"dd" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/obj/structure/window/reinforced,
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
@@ -1002,7 +1006,9 @@
/turf/open/floor/plating/airless,
/area/awaymission/spacebattle/cruiser)
"dE" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 9
},
/turf/open/floor/engine,
/area/awaymission/spacebattle/cruiser)
"dF" = (
@@ -1010,11 +1016,15 @@
/turf/open/floor/engine,
/area/awaymission/spacebattle/cruiser)
"dG" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/north,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 1
},
/turf/open/floor/engine,
/area/awaymission/spacebattle/cruiser)
"dH" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/northeast,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 5
},
/turf/open/floor/engine,
/area/awaymission/spacebattle/cruiser)
"dI" = (
@@ -1109,7 +1119,9 @@
/turf/open/floor/plating/airless,
/area/awaymission/spacebattle/cruiser)
"dY" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/engine,
/area/awaymission/spacebattle/cruiser)
"dZ" = (
@@ -1130,7 +1142,9 @@
},
/area/awaymission/spacebattle/cruiser)
"eb" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"ec" = (
@@ -1296,7 +1310,9 @@
/turf/open/floor/plasteel/blue,
/area/awaymission/spacebattle/cruiser)
"eF" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"eG" = (
@@ -1345,7 +1361,9 @@
/turf/open/floor/plasteel/blue,
/area/awaymission/spacebattle/cruiser)
"eQ" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"eR" = (
@@ -2063,7 +2081,9 @@
/turf/open/floor/plating/airless,
/area/awaymission/spacebattle/cruiser)
"hi" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/syndicate7)
"hj" = (
@@ -2122,7 +2142,9 @@
/turf/closed/wall/r_wall,
/area/awaymission/spacebattle/cruiser)
"hu" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/syndicate7)
"hv" = (
@@ -2912,7 +2934,9 @@
/turf/open/floor/plasteel/white,
/area/awaymission/spacebattle/cruiser)
"ki" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/engine/vacuum,
/area/awaymission/spacebattle/cruiser)
"kj" = (
@@ -2941,7 +2965,9 @@
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"ko" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/turf/open/floor/engine/vacuum,
/area/awaymission/spacebattle/cruiser)
"kp" = (
@@ -2958,7 +2984,9 @@
/turf/open/floor/engine/vacuum,
/area/awaymission/spacebattle/cruiser)
"kr" = (
/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
dir = 4
},
/turf/open/floor/engine/vacuum,
/area/awaymission/spacebattle/cruiser)
"ks" = (
@@ -2983,11 +3011,13 @@
/turf/open/floor/engine/vacuum,
/area/awaymission/spacebattle/cruiser)
"kw" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner/southwest,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 10
},
/turf/open/floor/engine/vacuum,
/area/awaymission/spacebattle/cruiser)
"kx" = (
/obj/effect/spawner/structure/window/hollow/reinforced/one_side,
/obj/effect/spawner/structure/window/hollow/reinforced/directional,
/turf/open/floor/engine/vacuum,
/area/awaymission/spacebattle/cruiser)
"ky" = (
@@ -2995,7 +3025,9 @@
/turf/open/floor/engine/vacuum,
/area/awaymission/spacebattle/cruiser)
"kz" = (
/obj/effect/spawner/structure/window/hollow/reinforced/corner,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 6
},
/turf/open/floor/engine/vacuum,
/area/awaymission/spacebattle/cruiser)
"kA" = (
+9 -21
View File
@@ -3159,8 +3159,7 @@
dir = 1;
network = list("UO45")
},
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "Hydroponics APC";
@@ -6240,8 +6239,7 @@
icon_state = "0-4";
d2 = 4
},
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 1;
locked = 0;
name = "UO45 Bar APC";
@@ -7619,8 +7617,7 @@
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "UO45 Research Division APC";
@@ -8313,8 +8310,7 @@
})
"mE" = (
/obj/structure/cable,
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "UO45 Gateway APC";
@@ -11932,8 +11928,7 @@
icon_state = "0-4";
d2 = 4
},
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 8;
locked = 1;
name = "UO45 Engineering APC";
@@ -12695,8 +12690,7 @@
})
"sj" = (
/obj/structure/cable,
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "UO45 Mining APC";
@@ -14194,8 +14188,7 @@
/obj/machinery/atmospherics/components/trinary/filter{
dir = 4;
filter_type = "n2";
on = 1;
req_access = null
on = 1
},
/turf/open/floor/plasteel/red/side{
dir = 10;
@@ -14244,8 +14237,7 @@
/obj/machinery/atmospherics/components/trinary/filter{
dir = 4;
filter_type = "o2";
on = 1;
req_access = null
on = 1
},
/turf/open/floor/plasteel/blue/side{
dir = 10;
@@ -17526,11 +17518,7 @@
poweralm = 0
})
"yN" = (
/obj/structure/grille{
density = 0;
broken = 1;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/turf/open/floor/mineral/titanium/blue,
/area/awaycontent/a7{
always_unpowered = 1;
+14 -8
View File
@@ -171,9 +171,7 @@
/turf/open/floor/engine/cult,
/area/awaymission/wwvault)
"aL" = (
/obj/item/paper/fluff/awaymissions/wildwest/grinder{
info = "meat grinder requires sacri"
},
/obj/item/paper/fluff/awaymissions/wildwest/grinder,
/turf/open/floor/plasteel/cult{
name = "engraved floor"
},
@@ -449,7 +447,9 @@
/obj/structure/window/reinforced{
icon_state = "fwindow"
},
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/west,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 8
},
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
@@ -551,7 +551,9 @@
icon_state = "fwindow";
dir = 8
},
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/north,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 1
},
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
@@ -872,7 +874,9 @@
icon_state = "fwindow";
dir = 4
},
/obj/effect/spawner/structure/window/hollow/reinforced/one_side/north,
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
dir = 1
},
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
@@ -1698,7 +1702,7 @@
icon_state = "fwindow";
dir = 4
},
/obj/effect/spawner/structure/window/hollow/reinforced/one_side,
/obj/effect/spawner/structure/window/hollow/reinforced/directional,
/turf/open/floor/plasteel,
/area/awaymission/wwrefine)
"fB" = (
@@ -2143,7 +2147,9 @@
/turf/open/floor/mineral/titanium/yellow,
/area/awaymission/wwrefine)
"gX" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end/north,
/obj/effect/spawner/structure/window/hollow/reinforced/end{
dir = 1
},
/obj/structure/window/reinforced{
icon_state = "fwindow"
},
+3 -2
View File
@@ -3,16 +3,17 @@
#include "map_files\generic\Space.dmm"
#include "map_files\generic\SpaceDock.dmm"
#include "map_files\Mining\Lavaland.dmm"
#include "map_files\generic\City_of_Cogs.dmm"
#ifdef ALL_MAPS
#include "map_files\debug\runtimestation.dmm"
#include "map_files\Deltastation\DeltaStation2.dmm"
#include "map_files\MetaStation\MetaStation.dmm"
#include "map_files\OmegaStation\OmegaStation.dmm"
#include "map_files\PubbyStation\PubbyStation.dmm"
// #include "map_files\PubbyStation\PubbyStation.dmm"
#include "map_files\BoxStation\BoxStation.dmm"
#ifdef TRAVISBUILDING
#include "templates.dm"
#endif
#endif
#endif
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
-2
View File
@@ -358,8 +358,6 @@
/area/mine/laborcamp)
"bj" = (
/obj/machinery/status_display{
density = 0;
layer = 4;
pixel_y = 32
},
/turf/open/floor/plasteel,
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
+561 -243
View File
@@ -1,273 +1,591 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/closed/wall/mineral/titanium/overspace,
/area/shuttle/supply)
"b" = (
"aa" = (
/turf/open/space,
/area/space)
"ab" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"c" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"d" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"e" = (
/obj/machinery/conveyor{
dir = 2;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"f" = (
/obj/machinery/conveyor{
dir = 8;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"g" = (
/obj/machinery/conveyor{
dir = 4;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"h" = (
/obj/machinery/conveyor{
dir = 9;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"i" = (
/obj/machinery/conveyor{
dir = 1;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"j" = (
/obj/machinery/conveyor{
dir = 10;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"k" = (
/obj/machinery/conveyor{
dir = 6;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"l" = (
/obj/machinery/door/poddoor{
id = "QMLoaddoor2";
name = "supply dock loading door"
},
/obj/machinery/conveyor{
dir = 8;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/area/shuttle/escape)
"ac" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/supply)
"m" = (
/area/shuttle/escape)
"ad" = (
/obj/structure/table,
/obj/item/scalpel,
/obj/item/retractor{
pixel_y = 5
},
/obj/item/hemostat,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"ae" = (
/obj/structure/table,
/obj/item/cautery,
/obj/item/surgicaldrill,
/obj/item/circular_saw{
pixel_y = 9
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"af" = (
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"ag" = (
/obj/structure/shuttle/engine/propulsion/right{
dir = 4
},
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"ah" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/escape)
"ai" = (
/obj/machinery/computer/emergency_shuttle,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"n" = (
/turf/open/floor/mineral/titanium,
/area/shuttle/supply)
"o" = (
/obj/machinery/door/airlock/titanium{
name = "Supply Shuttle Airlock";
req_access_txt = "31"
/area/shuttle/escape)
"aj" = (
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"ak" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-22"
},
/turf/open/floor/plating,
/area/shuttle/supply)
"p" = (
/obj/machinery/button/door{
dir = 2;
id = "QMLoaddoor2";
name = "Loading Doors";
pixel_x = 24;
pixel_y = 8
},
/obj/machinery/button/door{
id = "QMLoaddoor";
name = "Loading Doors";
pixel_x = 24;
pixel_y = -8
},
/obj/machinery/conveyor_switch/oneway{
id = "cargoshuttle"
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"al" = (
/obj/structure/chair,
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"am" = (
/obj/structure/chair,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"an" = (
/obj/structure/table/optable,
/obj/item/surgical_drapes,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"ao" = (
/obj/machinery/light{
dir = 4
},
/turf/open/floor/mineral/titanium,
/area/shuttle/supply)
"q" = (
/obj/machinery/door/airlock/titanium{
name = "Supply Shuttle Airlock";
req_access_txt = "31"
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"ap" = (
/obj/structure/shuttle/engine/propulsion{
dir = 4
},
/obj/docking_port/mobile/supply{
dwidth = 3;
width = 10;
timid = 1
},
/turf/open/floor/plating,
/area/shuttle/supply)
"r" = (
/obj/machinery/door/poddoor{
id = "QMLoaddoor";
name = "supply dock loading door"
},
/obj/machinery/conveyor{
dir = 4;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/plating,
/area/shuttle/supply)
"s" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/supply)
"t" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"u" = (
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/shuttle/engine/heater,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
"v" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"w" = (
/turf/open/space,
/area/space)
"x" = (
/obj/structure/shuttle/engine/propulsion/burst/left,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
"y" = (
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
"z" = (
/obj/structure/shuttle/engine/propulsion/burst/right,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
"A" = (
/obj/machinery/conveyor{
dir = 8;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/obj/machinery/light{
dir = 1
},
/area/shuttle/escape)
"aq" = (
/obj/machinery/computer/communications,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"B" = (
/obj/machinery/light{
/area/shuttle/escape)
"ar" = (
/obj/structure/chair{
dir = 8
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
/area/shuttle/escape)
"as" = (
/obj/machinery/door/airlock/glass_command{
name = "bridge door";
req_access_txt = "19"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"at" = (
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"au" = (
/obj/structure/shuttle/engine/propulsion/left{
dir = 4
},
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"av" = (
/obj/machinery/light,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"aw" = (
/obj/structure/extinguisher_cabinet{
pixel_y = -32
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"ax" = (
/obj/structure/table,
/obj/machinery/recharger{
active_power_usage = 0;
idle_power_usage = 0;
pixel_y = 4;
use_power = 0
},
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"ay" = (
/obj/structure/table,
/obj/item/storage/box/handcuffs,
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"az" = (
/obj/machinery/door/airlock/glass_security{
name = "security airlock";
req_access_txt = "63"
},
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"aA" = (
/obj/machinery/door/airlock/glass,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aB" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aC" = (
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aD" = (
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aE" = (
/obj/structure/chair{
dir = 4
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aF" = (
/obj/structure/table,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aG" = (
/obj/machinery/door/airlock/titanium,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aH" = (
/obj/structure/chair{
dir = 8
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aI" = (
/obj/structure/table,
/obj/item/reagent_containers/food/snacks/boiledspaghetti{
name = "pasghetti";
pixel_x = 4;
pixel_y = 7
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aJ" = (
/obj/machinery/light/small,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aK" = (
/obj/machinery/door/airlock/titanium,
/obj/docking_port/mobile/emergency{
dheight = 0;
dir = 8;
dwidth = 6;
height = 18;
port_direction = 4;
width = 14;
timid = 1;
name = "Birdboat emergency escape shuttle"
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aL" = (
/obj/structure/table,
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aM" = (
/obj/structure/table,
/obj/item/reagent_containers/food/snacks/chocolatebar,
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aN" = (
/obj/structure/chair{
dir = 1
},
/obj/structure/window/reinforced,
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aO" = (
/obj/structure/chair{
dir = 1
},
/obj/structure/window/reinforced,
/obj/machinery/light{
dir = 4
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aP" = (
/obj/structure/chair,
/obj/structure/window/reinforced{
dir = 1;
pixel_y = 2
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aQ" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -27
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aR" = (
/obj/structure/table/glass,
/obj/item/storage/firstaid/fire{
pixel_x = 5;
pixel_y = 5
},
/obj/item/storage/firstaid/toxin,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aS" = (
/obj/structure/chair{
dir = 1
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aT" = (
/obj/structure/chair{
dir = 1
},
/obj/machinery/light,
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aU" = (
/obj/structure/table/glass,
/obj/item/storage/firstaid/brute{
pixel_x = 5;
pixel_y = 5
},
/obj/item/storage/firstaid/brute,
/obj/machinery/light{
dir = 4
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aV" = (
/obj/structure/extinguisher_cabinet{
pixel_y = -32
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aW" = (
/obj/structure/chair,
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aX" = (
/obj/machinery/sleeper{
dir = 1
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aY" = (
/obj/structure/table/glass,
/obj/item/defibrillator/loaded,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
(1,1,1) = {"
b
b
b
b
b
b
b
b
b
w
aa
aa
ab
ab
ac
ab
ac
ac
ac
ac
ac
ab
aa
aa
"}
(2,1,1) = {"
b
e
g
e
m
B
m
g
b
x
aa
ab
ah
aq
ak
ac
aB
aH
aH
aH
aB
ah
ab
aa
"}
(3,1,1) = {"
b
f
g
f
m
m
m
g
u
y
aa
ab
ai
ar
aj
as
aC
aC
aC
aC
aC
aS
ab
aa
"}
(4,1,1) = {"
b
A
g
f
m
m
m
g
u
y
aa
ac
aj
aj
av
ab
aD
aD
aL
aC
aC
aS
ab
aa
"}
(5,1,1) = {"
b
f
h
j
m
m
m
g
u
y
aa
ac
aj
aj
aw
ab
aE
aE
aM
aC
aC
aS
ab
aa
"}
(6,1,1) = {"
b
f
i
k
n
p
n
g
b
z
aa
ab
ak
aj
ak
ab
aF
aI
aL
aC
aC
aT
ah
ab
"}
(7,1,1) = {"
b
b
b
l
o
b
q
r
b
w
aa
ab
ab
as
ac
ab
aC
aC
aC
aC
aC
aC
aB
ab
"}
(8,1,1) = {"
aa
ab
al
at
at
ac
aB
aC
aC
aC
aC
aC
aV
ab
"}
(9,1,1) = {"
aa
ab
al
at
at
az
aC
aC
aN
aP
aC
aC
aW
ac
"}
(10,1,1) = {"
aa
ab
am
at
at
ac
aC
aC
aN
aP
aC
aC
aW
ac
"}
(11,1,1) = {"
aa
ab
al
at
ax
ab
aC
aC
aN
aP
aC
aC
aW
ac
"}
(12,1,1) = {"
aa
ab
al
at
ay
ab
aC
aC
aO
aP
aC
aC
aB
ab
"}
(13,1,1) = {"
ab
ab
ab
ab
ab
ah
aC
aC
ah
ab
aA
ac
ab
ab
"}
(14,1,1) = {"
ab
ad
an
af
af
aA
aC
aC
aA
aQ
af
af
aX
ab
"}
(15,1,1) = {"
ab
ae
af
af
af
aA
aC
aC
aA
af
af
af
af
ab
"}
(16,1,1) = {"
ab
af
ao
af
ab
ab
aG
aG
ab
ab
aR
aU
aY
ab
"}
(17,1,1) = {"
ab
ab
ab
ab
ab
ab
aC
aJ
ab
ab
ab
ab
ab
ab
"}
(18,1,1) = {"
ab
ag
ap
au
ab
ab
aG
aK
ab
ab
ag
ap
au
ab
"}
-3
View File
@@ -148,7 +148,6 @@
},
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
@@ -307,7 +306,6 @@
"bc" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
@@ -480,7 +478,6 @@
"bG" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
+3 -4
View File
@@ -144,8 +144,7 @@
/area/shuttle/escape)
"aB" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
icon_state = "plant-21"
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
@@ -198,7 +197,7 @@
dir = 8;
dwidth = 6;
height = 18;
port_angle = 90;
port_direction = 4;
width = 14;
timid = 1;
name = "Birdboat emergency escape shuttle"
@@ -588,4 +587,4 @@ ag
ap
au
ab
"}
"}
+4 -6
View File
@@ -540,7 +540,7 @@
dwidth = 15;
height = 20;
name = "Cere emergency shuttle";
port_angle = 90;
port_direction = 4;
preferred_direction = 2;
width = 42
},
@@ -680,8 +680,7 @@
/area/shuttle/escape)
"ca" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
icon_state = "plant-21"
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
@@ -703,8 +702,7 @@
dir = 4
},
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
icon_state = "plant-21"
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
@@ -2075,4 +2073,4 @@ aa
aa
aa
aa
"}
"}
+4 -11
View File
@@ -153,7 +153,6 @@
"an" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
@@ -168,7 +167,6 @@
"ap" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
@@ -444,7 +442,7 @@
name = "Delta emergency shuttle";
width = 30;
preferred_direction = 2;
port_angle = 90
port_direction = 4
},
/turf/open/floor/plating,
/area/shuttle/escape)
@@ -689,8 +687,7 @@
/area/shuttle/escape)
"bz" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
icon_state = "plant-21"
},
/obj/machinery/button/flasher{
id = "shuttleflash";
@@ -703,8 +700,7 @@
/area/shuttle/escape)
"bA" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
icon_state = "plant-21"
},
/turf/open/floor/plasteel/neutral/corner{
dir = 4
@@ -883,7 +879,6 @@
"cb" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
@@ -1050,7 +1045,6 @@
"cA" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
@@ -1083,7 +1077,6 @@
"cE" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
@@ -1669,4 +1662,4 @@ aa
aa
aa
aa
"}
"}
-3
View File
@@ -304,7 +304,6 @@
"bg" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
@@ -359,7 +358,6 @@
"bp" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
@@ -369,7 +367,6 @@
"bq" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1;
pixel_x = -3;
pixel_y = 3
},
+2 -2
View File
@@ -279,7 +279,7 @@
dwidth = 4;
height = 15;
name = "Pubby emergency shuttle";
port_angle = 90;
port_direction = 4;
width = 18
},
/turf/open/floor/plating,
@@ -638,4 +638,4 @@ ab
ab
ab
aa
"}
"}
+2 -2
View File
@@ -288,7 +288,7 @@
/area/shuttle/escape)
"ba" = (
/obj/structure/destructible/cult/forge{
desc = "A engine used in powering the shuttle.";
desc = "An engine used in powering the shuttle.";
name = "magma engine"
},
/turf/open/floor/plasteel/yellow,
@@ -307,7 +307,7 @@
/area/shuttle/escape)
"bd" = (
/obj/structure/destructible/cult/forge{
desc = "A engine used in powering the shuttle.";
desc = "An engine used in powering the shuttle.";
name = "magma engine"
},
/turf/open/floor/plasteel/whitered,
+2 -2
View File
@@ -57,7 +57,7 @@
id = "ferry";
name = "ferry shuttle";
roundstart_move = "ferry_away";
port_angle = 180;
port_direction = 2;
width = 5;
timid = 1
},
@@ -170,4 +170,4 @@ d
m
d
c
"}
"}
+3 -9
View File
@@ -46,10 +46,7 @@
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/transport)
"am" = (
/obj/structure/grille{
density = 0;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/turf/open/floor/plating/airless,
/area/shuttle/transport)
"an" = (
@@ -114,10 +111,7 @@
/turf/closed/wall/mineral/titanium,
/area/shuttle/transport)
"aB" = (
/obj/structure/grille{
density = 0;
icon_state = "brokengrille"
},
/obj/structure/grille/broken,
/obj/structure/window/fulltile,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/transport)
@@ -184,7 +178,7 @@
name = "The Lighthouse";
roundstart_move = "ferry_away";
timid = 1;
port_angle = 180;
port_direction = 2;
width = 16
},
/turf/open/floor/mineral/titanium/blue,
+1 -1
View File
@@ -113,7 +113,7 @@
id = "ferry";
name = "ferry shuttle";
roundstart_move = "ferry_away";
port_angle = 180;
port_direction = 2;
width = 5;
timid = 1
},
+1 -1
View File
@@ -18,7 +18,7 @@
id = "whiteship";
launch_status = 0;
name = "NT Medical Ship";
port_angle = -90;
port_direction = 8;
preferred_direction = 4;
roundstart_move = "whiteship_away";
timid = null;
+1 -1
View File
@@ -21,7 +21,7 @@
id = "whiteship";
launch_status = 0;
name = "NT Recovery White-Ship";
port_angle = -90;
port_direction = 8;
preferred_direction = 1;
roundstart_move = "whiteship_away";
width = 16
+2 -4
View File
@@ -27,7 +27,7 @@
id = "whiteship";
launch_status = 0;
name = "NT Recovery White-Ship";
port_angle = -90;
port_direction = 8;
preferred_direction = 4;
roundstart_move = "whiteship_away";
width = 27
@@ -1478,9 +1478,7 @@
req_access_txt = "0";
use_power = 0
},
/obj/machinery/iv_drip{
density = 0
},
/obj/machinery/iv_drip,
/obj/effect/decal/cleanable/dirt{
desc = "A thin layer of dust coating the floor.";
name = "dust"
+1 -1
View File
@@ -92,7 +92,7 @@
id = "whiteship";
launch_status = 0;
name = "White Ship";
port_angle = 90;
port_direction = 4;
preferred_direction = 1;
roundstart_move = "whiteship_away";
timid = 1;
+1 -1
View File
@@ -49,7 +49,7 @@ curl -v \
-H "User-Agent: myBotThing (http://some.url, v0.1)" \
-H "Content-Type: application/json" \
-X POST \
-d "{\"content\":\"Mirroring [$1] from /tg/ to Hippie\"}" \
-d "{\"content\":\"Mirroring [$1] from /tg/ to Citadel\"}" \
https://discordapp.com/api/channels/$CHANNELID/messages
# We need to make sure we are always on a clean master when creating the new branch.
+3 -2
View File
@@ -132,5 +132,6 @@
#define NOLIVER 29
#define NOSTOMACH 30
//citadel code
#define NOAROUSAL 29//Stops all arousal effects
#define NOGENITALS 30//Cannot create, use, or otherwise have genitals
#define NOAROUSAL 29 //Stops all arousal effects
#define NOGENITALS 30 //Cannot create, use, or otherwise have genitals
#define NO_DNA_COPY 31
+148 -74
View File
@@ -1,74 +1,148 @@
//A set of constants used to determine which type of mute an admin wishes to apply:
//Please read and understand the muting/automuting stuff before changing these. MUTE_IC_AUTO etc = (MUTE_IC << 1)
//Therefore there needs to be a gap between the flags_1 for the automute flags_1
#define MUTE_IC 1
#define MUTE_OOC 2
#define MUTE_PRAY 4
#define MUTE_ADMINHELP 8
#define MUTE_DEADCHAT 16
#define MUTE_ALL 31
//Some constants for DB_Ban
#define BANTYPE_PERMA 1
#define BANTYPE_TEMP 2
#define BANTYPE_JOB_PERMA 3
#define BANTYPE_JOB_TEMP 4
#define BANTYPE_ANY_FULLBAN 5 //used to locate stuff to unban.
#define BANTYPE_ADMIN_PERMA 7
#define BANTYPE_ADMIN_TEMP 8
#define BANTYPE_ANY_JOB 9 //used to remove jobbans
//Please don't edit these values without speaking to Errorage first ~Carn
//Admin Permissions
#define R_BUILDMODE 1
#define R_ADMIN 2
#define R_BAN 4
#define R_FUN 8
#define R_SERVER 16
#define R_DEBUG 32
#define R_POSSESS 64
#define R_PERMISSIONS 128
#define R_STEALTH 256
#define R_POLL 512
#define R_VAREDIT 1024
#define R_SOUNDS 2048
#define R_SPAWN 4096
#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;adminmoreinfo=\ref[user]'>?</a>)"
#define ADMIN_FLW(user) "(<a href='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</a>)"
#define ADMIN_PP(user) "(<a href='?_src_=holder;adminplayeropts=\ref[user]'>PP</a>)"
#define ADMIN_VV(atom) "(<a href='?_src_=vars;Vars=\ref[atom]'>VV</a>)"
#define ADMIN_SM(user) "(<a href='?_src_=holder;subtlemessage=\ref[user]'>SM</a>)"
#define ADMIN_TP(user) "(<a href='?_src_=holder;traitor=\ref[user]'>TP</a>)"
#define ADMIN_KICK(user) "(<a href='?_src_=holder;boot2=\ref[user]'>KICK</a>)"
#define ADMIN_CENTCOM_REPLY(user) "(<a href='?_src_=holder;CentComReply=\ref[user]'>RPLY</a>)"
#define ADMIN_SYNDICATE_REPLY(user) "(<a href='?_src_=holder;SyndicateReply=\ref[user]'>RPLY</a>)"
#define ADMIN_SC(user) "(<a href='?_src_=holder;adminspawncookie=\ref[user]'>SC</a>)"
#define ADMIN_SMITE(user) "(<a href='?_src_=holder;adminsmite=\ref[user]'>SMITE</a>)"
#define ADMIN_LOOKUP(user) "[key_name_admin(user)][ADMIN_QUE(user)]"
#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]"
#define ADMIN_SET_SD_CODE "(<a href='?_src_=holder;set_selfdestruct_code=1'>SETCODE</a>)"
#define ADMIN_FULLMONTY_NONAME(user) "[ADMIN_QUE(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)] [ADMIN_INDIVIDUALLOG(user)] [ADMIN_SMITE(user)]"
#define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_FULLMONTY_NONAME(user)]"
#define ADMIN_JMP(src) "(<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)"
#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]"
#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]"
#define ADMIN_INDIVIDUALLOG(user) "(<a href='?_src_=holder;individuallog=\ref[user]'>LOGS</a>)"
#define ADMIN_PUNISHMENT_LIGHTNING "Lightning bolt"
#define ADMIN_PUNISHMENT_BRAINDAMAGE "Brain damage"
#define ADMIN_PUNISHMENT_GIB "Gib"
#define ADMIN_PUNISHMENT_BSA "Bluespace Artillery Device"
#define AHELP_ACTIVE 1
#define AHELP_CLOSED 2
#define AHELP_RESOLVED 3
//A set of constants used to determine which type of mute an admin wishes to apply:
//Please read and understand the muting/automuting stuff before changing these. MUTE_IC_AUTO etc = (MUTE_IC << 1)
//Therefore there needs to be a gap between the flags_1 for the automute flags_1
#define MUTE_IC 1
#define MUTE_OOC 2
#define MUTE_PRAY 4
#define MUTE_ADMINHELP 8
#define MUTE_DEADCHAT 16
#define MUTE_ALL 31
//Some constants for DB_Ban
#define BANTYPE_PERMA 1
#define BANTYPE_TEMP 2
#define BANTYPE_JOB_PERMA 3
#define BANTYPE_JOB_TEMP 4
#define BANTYPE_ANY_FULLBAN 5 //used to locate stuff to unban.
#define BANTYPE_ADMIN_PERMA 7
#define BANTYPE_ADMIN_TEMP 8
#define BANTYPE_ANY_JOB 9 //used to remove jobbans
//Please don't edit these values without speaking to Errorage first ~Carn
//Admin Permissions
#define R_BUILDMODE 1
#define R_ADMIN 2
#define R_BAN 4
#define R_FUN 8
#define R_SERVER 16
#define R_DEBUG 32
#define R_POSSESS 64
#define R_PERMISSIONS 128
#define R_STEALTH 256
#define R_POLL 512
#define R_VAREDIT 1024
#define R_SOUNDS 2048
#define R_SPAWN 4096
#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;adminmoreinfo=\ref[user]'>?</a>)"
#define ADMIN_FLW(user) "(<a href='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</a>)"
#define ADMIN_PP(user) "(<a href='?_src_=holder;adminplayeropts=\ref[user]'>PP</a>)"
#define ADMIN_VV(atom) "(<a href='?_src_=vars;Vars=\ref[atom]'>VV</a>)"
#define ADMIN_SM(user) "(<a href='?_src_=holder;subtlemessage=\ref[user]'>SM</a>)"
#define ADMIN_TP(user) "(<a href='?_src_=holder;traitor=\ref[user]'>TP</a>)"
#define ADMIN_KICK(user) "(<a href='?_src_=holder;boot2=\ref[user]'>KICK</a>)"
#define ADMIN_CENTCOM_REPLY(user) "(<a href='?_src_=holder;CentComReply=\ref[user]'>RPLY</a>)"
#define ADMIN_SYNDICATE_REPLY(user) "(<a href='?_src_=holder;SyndicateReply=\ref[user]'>RPLY</a>)"
#define ADMIN_SC(user) "(<a href='?_src_=holder;adminspawncookie=\ref[user]'>SC</a>)"
#define ADMIN_SMITE(user) "(<a href='?_src_=holder;adminsmite=\ref[user]'>SMITE</a>)"
#define ADMIN_LOOKUP(user) "[key_name_admin(user)][ADMIN_QUE(user)]"
#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]"
#define ADMIN_SET_SD_CODE "(<a href='?_src_=holder;set_selfdestruct_code=1'>SETCODE</a>)"
#define ADMIN_FULLMONTY_NONAME(user) "[ADMIN_QUE(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)] [ADMIN_INDIVIDUALLOG(user)] [ADMIN_SMITE(user)]"
#define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_FULLMONTY_NONAME(user)]"
#define ADMIN_JMP(src) "(<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)"
#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]"
#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]"
#define ADMIN_INDIVIDUALLOG(user) "(<a href='?_src_=holder;individuallog=\ref[user]'>LOGS</a>)"
#define ADMIN_PUNISHMENT_LIGHTNING "Lightning bolt"
#define ADMIN_PUNISHMENT_BRAINDAMAGE "Brain damage"
#define ADMIN_PUNISHMENT_GIB "Gib"
#define ADMIN_PUNISHMENT_BSA "Bluespace Artillery Device"
#define AHELP_ACTIVE 1
#define AHELP_CLOSED 2
#define AHELP_RESOLVED 3
//A set of constants used to determine which type of mute an admin wishes to apply:
//Please read and understand the muting/automuting stuff before changing these. MUTE_IC_AUTO etc = (MUTE_IC << 1)
//Therefore there needs to be a gap between the flags for the automute flags
#define MUTE_IC 1
#define MUTE_OOC 2
#define MUTE_PRAY 4
#define MUTE_ADMINHELP 8
#define MUTE_DEADCHAT 16
#define MUTE_ALL 31
//Some constants for DB_Ban
#define BANTYPE_PERMA 1
#define BANTYPE_TEMP 2
#define BANTYPE_JOB_PERMA 3
#define BANTYPE_JOB_TEMP 4
#define BANTYPE_ANY_FULLBAN 5 //used to locate stuff to unban.
#define BANTYPE_ADMIN_PERMA 7
#define BANTYPE_ADMIN_TEMP 8
#define BANTYPE_ANY_JOB 9 //used to remove jobbans
//Please don't edit these values without speaking to Errorage first ~Carn
//Admin Permissions
#define R_BUILDMODE 1
#define R_ADMIN 2
#define R_BAN 4
#define R_FUN 8
#define R_SERVER 16
#define R_DEBUG 32
#define R_POSSESS 64
#define R_PERMISSIONS 128
#define R_STEALTH 256
#define R_POLL 512
#define R_VAREDIT 1024
#define R_SOUNDS 2048
#define R_SPAWN 4096
#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>)"
#define ADMIN_FLW(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayerobservefollow=\ref[user]'>FLW</a>)"
#define ADMIN_PP(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayeropts=\ref[user]'>PP</a>)"
#define ADMIN_VV(atom) "(<a href='?_src_=vars;[HrefToken(TRUE)];Vars=\ref[atom]'>VV</a>)"
#define ADMIN_SM(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];subtlemessage=\ref[user]'>SM</a>)"
#define ADMIN_TP(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];traitor=\ref[user]'>TP</a>)"
#define ADMIN_KICK(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];boot2=\ref[user]'>KICK</a>)"
#define ADMIN_CENTCOM_REPLY(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];CentComReply=\ref[user]'>RPLY</a>)"
#define ADMIN_SYNDICATE_REPLY(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];SyndicateReply=\ref[user]'>RPLY</a>)"
#define ADMIN_SC(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminspawncookie=\ref[user]'>SC</a>)"
#define ADMIN_SMITE(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminsmite=\ref[user]'>SMITE</a>)"
#define ADMIN_LOOKUP(user) "[key_name_admin(user)][ADMIN_QUE(user)]"
#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]"
#define ADMIN_SET_SD_CODE "(<a href='?_src_=holder;[HrefToken(TRUE)];set_selfdestruct_code=1'>SETCODE</a>)"
#define ADMIN_FULLMONTY_NONAME(user) "[ADMIN_QUE(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)] [ADMIN_INDIVIDUALLOG(user)] [ADMIN_SMITE(user)]"
#define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_FULLMONTY_NONAME(user)]"
#define ADMIN_JMP(src) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)"
#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]"
#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]"
#define ADMIN_INDIVIDUALLOG(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];individuallog=\ref[user]'>LOGS</a>)"
#define ADMIN_PUNISHMENT_LIGHTNING "Lightning bolt"
#define ADMIN_PUNISHMENT_BRAINDAMAGE "Brain damage"
#define ADMIN_PUNISHMENT_GIB "Gib"
#define ADMIN_PUNISHMENT_BSA "Bluespace Artillery Device"
#define AHELP_ACTIVE 1
#define AHELP_CLOSED 2
#define AHELP_RESOLVED 3
+4
View File
@@ -18,3 +18,7 @@
#define ANTAG_DATUM_IAA_HUMAN_CUSTOM /datum/antagonist/traitor/human/internal_affairs/custom
#define ANTAG_DATUM_IAA_AI_CUSTOM /datum/antagonist/traitor/AI/internal_affairs/custom
#define ANTAG_DATUM_IAA_AI /datum/antagonist/traitor/AI/internal_affairs
#define ANTAG_DATUM_BROTHER /datum/antagonist/brother
#define ANTAG_DATUM_ABDUCTOR /datum/antagonist/abductor
#define ANTAG_DATUM_ABDUCTOR_SCIENTIST /datum/antagonist/abductor/scientist
#define ANTAG_DATUM_ABDUCTOR_AGENT /datum/antagonist/abductor/agent
+1
View File
@@ -41,6 +41,7 @@
#define ANTAG_HUD_SOULLESS 17
#define ANTAG_HUD_CLOCKWORK 18
#define ANTAG_HUD_BORER 19
#define ANTAG_HUD_BROTHER 20
// Notification action types
#define NOTIFY_JUMP "jump"
+11
View File
@@ -0,0 +1,11 @@
#define CINEMATIC_DEFAULT 1
#define CINEMATIC_SELFDESTRUCT 2
#define CINEMATIC_SELFDESTRUCT_MISS 3
#define CINEMATIC_NUKE_WIN 4
#define CINEMATIC_NUKE_MISS 5
#define CINEMATIC_ANNIHILATION 6
#define CINEMATIC_MALF 7
#define CINEMATIC_CULT 8
#define CINEMATIC_NUKE_FAKE 9
#define CINEMATIC_NUKE_NO_CORE 10
#define CINEMATIC_NUKE_FAR 11
+17 -29
View File
@@ -8,43 +8,31 @@
GLOBAL_VAR_INIT(clockwork_construction_value, 0) //The total value of all structures built by the clockwork cult
GLOBAL_VAR_INIT(clockwork_caches, 0) //How many clockwork caches exist in the world (not each individual)
GLOBAL_VAR_INIT(clockwork_vitality, 0) //How much Vitality is stored, total
GLOBAL_LIST_EMPTY(active_daemons) //A list of all active tinkerer's daemons
GLOBAL_VAR_INIT(clockwork_power, 0) //How many watts of power are globally available to the clockwork cult
GLOBAL_LIST_EMPTY(all_clockwork_objects) //All clockwork items, structures, and effects in existence
GLOBAL_LIST_EMPTY(all_clockwork_mobs) //All clockwork SERVANTS (not creatures) in existence
GLOBAL_LIST_INIT(clockwork_component_cache, list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0)) //The pool of components that caches draw from
GLOBAL_VAR_INIT(ratvar_approaches, 0) //The servants can choose to "herald" Ratvar, permanently buffing them but announcing their presence to the crew.
GLOBAL_VAR_INIT(ratvar_awakens, 0) //If Ratvar has been summoned; not a boolean, for proper handling of multiple Ratvars
GLOBAL_VAR_INIT(ark_of_the_clockwork_justiciar, FALSE) //The Ark on the Reebe z-level
GLOBAL_VAR_INIT(clockwork_gateway_activated, FALSE) //if a gateway to the celestial derelict has ever been successfully activated
GLOBAL_VAR_INIT(script_scripture_unlocked, FALSE) //If script scripture is available, through converting at least one crewmember
GLOBAL_VAR_INIT(application_scripture_unlocked, FALSE) //If script scripture is available
GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not used to track existing scripture
//Scripture tiers and requirements; peripherals should never be used
#define SCRIPTURE_PERIPHERAL "Peripheral"
#define SCRIPTURE_DRIVER "Driver"
#define SCRIPTURE_SCRIPT "Script"
#define SCRIPT_SERVANT_REQ 6
#define SCRIPT_CACHE_REQ 1
#define SCRIPTURE_APPLICATION "Application"
#define APPLICATION_SERVANT_REQ 9
#define APPLICATION_CACHE_REQ 3
#define APPLICATION_CV_REQ 100
#define SCRIPTURE_JUDGEMENT "Judgement"
#define JUDGEMENT_SERVANT_REQ 12
#define JUDGEMENT_CACHE_REQ 5
#define JUDGEMENT_CV_REQ 300
//general component/cooldown things
#define SLAB_PRODUCTION_TIME 450 //how long(deciseconds) slabs require to produce a single component; defaults to 45 seconds
//Various costs related to power.
#define SCRIPT_UNLOCK_THRESHOLD 50000 //Scripts will unlock if the total power reaches this amount
#define APPLICATION_UNLOCK_THRESHOLD 100000 //Applications will unlock if the total powre reaches this amount
#define SLAB_SERVANT_SLOWDOWN 150 //how much each servant above 5 slows down slab-based generation; defaults to 15 seconds per sevant
#define SLAB_SLOWDOWN_MAXIMUM 1350 //maximum slowdown from additional servants; defaults to 2 minutes 15 seconds
#define CACHE_PRODUCTION_TIME 300 //how long(deciseconds) caches require to produce a component; defaults to 30 seconds
#define ACTIVE_CACHE_SLOWDOWN 50 //how many additional deciseconds caches take to produce a component for each linked cache; defaults to 5 seconds
#define LOWER_PROB_PER_COMPONENT 10 //how much each component in the cache reduces the weight of getting another of that component type
#define MAX_COMPONENTS_BEFORE_RAND (10*LOWER_PROB_PER_COMPONENT) //the number of each component, times LOWER_PROB_PER_COMPONENT, you need to have before component generation will become random
#define ABSCOND_ABDUCTION_COST 95
//clockcult power defines
#define MIN_CLOCKCULT_POWER 25 //the minimum amount of power clockcult machines will handle gracefully
@@ -72,11 +60,11 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us
//Ark defines
#define GATEWAY_SUMMON_RATE 1 //the time amount the Gateway to the Celestial Derelict gets each process tick; defaults to 1 per tick
#define GATEWAY_REEBE_FOUND 119 //when progress is at or above this, the gateway finds reebe and begins drawing power
#define GATEWAY_REEBE_FOUND 240 //when progress is at or above this, the gateway finds reebe and begins drawing power
#define GATEWAY_RATVAR_COMING 239 //when progress is at or above this, ratvar has entered and is coming through the gateway
#define GATEWAY_RATVAR_COMING 480 //when progress is at or above this, ratvar has entered and is coming through the gateway
#define GATEWAY_RATVAR_ARRIVAL 300 //when progress is at or above this, game over ratvar's here everybody go home
#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
@@ -94,6 +82,6 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us
#define OCULAR_WARDEN_EXCLUSION_RANGE 3 //the range at which ocular wardens cannot be placed near other ocular wardens
#define RATVARIAN_SPEAR_DURATION 1800 //how long ratvarian spears last; defaults to 3 minutes
#define CLOCKWORK_ARMOR_COOLDOWN 1800 //The cooldown period between summoning suits of clockwork armor
#define PRISM_DELAY_DURATION 1200 //how long prolonging prisms delay the shuttle for; defaults to 2 minutes
#define RATVARIAN_SPEAR_COOLDOWN 300 //The cooldown period between summoning another Ratvarian spear
+4
View File
@@ -49,6 +49,7 @@
//Health Defines
#define HEALTH_THRESHOLD_CRIT 0
#define HEALTH_THRESHOLD_FULLCRIT -30
#define HEALTH_THRESHOLD_DEAD -100
//Actual combat defines
@@ -73,6 +74,9 @@
#define GRAB_NECK 2
#define GRAB_KILL 3
//slowdown when in softcrit
#define SOFTCRIT_ADD_SLOWDOWN 6
//Attack types for checking shields/hit reactions
#define MELEE_ATTACK 1
#define UNARMED_ATTACK 2
+53 -5
View File
@@ -5,14 +5,62 @@
// How multiple components of the exact same type are handled in the same datum
#define COMPONENT_DUPE_HIGHLANDER 0 //old component is deleted (default)
#define COMPONENT_DUPE_ALLOWED 1 //duplicates allowed
#define COMPONENT_DUPE_ALLOWED 1 //duplicates allowed
#define COMPONENT_DUPE_UNIQUE 2 //new component is deleted
// All signals. Format:
// When the signal is called: (signal arguments)
#define COMSIG_COMPONENT_ADDED "component_added" //when a component is added to a datum: (datum/component)
#define COMSIG_COMPONENT_REMOVING "component_removing" //before a component is removed from a datum because of RemoveComponent: (datum/component)
// /datum signals
#define COMSIG_COMPONENT_ADDED "component_added" //when a component is added to a datum: (/datum/component)
#define COMSIG_COMPONENT_REMOVING "component_removing" //before a component is removed from a datum because of RemoveComponent: (/datum/component)
#define COMSIG_PARENT_QDELETED "parent_qdeleted" //before a datum's Destroy() is called: ()
#define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (atom/movable, atom)
#define COMSIG_MOVABLE_CROSSED "movable_crossed" //from base of atom/movable/Crossed(): (atom/movable)
// /atom signals
#define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params)
#define COMSIG_ATOM_HULK_ATTACK "hulk_attack" //from base of atom/attack_hulk(): (/mob/living/carbon/human)
#define COMSIG_PARENT_EXAMINE "atom_examine" //from base of atom/examine(): (/mob)
#define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (/atom/movable, /atom)
#define COMSIG_ATOM_EX_ACT "atom_ex_act" //from base of atom/ex_act(): (severity, target)
#define COMSIG_ATOM_EMP_ACT "atom_emp_act" //from base of atom/emp_act(): (severity)
#define COMSIG_ATOM_FIRE_ACT "atom_fire_act" //from base of atom/fire_act(): (exposed_temperature, exposed_volume)
#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" //from base of atom/bullet_act(): (/obj/item/projectile, def_zone)
#define COMSIG_ATOM_BLOB_ACT "atom_blob_act" //from base of atom/blob_act(): (/obj/structure/blob)
#define COMSIG_ATOM_ACID_ACT "atom_acid_act" //from base of atom/acid_act(): (acidpwr, acid_volume)
#define COMSIG_ATOM_EMAG_ACT "atom_emag_act" //from base of atom/emag_act(): ()
#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act" //from base of atom/narsie_act(): ()
#define COMSIG_ATOM_RATVAR_ACT "atom_ratvar_act" //from base of atom/ratvar_act(): ()
#define COMSIG_ATOM_RCD_ACT "atom_rcd_act" //from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode)
#define COMSIG_ATOM_SING_PULL "atom_sing_pull" //from base of atom/singularity_pull(): (S, current_size)
#define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params)
#define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob)
#define COMSIG_CLICK_CTRL "ctrl_click" //from base of atom/CtrlClickOn(): (/mob)
#define COMSIG_CLICK_ALT "alt_click" //from base of atom/AltClick(): (/mob)
#define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click" //from base of atom/CtrlShiftClick(/mob)
// /atom/movable signals
#define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir)
#define COMSIG_MOVABLE_CROSSED "movable_crossed" //from base of atom/movable/Crossed(): (/atom/movable)
#define COMSIG_MOVABLE_COLLIDE "movable_collide" //from base of atom/movable/Collide(): (/atom)
#define COMSIG_MOVABLE_IMPACT "movable_impact" //from base of atom/movable/throw_impact(): (/atom, throwingdatum)
// /obj/item signals
#define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" //from base of obj/item/attack_self(): (/mob)
#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" //from base of obj/item/attack_obj(): (/obj, /mob)
// /obj/item/clothing signals
#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): ()
// /obj/item signals
#define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (mob/living/target, mob/living/user)
#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" //from base of obj/item/attack_self(): (mob)
#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" //from base of obj/item/attack_obj(): (obj, mob)
// /obj/item/clothing signals
#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): ()
// /obj/machinery signals
#define COMSIG_MACHINE_PROCESS "machine_process" //from machinery subsystem fire(): ()
#define COMSIG_MACHINE_PROCESS_ATMOS "machine_process_atmos" //from air subsystem process_atmos_machinery(): ()
+10
View File
@@ -0,0 +1,10 @@
//config files
#define CONFIG_DEF(X) /datum/config_entry/##X { resident_file = CURRENT_RESIDENT_FILE }; /datum/config_entry/##X
#define CONFIG_GET(X) global.config.Get(/datum/config_entry/##X)
#define CONFIG_SET(X, Y) global.config.Set(/datum/config_entry/##X, ##Y)
#define CONFIG_MAPS_FILE "maps.txt"
//flags
#define CONFIG_ENTRY_LOCKED 1 //can't edit
#define CONFIG_ENTRY_HIDDEN 2 //can't see value
+1
View File
@@ -101,6 +101,7 @@
#define CAT_ROBOT "Robots"
#define CAT_MISC "Misc"
#define CAT_PRIMAL "Tribal"
#define CAT_CLOTHING "Clothing"
#define CAT_FOOD "Foods"
#define CAT_BREAD "Breads"
#define CAT_BURGER "Burgers"
+3
View File
@@ -53,6 +53,9 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
// TESLA_IGNORE grants immunity from being targeted by tesla-style electricity
#define TESLA_IGNORE_2 512
// Stops you from putting things like an RCD or other items into an ORM or protolathe for materials.
#define NO_MAT_REDEMPTION_2 1024
//turf-only flags
#define NOJAUNT_1 1
#define UNUSED_TRANSIT_TURF_1 2
+18
View File
@@ -1,5 +1,7 @@
// simple is_type and similar inline helpers
#define isdatum(D) (istype(D, /datum))
#define islist(L) (istype(L, /list))
#define in_range(source, user) (get_dist(source, user) <= 1)
@@ -7,6 +9,8 @@
#define ismovableatom(A) (istype(A, /atom/movable))
//Turfs
//#define isturf(A) (istype(A, /turf)) This is actually a byond built-in. Added here for completeness sake.
#define isopenturf(A) (istype(A, /turf/open))
#define isindestructiblefloor(A) (istype(A, /turf/open/indestructible))
@@ -25,6 +29,8 @@
#define islava(A) (istype(A, /turf/open/lava))
#define isplatingturf(A) (istype(A, /turf/open/floor/plating))
//Mobs
#define isliving(A) (istype(A, /mob/living))
@@ -132,6 +138,10 @@
#define isitem(A) (istype(A, /obj/item))
#define isstructure(A) (istype(A, /obj/structure))
#define ismecha(A) (istype(A, /obj/mecha))
#define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable
#define isorgan(A) (istype(A, /obj/item/organ))
@@ -158,3 +168,11 @@ GLOBAL_LIST_INIT(pointed_types, typecacheof(list(
#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,
/obj/item/stack/sheet/plasmaglass,
/obj/item/stack/sheet/plasmarglass)))
#define is_glass_sheet(O) (is_type_in_typecache(O, GLOB.glass_sheet_types))
+3
View File
@@ -7,11 +7,14 @@
#define PLANE_SPACE_PARALLAX -90
#define GAME_PLANE 0
#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
#define ABOVE_OPEN_TURF_LAYER 2.04
#define CLOSED_TURF_LAYER 2.05
#define BULLET_HOLE_LAYER 2.06
#define ABOVE_NORMAL_TURF_LAYER 2.08
#define LATTICE_LAYER 2.2
#define DISPOSAL_PIPE_LAYER 2.3
+2
View File
@@ -70,6 +70,8 @@
#define LIGHT_COLOR_TUNGSTEN "#FAE1AF" //Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175)
#define LIGHT_COLOR_HALOGEN "#F0FAFA" //Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
#define LIGHT_RANGE_FIRE 3 //How many tiles standard fires glow.
#define LIGHTING_PLANE_ALPHA_VISIBLE 255
#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.
+5 -2
View File
@@ -3,10 +3,11 @@ The /tg/ codebase currently requires you to have 11 z-levels of the same size di
z-level order is important, the order you put them in inside the map config.dm will determine what z level number they are assigned ingame.
Names of z-level do not matter, but order does greatly, for instances such as checking alive status of revheads on z1
current as of 2016/6/2
current as of september 17, 2017
z1 = station
z2 = centcom
z5 = mining
z6 = city of cogs
Everything else = randomized space
Last space-z level = empty
*/
@@ -17,6 +18,7 @@ Last space-z level = empty
#define MAIN_STATION "Main Station"
#define CENTCOM "CentCom"
#define CITY_OF_COGS "City of Cogs"
#define EMPTY_AREA_1 "Empty Area 1"
#define EMPTY_AREA_2 "Empty Area 2"
#define MINING "Mining Asteroid"
@@ -35,9 +37,10 @@ Last space-z level = empty
//zlevel defines, can be overridden for different maps in the appropriate _maps file.
#define ZLEVEL_CENTCOM 1
#define ZLEVEL_STATION 2
#define ZLEVEL_STATION_PRIMARY 2
#define ZLEVEL_MINING 5
#define ZLEVEL_LAVALAND 5
#define ZLEVEL_CITYOFCOGS 6
#define ZLEVEL_EMPTY_SPACE 12
#define ZLEVEL_TRANSIT 11
+14 -7
View File
@@ -361,7 +361,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define debug_admins(msg) if (GLOB.Debug2) to_chat(GLOB.admins, "DEBUG: [msg]")
#define debug_world_log(msg) if (GLOB.Debug2) log_world("DEBUG: [msg]")
#define COORD(A) "([A.x],[A.y],[A.z])"
#define INCREMENT_TALLY(L, stat) if(L[stat]){L[stat]++}else{L[stat] = 1}
// Medal names
@@ -399,8 +398,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define NUKE_SYNDICATE_BASE 3
#define STATION_DESTROYED_NUKE 4
#define STATION_EVACUATED 5
#define GANG_LOSS 6
#define GANG_TAKEOVER 7
#define BLOB_WIN 8
#define BLOB_NUKE 9
#define BLOB_DESTROYED 10
@@ -437,10 +434,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define GIBTONITE_DETONATE 3
//for obj explosion block calculation
#define EXPLOSION_BLOCK_PROC -1
//Gangster starting influences
#define GANGSTER_SOLDIER_STARTING_INFLUENCE 5
#define GANGSTER_BOSS_STARTING_INFLUENCE 20
//for determining which type of heartbeat sound is playing
#define BEAT_FAST 1
@@ -453,3 +446,17 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define MOUSE_OPACITY_TRANSPARENT 0
#define MOUSE_OPACITY_ICON 1
#define MOUSE_OPACITY_OPAQUE 2
//world/proc/shelleo
#define SHELLEO_ERRORLEVEL 1
#define SHELLEO_STDOUT 2
#define SHELLEO_STDERR 3
//server security mode
#define SECURITY_SAFE 1
#define SECURITY_ULTRASAFE 2
#define SECURITY_TRUSTED 3
//Dummy mob reserve slots
#define DUMMY_HUMAN_SLOT_PREFERENCES "dummy_preference_preview"
#define DUMMY_HUMAN_SLOT_MANIFEST "dummy_manifest_generation"
+2
View File
@@ -154,3 +154,5 @@
#define JUDGE_IGNOREMONKEYS 16
#define MEGAFAUNA_DEFAULT_RECOVERY_TIME 5
#define SHADOW_SPECIES_LIGHT_THRESHOLD 0.2
-3
View File
@@ -2,6 +2,3 @@
#define TRACK_NUKE_DISK 1 //We track the nuclear authentication disk, either to protect it or steal it
#define TRACK_MALF_AI 2 //We track the malfunctioning AI, so we can prevent it from blowing us all up
#define TRACK_INFILTRATOR 3 //We track the Syndicate infiltrator, so we can get back to ship when the nuke's armed
#define TRACK_OPERATIVES 4 //We track the closest operative, so we can regroup when we need to
#define TRACK_ATOM 5 //We track a specified atom, so admins can make us function for events
#define TRACK_COORDINATES 6 //We point towards the specified coordinates on our z-level, so we can navigate
+2 -1
View File
@@ -12,6 +12,7 @@ Construction breaks otherwise
#define PIPE_HE_MANIFOLD /obj/machinery/atmospherics/pipe/heat_exchanging/manifold
#define PIPE_HE_4WAYMANIFOLD /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w
#define PIPE_JUNCTION /obj/machinery/atmospherics/pipe/heat_exchanging/junction
#define PIPE_BLUESPACE /obj/machinery/atmospherics/pipe/bluespace
//Unary
#define PIPE_CONNECTOR /obj/machinery/atmospherics/components/unary/portables_connector
#define PIPE_UVENT /obj/machinery/atmospherics/components/unary/vent_pump
@@ -56,4 +57,4 @@ Construction breaks otherwise
#define STATION_TUBE_OPEN 0
#define STATION_TUBE_OPENING 1
#define STATION_TUBE_CLOSED 2
#define STATION_TUBE_CLOSING 3
#define STATION_TUBE_CLOSING 3
+5
View File
@@ -10,6 +10,11 @@
//if TESTING is enabled, qdel will call this object's find_references() verb.
//defines for the gc_destroyed var
#define GC_QUEUE_PREQUEUE 1
#define GC_QUEUE_CHECK 2
#define GC_QUEUE_HARDDELETE 3
#define GC_QUEUE_COUNT 3 //increase this when adding more steps.
#define GC_QUEUED_FOR_QUEUING -1
#define GC_QUEUED_FOR_HARD_DEL -2
#define GC_CURRENTLY_BEING_QDELETED -3
+3 -3
View File
@@ -18,18 +18,19 @@
#define ROLE_BLOB "blob"
#define ROLE_NINJA "space ninja"
#define ROLE_MONKEY "monkey"
#define ROLE_GANG "gangster"
#define ROLE_ABDUCTOR "abductor"
#define ROLE_REVENANT "revenant"
#define ROLE_DEVIL "devil"
#define ROLE_SERVANT_OF_RATVAR "servant of Ratvar"
#define ROLE_BORER "borer"
#define ROLE_BROTHER "blood brother"
//Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR.
//The gamemode specific ones are just so the gamemodes can query whether a player is old enough
//(in game days played) to play that role
GLOBAL_LIST_INIT(special_roles, list(
ROLE_TRAITOR = /datum/game_mode/traitor,
ROLE_BROTHER = /datum/game_mode/traitor/bros,
ROLE_OPERATIVE = /datum/game_mode/nuclear,
ROLE_CHANGELING = /datum/game_mode/changeling,
ROLE_WIZARD = /datum/game_mode/wizard,
@@ -41,7 +42,6 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_BLOB = /datum/game_mode/blob,
ROLE_NINJA,
ROLE_MONKEY = /datum/game_mode/monkey,
ROLE_GANG = /datum/game_mode/gang,
ROLE_REVENANT,
ROLE_ABDUCTOR = /datum/game_mode/abduction,
ROLE_DEVIL = /datum/game_mode/devil,
@@ -52,4 +52,4 @@ GLOBAL_LIST_INIT(special_roles, list(
//Job defines for what happens when you fail to qualify for any job during job selection
#define BEASSISTANT 1
#define BERANDOMJOB 2
#define RETURNTOLOBBY 3
#define RETURNTOLOBBY 3
+108 -14
View File
@@ -1,32 +1,126 @@
// /tg/station 13 server tools API v3.1.0.1
//CONFIGURATION
//use this define if you want to do configuration outside of this file
#ifndef SERVER_TOOLS_EXTERNAL_CONFIGURATION
//Comment this out once you've filled in the below
//#error /tg/station server tools interface unconfigured
//Required interfaces (fill in with your codebase equivalent):
//create a global variable named `Name` and set it to `Value`
//These globals must not be modifiable from anywhere outside of the server tools
#define SERVER_TOOLS_DEFINE_AND_SET_GLOBAL(Name, Value) GLOBAL_VAR_INIT(##Name, ##Value); GLOBAL_PROTECT(##Name)
//Read the value in the global variable `Name`
#define SERVER_TOOLS_READ_GLOBAL(Name) GLOB.##Name
//Set the value in the global variable `Name` to `Value`
#define SERVER_TOOLS_WRITE_GLOBAL(Name, Value) GLOB.##Name = ##Value
//display an announcement `message` from the server to all players
#define SERVER_TOOLS_WORLD_ANNOUNCE(message) to_chat(world, "<span class='boldannounce'>[html_encode(##message)]</span>")
//Write a string `message` to a server log
#define SERVER_TOOLS_LOG(message) log_world("SERVICE: [##message]")
//Notify current in-game administrators of a string `event`
#define SERVER_TOOLS_NOTIFY_ADMINS(event) message_admins(##event)
//The current amount of connected clients
#define SERVER_TOOLS_CLIENT_COUNT GLOB.clients.len
#endif
//Required hooks:
//Put this somewhere in /world/New() that is always run
#define SERVER_TOOLS_ON_NEW ServiceInit()
//Put this somewhere in /world/Topic(T, Addr, Master, Keys) that is always run before T is modified
#define SERVER_TOOLS_ON_TOPIC var/service_topic_return = ServiceCommand(params2list(T)); if(service_topic_return) return service_topic_return
//Put at the beginning of world/Reboot(reason)
#define SERVER_TOOLS_ON_REBOOT ServiceReboot()
//Optional callable functions:
//Returns the string version of the API
#define SERVER_TOOLS_API_VERSION ServiceAPIVersion()
//Returns TRUE if the world was launched under the server tools and the API matches, FALSE otherwise
//No function below this succeed if this is FALSE
#define SERVER_TOOLS_PRESENT RunningService()
//Gets the current version of the service running the server
#define SERVER_TOOLS_VERSION ServiceVersion()
//Forces a hard reboot of BYOND by ending the process
//unlike del(world) clients will try to reconnect
//If the service has not requested a shutdown, the world will reboot shortly after
#define SERVER_TOOLS_REBOOT_BYOND world.ServiceEndProcess()
/*
Gets the list of any testmerged github pull requests
"[PR Number]" => list(
"title" -> PR title
"commit" -> Full hash of commit merged
"author" -> Github username of the author of the PR
)
*/
#define SERVER_TOOLS_PR_LIST GetTestMerges()
//Sends a message to connected game chats
#define SERVER_TOOLS_CHAT_BROADCAST(message) world.ChatBroadcast(message)
//Sends a message to connected admin chats
#define SERVER_TOOLS_RELAY_BROADCAST(message) world.AdminBroadcast(message)
//IMPLEMENTATION
#define SERVICE_API_VERSION_STRING "3.1.0.1"
#define REBOOT_MODE_NORMAL 0
#define REBOOT_MODE_HARD 1
#define REBOOT_MODE_SHUTDOWN 2
#define IRC_STATUS_THROTTLE 5
#define PR_ANNOUNCEMENTS_PER_ROUND 5 //The number of unique PR announcements allowed per round
//This makes sure that a single person can only spam 3 reopens and 3 closes before being ignored
//keep these in sync with TGS3
#define SERVICE_WORLD_PARAM "server_service"
#define SERVICE_PR_TEST_JSON "..\\..\\prtestjob.json"
#define SERVICE_VERSION_PARAM "server_service_version"
#define SERVICE_PR_TEST_JSON "prtestjob.json"
#define SERVICE_INTERFACE_DLL "TGServiceInterface.dll"
#define SERVICE_INTERFACE_FUNCTION "DDEntryPoint"
#define SERVICE_CMD_HARD_REBOOT "hard_reboot"
#define SERVICE_CMD_GRACEFUL_SHUTDOWN "graceful_shutdown"
#define SERVICE_CMD_WORLD_ANNOUNCE "world_announce"
#define SERVICE_CMD_IRC_CHECK "irc_check"
#define SERVICE_CMD_IRC_STATUS "irc_status"
#define SERVICE_CMD_ADMIN_MSG "adminmsg"
#define SERVICE_CMD_NAME_CHECK "namecheck"
#define SERVICE_CMD_ADMIN_WHO "adminwho"
#define SERVICE_CMD_LIST_CUSTOM "list_custom_commands"
#define SERVICE_CMD_API_COMPATIBLE "api_compat"
#define SERVICE_CMD_PLAYER_COUNT "client_count"
#define SERVICE_CMD_PARAM_KEY "serviceCommsKey"
#define SERVICE_CMD_PARAM_COMMAND "command"
#define SERVICE_CMD_PARAM_MESSAGE "message"
#define SERVICE_CMD_PARAM_TARGET "target"
#define SERVICE_CMD_PARAM_SENDER "sender"
#define SERVICE_CMD_PARAM_CUSTOM "custom"
#define SERVICE_JSON_PARAM_HELPTEXT "help_text"
#define SERVICE_JSON_PARAM_ADMINONLY "admin_only"
#define SERVICE_JSON_PARAM_REQUIREDPARAMETERS "required_parameters"
#define SERVICE_REQUEST_KILL_PROCESS "killme"
#define SERVICE_REQUEST_IRC_BROADCAST "irc"
#define SERVICE_REQUEST_IRC_ADMIN_CHANNEL_MESSAGE "send2irc"
#define SERVICE_REQUEST_WORLD_REBOOT "worldreboot"
#define SERVICE_REQUEST_API_VERSION "api_ver"
/*
The MIT License
Copyright (c) 2011 Dominic Tarr
Permission is hereby granted, free of charge,
to any person obtaining a copy of this software and
associated documentation files (the "Software"), to
deal in the Software without restriction, including
without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom
the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
+5 -5
View File
@@ -4,8 +4,9 @@
//mob/var/stat things
#define CONSCIOUS 0
#define UNCONSCIOUS 1
#define DEAD 2
#define SOFT_CRIT 1
#define UNCONSCIOUS 2
#define DEAD 3
//mob disabilities stat
@@ -21,9 +22,8 @@
// bitflags for machine stat variable
#define BROKEN 1
#define NOPOWER 2
#define POWEROFF 4 // tbd
#define MAINT 8 // under maintaince
#define EMPED 16 // temporary broken by EMP pulse
#define MAINT 4 // under maintaince
#define EMPED 8 // temporary broken by EMP pulse
//ai power requirement defines
#define POWER_REQ_NONE 0
+2
View File
@@ -62,6 +62,8 @@
#define CURSE_WASTING 4 //causes gradual damage
#define CURSE_GRASPING 8 //hands reach out from the sides of the screen, doing damage and stunning if they hit the target
#define STATUS_EFFECT_KINDLE /datum/status_effect/kindle //A knockdown reduced by 1 second for every 3 points of damage the target takes.
/////////////
// NEUTRAL //
/////////////
+1 -1
View File
@@ -56,7 +56,6 @@
#define INIT_ORDER_TIMER 1
#define INIT_ORDER_DEFAULT 0
#define INIT_ORDER_AIR -1
#define INIT_ORDER_SHUTTLE -2
#define INIT_ORDER_MINIMAP -3
#define INIT_ORDER_ASSETS -4
#define INIT_ORDER_ICON_SMOOTHING -5
@@ -64,6 +63,7 @@
#define INIT_ORDER_XKEYSCORE -10
#define INIT_ORDER_STICKY_BAN -10
#define INIT_ORDER_LIGHTING -20
#define INIT_ORDER_SHUTTLE -21
#define INIT_ORDER_SQUEAK -40
#define INIT_ORDER_PERSISTENCE -100
+8
View File
@@ -13,3 +13,11 @@ When using time2text(), please use "DDD" to find the weekday. Refrain from using
#define FRIDAY "Fri"
#define SATURDAY "Sat"
#define SUNDAY "Sun"
#define SECONDS *10
#define MINUTES SECONDS*60
#define HOURS MINUTES*60
#define TICKS *world.tick_lag
+1
View File
@@ -3,6 +3,7 @@
#define DM_DIGEST "Digest"
#define DM_HEAL "Heal"
#define DM_NOISY "Noisy"
#define DM_DRAGON "Dragon"
#define VORE_STRUGGLE_EMOTE_CHANCE 40
+17 -1
View File
@@ -205,6 +205,22 @@
return null
/proc/pickweightAllowZero(list/L) //The original pickweight proc will sometimes pick entries with zero weight. I'm not sure if changing the original will break anything, so I left it be.
var/total = 0
var/item
for (item in L)
if (!L[item])
L[item] = 0
total += L[item]
total = rand(0, total)
for (item in L)
total -=L [item]
if (total <= 0 && L[item])
return item
return null
//Pick a random element from the list and remove it from the list.
/proc/pick_n_take(list/L)
if(L.len)
@@ -458,7 +474,7 @@
#error Remie said that lummox was adding a way to get a lists
#error contents via list.values, if that is true remove this
#error otherwise, update the version and bug lummox
#elseif
#endif
//Flattens a keyed list into a list of it's contents
/proc/flatten_list(list/key_list)
if(!islist(key_list))
+25 -18
View File
@@ -26,79 +26,86 @@
/proc/log_admin(text)
GLOB.admin_log.Add(text)
if (config.log_admin)
if (CONFIG_GET(flag/log_admin))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]ADMIN: [text]")
//Items using this proc are stripped from public logs - use with caution
/proc/log_admin_private(text)
GLOB.admin_log.Add(text)
if (config.log_admin)
if (CONFIG_GET(flag/log_admin))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]ADMINPRIVATE: [text]")
/proc/log_adminsay(text)
if (config.log_adminchat)
if (CONFIG_GET(flag/log_adminchat))
log_admin_private("ASAY: [text]")
/proc/log_dsay(text)
if (config.log_adminchat)
if (CONFIG_GET(flag/log_adminchat))
log_admin("DSAY: [text]")
/proc/log_game(text)
if (config.log_game)
if (CONFIG_GET(flag/log_game))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]GAME: [text]")
/proc/log_vote(text)
if (config.log_vote)
if (CONFIG_GET(flag/log_vote))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]VOTE: [text]")
/proc/log_access(text)
if (config.log_access)
if (CONFIG_GET(flag/log_access))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]ACCESS: [text]")
/proc/log_say(text)
if (config.log_say)
if (CONFIG_GET(flag/log_say))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]SAY: [text]")
/proc/log_prayer(text)
if (config.log_prayer)
if (CONFIG_GET(flag/log_prayer))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]PRAY: [text]")
/proc/log_law(text)
if (config.log_law)
if (CONFIG_GET(flag/log_law))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]LAW: [text]")
/proc/log_ooc(text)
if (config.log_ooc)
if (CONFIG_GET(flag/log_ooc))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]OOC: [text]")
/proc/log_whisper(text)
if (config.log_whisper)
if (CONFIG_GET(flag/log_whisper))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]WHISPER: [text]")
/proc/log_emote(text)
if (config.log_emote)
if (CONFIG_GET(flag/log_emote))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]EMOTE: [text]")
/proc/log_attack(text)
if (config.log_attack)
if (CONFIG_GET(flag/log_attack))
WRITE_FILE(GLOB.world_attack_log, "\[[time_stamp()]]ATTACK: [text]")
/proc/log_pda(text)
if (config.log_pda)
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]PDA: [text]")
if (CONFIG_GET(flag/log_pda))
WRITE_FILE(GLOB.world_pda_log, "\[[time_stamp()]]PDA: [text]")
/proc/log_comment(text)
if (config.log_pda)
if (CONFIG_GET(flag/log_pda))
//reusing the PDA option because I really don't think news comments are worth a config option
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]COMMENT: [text]")
/proc/log_chat(text)
if (config.log_pda)
if (CONFIG_GET(flag/log_pda))
WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]CHAT: [text]")
/proc/log_qdel(text)
WRITE_FILE(GLOB.world_qdel_log, "\[[time_stamp()]]QDEL: [text]")
/proc/log_sql(text)
WRITE_FILE(GLOB.sql_error_log, "\[[time_stamp()]]SQL: [text]")
/proc/log_config(text)
WRITE_FILE(GLOB.config_error_log, text)
SEND_TEXT(world.log, text)
//This replaces world.log so it displays both in DD and the file
/proc/log_world(text)
WRITE_FILE(GLOB.world_runtime_log, text)
+9
View File
@@ -49,3 +49,12 @@ GLOBAL_VAR_INIT(cmp_field, "name")
/proc/cmp_ruincost_priority(datum/map_template/ruin/A, datum/map_template/ruin/B)
return initial(A.cost) - initial(B.cost)
/proc/cmp_qdel_item_time(datum/qdel_item/A, datum/qdel_item/B)
. = B.hard_delete_time - A.hard_delete_time
if (!.)
. = B.destroy_time - A.destroy_time
if (!.)
. = B.failures - A.failures
if (!.)
. = B.qdels - A.qdels
+1 -1
View File
@@ -43,7 +43,7 @@
/client/proc/file_spam_check()
var/time_to_wait = GLOB.fileaccess_timer - world.time
if(time_to_wait > 0)
to_chat(src, "<font color='red'>Error: file_spam_check(): Spam. Please wait [round(time_to_wait/10)] seconds.</font>")
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
return 0
+22 -7
View File
@@ -9,10 +9,10 @@
#define CULT_POLL_WAIT 2400
/proc/get_area(atom/A)
if (!istype(A))
return
for(A, A && !isarea(A), A=A.loc); //semicolon is for the empty statement
return A
if(isarea(A))
return A
var/turf/T = get_turf(A)
return T ? T.loc : null
/proc/get_area_name(atom/X)
var/area/Y = get_area(X)
@@ -314,10 +314,11 @@
// Will return a list of active candidates. It increases the buffer 5 times until it finds a candidate which is active within the buffer.
/proc/get_candidates(be_special_type, afk_bracket = config.inactivity_period, jobbanType)
/proc/get_candidates(be_special_type, afk_bracket = CONFIG_GET(number/inactivity_period), jobbanType)
var/list/candidates = list()
// Keep looping until we find a non-afk candidate within the time bracket (we limit the bracket to 10 minutes (6000))
while(!candidates.len && afk_bracket < config.afk_period)
var/afk_period = CONFIG_GET(number/afk_period)
while(!candidates.len && afk_bracket < afk_period)
for(var/mob/dead/observer/G in GLOB.player_list)
if(G.client != null)
if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD))
@@ -330,6 +331,20 @@
afk_bracket += 600 // Add a minute to the bracket, for every attempt
return candidates
/proc/considered_alive(datum/mind/M, enforce_human = TRUE)
if(M && M.current)
if(enforce_human)
var/mob/living/carbon/human/H
if(ishuman(M.current))
H = M.current
return M.current.stat != DEAD && !issilicon(M.current) && !isbrain(M.current) && (!H || H.dna.species.id != "memezombies")
else if(isliving(M.current))
return M.current.stat != DEAD
return FALSE
/proc/considered_afk(datum/mind/M)
return !M || !M.current || !M.current.client || M.current.client.is_afk()
/proc/ScreenText(obj/O, maptext="", screen_loc="CENTER-7,CENTER-7", maptext_height=480, maptext_width=480)
if(!isobj(O))
O = new /obj/screen/text()
@@ -421,7 +436,7 @@
SEND_SOUND(M, 'sound/misc/notice2.ogg') //Alerting them to their consideration
if(flashwindow)
window_flash(M.client)
switch(ignore_category ? askuser(M,Question,"Please answer in [poll_time/10] seconds!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(M,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time))
switch(ignore_category ? askuser(M,Question,"Please answer in [DisplayTimeText(poll_time)]!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(M,Question,"Please answer in [DisplayTimeText(poll_time)]!","Yes","No", StealFocus=0, Timeout=poll_time))
if(1)
to_chat(M, "<span class='notice'>Choice registered: Yes.</span>")
if(time_passed + poll_time <= world.time)
+115 -116
View File
@@ -1,116 +1,115 @@
//////////////////////////
/////Initial Building/////
//////////////////////////
/proc/make_datum_references_lists()
//hair
init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, GLOB.hair_styles_list, GLOB.hair_styles_male_list, GLOB.hair_styles_female_list)
//facial hair
init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, GLOB.facial_hair_styles_list, GLOB.facial_hair_styles_male_list, GLOB.facial_hair_styles_female_list)
//underwear
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f)
//undershirt
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)
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)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, GLOB.animated_tails_list_human)
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/horns,GLOB.horns_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.ears_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, GLOB.wings_open_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, GLOB.frills_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, GLOB.spines_list)
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)
//citadel code
//mammal bodyparts (fucking furries)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, GLOB.mam_ears_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails_animated, GLOB.mam_tails_animated_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/taur, GLOB.taur_list)
//avian bodyparts (i swear this isn't starbound)
// init_sprite_accessory_subtypes(/datum/sprite_accessory/beaks/avian, GLOB.avian_beaks_list)
// init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/avian, GLOB.avian_tails_list)
// init_sprite_accessory_subtypes(/datum/sprite_accessory/avian_wings, GLOB.avian_wings_list)
// init_sprite_accessory_subtypes(/datum/sprite_accessory/avian_open_wings, GLOB.avian_open_wings_list)
//xeno parts (hiss?)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_head, GLOB.xeno_head_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_tail, GLOB.xeno_tail_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, GLOB.xeno_dorsal_list)
//genitals
init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list)
for(var/K in GLOB.cock_shapes_list)
var/datum/sprite_accessory/penis/value = GLOB.cock_shapes_list[K]
GLOB.cock_shapes_icons[K] = value.icon_state
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
//Species
for(var/spath in subtypesof(/datum/species))
var/datum/species/S = new spath()
if(S.roundstart)
GLOB.roundstart_species[S.id] = S.type
GLOB.species_list[S.id] = S.type
//Surgeries
for(var/path in subtypesof(/datum/surgery))
GLOB.surgeries_list += new path()
//Materials
for(var/path in subtypesof(/datum/material))
var/datum/material/D = new path()
GLOB.materials_list[D.id] = D
//Techs
for(var/path in subtypesof(/datum/tech))
var/datum/tech/D = new path()
GLOB.tech_list[D.id] = D
//Emotes
for(var/path in subtypesof(/datum/emote))
var/datum/emote/E = new path()
E.emote_list[E.key] = E
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
/* // Uncomment to debug chemical reaction list.
/client/verb/debug_chemical_list()
for (var/reaction in chemical_reactions_list)
. += "chemical_reactions_list\[\"[reaction]\"\] = \"[chemical_reactions_list[reaction]]\"\n"
if(islist(chemical_reactions_list[reaction]))
var/list/L = chemical_reactions_list[reaction]
for(var/t in L)
. += " has: [t]\n"
to_chat(world, .)
*/
//creates every subtype of prototype (excluding prototype) and adds it to list L.
//if no list/L is provided, one is created.
/proc/init_subtypes(prototype, list/L)
if(!istype(L))
L = list()
for(var/path in subtypesof(prototype))
L += new path()
return L
//returns a list of paths to every subtype of prototype (excluding prototype)
//if no list/L is provided, one is created.
/proc/init_paths(prototype, list/L)
if(!istype(L))
L = list()
for(var/path in subtypesof(prototype))
L+= path
return L
//////////////////////////
/////Initial Building/////
//////////////////////////
/proc/make_datum_references_lists()
//hair
init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, GLOB.hair_styles_list, GLOB.hair_styles_male_list, GLOB.hair_styles_female_list)
//facial hair
init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, GLOB.facial_hair_styles_list, GLOB.facial_hair_styles_male_list, GLOB.facial_hair_styles_female_list)
//underwear
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f)
//undershirt
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)
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)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, GLOB.animated_tails_list_human)
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/horns,GLOB.horns_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.ears_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, GLOB.wings_open_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, GLOB.frills_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, GLOB.spines_list)
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)
//citadel code
//mammal bodyparts (fucking furries)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, GLOB.mam_ears_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails_animated, GLOB.mam_tails_animated_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/taur, GLOB.taur_list)
//avian bodyparts (i swear this isn't starbound)
// init_sprite_accessory_subtypes(/datum/sprite_accessory/beaks/avian, GLOB.avian_beaks_list)
// init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/avian, GLOB.avian_tails_list)
// init_sprite_accessory_subtypes(/datum/sprite_accessory/avian_wings, GLOB.avian_wings_list)
// init_sprite_accessory_subtypes(/datum/sprite_accessory/avian_open_wings, GLOB.avian_open_wings_list)
//xeno parts (hiss?)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_head, GLOB.xeno_head_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_tail, GLOB.xeno_tail_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, GLOB.xeno_dorsal_list)
//genitals
init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list)
for(var/K in GLOB.cock_shapes_list)
var/datum/sprite_accessory/penis/value = GLOB.cock_shapes_list[K]
GLOB.cock_shapes_icons[K] = value.icon_state
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
//Species
for(var/spath in subtypesof(/datum/species))
var/datum/species/S = new spath()
GLOB.species_list[S.id] = spath
//Surgeries
for(var/path in subtypesof(/datum/surgery))
GLOB.surgeries_list += new path()
//Materials
for(var/path in subtypesof(/datum/material))
var/datum/material/D = new path()
GLOB.materials_list[D.id] = D
//Techs
for(var/path in subtypesof(/datum/tech))
var/datum/tech/D = new path()
GLOB.tech_list[D.id] = D
//Emotes
for(var/path in subtypesof(/datum/emote))
var/datum/emote/E = new path()
E.emote_list[E.key] = E
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
/* // Uncomment to debug chemical reaction list.
/client/verb/debug_chemical_list()
for (var/reaction in chemical_reactions_list)
. += "chemical_reactions_list\[\"[reaction]\"\] = \"[chemical_reactions_list[reaction]]\"\n"
if(islist(chemical_reactions_list[reaction]))
var/list/L = chemical_reactions_list[reaction]
for(var/t in L)
. += " has: [t]\n"
to_chat(world, .)
*/
//creates every subtype of prototype (excluding prototype) and adds it to list L.
//if no list/L is provided, one is created.
/proc/init_subtypes(prototype, list/L)
if(!istype(L))
L = list()
for(var/path in subtypesof(prototype))
L += new path()
return L
//returns a list of paths to every subtype of prototype (excluding prototype)
//if no list/L is provided, one is created.
/proc/init_paths(prototype, list/L)
if(!istype(L))
L = list()
for(var/path in subtypesof(prototype))
L+= path
return L

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