Merge branch 'master' into upstream-merge-34067

This commit is contained in:
deathride58
2018-01-08 20:01:59 +00:00
committed by GitHub
745 changed files with 25216 additions and 18453 deletions
+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{
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"
+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,
+2 -2
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"
},
@@ -4197,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"
},
+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";
+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"
+4 -4
View File
@@ -160,7 +160,7 @@
/area/awaymission/snowdin/base)
"aC" = (
/obj/structure/barricade/wooden,
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Security Office";
req_access_txt = "63"
},
@@ -2181,7 +2181,7 @@
/area/awaymission/snowdin/post)
"ha" = (
/obj/structure/barricade/wooden,
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Security Office";
req_access_txt = "63"
},
@@ -2570,7 +2570,7 @@
/turf/open/floor/plasteel/darkred,
/area/awaymission/snowdin/post)
"is" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Security Office";
req_access_txt = "63"
},
@@ -3306,7 +3306,7 @@
/turf/open/floor/plasteel/dark,
/area/awaymission/snowdin/sekret)
"kJ" = (
/obj/machinery/door/airlock/glass_security{
/obj/machinery/door/airlock/security/glass{
name = "Security Office";
req_access_txt = "63"
},
+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
+90 -74
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"
@@ -13145,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"
@@ -13159,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"
@@ -13181,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"
@@ -14830,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"
},
@@ -14847,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"
},
@@ -14926,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"
},
@@ -16435,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"
},
@@ -17396,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"
},
@@ -17821,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"
@@ -18751,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"
@@ -20921,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"
},
@@ -21872,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"
},
@@ -26578,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";
@@ -26636,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"
},
@@ -26776,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"
},
@@ -28155,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";
@@ -29796,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"
},
@@ -30020,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"
},
@@ -30071,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"
},
@@ -30168,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"
@@ -31710,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"
@@ -31722,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"
@@ -32986,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"
@@ -33532,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"
},
@@ -34149,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"
},
@@ -34190,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"
},
@@ -34432,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
},
@@ -34447,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
},
@@ -34462,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
},
@@ -34477,6 +34489,7 @@
pixel_x = -3;
pixel_y = -3
},
/obj/structure/window/reinforced,
/turf/open/floor/plasteel/whiteblue/side{
dir = 1
},
@@ -35159,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"
@@ -35243,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"
},
@@ -35611,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"
@@ -35996,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" = (
@@ -36550,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" = (
@@ -36619,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"
@@ -37044,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"
},
@@ -37053,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"
},
@@ -37739,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"
@@ -38189,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"
},
@@ -38618,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"
},
@@ -40514,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"
@@ -41457,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"
},
@@ -42725,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"
},
@@ -42772,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"
@@ -47545,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"
},
@@ -47674,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"
@@ -47749,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"
@@ -51364,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,
@@ -73874,7 +73890,7 @@ bvb
bDj
bEo
bva
cCY
bva
bHQ
bJg
bKl
@@ -74130,7 +74146,7 @@ bnv
bnv
bDi
bmf
bva
bsn
bva
bHS
bJh
@@ -100071,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"
+1 -1
View File
@@ -9446,7 +9446,7 @@
/turf/open/floor/plasteel,
/area/centcom/ferry)
"zk" = (
/obj/machinery/door/airlock/glass_medical{
/obj/machinery/door/airlock/medical/glass{
name = "Infirmary"
},
/obj/effect/turf_decal/stripes/line{
+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 -4
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"
@@ -422,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"
@@ -649,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
+5 -5
View File
@@ -9,12 +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
#define ANTAG_DATUM_MONKEY_LEADER /datum/antagonist/monkey/leader
+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))
+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"
-8
View File
@@ -75,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!
+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)))
-2
View File
@@ -102,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))
+1 -1
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
+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
+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):
-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
+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
+12 -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
@@ -136,4 +137,4 @@
A.overlays.Cut();\
}\
A.flags_1 &= ~OVERLAY_QUEUED_1;\
}
}
+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))
+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'))
+6 -3
View File
@@ -103,10 +103,10 @@
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()
@@ -434,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>"
-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 -1
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
@@ -1487,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
))
+1 -1
View File
@@ -29,4 +29,4 @@ 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
+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
+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
+1 -1
View File
@@ -58,7 +58,7 @@
SendSignal(COMSIG_ITEM_ATTACK, M, user)
if(flags_1 & NOBLUDGEON_1)
return
if(force && user.has_disability(DISABILITY_PACIFISM))
to_chat(user, "<span class='warning'>You don't want to harm other living beings!</span>")
return
+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()
+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]
@@ -2,13 +2,21 @@
protection = CONFIG_ENTRY_HIDDEN
/datum/config_entry/string/comms_key/ValidateAndSet(str_val)
return str_val != "default_pwd" && length(str_val) > 6 && ..()
return str_val != "default_pwd" && length(str_val) > 6 && ..()
/datum/config_entry/keyed_string_list/cross_server
protection = CONFIG_ENTRY_LOCKED
/datum/config_entry/string/cross_server_address/ValidateAndSet(str_val)
return str_val != "byond:\\address:port" && ..()
/datum/config_entry/keyed_string_list/cross_server/ValidateAndSet(str_val)
. = ..()
if(.)
var/list/newv = list()
for(var/I in value)
newv[replacetext(I, "+", " ")] = value[I]
value = newv
/datum/config_entry/keyed_string_list/cross_server/ValidateListEntry(key_name, key_value)
return key_value != "byond:\\address:port" && ..()
/datum/config_entry/string/cross_comms_name
@@ -17,4 +25,4 @@ GLOBAL_VAR_INIT(medals_enabled, TRUE) //will be auto set to false if the game fa
/datum/config_entry/string/medal_hub_address
/datum/config_entry/string/medal_hub_password
protection = CONFIG_ENTRY_HIDDEN
protection = CONFIG_ENTRY_HIDDEN
@@ -2,27 +2,27 @@
/datum/config_entry/keyed_number_list/probability
/datum/config_entry/keyed_number_list/probability/ValidateKeyName(key_name)
/datum/config_entry/keyed_number_list/probability/ValidateListEntry(key_name)
return key_name in config.modes
/datum/config_entry/keyed_number_list/max_pop
/datum/config_entry/keyed_number_list/max_pop/ValidateKeyName(key_name)
/datum/config_entry/keyed_number_list/max_pop/ValidateListEntry(key_name)
return key_name in config.modes
/datum/config_entry/keyed_number_list/min_pop
/datum/config_entry/keyed_number_list/min_pop/ValidateKeyName(key_name)
/datum/config_entry/keyed_number_list/min_pop/ValidateListEntry(key_name, key_value)
return key_name in config.modes
/datum/config_entry/keyed_flag_list/continuous // which roundtypes continue if all antagonists die
/datum/config_entry/keyed_flag_list/continuous/ValidateKeyName(key_name)
/datum/config_entry/keyed_flag_list/continuous/ValidateListEntry(key_name, key_value)
return key_name in config.modes
/datum/config_entry/keyed_flag_list/midround_antag // which roundtypes use the midround antagonist system
/datum/config_entry/keyed_flag_list/midround_antag/ValidateKeyName(key_name)
/datum/config_entry/keyed_flag_list/midround_antag/ValidateListEntry(key_name, key_value)
return key_name in config.modes
/datum/config_entry/keyed_string_list/policy
+1 -1
View File
@@ -394,4 +394,4 @@ SUBSYSTEM_DEF(air)
#undef SSAIR_EXCITEDGROUPS
#undef SSAIR_HIGHPRESSURE
#undef SSAIR_HOTSPOT
#undef SSAIR_SUPERCONDUCTIVITY
#undef SSAIR_SUPERCONDUCTIVITY
+19 -26
View File
@@ -8,11 +8,10 @@ SUBSYSTEM_DEF(blackbox)
var/list/feedback = list() //list of datum/feedback_variable
var/triggertime = 0
var/sealed = FALSE //time to stop tracking stats?
var/list/research_levels = list() //list of highest tech levels attained that isn't lost lost by destruction of RD computers
var/list/versions = list("time_dilation_current" = 2,
"science_techweb_unlock" = 2,
"antagonists" = 3) //associative list of any feedback variables that have had their format changed since creation and their current version, remember to update this
var/list/versions = list("antagonists" = 3,
"admin_secrets_fun_used" = 2,
"time_dilation_current" = 3,
"science_techweb_unlock" = 2) //associative list of any feedback variables that have had their format changed since creation and their current version, remember to update this
/datum/controller/subsystem/blackbox/Initialize()
triggertime = world.time
@@ -59,13 +58,11 @@ SUBSYSTEM_DEF(blackbox)
/datum/controller/subsystem/blackbox/Shutdown()
sealed = FALSE
record_feedback("tally", "ahelp_stats", GLOB.ahelp_tickets.active_tickets.len, "unresolved")
for (var/obj/machinery/message_server/MS in GLOB.message_servers)
for (var/obj/machinery/telecomms/message_server/MS in GLOB.telecomms_list)
if (MS.pda_msgs.len)
record_feedback("tally", "radio_usage", MS.pda_msgs.len, "PDA")
if (MS.rc_msgs.len)
record_feedback("tally", "radio_usage", MS.rc_msgs.len, "request console")
if(research_levels.len)
SSblackbox.record_feedback("associative", "high_research_level", 1, research_levels)
if (!SSdbcore.Connect())
return
@@ -92,39 +89,35 @@ SUBSYSTEM_DEF(blackbox)
sealed = TRUE
return TRUE
/datum/controller/subsystem/blackbox/proc/log_research(tech, level)
if(!(tech in research_levels) || research_levels[tech] < level)
research_levels[tech] = level
/datum/controller/subsystem/blackbox/proc/LogBroadcast(freq)
if(sealed)
return
switch(freq)
if(1459)
if(FREQ_COMMON)
record_feedback("tally", "radio_usage", 1, "common")
if(GLOB.SCI_FREQ)
if(FREQ_SCIENCE)
record_feedback("tally", "radio_usage", 1, "science")
if(GLOB.COMM_FREQ)
if(FREQ_COMMAND)
record_feedback("tally", "radio_usage", 1, "command")
if(GLOB.MED_FREQ)
if(FREQ_MEDICAL)
record_feedback("tally", "radio_usage", 1, "medical")
if(GLOB.ENG_FREQ)
if(FREQ_ENGINEERING)
record_feedback("tally", "radio_usage", 1, "engineering")
if(GLOB.SEC_FREQ)
if(FREQ_SECURITY)
record_feedback("tally", "radio_usage", 1, "security")
if(GLOB.SYND_FREQ)
if(FREQ_SYNDICATE)
record_feedback("tally", "radio_usage", 1, "syndicate")
if(GLOB.SERV_FREQ)
if(FREQ_SERVICE)
record_feedback("tally", "radio_usage", 1, "service")
if(GLOB.SUPP_FREQ)
if(FREQ_SUPPLY)
record_feedback("tally", "radio_usage", 1, "supply")
if(GLOB.CENTCOM_FREQ)
if(FREQ_CENTCOM)
record_feedback("tally", "radio_usage", 1, "centcom")
if(GLOB.AIPRIV_FREQ)
if(FREQ_AI_PRIVATE)
record_feedback("tally", "radio_usage", 1, "ai private")
if(GLOB.REDTEAM_FREQ)
if(FREQ_CTF_RED)
record_feedback("tally", "radio_usage", 1, "CTF red team")
if(GLOB.BLUETEAM_FREQ)
if(FREQ_CTF_BLUE)
record_feedback("tally", "radio_usage", 1, "CTF blue team")
else
record_feedback("tally", "radio_usage", 1, "other")
@@ -194,7 +187,7 @@ Versioning
"gun_fired" = 2)
*/
/datum/controller/subsystem/blackbox/proc/record_feedback(key_type, key, increment, data, overwrite)
if(sealed || !key_type || !istext(key) || !isnum(increment || !data))
if(sealed || !key_type || !istext(key) || !isnum(increment) || !data)
return
var/datum/feedback_variable/FV = find_feedback_datum(key, key_type)
switch(key_type)
@@ -41,4 +41,3 @@ SUBSYSTEM_DEF(idlenpcpool)
SA.consider_wakeup()
if (MC_TICK_CHECK)
return
+92 -1
View File
@@ -1,10 +1,101 @@
SUBSYSTEM_DEF(input)
name = "Input"
wait = 1 //SS_TICKER means this runs every tick
flags = SS_TICKER | SS_NO_INIT
init_order = INIT_ORDER_INPUT
flags = SS_TICKER
priority = FIRE_PRIORITY_INPUT
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
var/list/macro_sets
/datum/controller/subsystem/input/Initialize()
setup_default_macro_sets()
initialized = TRUE
refresh_client_macro_sets()
return ..()
// This is for when macro sets are eventualy datumized
/datum/controller/subsystem/input/proc/setup_default_macro_sets()
var/list/static/default_macro_sets
if(default_macro_sets)
macro_sets = default_macro_sets
return
default_macro_sets = list(
"default" = list(
"Tab" = "\".winset \\\"input.focus=true?map.focus=true input.background-color=[COLOR_INPUT_DISABLED]:input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"",
"O" = "ooc",
"T" = "say",
"M" = "me",
"Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs
"Any" = "\"KeyDown \[\[*\]\]\"",
"Any+UP" = "\"KeyUp \[\[*\]\]\"",
),
"old_default" = list(
"Tab" = "\".winset \\\"mainwindow.macro=old_hotkeys map.focus=true input.background-color=[COLOR_INPUT_DISABLED]\\\"\"",
"Ctrl+T" = "say",
"Ctrl+O" = "ooc",
),
"old_hotkeys" = list(
"Tab" = "\".winset \\\"mainwindow.macro=old_default input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"",
"O" = "ooc",
"T" = "say",
"M" = "me",
"Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs
"Any" = "\"KeyDown \[\[*\]\]\"",
"Any+UP" = "\"KeyUp \[\[*\]\]\"",
),
)
// Because i'm lazy and don't want to type all these out twice
var/list/old_default = default_macro_sets["old_default"]
var/list/static/oldmode_keys = list(
"North", "East", "South", "West",
"Northeast", "Southeast", "Northwest", "Southwest",
"Insert", "Delete", "Ctrl", "Alt",
"F1", "F2", "F5", "F6", "F7", "F8", "F12",
)
for(var/i in 1 to oldmode_keys.len)
var/key = oldmode_keys[i]
old_default[key] = "\"KeyDown [key]\""
old_default["[key]+UP"] = "\"KeyUp [key]\""
var/list/static/oldmode_ctrl_override_keys = list(
"W" = "W", "A" = "A", "S" = "S", "D" = "D", // movement
"1" = "1", "2" = "2", "3" = "3", "4" = "4", // intent
"B" = "B", // resist
"E" = "E", // quick equip
"F" = "F", // intent left
"G" = "G", // intent right
"H" = "H", // stop pulling
"Q" = "Q", // drop
"R" = "R", // throw
"X" = "X", // switch hands
"Y" = "Y", // activate item
"Z" = "Z", // activate item
)
for(var/i in 1 to oldmode_ctrl_override_keys.len)
var/key = oldmode_ctrl_override_keys[i]
var/override = oldmode_ctrl_override_keys[key]
old_default["Ctrl+[key]"] = "\"KeyDown [override]\""
old_default["Ctrl+[key]+UP"] = "\"KeyUp [override]\""
macro_sets = default_macro_sets
// Badmins just wanna have fun ♪
/datum/controller/subsystem/input/proc/refresh_client_macro_sets()
var/list/clients = GLOB.clients
for(var/i in 1 to clients.len)
var/client/user = clients[i]
user.set_macros()
/datum/controller/subsystem/input/fire()
var/list/clients = GLOB.clients // Let's sing the list cache song
for(var/i in 1 to clients.len)
+2 -13
View File
@@ -107,9 +107,6 @@ SUBSYSTEM_DEF(job)
if(player.mind && job.title in player.mind.restricted_roles)
Debug("FOC incompatible with antagonist role, Player: [player]")
continue
if(CONFIG_GET(flag/enforce_human_authority) && !player.client.prefs.pref_species.qualifies_for_rank(job.title, player.client.prefs.features))
Debug("FOC non-human failed, Player: [player]")
continue
if(player.client.prefs.GetJobDepartment(job, level) & job.flag)
Debug("FOC pass, Player: [player], Level:[level]")
candidates += player
@@ -144,11 +141,6 @@ SUBSYSTEM_DEF(job)
Debug("GRJ incompatible with antagonist role, Player: [player], Job: [job.title]")
continue
if(CONFIG_GET(flag/enforce_human_authority) && !player.client.prefs.pref_species.qualifies_for_rank(job.title, player.client.prefs.features))
Debug("GRJ non-human failed, Player: [player]")
continue
if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1)
Debug("GRJ Random job given, Player: [player], Job: [job]")
if(AssignRole(player, job.title))
@@ -319,10 +311,6 @@ SUBSYSTEM_DEF(job)
Debug("DO incompatible with antagonist role, Player: [player], Job:[job.title]")
continue
if(CONFIG_GET(flag/enforce_human_authority) && !player.client.prefs.pref_species.qualifies_for_rank(job.title, player.client.prefs.features))
Debug("DO non-human failed, Player: [player], Job:[job.title]")
continue
// If the player wants that job on this level, then try give it to him.
if(player.client.prefs.GetJobDepartment(job, level) & job.flag)
@@ -424,7 +412,8 @@ SUBSYSTEM_DEF(job)
if(job && H)
job.after_spawn(H, M)
handle_roundstart_items(H, M.ckey, H.mind.assigned_role, H.mind.special_role)
handle_roundstart_items(H, M.ckey, H.mind.assigned_role, H.mind.special_role) //CIT CHANGE - makes donators spawn with their items
return H
+1 -1
View File
@@ -22,7 +22,7 @@ SUBSYSTEM_DEF(lighting)
create_all_lighting_objects()
initialized = TRUE
fire(FALSE, TRUE)
..()
+1 -1
View File
@@ -62,4 +62,4 @@ SUBSYSTEM_DEF(machines)
if (istype(SSmachines.processing))
processing = SSmachines.processing
if (istype(SSmachines.powernets))
powernets = SSmachines.powernets
powernets = SSmachines.powernets
+2 -2
View File
@@ -135,12 +135,12 @@ SUBSYSTEM_DEF(npcpool)
if(facCount == 1 && helpProb)
helpProb = 100
if(prob(helpProb) && candidate.takeDelegate(check,FALSE))
--canBeUsed.len
candidate.eye_color = "yellow"
candidate.update_icons()
if(!currentrun.len || MC_TICK_CHECK) //don't change SS state if it isn't necessary
return
+2
View File
@@ -40,3 +40,5 @@ SUBSYSTEM_DEF(orbit)
O.Check(targetloc)
if (MC_TICK_CHECK)
return
+1 -1
View File
@@ -250,4 +250,4 @@ SUBSYSTEM_DEF(persistence)
var/list/file_data = list()
file_data["data"] = saved_modes
fdel(json_file)
WRITE_FILE(json_file, json_encode(file_data))
WRITE_FILE(json_file, json_encode(file_data))
+3 -16
View File
@@ -14,35 +14,22 @@ SUBSYSTEM_DEF(radio)
/datum/controller/subsystem/radio/proc/add_object(obj/device, new_frequency as num, filter = null as text|null)
var/f_text = num2text(new_frequency)
var/datum/radio_frequency/frequency = frequencies[f_text]
if(!frequency)
frequency = new
frequency.frequency = new_frequency
frequencies[f_text] = frequency
frequencies[f_text] = frequency = new(new_frequency)
frequency.add_listener(device, filter)
return frequency
/datum/controller/subsystem/radio/proc/remove_object(obj/device, old_frequency)
var/f_text = num2text(old_frequency)
var/datum/radio_frequency/frequency = frequencies[f_text]
if(frequency)
frequency.remove_listener(device)
if(frequency.devices.len == 0)
qdel(frequency)
frequencies -= f_text
// let's don't delete frequencies in case a non-listener keeps a reference
return 1
/datum/controller/subsystem/radio/proc/return_frequency(new_frequency as num)
var/f_text = num2text(new_frequency)
var/datum/radio_frequency/frequency = frequencies[f_text]
if(!frequency)
frequency = new
frequency.frequency = new_frequency
frequencies[f_text] = frequency
frequencies[f_text] = frequency = new(new_frequency)
return frequency
+1
View File
@@ -54,6 +54,7 @@ SUBSYSTEM_DEF(research)
bitcoins = single_server_income
break //Just need one to work.
var/income_time_difference = world.time - last_income
science_tech.last_bitcoins = bitcoins // Doesn't take tick drift into account
bitcoins *= income_time_difference / 10
science_tech.research_points += bitcoins
last_income = world.time
+6 -5
View File
@@ -54,7 +54,7 @@ SUBSYSTEM_DEF(shuttle)
var/lockdown = FALSE //disallow transit after nuke goes off
var/auto_call = 99000 //time before in deciseconds in which the shuttle is auto called. Default is 2½ hours plus 15 for the shuttle. So total is 3.
var/auto_call = 99000 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2½ hours plus 15 for the shuttle. So total is 3.
/datum/controller/subsystem/shuttle/Initialize(timeofday)
if(!arrivals)
@@ -158,7 +158,7 @@ SUBSYSTEM_DEF(shuttle)
break
/datum/controller/subsystem/shuttle/proc/CheckAutoEvac()
if(emergencyNoEscape || emergencyNoRecall || !emergency)
if(emergencyNoEscape || emergencyNoRecall || !emergency || !SSticker.HasRoundStarted())
return
var/threshold = CONFIG_GET(number/emergency_shuttle_autocall_threshold)
@@ -262,7 +262,7 @@ SUBSYSTEM_DEF(shuttle)
if(!admiral_message)
admiral_message = pick(GLOB.admiral_messages)
var/intercepttext = "<font size = 3><b>NanoTrasen Update</b>: Request For Shuttle.</font><hr>\
var/intercepttext = "<font size = 3><b>Nanotrasen Update</b>: Request For Shuttle.</font><hr>\
To whom it may concern:<br><br>\
We have taken note of the situation upon [station_name()] and have come to the \
conclusion that it does not warrant the abandonment of the station.<br>\
@@ -387,7 +387,7 @@ SUBSYSTEM_DEF(shuttle)
emergency.setTimer(emergencyDockTime)
priority_announce("Hostile environment resolved. \
You have 3 minutes to board the Emergency Shuttle.",
null, 'sound/AI/shuttledock.ogg', "Priority")
null, 'sound/ai/shuttledock.ogg', "Priority")
//try to move/request to dockHome if possible, otherwise dockAway. Mainly used for admin buttons
/datum/controller/subsystem/shuttle/proc/toggleShuttle(shuttleId, dockHome, dockAway, timed)
@@ -431,7 +431,8 @@ SUBSYSTEM_DEF(shuttle)
if(!(M in transit_requesters))
transit_requesters += M
/datum/controller/subsystem/shuttle/proc/autoEnd()
/datum/controller/subsystem/shuttle/proc/autoEnd() //CIT CHANGE - allows shift to end after 3 hours has passed.
if(world.time > auto_call && EMERGENCY_IDLE_OR_RECALLED) //3 hours
SSshuttle.emergency.request(null, 1.5)
priority_announce("The shift has come to an end and the shuttle called.")
+1 -1
View File
@@ -1,6 +1,6 @@
// The Squeak
// because this is about placement of mice mobs, and nothing to do with
// mice - the computer peripheral
// mice - the computer peripheral
SUBSYSTEM_DEF(squeak)
name = "Squeak"
+1 -1
View File
@@ -27,6 +27,6 @@ SUBSYSTEM_DEF(stickyban)
ban["existing_user_matches_this_round"] = list()
ban["admin_matches_this_round"] = list()
cache[ckey] = ban
for (var/bannedckey in cache)
world.SetConfig("ban", bannedckey, list2stickyban(cache[bannedckey]))
+1
View File
@@ -631,6 +631,7 @@ SUBSYSTEM_DEF(ticker)
world.Reboot()
/datum/controller/subsystem/ticker/Shutdown()
gather_newscaster() //called here so we ensure the log is created even upon admin reboot
if(!round_end_sound)
round_end_sound = pick(\
'sound/roundend/newroundsexy.ogg',
+1 -1
View File
@@ -35,4 +35,4 @@ SUBSYSTEM_DEF(time_track)
last_tick_realtime = current_realtime
last_tick_byond_time = current_byondtime
last_tick_tickcount = current_tickcount
SSblackbox.record_feedback("associative", "time_dilation_current", 1, list("[time_dilation_current]" = "[SQLtime()]"))
SSblackbox.record_feedback("associative", "time_dilation_current", 1, list("[SQLtime()]" = list("current" = "[time_dilation_current]", "avg_fast" = "[time_dilation_avg_fast]", "avg" = "[time_dilation_avg]", "avg_slow" = "[time_dilation_avg_slow]")))
+1 -1
View File
@@ -411,4 +411,4 @@ SUBSYSTEM_DEF(timer)
#undef BUCKET_LEN
#undef BUCKET_POS
#undef BUCKET_POS
+16 -2
View File
@@ -170,14 +170,15 @@
..(current_button)
else if(target && current_button.appearance_cache != target.appearance) //replace with /ref comparison if this is not valid.
var/obj/item/I = target
current_button.appearance_cache = I.appearance
var/old_layer = I.layer
var/old_plane = I.plane
I.layer = FLOAT_LAYER //AAAH
I.plane = FLOAT_PLANE //^ what that guy said
current_button.overlays = list(I)
current_button.cut_overlays()
current_button.add_overlay(I)
I.layer = old_layer
I.plane = old_plane
current_button.appearance_cache = I.appearance
/datum/action/item_action/toggle_light
name = "Toggle Light"
@@ -344,6 +345,19 @@
/datum/action/item_action/change
name = "Change"
/datum/action/item_action/nano_picket_sign
name = "Retext Nano Picket Sign"
var/obj/item/picket_sign/S
/datum/action/item_action/nano_picket_sign/New(Target)
..()
if(istype(Target, /obj/item/picket_sign))
S = Target
/datum/action/item_action/nano_picket_sign/Trigger()
if(istype(S))
S.retext(owner)
/datum/action/item_action/adjust
/datum/action/item_action/adjust/New(Target)
-2
View File
@@ -1,5 +1,3 @@
/datum/action/item_action/flightsuit
icon_icon = 'icons/mob/actions/actions_flightsuit.dmi'
+6 -7
View File
@@ -78,7 +78,7 @@
. = ..()
/datum/antagonist/changeling/on_removal()
remove_changeling_powers(FALSE)
remove_changeling_powers()
owner.objectives -= objectives
. = ..()
@@ -100,11 +100,11 @@
chem_recharge_slowdown = initial(chem_recharge_slowdown)
mimicing = ""
/datum/antagonist/changeling/proc/remove_changeling_powers(keep_free_powers=0)
/datum/antagonist/changeling/proc/remove_changeling_powers()
if(ishuman(owner.current) || ismonkey(owner.current))
reset_properties()
for(var/obj/effect/proc_holder/changeling/p in purchasedpowers)
if((p.dna_cost == 0 && keep_free_powers) || p.always_keep)
if(p.always_keep)
continue
purchasedpowers -= p
p.on_refund(owner.current)
@@ -116,13 +116,13 @@
/datum/antagonist/changeling/proc/reset_powers()
if(purchasedpowers)
remove_changeling_powers(TRUE)
//Purchase free powers.
remove_changeling_powers()
//Repurchase free powers.
for(var/path in all_powers)
var/obj/effect/proc_holder/changeling/S = new path()
if(!S.dna_cost)
if(!has_sting(S))
purchasedpowers+=S
purchasedpowers += S
S.on_purchase(owner.current,TRUE)
/datum/antagonist/changeling/proc/has_sting(obj/effect/proc_holder/changeling/power)
@@ -223,7 +223,6 @@
if(verbose)
to_chat(user, "<span class='warning'>[target] is not compatible with our biology.</span>")
return
if((target.has_disability(DISABILITY_NOCLONE)) || (target.has_disability(DISABILITY_NOCLONE)))
if(verbose)
to_chat(user, "<span class='warning'>DNA of [target] is ruined beyond usability!</span>")

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