initial commit - game folder + maps + dme

This commit is contained in:
deathride58
2018-01-03 22:52:38 -05:00
parent fb555e5680
commit d8facb3bce
230 changed files with 20742 additions and 14130 deletions
@@ -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
+85 -85
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,19 +3136,19 @@
/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)
"ajB" = (
/obj/machinery/vending/kink,
/obj/item/storage/box/mousetraps,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
"ajC" = (
@@ -4407,7 +4406,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 +5809,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 +6392,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 +7452,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 +7477,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 +7489,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 +8780,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 +8827,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 +8855,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 +10633,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 +10647,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 +10710,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 +13144,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 +13158,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 +13180,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 +14829,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 +14846,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 +14925,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 +16434,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 +17395,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 +17820,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 +18750,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 +20920,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 +21871,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 +26577,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 +26635,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 +26775,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 +28154,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 +29795,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 +30019,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 +30070,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 +30167,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 +31709,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 +31721,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 +32985,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 +33531,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 +34148,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 +34189,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 +34431,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 +34450,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 +34469,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 +34488,7 @@
pixel_x = -3;
pixel_y = -3
},
/obj/structure/window/reinforced,
/turf/open/floor/plasteel/whiteblue/side{
dir = 1
},
@@ -35159,7 +35171,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 +35255,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 +35623,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"
@@ -36619,7 +36631,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 +37056,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 +37065,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 +37751,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 +38201,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 +38630,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 +40526,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 +41469,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 +42737,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 +42784,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"
@@ -47230,7 +47242,7 @@
/turf/open/floor/plasteel/dark,
/area/library)
"clm" = (
/obj/machinery/vending/kink,
/obj/structure/closet/crate/bin,
/turf/open/floor/plasteel/dark,
/area/library)
"cln" = (
@@ -47545,7 +47557,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 +47686,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 +47761,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"
@@ -51358,18 +51370,6 @@
/obj/machinery/vending/games,
/turf/open/floor/plasteel/dark,
/area/library)
"cCX" = (
/obj/machinery/vending/kink,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
"cCY" = (
/obj/machinery/vending/kink,
/turf/open/floor/plating,
/area/maintenance/department/engine)
"cCZ" = (
/obj/machinery/vending/kink,
/turf/open/floor/plating,
/area/maintenance/department/engine)
(1,1,1) = {"
aaa
@@ -73874,7 +73874,7 @@ bvb
bDj
bEo
bva
cCY
bva
bHQ
bJg
bKl
@@ -74130,7 +74130,7 @@ bnv
bnv
bDi
bmf
bva
bsn
bva
bHS
bJh
@@ -79029,7 +79029,7 @@ cCF
cCH
bTn
bPB
cCZ
bDi
bVC
bQj
bPA
@@ -88702,7 +88702,7 @@ aaa
aaa
aaa
aiU
cCX
ajv
aju
ajt
alQ
+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,
+1
View File
@@ -78,6 +78,7 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances)
QDEL_NULL(ghost_appearance)
/datum/atom_hud/alternate_appearance/basic/add_to_hud(atom/A)
LAZYINITLIST(A.hud_list)
A.hud_list[appearance_key] = theImage
. = ..()
+1 -1
View File
@@ -28,4 +28,4 @@
for(var/X in motioncameras)
var/obj/machinery/camera/cam = X
cam.lostTargetRef(WEAKREF(O))
return
return
+1 -1
View File
@@ -123,4 +123,4 @@
/area/holodeck/rec_center/thunderdome1218
name = "Holodeck - 1218 AD"
restricted = 1
restricted = 1
+36 -1
View File
@@ -32,9 +32,44 @@
/area/ruin/powered/seedvault
icon_state = "dk_yellow"
/area/ruin/powered/syndicate_lava_base
/area/ruin/unpowered/syndicate_lava_base
name = "Secret Base"
icon_state = "dk_yellow"
ambientsounds = HIGHSEC
/area/ruin/unpowered/syndicate_lava_base/engineering
name = "Syndicate Lavaland Engineering"
/area/ruin/unpowered/syndicate_lava_base/medbay
name = "Syndicate Lavaland Medbay"
/area/ruin/unpowered/syndicate_lava_base/arrivals
name = "Syndicate Lavaland Arrivals"
/area/ruin/unpowered/syndicate_lava_base/bar
name = "Syndicate Lavaland Bar"
/area/ruin/unpowered/syndicate_lava_base/main
name = "Syndicate Lavaland Primary Hallway"
/area/ruin/unpowered/syndicate_lava_base/cargo
name = "Syndicate Lavaland Cargo Bay"
/area/ruin/unpowered/syndicate_lava_base/chemistry
name = "Syndicate Lavaland Chemistry"
/area/ruin/unpowered/syndicate_lava_base/virology
name = "Syndicate Lavaland Virology"
/area/ruin/unpowered/syndicate_lava_base/testlab
name = "Syndicate Lavaland Experimentation Lab"
/area/ruin/unpowered/syndicate_lava_base/dormitories
name = "Syndicate Lavaland Dormitories"
/area/ruin/unpowered/syndicate_lava_base/telecomms
name = "Syndicate Lavaland Telecommunications"
//Xeno Nest
+1 -33
View File
@@ -132,44 +132,12 @@
if (orbiting)
orbiting.Check()
if(flags_1 & CLEAN_ON_MOVE_1)
clean_on_move()
var/datum/proximity_monitor/proximity_monitor = src.proximity_monitor
if(proximity_monitor)
proximity_monitor.HandleMove()
return 1
/atom/movable/proc/clean_on_move()
var/turf/tile = loc
if(isturf(tile))
tile.SendSignal(COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
for(var/A in tile)
if(is_cleanable(A))
qdel(A)
else if(istype(A, /obj/item))
var/obj/item/cleaned_item = A
cleaned_item.SendSignal(COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
else if(ishuman(A))
var/mob/living/carbon/human/cleaned_human = A
if(cleaned_human.lying)
if(cleaned_human.head)
cleaned_human.head.SendSignal(COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
cleaned_human.update_inv_head()
if(cleaned_human.wear_suit)
cleaned_human.wear_suit.SendSignal(COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
cleaned_human.update_inv_wear_suit()
else if(cleaned_human.w_uniform)
cleaned_human.w_uniform.SendSignal(COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
cleaned_human.update_inv_w_uniform()
if(cleaned_human.shoes)
cleaned_human.shoes.SendSignal(COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
cleaned_human.update_inv_shoes()
cleaned_human.clean_blood()
cleaned_human.wash_cream()
to_chat(cleaned_human, "<span class='danger'>[src] cleans your face!</span>")
/atom/movable/Destroy(force)
var/inform_admins = (flags_2 & INFORM_ADMINS_ON_RELOCATE_2)
var/stationloving = (flags_2 & STATIONLOVING_2)
@@ -712,4 +680,4 @@
return FALSE
if(anchored || throwing)
return FALSE
return TRUE
return TRUE
+43 -153
View File
@@ -86,109 +86,55 @@ GLOBAL_LIST_EMPTY(all_radios)
for(var/freq in GLOB.all_radios)
GLOB.all_radios["[freq]"] -= radio
/*
Frequency range: 1200 to 1600
Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency, even during mapmaking)
Radio:
1459 - standard radio chat
1351 - Science
1353 - Command
1355 - Medical
1357 - Engineering
1359 - Security
1337 - death squad
1443 - Confession Intercom
1349 - Miners
1347 - Cargo techs
1447 - AI Private
Devices:
1451 - tracking implant
1457 - RSD default
On the map:
1311 for prison shuttle console (in fact, it is not used)
1435 for status displays
1437 for atmospherics/fire alerts
1439 for engine components
1439 for air pumps, air scrubbers, atmo control
1441 for atmospherics - supply tanks
1443 for atmospherics - distribution loop/mixed air tank
1445 for bot nav beacons
1447 for mulebot, secbot and ed209 control
1449 for airlock controls, electropack, magnets
1451 for toxin lab access
1453 for engineering access
1455 for AI access
*/
// For information on what objects or departments use what frequencies,
// see __DEFINES/radio.dm. Mappers may also select additional frequencies for
// use in maps, such as in intercoms.
GLOBAL_LIST_INIT(radiochannels, list(
"Common" = 1459,
"Science" = 1351,
"Command" = 1353,
"Medical" = 1355,
"Engineering" = 1357,
"Security" = 1359,
"CentCom" = 1337,
"Syndicate" = 1213,
"Supply" = 1347,
"Service" = 1349,
"AI Private" = 1447,
"Red Team" = 1215,
"Blue Team" = 1217
"Common" = FREQ_COMMON,
"Science" = FREQ_SCIENCE,
"Command" = FREQ_COMMAND,
"Medical" = FREQ_MEDICAL,
"Engineering" = FREQ_ENGINEERING,
"Security" = FREQ_SECURITY,
"CentCom" = FREQ_CENTCOM,
"Syndicate" = FREQ_SYNDICATE,
"Supply" = FREQ_SUPPLY,
"Service" = FREQ_SERVICE,
"AI Private" = FREQ_AI_PRIVATE,
"Red Team" = FREQ_CTF_RED,
"Blue Team" = FREQ_CTF_BLUE
))
GLOBAL_LIST_INIT(reverseradiochannels, list(
"1459" = "Common",
"1351" = "Science",
"1353" = "Command",
"1355" = "Medical",
"1357" = "Engineering",
"1359" = "Security",
"1337" = "CentCom",
"1213" = "Syndicate",
"1347" = "Supply",
"1349" = "Service",
"1447" = "AI Private",
"1215" = "Red Team",
"1217" = "Blue Team"
"[FREQ_COMMON]" = "Common",
"[FREQ_SCIENCE]" = "Science",
"[FREQ_COMMAND]" = "Command",
"[FREQ_MEDICAL]" = "Medical",
"[FREQ_ENGINEERING]" = "Engineering",
"[FREQ_SECURITY]" = "Security",
"[FREQ_CENTCOM]" = "CentCom",
"[FREQ_SYNDICATE]" = "Syndicate",
"[FREQ_SUPPLY]" = "Supply",
"[FREQ_SERVICE]" = "Service",
"[FREQ_AI_PRIVATE]" = "AI Private",
"[FREQ_CTF_RED]" = "Red Team",
"[FREQ_CTF_BLUE]" = "Blue Team"
))
//depenging helpers
GLOBAL_VAR_CONST(SYND_FREQ, 1213) //nuke op frequency, coloured dark brown in chat window
GLOBAL_VAR_CONST(SUPP_FREQ, 1347) //supply, coloured light brown in chat window
GLOBAL_VAR_CONST(SERV_FREQ, 1349) //service, coloured green in chat window
GLOBAL_VAR_CONST(SCI_FREQ, 1351) //science, coloured plum in chat window
GLOBAL_VAR_CONST(COMM_FREQ, 1353) //command, colored gold in chat window
GLOBAL_VAR_CONST(MED_FREQ, 1355) //medical, coloured blue in chat window
GLOBAL_VAR_CONST(ENG_FREQ, 1357) //engineering, coloured orange in chat window
GLOBAL_VAR_CONST(SEC_FREQ, 1359) //security, coloured red in chat window
GLOBAL_VAR_CONST(CENTCOM_FREQ, 1337) //centcom frequency, coloured grey in chat window
GLOBAL_VAR_CONST(AIPRIV_FREQ, 1447) //AI private, colored magenta in chat window
GLOBAL_VAR_CONST(REDTEAM_FREQ, 1215) // red team (CTF) frequency, coloured red
GLOBAL_VAR_CONST(BLUETEAM_FREQ, 1217) // blue team (CTF) frequency, coloured blue
#define TRANSMISSION_WIRE 0
#define TRANSMISSION_RADIO 1
/* filters */
GLOBAL_VAR_INIT(RADIO_TO_AIRALARM, "1")
GLOBAL_VAR_INIT(RADIO_FROM_AIRALARM, "2")
GLOBAL_VAR_INIT(RADIO_CHAT, "3") //deprecated
GLOBAL_VAR_INIT(RADIO_ATMOSIA, "4")
GLOBAL_VAR_INIT(RADIO_NAVBEACONS, "5")
GLOBAL_VAR_INIT(RADIO_AIRLOCK, "6")
GLOBAL_VAR_INIT(RADIO_MAGNETS, "9")
/datum/radio_frequency
var/frequency as num
var/list/list/obj/devices = list()
/datum/radio_frequency/New(freq)
frequency = freq
//If range > 0, only post to devices on the same z_level and within range
//Use range = -1, to restrain to the same z_level without limiting range
/datum/radio_frequency/proc/post_signal(obj/source as obj|null, datum/signal/signal, filter = null as text|null, range = null as num|null)
// Ensure the signal's data is fully filled
signal.source = source
signal.frequency = frequency
//Apply filter to the signal. If none supply, broadcast to every devices
//_default channel is always checked
@@ -217,7 +163,7 @@ GLOBAL_VAR_INIT(RADIO_MAGNETS, "9")
continue
if(start_point.z != end_point.z || (range > 0 && get_dist(start_point, end_point) > range))
continue
device.receive_signal(signal, TRANSMISSION_RADIO, frequency)
device.receive_signal(signal)
/datum/radio_frequency/proc/add_listener(obj/device, filter as text|null)
if (!filter)
@@ -225,8 +171,7 @@ GLOBAL_VAR_INIT(RADIO_MAGNETS, "9")
var/list/devices_line = devices[filter]
if(!devices_line)
devices_line = list()
devices[filter] = devices_line
devices[filter] = devices_line = list()
devices_line += device
@@ -240,70 +185,15 @@ GLOBAL_VAR_INIT(RADIO_MAGNETS, "9")
devices -= devices_filter
/client/proc/print_pointers()
set name = "Debug Signals"
set category = "Debug"
if(!holder)
return
var/datum/signal/S
to_chat(src, "There are [S.pointers.len] pointers:")
for(var/p in S.pointers)
to_chat(src, p)
S = locate(p)
if(istype(S))
to_chat(src, S.debug_print())
/obj/proc/receive_signal(datum/signal/signal, receive_method, receive_param)
/obj/proc/receive_signal(datum/signal/signal)
return
/datum/signal
var/obj/source
var/transmission_method = 0
//0 = wire
//1 = radio transmission
//2 = subspace transmission
var/data = list()
var/encryption
var/frequency = 0
var/static/list/pointers = list()
var/transmission_method
var/list/data
/datum/signal/New()
..()
pointers += "[REF(src)]"
/datum/signal/Destroy()
pointers -= "[REF(src)]"
return ..()
/datum/signal/proc/copy_from(datum/signal/model)
source = model.source
transmission_method = model.transmission_method
data = model.data
encryption = model.encryption
frequency = model.frequency
/datum/signal/proc/debug_print()
if (source)
. = "signal = {source = '[source]' [COORD(source)]\n"
else
. = "signal = {source = '[source]' ()\n"
for (var/i in data)
. += "data\[\"[i]\"\] = \"[data[i]]\"\n"
if(islist(data[i]))
var/list/L = data[i]
for(var/t in L)
. += "data\[\"[i]\"\] list has: [t]"
/datum/signal/proc/sanitize_data()
for(var/d in data)
var/val = data[d]
if(istext(val))
data[d] = html_encode(val)
/datum/signal/New(data, transmission_method = TRANSMISSION_RADIO)
src.data = data || list()
src.transmission_method = transmission_method
+3 -1
View File
@@ -48,4 +48,6 @@
newhud.join_hud(current)
/datum/mind/proc/leave_all_antag_huds()
for(var/datum/atom_hud/antag/hud in GLOB.huds)
for(var/datum/atom_hud/antag/hud in GLOB.huds)
if(hud.hudusers[current])
hud.leave_hud(current)
+6 -6
View File
@@ -125,7 +125,7 @@
return
used = TRUE
var/mob/dead/observer/theghost = pick(nuke_candidates)
spawn_antag(theghost.client, get_turf(src), "syndieborg")
spawn_antag(theghost.client, get_turf(src), "syndieborg", user.mind)
do_sparks(4, TRUE, src)
qdel(src)
else
@@ -219,7 +219,7 @@
return
used = 1
var/mob/dead/observer/theghost = pick(demon_candidates)
spawn_antag(theghost.client, get_turf(src), initial(demon_type.name))
spawn_antag(theghost.client, get_turf(src), initial(demon_type.name),user.mind)
to_chat(user, shatter_msg)
to_chat(user, veil_msg)
playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, 1)
@@ -237,15 +237,15 @@
S.mind.special_role = S.name
SSticker.mode.traitors += S.mind
var/datum/objective/assassinate/new_objective
if(usr)
if(user)
new_objective = new /datum/objective/assassinate
new_objective.owner = S.mind
new_objective.target = usr.mind
new_objective.explanation_text = "[objective_verb] [usr.real_name], the one who summoned you."
new_objective.target = user
new_objective.explanation_text = "[objective_verb] [user.name], the one who summoned you."
S.mind.objectives += new_objective
var/datum/objective/new_objective2 = new /datum/objective
new_objective2.owner = S.mind
new_objective2.explanation_text = "[objective_verb] everyone[usr ? " else while you're at it":""]."
new_objective2.explanation_text = "[objective_verb] everyone[user ? " else while you're at it":""]."
S.mind.objectives += new_objective2
S.mind.add_antag_datum(/datum/antagonist/auto_custom)
to_chat(S, S.playstyle_string)
+1 -1
View File
@@ -30,4 +30,4 @@
name = initial(name)
desc = initial(desc)
atmosblock = TRUE
air_update_turf(1)
air_update_turf(1)
+3 -3
View File
@@ -59,7 +59,7 @@ GLOBAL_LIST_EMPTY(blob_nodes)
/mob/camera/blob/proc/validate_location()
var/turf/T = get_turf(src)
var/area/A = get_area(T)
if(((A && !A.blob_allowed) || !T || !(T.z in GLOB.station_z_levels)) && LAZYLEN(GLOB.blobstart))
if(((A && !A.blob_allowed) || !T || !is_station_level(T.z)) && LAZYLEN(GLOB.blobstart))
T = get_turf(pick(GLOB.blobstart))
if(!T)
CRASH("No blobspawnpoints and blob spawned in nullspace.")
@@ -83,7 +83,7 @@ GLOBAL_LIST_EMPTY(blob_nodes)
max_blob_points = INFINITY
blob_points = INFINITY
addtimer(CALLBACK(src, .proc/victory), 450)
if(!victory_in_progress && max_count < blobs_legit.len)
max_count = blobs_legit.len
..()
@@ -95,7 +95,7 @@ GLOBAL_LIST_EMPTY(blob_nodes)
for(var/i in GLOB.mob_living_list)
var/mob/living/L = i
var/turf/T = get_turf(L)
if(!T || !(T.z in GLOB.station_z_levels))
if(!T || !is_station_level(T.z))
continue
if(L in GLOB.overminds || (L.pass_flags & PASSBLOB))
+1 -1
View File
@@ -348,4 +348,4 @@
icon_state = "blob"
name = "blob"
desc = "A thick wall of writhing tendrils."
brute_resist = 0.25
brute_resist = 0.25
@@ -10,17 +10,6 @@
/obj/effect/proc_holder/changeling/panacea/sting_action(mob/user)
to_chat(user, "<span class='notice'>We cleanse impurities from our form.</span>")
var/mob/living/simple_animal/borer/B = user.has_brain_worms()
if(B)
if(B.controlling)
B.detatch()
B.leave_victim()
if(iscarbon(user))
var/mob/living/carbon/C = user
C.vomit(0, toxic = TRUE)
to_chat(user, "<span class='notice'>A parasite exits our form.</span>")
var/list/bad_organs = list(
user.getorgan(/obj/item/organ/body_egg),
user.getorgan(/obj/item/organ/zombie_infection))
@@ -209,7 +209,7 @@
/obj/effect/proc_holder/changeling/sting/blind/sting_action(mob/user, mob/living/carbon/target)
add_logs(user, target, "stung", "blind sting")
to_chat(target, "<span class='danger'>Your eyes burn horrifically!</span>")
target.become_nearsighted()
target.become_nearsighted(EYE_DAMAGE)
target.blind_eyes(20)
target.blur_eyes(40)
return TRUE
+1 -1
View File
@@ -196,7 +196,7 @@ Credit where due:
/datum/game_mode/clockwork_cult/proc/check_clockwork_victory()
return main_clockcult.check_clockwork_victory()
/datum/game_mode/clock_cult/set_round_result()
/datum/game_mode/clockwork_cult/set_round_result()
..()
if(GLOB.clockwork_gateway_activated)
SSticker.news_report = CLOCK_SUMMON
@@ -98,12 +98,12 @@
if(severity == 1 && uses)
uses = 0
visible_message("<span class='warning'>[src] is disrupted!</span>")
animate(src, alpha = 0, transform = matrix()*2, time = 10, flags_1 = ANIMATION_END_NOW)
animate(src, alpha = 0, transform = matrix()*2, time = 10, flags = ANIMATION_END_NOW)
deltimer(timerid)
timerid = QDEL_IN(src, 10)
linked_gateway.uses = 0
linked_gateway.visible_message("<span class='warning'>[linked_gateway] is disrupted!</span>")
animate(linked_gateway, alpha = 0, transform = matrix()*2, time = 10, flags_1 = ANIMATION_END_NOW)
animate(linked_gateway, alpha = 0, transform = matrix()*2, time = 10, flags = ANIMATION_END_NOW)
deltimer(linked_gateway.timerid)
linked_gateway.timerid = QDEL_IN(linked_gateway, 10)
return TRUE
@@ -144,13 +144,13 @@
uses = max(0, uses - 1)
linked_gateway.uses = max(0, linked_gateway.uses - 1)
if(!uses)
animate(src, transform = matrix() * 0.1, time = 10, flags_1 = ANIMATION_END_NOW)
animate(linked_gateway, transform = matrix() * 0.1, time = 10, flags_1 = ANIMATION_END_NOW)
animate(src, transform = matrix() * 0.1, time = 10, flags = ANIMATION_END_NOW)
animate(linked_gateway, transform = matrix() * 0.1, time = 10, flags = ANIMATION_END_NOW)
density = FALSE
linked_gateway.density = FALSE
else
animate(src, transform = matrix() / 1.5, time = 10, flags_1 = ANIMATION_END_NOW)
animate(linked_gateway, transform = matrix() / 1.5, time = 10, flags_1 = ANIMATION_END_NOW)
animate(src, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW)
animate(linked_gateway, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW)
addtimer(CALLBACK(src, .proc/check_uses), 10)
return TRUE
@@ -132,7 +132,7 @@
var/doortype = /obj/machinery/door/airlock/clockwork
if(glass)
doortype = /obj/machinery/door/airlock/clockwork/brass
return list("operation_time" = 60, "new_obj_type" = doortype, "power_cost" = POWER_WALL_TOTAL, "spawn_dir" = dir)
return list("operation_time" = 60, "new_obj_type" = doortype, "power_cost" = POWER_WALL_TOTAL, "spawn_dir" = dir, "transfer_name" = TRUE)
/obj/machinery/door/airlock/clockwork/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent)
return FALSE
@@ -188,7 +188,7 @@
//Windoor conversion
/obj/machinery/door/window/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent)
return list("operation_time" = 30, "new_obj_type" = /obj/machinery/door/window/clockwork, "power_cost" = POWER_STANDARD, "spawn_dir" = dir, "dir_in_new" = TRUE)
return list("operation_time" = 30, "new_obj_type" = /obj/machinery/door/window/clockwork, "power_cost" = POWER_STANDARD, "spawn_dir" = dir, "dir_in_new" = TRUE, "transfer_name" = TRUE)
/obj/machinery/door/window/clockwork/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent)
return FALSE
@@ -86,6 +86,7 @@
construct_type = /mob/living/simple_animal/drone/cogscarab
w_class = WEIGHT_CLASS_SMALL
var/infinite_resources = TRUE
var/static/obj/item/seasonal_hat //Share it with all other scarabs, since we're from the same cult!
/obj/item/clockwork/construct_chassis/cogscarab/Initialize()
. = ..()
@@ -96,6 +97,12 @@
if(infinite_resources)
//During rounds where they can't interact with the station, let them experiment with builds
construct_type = /mob/living/simple_animal/drone/cogscarab/ratvar
if(!seasonal_hat)
var/obj/item/drone_shell/D = locate() in GLOB.poi_list
if(D && D.possible_seasonal_hats.len)
seasonal_hat = pick(D.possible_seasonal_hats)
else
seasonal_hat = "none"
/obj/item/clockwork/construct_chassis/cogscarab/post_spawn(mob/living/construct)
if(infinite_resources) //Allow them to build stuff and recite scripture
@@ -104,3 +111,6 @@
F.uses_power = FALSE
for(var/obj/item/clockwork/slab/S in cached_stuff)
S.no_cost = TRUE
if(seasonal_hat && seasonal_hat != "none")
var/obj/item/hat = new seasonal_hat(construct)
construct.equip_to_slot_or_del(hat, slot_head)
@@ -144,10 +144,14 @@
else
if(new_thing_type)
if(fabrication_values["dir_in_new"])
new new_thing_type(get_turf(target), fabrication_values["spawn_dir"]) //please verify that your new object actually wants to get a dir in New()
var/atom/A = new new_thing_type(get_turf(target), fabrication_values["spawn_dir"]) //please verify that your new object actually wants to get a dir in New()
if(fabrication_values["transfer_name"])
A.name = target.name
else
var/atom/A = new new_thing_type(get_turf(target))
A.setDir(fabrication_values["spawn_dir"])
if(fabrication_values["transfer_name"])
A.name = target.name
if(!fabrication_values["no_target_deletion"]) //for some cases where fabrication_vals() modifies the object but doesn't want it deleted
qdel(target)
adjust_clockwork_power(-fabrication_values["power_cost"])
@@ -51,7 +51,7 @@
to_chat(victim, "<span class='heavy_brass'>\"It looks like Nar-Sie's dogs really don't value their eyes.\"</span>")
to_chat(victim, "<span class='userdanger'>Your eyes explode with horrific pain!</span>")
victim.emote("scream")
victim.become_blind()
victim.become_blind(EYE_DAMAGE)
victim.adjust_blurriness(30)
victim.adjust_blindness(30)
return TRUE
@@ -142,8 +142,8 @@
apply_eye_damage(H)
else
if(GLOB.ratvar_awakens)
H.cure_nearsighted()
H.cure_blind()
H.cure_nearsighted(list(EYE_DAMAGE))
H.cure_blind(list(EYE_DAMAGE))
H.adjust_eye_damage(-eye_damage_done)
eye_damage_done = 0
else if(prob(50) && eye_damage_done)
@@ -166,5 +166,7 @@
if(eye_damage_done >= blind_breakpoint)
if(!H.has_disability(DISABILITY_BLIND))
to_chat(H, "<span class='nzcrentr_large'>A piercing white light floods your vision. Suddenly, all goes dark!</span>")
H.become_blind(EYE_DAMAGE)
if(prob(min(20, 5 + eye_damage_done)))
to_chat(H, "<span class='nzcrentr_small'><i>Your eyes continue to burn.</i></span>")
@@ -1,3 +1,7 @@
//Helper proc to get an Eminence mob if it exists
/proc/get_eminence()
return locate(/mob/camera/eminence) in servants_and_ghosts()
//The Eminence is a unique mob that functions like the leader of the cult. It's incorporeal but can interact with the world in several ways.
/mob/camera/eminence
name = "\the Emininence"
@@ -12,6 +16,7 @@
layer = FLY_LAYER
faction = list("ratvar")
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
var/turf/last_failed_turf
var/static/superheated_walls = 0
/mob/camera/eminence/CanPass(atom/movable/mover, turf/target)
@@ -20,25 +25,38 @@
/mob/camera/eminence/Move(NewLoc, direct)
var/OldLoc = loc
if(NewLoc && !istype(NewLoc, /turf/open/indestructible/reebe_void))
forceMove(get_turf(NewLoc))
var/turf/T = get_turf(NewLoc)
if(T.flags_1 & NOJAUNT_1)
if(last_failed_turf != T)
T.visible_message("<span class='warning'>[T] suddenly emits a ringing sound!</span>", ignore_mob = src)
playsound(T, 'sound/machines/clockcult/ark_damage.ogg', 75, FALSE)
last_failed_turf = T
to_chat(src, "<span class='warning'>This turf is consecrated and can't be crossed!</span>")
return
if(!GLOB.ratvar_awakens && istype(get_area(T), /area/chapel))
to_chat(src, "<span class='warning'>The Chapel is hallowed ground under a heretical deity, and can't be accessed!</span>")
return
forceMove(T)
Moved(OldLoc, direct)
if(GLOB.ratvar_awakens)
for(var/turf/T in range(5, src))
if(prob(166 - (get_dist(src, T) * 33)))
T.ratvar_act() //Causes moving to leave a swath of proselytized area behind the Eminence
/mob/camera/eminence/Process_Spacemove(movement_dir = 0)
return TRUE
/mob/camera/eminence/Login()
..()
add_servant_of_ratvar(src, TRUE)
var/datum/antagonist/clockcult/C = mind.has_antag_datum(/datum/antagonist/clockcult,TRUE)
if(!C)
add_servant_of_ratvar(src, TRUE)
C = mind.has_antag_datum(/datum/antagonist/clockcult,TRUE)
if(C && C.clock_team)
if(C.clock_team.eminence)
remove_servant_of_ratvar(src,TRUE)
qdel(src)
else
C.clock_team.eminence = src
if(C && C.clock_team)
if(C.clock_team.eminence && C.clock_team.eminence != src)
remove_servant_of_ratvar(src,TRUE)
qdel(src)
return
else
C.clock_team.eminence = src
to_chat(src, "<span class='bold large_brass'>You have been selected as the Eminence!</span>")
to_chat(src, "<span class='brass'>As the Eminence, you lead the servants. Anything you say will be heard by the entire cult.</span>")
to_chat(src, "<span class='brass'>Though you can move through walls, you're also incorporeal, and largely can't interact with the world except for a few ways.</span>")
@@ -53,6 +71,12 @@
E.Grant(src)
/mob/camera/eminence/say(message)
if(client)
if(client.prefs.muted & MUTE_IC)
to_chat(src, "You cannot send IC messages (muted).")
return
if(client.handle_spam_prevention(message,MUTE_IC))
return
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
if(!message)
return
@@ -60,7 +84,13 @@
if(GLOB.ratvar_awakens)
visible_message("<span class='brass'><b>You feel light slam into your mind and form words:</b> \"[capitalize(message)]\"</span>")
playsound(src, 'sound/machines/clockcult/ark_scream.ogg', 50, FALSE)
hierophant_message("<span class='large_brass'><b>The Eminence:</b> \"[message]\"</span>")
message = "<span class='big brass'><b>The [GLOB.ratvar_awakens ? "Radiance" : "Eminence"]:</b> \"[message]\"</span>"
for(var/mob/M in servants_and_ghosts())
if(isobserver(M))
var/link = FOLLOW_LINK(M, src)
to_chat(M, "[link] [message]")
else
to_chat(M, message)
/mob/camera/eminence/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode)
if(is_reebe(z) || is_servant_of_ratvar(speaker) || GLOB.ratvar_approaches || GLOB.ratvar_awakens) //Away from Reebe, the Eminence can't hear anything
@@ -21,7 +21,7 @@
loot = list(/obj/item/clockwork/component/geis_capacitor/fallen_armor)
light_range = 2
light_power = 1.1
playstyle_string = "<b><span class='neovgre'>You are a clockwork marauder,</span> a well-rounded frontline construct of Ratvar. Although you have no \
playstyle_string = "<span class='big bold'><span class='neovgre'>You are a clockwork marauder,</span></span><b> a well-rounded frontline construct of Ratvar. Although you have no \
unique abilities, you're a fearsome fighter in one-on-one combat, and your shield protects from projectiles!<br><br>Obey the Servants and do as they \
tell you. Your primary goal is to defend the Ark from destruction; they are your allies in this, and should be protected from harm.</b>"
empower_string = "<span class='neovgre'>The Anima Bulwark's power flows through you! Your weapon will strike harder, your armor is sturdier, and your shield is more durable.</span>"
@@ -113,7 +113,7 @@
/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/mass_recall()
for(var/V in SSticker.mode.servants_of_ratvar)
var/datum/mind/M = V
if(!M.current.stat)
if(M.current.stat != DEAD)
M.current.forceMove(get_turf(src))
M.current.overlay_fullscreen("flash", /obj/screen/fullscreen/flash)
M.current.clear_fullscreen("flash", 5)
@@ -38,7 +38,6 @@
/obj/structure/destructible/clockwork/eminence_spire/attack_ghost(mob/user)
if(!IsAdminGhost(user))
return
var/datum/antagonist/clockcult/random_cultist = locate() in GLOB.antagonists //if theres no cultists new team without eminence will be created anyway.
if(random_cultist && random_cultist.clock_team && random_cultist.clock_team.eminence)
to_chat(user, "<span class='warning'>There's already an Eminence - too late!</span>")
+6 -6
View File
@@ -163,7 +163,7 @@
/obj/item/twohanded/required/cult_bastard/afterattack(atom/target, mob/user, proximity, click_parameters)
. = ..()
if(dash_toggled && jaunt.IsAvailable())
if(dash_toggled)
jaunt.Teleport(user, target)
return
if(!proximity)
@@ -577,21 +577,21 @@
if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated())
return
if(!cultist_to_receive)
to_chat(user, "<span class='cultitalic'>You require a destination!</span>")
to_chat(user, "<span class='cult italic'>You require a destination!</span>")
log_game("Void torch failed - no target")
return
if(cultist_to_receive.stat == DEAD)
to_chat(user, "<span class='cultitalic'>[cultist_to_receive] has died!</span>")
to_chat(user, "<span class='cult italic'>[cultist_to_receive] has died!</span>")
log_game("Void torch failed - target died")
return
if(!iscultist(cultist_to_receive))
to_chat(user, "<span class='cultitalic'>[cultist_to_receive] is not a follower of the Geometer!</span>")
to_chat(user, "<span class='cult italic'>[cultist_to_receive] is not a follower of the Geometer!</span>")
log_game("Void torch failed - target was deconverted")
return
if(A in user.GetAllContents())
to_chat(user, "<span class='cultitalic'>[A] must be on a surface in order to teleport it!</span>")
to_chat(user, "<span class='cult italic'>[A] must be on a surface in order to teleport it!</span>")
return
to_chat(user, "<span class='cultitalic'>You ignite [A] with \the [src], turning it to ash, but through the torch's flames you see that [A] has reached [cultist_to_receive]!")
to_chat(user, "<span class='cult italic'>You ignite [A] with \the [src], turning it to ash, but through the torch's flames you see that [A] has reached [cultist_to_receive]!")
cultist_to_receive.put_in_hands(A)
charges--
to_chat(user, "\The [src] now has [charges] charge\s.")
+13 -17
View File
@@ -10,7 +10,7 @@
..()
to_chat(user, "<span class='notice'>\The [src] is [anchored ? "":"not "]secured to the floor.</span>")
if((iscultist(user) || isobserver(user)) && cooldowntime > world.time)
to_chat(user, "<span class='cultitalic'>The magic in [src] is too weak, [p_they()] will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
to_chat(user, "<span class='cult italic'>The magic in [src] is too weak, [p_they()] will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
/obj/structure/destructible/cult/examine_status(mob/user)
if(iscultist(user) || isobserver(user))
@@ -62,10 +62,10 @@
to_chat(user, "<span class='warning'>You're pretty sure you know exactly what this is used for and you can't seem to touch it.</span>")
return
if(!anchored)
to_chat(user, "<span class='cultitalic'>You need to anchor [src] to the floor with a tome first.</span>")
to_chat(user, "<span class='cult italic'>You need to anchor [src] to the floor with a tome first.</span>")
return
if(cooldowntime > world.time)
to_chat(user, "<span class='cultitalic'>The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
to_chat(user, "<span class='cult italic'>The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
return
var/choice = alert(user,"You study the schematics etched into the forge...",,"Eldritch Whetstone","Zealot's Blindfold","Flask of Unholy Water")
var/pickedtype
@@ -79,7 +79,7 @@
if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time)
cooldowntime = world.time + 2400
var/obj/item/N = new pickedtype(get_turf(src))
to_chat(user, "<span class='cultitalic'>You kneel before the altar and your faith is rewarded with an [N]!</span>")
to_chat(user, "<span class='cult italic'>You kneel before the altar and your faith is rewarded with an [N]!</span>")
/obj/structure/destructible/cult/forge
@@ -95,15 +95,14 @@
to_chat(user, "<span class='warning'>The heat radiating from [src] pushes you back.</span>")
return
if(!anchored)
to_chat(user, "<span class='cultitalic'>You need to anchor [src] to the floor with a tome first.</span>")
to_chat(user, "<span class='cult italic'>You need to anchor [src] to the floor with a tome first.</span>")
return
if(cooldowntime > world.time)
to_chat(user, "<span class='cultitalic'>The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
to_chat(user, "<span class='cult italic'>The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
return
var/option = "Shielded Robe"
option = input(user, "You study the schematics etched into the forge...", "[src]", option) as null|anything in list("Shielded Robe", "Flagellant's Robe", "Bastard Sword", "Nar-Sien Hardsuit")
var/choice = alert(user,"You study the schematics etched into the forge...",,"Shielded Robe","Flagellant's Robe","Bastard Sword")
var/pickedtype
switch(option)
switch(choice)
if("Shielded Robe")
pickedtype = /obj/item/clothing/suit/hooded/cultrobes/cult_shield
if("Flagellant's Robe")
@@ -113,16 +112,13 @@
pickedtype = /obj/item/twohanded/required/cult_bastard
else
cooldowntime = 12000 - (world.time - SSticker.round_start_time)
to_chat(user, "<span class='cultitalic'>The forge fires are not yet hot enough for this weapon, give it another [DisplayTimeText(cooldowntime)].</span>")
to_chat(user, "<span class='cult italic'>The forge fires are not yet hot enough for this weapon, give it another [DisplayTimeText(cooldowntime)].</span>")
cooldowntime = 0
return
if("Nar-Sien Hardsuit")
pickedtype = /obj/item/clothing/suit/space/hardsuit/cult
if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time)
cooldowntime = world.time + 2400
var/obj/item/N = new pickedtype(get_turf(src))
to_chat(user, "<span class='cultitalic'>You work the forge as dark knowledge guides your hands, creating [N]!</span>")
to_chat(user, "<span class='cult italic'>You work the forge as dark knowledge guides your hands, creating [N]!</span>")
@@ -212,10 +208,10 @@
to_chat(user, "<span class='warning'>All of these books seem to be gibberish.</span>")
return
if(!anchored)
to_chat(user, "<span class='cultitalic'>You need to anchor [src] to the floor with a tome first.</span>")
to_chat(user, "<span class='cult italic'>You need to anchor [src] to the floor with a tome first.</span>")
return
if(cooldowntime > world.time)
to_chat(user, "<span class='cultitalic'>The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
to_chat(user, "<span class='cult italic'>The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
return
var/choice = alert(user,"You flip through the black pages of the archives...",,"Supply Talisman","Shuttle Curse","Veil Walker Set")
var/list/pickedtype = list()
@@ -231,7 +227,7 @@
cooldowntime = world.time + 2400
for(var/N in pickedtype)
var/obj/item/D = new N(get_turf(src))
to_chat(user, "<span class='cultitalic'>You summon [D] from the archives!</span>")
to_chat(user, "<span class='cult italic'>You summon [D] from the archives!</span>")
/obj/effect/gateway
name = "gateway"
+1
View File
@@ -265,6 +265,7 @@ This file contains the arcane tome files.
if(locate(/obj/effect/rune) in T)
to_chat(user, "<span class='cult'>There is already a rune here.</span>")
return FALSE
if(!is_station_level(T.z) && !is_mining_level(T.z))
to_chat(user, "<span class='warning'>The veil is not weak enough here.</span>")
return FALSE
+51 -40
View File
@@ -140,7 +140,7 @@ structure_check() searches for nearby cultist structures required for the invoca
L.say(invocation, language = /datum/language/common, ignore_spam = TRUE)
if(invoke_damage)
L.apply_damage(invoke_damage, BRUTE)
to_chat(L, "<span class='cultitalic'>[src] saps your strength!</span>")
to_chat(L, "<span class='cult italic'>[src] saps your strength!</span>")
do_invoke_glow()
/obj/effect/rune/proc/do_invoke_glow()
@@ -201,12 +201,12 @@ structure_check() searches for nearby cultist structures required for the invoca
var/obj/item/paper/talisman/talisman_type
var/list/possible_talismans = list()
if(!papers_on_rune.len)
to_chat(user, "<span class='cultitalic'>There must be a blank paper on top of [src]!</span>")
to_chat(user, "<span class='cult italic'>There must be a blank paper on top of [src]!</span>")
fail_invoke()
log_game("Talisman Creation rune failed - no blank papers on rune")
return
if(rune_in_use)
to_chat(user, "<span class='cultitalic'>[src] can only support one ritual at a time!</span>")
to_chat(user, "<span class='cult italic'>[src] can only support one ritual at a time!</span>")
fail_invoke()
log_game("Talisman Creation rune failed - already in use")
return
@@ -222,7 +222,7 @@ structure_check() searches for nearby cultist structures required for the invoca
return
papers_on_rune = checkpapers()
if(!papers_on_rune.len)
to_chat(user, "<span class='cultitalic'>There must be a blank paper on top of [src]!</span>")
to_chat(user, "<span class='cult italic'>There must be a blank paper on top of [src]!</span>")
fail_invoke()
log_game("Talisman Creation rune failed - no blank papers on rune")
return
@@ -394,9 +394,9 @@ structure_check() searches for nearby cultist structures required for the invoca
SSticker.mode.add_cultist(convertee.mind, 1)
new /obj/item/tome(get_turf(src))
convertee.mind.special_role = "Cultist"
to_chat(convertee, "<span class='cultitalic'><b>Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible, truth. The veil of reality has been ripped away \
to_chat(convertee, "<span class='cult italic'><b>Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible, truth. The veil of reality has been ripped away \
and something evil takes root.</b></span>")
to_chat(convertee, "<span class='cultitalic'><b>Assist your new compatriots in their dark dealings. Your goal is theirs, and theirs is yours. You serve the Geometer above all else. Bring it back.\
to_chat(convertee, "<span class='cult italic'><b>Assist your new compatriots in their dark dealings. Your goal is theirs, and theirs is yours. You serve the Geometer above all else. Bring it back.\
</b></span>")
return 1
@@ -412,7 +412,7 @@ structure_check() searches for nearby cultist structures required for the invoca
var/big_sac = FALSE
if((((ishuman(sacrificial) || iscyborg(sacrificial)) && sacrificial.stat != DEAD) || C.cult_team.is_sacrifice_target(sacrificial.mind)) && invokers.len < 3)
for(var/M in invokers)
to_chat(M, "<span class='cultitalic'>[sacrificial] is too greatly linked to the world! You need three acolytes!</span>")
to_chat(M, "<span class='cult italic'>[sacrificial] is too greatly linked to the world! You need three acolytes!</span>")
log_game("Offer rune failed - not enough acolytes and target is living or sac target")
return FALSE
if(sacrificial.mind)
@@ -515,10 +515,10 @@ structure_check() searches for nearby cultist structures required for the invoca
message_admins("[key_name_admin(user)] erased a Narsie rune with a null rod")
..()
//Rite of Resurrection: Requires the corpse of a cultist and that there have been less revives than the number of people GLOB.sacrificed
//Rite of Resurrection: Requires a dead or inactive cultist. When reviving the dead, you can only perform one revival for every sacrifice your cult has carried out.
/obj/effect/rune/raise_dead
cultist_name = "Resurrect Cultist"
cultist_desc = "requires the corpse of a cultist placed upon the rune. Provided there have been sufficient sacrifices, they will be revived."
cultist_name = "Revive Cultist"
cultist_desc = "requires a dead, mindless, or inactive cultist placed upon the rune. Provided there have been sufficient sacrifices, they will be given a new life."
invocation = "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!" //Depends on the name of the user - see below
icon_state = "1"
color = RUNE_COLOR_MEDIUMRED
@@ -539,16 +539,11 @@ structure_check() searches for nearby cultist structures required for the invoca
return
rune_in_use = TRUE
for(var/mob/living/M in T.contents)
if(iscultist(M) && M.stat == DEAD)
if(iscultist(M) && (M.stat == DEAD || !M.client || M.client.is_afk()))
potential_revive_mobs |= M
if(!potential_revive_mobs.len)
to_chat(user, "<span class='cultitalic'>There are no dead cultists on the rune!</span>")
log_game("Raise Dead rune failed - no corpses to revive")
fail_invoke()
rune_in_use = FALSE
return
if(LAZYLEN(GLOB.sacrificed) <= revives_used)
to_chat(user, "<span class='warning'>You have sacrificed too few people to revive a cultist!</span>")
to_chat(user, "<span class='cult italic'>There are no dead cultists on the rune!</span>")
log_game("Raise Dead rune failed - no cultists to revive")
fail_invoke()
rune_in_use = FALSE
return
@@ -564,9 +559,25 @@ structure_check() searches for nearby cultist structures required for the invoca
else
invocation = initial(invocation)
..()
revives_used++
mob_to_revive.revive(1, 1) //This does remove disabilities and such, but the rune might actually see some use because of it!
mob_to_revive.grab_ghost()
if(mob_to_revive.stat == DEAD)
if(LAZYLEN(GLOB.sacrificed) <= revives_used)
to_chat(user, "<span class='warning'>Your cult must carry out another sacrifice before it can revive a cultist!</span>")
fail_invoke()
rune_in_use = FALSE
return
revives_used++
mob_to_revive.revive(1, 1) //This does remove disabilities and such, but the rune might actually see some use because of it!
mob_to_revive.grab_ghost()
else if(!mob_to_revive.client || mob_to_revive.client.is_afk())
set waitfor = FALSE
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [mob_to_revive.name], an inactive blood cultist?", "[name]", null, "Blood Cultist", 50, mob_to_revive)
var/mob/dead/observer/theghost = null
if(candidates.len)
theghost = pick(candidates)
to_chat(mob_to_revive.mind, "Your physical form has been taken over by another soul due to your inactivity! Ahelp if you wish to regain your form.")
message_admins("[key_name_admin(theghost)] has taken control of ([key_name_admin(mob_to_revive)]) to replace an AFK player.")
mob_to_revive.ghostize(0)
mob_to_revive.key = theghost.key
to_chat(mob_to_revive, "<span class='cultlarge'>\"PASNAR SAVRAE YAM'TOTH. Arise.\"</span>")
mob_to_revive.visible_message("<span class='warning'>[mob_to_revive] draws in a huge breath, red light shining from [mob_to_revive.p_their()] eyes.</span>", \
"<span class='cultlarge'>You awaken suddenly from the void. You're alive!</span>")
@@ -582,13 +593,13 @@ structure_check() searches for nearby cultist structures required for the invoca
fail_invoke()
return FALSE
if(!(target_mob in T.contents))
to_chat(user, "<span class='cultitalic'>The cultist to revive has been moved!</span>")
to_chat(user, "<span class='cult italic'>The cultist to revive has been moved!</span>")
fail_invoke()
log_game("Raise Dead rune failed - revival target moved")
return FALSE
var/mob/dead/observer/ghost = target_mob.get_ghost(TRUE)
if(!ghost && (!target_mob.mind || !target_mob.mind.active))
to_chat(user, "<span class='cultitalic'>The corpse to revive has no spirit!</span>")
to_chat(user, "<span class='cult italic'>The corpse to revive has no spirit!</span>")
fail_invoke()
log_game("Raise Dead rune failed - revival target has no ghost")
return FALSE
@@ -655,16 +666,16 @@ structure_check() searches for nearby cultist structures required for the invoca
/obj/effect/rune/spirit/examine(mob/user)
..()
if(affecting)
to_chat(user, "<span class='cultitalic'>A translucent field encases [affecting] above the rune!</span>")
to_chat(user, "<span class='cult italic'>A translucent field encases [affecting] above the rune!</span>")
/obj/effect/rune/spirit/can_invoke(mob/living/user)
if(rune_in_use)
to_chat(user, "<span class='cultitalic'>[src] cannot support more than one body!</span>")
to_chat(user, "<span class='cult italic'>[src] cannot support more than one body!</span>")
log_game("Spirit Sight rune failed - more than one user")
return list()
var/turf/T = get_turf(src)
if(!(user in T))
to_chat(user, "<span class='cultitalic'>You must be standing on top of [src]!</span>")
to_chat(user, "<span class='cult italic'>You must be standing on top of [src]!</span>")
log_game("Spirit Sight rune failed - user not standing on rune")
return list()
return ..()
@@ -694,11 +705,11 @@ structure_check() searches for nearby cultist structures required for the invoca
if(affecting.stat == UNCONSCIOUS)
if(prob(1))
var/mob/dead/observer/G = affecting.get_ghost()
to_chat(G, "<span class='cultitalic'>You feel the link between you and your body weakening... you must hurry!</span>")
to_chat(G, "<span class='cult italic'>You feel the link between you and your body weakening... you must hurry!</span>")
else if(affecting.stat == DEAD)
affecting.remove_atom_colour(ADMIN_COLOUR_PRIORITY, RUNE_COLOR_DARKRED)
var/mob/dead/observer/G = affecting.get_ghost()
to_chat(G, "<span class='cultitalic'><b>You suddenly feel your physical form pass on. [src]'s exertion has killed you!</b></span>")
to_chat(G, "<span class='cult italic'><b>You suddenly feel your physical form pass on. [src]'s exertion has killed you!</b></span>")
break
sleep(1)
affecting = null
@@ -722,7 +733,7 @@ structure_check() searches for nearby cultist structures required for the invoca
/obj/effect/rune/wall/examine(mob/user)
..()
if(density)
to_chat(user, "<span class='cultitalic'>There is a barely perceptible shimmering of the air above [src].</span>")
to_chat(user, "<span class='cult italic'>There is a barely perceptible shimmering of the air above [src].</span>")
/obj/effect/rune/wall/Destroy()
density = FALSE
@@ -744,7 +755,7 @@ structure_check() searches for nearby cultist structures required for the invoca
spread_density()
var/carbon_user = iscarbon(user)
user.visible_message("<span class='warning'>[user] [carbon_user ? "places [user.p_their()] hands on":"stares intently at"] [src], and [density ? "the air above it begins to shimmer" : "the shimmer above it fades"].</span>", \
"<span class='cultitalic'>You channel [carbon_user ? "your life ":""]energy into [src], [density ? "temporarily preventing" : "allowing"] passage above it.</span>")
"<span class='cult italic'>You channel [carbon_user ? "your life ":""]energy into [src], [density ? "temporarily preventing" : "allowing"] passage above it.</span>")
if(carbon_user)
var/mob/living/carbon/C = user
C.apply_damage(2, BRUTE, pick("l_arm", "r_arm"))
@@ -806,17 +817,17 @@ structure_check() searches for nearby cultist structures required for the invoca
if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated())
return
if(!cultist_to_summon)
to_chat(user, "<span class='cultitalic'>You require a summoning target!</span>")
to_chat(user, "<span class='cult italic'>You require a summoning target!</span>")
fail_invoke()
log_game("Summon Cultist rune failed - no target")
return
if(cultist_to_summon.stat == DEAD)
to_chat(user, "<span class='cultitalic'>[cultist_to_summon] has died!</span>")
to_chat(user, "<span class='cult italic'>[cultist_to_summon] has died!</span>")
fail_invoke()
log_game("Summon Cultist rune failed - target died")
return
if(!iscultist(cultist_to_summon))
to_chat(user, "<span class='cultitalic'>[cultist_to_summon] is not a follower of the Geometer!</span>")
to_chat(user, "<span class='cult italic'>[cultist_to_summon] is not a follower of the Geometer!</span>")
fail_invoke()
log_game("Summon Cultist rune failed - target was deconverted")
return
@@ -826,7 +837,7 @@ structure_check() searches for nearby cultist structures required for the invoca
log_game("Summon Cultist rune failed - target in away mission")
return
cultist_to_summon.visible_message("<span class='warning'>[cultist_to_summon] suddenly disappears in a flash of red light!</span>", \
"<span class='cultitalic'><b>Overwhelming vertigo consumes you as you are hurled through the air!</b></span>")
"<span class='cult italic'><b>Overwhelming vertigo consumes you as you are hurled through the air!</b></span>")
..()
visible_message("<span class='warning'>A foggy shape materializes atop [src] and solidifes into [cultist_to_summon]!</span>")
cultist_to_summon.forceMove(get_turf(src))
@@ -914,17 +925,17 @@ structure_check() searches for nearby cultist structures required for the invoca
/obj/effect/rune/manifest/can_invoke(mob/living/user)
if(!(user in get_turf(src)))
to_chat(user, "<span class='cultitalic'>You must be standing on [src]!</span>")
to_chat(user, "<span class='cult italic'>You must be standing on [src]!</span>")
fail_invoke()
log_game("Manifest rune failed - user not standing on rune")
return list()
if(user.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST))
to_chat(user, "<span class='cultitalic'>Ghosts can't summon more ghosts!</span>")
to_chat(user, "<span class='cult italic'>Ghosts can't summon more ghosts!</span>")
fail_invoke()
log_game("Manifest rune failed - user is a ghost")
return list()
if(ghosts >= ghost_limit)
to_chat(user, "<span class='cultitalic'>You are sustaining too many ghosts to summon more!</span>")
to_chat(user, "<span class='cult italic'>You are sustaining too many ghosts to summon more!</span>")
fail_invoke()
log_game("Manifest rune failed - too many summoned ghosts")
return list()
@@ -933,7 +944,7 @@ structure_check() searches for nearby cultist structures required for the invoca
if(O.client && !jobban_isbanned(O, ROLE_CULTIST))
ghosts_on_rune += O
if(!ghosts_on_rune.len)
to_chat(user, "<span class='cultitalic'>There are no spirits near [src]!</span>")
to_chat(user, "<span class='cult italic'>There are no spirits near [src]!</span>")
fail_invoke()
log_game("Manifest rune failed - no nearby ghosts")
return list()
@@ -955,13 +966,13 @@ structure_check() searches for nearby cultist structures required for the invoca
ghosts++
playsound(src, 'sound/magic/exit_blood.ogg', 50, 1)
visible_message("<span class='warning'>A cloud of red mist forms above [src], and from within steps... a [new_human.gender == FEMALE ? "wo":""]man.</span>")
to_chat(user, "<span class='cultitalic'>Your blood begins flowing into [src]. You must remain in place and conscious to maintain the forms of those summoned. This will hurt you slowly but surely...</span>")
to_chat(user, "<span class='cult italic'>Your blood begins flowing into [src]. You must remain in place and conscious to maintain the forms of those summoned. This will hurt you slowly but surely...</span>")
var/turf/T = get_turf(src)
var/obj/structure/emergency_shield/invoker/N = new(T)
new_human.key = ghost_to_spawn.key
SSticker.mode.add_cultist(new_human.mind, 0)
to_chat(new_human, "<span class='cultitalic'><b>You are a servant of the Geometer. You have been made semi-corporeal by the cult of Nar-Sie, and you are to serve them at all costs.</b></span>")
to_chat(new_human, "<span class='cult italic'><b>You are a servant of the Geometer. You have been made semi-corporeal by the cult of Nar-Sie, and you are to serve them at all costs.</b></span>")
while(!QDELETED(src) && !QDELETED(user) && !QDELETED(new_human) && (user in T))
if(user.stat || new_human.InCritical())
+12 -12
View File
@@ -39,7 +39,7 @@
invocation = "Ra'sha yoka!"
/obj/item/paper/talisman/malformed/invoke(mob/living/user, successfuluse = 1)
to_chat(user, "<span class='cultitalic'>You feel a pain in your head. The Geometer is displeased.</span>")
to_chat(user, "<span class='cult italic'>You feel a pain in your head. The Geometer is displeased.</span>")
if(iscarbon(user))
var/mob/living/carbon/C = user
C.apply_damage(10, BRUTE, "head")
@@ -79,7 +79,7 @@
to_chat(user, "<span class='warning'>The target rune is blocked. Attempting to teleport to it would be massively unwise.</span>")
return ..(user, 0)
user.visible_message("<span class='warning'>Dust flows from [user]'s hand, and [user.p_they()] disappear[user.p_s()] with a sharp crack!</span>", \
"<span class='cultitalic'>You speak the words of the talisman and find yourself somewhere else!</span>", "<i>You hear a sharp crack.</i>")
"<span class='cult italic'>You speak the words of the talisman and find yourself somewhere else!</span>", "<i>You hear a sharp crack.</i>")
user.forceMove(target)
target.visible_message("<span class='warning'>There is a boom of outrushing air as something appears above the rune!</span>", null, "<i>You hear a boom.</i>")
return ..()
@@ -96,10 +96,10 @@
/obj/item/paper/talisman/summon_tome/invoke(mob/living/user, successfuluse = 1)
. = ..()
user.visible_message("<span class='warning'>[user]'s hand glows red for a moment.</span>", \
"<span class='cultitalic'>You speak the words of the talisman!</span>")
"<span class='cult italic'>You speak the words of the talisman!</span>")
new /obj/item/tome(get_turf(user))
user.visible_message("<span class='warning'>A tome appears at [user]'s feet!</span>", \
"<span class='cultitalic'>An arcane tome materializes at your feet.</span>")
"<span class='cult italic'>An arcane tome materializes at your feet.</span>")
/obj/item/paper/talisman/true_sight
cultist_name = "Talisman of Veiling"
@@ -115,14 +115,14 @@
. = ..()
if(!revealing)
user.visible_message("<span class='warning'>Thin grey dust falls from [user]'s hand!</span>", \
"<span class='cultitalic'>You speak the words of the talisman, hiding nearby runes.</span>")
"<span class='cult italic'>You speak the words of the talisman, hiding nearby runes.</span>")
invocation = "Nikt'o barada kla'atu!"
revealing = TRUE
for(var/obj/effect/rune/R in range(4,user))
R.talismanhide()
else
user.visible_message("<span class='warning'>A flash of light shines from [user]'s hand!</span>", \
"<span class='cultitalic'>You speak the words of the talisman, revealing nearby runes.</span>")
"<span class='cult italic'>You speak the words of the talisman, revealing nearby runes.</span>")
for(var/obj/effect/rune/R in range(3,user))
R.talismanreveal()
@@ -137,7 +137,7 @@
/obj/item/paper/talisman/emp/invoke(mob/living/user, successfuluse = 1)
. = ..()
user.visible_message("<span class='warning'>[user]'s hand flashes a bright blue!</span>", \
"<span class='cultitalic'>You speak the words of the talisman, emitting an EMP blast.</span>")
"<span class='cult italic'>You speak the words of the talisman, emitting an EMP blast.</span>")
empulse(src, 4, 8)
@@ -162,7 +162,7 @@
if(iscultist(user))
invoke(user, 1)
user.visible_message("<span class='warning'>[user] holds up [src], which explodes in a flash of red light!</span>", \
"<span class='cultitalic'>You stun [target] with the talisman!</span>")
"<span class='cult italic'>You stun [target] with the talisman!</span>")
var/obj/item/nullrod/N = locate() in target
if(N)
target.visible_message("<span class='warning'>[target]'s holy weapon absorbs the talisman's light!</span>", \
@@ -197,7 +197,7 @@
/obj/item/paper/talisman/armor/invoke(mob/living/user, successfuluse = 1)
. = ..()
user.visible_message("<span class='warning'>Otherworldly armor suddenly appears on [user]!</span>", \
"<span class='cultitalic'>You speak the words of the talisman, arming yourself!</span>")
"<span class='cult italic'>You speak the words of the talisman, arming yourself!</span>")
user.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head)
user.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit)
user.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), slot_shoes)
@@ -226,7 +226,7 @@
/obj/item/paper/talisman/horror/afterattack(mob/living/target, mob/living/user)
if(iscultist(user) && (get_dist(user, target) < 7))
if(iscarbon(target))
to_chat(user, "<span class='cultitalic'>You disturb [target] with visions of madness!</span>")
to_chat(user, "<span class='cult italic'>You disturb [target] with visions of madness!</span>")
var/mob/living/carbon/H = target
H.reagents.add_reagent("mindbreaker", 12)
if(is_servant_of_ratvar(target))
@@ -254,7 +254,7 @@
/obj/item/paper/talisman/construction/attack(obj/M,mob/living/user)
if(iscultist(user))
to_chat(user, "<span class='cultitalic'>This talisman will only work on a stack of metal or plasteel sheets!</span>")
to_chat(user, "<span class='cult italic'>This talisman will only work on a stack of metal or plasteel sheets!</span>")
log_game("Construct talisman failed - not a valid target")
else
..()
@@ -306,7 +306,7 @@
/obj/item/paper/talisman/shackle/attack(mob/living/carbon/target, mob/living/user)
if(iscultist(user) && istype(target))
if(target.stat == DEAD)
user.visible_message("<span class='cultitalic'>This talisman's magic does not affect the dead!</span>")
user.visible_message("<span class='cult italic'>This talisman's magic does not affect the dead!</span>")
return
CuffAttack(target, user)
return
+1 -1
View File
@@ -34,7 +34,7 @@
var/boost = 0
bloodcrawl = BLOODCRAWL_EAT
var/list/consumed_mobs = list()
var/playstyle_string = "<B><font size=3 color='red'>You are an imp,</font> a mischevious creature from hell. You are the lowest rank on the hellish totem pole \
var/playstyle_string = "<span class='big bold'>You are an imp,</span><B> a mischevious creature from hell. You are the lowest rank on the hellish totem pole \
Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \
of intentionally harming a fellow devil.</B>"
@@ -304,7 +304,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
sleep(30)
if(!owner || QDELETED(owner))
return
priority_announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/AI/aimalf.ogg')
priority_announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/ai/aimalf.ogg')
set_security_level("delta")
var/obj/machinery/doomsday_device/DOOM = new(owner_AI)
owner_AI.nuking = TRUE
@@ -367,12 +367,12 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
var/sec_left = seconds_remaining()
if(!sec_left)
timing = FALSE
detonate(T.z)
detonate()
else if(world.time >= next_announce)
minor_announce("[sec_left] SECONDS UNTIL DOOMSDAY DEVICE ACTIVATION!", "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", TRUE)
next_announce += DOOMSDAY_ANNOUNCE_INTERVAL
/obj/machinery/doomsday_device/proc/detonate(z_level = ZLEVEL_STATION_PRIMARY)
/obj/machinery/doomsday_device/proc/detonate()
sound_to_playing_players('sound/machines/alarm.ogg')
sleep(100)
for(var/i in GLOB.mob_living_list)
+1 -2
View File
@@ -105,7 +105,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
/obj/effect/meteor/Move()
if(z != z_original || loc == dest)
qdel(src)
return
return FALSE
. = ..() //process movement...
@@ -317,7 +317,6 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
/obj/effect/meteor/meaty/xeno/New()
meteordrop += subtypesof(/obj/item/organ/alien)
meteordrop -= /obj/item/organ/alien/eggsac
..()
/obj/effect/meteor/meaty/xeno/ram_turf(turf/T)
@@ -300,11 +300,10 @@
/obj/item/organ/heart/gland/plasma/activate()
to_chat(owner, "<span class='warning'>You feel bloated.</span>")
sleep(150)
if(!owner)
return
to_chat(owner, "<span class='userdanger'>A massive stomachache overcomes you.</span>")
sleep(50)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, owner, "<span class='userdanger'>A massive stomachache overcomes you.</span>"), 150)
addtimer(CALLBACK(src, .proc/vomit_plasma), 200)
/obj/item/organ/heart/gland/plasma/proc/vomit_plasma()
if(!owner)
return
owner.visible_message("<span class='danger'>[owner] vomits a cloud of plasma!</span>")
@@ -322,10 +322,6 @@
to_chat(S, "<span class='warning'>This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting.</span>")
return FALSE
/obj/machinery/message_server/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
to_chat(S, "<span class='warning'>This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting.</span>")
return FALSE
/obj/machinery/deepfryer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
to_chat(S, "<span class='warning'>This kitchen appliance should be preserved, it will make delicious unhealthy snacks for our masters in the future. Aborting.</span>")
return FALSE
@@ -1,8 +1,8 @@
/datum/round_event_control/spawn_swarmer
name = "Spawn Swarmer Shell"
typepath = /datum/round_event/spawn_swarmer
weight = 0
max_occurrences = 0 //Only once okay fam
weight = 7
max_occurrences = 1 //Only once okay fam
earliest_start = 18000 //30 minutes
min_players = 15
@@ -16,7 +16,7 @@
return 0
new /obj/effect/mob_spawn/swarmer(get_turf(GLOB.the_gateway))
if(prob(25)) //25% chance to announce it to the crew
var/swarmer_report = "<font size=3><b>[command_name()] High-Priority Update</b></span>"
var/swarmer_report = "<span class='big bold'>[command_name()] High-Priority Update</span>"
swarmer_report += "<br><br>Our long-range sensors have detected an odd signal emanating from your station's gateway. We recommend immediate investigation of your gateway, as something may have come through."
print_command_report(swarmer_report, announce=TRUE)
@@ -41,7 +41,7 @@
/mob/living/simple_animal/hostile/morph,
/obj/effect))
var/playstyle_string = "<b><font size=3 color='red'>You are a morph,</font> an abomination of science created primarily with changeling cells. \
var/playstyle_string = "<span class='big bold'>You are a morph,</span></b> an abomination of science created primarily with changeling cells. \
You may take the form of anything nearby by shift-clicking it. This process will alert any nearby \
observers, and can only be performed once every five seconds. While morphed, you move faster, but do \
less damage. In addition, anyone within three tiles will note an uncanny wrongness if examining you. \
@@ -64,7 +64,7 @@
/mob/living/simple_animal/revenant/Login()
..()
to_chat(src, "<span class='deadsay'><font size=3><b>You are a revenant.</b></font></span>")
to_chat(src, "<span class='deadsay'><span class='big bold'>You are a revenant.</span></span>")
to_chat(src, "<b>Your formerly mundane spirit has been infused with alien energies and empowered into a revenant.</b>")
to_chat(src, "<b>You are not dead, not alive, but somewhere in between. You are capable of limited interaction with both worlds.</b>")
to_chat(src, "<b>You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable.</b>")
@@ -35,7 +35,7 @@
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
var/boost = 0
bloodcrawl = BLOODCRAWL_EAT
var/playstyle_string = "<B><font size=3 color='red'>You are a slaughter demon,</font> a terrible creature from another realm. You have a single desire: To kill. \
var/playstyle_string = "<span class='big bold'>You are a slaughter demon,</span><B> a terrible creature from another realm. You have a single desire: To kill. \
You may use the \"Blood Crawl\" ability near blood pools to travel through them, appearing and disappearing from the station at will. \
Pulling a dead or unconscious mob while you enter a pool will pull them in with you, allowing you to feast and regain your health. \
You move quickly upon leaving a pool of blood, but the material world will soon sap your strength and leave you sluggish. </B>"
@@ -136,8 +136,8 @@
// Keep the people we hug!
var/list/consumed_mobs = list()
playstyle_string = "<B><font size=3 color='red'>You are a laughter \
demon,</font> a wonderful creature from another realm. You have a single \
playstyle_string = "<span class='big bold'>You are a laughter \
demon,</span><B> a wonderful creature from another realm. You have a single \
desire: <span class='clown'>To hug and tickle.</span><BR>\
You may use the \"Blood Crawl\" ability near blood pools to travel \
through them, appearing and disappearing from the station at will. \
+2 -2
View File
@@ -141,8 +141,8 @@
/datum/outfit/syndicate/post_equip(mob/living/carbon/human/H)
var/obj/item/device/radio/R = H.ears
R.set_frequency(GLOB.SYND_FREQ)
R.freqlock = 1
R.set_frequency(FREQ_SYNDICATE)
R.freqlock = TRUE
if(command_radio)
R.command = TRUE
+1 -1
View File
@@ -572,4 +572,4 @@ This is here to make the tiles around the station mininuke change when it's arme
user.visible_message("<span class='suicide'>[user] is pretending to go delta! It looks like [user.p_theyre()] trying to commit suicide!</span>")
playsound(src, 'sound/machines/alarm.ogg', 30, -1, 1)
addtimer(CALLBACK(src, .proc/manual_suicide, user), 101)
return MANUAL_SUICIDE
return MANUAL_SUICIDE
+9 -9
View File
@@ -1,6 +1,6 @@
/datum/objective
var/datum/mind/owner //The primary owner of the objective. !!SOMEWHAT DEPRECATED!! Prefer using 'team' for new code.
var/datum/objective_team/team //An alternative to 'owner': a team. Use this when writing new code.
var/datum/team/team //An alternative to 'owner': a team. Use this when writing new code.
var/explanation_text = "Nothing" //What that person is supposed to do.
var/team_explanation_text //For when there are multiple owners.
var/datum/mind/target = null //If they are focused on a particular person.
@@ -47,9 +47,9 @@
. = list()
for(var/V in GLOB.data_core.locked)
var/datum/data/record/R = V
var/mob/M = R.fields["reference"]
if(M && M.mind)
. += M.mind
var/datum/mind/M = R.fields["mindref"]
if(M)
. += M
/datum/objective/proc/find_target()
var/list/datum/mind/owners = get_owners()
@@ -524,7 +524,7 @@ GLOBAL_LIST_EMPTY(possible_items_special)
var/list/otherwise = M.GetAllContents()
for(var/obj/item/disk/tech_disk/TD in otherwise)
TD.stored_research.copy_research_to(checking)
return checking.researched_nodes.len >= target
return checking.researched_nodes.len >= target_amount
/datum/objective/capture
@@ -537,25 +537,25 @@ GLOBAL_LIST_EMPTY(possible_items_special)
var/captured_amount = 0
var/area/centcom/holding/A = locate() in GLOB.sortedAreas
for(var/mob/living/carbon/human/M in A)//Humans.
if(M.stat==2)//Dead folks are worth less.
if(M.stat == DEAD)//Dead folks are worth less.
captured_amount+=0.5
continue
captured_amount+=1
for(var/mob/living/carbon/monkey/M in A)//Monkeys are almost worthless, you failure.
captured_amount+=0.1
for(var/mob/living/carbon/alien/larva/M in A)//Larva are important for research.
if(M.stat==2)
if(M.stat == DEAD)
captured_amount+=0.5
continue
captured_amount+=1
for(var/mob/living/carbon/alien/humanoid/M in A)//Aliens are worth twice as much as humans.
if(istype(M, /mob/living/carbon/alien/humanoid/royal/queen))//Queens are worth three times as much as humans.
if(M.stat==2)
if(M.stat == DEAD)
captured_amount+=1.5
else
captured_amount+=3
continue
if(M.stat==2)
if(M.stat == DEAD)
captured_amount+=1
continue
captured_amount+=2
+1 -1
View File
@@ -27,7 +27,7 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
//items that shouldn't spawn on the floor because they would bug or act weird
var/global/list/spawn_forbidden = list(
/obj/item/tk_grab, /obj/item/implant, // not implanter, the actual thing that is inside you
/obj/item/assembly, /obj/item/device/onetankbomb, /obj/item/radio, /obj/item/device/pda/ai,
/obj/item/assembly, /obj/item/device/onetankbomb, /obj/item/device/pda/ai,
/obj/item/smallDelivery, /obj/item/projectile,
/obj/item/borg/sight, /obj/item/borg/stun, /obj/item/robot_module)
+2 -2
View File
@@ -47,7 +47,7 @@
for(var/datum/mind/wizard in wizards)
if(isliving(wizard.current) && wizard.current.stat!=DEAD)
return FALSE
for(var/obj/item/phylactery/P in GLOB.poi_list) //TODO : IsProperlyDead()
if(P.mind && P.mind.has_antag_datum(/datum/antagonist/wizard))
return FALSE
@@ -55,7 +55,7 @@
if(SSevents.wizardmode) //If summon events was active, turn it off
SSevents.toggleWizardmode()
SSevents.resetFrequency()
return TRUE
/datum/game_mode/wizard/set_round_result()
+2 -2
View File
@@ -15,7 +15,7 @@
state_open = TRUE
circuit = /obj/item/circuitboard/machine/sleeper
var/efficiency = 1
var/min_health = 30
var/min_health = -25
var/list/available_chems
var/controls_inside = FALSE
var/list/possible_chems = list(
@@ -42,7 +42,7 @@
I += M.rating
efficiency = initial(efficiency)* E
min_health = initial(min_health) - (10*E)
min_health = initial(min_health) - (10*(E-1)) // CIT CHANGE - changes min health equation to be min_health - (matterbin rating * 10)
available_chems = list()
for(var/i in 1 to I)
available_chems |= possible_chems[i]
+24 -28
View File
@@ -8,7 +8,7 @@
/obj/machinery/door/airlock/receive_signal(datum/signal/signal)
if(!signal || signal.encryption)
if(!signal)
return
if(id_tag != signal.data["tag"] || !signal.data["command"])
@@ -52,15 +52,13 @@
/obj/machinery/door/airlock/proc/send_status()
if(radio_connection)
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.data["tag"] = id_tag
signal.data["timestamp"] = world.time
signal.data["door_status"] = density?("closed"):("open")
signal.data["lock_status"] = locked?("locked"):("unlocked")
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = GLOB.RADIO_AIRLOCK)
var/datum/signal/signal = new(list(
"tag" = id_tag,
"timestamp" = world.time,
"door_status" = density ? "closed" : "open",
"lock_status" = locked ? "locked" : "unlocked"
))
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK)
/obj/machinery/door/airlock/open(surpress_send)
@@ -79,10 +77,10 @@
SSradio.remove_object(src, frequency)
if(new_frequency)
frequency = new_frequency
radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_AIRLOCK)
radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK)
/obj/machinery/door/airlock/Destroy()
if(frequency && SSradio)
if(frequency)
SSradio.remove_object(src,frequency)
return ..()
@@ -97,7 +95,7 @@
var/id_tag
var/master_tag
var/frequency = 1449
var/frequency = FREQ_AIRLOCK_CONTROL
var/datum/radio_frequency/radio_connection
@@ -115,36 +113,34 @@
icon_state = "airlock_sensor_off"
/obj/machinery/airlock_sensor/attack_hand(mob/user)
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.data["tag"] = master_tag
signal.data["command"] = "cycle"
var/datum/signal/signal = new(list(
"tag" = master_tag,
"command" = "cycle"
))
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = GLOB.RADIO_AIRLOCK)
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK)
flick("airlock_sensor_cycle", src)
/obj/machinery/airlock_sensor/process()
if(on)
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.data["tag"] = id_tag
signal.data["timestamp"] = world.time
var/datum/gas_mixture/air_sample = return_air()
var/pressure = round(air_sample.return_pressure(),0.1)
alert = (pressure < ONE_ATMOSPHERE*0.8)
signal.data["pressure"] = num2text(pressure)
var/datum/signal/signal = new(list(
"tag" = id_tag,
"timestamp" = world.time,
"pressure" = num2text(pressure)
))
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = GLOB.RADIO_AIRLOCK)
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK)
update_icon()
/obj/machinery/airlock_sensor/proc/set_frequency(new_frequency)
SSradio.remove_object(src, frequency)
frequency = new_frequency
radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_AIRLOCK)
radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK)
/obj/machinery/airlock_sensor/Initialize()
. = ..()
@@ -152,4 +148,4 @@
/obj/machinery/airlock_sensor/Destroy()
SSradio.remove_object(src,frequency)
return ..()
return ..()
+1 -1
View File
@@ -53,7 +53,7 @@
radio = new(src)
radio.keyslot = new radio_key
radio.subspace_transmission = 1
radio.subspace_transmission = TRUE
radio.canhear_range = 0
radio.recalculateChannels()
+4 -5
View File
@@ -44,8 +44,7 @@
/obj/item/grenade/chem_grenade/glitter/blue = 1,
/obj/item/grenade/chem_grenade/glitter/white = 1,
/obj/item/toy/eightball = 2,
/obj/item/toy/windupToolbox = 2,
/obj/item/toy/sword/cx = 2)
/obj/item/toy/windupToolbox = 2)
light_color = LIGHT_COLOR_GREEN
@@ -418,17 +417,17 @@
dat += "<br>You ran out of food and starved."
if(emagged)
user.nutrition = 0 //yeah you pretty hongry
to_chat(user, "<span class='userdanger'><font size=3>Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor.</span>")
to_chat(user, "<span class='userdanger'>Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor.</span>")
if(fuel <= 0)
dat += "<br>You ran out of fuel, and drift, slowly, into a star."
if(emagged)
var/mob/living/M = user
M.adjust_fire_stacks(5)
M.IgniteMob() //flew into a star, so you're on fire
to_chat(user, "<span class='userdanger'><font size=3>You feel an immense wave of heat emanate from the arcade machine. Your skin bursts into flames.</span>")
to_chat(user, "<span class='userdanger'>You feel an immense wave of heat emanate from the arcade machine. Your skin bursts into flames.</span>")
if(emagged)
to_chat(user, "<span class='userdanger'><font size=3>You're never going to make it to Orion...</span></font>")
to_chat(user, "<span class='userdanger'>You're never going to make it to Orion...</span>")
user.death()
emagged = FALSE //removes the emagged status after you lose
gameStatus = ORION_STATUS_START
+3 -3
View File
@@ -6,7 +6,7 @@
icon_keyboard = "atmos_key"
var/list/priority_alarms = list()
var/list/minor_alarms = list()
var/receive_frequency = 1437
var/receive_frequency = FREQ_ATMOS_ALARMS
var/datum/radio_frequency/radio_connection
light_color = LIGHT_COLOR_CYAN
@@ -57,10 +57,10 @@
/obj/machinery/computer/atmos_alert/proc/set_frequency(new_frequency)
SSradio.remove_object(src, receive_frequency)
receive_frequency = new_frequency
radio_connection = SSradio.add_object(src, receive_frequency, GLOB.RADIO_ATMOSIA)
radio_connection = SSradio.add_object(src, receive_frequency, RADIO_ATMOSIA)
/obj/machinery/computer/atmos_alert/receive_signal(datum/signal/signal)
if(!signal || signal.encryption)
if(!signal)
return
var/zone = signal.data["zone"]
+14 -19
View File
@@ -11,7 +11,7 @@
var/on = TRUE
var/id_tag
var/frequency = 1441
var/frequency = FREQ_ATMOS_STORAGE
var/datum/radio_frequency/radio_connection
/obj/machinery/air_sensor/update_icon()
@@ -19,31 +19,29 @@
/obj/machinery/air_sensor/process_atmos()
if(on)
var/datum/signal/signal = new
var/datum/gas_mixture/air_sample = return_air()
signal.transmission_method = 1 //radio signal
signal.data = list(
var/datum/signal/signal = new(list(
"sigtype" = "status",
"id_tag" = id_tag,
"timestamp" = world.time,
"pressure" = air_sample.return_pressure(),
"temperature" = air_sample.temperature,
"gases" = list()
)
))
var/total_moles = air_sample.total_moles()
if(total_moles)
for(var/gas_id in air_sample.gases)
var/gas_name = air_sample.gases[gas_id][GAS_META][META_GAS_NAME]
signal.data["gases"][gas_name] = air_sample.gases[gas_id][MOLES] / total_moles * 100
radio_connection.post_signal(src, signal, filter = GLOB.RADIO_ATMOSIA)
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
/obj/machinery/air_sensor/proc/set_frequency(new_frequency)
SSradio.remove_object(src, frequency)
frequency = new_frequency
radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_ATMOSIA)
radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
/obj/machinery/air_sensor/Initialize()
. = ..()
@@ -66,7 +64,7 @@
icon_keyboard = "atmos_key"
circuit = /obj/item/circuitboard/computer/atmos_control
var/frequency = 1441
var/frequency = FREQ_ATMOS_STORAGE
var/list/sensors = list(
"n2_sensor" = "Nitrogen Tank",
"o2_sensor" = "Oxygen Tank",
@@ -117,7 +115,7 @@
return data
/obj/machinery/computer/atmos_control/receive_signal(datum/signal/signal)
if(!signal || signal.encryption)
if(!signal)
return
var/id_tag = signal.data["id_tag"]
@@ -129,7 +127,7 @@
/obj/machinery/computer/atmos_control/proc/set_frequency(new_frequency)
SSradio.remove_object(src, frequency)
frequency = new_frequency
radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_ATMOSIA)
radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
/////////////////////////////////////////////////////////////
// LARGE TANK CONTROL
@@ -138,7 +136,7 @@
/obj/machinery/computer/atmos_control/tank
var/input_tag
var/output_tag
frequency = 1441
frequency = FREQ_ATMOS_STORAGE
circuit = /obj/item/circuitboard/computer/atmos_control/tank
var/list/input_info
@@ -147,7 +145,7 @@
// This hacky madness is the evidence of the fact that a lot of machines were never meant to be constructable, im so sorry you had to see this
/obj/machinery/computer/atmos_control/tank/proc/reconnect(mob/user)
var/list/IO = list()
var/datum/radio_frequency/freq = SSradio.return_frequency(1441)
var/datum/radio_frequency/freq = SSradio.return_frequency(FREQ_ATMOS_STORAGE)
var/list/devices = freq.devices["_default"]
for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in devices)
var/list/text = splittext(U.id_tag, "_")
@@ -194,10 +192,7 @@
/obj/machinery/computer/atmos_control/tank/ui_act(action, params)
if(..() || !radio_connection)
return
var/datum/signal/signal = new
signal.transmission_method = 1
signal.source = src
signal.data = list("sigtype" = "command")
var/datum/signal/signal = new(list("sigtype" = "command"))
switch(action)
if("reconnect")
reconnect(usr)
@@ -214,10 +209,10 @@
target = CLAMP(target, 0, 50 * ONE_ATMOSPHERE)
signal.data += list("tag" = output_tag, "set_internal_pressure" = target)
. = TRUE
radio_connection.post_signal(src, signal, filter = GLOB.RADIO_ATMOSIA)
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
/obj/machinery/computer/atmos_control/tank/receive_signal(datum/signal/signal)
if(!signal || signal.encryption)
if(!signal)
return
var/id_tag = signal.data["tag"]
@@ -227,4 +222,4 @@
else if(output_tag == id_tag)
output_info = signal.data
else
..(signal)
..(signal)
@@ -311,6 +311,9 @@
else if(isspaceturf(T))
to_chat(user, "<span class='sevtug_small'>[prob(1) ? "Servant cannot into space." : "You can't teleport into space."]</span>")
return
else if(T.flags_1 & NOJAUNT_1)
to_chat(user, "<span class='sevtug_small'>This tile is blessed by holy water and deflects the warp.</span>")
return
var/area/AR = get_area(T)
if(!AR.clockwork_warp_allowed)
to_chat(user, "<span class='sevtug_small'>[AR.clockwork_warp_fail]</span>")
+7 -10
View File
@@ -28,7 +28,6 @@
var/const/STATE_TOGGLE_EMERGENCY = 10
var/const/STATE_PURCHASE = 11
var/status_display_freq = "1435"
var/stat_msg1
var/stat_msg2
@@ -136,6 +135,7 @@
to_chat(usr, "<span class='warning'>Arrays recycling. Please stand by.</span>")
playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0)
return
var/input = stripped_multiline_input(usr, "Please choose a message to transmit to allied stations. Please be aware that this process is very expensive, and abuse will lead to... termination.", "Send a message to an allied station.", "")
if(!input || !(usr in view(1,src)))
return
@@ -228,7 +228,7 @@
log_game("[key_name(usr)] answered [currmsg.title] comm message. Answer : [currmsg.answered]")
if(currmsg)
currmsg.answer_callback.Invoke()
state = STATE_VIEWMESSAGE
if("status")
state = STATE_STATUSDISPLAY
@@ -464,8 +464,9 @@
if (authenticated==2)
dat += "<BR><BR><B>Captain Functions</B>"
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=announce'>Make a Captain's Announcement</A> \]"
if(CONFIG_GET(string/cross_server_address))
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=crossserver'>Send a message to an allied station</A> \]"
var/cross_servers_count = length(CONFIG_GET(keyed_string_list/cross_server))
if(cross_servers_count)
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=crossserver'>Send a message to [cross_servers_count == 1 ? "an " : ""]allied station[cross_servers_count > 1 ? "s" : ""]</A> \]"
if(SSmapping.config.allow_custom_shuttles)
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=purchase_menu'>Purchase Shuttle</A> \]"
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=changeseclevel'>Change Alert Level</A> \]"
@@ -693,16 +694,12 @@
/obj/machinery/computer/communications/proc/post_status(command, data1, data2)
var/datum/radio_frequency/frequency = SSradio.return_frequency(1435)
var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS)
if(!frequency)
return
var/datum/signal/status_signal = new
status_signal.source = src
status_signal.transmission_method = 1
status_signal.data["command"] = command
var/datum/signal/status_signal = new(list("command" = command))
switch(command)
if("message")
status_signal.data["msg1"] = data1
+36 -36
View File
@@ -108,9 +108,9 @@
else
scanner_status = "Closed"
if(connected.locked)
scanner_status += " <span class='bad'>(Locked)</span>"
scanner_status += "<span class='bad'>(Locked)</span>"
else
scanner_status += " <span class='good'>(Unlocked)</span>"
scanner_status += "<span class='good'>(Unlocked)</span>"
else
@@ -143,27 +143,27 @@
status += "<div class='line'><div class='statusLabel'>Pulse Duration:</div><div class='statusValue'>[radduration]</div></div>"
status += "<div class='line'><div class='statusLabel'>&nbsp;&nbsp;\> Accuracy:</div><div class='statusValue'>[chance_to_hit]</div></div>"
status += "<br></div>" // Close statusDisplay div
var/list/buttons = list("<a href='?src=[REF(src)];'>Scan</a> ")
var/list/buttons = list("<a href='?src=[REF(src)];'>Scan</a>")
if(connected)
buttons += " <a href='?src=[REF(src)];task=toggleopen;'>[connected.state_open ? "Close" : "Open"] Scanner</a> "
buttons += "<a href='?src=[REF(src)];task=toggleopen;'>[connected.state_open ? "Close" : "Open"] Scanner</a>"
if (connected.state_open)
buttons += "<span class='linkOff'>[connected.locked ? "Unlock" : "Lock"] Scanner</span> "
buttons += "<span class='linkOff'>[connected.locked ? "Unlock" : "Lock"] Scanner</span>"
else
buttons += "<a href='?src=[REF(src)];task=togglelock;'>[connected.locked ? "Unlock" : "Lock"] Scanner</a> "
buttons += "<a href='?src=[REF(src)];task=togglelock;'>[connected.locked ? "Unlock" : "Lock"] Scanner</a>"
else
buttons += "<span class='linkOff'>Open Scanner</span> <span class='linkOff'>Lock Scanner</span> "
buttons += "<span class='linkOff'>Open Scanner</span> <span class='linkOff'>Lock Scanner</span>"
if(viable_occupant)
buttons += "<a href='?src=[REF(src)];task=rejuv'>Inject Rejuvenators</a> "
buttons += "<a href='?src=[REF(src)];task=rejuv'>Inject Rejuvenators</a>"
else
buttons += "<span class='linkOff'>Inject Rejuvenators</span> "
buttons += "<span class='linkOff'>Inject Rejuvenators</span>"
if(diskette)
buttons += "<a href='?src=[REF(src)];task=ejectdisk'>Eject Disk</a> "
buttons += "<a href='?src=[REF(src)];task=ejectdisk'>Eject Disk</a>"
else
buttons += "<span class='linkOff'>Eject Disk</span> "
buttons += "<span class='linkOff'>Eject Disk</span>"
if(current_screen == "buffer")
buttons += "<a href='?src=[REF(src)];task=screen;text=mainmenu;'>Radiation Emitter Menu</a> "
buttons += "<a href='?src=[REF(src)];task=screen;text=mainmenu;'>Radiation Emitter Menu</a>"
else
buttons += "<a href='?src=[REF(src)];task=screen;text=buffer;'>Buffer Menu</a> "
buttons += "<a href='?src=[REF(src)];task=screen;text=buffer;'>Buffer Menu</a>"
switch(current_screen)
if("working")
@@ -182,15 +182,15 @@
if( !buffer_slot || !buffer_slot.len || !buffer_slot["name"] || !((buffer_slot["UI"] && buffer_slot["UE"]) || buffer_slot["SE"]) )
temp_html += "<br>\tNo Data"
if(viable_occupant)
temp_html += "<br><a href='?src=[REF(src)];task=setbuffer;num=[i];'>Save to Buffer</a> "
temp_html += "<br><a href='?src=[REF(src)];task=setbuffer;num=[i];'>Save to Buffer</a>"
else
temp_html += "<br><span class='linkOff'>Save to Buffer</span> "
temp_html += "<span class='linkOff'>Clear Buffer</span> "
temp_html += "<br><span class='linkOff'>Save to Buffer</span>"
temp_html += "<span class='linkOff'>Clear Buffer</span>"
if(diskette)
temp_html += "<a href='?src=[REF(src)];task=loaddisk;num=[i];'>Load from Disk</a> "
temp_html += "<a href='?src=[REF(src)];task=loaddisk;num=[i];'>Load from Disk</a>"
else
temp_html += "<span class='linkOff'>Load from Disk</span> "
temp_html += "<span class='linkOff'>Save to Disk</span> "
temp_html += "<span class='linkOff'>Load from Disk</span>"
temp_html += "<span class='linkOff'>Save to Disk</span>"
else
var/ui = buffer_slot["UI"]
var/se = buffer_slot["SE"]
@@ -204,10 +204,10 @@
temp_html += "<br>\tBlood Type: [blood_type]"
temp_html += "<br>\tUE: [ue] "
if(viable_occupant)
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=ue'>Occupant</a> "
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=ue'>Occupant</a>"
else
temp_html += "<span class='linkOff'>Occupant</span>"
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_UE]'>Occupant:Delayed</a> "
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_UE]'>Occupant:Delayed</a>"
if(injectorready < world.time)
temp_html += "<a href='?src=[REF(src)];task=injector;num=[i];text=ue'>Injector</a>"
else
@@ -218,10 +218,10 @@
if(ui)
temp_html += "<br>\tUI: [ui] "
if(viable_occupant)
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=ui'>Occupant</a> "
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=ui'>Occupant</a>"
else
temp_html += "<span class='linkOff'>Occupant</span>"
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_UI]'>Occupant:Delayed</a> "
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_UI]'>Occupant:Delayed</a>"
if(injectorready < world.time)
temp_html += "<a href='?src=[REF(src)];task=injector;num=[i];text=ui'>Injector</a>"
else
@@ -231,10 +231,10 @@
if(ue && name && blood_type && ui)
temp_html += "<br>\tUI+UE: [ui]/[ue] "
if(viable_occupant)
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=mixed'>Occupant</a> "
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=mixed'>Occupant</a>"
else
temp_html += "<span class='linkOff'>Occupant</span>"
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_MIXED]'>Occupant:Delayed</a> "
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_MIXED]'>Occupant:Delayed</a>"
if(injectorready < world.time)
temp_html += "<a href='?src=[REF(src)];task=injector;num=[i];text=mixed'>UI+UE Injector</a>"
else
@@ -242,10 +242,10 @@
if(se)
temp_html += "<br>\tSE: [se] "
if(viable_occupant)
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=se'>Occupant</a> "
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=se'>Occupant</a>"
else
temp_html += "<span class='linkOff'>Occupant</span> "
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_SE]'>Occupant:Delayed</a> "
temp_html += "<span class='linkOff'>Occupant</span>"
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_SE]'>Occupant:Delayed</a>"
if(injectorready < world.time )
temp_html += "<a href='?src=[REF(src)];task=injector;num=[i];text=se'>Injector</a>"
else
@@ -253,18 +253,18 @@
else
temp_html += "<br>\tSE: No Data"
if(viable_occupant)
temp_html += "<br><a href='?src=[REF(src)];task=setbuffer;num=[i];'>Save to Buffer</a> "
temp_html += "<br><a href='?src=[REF(src)];task=setbuffer;num=[i];'>Save to Buffer</a>"
else
temp_html += "<br><span class='linkOff'>Save to Buffer</span> "
temp_html += "<a href='?src=[REF(src)];task=clearbuffer;num=[i];'>Clear Buffer</a> "
temp_html += "<br><span class='linkOff'>Save to Buffer</span>"
temp_html += "<a href='?src=[REF(src)];task=clearbuffer;num=[i];'>Clear Buffer</a>"
if(diskette)
temp_html += "<a href='?src=[REF(src)];task=loaddisk;num=[i];'>Load from Disk</a> "
temp_html += "<a href='?src=[REF(src)];task=loaddisk;num=[i];'>Load from Disk</a>"
else
temp_html += "<span class='linkOff'>Load from Disk</span> "
temp_html += "<span class='linkOff'>Load from Disk</span>"
if(diskette && !diskette.read_only)
temp_html += "<a href='?src=[REF(src)];task=savedisk;num=[i];'>Save to Disk</a> "
temp_html += "<a href='?src=[REF(src)];task=savedisk;num=[i];'>Save to Disk</a>"
else
temp_html += "<span class='linkOff'>Save to Disk</span> "
temp_html += "<span class='linkOff'>Save to Disk</span>"
else
temp_html += status
temp_html += buttons
@@ -528,7 +528,7 @@
var/mob/living/carbon/viable_occupant = null
if(connected)
viable_occupant = connected.occupant
if(!istype(viable_occupant) || !viable_occupant.dna || (viable_occupant.has_disability(DISABILITY_NOCLONE)))
if(!istype(viable_occupant) || !viable_occupant.dna || (RADIMMUNE in viable_occupant.dna.species.species_traits) || (viable_occupant.has_disability(DISABILITY_NOCLONE)))
viable_occupant = null
return viable_occupant
@@ -156,8 +156,6 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
..()
var/list/nukeops = get_antagonists(/datum/antagonist/nukeop)
var/danger = GLOB.joined_player_list.len - nukeops.len
// var/list/nukeops = get_antagonists(/datum/antagonist/nukeop)
// var/danger = GLOB.joined_player_list.len - nukeops.len
danger = CEILING(danger, 10)
scaleTC(danger)
+2 -6
View File
@@ -173,12 +173,8 @@
if(M.stat == DEAD)
if(M.timeofdeath + 6000 < world.time)
continue
var/turf/T = get_turf(M)
if(!T)
continue
if(T.z == ZLEVEL_CENTCOM)
continue
L[avoid_assoc_duplicate_keys(M.real_name, areaindex)] = I
if(is_eligible(I))
L[avoid_assoc_duplicate_keys(M.real_name, areaindex)] = I
var/desc = input("Please select a location to lock in.", "Locking Computer") as null|anything in L
target = L[desc]
@@ -257,4 +257,5 @@
for(var/X in components)
var/obj/item/I = X
I.forceMove(loc)
..()
+14 -12
View File
@@ -34,7 +34,7 @@
#define AIRLOCK_INTEGRITY_N 300 // Normal airlock integrity
#define AIRLOCK_INTEGRITY_MULTIPLIER 1.5 // How much reinforced doors health increases
#define AIRLOCK_DAMAGE_DEFLECTION_N 20 // Normal airlock damage deflection
#define AIRLOCK_DAMAGE_DEFLECTION_N 20 // Normal airlock damage deflection // CIT CHANGE - CHANGES DEFAULT AIRLOCK DEFLECTION FROM 21 TO 20
#define AIRLOCK_DAMAGE_DEFLECTION_R 30 // Reinforced airlock damage deflection
#define NOT_ELECTRIFIED 0
@@ -209,23 +209,27 @@
/obj/machinery/door/airlock/narsie_act()
var/turf/T = get_turf(src)
var/runed = prob(20)
var/obj/machinery/door/airlock/cult/A
if(glass)
if(runed)
new/obj/machinery/door/airlock/cult/glass(T)
A = new/obj/machinery/door/airlock/cult/glass(T)
else
new/obj/machinery/door/airlock/cult/unruned/glass(T)
A = new/obj/machinery/door/airlock/cult/unruned/glass(T)
else
if(runed)
new/obj/machinery/door/airlock/cult(T)
A = new/obj/machinery/door/airlock/cult(T)
else
new/obj/machinery/door/airlock/cult/unruned(T)
A = new/obj/machinery/door/airlock/cult/unruned(T)
A.name = name
qdel(src)
/obj/machinery/door/airlock/ratvar_act() //Airlocks become pinion airlocks that only allow servants
var/obj/machinery/door/airlock/clockwork/A
if(glass)
new/obj/machinery/door/airlock/clockwork/brass(get_turf(src))
A = new/obj/machinery/door/airlock/clockwork/brass(get_turf(src))
else
new/obj/machinery/door/airlock/clockwork(get_turf(src))
A = new/obj/machinery/door/airlock/clockwork(get_turf(src))
A.name = name
qdel(src)
/obj/machinery/door/airlock/Destroy()
@@ -251,16 +255,13 @@
note = null
update_icon()
/obj/machinery/door/airlock/proc/unzap() //for addtimer
justzap = FALSE
/obj/machinery/door/airlock/bumpopen(mob/living/user) //Airlocks now zap you when you 'bump' them open when they're electrified. --NeoFite
if(!issilicon(usr))
if(isElectrified())
if(!justzap)
if(shock(user, 100))
justzap = TRUE
addtimer(CALLBACK(src, .proc/unzap), 10)
addtimer(VARSET_CALLBACK(src, justzap, FALSE) , 10)
return
else
return
@@ -568,6 +569,8 @@
/obj/machinery/door/airlock/examine(mob/user)
..()
if(emagged)
to_chat(user, "<span class='warning'>Its access panel is smoking slightly.</span>")
if(charge && !panel_open && in_range(user, src))
to_chat(user, "<span class='warning'>The maintenance panel seems haphazardly fastened.</span>")
if(charge && panel_open)
@@ -1231,7 +1234,6 @@
if(!open())
update_icon(AIRLOCK_CLOSED, 1)
emagged = TRUE
desc = "<span class='warning'>Its access panel is smoking slightly.</span>"
lights = FALSE
locked = TRUE
loseMainPower()
+11 -31
View File
@@ -79,69 +79,49 @@
opacity = 0
glass = TRUE
/obj/machinery/door/airlock/glass_command
icon = 'icons/obj/doors/airlocks/station/command.dmi'
/obj/machinery/door/airlock/command/glass
opacity = 0
assemblytype = /obj/structure/door_assembly/door_assembly_com
glass = TRUE
normal_integrity = 400
/obj/machinery/door/airlock/glass_engineering
icon = 'icons/obj/doors/airlocks/station/engineering.dmi'
/obj/machinery/door/airlock/engineering/glass
opacity = 0
assemblytype = /obj/structure/door_assembly/door_assembly_eng
glass = TRUE
/obj/machinery/door/airlock/glass_security
icon = 'icons/obj/doors/airlocks/station/security.dmi'
/obj/machinery/door/airlock/security/glass
opacity = 0
assemblytype = /obj/structure/door_assembly/door_assembly_sec
glass = TRUE
normal_integrity = 400
/obj/machinery/door/airlock/glass_security/abandoned
/obj/machinery/door/airlock/security/glass/abandoned
abandoned = TRUE
/obj/machinery/door/airlock/glass_medical
icon = 'icons/obj/doors/airlocks/station/medical.dmi'
/obj/machinery/door/airlock/medical/glass
opacity = 0
assemblytype = /obj/structure/door_assembly/door_assembly_med
glass = TRUE
/obj/machinery/door/airlock/glass_research
icon = 'icons/obj/doors/airlocks/station/research.dmi'
/obj/machinery/door/airlock/research/glass
opacity = 0
assemblytype = /obj/structure/door_assembly/door_assembly_research
glass = TRUE
/obj/machinery/door/airlock/glass_mining
icon = 'icons/obj/doors/airlocks/station/mining.dmi'
/obj/machinery/door/airlock/mining/glass
opacity = 0
assemblytype = /obj/structure/door_assembly/door_assembly_min
glass = TRUE
/obj/machinery/door/airlock/glass_atmos
icon = 'icons/obj/doors/airlocks/station/atmos.dmi'
/obj/machinery/door/airlock/atmos/glass
opacity = 0
assemblytype = /obj/structure/door_assembly/door_assembly_atmo
glass = TRUE
/obj/machinery/door/airlock/glass_science
icon = 'icons/obj/doors/airlocks/station/science.dmi'
/obj/machinery/door/airlock/science/glass
opacity = 0
assemblytype = /obj/structure/door_assembly/door_assembly_science
glass = TRUE
/obj/machinery/door/airlock/glass_virology
icon = 'icons/obj/doors/airlocks/station/virology.dmi'
/obj/machinery/door/airlock/virology/glass
opacity = 0
assemblytype = /obj/structure/door_assembly/door_assembly_viro
glass = TRUE
/obj/machinery/door/airlock/glass_maintenance
icon = 'icons/obj/doors/airlocks/station/maintenance.dmi'
/obj/machinery/door/airlock/maintenance/glass
opacity = 0
assemblytype = /obj/structure/door_assembly/door_assembly_mai
glass = TRUE
/obj/machinery/door/airlock/maintenance/external/glass
+3 -3
View File
@@ -7,7 +7,7 @@
glass = TRUE
var/datum/radio_frequency/air_connection
var/air_frequency = 1437
var/air_frequency = FREQ_ATMOS_ALARMS
autoclose = FALSE
/obj/machinery/door/airlock/alarmlock/New()
@@ -22,7 +22,7 @@
/obj/machinery/door/airlock/alarmlock/Initialize()
. = ..()
SSradio.remove_object(src, air_frequency)
air_connection = SSradio.add_object(src, air_frequency, GLOB.RADIO_TO_AIRALARM)
air_connection = SSradio.add_object(src, air_frequency, RADIO_TO_AIRALARM)
open()
/obj/machinery/door/airlock/alarmlock/receive_signal(datum/signal/signal)
@@ -41,4 +41,4 @@
close()
if("minor", "clear")
autoclose = FALSE
open()
open()
+2 -2
View File
@@ -112,8 +112,8 @@
return 0
if(!forced)
Radio.set_frequency(GLOB.SEC_FREQ)
Radio.talk_into(src, "Timer has expired. Releasing prisoner.", GLOB.SEC_FREQ, get_default_language())
Radio.set_frequency(FREQ_SECURITY)
Radio.talk_into(src, "Timer has expired. Releasing prisoner.", FREQ_SECURITY)
timing = FALSE
activation_time = null
+18 -2
View File
@@ -32,11 +32,27 @@
var/datum/effect_system/spark_spread/spark_system
var/damage_deflection = 10
var/real_explosion_block //ignore this, just use explosion_block
var/red_alert_access = FALSE //if TRUE, this door will always open on red alert
/obj/machinery/door/examine(mob/user)
..()
if(red_alert_access)
if(GLOB.security_level >= SEC_LEVEL_RED)
to_chat(user, "<span class='notice'>Due to a security threat, its access requirements have been lifted!</span>")
else
to_chat(user, "<span class='notice'>In the event of a red alert, its access requirements will automatically lift.</span>")
to_chat(user, "<span class='notice'>Its maintenance panel is <b>screwed</b> in place.</span>")
/obj/machinery/door/check_access(access)
if(red_alert_access && GLOB.security_level >= SEC_LEVEL_RED)
return TRUE
return ..()
/obj/machinery/door/check_access_list(list/access_list)
if(red_alert_access && GLOB.security_level >= SEC_LEVEL_RED)
return TRUE
return ..()
/obj/machinery/door/New()
..()
if(density)
@@ -96,7 +112,7 @@
/obj/machinery/door/Move()
var/turf/T = loc
..()
. = ..()
move_update_air(T)
/obj/machinery/door/CanPass(atom/movable/mover, turf/target)
@@ -195,7 +211,7 @@
/obj/machinery/door/emp_act(severity)
if(prob(20/severity) && (istype(src, /obj/machinery/door/airlock) || istype(src, /obj/machinery/door/window)) )
INVOKE_ASYNC(src, .proc/open)
if(prob(40/severity))
if(prob(severity*10 - 20))
if(secondsElectrified == 0)
secondsElectrified = -1
shockedby += "\[[time_stamp()]\]EM Pulse"
+1 -1
View File
@@ -26,4 +26,4 @@
/obj/machinery/door/poddoor/shutters/close(ignorepower = 0)
..()
layer = CLOSED_DOOR_LAYER
layer = CLOSED_DOOR_LAYER
+22 -22
View File
@@ -1,25 +1,25 @@
/obj/machinery/door/unpowered
/obj/machinery/door/unpowered
/obj/machinery/door/unpowered/CollidedWith(atom/movable/AM)
if(src.locked)
return
..()
return
/obj/machinery/door/unpowered/attackby(obj/item/I, mob/user, params)
if(locked)
return
else
return ..()
/obj/machinery/door/unpowered/emag_act()
return
/obj/machinery/door/unpowered/shuttle
icon = 'icons/turf/shuttle.dmi'
name = "door"
icon_state = "door1"
opacity = 1
if(src.locked)
return
..()
return
/obj/machinery/door/unpowered/attackby(obj/item/I, mob/user, params)
if(locked)
return
else
return ..()
/obj/machinery/door/unpowered/emag_act()
return
/obj/machinery/door/unpowered/shuttle
icon = 'icons/turf/shuttle.dmi'
name = "door"
icon_state = "door1"
opacity = 1
density = TRUE
explosion_block = 1
+2 -1
View File
@@ -192,7 +192,8 @@
add_atom_colour("#7D1919", FIXED_COLOUR_PRIORITY)
/obj/machinery/door/window/ratvar_act()
new/obj/machinery/door/window/clockwork(src.loc, dir)
var/obj/machinery/door/window/clockwork/C = new(loc, dir)
C.name = name
qdel(src)
/obj/machinery/door/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
+4
View File
@@ -19,6 +19,10 @@ GLOBAL_LIST_EMPTY(doppler_arrays)
GLOB.doppler_arrays -= src
return ..()
/obj/machinery/doppler_array/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Its dish is facing to the [dir2text(dir)].</span>")
/obj/machinery/doppler_array/process()
return PROCESS_KILL
@@ -17,7 +17,7 @@
var/target_state = AIRLOCK_STATE_CLOSED
var/sensor_pressure = null
/datum/computer/file/embedded_program/airlock_controller/receive_signal(datum/signal/signal, receive_method, receive_param)
/datum/computer/file/embedded_program/airlock_controller/receive_signal(datum/signal/signal)
var/receive_tag = signal.data["tag"]
if(!receive_tag)
return
@@ -68,19 +68,17 @@
state = AIRLOCK_STATE_CLOSED
process_again = 1
else
var/datum/signal/signal = new
signal.data["tag"] = interior_door_tag
signal.data["command"] = "secure_close"
post_signal(signal)
post_signal(new /datum/signal(list(
"tag" = interior_door_tag,
"command" = "secure_close"
)))
else
if(memory["pump_status"] != "off")
var/datum/signal/signal = new
signal.data = list(
post_signal(new /datum/signal(list(
"tag" = airpump_tag,
"power" = 0,
"sigtype"="command"
)
post_signal(signal)
"sigtype" = "command"
)))
if(AIRLOCK_STATE_PRESSURIZE)
if(target_state < state)
@@ -89,16 +87,15 @@
state = AIRLOCK_STATE_INOPEN
process_again = 1
else
var/datum/signal/signal = new
signal.data["tag"] = interior_door_tag
signal.data["command"] = "secure_open"
post_signal(signal)
post_signal(new /datum/signal(list(
"tag" = interior_door_tag,
"command" = "secure_open"
)))
else
var/datum/signal/signal = new
signal.data = list(
var/datum/signal/signal = new(list(
"tag" = airpump_tag,
"sigtype"="command"
)
"sigtype" = "command"
))
if(memory["pump_status"] == "siphon")
signal.data["stabalize"] = 1
else if(memory["pump_status"] != "release")
@@ -114,29 +111,27 @@
state = AIRLOCK_STATE_DEPRESSURIZE
process_again = 1
else
var/datum/signal/signal = new
signal.data["tag"] = interior_door_tag
signal.data["command"] = "secure_close"
post_signal(signal)
post_signal(new /datum/signal(list(
"tag" = interior_door_tag,
"command" = "secure_close"
)))
else if(target_state < state)
if(memory["exterior_status"] == "closed")
state = AIRLOCK_STATE_PRESSURIZE
process_again = 1
else
var/datum/signal/signal = new
signal.data["tag"] = exterior_door_tag
signal.data["command"] = "secure_close"
post_signal(signal)
post_signal(new /datum/signal(list(
"tag" = exterior_door_tag,
"command" = "secure_close"
)))
else
if(memory["pump_status"] != "off")
var/datum/signal/signal = new
signal.data = list(
post_signal(new /datum/signal(list(
"tag" = airpump_tag,
"power" = 0,
"sigtype"="command"
)
post_signal(signal)
"sigtype" = "command"
)))
if(AIRLOCK_STATE_DEPRESSURIZE)
var/target_pressure = ONE_ATMOSPHERE*0.05
@@ -148,10 +143,10 @@
if(memory["exterior_status"] == "open")
state = AIRLOCK_STATE_OUTOPEN
else
var/datum/signal/signal = new
signal.data["tag"] = exterior_door_tag
signal.data["command"] = "secure_open"
post_signal(signal)
post_signal(new /datum/signal(list(
"tag" = exterior_door_tag,
"command" = "secure_open"
)))
else if(target_state < state)
state = AIRLOCK_STATE_CLOSED
process_again = 1
@@ -159,12 +154,10 @@
state = AIRLOCK_STATE_CLOSED
process_again = 1
else
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.data = list(
var/datum/signal/signal = new(list(
"tag" = airpump_tag,
"sigtype"="command"
)
"sigtype" = "command"
))
if(memory["pump_status"] == "release")
signal.data["purge"] = 1
else if(memory["pump_status"] != "siphon")
@@ -181,19 +174,17 @@
state = AIRLOCK_STATE_CLOSED
process_again = 1
else
var/datum/signal/signal = new
signal.data["tag"] = exterior_door_tag
signal.data["command"] = "secure_close"
post_signal(signal)
post_signal(new /datum/signal(list(
"tag" = exterior_door_tag,
"command" = "secure_close"
)))
else
if(memory["pump_status"] != "off")
var/datum/signal/signal = new
signal.data = list(
post_signal(new /datum/signal(list(
"tag" = airpump_tag,
"power" = 0,
"sigtype"="command"
)
post_signal(signal)
"sigtype" = "command"
)))
memory["sensor_pressure"] = sensor_pressure
memory["processing"] = state != target_state
@@ -209,7 +200,7 @@
name = "airlock console"
density = FALSE
frequency = 1449
frequency = FREQ_AIRLOCK_CONTROL
power_channel = ENVIRON
// Setup parameters only
@@ -293,4 +284,4 @@
</div>
[state_options]"}
return output
return output
@@ -11,7 +11,7 @@
/datum/computer/file/embedded_program/proc/receive_user_command(command)
/datum/computer/file/embedded_program/proc/receive_signal(datum/signal/signal, receive_method, receive_param)
/datum/computer/file/embedded_program/proc/receive_signal(datum/signal/signal)
return null
/datum/computer/file/embedded_program/process()
@@ -43,13 +43,9 @@
/obj/machinery/embedded_controller/proc/post_signal(datum/signal/signal, comm_line)
return 0
/obj/machinery/embedded_controller/receive_signal(datum/signal/signal, receive_method, receive_param)
if(!signal || signal.encryption)
return
if(program)
program.receive_signal(signal, receive_method, receive_param)
//spawn(5) program.process() //no, program.process sends some signals and machines respond and we here again and we lag -rastaf0
/obj/machinery/embedded_controller/receive_signal(datum/signal/signal)
if(istype(signal) && program)
program.receive_signal(signal)
/obj/machinery/embedded_controller/Topic(href, href_list)
if(..())
@@ -5,34 +5,27 @@
/datum/computer/file/embedded_program/simple_vent_controller/receive_user_command(command)
switch(command)
if("vent_inactive")
var/datum/signal/signal = new
signal.data = list(
post_signal(new /datum/signal(list(
"tag" = airpump_tag,
"sigtype"="command"
)
signal.data["power"] = 0
post_signal(signal)
"sigtype" = "command",
"power" = 0
)))
if("vent_pump")
var/datum/signal/signal = new
signal.data = list(
post_signal(new /datum/signal(list(
"tag" = airpump_tag,
"sigtype"="command"
)
signal.data["stabalize"] = 1
signal.data["power"] = 1
post_signal(signal)
"sigtype" = "command",
"stabalize" = 1,
"power" = 1
)))
if("vent_clear")
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.data = list(
post_signal(new /datum/signal(list(
"tag" = airpump_tag,
"sigtype"="command"
)
signal.data["purge"] = 1
signal.data["power"] = 1
post_signal(signal)
"sigtype" = "command",
"purge" = 1,
"power" = 1
)))
/datum/computer/file/embedded_program/simple_vent_controller/process()
return 0
@@ -45,7 +38,7 @@
name = "vent controller"
density = FALSE
frequency = 1229
frequency = FREQ_ATMOS_CONTROL
power_channel = ENVIRON
// Setup parameters only
+1 -1
View File
@@ -213,4 +213,4 @@
to_chat(user, "<span class='notice'>[attached ? attached : "No one"] is attached.</span>")
#undef IV_TAKING
#undef IV_INJECTING
#undef IV_INJECTING

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