Merge remote-tracking branch 'refs/remotes/Citadel-Station-13/master' into theprthatbulliesjanitormains

This commit is contained in:
deathride58
2018-01-08 15:44:05 -05:00
1399 changed files with 34557 additions and 43776 deletions
+4 -2
View File
@@ -51,7 +51,7 @@ As mentioned before, you are expected to follow these specifications in order to
### Object Oriented Code
As BYOND's Dream Maker (henceforth "DM") is an object-oriented language, code must be object-oriented when possible in order to be more flexible when adding content to it. If you don't know what "object-oriented" means, we highly recommend you do some light research to grasp the basics.
### All BYOND paths must contain the full path.
### All BYOND paths must contain the full path
(i.e. absolute pathing)
DM will allow you nest almost any type keyword into a block, such as:
@@ -105,7 +105,7 @@ The previous code made compliant:
code
```
### No overriding type safety checks.
### No overriding type safety checks
The use of the : operator to override type safety checks is not allowed. You must cast the variable to the proper type.
### Type paths must begin with a /
@@ -264,6 +264,8 @@ This prevents nesting levels from getting deeper then they need to be.
* If you used regex to replace code during development of your code, post the regex in your PR for the benefit of future developers and downstream users.
* Changes to the `/config` tree must be made in a way that allows for updating server deployments while preserving previous behaviour. This is due to the fact that the config tree is to be considered owned by the user and not necessarily updated alongside the remainder of the code. The code to preserve previous behaviour may be removed at some point in the future given the OK by maintainers.
#### Enforced not enforced
The following coding styles are not only not enforced at all, but are generally frowned upon to change for little to no reason:
+1 -1
View File
@@ -37,7 +37,7 @@ 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
BYOND installed. You can get it from https://www.byond.com/download. 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
+1 -1
View File
@@ -383,4 +383,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;
+1 -1
View File
@@ -226,4 +226,4 @@ ALTER TABLE `poll_vote`
, ADD INDEX `idx_pvote_optionid_ckey` (`optionid` ASC, `ckey` ASC);
ALTER TABLE `poll_textreply`
ADD INDEX `idx_ptext_pollid_ckey` (`pollid` ASC, `ckey` ASC);
ADD INDEX `idx_ptext_pollid_ckey` (`pollid` ASC, `ckey` ASC);
+1 -1
View File
@@ -432,4 +432,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 */;
+1 -1
View File
@@ -432,4 +432,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 */;
@@ -229,7 +229,7 @@
/area/ruin/powered/beach)
"aV" = (
/obj/effect/mob_spawn/human/beach/alive{
flavour_text = "You're, like, totally a dudebro, bruh. Ch'yea. You came here, like, on spring break, hopin' to pick up some bangin' hot chicks, y'knaw?";
flavour_text = "<span class='big bold'>You're, like, totally a dudebro, bruh.</span><b> Ch'yea. You came here, like, on spring break, hopin' to pick up some bangin' hot chicks, y'knaw?</b>";
l_pocket = /obj/item/reagent_containers/food/snacks/pizzaslice/dank;
uniform = /obj/item/clothing/under/pants/youngfolksjeans
},
@@ -349,7 +349,7 @@
dir = 4
},
/obj/effect/mob_spawn/human/beach/alive{
flavour_text = "You're a spunky lifeguard! It's up to you to make sure nobody drowns or gets eaten by sharks and stuff.";
flavour_text = "<span class='big bold'>You're a spunky lifeguard!</span><b> It's up to you to make sure nobody drowns or gets eaten by sharks and stuff.</b>";
id = /obj/item/card/id;
id_access = "Medical Doctor";
id_job = "Lifeguard";
@@ -544,7 +544,7 @@
"bN" = (
/obj/effect/mob_spawn/cow{
dir = 4;
flavour_text = "<font size=3><b>Y</b></font><b>ou're a cow. You've lived a pampered life as a prized show heifer, a real blue-ribbon winner. After showing signs of a minor respiratory infection, your master took you to the hospital right away. He'd better come back soon. You're getting quite impatient.</b>";
flavour_text = "<span class='big bold'>You're a cow.</span><b> You've lived a pampered life as a prized show heifer, a real blue-ribbon winner. After showing signs of a minor respiratory infection, your master took you to the hospital right away. He'd better come back soon. You're getting quite impatient.</b>";
mob_name = "Flossie"
},
/turf/open/floor/plasteel/white,
@@ -88,7 +88,7 @@
triggerer_only = 1
},
/obj/effect/step_trigger/message{
message = "<span class='cultitalic'><b><span class='big'>You've made a grave mistake, haven't you?</span></b></span>";
message = "<span class='cult italic'><b><span class='big'>You've made a grave mistake, haven't you?</span></b></span>";
name = "ohfuck"
},
/turf/open/floor/engine/cult{
@@ -10,14 +10,11 @@
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"d" = (
/turf/closed/wall{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
},
/turf/closed/wall,
/area/ruin/unpowered)
"e" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -25,7 +22,6 @@
/obj/structure/table/wood,
/obj/item/storage/box/cups,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -36,14 +32,12 @@
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
"h" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -51,7 +45,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -59,7 +52,6 @@
/obj/item/reagent_containers/food/snacks/pizzaslice/mushroom,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -72,7 +64,6 @@
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -89,7 +80,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -97,7 +87,6 @@
/obj/item/chair/wood/wings,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -105,7 +94,6 @@
/obj/structure/glowshroom/single,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -113,7 +101,6 @@
/obj/item/trash/plate,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -121,7 +108,6 @@
/obj/effect/decal/remains/human,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -129,7 +115,6 @@
/obj/item/chair/wood/wings,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -141,13 +126,11 @@
name = "party hat"
},
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
"s" = (
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -155,14 +138,12 @@
/obj/structure/chair/wood/wings,
/obj/effect/decal/remains/human,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
"u" = (
/obj/structure/glowshroom/single,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -175,7 +156,6 @@
/obj/item/kitchen/fork,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -187,7 +167,6 @@
name = "pizza spawner"
},
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -195,7 +174,6 @@
/obj/structure/table/wood,
/obj/item/trash/plate,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -204,7 +182,6 @@
/obj/structure/glowshroom/single,
/obj/item/a_gift,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -213,7 +190,6 @@
/obj/item/trash/plate,
/obj/item/kitchen/fork,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -224,7 +200,6 @@
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -233,7 +208,6 @@
/obj/item/reagent_containers/food/snacks/pizzaslice/margherita,
/obj/item/trash/plate,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -241,7 +215,6 @@
/obj/structure/table/wood,
/obj/item/reagent_containers/food/snacks/pizzaslice/meat,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -249,21 +222,18 @@
/obj/structure/table/wood,
/obj/item/reagent_containers/food/snacks/store/cake/birthday,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
"G" = (
/obj/structure/table/wood,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
"H" = (
/obj/item/chair/wood/wings,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -271,7 +241,6 @@
/obj/item/kitchen/fork,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -279,7 +248,6 @@
/obj/structure/glowshroom/single,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -291,7 +259,6 @@
/obj/effect/decal/remains/human,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -299,7 +266,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -307,7 +273,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/item/a_gift,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -320,7 +285,6 @@
/obj/item/kitchen/knife,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -330,13 +294,11 @@
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
"Q" = (
/turf/open/floor/plating{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
@@ -344,7 +306,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/baseturf_helper/lava_land/surface,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
File diff suppressed because it is too large Load Diff
@@ -498,7 +498,7 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"by" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
id_tag = "innerbrig";
name = "Security Checkpoint";
req_access_txt = "63"
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -494,7 +494,7 @@
/area/ruin/space/has_grav/ancientstation/comm)
"bB" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Bridge"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -1408,7 +1408,7 @@
/turf/open/floor/plasteel/floorgrime,
/area/ruin/space/has_grav/ancientstation/deltacorridor)
"ef" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
name = "Medical Bay"
},
/turf/open/floor/plasteel/floorgrime,
@@ -3222,7 +3222,7 @@
},
/area/ruin/space/has_grav/ancientstation/rnd)
"is" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
name = "Chemical Storage";
req_access_txt = "200"
},
+3 -3
View File
@@ -297,7 +297,7 @@
},
/area/ruin/space/has_grav/onehalf/hallway)
"aV" = (
/obj/machinery/door/airlock/glass_medical,
/obj/machinery/door/airlock/medical/glass,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -984,7 +984,7 @@
/turf/template_noop,
/area/ruin/space/has_grav/onehalf/hallway)
"cE" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Bridge"
},
/turf/open/floor/plasteel,
@@ -998,7 +998,7 @@
id = "bridge_onehalf";
name = "bridge blast door"
},
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Bridge"
},
/turf/open/floor/plasteel,
+10 -12
View File
@@ -3447,7 +3447,7 @@
/turf/closed/wall,
/area/ruin/space/has_grav/hotel/security)
"jq" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Hotel Security Checkpoint";
req_access_txt = "203"
},
@@ -4059,14 +4059,10 @@
/area/ruin/space/has_grav/hotel/pool)
"li" = (
/obj/effect/light_emitter,
/turf/open/floor/plating/beach/water{
baseturf = /turf/open/space
},
/turf/open/floor/plating/beach/water,
/area/ruin/space/has_grav/hotel/pool)
"lj" = (
/turf/open/floor/plating/beach/water{
baseturf = /turf/open/space
},
/turf/open/floor/plating/beach/water,
/area/ruin/space/has_grav/hotel/pool)
"lk" = (
/obj/structure/chair{
@@ -4201,7 +4197,7 @@
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"lF" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Hotel Security Checkpoint";
req_access_txt = "203"
},
@@ -4274,9 +4270,7 @@
/area/ruin/space/has_grav/hotel/security)
"lP" = (
/obj/item/bikehorn/rubberducky,
/turf/open/floor/plating/beach/water{
baseturf = /turf/open/space
},
/turf/open/floor/plating/beach/water,
/area/ruin/space/has_grav/hotel/pool)
"lQ" = (
/obj/structure/table,
@@ -4655,6 +4649,10 @@
},
/turf/open/floor/carpet,
/area/ruin/space/has_grav/hotel)
"mW" = (
/obj/effect/baseturf_helper/space,
/turf/closed/wall,
/area/ruin/space/has_grav/hotel/pool)
(1,1,1) = {"
aa
@@ -7090,7 +7088,7 @@ ih
fi
cJ
jt
jQ
mW
jQ
jQ
jQ
+1 -1
View File
@@ -162,7 +162,7 @@
uniform = /obj/item/clothing/under/rank/bartender;
death = 0;
desc = "Looks secure.";
flavour_text = "You are a bartender for the beach!";
flavour_text = "<span class='big bold'>You are a bartender for the beach!</span>";
icon = 'icons/obj/machines/sleeper.dmi';
icon_state = "sleeper";
mob_name = "Jerry Thomas";
+29 -73
View File
@@ -91,22 +91,16 @@
density = 0;
pixel_y = 18
},
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"at" = (
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"au" = (
/obj/machinery/computer/security/telescreen/entertainment{
pixel_y = 32
},
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"av" = (
/obj/structure/toilet{
@@ -117,9 +111,7 @@
/area/awaymission/beach)
"aw" = (
/obj/structure/closet/secure_closet/personal/cabinet,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"ax" = (
/obj/item/bedsheet/rainbow,
@@ -131,9 +123,7 @@
pixel_x = 24;
specialfunctions = 4
},
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"ay" = (
/obj/effect/overlay/palmtree_r,
@@ -151,9 +141,7 @@
/obj/item/reagent_containers/food/drinks/bottle/wine,
/obj/item/reagent_containers/food/drinks/bottle/rum,
/obj/structure/table/wood,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aB" = (
/obj/effect/overlay/coconut,
@@ -174,9 +162,7 @@
/obj/structure/mirror{
pixel_y = 28
},
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aF" = (
/obj/machinery/button/door{
@@ -186,9 +172,7 @@
pixel_x = 24;
specialfunctions = 4
},
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aG" = (
/obj/machinery/button/door{
@@ -198,9 +182,7 @@
pixel_x = 24;
specialfunctions = 4
},
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aH" = (
/obj/machinery/door/airlock/sandstone{
@@ -238,74 +220,52 @@
/area/awaymission/beach)
"aM" = (
/obj/structure/closet/gmcloset,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aN" = (
/obj/structure/closet/secure_closet/bar,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aO" = (
/obj/structure/table/wood,
/obj/item/book/manual/barman_recipes,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aP" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/shaker,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aQ" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/beer,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aR" = (
/obj/structure/table/wood,
/obj/item/clothing/glasses/sunglasses,
/obj/item/reagent_containers/food/drinks/beer,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aS" = (
/obj/effect/mob_spawn/human/bartender/alive,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aT" = (
/obj/machinery/vending/boozeomat,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aU" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aV" = (
/obj/machinery/vending/cola,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aW" = (
/obj/machinery/vending/snack,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aX" = (
/obj/structure/mineral_door/wood{
@@ -316,29 +276,21 @@
"aY" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/ale,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"aZ" = (
/obj/structure/table/wood,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"ba" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"bb" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime,
/turf/open/floor/wood{
baseturf = /turf/open/floor/plating/beach/sand
},
/turf/open/floor/wood,
/area/awaymission/beach)
"bc" = (
/obj/item/toy/beach_ball,
@@ -431,6 +383,10 @@
"bt" = (
/turf/open/floor/plating/beach/water,
/area/awaymission/beach)
"bu" = (
/obj/effect/baseturf_helper/beach/sand,
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
(1,1,1) = {"
aa
@@ -43447,7 +43403,7 @@ ab
ab
ab
ab
ac
bu
ac
ac
ac
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1513,7 +1513,7 @@
/turf/open/floor/plasteel/dark,
/area/awaymission/centcomAway/courtroom)
"fG" = (
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering";
req_access_txt = "32"
},
@@ -1803,7 +1803,7 @@
/turf/open/floor/plating,
/area/awaymission/centcomAway/hangar)
"gF" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Bridge";
req_access_txt = "19"
},
+3 -5
View File
@@ -3204,7 +3204,7 @@
},
/area/awaymission/moonoutpost19/research)
"gk" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Security Post";
req_access_txt = "201"
},
@@ -4009,7 +4009,7 @@
},
/area/awaymission/moonoutpost19/research)
"hG" = (
/obj/machinery/door/airlock/glass_research{
/obj/machinery/door/airlock/research/glass{
name = "Research Storage";
req_access_txt = "201"
},
@@ -4244,11 +4244,9 @@
},
/area/awaymission/moonoutpost19/research)
"ie" = (
/obj/machinery/door/airlock/glass_medical{
glass = 0;
/obj/machinery/door/airlock/medical{
id_tag = "";
name = "Research Division";
opacity = 1;
req_access_txt = "201";
req_one_access_txt = "0"
},
+3 -3
View File
@@ -1596,7 +1596,7 @@
/turf/open/floor/plating,
/area/awaymission/research/interior/security)
"eS" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
id_tag = "outerbrig";
name = "Brig";
req_access_txt = "63"
@@ -1913,7 +1913,7 @@
},
/area/awaymission/research/interior)
"fS" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
id_tag = "outerbrig";
name = "Brig";
req_access_txt = "63"
@@ -2323,7 +2323,7 @@
},
/area/awaymission/research/interior)
"hb" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
id_tag = "outerbrig";
name = "Brig";
req_access_txt = "63"
File diff suppressed because it is too large Load Diff
+11 -11
View File
@@ -7380,7 +7380,7 @@
},
/area/awaymission/undergroundoutpost45/research)
"oE" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Security Office";
req_access_txt = "201"
},
@@ -8008,7 +8008,7 @@
/turf/closed/wall/rust,
/area/awaymission/undergroundoutpost45/research)
"pM" = (
/obj/machinery/door/airlock/glass_research{
/obj/machinery/door/airlock/research/glass{
name = "Research Storage";
req_access_txt = "201"
},
@@ -8159,7 +8159,7 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
name = "SMES Room";
req_access_txt = "201";
req_one_access_txt = "0"
@@ -8622,7 +8622,7 @@
/obj/machinery/atmospherics/pipe/simple{
dir = 4
},
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Server Room";
req_access_txt = "201"
},
@@ -9318,7 +9318,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering Reception";
req_access_txt = "0"
},
@@ -9760,7 +9760,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering Reception";
req_access_txt = "0"
},
@@ -10793,7 +10793,7 @@
/turf/closed/wall,
/area/awaymission/undergroundoutpost45/engineering)
"uF" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Security Office";
req_access_txt = "201"
},
@@ -11382,7 +11382,7 @@
"vN" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Mining Foyer";
req_access_txt = "201"
},
@@ -11396,7 +11396,7 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Mining Foyer";
req_access_txt = "201"
},
@@ -11682,7 +11682,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Chief Engineer";
req_access_txt = "201"
},
@@ -12448,7 +12448,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Mining EVA";
req_access_txt = "201"
},
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
+37 -35
View File
@@ -111,6 +111,7 @@
/obj/item/pickaxe,
/obj/item/device/flashlight,
/obj/item/clothing/glasses/meson,
/obj/item/device/mining_scanner,
/turf/open/floor/plasteel,
/area/mine/laborcamp)
"av" = (
@@ -119,6 +120,7 @@
/obj/item/device/flashlight,
/obj/item/pickaxe,
/obj/item/clothing/glasses/meson,
/obj/item/device/mining_scanner,
/turf/open/floor/plasteel,
/area/mine/laborcamp)
"aw" = (
@@ -144,7 +146,7 @@
/turf/open/floor/plasteel,
/area/mine/laborcamp)
"aB" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Infirmary";
req_access_txt = "0"
@@ -286,7 +288,7 @@
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/explored)
"aY" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
cyclelinkeddir = 4;
name = "Labor Camp Shuttle Security Airlock";
req_access_txt = "2"
@@ -450,7 +452,7 @@
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/mine/eva)
"bx" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
cyclelinkeddir = 4;
name = "Labor Camp Shuttle Prisoner Airlock";
req_access_txt = "0"
@@ -470,7 +472,7 @@
/turf/open/floor/plasteel,
/area/mine/laborcamp)
"bA" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Labor Camp Backroom";
req_access_txt = "2"
},
@@ -557,7 +559,7 @@
/turf/open/floor/plasteel/purple/corner,
/area/mine/eva)
"bL" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Labor Camp Monitoring";
req_access_txt = "2"
},
@@ -617,7 +619,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Mining Station EVA";
req_access_txt = "54"
},
@@ -1371,7 +1373,7 @@
/turf/open/floor/plating,
/area/mine/living_quarters)
"dR" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Infirmary";
req_access_txt = "0"
@@ -1511,7 +1513,7 @@
/turf/open/floor/plasteel/purple/corner,
/area/mine/living_quarters)
"el" = (
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Processing Area";
req_access_txt = "48"
},
@@ -1614,7 +1616,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Mining Station Bridge";
req_access_txt = "48"
},
@@ -1647,7 +1649,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Mining Station Bridge";
req_access_txt = "48"
},
@@ -1689,7 +1691,7 @@
},
/area/mine/production)
"eF" = (
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Processing Area";
req_access_txt = "48"
},
@@ -3328,7 +3330,7 @@
/turf/open/floor/plasteel,
/area/mine/laborcamp)
"WB" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
cyclelinkeddir = 8;
name = "Labor Camp Shuttle Security Airlock";
req_access_txt = "2"
@@ -3336,7 +3338,7 @@
/turf/open/floor/plasteel,
/area/mine/laborcamp)
"WC" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
cyclelinkeddir = 8;
name = "Labor Camp Shuttle Prisoner Airlock";
req_access_txt = "0"
@@ -21563,7 +21565,7 @@ am
am
am
am
ao
ai
ab
ab
ab
@@ -22070,7 +22072,7 @@ am
am
am
am
ao
ai
ab
ab
ai
@@ -22854,7 +22856,7 @@ ab
ab
ab
ab
ao
ai
ab
ab
ab
@@ -24644,7 +24646,7 @@ am
am
am
am
ao
ai
ab
ab
ab
@@ -24901,7 +24903,7 @@ am
am
am
am
ao
ai
ab
ab
ab
@@ -25178,7 +25180,7 @@ ab
ab
ab
ab
ao
ai
am
am
ai
@@ -25422,7 +25424,7 @@ ab
ab
ab
ai
ao
ai
ab
ab
ab
@@ -25672,7 +25674,7 @@ am
am
am
am
ao
ai
ab
ab
ab
@@ -25956,7 +25958,7 @@ am
am
am
am
ao
ai
ab
ab
ab
@@ -26199,7 +26201,7 @@ ab
ab
ab
ab
ao
ai
am
am
am
@@ -26213,7 +26215,7 @@ am
am
am
am
ao
ai
ab
ab
ab
@@ -26972,7 +26974,7 @@ ab
ab
ab
ab
ao
ai
am
am
am
@@ -28511,7 +28513,7 @@ ab
ab
ab
ai
ao
ai
ab
ab
ab
@@ -29021,7 +29023,7 @@ ab
ab
ab
ab
ao
ai
ab
ab
ai
@@ -29030,13 +29032,13 @@ am
am
am
am
ao
ai
ab
ab
ab
ab
ao
ao
ai
ai
ab
ab
ab
@@ -29278,8 +29280,8 @@ ab
ab
ab
ab
ao
ao
ai
ai
ab
ai
am
@@ -30060,8 +30062,8 @@ ab
ab
ab
ab
ao
ao
ai
ai
ab
ab
ab
@@ -30573,7 +30575,7 @@ ai
ai
ab
ab
ao
ai
am
am
am
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -164,4 +164,5 @@ MAP_REMOVE_JOB(geneticist)
MAP_REMOVE_JOB(virologist)
MAP_REMOVE_JOB(rd)
MAP_REMOVE_JOB(warden)
MAP_REMOVE_JOB(lawyer)
MAP_REMOVE_JOB(lawyer)
MAP_REMOVE_JOB(chemist)
+93 -76
View File
@@ -202,7 +202,7 @@
icon_state = "4-8"
},
/obj/machinery/door/firedoor/heavy,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "AI Core";
req_access_txt = "65"
},
@@ -241,7 +241,7 @@
/area/ai_monitored/turret_protected/ai)
"act" = (
/obj/machinery/door/firedoor/heavy,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "AI Core";
req_access_txt = "65"
},
@@ -502,7 +502,7 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "AI Core";
req_access_txt = "65"
},
@@ -2136,7 +2136,7 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"ahm" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Long-Term Cell 2";
req_access_txt = "2"
},
@@ -2156,7 +2156,7 @@
/turf/closed/wall,
/area/security/prison)
"ahp" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Long-Term Cell 1";
req_access_txt = "2"
},
@@ -2864,7 +2864,6 @@
"aiY" = (
/obj/structure/table,
/obj/item/device/flashlight/lamp,
/obj/item/storage/box/mousetraps,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
"aiZ" = (
@@ -2908,7 +2907,7 @@
/area/security/prison)
"ajd" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Prison Wing";
req_access_txt = "1"
},
@@ -2925,7 +2924,7 @@
/area/security/prison)
"ajf" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Prison Wing";
req_access_txt = "1"
},
@@ -3137,14 +3136,14 @@
/area/maintenance/department/crew_quarters/dorms)
"ajA" = (
/obj/docking_port/stationary{
dheight = 9;
dir = 2;
dwidth = 5;
height = 24;
dheight = 1;
dir = 8;
dwidth = 12;
height = 17;
id = "syndicate_ne";
name = "northeast of station";
turf_type = /turf/open/space;
width = 18
width = 23
},
/turf/open/space,
/area/space/nearstation)
@@ -3537,6 +3536,7 @@
/area/maintenance/department/security/brig)
"aks" = (
/obj/machinery/light/small,
/obj/item/storage/box/mousetraps,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
"akt" = (
@@ -4407,7 +4407,7 @@
/turf/open/floor/plasteel/dark,
/area/security/main)
"amt" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Head of Security";
req_access_txt = "58"
},
@@ -5810,7 +5810,7 @@
/turf/open/floor/plating,
/area/security/warden)
"apM" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Brig Control";
req_access_txt = "3"
},
@@ -6393,7 +6393,7 @@
/area/security/brig)
"arj" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Labor Camp Shuttle Airlock";
req_access_txt = "2"
},
@@ -7453,7 +7453,7 @@
/turf/open/floor/plating,
/area/security/brig)
"atE" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
cyclelinkeddir = 2;
id_tag = "innerbrig";
name = "Brig";
@@ -7478,7 +7478,7 @@
/turf/open/floor/plating,
/area/security/brig)
"atG" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
cyclelinkeddir = 2;
id_tag = "innerbrig";
name = "Brig";
@@ -7490,7 +7490,7 @@
},
/area/security/brig)
"atH" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Brig Desk";
req_access_txt = "1"
},
@@ -8781,7 +8781,7 @@
/area/shuttle/labor)
"awH" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Labor Camp Shuttle Airlock";
req_access_txt = "0"
},
@@ -8828,7 +8828,7 @@
/area/security/brig)
"awL" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
cyclelinkeddir = 1;
id_tag = "outerbrig";
name = "Brig";
@@ -8856,7 +8856,7 @@
/area/security/brig)
"awN" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
cyclelinkeddir = 1;
id_tag = "outerbrig";
name = "Brig";
@@ -10634,7 +10634,7 @@
/area/crew_quarters/heads/captain)
"aBq" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
cyclelinkeddir = 2;
name = "Bridge";
req_access_txt = "19"
@@ -10648,7 +10648,7 @@
"aBr" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
cyclelinkeddir = 2;
name = "Bridge";
req_access_txt = "19"
@@ -10711,7 +10711,7 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
cyclelinkeddir = 2;
name = "Bridge";
req_access_txt = "19"
@@ -12140,6 +12140,7 @@
"aED" = (
/obj/structure/table,
/obj/item/aiModule/core/full/asimov,
/obj/effect/spawner/lootdrop/aimodule_harmless,
/obj/item/aiModule/core/freeformcore,
/obj/machinery/door/window{
base_state = "right";
@@ -12148,7 +12149,7 @@
name = "Core Modules";
req_access_txt = "20"
},
/obj/item/aiModule/core/full/corp,
/obj/effect/spawner/lootdrop/aimodule_neutral,
/obj/item/aiModule/core/full/custom,
/obj/structure/window/reinforced{
dir = 1;
@@ -12197,7 +12198,7 @@
req_access_txt = "20"
},
/obj/item/aiModule/reset/purge,
/obj/item/aiModule/core/full/antimov,
/obj/effect/spawner/lootdrop/aimodule_harmful,
/obj/item/aiModule/supplied/protectStation,
/obj/structure/window/reinforced{
dir = 1;
@@ -13144,7 +13145,7 @@
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
cyclelinkeddir = 1;
name = "Bridge";
req_access_txt = "19"
@@ -13158,7 +13159,7 @@
},
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
cyclelinkeddir = 1;
name = "Bridge";
req_access_txt = "19"
@@ -13180,7 +13181,7 @@
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
cyclelinkeddir = 1;
name = "Bridge";
req_access_txt = "19"
@@ -14829,7 +14830,7 @@
/area/storage/eva)
"aLb" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "EVA Storage";
req_access_txt = "18"
},
@@ -14846,7 +14847,7 @@
"aLd" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Teleporter";
req_access_txt = "17"
},
@@ -14925,7 +14926,7 @@
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"aLs" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Holding Area";
req_access_txt = "2"
},
@@ -16434,7 +16435,7 @@
},
/area/security/checkpoint/supply)
"aOR" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Cargo Security Post";
req_access_txt = "63"
},
@@ -17395,7 +17396,7 @@
/area/security/checkpoint/supply)
"aRg" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Cargo Security Post";
req_access_txt = "63"
},
@@ -17820,7 +17821,7 @@
/area/quartermaster/office)
"aSg" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Mailroom";
req_access_txt = "0";
req_one_access_txt = "48;50"
@@ -18750,7 +18751,7 @@
/turf/open/floor/plasteel,
/area/quartermaster/office)
"aUo" = (
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Cargo Bay";
req_access_txt = "0";
req_one_access_txt = "31;48"
@@ -20920,7 +20921,7 @@
/area/quartermaster/office)
"aZl" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Cargo Office";
req_access_txt = "50"
},
@@ -21871,7 +21872,7 @@
/turf/open/floor/plating,
/area/quartermaster/qm)
"bbG" = (
/obj/machinery/door/airlock/glass_mining{
/obj/machinery/door/airlock/mining/glass{
name = "Quartermaster";
req_access_txt = "41"
},
@@ -26577,7 +26578,7 @@
/area/medical/genetics)
"bnw" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Cloning";
req_access_txt = "0";
@@ -26635,7 +26636,7 @@
/area/security/checkpoint/medical)
"bnB" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Medbay Security Post";
req_access_txt = "63"
},
@@ -26775,7 +26776,7 @@
/area/science/server)
"bnU" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Server Room";
req_access_txt = "30"
},
@@ -28154,7 +28155,7 @@
/area/medical/genetics)
"bra" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = "GeneticsDoor";
name = "Cloning";
req_access_txt = "0";
@@ -29795,7 +29796,7 @@
/area/science/explab)
"buA" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_research{
/obj/machinery/door/airlock/research/glass{
name = "Experimentation Lab";
req_access_txt = "47"
},
@@ -30019,7 +30020,7 @@
/area/science/xenobiology)
"buV" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_research{
/obj/machinery/door/airlock/research/glass{
name = "Kill Room";
req_access_txt = "55"
},
@@ -30070,7 +30071,7 @@
/turf/closed/wall/r_wall,
/area/medical/genetics)
"bvd" = (
/obj/machinery/door/airlock/glass_research{
/obj/machinery/door/airlock/research/glass{
name = "Genetics";
req_access_txt = "9"
},
@@ -30167,7 +30168,7 @@
/turf/open/floor/plasteel/whiteblue/corner,
/area/medical/medbay/central)
"bvq" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Chemistry Lab";
req_access_txt = "5; 33"
@@ -31709,7 +31710,7 @@
/turf/open/floor/plating,
/area/medical/sleeper)
"byp" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Sleepers";
req_access_txt = "5"
@@ -31721,7 +31722,7 @@
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"byq" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Sleepers";
req_access_txt = "5"
@@ -32985,7 +32986,7 @@
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bBd" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = "MedbaySleepers";
name = "Sleepers";
req_access_txt = "5"
@@ -33531,7 +33532,7 @@
},
/area/medical/medbay/central)
"bCq" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Chief Medical Office";
req_access_txt = "40"
},
@@ -34148,7 +34149,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/door/airlock/glass_research{
/obj/machinery/door/airlock/research/glass{
name = "Toxins Storage";
req_access_txt = "8"
},
@@ -34189,7 +34190,7 @@
/area/science/research)
"bDU" = (
/obj/machinery/door/firedoor/heavy,
/obj/machinery/door/airlock/glass_research{
/obj/machinery/door/airlock/research/glass{
name = "Toxins Lab";
req_access_txt = "8"
},
@@ -34431,6 +34432,10 @@
pixel_x = -3;
pixel_y = -3
},
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
dir = 8
},
/turf/open/floor/plasteel/whiteblue/side{
dir = 1
},
@@ -34446,6 +34451,10 @@
pixel_x = -3;
pixel_y = -3
},
/obj/machinery/door/window/southleft{
name = "First-Aid Supplies";
req_access_txt = "5"
},
/turf/open/floor/plasteel/whiteblue/side{
dir = 1
},
@@ -34461,6 +34470,10 @@
pixel_x = -3;
pixel_y = -3
},
/obj/machinery/door/window/southright{
name = "First-Aid Supplies";
req_access_txt = "5"
},
/turf/open/floor/plasteel/whiteblue/side{
dir = 1
},
@@ -34476,6 +34489,7 @@
pixel_x = -3;
pixel_y = -3
},
/obj/structure/window/reinforced,
/turf/open/floor/plasteel/whiteblue/side{
dir = 1
},
@@ -35158,7 +35172,7 @@
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bFR" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Medbay Storage";
req_access_txt = "45"
@@ -35242,7 +35256,7 @@
/turf/closed/wall,
/area/hallway/primary/aft)
"bGb" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Research Security Post";
req_access_txt = "63"
},
@@ -35610,7 +35624,7 @@
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bGY" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Medbay Storage";
req_access_txt = "45"
@@ -35995,11 +36009,10 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/department/engine)
"bHS" = (
/obj/structure/table,
/obj/item/device/flashlight/lamp,
/obj/effect/decal/cleanable/cobweb{
icon_state = "cobweb2"
},
/obj/machinery/vending/kink,
/turf/open/floor/plasteel/dark,
/area/maintenance/department/engine)
"bHT" = (
@@ -36549,6 +36562,8 @@
/obj/structure/sign/poster/contraband/random{
pixel_x = 32
},
/obj/structure/table,
/obj/item/device/flashlight/lamp,
/turf/open/floor/plasteel/dark,
/area/maintenance/department/engine)
"bJi" = (
@@ -36618,7 +36633,7 @@
},
/area/medical/medbay/central)
"bJq" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Recovery Room";
req_access_txt = "0"
@@ -37043,7 +37058,7 @@
/area/medical/virology)
"bKo" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_virology{
/obj/machinery/door/airlock/virology/glass{
name = "Isolation B";
req_access_txt = "39"
},
@@ -37052,7 +37067,7 @@
/area/medical/virology)
"bKp" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_virology{
/obj/machinery/door/airlock/virology/glass{
name = "Isolation A";
req_access_txt = "39"
},
@@ -37738,7 +37753,7 @@
"bLX" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/door/airlock/glass_atmos{
/obj/machinery/door/airlock/atmos/glass{
cyclelinkeddir = 0;
name = "Atmospherics";
req_access_txt = "24"
@@ -38188,7 +38203,7 @@
dir = 4
},
/obj/machinery/door/firedoor/heavy,
/obj/machinery/door/airlock/glass_atmos{
/obj/machinery/door/airlock/atmos/glass{
name = "Atmospherics Monitoring";
req_access_txt = "24"
},
@@ -38617,7 +38632,7 @@
dir = 4
},
/obj/machinery/door/firedoor/heavy,
/obj/machinery/door/airlock/glass_atmos{
/obj/machinery/door/airlock/atmos/glass{
name = "Atmospherics Monitoring";
req_access_txt = "24"
},
@@ -40513,7 +40528,7 @@
/area/hallway/primary/aft)
"bSQ" = (
/obj/machinery/door/firedoor/heavy,
/obj/machinery/door/airlock/glass_atmos{
/obj/machinery/door/airlock/atmos/glass{
cyclelinkeddir = 0;
name = "Atmospherics Monitoring";
req_access_txt = "24"
@@ -41456,7 +41471,7 @@
},
/area/security/checkpoint/engineering)
"bUY" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Engineering Security Post";
req_access_txt = "63"
},
@@ -42724,7 +42739,7 @@
/turf/open/floor/plating,
/area/crew_quarters/heads/chief)
"bYa" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Chief Engineer";
req_access_txt = "56"
},
@@ -42771,7 +42786,7 @@
/area/engine/engine_smes)
"bYh" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
name = "Power Storage";
req_access_txt = "11";
req_one_access_txt = "0"
@@ -47544,7 +47559,7 @@
},
/area/tcommsat/computer)
"cmj" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Control Room";
req_access_txt = "19; 61"
},
@@ -47673,7 +47688,7 @@
},
/area/tcommsat/computer)
"cmw" = (
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
cyclelinkeddir = 2;
name = "Server Room";
req_access_txt = "61"
@@ -47748,7 +47763,7 @@
/turf/open/floor/plating,
/area/tcommsat/computer)
"cmF" = (
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
cyclelinkeddir = 1;
name = "Server Room";
req_access_txt = "61"
@@ -51363,8 +51378,10 @@
/area/maintenance/department/crew_quarters/dorms)
"cCY" = (
/obj/machinery/vending/kink,
/turf/open/floor/plating,
/area/maintenance/department/engine)
/turf/open/floor/plating{
icon_state = "platingdmg3"
},
/area/maintenance/department/cargo)
"cCZ" = (
/obj/machinery/vending/kink,
/turf/open/floor/plating,
@@ -73873,7 +73890,7 @@ bvb
bDj
bEo
bva
cCY
bva
bHQ
bJg
bKl
@@ -74129,7 +74146,7 @@ bnv
bnv
bDi
bmf
bva
bsn
bva
bHS
bJh
@@ -100070,7 +100087,7 @@ aaa
aaa
aEj
bkO
bgO
cCY
bnn
bom
aEj
+2 -2
View File
@@ -310,7 +310,7 @@
/turf/open/floor/plating,
/area/engine/engineering)
"aU" = (
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
name = "Gravity Generator";
req_access_txt = "11";
req_one_access_txt = "0"
@@ -339,7 +339,7 @@
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
"aX" = (
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
name = "Gravity Generator";
req_access_txt = "11";
req_one_access_txt = "0"
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -197,7 +197,7 @@
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"aP" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Brig";
req_access_txt = "2"
},
@@ -297,7 +297,7 @@
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"bg" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Emergency Shuttle Cockpit";
req_access_txt = "19"
},
@@ -355,7 +355,7 @@
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"bq" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Escape Shuttle Infirmary";
req_access_txt = "5"
@@ -363,7 +363,7 @@
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"br" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Escape Shuttle Infirmary";
req_access_txt = "0"
+1 -1
View File
@@ -387,7 +387,7 @@
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bq" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
name = "Medbay"
},
/turf/open/floor/mineral/titanium,
+2 -2
View File
@@ -93,7 +93,7 @@
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"as" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "bridge door";
req_access_txt = "19"
},
@@ -134,7 +134,7 @@
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"az" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "security airlock";
req_access_txt = "63"
},
+3 -3
View File
@@ -399,7 +399,7 @@
},
/area/shuttle/escape)
"bn" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Brig";
req_access_txt = "2"
},
@@ -717,7 +717,7 @@
/turf/open/floor/plasteel,
/area/shuttle/escape)
"ce" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
name = "Emergency Shuttle Medbay"
},
/turf/open/floor/plasteel/whiteblue,
@@ -986,7 +986,7 @@
},
/area/shuttle/escape)
"cP" = (
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
name = "Engine Room";
req_one_access_txt = "10;24"
},
+4 -5
View File
@@ -306,7 +306,7 @@
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aF" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Escape Shuttle Infirmary";
req_access_txt = "0"
@@ -353,7 +353,6 @@
name = "emergency shower"
},
/turf/open/floor/plasteel/whiteblue/side{
baseturf = /turf/open/lava/smooth/lava_land_surface;
dir = 4
},
/area/shuttle/escape)
@@ -423,7 +422,7 @@
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aV" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Escape Shuttle Infirmary";
req_access_txt = "0"
@@ -650,14 +649,14 @@
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bt" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Holding Area";
req_access_txt = "2"
},
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"bu" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Cockpit";
req_access_txt = "19"
},
+3 -3
View File
@@ -260,7 +260,7 @@
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"aH" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Cockpit";
req_access_txt = "19"
},
@@ -377,14 +377,14 @@
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"aY" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Brig";
req_access_txt = "2"
},
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"aZ" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Escape Shuttle Infirmary";
req_access_txt = "0"
+1 -1
View File
@@ -86,7 +86,7 @@
dwidth = 20;
height = 40;
movement_force = list("KNOCKDOWN" = 3, "THROW" = 6);
name = "a meteor with engines strapped to it";
name = "\proper a meteor with engines strapped to it";
timid = 1;
width = 40
},
+3 -3
View File
@@ -82,14 +82,14 @@
/turf/open/floor/plating,
/area/shuttle/escape)
"o" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Escape Shuttle Cell";
req_access_txt = "2"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"p" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Escape Shuttle Infirmary";
req_access_txt = "0"
@@ -214,7 +214,7 @@
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"I" = (
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Escape Shuttle Cockpit";
req_access_txt = "19"
},
+6 -6
View File
@@ -197,7 +197,7 @@
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"aI" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Brig";
req_access_txt = "2"
},
@@ -231,7 +231,7 @@
/turf/open/floor/engine,
/area/shuttle/escape)
"aO" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
@@ -280,7 +280,7 @@
name = "Box emergency shuttle";
timid = 1
},
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plating,
@@ -418,7 +418,7 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/escape)
"br" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plating,
@@ -438,7 +438,7 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/escape)
"bu" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Cargo"
},
/turf/open/floor/mineral/plastitanium,
@@ -448,7 +448,7 @@
/turf/closed/wall,
/area/shuttle/escape)
"bw" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Infirmary"
},
/turf/open/floor/mineral/plastitanium,
+5 -5
View File
@@ -201,7 +201,7 @@
desc = "A thin layer of dust coating the floor.";
name = "dust"
},
/obj/machinery/door/airlock/glass_maintenance{
/obj/machinery/door/airlock/maintenance/glass{
name = "Maintenance"
},
/turf/open/floor/plasteel,
@@ -252,7 +252,7 @@
},
/area/shuttle/abandoned)
"aA" = (
/obj/machinery/door/airlock/glass_maintenance{
/obj/machinery/door/airlock/maintenance/glass{
name = "Maintenance"
},
/turf/open/floor/plasteel,
@@ -1014,7 +1014,7 @@
desc = "A thin layer of dust coating the floor.";
name = "dust"
},
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
name = "Infirmary";
req_access_txt = "0"
@@ -1295,7 +1295,7 @@
desc = "A thin layer of dust coating the floor.";
name = "dust"
},
/obj/machinery/door/airlock/glass_engineering{
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering Storage"
},
/turf/open/floor/plasteel/neutral/side{
@@ -1614,7 +1614,7 @@
desc = "A thin layer of dust coating the floor.";
name = "dust"
},
/obj/machinery/door/airlock/glass_command{
/obj/machinery/door/airlock/command/glass{
name = "Bridge";
welded = 1
},
+1 -1
View File
@@ -538,7 +538,7 @@
/turf/open/floor/pod/dark,
/area/shuttle/pirate/vault)
"bs" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
name = "Medbay"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+3 -20
View File
@@ -61,7 +61,7 @@
//DNA - Because fuck you and your magic numbers being all over the codebase.
#define DNA_BLOCK_SIZE 3
#define DNA_UNI_IDENTITY_BLOCKS 19
#define DNA_UNI_IDENTITY_BLOCKS 19 //CIT CHANGE - adds more DNA blocks for cit's mutant bodyparts. Update citadel_defines.dm if this gets changed.
#define DNA_HAIR_COLOR_BLOCK 1
#define DNA_FACIAL_HAIR_COLOR_BLOCK 2
#define DNA_SKIN_TONE_BLOCK 3
@@ -69,19 +69,7 @@
#define DNA_GENDER_BLOCK 5
#define DNA_FACIAL_HAIR_STYLE_BLOCK 6
#define DNA_HAIR_STYLE_BLOCK 7
#define DNA_EYE_COLOR_TWO_BLOCK 8
#define DNA_EYE_COLOR_SWITCH_BLOCK 9
#define DNA_EYE_COLOR_BLOCK 10
#define DNA_COLOR_ONE_BLOCK 11
#define DNA_COLOR_TWO_BLOCK 12
#define DNA_COLOR_THR_BLOCK 13
#define DNA_COLOR_SWITCH_BLOCK 14
#define DNA_COLOR_SWITCH_MAX 7 //must be (2^(n+1))-1
#define DNA_COCK_BLOCK 15
#define DNA_MUTANTRACE_BLOCK 16
#define DNA_MUTANTTAIL_BLOCK 17
#define DNA_MUTANTWING_BLOCK 18
#define DNA_WINGCOLOR_BLOCK 19
#define DNA_STRUC_ENZYMES_BLOCKS 18
#define DNA_UNIQUE_ENZYMES_LEN 32
@@ -127,7 +115,7 @@
#define TOXINLOVER 24
#define DIGITIGRADE 25 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi)
#define NO_UNDERWEAR 26
#define NOLIVER 27
#define NOLIVER 27
#define NOSTOMACH 28
#define NO_DNA_COPY 29
#define DRINKSBLOOD 30
@@ -135,11 +123,6 @@
#define SPECIES_INORGANIC 32
#define SPECIES_UNDEAD 33
#define SPECIES_ROBOTIC 34
//citadel code
#define MUTCOLORS2 35
#define MUTCOLORS3 36
#define NOAROUSAL 37 //Stops all arousal effects
#define NOGENITALS 38 //Cannot create, use, or otherwise have genitals
#define ORGAN_SLOT_BRAIN "brain"
#define ORGAN_SLOT_APPENDIX "appendix"
-74
View File
@@ -1,79 +1,5 @@
//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
+6 -4
View File
@@ -9,10 +9,12 @@
#define ANTAG_DATUM_TRAITOR /datum/antagonist/traitor
#define ANTAG_DATUM_TRAITOR_HUMAN /datum/antagonist/traitor/human
#define ANTAG_DATUM_TRAITOR_AI /datum/antagonist/traitor/AI
#define ANTAG_DATUM_IAA /datum/antagonist/traitor/internal_affairs
#define ANTAG_DATUM_IAA /datum/antagonist/traitor/internal_affairs
#define ANTAG_DATUM_IAA_HUMAN /datum/antagonist/traitor/human/internal_affairs
#define ANTAG_DATUM_IAA_AI /datum/antagonist/traitor/AI/internal_affairs
#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
#define ANTAG_DATUM_ABDUCTOR_SCIENTIST /datum/antagonist/abductor/scientist
#define ANTAG_DATUM_ABDUCTOR_AGENT /datum/antagonist/abductor/agent
#define ANTAG_DATUM_MONKEY /datum/antagonist/monkey
#define ANTAG_DATUM_MONKEY_LEADER /datum/antagonist/monkey/leader
+4 -28
View File
@@ -14,9 +14,10 @@
//stuff you should probably leave well alone!
#define R_IDEAL_GAS_EQUATION 8.31 //kPa*L/(K*mol)
#define ONE_ATMOSPHERE 101.325 //kPa
#define TCMB 2.7 // -270.3degC
#define TCRYO 225 // -48.15degC
#define T0C 273.15 // 0degC
#define T20C 293.15 // 20degC
#define TCMB 2.7 // -270.3degC
#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC
#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005) //compared against for superconductivity
@@ -87,6 +88,7 @@
#define TEMPERATURE_DAMAGE_COEFFICIENT 1.5 //This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount.
#define BODYTEMP_AUTORECOVERY_DIVISOR 12 //This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive.
#define BODYTEMP_AUTORECOVERY_MINIMUM 10 //Minimum amount of kelvin moved toward 310.15K per tick. So long as abs(310.15 - bodytemp) is more than 50.
#define BODYTEMP_NORMAL 310.15 //98.6F, or 37C, the normal temprature of the human body.
#define BODYTEMP_COLD_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster.
#define BODYTEMP_HEAT_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster.
#define BODYTEMP_COOLING_MAX 30 //The maximum number of degrees that your body can cool in 1 tick, when in a cold area.
@@ -129,38 +131,12 @@
#define MAX_OUTPUT_PRESSURE 4500 // (kPa) What pressure pumps and powered equipment max out at.
#define MAX_TRANSFER_RATE 200 // (L/s) Maximum speed powered equipment can work at.
//used for device_type vars; used by DEVICE_TYPE_LOOP
//used for device_type vars
#define UNARY 1
#define BINARY 2
#define TRINARY 3
#define QUATERNARY 4
//TODO: finally remove this bullshit
//this is the standard for loop used by all sorts of atmos machinery procs
#define DEVICE_TYPE_LOOP var/I in 1 to device_type
//defines for the various machinery lists
//NODE_I, AIR_I, PARENT_I are used within DEVICE_TYPE_LOOP
//nodes list - all atmos machinery
#define NODE1 nodes[1]
#define NODE2 nodes[2]
#define NODE3 nodes[3]
#define NODE4 nodes[4]
#define NODE_I nodes[I]
//airs list - components only
#define AIR1 airs[1]
#define AIR2 airs[2]
#define AIR3 airs[3]
#define AIR_I airs[I]
//parents list - components only
#define PARENT1 parents[1]
#define PARENT2 parents[2]
#define PARENT3 parents[3]
#define PARENT_I parents[I]
//TANKS
#define TANK_MELT_TEMPERATURE 1000000 //temperature in kelvins at which a tank will start to melt
#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) //Tank starts leaking
+28
View File
@@ -71,3 +71,31 @@
#define ADMIN_MARKREAD(client) "(<a href='?_src_=holder;markedread=\ref[client]'>MARK READ</a>)"//marks an adminhelp as read and under investigation
#define ADMIN_IC(client) "(<a href='?_src_=holder;icissue=\ref[client]'>IC</a>)"//marks and adminhelp as an IC issue
#define ADMIN_REJECT(client) "(<a href='?_src_=holder;rejectadminhelp=\ref[client]'>REJT</a>)"//Rejects an adminhelp for being unclear or otherwise unhelpful. resets their adminhelp timer
//Damage stuffs
#define AROUSAL "arousal"
//DNA stuffs. Remember to change this if upstream adds more snowflake options
#define DNA_EYE_COLOR_TWO_BLOCK 8
#define DNA_EYE_COLOR_SWITCH_BLOCK 9
#define DNA_EYE_COLOR_BLOCK 10
#define DNA_COLOR_ONE_BLOCK 11
#define DNA_COLOR_TWO_BLOCK 12
#define DNA_COLOR_THR_BLOCK 13
#define DNA_COLOR_SWITCH_BLOCK 14
#define DNA_COLOR_SWITCH_MAX 7 //must be (2^(n+1))-1
#define DNA_COCK_BLOCK 15
#define DNA_MUTANTRACE_BLOCK 16
#define DNA_MUTANTTAIL_BLOCK 17
#define DNA_MUTANTWING_BLOCK 18
#define DNA_WINGCOLOR_BLOCK 19
//Species stuffs. Remember to change this if upstream updates species flags
#define MUTCOLORS2 35
#define MUTCOLORS3 36
#define NOAROUSAL 37 //Stops all arousal effects
#define NOGENITALS 38 //Cannot create, use, or otherwise have genitals
//Brainslugs
#define isborer(A) (istype(A, /mob/living/simple_animal/borer))
+6 -1
View File
@@ -4,4 +4,9 @@
#define CLEAN_MEDIUM 3 // Acceptable tools
#define CLEAN_STRONG 4 // Industrial strength
#define CLEAN_IMPRESSIVE 5 // Cleaning strong enough your granny would be proud
#define CLEAN_GOD 6 // Cleans things spotless down to the atomic structure
#define CLEAN_GOD 6 // Cleans things spotless down to the atomic structure
//How strong things have to be to wipe forensic evidence...
#define CLEAN_STRENGTH_FINGERPRINTS CLEAN_IMPRESSIVE
#define CLEAN_STRENGTH_BLOOD CLEAN_WEAK
#define CLEAN_STRENGTH_FIBERS CLEAN_IMPRESSIVE
+4
View File
@@ -0,0 +1,4 @@
// This is eventualy for wjohn to add more color standardization stuff like I keep asking him >:(
#define COLOR_INPUT_DISABLED "#F0F0F0"
#define COLOR_INPUT_ENABLED "#D3B5B5"
-6
View File
@@ -11,9 +11,6 @@
#define STAMINA "stamina"
#define BRAIN "brain"
//Citadel code
#define AROUSAL "arousal"
//bitflag damage defines used for suicide_act
#define BRUTELOSS 1
#define FIRELOSS 2
@@ -22,9 +19,6 @@
#define SHAME 16
#define MANUAL_SUICIDE 32 //suicide_act will do the actual killing.
//Citadel code
#define AROUSAL 32
#define STUN "stun"
#define KNOCKDOWN "knockdown"
#define UNCONSCIOUS "unconscious"
+7 -8
View File
@@ -27,6 +27,13 @@
#define COMPONENT_NO_AFTERATTACK 1 //Return this in response if you don't want afterattack to be called
#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_GET_EXAMINE_NAME "atom_examine_name" //from base of atom/get_examine_name(): (/mob, list/overrides)
//Positions for overrides list
#define EXAMINE_POSITION_ARTICLE 1
#define EXAMINE_POSITION_BEFORE 2
#define EXAMINE_POSITION_NAME 3
//End positions
#define COMPONENT_EXNAME_CHANGED 1
#define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (/atom/movable, /atom)
#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)
@@ -68,14 +75,6 @@
// /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(): ()
+1 -1
View File
@@ -22,7 +22,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define ON_BORDER_1 512 // item has priority to check when entering or leaving
#define NOSLIP_1 1024 //prevents from slipping on wet floors, in space etc
#define CLEAN_ON_MOVE_1 2048
#define _UNUSED_1 2048
// BLOCK_GAS_SMOKE_EFFECT_1 only used in masks at the moment.
#define BLOCK_GAS_SMOKE_EFFECT_1 4096 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
+2
View File
@@ -0,0 +1,2 @@
#define IF_HAS_BLOOD_DNA(__thing) GET_COMPONENT_FROM(__FR##__thing, /datum/component/forensics, __thing); if(__FR##__thing && length(__FR##__thing.blood_DNA))
#define IF_HAS_BLOOD_DNA_AND(__thing, __conditions...) GET_COMPONENT_FROM(__FR##__thing, /datum/component/forensics, __thing); if(__FR##__thing && length(__FR##__thing.blood_DNA) && (##__conditions))
+11 -8
View File
@@ -86,7 +86,7 @@
. = SLOT_POCKET
//Bit flags_1 for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
#define HIDEGLOVES 1
#define HIDESUITSTORAGE 2
#define HIDEJUMPSUIT 4 //these first four are only used in exterior suits
@@ -134,17 +134,17 @@
#define THERMAL_PROTECTION_HAND_LEFT 0.025
#define THERMAL_PROTECTION_HAND_RIGHT 0.025
//flags_1 for female outfits: How much the game can safely "take off" the uniform without it looking weird
//flags for female outfits: How much the game can safely "take off" the uniform without it looking weird
#define NO_FEMALE_UNIFORM 0
#define FEMALE_UNIFORM_FULL 1
#define FEMALE_UNIFORM_TOP 2
//flags_1 for alternate styles: These are hard sprited so don't set this if you didn't put the effort in
//flags for alternate styles: These are hard sprited so don't set this if you didn't put the effort in
#define NORMAL_STYLE 0
#define ALT_STYLE 1
#define DIGITIGRADE_STYLE 2
//flags_1 for outfits that have mutantrace variants (try not to use this): Currently only needed if you're trying to add tight fitting bootyshorts
//flags for outfits that have mutantrace variants (try not to use this): Currently only needed if you're trying to add tight fitting bootyshorts
#define NO_MUTANTRACE_VARIATION 0
#define MUTANTRACE_VARIATION 1
@@ -152,9 +152,9 @@
#define FULL_DIGITIGRADE 1
#define SQUISHED_DIGITIGRADE 2
//flags_1 for covering body parts
//flags for covering body parts
#define GLASSESCOVERSEYES 1
#define MASKCOVERSEYES 2 // get rid of some of the other retardation in these flags_1
#define MASKCOVERSEYES 2 // get rid of some of the other retardation in these flags
#define HEADCOVERSEYES 4 // feel free to realloc these numbers for other purposes
#define MASKCOVERSMOUTH 8 // on other items, these are just for mask/head
#define HEADCOVERSMOUTH 16
@@ -199,7 +199,8 @@ GLOBAL_LIST_INIT(detective_vest_allowed, typecacheof(list(
/obj/item/reagent_containers/spray/pepper,
/obj/item/restraints/handcuffs,
/obj/item/storage/fancy/cigarettes,
/obj/item/tank/internals/emergency_oxygen)))
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman)))
GLOBAL_LIST_INIT(security_vest_allowed, typecacheof(list(
/obj/item/ammo_box,
@@ -212,7 +213,8 @@ GLOBAL_LIST_INIT(security_vest_allowed, typecacheof(list(
/obj/item/melee/classic_baton/telescopic,
/obj/item/reagent_containers/spray/pepper,
/obj/item/restraints/handcuffs,
/obj/item/tank/internals/emergency_oxygen)))
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman)))
GLOBAL_LIST_INIT(security_wintercoat_allowed, typecacheof(list(
/obj/item/ammo_box,
@@ -227,4 +229,5 @@ GLOBAL_LIST_INIT(security_wintercoat_allowed, typecacheof(list(
/obj/item/reagent_containers/spray/pepper,
/obj/item/restraints/handcuffs,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman,
/obj/item/toy)))
+7 -2
View File
@@ -4,7 +4,14 @@
#define islist(L) (istype(L, /list))
#if DM_VERSION >= 512
#define in_range(source, user) (get_dist(source, user) <= 1 && (get_step(source, 0)?:z) == (get_step(user, 0)?:z))
#if DM_VERSION > 512
#warn Remove this check.
#endif
#else
#define in_range(source, user) (get_dist(source, user) <= 1)
#endif
#define ismovableatom(A) (istype(A, /atom/movable))
@@ -95,8 +102,6 @@
#define isrevenant(A) (istype(A, /mob/living/simple_animal/revenant))
#define isborer(A) (istype(A, /mob/living/simple_animal/borer))
#define isbot(A) (istype(A, /mob/living/simple_animal/bot))
#define iscrab(A) (istype(A, /mob/living/simple_animal/crab))
+4 -8
View File
@@ -49,7 +49,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define FRIDAY_13TH "Friday the 13th"
//Human Overlays Indexes/////////
//citadel code
//LOTS OF CIT CHANGES HERE. BE CAREFUL WHEN UPSTREAM ADDS MORE LAYERS
#define MUTATIONS_LAYER 30 //mutations. Tk headglows, cold resistance glow, etc
#define GENITALS_BEHIND_LAYER 29 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer
#define BODY_BEHIND_LAYER 28 //certain mutantrace features (tail when looking south) that must appear behind the body parts
@@ -334,9 +334,9 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#endif
#endif
// Consider these images/atoms as part of the UI/HUD
// Consider these images/atoms as part of the UI/HUD
#define APPEARANCE_UI_IGNORE_ALPHA RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE
#define APPEARANCE_UI RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR
#define APPEARANCE_UI RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|PIXEL_SCALE
//Just space
#define SPACE_ICON_STATE "[((x + y) ^ ~(x * y) + z) % 25]"
@@ -444,6 +444,7 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define GIBTONITE_ACTIVE 1
#define GIBTONITE_STABLE 2
#define GIBTONITE_DETONATE 3
//for obj explosion block calculation
#define EXPLOSION_BLOCK_PROC -1
@@ -452,8 +453,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define BEAT_SLOW 2
#define BEAT_NONE 0
#define BEAT_CHANNEL 150
//http://www.byond.com/docs/ref/info.html#/atom/var/mouse_opacity
#define MOUSE_OPACITY_TRANSPARENT 0
#define MOUSE_OPACITY_ICON 1
@@ -484,9 +483,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define SYRINGE_DRAW 0
#define SYRINGE_INJECT 1
#define RESEARCH_MATERIAL_RECLAMATION_ID "0"
//gold slime core spawning
#define NO_SPAWN 0
#define HOSTILE_SPAWN 1
+1
View File
@@ -108,6 +108,7 @@
#define AI_ON 1
#define AI_IDLE 2
#define AI_OFF 3
#define AI_Z_OFF 4
//determines if a mob can smash through it
#define ENVIRONMENT_SMASH_NONE 0
+49 -49
View File
@@ -1,52 +1,52 @@
//Preference toggles
#define SOUND_ADMINHELP 1
#define SOUND_MIDI 2
#define SOUND_AMBIENCE 4
#define SOUND_LOBBY 8
#define MEMBER_PUBLIC 16
#define INTENT_STYLE 32
#define MIDROUND_ANTAG 64
#define SOUND_INSTRUMENTS 128
#define SOUND_SHIP_AMBIENCE 256
#define SOUND_PRAYERS 512
#define ANNOUNCE_LOGIN 1024
#define SOUND_ANNOUNCEMENTS 2048
#define DISABLE_DEATHRATTLE 4096
#define DISABLE_ARRIVALRATTLE 8192
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS)
//Chat toggles
#define CHAT_OOC 1
#define CHAT_DEAD 2
#define CHAT_GHOSTEARS 4
#define CHAT_GHOSTSIGHT 8
#define CHAT_PRAYER 16
#define CHAT_RADIO 32
#define CHAT_PULLR 64
#define CHAT_GHOSTWHISPER 128
#define CHAT_GHOSTPDA 256
#define CHAT_GHOSTRADIO 512
#define CHAT_LOOC 1024
#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO|CHAT_LOOC)
#define PARALLAX_INSANE -1 //for show offs
#define PARALLAX_HIGH 0 //default.
#define PARALLAX_MED 1
#define PARALLAX_LOW 2
#define PARALLAX_DISABLE 3 //this option must be the highest number
#define PARALLAX_DELAY_DEFAULT world.tick_lag
#define PARALLAX_DELAY_MED 1
#define PARALLAX_DELAY_LOW 2
#define SEC_DEPT_NONE "None"
#define SEC_DEPT_RANDOM "Random"
#define SEC_DEPT_ENGINEERING "Engineering"
#define SEC_DEPT_MEDICAL "Medical"
#define SEC_DEPT_SCIENCE "Science"
//Preference toggles
#define SOUND_ADMINHELP 1
#define SOUND_MIDI 2
#define SOUND_AMBIENCE 4
#define SOUND_LOBBY 8
#define MEMBER_PUBLIC 16
#define INTENT_STYLE 32
#define MIDROUND_ANTAG 64
#define SOUND_INSTRUMENTS 128
#define SOUND_SHIP_AMBIENCE 256
#define SOUND_PRAYERS 512
#define ANNOUNCE_LOGIN 1024
#define SOUND_ANNOUNCEMENTS 2048
#define DISABLE_DEATHRATTLE 4096
#define DISABLE_ARRIVALRATTLE 8192
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS)
//Chat toggles
#define CHAT_OOC 1
#define CHAT_DEAD 2
#define CHAT_GHOSTEARS 4
#define CHAT_GHOSTSIGHT 8
#define CHAT_PRAYER 16
#define CHAT_RADIO 32
#define CHAT_PULLR 64
#define CHAT_GHOSTWHISPER 128
#define CHAT_GHOSTPDA 256
#define CHAT_GHOSTRADIO 512
#define CHAT_LOOC 1024
#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO|CHAT_LOOC)
#define PARALLAX_INSANE -1 //for show offs
#define PARALLAX_HIGH 0 //default.
#define PARALLAX_MED 1
#define PARALLAX_LOW 2
#define PARALLAX_DISABLE 3 //this option must be the highest number
#define PARALLAX_DELAY_DEFAULT world.tick_lag
#define PARALLAX_DELAY_MED 1
#define PARALLAX_DELAY_LOW 2
#define SEC_DEPT_NONE "None"
#define SEC_DEPT_RANDOM "Random"
#define SEC_DEPT_ENGINEERING "Engineering"
#define SEC_DEPT_MEDICAL "Medical"
#define SEC_DEPT_SCIENCE "Science"
#define SEC_DEPT_SUPPLY "Supply"
// Playtime tracking system, see jobs_exp.dm
+55 -4
View File
@@ -1,5 +1,56 @@
#define MIN_FREE_FREQ 1201
#define MAX_FREE_FREQ 1599
// Radios use a large variety of predefined frequencies.
#define MIN_FREQ 1441
#define MAX_FREQ 1489
#define MIN_FREE_FREQ 1201 // -------------------------------------------------
// Frequencies are always odd numbers and range from 1201 to 1599.
#define FREQ_SYNDICATE 1213 // Nuke op comms frequency, dark brown
#define FREQ_CTF_RED 1215 // CTF red team comms frequency, red
#define FREQ_CTF_BLUE 1217 // CTF blue team comms frequency, blue
#define FREQ_CENTCOM 1337 // CentCom comms frequency, gray
#define FREQ_SUPPLY 1347 // Supply comms frequency, light brown
#define FREQ_SERVICE 1349 // Service comms frequency, green
#define FREQ_SCIENCE 1351 // Science comms frequency, plum
#define FREQ_COMMAND 1353 // Command comms frequency, gold
#define FREQ_MEDICAL 1355 // Medical comms frequency, soft blue
#define FREQ_ENGINEERING 1357 // Engineering comms frequency, orange
#define FREQ_SECURITY 1359 // Security comms frequency, red
#define FREQ_STATUS_DISPLAYS 1435
#define FREQ_ATMOS_ALARMS 1437 // air alarms <-> alert computers
#define FREQ_ATMOS_CONTROL 1439 // air alarms <-> vents and scrubbers
#define MIN_FREQ 1441 // ------------------------------------------------------
// Only the 1441 to 1489 range is freely available for general conversation.
// This represents 1/8th of the available spectrum.
#define FREQ_ATMOS_STORAGE 1441
#define FREQ_NAV_BEACON 1445
#define FREQ_AI_PRIVATE 1447 // AI private comms frequency, magenta
#define FREQ_PRESSURE_PLATE 1447
#define FREQ_AIRLOCK_CONTROL 1449
#define FREQ_ELECTROPACK 1449
#define FREQ_MAGNETS 1449
#define FREQ_LOCATOR_IMPLANT 1451
#define FREQ_SIGNALER 1457 // the default for new signalers
#define FREQ_COMMON 1459 // Common comms frequency, dark green
#define MAX_FREQ 1489 // ------------------------------------------------------
#define MAX_FREE_FREQ 1599 // -------------------------------------------------
// Transmission types.
#define TRANSMISSION_WIRE 0 // some sort of wired connection, not used
#define TRANSMISSION_RADIO 1 // electromagnetic radiation (default)
#define TRANSMISSION_SUBSPACE 2 // subspace transmission (headsets only)
#define TRANSMISSION_SUPERSPACE 3 // reaches independent (CentCom) radios only
// Filter types, used as an optimization to avoid unnecessary proc calls.
#define RADIO_TO_AIRALARM "to_airalarm"
#define RADIO_FROM_AIRALARM "from_airalarm"
#define RADIO_SIGNALER "signaler"
#define RADIO_ATMOSIA "atmosia"
#define RADIO_NAVBEACONS "navbeacons"
#define RADIO_AIRLOCK "airlock"
#define RADIO_MAGNETS "magnets"
#define DEFAULT_SIGNALER_CODE 30
+6
View File
@@ -1,4 +1,8 @@
#define RDCONSOLE_UI_MODE_NORMAL 1
#define RDCONSOLE_UI_MODE_EXPERT 2
#define RDCONSOLE_UI_MODE_LIST 3
//RDSCREEN screens
#define RDSCREEN_MENU 0
#define RDSCREEN_TECHDISK 1
@@ -59,3 +63,5 @@
//#define DEPARTMENTAL_FLAG_MINING 128
#define DESIGN_ID_IGNORE "IGNORE_THIS_DESIGN"
#define RESEARCH_MATERIAL_RECLAMATION_ID "__materials"
+1
View File
@@ -17,6 +17,7 @@
#define MODE_HOLOPAD "holopad"
#define MODE_CHANGELING "changeling"
#define MODE_VOCALCORDS "cords"
#define MODE_MONKEY "monkeyhive"
//Spans. Robot speech, italics, etc. Applied in compose_message().
#define SPAN_ROBOT "robot"
+1 -1
View File
@@ -5,7 +5,7 @@
//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
#error /tg/station server tools interface unconfigured
//Required interfaces (fill in with your codebase equivalent):
+6 -1
View File
@@ -61,7 +61,6 @@
#define DOCKING_NULL_DESTINATION 8
#define DOCKING_NULL_SOURCE 16
//Docking turf movements
#define MOVE_TURF 1
#define MOVE_AREA 2
@@ -75,3 +74,9 @@
#define SHUTTLE_DOCKER_LANDING_CLEAR 1
#define SHUTTLE_DOCKER_BLOCKED_BY_HIDDEN_PORT 2
#define SHUTTLE_DOCKER_BLOCKED 3
//Shuttle defaults
#define SHUTTLE_DEFAULT_TURF_TYPE /turf/open/space
#define SHUTTLE_DEFAULT_BASETURF_TYPE /turf/open/space
#define SHUTTLE_DEFAULT_SHUTTLE_AREA_TYPE /area/shuttle
#define SHUTTLE_DEFAULT_UNDERLYING_AREA /area/space
+1 -1
View File
@@ -25,6 +25,6 @@
//for clothing visor toggles, these determine which vars to toggle
#define VISOR_FLASHPROTECT 1
#define VISOR_TINT 2
#define VISOR_VISIONFLAGS 4 //all following flags_1 only matter for glasses
#define VISOR_VISIONFLAGS 4 //all following flags only matter for glasses
#define VISOR_DARKNESSVIEW 8
#define VISOR_INVISVIEW 16
+2 -2
View File
@@ -9,14 +9,14 @@
#define CHANNEL_BUZZ 1017
#define CHANNEL_BICYCLE 1016
//Citadel code
//CIT CHANNELS - TRY NOT TO REGRESS
#define CHANNEL_PRED 1015
#define CHANNEL_PREYLOOP 1014
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED
#define CHANNEL_HIGHEST_AVAILABLE 1013
#define CHANNEL_HIGHEST_AVAILABLE 1013 //CIT CHANGE - COMPENSATES FOR VORESOUND CHANNELS
#define SOUND_MINIMUM_PRESSURE 10
+26 -11
View File
@@ -10,17 +10,32 @@
//mob disabilities stat
#define BLIND 1
#define MUTE 2
#define DEAF 4
#define NEARSIGHT 8
#define FAT 32
#define HUSK 64
#define NOCLONE 128
#define CLUMSY 256
#define DUMB 512
#define MONKEYLIKE 1024 //sets IsAdvancedToolUser to FALSE
#define PACIFISM 2048
#define DISABILITY_BLIND "blind"
#define DISABILITY_MUTE "mute"
#define DISABILITY_DEAF "deaf"
#define DISABILITY_NEARSIGHT "nearsighted"
#define DISABILITY_FAT "fat"
#define DISABILITY_HUSK "husk"
#define DISABILITY_NOCLONE "noclone"
#define DISABILITY_CLUMSY "clumsy"
#define DISABILITY_DUMB "dumb"
#define DISABILITY_MONKEYLIKE "monkeylike" //sets IsAdvancedToolUser to FALSE
#define DISABILITY_PACIFISM "pacifism"
// common disability sources
#define EYE_DAMAGE "eye_damage"
#define GENETIC_MUTATION "genetic"
#define OBESITY "obesity"
#define MAGIC_DISABILITY "magic"
#define STASIS_MUTE "stasis"
#define GENETICS_SPELL "genetics_spell"
#define TRAUMA_DISABILITY "trauma"
#define CHEMICAL_DISABILITY "chemical"
// unique disability sources, still defines
#define STATUE_MUTE "statue"
#define CHANGELING_DRAIN "drain"
#define ABYSSAL_GAZE_BLIND "abyssal_gaze"
// bitflags for machine stat variable
#define BROKEN 1
+2
View File
@@ -64,6 +64,8 @@
#define STATUS_EFFECT_KINDLE /datum/status_effect/kindle //A knockdown reduced by 1 second for every 3 points of damage the target takes.
#define STATUS_EFFECT_ICHORIAL_STAIN /datum/status_effect/ichorial_stain //Prevents a servant from being revived by vitality matrices for one minute.
/////////////
// NEUTRAL //
/////////////
+46 -11
View File
@@ -46,16 +46,17 @@
#define INIT_ORDER_DBCORE 18
#define INIT_ORDER_BLACKBOX 17
#define INIT_ORDER_SERVER_MAINT 16
#define INIT_ORDER_RESEARCH 15
#define INIT_ORDER_EVENTS 14
#define INIT_ORDER_JOBS 13
#define INIT_ORDER_TICKER 12
#define INIT_ORDER_MAPPING 11
#define INIT_ORDER_ATOMS 10
#define INIT_ORDER_NETWORKS 9
#define INIT_ORDER_LANGUAGE 8
#define INIT_ORDER_MACHINES 7
#define INIT_ORDER_CIRCUIT 6
#define INIT_ORDER_INPUT 15
#define INIT_ORDER_RESEARCH 14
#define INIT_ORDER_EVENTS 13
#define INIT_ORDER_JOBS 12
#define INIT_ORDER_TICKER 11
#define INIT_ORDER_MAPPING 10
#define INIT_ORDER_ATOMS 9
#define INIT_ORDER_NETWORKS 8
#define INIT_ORDER_LANGUAGE 7
#define INIT_ORDER_MACHINES 6
#define INIT_ORDER_CIRCUIT 5
#define INIT_ORDER_TIMER 1
#define INIT_ORDER_DEFAULT 0
#define INIT_ORDER_AIR -1
@@ -70,6 +71,40 @@
#define INIT_ORDER_SQUEAK -40
#define INIT_ORDER_PERSISTENCE -100
// Subsystem fire priority, from lowest to highest priority
// If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child)
#define FIRE_PRIORITY_IDLE_NPC 1
#define FIRE_PRIORITY_SERVER_MAINT 1
#define FIRE_PRIORITY_GARBAGE 4
#define FIRE_PRIORITY_RESEARCH 4
#define FIRE_PRIORITY_AIR 5
#define FIRE_PRIORITY_NPC 5
#define FIRE_PRIORITY_PROCESS 6
#define FIRE_PRIORITY_THROWING 6
#define FIRE_PRIORITY_FLIGHTPACKS 7
#define FIRE_PRIORITY_SPACEDRIFT 7
#define FIRE_PRIOTITY_SMOOTHING 8
#define FIRE_PRIORITY_ORBIT 8
#define FIRE_PRIORITY_OBJ 9
#define FIRE_PRIORUTY_FIELDS 9
#define FIRE_PRIORITY_ACID 9
#define FIRE_PRIOTITY_BURNING 9
#define FIRE_PRIORITY_INBOUNDS 9
#define FIRE_PRIORITY_DEFAULT 10
#define FIRE_PRIORITY_PARALLAX 11
#define FIRE_PRIORITY_NETWORKS 12
#define FIRE_PRIORITY_MOBS 13
#define FIRE_PRIORITY_TGUI 14
#define FIRE_PRIORITY_TICKER 19
#define FIRE_PRIORITY_OVERLAYS 20
#define FIRE_PRIORITY_INPUT 100 // This must always always be the max highest priority. Player input must never be lost.
// SS runlevels
#define RUNLEVEL_INIT 0
@@ -102,4 +137,4 @@
A.overlays.Cut();\
}\
A.flags_1 &= ~OVERLAY_QUEUED_1;\
}
}
+3
View File
@@ -0,0 +1,3 @@
#define CHANGETURF_DEFER_CHANGE 1
#define CHANGETURF_IGNORE_AIR 2
#define CHANGETURF_FORCEOP 4
+1 -2
View File
@@ -30,7 +30,7 @@ GLOBAL_VAR_INIT(cmp_field, "name")
return sorttext(a.ckey, b.ckey)
/proc/cmp_subsystem_init(datum/controller/subsystem/a, datum/controller/subsystem/b)
return b.init_order - a.init_order
return initial(b.init_order) - initial(a.init_order) //uses initial() so it can be used on types
/proc/cmp_subsystem_display(datum/controller/subsystem/a, datum/controller/subsystem/b)
return sorttext(b.name, a.name)
@@ -72,4 +72,3 @@ GLOBAL_VAR_INIT(cmp_field, "name")
/proc/cmp_profile_count_dsc(list/A, list/B)
return B[PROFILE_ITEM_COUNT] - A[PROFILE_ITEM_COUNT]
+2 -2
View File
@@ -30,7 +30,7 @@
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
//CIT CHANGES START HERE, ADDS SNOWFLAKE BODYPARTS AND MORE
//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)
@@ -56,7 +56,7 @@
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.
//END OF CIT CHANGES
//Species
for(var/spath in subtypesof(/datum/species))
+7
View File
@@ -267,6 +267,13 @@
if(!target_turf)
return NULLTURF_BORDER
var/area/target_area = get_area(target_turf)
var/area/source_area = get_area(source)
if(source_area.canSmoothWithAreas && !is_type_in_typecache(target_area, source_area.canSmoothWithAreas))
return null
if(target_area.canSmoothWithAreas && !is_type_in_typecache(source_area, target_area.canSmoothWithAreas))
return null
if(source.canSmoothWith)
var/atom/A
if(source.smooth & SMOOTH_MORE)
+17
View File
@@ -0,0 +1,17 @@
// Helpers for checking whether a z-level conforms to a specific requirement
// Basic levels
#define is_centcom_level(z) ((z) == ZLEVEL_CENTCOM)
#define is_station_level(z) ((z) in GLOB.station_z_levels)
#define is_mining_level(z) ((z) == ZLEVEL_MINING)
#define is_reebe(z) ((z) == ZLEVEL_CITYOFCOGS)
#define is_transit_level(z) ((z) == ZLEVEL_TRANSIT)
#define is_away_level(z) ((z) > ZLEVEL_SPACEMAX)
// If true, the singularity cannot strip away asteroid turf on this Z
#define is_planet_level(z) (GLOB.z_is_planet["z"])
+3 -1
View File
@@ -69,6 +69,7 @@
if(!GLOB.wings_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list)
//CIT CHANGES - genitals and such
if(!GLOB.cock_shapes_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list)
if(!GLOB.vagina_shapes_list.len)
@@ -90,6 +91,7 @@
womb = 1
breasts = 1 */
//CIT CHANGE - changes this entire return to support cit's snowflake parts
return(list(
"mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
"mcolor2" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
@@ -473,7 +475,7 @@ Proc for attack log creation, because really why not
if(extra_args)
new_args += extra_args
for(var/j in 1 to amount)
for(var/j in 1 to amount)
var/atom/X = new spawn_type(arglist(new_args))
X.admin_spawned = admin_spawn
+1 -2
View File
@@ -121,7 +121,6 @@ GLOBAL_VAR(command_name)
return new_station_name
/proc/syndicate_name()
var/name = ""
// Prefix
@@ -143,7 +142,7 @@ GLOBAL_VAR(command_name)
else
name += pick("-", "*", "")
name += pick("Tech", "Sun", "Co", "Tek", "X", "Inc", "Gen", "Star", "Dyne", "Code", "Hive")
return name
+1 -1
View File
@@ -55,7 +55,7 @@
for(var/mob/M in GLOB.player_list)
if(!isnewplayer(M) && M.can_hear())
to_chat(M, "<b><font size = 3><font color = red>[title]</font color><BR>[message]</font size></b><BR>")
to_chat(M, "<span class='big bold'><font color = red>[title]</font color><BR>[message]</span><BR>")
if(M.client.prefs.toggles & SOUND_ANNOUNCEMENTS)
if(alert)
SEND_SOUND(M, sound('sound/misc/notice1.ogg'))
+102 -47
View File
@@ -1,41 +1,27 @@
#define POPCOUNT_SURVIVORS "survivors" //Not dead at roundend
#define POPCOUNT_ESCAPEES "escapees" //Not dead and on centcomm/shuttles marked as escaped
#define POPCOUNT_GHOSTS "ghosts" //Ghosts on roundend
#define POPCOUNT_HUMAN_ESCAPEES "human_escapees" //Same as escapees but human only
#define POPCOUNT_HUMAN_SURVIVORS "human_survivors" //Same as survivors but human only
#define POPCOUNT_SHUTTLE_ESCAPEES "shuttle_escapees" //Emergency shuttle only.
/datum/controller/subsystem/ticker/proc/gather_roundend_feedback()
//Survivor numbers
var/clients = GLOB.player_list.len
var/surviving_humans = 0
var/surviving_total = 0
var/ghosts = 0
var/escaped_humans = 0
var/escaped_total = 0
var/popcount = count_survivors()
SSblackbox.record_feedback("nested tally", "round_end_stats", clients, list("clients"))
SSblackbox.record_feedback("nested tally", "round_end_stats", popcount[POPCOUNT_GHOSTS], list("ghosts"))
SSblackbox.record_feedback("nested tally", "round_end_stats", popcount[POPCOUNT_HUMAN_SURVIVORS], list("survivors", "human"))
SSblackbox.record_feedback("nested tally", "round_end_stats", popcount[POPCOUNT_SURVIVORS], list("survivors", "total"))
SSblackbox.record_feedback("nested tally", "round_end_stats", popcount[POPCOUNT_HUMAN_ESCAPEES], list("escapees", "human"))
SSblackbox.record_feedback("nested tally", "round_end_stats", popcount[POPCOUNT_ESCAPEES], list("escapees", "total"))
//Antag information
gather_antag_data()
for(var/mob/M in GLOB.player_list)
if(ishuman(M))
if(!M.stat)
surviving_humans++
if(M.z == ZLEVEL_CENTCOM)
escaped_humans++
if(!M.stat)
surviving_total++
if(M.z == ZLEVEL_CENTCOM)
escaped_total++
//Nuke disk
record_nuke_disk_location()
if(isobserver(M))
ghosts++
if(clients)
SSblackbox.record_feedback("nested tally", "round_end_stats", clients, list("clients"))
if(ghosts)
SSblackbox.record_feedback("nested tally", "round_end_stats", ghosts, list("ghosts"))
if(surviving_humans)
SSblackbox.record_feedback("nested tally", "round_end_stats", surviving_humans, list("survivors", "human"))
if(surviving_total)
SSblackbox.record_feedback("nested tally", "round_end_stats", surviving_total, list("survivors", "total"))
if(escaped_humans)
SSblackbox.record_feedback("nested tally", "round_end_stats", escaped_humans, list("escapees", "human"))
if(escaped_total)
SSblackbox.record_feedback("nested tally", "round_end_stats", escaped_total, list("escapees", "total"))
gather_antag_success_rate()
/datum/controller/subsystem/ticker/proc/gather_antag_success_rate()
/datum/controller/subsystem/ticker/proc/gather_antag_data()
var/team_gid = 1
var/list/team_ids = list()
@@ -63,18 +49,64 @@
antag_info["objectives"] += list(list("objective_type"=O.type,"text"=O.explanation_text,"result"=result))
SSblackbox.record_feedback("associative", "antagonists", 1, antag_info)
/datum/controller/subsystem/ticker/proc/record_nuke_disk_location()
var/obj/item/disk/nuclear/N = locate() in GLOB.poi_list
if(N)
var/list/data = list()
var/turf/T = get_turf(N)
if(T)
data["x"] = T.x
data["y"] = T.y
data["z"] = T.z
var/atom/outer = get_atom_on_turf(N,/mob/living)
if(outer != N)
if(isliving(outer))
var/mob/living/L = outer
data["holder"] = L.real_name
else
data["holder"] = outer.name
SSblackbox.record_feedback("associative", "roundend_nukedisk", 1 , data)
/datum/controller/subsystem/ticker/proc/gather_newscaster()
var/json_file = file("[GLOB.log_directory]/newscaster.json")
var/list/file_data = list()
var/pos = 1
for(var/V in GLOB.news_network.network_channels)
var/datum/newscaster/feed_channel/channel = V
if(!istype(channel))
stack_trace("Non-channel in newscaster channel list")
continue
file_data["[pos]"] = list("channel name" = "[channel.channel_name]", "author" = "[channel.author]", "censored" = channel.censored ? 1 : 0, "author censored" = channel.authorCensor ? 1 : 0, "messages" = list())
for(var/M in channel.messages)
var/datum/newscaster/feed_message/message = M
if(!istype(message))
stack_trace("Non-message in newscaster channel messages list")
continue
var/list/comment_data = list()
for(var/C in message.comments)
var/datum/newscaster/feed_comment/comment = C
if(!istype(comment))
stack_trace("Non-message in newscaster message comments list")
continue
comment_data += list(list("author" = "[comment.author]", "time stamp" = "[comment.time_stamp]", "body" = "[comment.body]"))
file_data["[pos]"]["messages"] += list(list("author" = "[message.author]", "time stamp" = "[message.time_stamp]", "censored" = message.bodyCensor ? 1 : 0, "author censored" = message.authorCensor ? 1 : 0, "photo file" = "[message.photo_file]", "photo caption" = "[message.caption]", "body" = "[message.body]", "comments" = comment_data))
pos++
if(GLOB.news_network.wanted_issue.active)
file_data["wanted"] = list("author" = "[GLOB.news_network.wanted_issue.scannedUser]", "criminal" = "[GLOB.news_network.wanted_issue.criminal]", "description" = "[GLOB.news_network.wanted_issue.body]", "photo file" = "[GLOB.news_network.wanted_issue.photo_file]")
WRITE_FILE(json_file, json_encode(file_data))
/datum/controller/subsystem/ticker/proc/declare_completion()
set waitfor = FALSE
to_chat(world, "<BR><BR><BR><FONT size=3><B>The round has ended.</B></FONT>")
to_chat(world, "<BR><BR><BR><span class='big bold'>The round has ended.</span>")
if(LAZYLEN(GLOB.round_end_notifiees))
send2irc("Notice", "[GLOB.round_end_notifiees.Join(", ")] the round has ended.")
/*for(var/client/C in GLOB.clients)
for(var/client/C in GLOB.clients)
if(!C.credits)
C.RollCredits()
C.playtitlemusic(40)*/
C.playtitlemusic(40)
display_report()
@@ -95,7 +127,7 @@
send2irc("Server", "Round just ended.")
if(CONFIG_GET(string/cross_server_address))
if(length(CONFIG_GET(keyed_string_list/cross_server)))
send_news_report()
CHECK_TICK
@@ -169,29 +201,49 @@
return parts.Join()
/datum/controller/subsystem/ticker/proc/survivor_report()
var/list/parts = list()
/datum/controller/subsystem/ticker/proc/count_survivors()
. = list()
var/station_evacuated = EMERGENCY_ESCAPED_OR_ENDGAMED
var/num_survivors = 0
var/num_escapees = 0
var/num_shuttle_escapees = 0
var/num_ghosts = 0
var/num_human_survivors = 0
var/num_human_escapees = 0
//Player status report
for(var/i in GLOB.mob_list)
var/mob/Player = i
if(Player.mind && !isnewplayer(Player))
if(isobserver(Player))
num_ghosts++
if(Player.stat != DEAD && !isbrain(Player))
num_survivors++
if(ishuman(Player))
num_human_survivors++
if(station_evacuated) //If the shuttle has already left the station
var/list/area/shuttle_areas
if(SSshuttle && SSshuttle.emergency)
shuttle_areas = SSshuttle.emergency.shuttle_areas
if(Player.onCentCom() || Player.onSyndieBase())
num_escapees++
if(ishuman(Player))
num_human_escapees++
if(shuttle_areas[get_area(Player)])
num_shuttle_escapees++
.[POPCOUNT_SURVIVORS] = num_survivors
.[POPCOUNT_ESCAPEES] = num_escapees
.[POPCOUNT_SHUTTLE_ESCAPEES] = num_shuttle_escapees
.[POPCOUNT_HUMAN_SURVIVORS] = num_human_survivors
.[POPCOUNT_HUMAN_ESCAPEES] = num_human_escapees
.[POPCOUNT_GHOSTS] = num_ghosts
/datum/controller/subsystem/ticker/proc/survivor_report()
var/list/parts = list()
var/station_evacuated = EMERGENCY_ESCAPED_OR_ENDGAMED
var/popcount = count_survivors()
//Round statistics report
var/datum/station_state/end_state = new /datum/station_state()
end_state.count()
@@ -203,9 +255,9 @@
if(total_players)
parts+= "[GLOB.TAB]Total Population: <B>[total_players]</B>"
if(station_evacuated)
parts += "<BR>[GLOB.TAB]Evacuation Rate: <B>[num_escapees] ([PERCENT(num_escapees/total_players)]%)</B>"
parts += "[GLOB.TAB](on emergency shuttle): <B>[num_shuttle_escapees] ([PERCENT(num_shuttle_escapees/total_players)]%)</B>"
parts += "[GLOB.TAB]Survival Rate: <B>[num_survivors] ([PERCENT(num_survivors/total_players)]%)</B>"
parts += "<BR>[GLOB.TAB]Evacuation Rate: <B>[popcount[POPCOUNT_ESCAPEES]] ([PERCENT(popcount[POPCOUNT_ESCAPEES]/total_players)]%)</B>"
parts += "[GLOB.TAB](on emergency shuttle): <B>[popcount[POPCOUNT_SHUTTLE_ESCAPEES]] ([PERCENT(popcount[POPCOUNT_SHUTTLE_ESCAPEES]/total_players)]%)</B>"
parts += "[GLOB.TAB]Survival Rate: <B>[popcount[POPCOUNT_SURVIVORS]] ([PERCENT(popcount[POPCOUNT_SURVIVORS]/total_players)]%)</B>"
return parts.Join("<br>")
/datum/controller/subsystem/ticker/proc/show_roundend_report(client/C,common_report)
@@ -343,7 +395,7 @@
currrent_category = A.roundend_category
previous_category = A
result += A.roundend_report()
result += "<br>"
result += "<br><br>"
if(all_antagonists.len)
var/datum/antagonist/last = all_antagonists[all_antagonists.len]
@@ -382,7 +434,10 @@
/proc/printplayer(datum/mind/ply, fleecheck)
var/text = "<b>[ply.key]</b> was <b>[ply.name]</b> the <b>[ply.assigned_role]</b> and"
var/jobtext = ""
if(ply.assigned_role)
jobtext = " the <b>[ply.assigned_role]</b>"
var/text = "<b>[ply.key]</b> was <b>[ply.name]</b>[jobtext] and"
if(ply.current)
if(ply.current.stat == DEAD)
text += " <span class='redtext'>died</span>"
@@ -390,7 +445,7 @@
text += " <span class='greentext'>survived</span>"
if(fleecheck)
var/turf/T = get_turf(ply.current)
if(!T || !(T.z in GLOB.station_z_levels))
if(!T || !is_station_level(T.z))
text += " while <span class='redtext'>fleeing the station</span>"
if(ply.current.real_name != ply.name)
text += " as <b>[ply.current.real_name]</b>"
-1
View File
@@ -139,7 +139,6 @@
return NORTH
//returns the north-zero clockwise angle in degrees, given a direction
/proc/dir2angle(D)
switch(D)
if(NORTH)
+4 -6
View File
@@ -199,6 +199,8 @@ Turf and target are separate in case you want to teleport some distance from a t
newname = C.prefs.custom_names[role]
else
switch(role)
if("human")
newname = random_unique_name(gender)
if("clown")
newname = pick(GLOB.clown_names)
if("mime")
@@ -524,7 +526,7 @@ Turf and target are separate in case you want to teleport some distance from a t
processing_list.Cut(1, 2)
//Byond does not allow things to be in multiple contents, or double parent-child hierarchies, so only += is needed
//This is also why we don't need to check against assembled as we go along
processing_list += A.contents
processing_list += A.contents
assembled += A
return assembled
@@ -1434,11 +1436,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
temp = ((temp + (temp>>3))&29127) % 63 //070707
return temp
//checks if a turf is in the planet z list.
/proc/turf_z_is_planet(turf/T)
return GLOB.z_is_planet["[T.z]"]
//same as do_mob except for movables and it allows both to drift and doesn't draw progressbar
/proc/do_atom(atom/movable/user , atom/movable/target, time = 30, uninterruptible = 0,datum/callback/extra_checks = null)
if(!user || !target)
@@ -1492,6 +1489,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
var/time_low = num2hex(world.time, 3)
var/time_clock = num2hex(TICK_DELTA_TO_MS(world.tick_usage), 3)
return "{[time_high]-[time_mid]-[GUID_VERSION][time_low]-[GUID_VARIANT][time_clock]-[node_id]}"
// \ref behaviour got changed in 512 so this is necesary to replicate old behaviour.
+1 -1
View File
@@ -104,6 +104,6 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/storage/secure/briefcase = 3,
/obj/item/storage/toolbox/artistic = 2,
/obj/item/toy/eightball = 1,
/obj/item/storage/daki = 3,
/obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint
"" = 3
))
+2 -2
View File
@@ -22,11 +22,11 @@ GLOBAL_LIST_EMPTY(carbon_list) //all instances of /mob/living/carbon and subt
GLOBAL_LIST_EMPTY(ai_list)
GLOBAL_LIST_EMPTY(pai_list)
GLOBAL_LIST_EMPTY(available_ai_shells)
GLOBAL_LIST_INIT(simple_animals, list(list(),list(),list())) // One for each AI_* status define
GLOBAL_LIST_INIT(simple_animals, list(list(),list(),list(),list())) // One for each AI_* status define
GLOBAL_LIST_EMPTY(spidermobs) //all sentient spider mobs
GLOBAL_LIST_EMPTY(bots_list)
GLOBAL_LIST_EMPTY(language_datum_instances)
GLOBAL_LIST_EMPTY(all_languages)
GLOBAL_LIST_EMPTY(latejoiners) //All latejoining people, for traitor-target purposes.
GLOBAL_LIST_EMPTY(latejoiners) //CIT CHANGE - All latejoining people, for traitor-target purposes.
+1
View File
@@ -45,3 +45,4 @@ Be sure to include required js functions in your page, or it'll raise an excepti
receiver << output(argums,"[control_id]:replaceContent")
return
+104 -104
View File
@@ -1,104 +1,104 @@
/*
Adjacency proc for determining touch range
This is mostly to determine if a user can enter a square for the purposes of touching something.
Examples include reaching a square diagonally or reaching something on the other side of a glass window.
This is calculated by looking for border items, or in the case of clicking diagonally from yourself, dense items.
This proc will NOT notice if you are trying to attack a window on the other side of a dense object in its turf. There is a window helper for that.
Note that in all cases the neighbor is handled simply; this is usually the user's mob, in which case it is up to you
to check that the mob is not inside of something
*/
/atom/proc/Adjacent(atom/neighbor) // basic inheritance, unused
return 0
// Not a sane use of the function and (for now) indicative of an error elsewhere
/area/Adjacent(var/atom/neighbor)
CRASH("Call to /area/Adjacent(), unimplemented proc")
/*
Adjacency (to turf):
* If you are in the same turf, always true
* If you are vertically/horizontally adjacent, ensure there are no border objects
* If you are diagonally adjacent, ensure you can pass through at least one of the mutually adjacent square.
* Passing through in this case ignores anything with the LETPASSTHROW pass flag, such as tables, racks, and morgue trays.
*/
/turf/Adjacent(atom/neighbor, atom/target = null, atom/movable/mover = null)
var/turf/T0 = get_turf(neighbor)
if(T0 == src) //same turf
return 1
if(get_dist(src,T0) > 1) //too far
return 0
// Non diagonal case
if(T0.x == x || T0.y == y)
// Check for border blockages
return T0.ClickCross(get_dir(T0,src), border_only = 1, target_atom = target, mover = mover) && src.ClickCross(get_dir(src,T0), border_only = 1, target_atom = target, mover = mover)
// Diagonal case
var/in_dir = get_dir(T0,src) // eg. northwest (1+8) = 9 (00001001)
var/d1 = in_dir&3 // eg. north (1+8)&3 (0000 0011) = 1 (0000 0001)
var/d2 = in_dir&12 // eg. west (1+8)&12 (0000 1100) = 8 (0000 1000)
for(var/d in list(d1,d2))
if(!T0.ClickCross(d, border_only = 1, target_atom = target, mover = mover))
continue // could not leave T0 in that direction
var/turf/T1 = get_step(T0,d)
if(!T1 || T1.density)
continue
if(!T1.ClickCross(get_dir(T1,src), border_only = 0, target_atom = target, mover = mover) || !T1.ClickCross(get_dir(T1,T0), border_only = 0, target_atom = target, mover = mover))
continue // couldn't enter or couldn't leave T1
if(!src.ClickCross(get_dir(src,T1), border_only = 1, target_atom = target, mover = mover))
continue // could not enter src
return 1 // we don't care about our own density
return 0
/*
Adjacency (to anything else):
* Must be on a turf
*/
/atom/movable/Adjacent(var/atom/neighbor)
if(neighbor == loc)
return TRUE
if(!isturf(loc))
return FALSE
if(loc.Adjacent(neighbor,target = neighbor, mover = src))
return TRUE
return FALSE
// This is necessary for storage items not on your person.
/obj/item/Adjacent(var/atom/neighbor, var/recurse = 1)
if(neighbor == loc)
return 1
if(isitem(loc))
if(recurse > 0)
return loc.Adjacent(neighbor,recurse - 1)
return 0
return ..()
/*
This checks if you there is uninterrupted airspace between that turf and this one.
This is defined as any dense ON_BORDER_1 object, or any dense object without LETPASSTHROW.
The border_only flag allows you to not objects (for source and destination squares)
*/
/turf/proc/ClickCross(target_dir, border_only, target_atom = null, atom/movable/mover = null)
for(var/obj/O in src)
if((mover && O.CanPass(mover,get_step(src,target_dir))) || (!mover && !O.density))
continue
if(O == target_atom || O == mover || (O.pass_flags & LETPASSTHROW)) //check if there's a dense object present on the turf
continue // LETPASSTHROW is used for anything you can click through (or the firedoor special case, see above)
if( O.flags_1&ON_BORDER_1) // windows are on border, check them first
if( O.dir & target_dir || O.dir & (O.dir-1) ) // full tile windows are just diagonals mechanically
return 0 //O.dir&(O.dir-1) is false for any cardinal direction, but true for diagonal ones
else if( !border_only ) // dense, not on border, cannot pass over
return 0
return 1
/*
Adjacency proc for determining touch range
This is mostly to determine if a user can enter a square for the purposes of touching something.
Examples include reaching a square diagonally or reaching something on the other side of a glass window.
This is calculated by looking for border items, or in the case of clicking diagonally from yourself, dense items.
This proc will NOT notice if you are trying to attack a window on the other side of a dense object in its turf. There is a window helper for that.
Note that in all cases the neighbor is handled simply; this is usually the user's mob, in which case it is up to you
to check that the mob is not inside of something
*/
/atom/proc/Adjacent(atom/neighbor) // basic inheritance, unused
return 0
// Not a sane use of the function and (for now) indicative of an error elsewhere
/area/Adjacent(var/atom/neighbor)
CRASH("Call to /area/Adjacent(), unimplemented proc")
/*
Adjacency (to turf):
* If you are in the same turf, always true
* If you are vertically/horizontally adjacent, ensure there are no border objects
* If you are diagonally adjacent, ensure you can pass through at least one of the mutually adjacent square.
* Passing through in this case ignores anything with the LETPASSTHROW pass flag, such as tables, racks, and morgue trays.
*/
/turf/Adjacent(atom/neighbor, atom/target = null, atom/movable/mover = null)
var/turf/T0 = get_turf(neighbor)
if(T0 == src) //same turf
return TRUE
if(get_dist(src, T0) > 1 || z != T0.z) //too far
return FALSE
// Non diagonal case
if(T0.x == x || T0.y == y)
// Check for border blockages
return T0.ClickCross(get_dir(T0,src), border_only = 1, target_atom = target, mover = mover) && src.ClickCross(get_dir(src,T0), border_only = 1, target_atom = target, mover = mover)
// Diagonal case
var/in_dir = get_dir(T0,src) // eg. northwest (1+8) = 9 (00001001)
var/d1 = in_dir&3 // eg. north (1+8)&3 (0000 0011) = 1 (0000 0001)
var/d2 = in_dir&12 // eg. west (1+8)&12 (0000 1100) = 8 (0000 1000)
for(var/d in list(d1,d2))
if(!T0.ClickCross(d, border_only = 1, target_atom = target, mover = mover))
continue // could not leave T0 in that direction
var/turf/T1 = get_step(T0,d)
if(!T1 || T1.density)
continue
if(!T1.ClickCross(get_dir(T1,src), border_only = 0, target_atom = target, mover = mover) || !T1.ClickCross(get_dir(T1,T0), border_only = 0, target_atom = target, mover = mover))
continue // couldn't enter or couldn't leave T1
if(!src.ClickCross(get_dir(src,T1), border_only = 1, target_atom = target, mover = mover))
continue // could not enter src
return 1 // we don't care about our own density
return 0
/*
Adjacency (to anything else):
* Must be on a turf
*/
/atom/movable/Adjacent(var/atom/neighbor)
if(neighbor == loc)
return TRUE
if(!isturf(loc))
return FALSE
if(loc.Adjacent(neighbor,target = neighbor, mover = src))
return TRUE
return FALSE
// This is necessary for storage items not on your person.
/obj/item/Adjacent(var/atom/neighbor, var/recurse = 1)
if(neighbor == loc)
return 1
if(isitem(loc))
if(recurse > 0)
return loc.Adjacent(neighbor,recurse - 1)
return 0
return ..()
/*
This checks if you there is uninterrupted airspace between that turf and this one.
This is defined as any dense ON_BORDER_1 object, or any dense object without LETPASSTHROW.
The border_only flag allows you to not objects (for source and destination squares)
*/
/turf/proc/ClickCross(target_dir, border_only, target_atom = null, atom/movable/mover = null)
for(var/obj/O in src)
if((mover && O.CanPass(mover,get_step(src,target_dir))) || (!mover && !O.density))
continue
if(O == target_atom || O == mover || (O.pass_flags & LETPASSTHROW)) //check if there's a dense object present on the turf
continue // LETPASSTHROW is used for anything you can click through (or the firedoor special case, see above)
if( O.flags_1&ON_BORDER_1) // windows are on border, check them first
if( O.dir & target_dir || O.dir & (O.dir-1) ) // full tile windows are just diagonals mechanically
return 0 //O.dir&(O.dir-1) is false for any cardinal direction, but true for diagonal ones
else if( !border_only ) // dense, not on border, cannot pass over
return 0
return 1
+1 -1
View File
@@ -104,7 +104,7 @@
#define ui_health "EAST-1:28,CENTER-1:15"
#define ui_internal "EAST-1:28,CENTER:17"
//borgs
//borgs
#define ui_borg_health "EAST-1:28,CENTER-1:15" //borgs have the health display where humans have the pressure damage indicator.
//aliens
+1 -2
View File
@@ -23,8 +23,7 @@
if(..())
return
var/mob/living/silicon/ai/AI = usr
var/camera = input(AI, "Choose which camera you want to view", "Cameras") as null|anything in AI.get_camera_list()
AI.ai_camera_list(camera)
AI.show_camera_list()
/obj/screen/ai/camera_track
name = "Track With Camera"
+69
View File
@@ -0,0 +1,69 @@
#define CREDIT_ROLL_SPEED 125
#define CREDIT_SPAWN_SPEED 10
#define CREDIT_ANIMATE_HEIGHT (14 * world.icon_size)
#define CREDIT_EASE_DURATION 22
#define CREDITS_PATH "[GLOB.config_dir]contributors.dmi"
/client/proc/RollCredits()
set waitfor = FALSE
if(!fexists(CREDITS_PATH))
return
var/icon/credits_icon = new(CREDITS_PATH)
LAZYINITLIST(credits)
var/list/_credits = credits
verbs += /client/proc/ClearCredits
var/static/list/credit_order_for_this_round
if(isnull(credit_order_for_this_round))
credit_order_for_this_round = list("Thanks for playing!") + (shuffle(icon_states(credits_icon)) - "Thanks for playing!")
for(var/I in credit_order_for_this_round)
if(!credits)
return
_credits += new /obj/screen/credit(null, I, src, credits_icon)
sleep(CREDIT_SPAWN_SPEED)
sleep(CREDIT_ROLL_SPEED - CREDIT_SPAWN_SPEED)
verbs -= /client/proc/ClearCredits
qdel(credits_icon)
/client/proc/ClearCredits()
set name = "Hide Credits"
set category = "OOC"
verbs -= /client/proc/ClearCredits
QDEL_LIST(credits)
credits = null
/obj/screen/credit
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
alpha = 0
screen_loc = "12,1"
layer = SPLASHSCREEN_LAYER
var/client/parent
var/matrix/target
/obj/screen/credit/Initialize(mapload, credited, client/P, icon/I)
. = ..()
icon = I
parent = P
icon_state = credited
maptext = credited
maptext_x = world.icon_size + 8
maptext_y = (world.icon_size / 2) - 4
maptext_width = world.icon_size * 3
var/matrix/M = matrix(transform)
M.Translate(0, CREDIT_ANIMATE_HEIGHT)
animate(src, transform = M, time = CREDIT_ROLL_SPEED)
target = M
animate(src, alpha = 255, time = CREDIT_EASE_DURATION, flags = ANIMATION_PARALLEL)
addtimer(CALLBACK(src, .proc/FadeOut), CREDIT_ROLL_SPEED - CREDIT_EASE_DURATION)
QDEL_IN(src, CREDIT_ROLL_SPEED)
P.screen += src
/obj/screen/credit/Destroy()
var/client/P = parent
P.screen -= src
icon = null
LAZYREMOVE(P.credits, src)
parent = null
return ..()
/obj/screen/credit/proc/FadeOut()
animate(src, alpha = 0, transform = target, time = CREDIT_EASE_DURATION)
+1 -1
View File
@@ -1,3 +1,4 @@
/mob
var/list/screens = list()
@@ -174,4 +175,3 @@
layer = LIGHTING_LAYER
blend_mode = BLEND_ADD
show_when_dead = TRUE
+2 -1
View File
@@ -280,10 +280,11 @@
healths = new /obj/screen/healths()
infodisplay += healths
//citadel code
//CIT CHANGE - adds arousal to hud
arousal = new /obj/screen/arousal()
arousal.icon_state = (owner.canbearoused == 1 ? "arousal0" : "")
infodisplay += arousal
//END OF CIT CHANGES
healthdoll = new /obj/screen/healthdoll()
infodisplay += healthdoll
-2
View File
@@ -60,8 +60,6 @@
var/pref = C.prefs.parallax
if (isnull(pref))
pref = PARALLAX_HIGH
if (C.byond_version < 511)
pref = PARALLAX_DISABLE
switch(C.prefs.parallax)
if (PARALLAX_INSANE)
C.parallax_throttle = FALSE
+4 -1
View File
@@ -58,8 +58,11 @@
SendSignal(COMSIG_ITEM_ATTACK, M, user)
if(flags_1 & NOBLUDGEON_1)
return
if(user.disabilities & PACIFISM)
if(force && user.has_disability(DISABILITY_PACIFISM))
to_chat(user, "<span class='warning'>You don't want to harm other living beings!</span>")
return
if(!force)
playsound(loc, 'sound/weapons/tap.ogg', get_clamped_volume(), 1, -1)
else if(hitsound)
+1 -1
View File
@@ -78,7 +78,7 @@
var/mob/living/carbon/tk_user = null
/obj/item/tk_grab/Initialize()
..()
. = ..()
START_PROCESSING(SSfastprocess, src)
/obj/item/tk_grab/Destroy()
+4 -5
View File
@@ -21,7 +21,7 @@
S = new(T)
S.reagents.add_reagent("semen", reac_volume)
if(data["blood_DNA"])
S.blood_DNA[data["blood_DNA"]] = data["blood_type"]
S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
/obj/effect/decal/cleanable/semen
name = "semen"
@@ -62,17 +62,16 @@
icon = 'code/citadel/icons/effects.dmi'
icon_state = "fem1"
random_icon_states = list("fem1", "fem2", "fem3", "fem4")
blood_DNA = list()
blood_state = null
bloodiness = null
/obj/effect/decal/cleanable/femcum/New()
..()
dir = pick(1,2,4,8)
add_blood_DNA(list("Non-human DNA" = "A+"))
/obj/effect/decal/cleanable/femcum/replace_decal(obj/effect/decal/cleanable/femcum/F)
if (F.blood_DNA)
blood_DNA |= F.blood_DNA.Copy()
F.add_blood_DNA(return_blood_DNA())
..()
/datum/reagent/consumable/femcum/reaction_turf(turf/T, reac_volume)
@@ -86,7 +85,7 @@
S = new(T)
S.reagents.add_reagent("femcum", reac_volume)
if(data["blood_DNA"])
S.blood_DNA[data["blood_DNA"]] = data["blood_type"]
S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
//aphrodisiac & anaphrodisiac
@@ -10,6 +10,14 @@
w_class = WEIGHT_CLASS_TINY
flags_1 = NOBLUDGEON_1
/obj/item/soap/cebu //real versions, for admin shenanigans. Adminspawn only
desc = "A bright blue bar of soap that smells of wolves"
icon = 'icons/obj/custom.dmi'
icon_state = "cebu"
/obj/item/soap/cebu/fast //speedyquick cleaning version. Still not as fast as Syndiesoap. Adminspawn only.
cleanspeed = 15
/*Inferno707*/
+2 -2
View File
@@ -259,7 +259,7 @@
to_chat(user,"<span class='notice'>You clean \the [target.name].</span>")
var/obj/effect/decal/cleanable/C = locate() in target
qdel(C)
target.clean_blood()
SendSignal(COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
else if(ishuman(target))
if(src.emagged)
var/mob/living/silicon/robot.R = user
@@ -292,7 +292,7 @@
to_chat(user, "<span class='notice'>You clean \the [target.name].</span>")
var/obj/effect/decal/cleanable/C = locate() in target
qdel(C)
target.clean_blood()
SendSignal(COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
return
+1 -1
View File
@@ -260,7 +260,7 @@
for(var/L in relevant_layers) //Less hardcode
H.remove_overlay(L)
if(H.disabilities & HUSK)
if(H.has_disability(DISABILITY_HUSK))
return
//start scanning for genitals
//var/list/worn_stuff = H.get_equipped_items()//cache this list so it's not built again
+18 -3
View File
@@ -53,8 +53,9 @@
. = !(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "ValidateAndSet" && GLOB.LastAdminCalledTargetRef == "[REF(src)]")
if(!.)
log_admin_private("Config set of [type] to [str_val] attempted by [key_name(usr)]")
/datum/config_entry/proc/ValidateAndSet(str_val)
VASProcCallGuard(str_val)
CRASH("Invalid config entry type!")
/datum/config_entry/proc/ValidateKeyedList(str_val, list_mode, splitter)
@@ -78,12 +79,12 @@
if(LIST_MODE_TEXT)
temp = key_value
continue_check = temp
if(continue_check && ValidateKeyName(key_name))
if(continue_check && ValidateListEntry(key_name, temp))
value[key_name] = temp
return TRUE
return FALSE
/datum/config_entry/proc/ValidateKeyName(key_name)
/datum/config_entry/proc/ValidateListEntry(key_name, key_value)
return TRUE
/datum/config_entry/string
@@ -95,6 +96,8 @@
return var_name != "auto_trim" && ..()
/datum/config_entry/string/ValidateAndSet(str_val)
if(!VASProcCallGuard(str_val))
return FALSE
value = auto_trim ? trim(str_val) : str_val
return TRUE
@@ -106,6 +109,8 @@
var/min_val = -INFINITY
/datum/config_entry/number/ValidateAndSet(str_val)
if(!VASProcCallGuard(str_val))
return FALSE
var/temp = text2num(trim(str_val))
if(!isnull(temp))
value = CLAMP(integer ? round(temp) : temp, min_val, max_val)
@@ -123,6 +128,8 @@
abstract_type = /datum/config_entry/flag
/datum/config_entry/flag/ValidateAndSet(str_val)
if(!VASProcCallGuard(str_val))
return FALSE
value = text2num(trim(str_val)) != 0
return TRUE
@@ -131,6 +138,8 @@
value = list()
/datum/config_entry/number_list/ValidateAndSet(str_val)
if(!VASProcCallGuard(str_val))
return FALSE
str_val = trim(str_val)
var/list/new_list = list()
var/list/values = splittext(str_val," ")
@@ -150,6 +159,8 @@
dupes_allowed = TRUE
/datum/config_entry/keyed_flag_list/ValidateAndSet(str_val)
if(!VASProcCallGuard(str_val))
return FALSE
return ValidateKeyedList(str_val, LIST_MODE_FLAG, " ")
/datum/config_entry/keyed_number_list
@@ -162,6 +173,8 @@
return var_name != "splitter" && ..()
/datum/config_entry/keyed_number_list/ValidateAndSet(str_val)
if(!VASProcCallGuard(str_val))
return FALSE
return ValidateKeyedList(str_val, LIST_MODE_NUM, splitter)
/datum/config_entry/keyed_string_list
@@ -174,6 +187,8 @@
return var_name != "splitter" && ..()
/datum/config_entry/keyed_string_list/ValidateAndSet(str_val)
if(!VASProcCallGuard(str_val))
return FALSE
return ValidateKeyedList(str_val, LIST_MODE_TEXT, splitter)
#undef LIST_MODE_NUM
@@ -97,19 +97,13 @@ GLOBAL_PROTECT(config_dir)
if(!entry)
continue
if(entry == "$include")
if(!value)
log_config("Warning: Invalid $include directive: [value]")
else
LoadEntries(value, stack)
++.
continue
if(entry == "$include")
if(!value)
log_config("Warning: Invalid $include directive: [value]")
else
LoadEntries(value, stack)
++.
continue
var/datum/config_entry/E = _entries[entry]

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