Merge branch 'master' into upstream-merge-33316
This commit is contained in:
@@ -192,6 +192,7 @@ Temporary Items
|
||||
|
||||
#Visual studio stuff
|
||||
*.vscode/*
|
||||
tools/MapAtmosFixer/MapAtmosFixer/obj/x86/Debug/MapAtmosFixer.csproj.CoreCompileInputs.cache
|
||||
|
||||
#GitHub Atom
|
||||
.atom-build.json
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
icon_state = "blood1";
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/door/airlock/survival_pod,
|
||||
/obj/machinery/door/airlock/survival_pod/glass,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/pod/dark,
|
||||
/area/ruin/powered)
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
icon_state = "blood1";
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/door/airlock/survival_pod,
|
||||
/obj/machinery/door/airlock/survival_pod/glass,
|
||||
/turf/open/floor/pod/dark,
|
||||
/area/ruin/powered)
|
||||
"u" = (
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
/turf/open/floor/plasteel/bar,
|
||||
/area/ruin/space/djstation)
|
||||
"aG" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Kitchen"
|
||||
},
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
@@ -193,7 +193,7 @@
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/ruin/space/djstation)
|
||||
"aJ" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Rest Room"
|
||||
},
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
|
||||
@@ -1030,7 +1030,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/derelict/bridge/access)
|
||||
"dp" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
@@ -2759,7 +2759,7 @@
|
||||
/turf/open/floor/plasteel/airless/white,
|
||||
/area/ruin/space/derelict/medical)
|
||||
"ja" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Med-Sci";
|
||||
req_access_txt = "9"
|
||||
},
|
||||
|
||||
@@ -622,7 +622,7 @@
|
||||
/area/ruin/space/has_grav/abandonedzoo)
|
||||
"bA" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/juicer,
|
||||
/obj/machinery/reagentgrinder,
|
||||
/turf/open/floor/plasteel{
|
||||
icon_state = "dark"
|
||||
},
|
||||
|
||||
@@ -950,7 +950,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/derelictoutpost/cargobay)
|
||||
"cy" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/poddoor{
|
||||
id = "bigderelictcheckpoint";
|
||||
name = "checkpoint security doors"
|
||||
|
||||
@@ -879,7 +879,7 @@
|
||||
},
|
||||
/area/ruin/space/has_grav/deepstorage)
|
||||
"bQ" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics"
|
||||
},
|
||||
/turf/open/floor/plasteel/hydrofloor{
|
||||
@@ -962,7 +962,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Kitchen"
|
||||
},
|
||||
/turf/open/floor/plasteel/cafeteria{
|
||||
@@ -1929,7 +1929,7 @@
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dorms"
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime{
|
||||
|
||||
@@ -197,11 +197,11 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/ruin/unpowered)
|
||||
"aF" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel/airless/bar,
|
||||
/area/ruin/unpowered)
|
||||
"aG" = (
|
||||
/obj/structure/door_assembly/door_assembly_glass{
|
||||
/obj/structure/door_assembly/door_assembly_public{
|
||||
name = "broken airlock"
|
||||
},
|
||||
/turf/open/floor/plasteel/airless/bar,
|
||||
|
||||
@@ -81,7 +81,9 @@
|
||||
/turf/open/floor/plating/asteroid/airless,
|
||||
/area/ruin/space/has_grav)
|
||||
"u" = (
|
||||
/obj/machinery/door/airlock/survival_pod/vertical,
|
||||
/obj/machinery/door/airlock/survival_pod/glass{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/airless,
|
||||
/area/ruin/space/has_grav)
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
/turf/open/floor/mineral/titanium/purple,
|
||||
/area/ruin/space/has_grav/powered/authorship)
|
||||
"u" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/mineral/titanium/purple,
|
||||
/area/ruin/space/has_grav/powered/authorship)
|
||||
"v" = (
|
||||
|
||||
@@ -1468,7 +1468,7 @@
|
||||
"eo" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics"
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
@@ -1502,7 +1502,7 @@
|
||||
/area/ruin/space/has_grav/ancientstation/hydroponics)
|
||||
"es" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics"
|
||||
},
|
||||
/obj/machinery/door/firedoor/closed,
|
||||
@@ -3143,14 +3143,14 @@
|
||||
"ii" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dining Area"
|
||||
},
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/ruin/space/has_grav/ancientstation/kitchen)
|
||||
"ij" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dining Area"
|
||||
},
|
||||
/obj/machinery/door/firedoor/closed,
|
||||
@@ -3881,7 +3881,7 @@
|
||||
/area/ruin/space/has_grav/ancientstation)
|
||||
"jU" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Cryogenics Room"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
|
||||
@@ -511,7 +511,7 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
@@ -631,7 +631,7 @@
|
||||
/turf/open/floor/plasteel/airless,
|
||||
/area/ruin/space/has_grav/onehalf/hallway)
|
||||
"bC" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
/turf/closed/indestructible/oldshuttle,
|
||||
/area/ruin/powered)
|
||||
"d" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/oldshuttle,
|
||||
/area/ruin/powered)
|
||||
"e" = (
|
||||
|
||||
@@ -1242,12 +1242,12 @@
|
||||
name = "Hotel Guest Room 1"
|
||||
})
|
||||
"df" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/firedoor,
|
||||
/turf/open/floor/carpet,
|
||||
/area/ruin/space/has_grav/hotel)
|
||||
"dg" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/carpet,
|
||||
@@ -2228,7 +2228,7 @@
|
||||
/turf/open/floor/carpet,
|
||||
/area/ruin/space/has_grav/hotel)
|
||||
"fW" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -2283,7 +2283,7 @@
|
||||
/turf/open/floor/carpet,
|
||||
/area/ruin/space/has_grav/hotel)
|
||||
"gf" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/firedoor,
|
||||
/turf/open/floor/carpet,
|
||||
/area/ruin/space/has_grav/hotel/dock)
|
||||
@@ -3023,7 +3023,7 @@
|
||||
/turf/open/floor/carpet,
|
||||
/area/ruin/space/has_grav/hotel)
|
||||
"il" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
@@ -3475,7 +3475,7 @@
|
||||
/turf/closed/wall,
|
||||
/area/ruin/space/has_grav/hotel/pool)
|
||||
"ju" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
@@ -3491,7 +3491,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/has_grav/hotel/pool)
|
||||
"jw" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -3893,7 +3893,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/has_grav/hotel/power)
|
||||
"kJ" = (
|
||||
/obj/machinery/door/airlock/glass_external,
|
||||
/obj/machinery/door/airlock/external/glass,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
},
|
||||
/area/ruin/space/has_grav/turretedoutpost)
|
||||
"aw" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/turretedoutpost)
|
||||
"ax" = (
|
||||
@@ -172,7 +172,7 @@
|
||||
/turf/open/floor/plasteel/vault,
|
||||
/area/ruin/space/has_grav/turretedoutpost)
|
||||
"aI" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/turretedoutpost)
|
||||
"aJ" = (
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/ruin/space/has_grav/whiteship/box)
|
||||
"ao" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/has_grav/whiteship/box)
|
||||
"ap" = (
|
||||
@@ -181,7 +181,7 @@
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/ruin/space/has_grav/whiteship/box)
|
||||
"aH" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/ruin/space/has_grav/whiteship/box)
|
||||
"aI" = (
|
||||
|
||||
@@ -1273,12 +1273,12 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/academy)
|
||||
"eA" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/academy/classrooms)
|
||||
"eB" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/academy/classrooms)
|
||||
"eC" = (
|
||||
|
||||
@@ -1600,7 +1600,7 @@
|
||||
/turf/open/floor/carpet,
|
||||
/area/awaymission/centcomAway/courtroom)
|
||||
"fU" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Med-Sci";
|
||||
req_access_txt = "9"
|
||||
},
|
||||
|
||||
@@ -786,7 +786,7 @@
|
||||
},
|
||||
/area/awaymission/moonoutpost19/syndicate)
|
||||
"bO" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Break Room"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -1127,7 +1127,7 @@
|
||||
},
|
||||
/area/awaymission/moonoutpost19/syndicate)
|
||||
"cr" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
density = 0;
|
||||
emagged = 1;
|
||||
icon_state = "open";
|
||||
@@ -5322,7 +5322,7 @@
|
||||
/area/awaymission/moonoutpost19/arrivals)
|
||||
"km" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Diner"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
|
||||
@@ -720,7 +720,7 @@
|
||||
/turf/open/floor/plating/asteroid/snow,
|
||||
/area/awaymission/snowdin)
|
||||
"bN" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel/cafeteria{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
@@ -1493,7 +1493,7 @@
|
||||
},
|
||||
/area/awaymission/snowdin/post)
|
||||
"dV" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
req_access_txt = "150"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -2453,7 +2453,7 @@
|
||||
},
|
||||
/area/awaymission/snowdin/post)
|
||||
"gJ" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/structure/barricade/wooden,
|
||||
/turf/open/floor/plasteel{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow;
|
||||
@@ -2490,7 +2490,7 @@
|
||||
/turf/open/floor/plating/snowed/colder,
|
||||
/area/awaymission/snowdin/dungeon1)
|
||||
"gP" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel/cafeteria{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow;
|
||||
temperature = 180
|
||||
@@ -2549,7 +2549,7 @@
|
||||
},
|
||||
/area/awaymission/snowdin/post)
|
||||
"gX" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow;
|
||||
wet = 0
|
||||
@@ -4299,7 +4299,7 @@
|
||||
},
|
||||
/area/awaymission/snowdin/sekret)
|
||||
"lE" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel/cafeteria{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
|
||||
@@ -1307,7 +1307,7 @@
|
||||
/area/awaymission/undergroundoutpost45/central)
|
||||
"da" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -1784,7 +1784,7 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics";
|
||||
req_access_txt = "201"
|
||||
},
|
||||
@@ -1918,7 +1918,7 @@
|
||||
/area/awaymission/undergroundoutpost45/central)
|
||||
"eo" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics";
|
||||
req_access_txt = "201"
|
||||
},
|
||||
@@ -2796,7 +2796,7 @@
|
||||
"ge" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -3545,7 +3545,7 @@
|
||||
/area/awaymission/undergroundoutpost45/crew_quarters)
|
||||
"hP" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Kitchen";
|
||||
req_access_txt = "201"
|
||||
},
|
||||
@@ -4349,7 +4349,7 @@
|
||||
"jt" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -4358,7 +4358,7 @@
|
||||
/area/awaymission/undergroundoutpost45/crew_quarters)
|
||||
"ju" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -4843,7 +4843,7 @@
|
||||
/area/awaymission/undergroundoutpost45/crew_quarters)
|
||||
"kp" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Diner"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -5796,7 +5796,7 @@
|
||||
"lV" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Diner"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -5810,7 +5810,7 @@
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Diner"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -6348,7 +6348,7 @@
|
||||
"mV" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dormitories"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -6359,7 +6359,7 @@
|
||||
"mW" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dormitories"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -6721,7 +6721,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dormitories"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -7209,7 +7209,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dormitories"
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
|
||||
@@ -777,7 +777,7 @@
|
||||
id = "permacell3";
|
||||
name = "cell blast door"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt3";
|
||||
name = "Cell 3"
|
||||
},
|
||||
@@ -788,7 +788,7 @@
|
||||
id = "permacell2";
|
||||
name = "cell blast door"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt2";
|
||||
name = "Cell 2"
|
||||
},
|
||||
@@ -803,7 +803,7 @@
|
||||
id = "permacell1";
|
||||
name = "cell blast door"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt1";
|
||||
name = "Cell 1"
|
||||
},
|
||||
@@ -5351,7 +5351,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/security/courtroom)
|
||||
"amt" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Courtroom";
|
||||
req_access_txt = "42"
|
||||
},
|
||||
@@ -5975,7 +5975,7 @@
|
||||
id = "seclobby";
|
||||
name = "security shutters"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Courtroom"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
@@ -8208,7 +8208,7 @@
|
||||
/area/security/vacantoffice/b)
|
||||
"atZ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Door"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -8409,7 +8409,7 @@
|
||||
/area/crew_quarters/dorms)
|
||||
"auy" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Door"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -9245,7 +9245,7 @@
|
||||
/area/crew_quarters/fitness)
|
||||
"awz" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Fitness"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -9803,7 +9803,7 @@
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Fitness"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -9862,7 +9862,7 @@
|
||||
/area/crew_quarters/fitness)
|
||||
"axZ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Door"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -13533,8 +13533,7 @@
|
||||
/turf/open/floor/wood,
|
||||
/area/library)
|
||||
"aHc" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/storage/pill_bottle/dice,
|
||||
/obj/machinery/vending/games,
|
||||
/turf/open/floor/wood,
|
||||
/area/library)
|
||||
"aHd" = (
|
||||
@@ -13752,7 +13751,7 @@
|
||||
/area/ai_monitored/nuke_storage)
|
||||
"aHH" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dormitory"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -13807,14 +13806,14 @@
|
||||
/area/ai_monitored/storage/eva)
|
||||
"aHP" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"aHQ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/turf/open/floor/plasteel/blue/corner{
|
||||
@@ -13823,7 +13822,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"aHR" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/turf/open/floor/plasteel/blue/side{
|
||||
@@ -13844,7 +13843,7 @@
|
||||
/area/maintenance/starboard/fore)
|
||||
"aHT" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dormitory"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -14729,7 +14728,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Primary Tool Storage"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -14737,7 +14736,7 @@
|
||||
/area/storage/primary)
|
||||
"aKa" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Primary Tool Storage"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -14835,7 +14834,7 @@
|
||||
/area/hallway/secondary/entry)
|
||||
"aKm" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Garden"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -15829,7 +15828,7 @@
|
||||
/area/hallway/secondary/entry)
|
||||
"aNc" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -16067,7 +16066,7 @@
|
||||
/area/crew_quarters/kitchen)
|
||||
"aNN" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics";
|
||||
req_access_txt = "35"
|
||||
},
|
||||
@@ -16137,7 +16136,7 @@
|
||||
/turf/open/floor/wood,
|
||||
/area/library)
|
||||
"aNW" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Chapel Office";
|
||||
req_access_txt = "22"
|
||||
},
|
||||
@@ -16399,7 +16398,7 @@
|
||||
/area/hallway/primary/port)
|
||||
"aOB" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -16781,7 +16780,7 @@
|
||||
/turf/closed/wall,
|
||||
/area/storage/art)
|
||||
"aPH" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Art Storage"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -17281,7 +17280,7 @@
|
||||
/area/storage/tools)
|
||||
"aRf" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Auxiliary Tool Storage";
|
||||
req_access_txt = "12"
|
||||
},
|
||||
@@ -17831,7 +17830,7 @@
|
||||
/turf/open/floor/plasteel/bar,
|
||||
/area/crew_quarters/bar)
|
||||
"aSI" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Kitchen";
|
||||
req_access_txt = "28"
|
||||
},
|
||||
@@ -19059,7 +19058,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -19100,7 +19099,7 @@
|
||||
/area/library)
|
||||
"aWe" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Chapel"
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
@@ -19731,7 +19730,7 @@
|
||||
/area/crew_quarters/locker)
|
||||
"aXy" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Chapel"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -19878,7 +19877,7 @@
|
||||
/area/hydroponics)
|
||||
"aXT" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -20371,7 +20370,7 @@
|
||||
/area/library)
|
||||
"aZe" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Chapel"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -21222,7 +21221,7 @@
|
||||
/area/crew_quarters/heads/captain)
|
||||
"bbx" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Diner"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -21248,7 +21247,7 @@
|
||||
/area/hallway/primary/starboard)
|
||||
"bbB" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics";
|
||||
req_access_txt = "35"
|
||||
},
|
||||
@@ -31309,7 +31308,7 @@
|
||||
/area/quartermaster/miningdock)
|
||||
"bzG" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -32524,7 +32523,7 @@
|
||||
"bCu" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -47257,7 +47256,7 @@
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/maintenance/disposal/incinerator)
|
||||
"cmf" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
autoclose = 0;
|
||||
frequency = 1449;
|
||||
heat_proof = 1;
|
||||
@@ -47732,7 +47731,7 @@
|
||||
/turf/closed/wall,
|
||||
/area/construction)
|
||||
"cnC" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
autoclose = 0;
|
||||
frequency = 1449;
|
||||
heat_proof = 1;
|
||||
@@ -51288,7 +51287,7 @@
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"cwX" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Cockpit";
|
||||
req_access_txt = "19"
|
||||
},
|
||||
@@ -51347,7 +51346,7 @@
|
||||
/turf/open/floor/mineral/plastitanium/brig,
|
||||
/area/shuttle/escape)
|
||||
"cxf" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
@@ -51591,7 +51590,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/starboard/fore)
|
||||
"cxO" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Infirmary"
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
@@ -51910,7 +51909,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/abandoned)
|
||||
"cyz" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/abandoned)
|
||||
"cyA" = (
|
||||
@@ -52137,7 +52136,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/supply)
|
||||
"cza" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/abandoned)
|
||||
"czb" = (
|
||||
@@ -100607,7 +100606,7 @@ bZQ
|
||||
caP
|
||||
cbO
|
||||
ccJ
|
||||
cdM
|
||||
bLS
|
||||
bLS
|
||||
cfp
|
||||
cge
|
||||
@@ -103891,7 +103890,7 @@ aFu
|
||||
aHc
|
||||
aIw
|
||||
aJS
|
||||
cAM
|
||||
aJS
|
||||
aMJ
|
||||
aNP
|
||||
aOS
|
||||
|
||||
@@ -1059,10 +1059,8 @@
|
||||
desc = "A thin layer of dust coating the floor.";
|
||||
name = "dust"
|
||||
},
|
||||
/obj/machinery/door/airlock{
|
||||
glass = 1;
|
||||
name = "Dormitory";
|
||||
opacity = 0
|
||||
/obj/machinery/door/airlock/glass{
|
||||
name = "Dormitory"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral,
|
||||
/area/shuttle/abandoned)
|
||||
@@ -1419,10 +1417,8 @@
|
||||
desc = "A thin layer of dust coating the floor.";
|
||||
name = "dust"
|
||||
},
|
||||
/obj/machinery/door/airlock{
|
||||
glass = 1;
|
||||
name = "Crew Quarters";
|
||||
opacity = 0
|
||||
/obj/machinery/door/airlock/glass{
|
||||
name = "Crew Quarters"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral/side{
|
||||
dir = 1
|
||||
@@ -10242,7 +10238,7 @@
|
||||
/area/crew_quarters/toilet/auxiliary)
|
||||
"avM" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Fore Primary Hallway"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -10257,7 +10253,7 @@
|
||||
/area/hallway/primary/fore)
|
||||
"avN" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Fore Primary Hallway"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -10271,7 +10267,7 @@
|
||||
"avO" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Fore Primary Hallway"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -17467,7 +17463,7 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Garden"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -18800,7 +18796,7 @@
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/maintenance/disposal/incinerator)
|
||||
"aNS" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
autoclose = 0;
|
||||
frequency = 1449;
|
||||
heat_proof = 1;
|
||||
@@ -18827,7 +18823,7 @@
|
||||
/turf/open/floor/engine,
|
||||
/area/maintenance/disposal/incinerator)
|
||||
"aNU" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
autoclose = 0;
|
||||
frequency = 1449;
|
||||
heat_proof = 1;
|
||||
@@ -20012,7 +20008,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -20833,7 +20829,7 @@
|
||||
/area/crew_quarters/bar/atrium)
|
||||
"aSc" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -21110,7 +21106,7 @@
|
||||
id = "permacell3";
|
||||
name = "Cell Shutters"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt3";
|
||||
name = "Cell 3"
|
||||
},
|
||||
@@ -21128,7 +21124,7 @@
|
||||
id = "permacell2";
|
||||
name = "Cell Shutters"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt2";
|
||||
name = "Cell 2"
|
||||
},
|
||||
@@ -21148,7 +21144,7 @@
|
||||
id = "permacell1";
|
||||
name = "Cell Shutters"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt1";
|
||||
name = "Cell 1"
|
||||
},
|
||||
@@ -21742,7 +21738,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -31215,7 +31211,7 @@
|
||||
/area/hallway/secondary/service)
|
||||
"bno" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Service Foyer"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -31260,7 +31256,7 @@
|
||||
"bns" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Fore Primary Hallway"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -31273,7 +31269,7 @@
|
||||
/area/hallway/primary/fore)
|
||||
"bnt" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Fore Primary Hallway"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
@@ -48542,7 +48538,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Port Primary Hallway"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -48704,7 +48700,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Starboard Primary Hallway"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -49689,7 +49685,7 @@
|
||||
/area/hallway/primary/port)
|
||||
"bWK" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Port Primary Hallway"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -49960,7 +49956,7 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Starboard Primary Hallway"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -50915,7 +50911,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Port Primary Hallway"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -51103,7 +51099,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Starboard Primary Hallway"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -51807,7 +51803,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/library)
|
||||
"caI" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -51816,7 +51812,7 @@
|
||||
},
|
||||
/area/library)
|
||||
"caJ" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -56145,7 +56141,7 @@
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/library)
|
||||
"cjv" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -56375,7 +56371,7 @@
|
||||
/area/security/courtroom)
|
||||
"cjX" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Courtroom";
|
||||
req_access_txt = "42"
|
||||
},
|
||||
@@ -56808,7 +56804,7 @@
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/library)
|
||||
"ckU" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -60289,7 +60285,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"cso" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Command Hallway"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -61054,7 +61050,7 @@
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Command Hallway"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -61761,14 +61757,14 @@
|
||||
},
|
||||
/area/maintenance/port)
|
||||
"cvi" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library Game Room"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/library)
|
||||
"cvj" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library Game Room"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -61971,7 +61967,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Starboard Auxiliary Hallway"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -62629,7 +62625,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"cwZ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Starboard Auxiliary Hallway"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -63397,7 +63393,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Starboard Auxiliary Hallway"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -64521,20 +64517,11 @@
|
||||
/area/library)
|
||||
"cBc" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/storage/pill_bottle/dice,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/carpet,
|
||||
/area/library)
|
||||
"cBd" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/toy/cards/deck/cas{
|
||||
pixel_x = -5;
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/item/toy/cards/deck/cas/black{
|
||||
pixel_x = 5;
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/carpet,
|
||||
/area/library)
|
||||
@@ -66183,20 +66170,10 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/library)
|
||||
"cEt" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/dice/d20{
|
||||
pixel_x = 3;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/dice/d10{
|
||||
pixel_x = -3
|
||||
},
|
||||
/obj/machinery/computer/security/telescreen/entertainment{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/vending/games,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 5
|
||||
},
|
||||
@@ -68752,7 +68729,7 @@
|
||||
},
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"cJA" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -68778,7 +68755,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"cJC" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -68793,7 +68770,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"cJD" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -70759,7 +70736,7 @@
|
||||
"cNv" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Aft Primary Hallway"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
@@ -70773,7 +70750,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"cNw" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Aft Primary Hallway"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -70787,7 +70764,7 @@
|
||||
"cNx" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Aft Primary Hallway"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
@@ -70994,7 +70971,7 @@
|
||||
/turf/open/floor/plasteel/neutral/corner,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"cOb" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -71019,7 +70996,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"cOd" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -71034,7 +71011,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"cOe" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -95629,7 +95606,7 @@
|
||||
/area/hallway/primary/aft)
|
||||
"dNP" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departures Lounge"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -95644,7 +95621,7 @@
|
||||
/area/hallway/primary/aft)
|
||||
"dNQ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departures Lounge"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -95657,7 +95634,7 @@
|
||||
/area/hallway/primary/aft)
|
||||
"dNR" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departures Lounge"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -97995,7 +97972,7 @@
|
||||
/area/hallway/secondary/exit/departure_lounge)
|
||||
"dSQ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departures Lounge"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
@@ -98009,7 +97986,7 @@
|
||||
/area/hallway/secondary/exit/departure_lounge)
|
||||
"dSR" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departures Lounge"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -104821,6 +104798,12 @@
|
||||
/obj/machinery/vending/kink,
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/abandoned_gambling_den)
|
||||
"ehP" = (
|
||||
/obj/machinery/computer/security/telescreen/entertainment{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/library)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaa
|
||||
@@ -135552,7 +135535,7 @@ cxW
|
||||
czE
|
||||
cBc
|
||||
cCI
|
||||
cwq
|
||||
ehP
|
||||
caG
|
||||
cHA
|
||||
ceb
|
||||
|
||||
@@ -346,7 +346,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/security/prison)
|
||||
"abb" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permahydro";
|
||||
name = "Hydroponics Module"
|
||||
},
|
||||
@@ -1318,7 +1318,7 @@
|
||||
id = "permacell3";
|
||||
name = "Cell Shutters"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt3";
|
||||
name = "Cell 3"
|
||||
},
|
||||
@@ -1333,7 +1333,7 @@
|
||||
id = "permacell2";
|
||||
name = "Cell Shutters"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt2";
|
||||
name = "Cell 2"
|
||||
},
|
||||
@@ -1348,7 +1348,7 @@
|
||||
id = "permacell1";
|
||||
name = "Cell Shutters"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt1";
|
||||
name = "Cell 1"
|
||||
},
|
||||
@@ -3793,7 +3793,7 @@
|
||||
dir = 9
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Door"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -3803,7 +3803,7 @@
|
||||
dir = 5
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Door"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -5295,7 +5295,7 @@
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Door"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -5305,7 +5305,7 @@
|
||||
dir = 6
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Door"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -8437,7 +8437,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/fore)
|
||||
"arY" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "space-bridge access"
|
||||
},
|
||||
/obj/machinery/button/door{
|
||||
@@ -8479,7 +8479,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/fore)
|
||||
"asc" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "space-bridge access"
|
||||
},
|
||||
/obj/machinery/button/door{
|
||||
@@ -15374,7 +15374,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Vault Storage"
|
||||
},
|
||||
/turf/open/floor/plasteel/vault{
|
||||
@@ -17316,7 +17316,7 @@
|
||||
/area/storage/primary)
|
||||
"aJP" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Primary Tool Storage"
|
||||
},
|
||||
/turf/open/floor/plasteel/brown{
|
||||
@@ -17325,7 +17325,7 @@
|
||||
/area/storage/primary)
|
||||
"aJQ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Primary Tool Storage"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -19849,7 +19849,7 @@
|
||||
/area/security/courtroom)
|
||||
"aPC" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Courtroom";
|
||||
req_access_txt = "42"
|
||||
},
|
||||
@@ -22238,7 +22238,7 @@
|
||||
"aUC" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Fore Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/red/corner{
|
||||
@@ -22250,7 +22250,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Fore Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -22258,7 +22258,7 @@
|
||||
"aUE" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Fore Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/red/corner{
|
||||
@@ -22813,7 +22813,7 @@
|
||||
/area/storage/primary)
|
||||
"aVS" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Primary Tool Storage"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -22826,7 +22826,7 @@
|
||||
/area/storage/primary)
|
||||
"aVT" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Primary Tool Storage"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -22987,7 +22987,7 @@
|
||||
"aWm" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Crew Quarters Access"
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
@@ -22997,7 +22997,7 @@
|
||||
/area/crew_quarters/locker)
|
||||
"aWn" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Crew Quarters Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -24712,7 +24712,7 @@
|
||||
/area/security/checkpoint/engineering)
|
||||
"aZO" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library"
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
@@ -27689,7 +27689,7 @@
|
||||
/area/storage/tools)
|
||||
"bfI" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Auxiliary Tool Storage";
|
||||
req_access_txt = "12"
|
||||
},
|
||||
@@ -28622,7 +28622,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Starboard Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/yellow/corner{
|
||||
@@ -29449,7 +29449,7 @@
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Starboard Primary Hallway"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -30334,7 +30334,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Starboard Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/caution/corner{
|
||||
@@ -31240,7 +31240,7 @@
|
||||
/area/storage/art)
|
||||
"bmN" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Art Storage"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -31965,7 +31965,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Port Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral/corner{
|
||||
@@ -33072,7 +33072,7 @@
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Port Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -34307,7 +34307,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Port Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral/corner{
|
||||
@@ -34992,7 +34992,7 @@
|
||||
"bug" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library"
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
@@ -35000,7 +35000,7 @@
|
||||
"buh" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library"
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
@@ -39144,7 +39144,7 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Command Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral/corner{
|
||||
@@ -39418,7 +39418,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Command Hallway"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -39465,7 +39465,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"bDC" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Bar"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -39865,7 +39865,7 @@
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Command Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral/corner{
|
||||
@@ -40245,7 +40245,7 @@
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Command Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral/corner{
|
||||
@@ -40298,7 +40298,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Bar"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -43906,8 +43906,9 @@
|
||||
/obj/structure/sign/kiddieplaque/perfect_drone{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/machinery/droneDispenser,
|
||||
/obj/machinery/door/window/southleft,
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/storage/backpack/duffelbag/drone,
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/open/floor/carpet,
|
||||
/area/bridge/showroom/corporate)
|
||||
"bNc" = (
|
||||
@@ -45185,10 +45186,8 @@
|
||||
/turf/open/floor/wood,
|
||||
/area/library)
|
||||
"bPU" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/dice/d20,
|
||||
/obj/item/dice,
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2,
|
||||
/obj/machinery/vending/games,
|
||||
/turf/open/floor/wood,
|
||||
/area/library)
|
||||
"bPV" = (
|
||||
@@ -45419,7 +45418,7 @@
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Gateway Chamber"
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
@@ -46916,25 +46915,12 @@
|
||||
dir = 1;
|
||||
network = list("SS13")
|
||||
},
|
||||
/obj/item/storage/pill_bottle/dice,
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/wood,
|
||||
/area/library)
|
||||
"bTz" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/machinery/light,
|
||||
/obj/item/toy/cards/deck/cas/black{
|
||||
pixel_x = -2;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/item/toy/cards/deck{
|
||||
pixel_x = 2;
|
||||
pixel_y = 7
|
||||
},
|
||||
/obj/item/toy/cards/deck/cas{
|
||||
pixel_x = -1;
|
||||
pixel_y = 2
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/library)
|
||||
"bTA" = (
|
||||
@@ -49143,7 +49129,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics Storage"
|
||||
},
|
||||
/turf/open/floor/plasteel/hydrofloor,
|
||||
@@ -49679,7 +49665,7 @@
|
||||
"bZf" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Aft Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/blue/corner{
|
||||
@@ -49691,7 +49677,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Aft Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -49699,7 +49685,7 @@
|
||||
"bZh" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Aft Primary Hallway"
|
||||
},
|
||||
/turf/open/floor/plasteel/purple/corner{
|
||||
@@ -54525,7 +54511,7 @@
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/maintenance/disposal/incinerator)
|
||||
"cja" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
autoclose = 0;
|
||||
frequency = 1449;
|
||||
heat_proof = 1;
|
||||
@@ -55929,7 +55915,7 @@
|
||||
/turf/open/space,
|
||||
/area/space/nearstation)
|
||||
"cmd" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
autoclose = 0;
|
||||
frequency = 1449;
|
||||
heat_proof = 1;
|
||||
@@ -67879,7 +67865,7 @@
|
||||
"cJE" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral/corner{
|
||||
@@ -67891,7 +67877,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -67899,7 +67885,7 @@
|
||||
"cJG" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral/corner{
|
||||
@@ -69220,8 +69206,12 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/aft)
|
||||
"cMl" = (
|
||||
/obj/machinery/space_heater,
|
||||
/obj/effect/landmark/blobstart,
|
||||
/obj/structure/table,
|
||||
/obj/item/stack/sheet/glass/fifty{
|
||||
pixel_x = 3;
|
||||
pixel_y = -4
|
||||
},
|
||||
/obj/item/stack/sheet/metal/fifty,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/aft)
|
||||
"cMm" = (
|
||||
@@ -69930,7 +69920,7 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Chapel"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
@@ -70211,7 +70201,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Chapel"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
@@ -70634,7 +70624,7 @@
|
||||
/area/chapel/office)
|
||||
"cPl" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Chapel Office";
|
||||
req_access_txt = "22"
|
||||
},
|
||||
@@ -71041,7 +71031,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Funeral Parlour"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
@@ -80767,6 +80757,42 @@
|
||||
"EDC" = (
|
||||
/turf/closed/wall/mineral/plastitanium,
|
||||
/area/engine/break_room)
|
||||
"EDD" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/chair{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/landmark/start/security_officer,
|
||||
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/red/side{
|
||||
dir = 8
|
||||
},
|
||||
/area/security/main)
|
||||
"EDE" = (
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"EDF" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/aft)
|
||||
"EDG" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/effect/landmark/blobstart,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/aft)
|
||||
"EDH" = (
|
||||
/obj/machinery/droneDispenser,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/aft)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaa
|
||||
@@ -110246,6 +110272,7 @@ cIN
|
||||
cJM
|
||||
cCq
|
||||
cgM
|
||||
EDF
|
||||
cwc
|
||||
cNe
|
||||
cNT
|
||||
@@ -110254,7 +110281,6 @@ ack
|
||||
ack
|
||||
aaf
|
||||
aaf
|
||||
aaf
|
||||
aaa
|
||||
aaf
|
||||
aaa
|
||||
@@ -110503,11 +110529,11 @@ cFh
|
||||
cFh
|
||||
cKH
|
||||
cLz
|
||||
EDG
|
||||
cMk
|
||||
bTs
|
||||
bTs
|
||||
bTs
|
||||
aaf
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -110761,11 +110787,11 @@ cJN
|
||||
cCq
|
||||
cgN
|
||||
cMl
|
||||
EDH
|
||||
bTs
|
||||
aaf
|
||||
aaf
|
||||
aaf
|
||||
aaf
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -111019,7 +111045,7 @@ cCq
|
||||
cLA
|
||||
bTs
|
||||
bTs
|
||||
aaa
|
||||
bTs
|
||||
aaf
|
||||
aaa
|
||||
aaa
|
||||
@@ -111276,7 +111302,7 @@ cKI
|
||||
cQr
|
||||
cQR
|
||||
cRa
|
||||
cRe
|
||||
cSd
|
||||
cRe
|
||||
cRe
|
||||
cRe
|
||||
|
||||
@@ -196,6 +196,7 @@
|
||||
/area/mine/laborcamp)
|
||||
"aI" = (
|
||||
/obj/machinery/door/airlock{
|
||||
cyclelinkeddir = 4;
|
||||
name = "Labor Camp External Access"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -286,6 +287,7 @@
|
||||
/area/lavaland/surface/outdoors/explored)
|
||||
"aY" = (
|
||||
/obj/machinery/door/airlock/glass_security{
|
||||
cyclelinkeddir = 4;
|
||||
name = "Labor Camp Shuttle Security Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
@@ -449,6 +451,7 @@
|
||||
/area/mine/eva)
|
||||
"bx" = (
|
||||
/obj/machinery/door/airlock/glass_security{
|
||||
cyclelinkeddir = 4;
|
||||
name = "Labor Camp Shuttle Prisoner Airlock";
|
||||
req_access_txt = "0"
|
||||
},
|
||||
@@ -659,6 +662,7 @@
|
||||
/area/mine/eva)
|
||||
"bX" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
cyclelinkeddir = 4;
|
||||
glass = 1;
|
||||
name = "Mining External Airlock";
|
||||
opacity = 0;
|
||||
@@ -744,6 +748,7 @@
|
||||
/area/mine/laborcamp)
|
||||
"cj" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
cyclelinkeddir = 4;
|
||||
glass = 1;
|
||||
name = "Mining Shuttle Airlock";
|
||||
opacity = 0;
|
||||
@@ -1757,10 +1762,8 @@
|
||||
/area/mine/living_quarters)
|
||||
"eR" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/airlock{
|
||||
glass = 1;
|
||||
name = "Break Room";
|
||||
opacity = 0
|
||||
/obj/machinery/door/airlock/glass{
|
||||
name = "Break Room"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mine/living_quarters)
|
||||
@@ -3317,6 +3320,49 @@
|
||||
/obj/effect/mapping_helpers/planet_z,
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"WA" = (
|
||||
/obj/machinery/door/airlock{
|
||||
cyclelinkeddir = 8;
|
||||
name = "Labor Camp External Access"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mine/laborcamp)
|
||||
"WB" = (
|
||||
/obj/machinery/door/airlock/glass_security{
|
||||
cyclelinkeddir = 8;
|
||||
name = "Labor Camp Shuttle Security Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mine/laborcamp)
|
||||
"WC" = (
|
||||
/obj/machinery/door/airlock/glass_security{
|
||||
cyclelinkeddir = 8;
|
||||
name = "Labor Camp Shuttle Prisoner Airlock";
|
||||
req_access_txt = "0"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mine/laborcamp)
|
||||
"WD" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
cyclelinkeddir = 8;
|
||||
glass = 1;
|
||||
name = "Mining External Airlock";
|
||||
opacity = 0;
|
||||
req_access_txt = "54"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mine/eva)
|
||||
"WE" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
cyclelinkeddir = 8;
|
||||
glass = 1;
|
||||
name = "Mining Shuttle Airlock";
|
||||
opacity = 0;
|
||||
req_access_txt = "0"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mine/production)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
@@ -8415,11 +8461,11 @@ aH
|
||||
az
|
||||
aQ
|
||||
aq
|
||||
aY
|
||||
WB
|
||||
aq
|
||||
bi
|
||||
aq
|
||||
bx
|
||||
WC
|
||||
aq
|
||||
bZ
|
||||
bZ
|
||||
@@ -11238,7 +11284,7 @@ an
|
||||
an
|
||||
aD
|
||||
aq
|
||||
aI
|
||||
WA
|
||||
aq
|
||||
aT
|
||||
aD
|
||||
@@ -17930,7 +17976,7 @@ aj
|
||||
aj
|
||||
br
|
||||
br
|
||||
cj
|
||||
WE
|
||||
br
|
||||
br
|
||||
ab
|
||||
@@ -21270,7 +21316,7 @@ aj
|
||||
ab
|
||||
bf
|
||||
bg
|
||||
bX
|
||||
WD
|
||||
bg
|
||||
bf
|
||||
ai
|
||||
|
||||
@@ -7686,7 +7686,7 @@
|
||||
"anR" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
@@ -7702,7 +7702,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"anS" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -7716,7 +7716,7 @@
|
||||
"anT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -9511,7 +9511,7 @@
|
||||
"arc" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
@@ -9527,7 +9527,7 @@
|
||||
/area/crew_quarters/bar/atrium)
|
||||
"ard" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -9541,7 +9541,7 @@
|
||||
"are" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -14521,7 +14521,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"aAD" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Lockerroom"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -15119,7 +15119,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"aBM" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Lockerroom"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -16621,7 +16621,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Engineering Foyer"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -16936,7 +16936,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"aFj" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -17198,7 +17198,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Engineering Foyer"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
@@ -17355,7 +17355,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"aFZ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -21294,7 +21294,7 @@
|
||||
/area/hydroponics)
|
||||
"aNy" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -21311,7 +21311,7 @@
|
||||
/area/crew_quarters/bar/atrium)
|
||||
"aNz" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Atrium"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -23156,7 +23156,7 @@
|
||||
/area/library)
|
||||
"aQY" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -23170,7 +23170,7 @@
|
||||
/area/library)
|
||||
"aQZ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Library Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -23569,6 +23569,7 @@
|
||||
/obj/structure/sign/nosmoking_2{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/machinery/vending/games,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/library)
|
||||
"aRW" = (
|
||||
@@ -23593,13 +23594,6 @@
|
||||
/area/library)
|
||||
"aRY" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/dice/d20{
|
||||
pixel_x = 3;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/dice/d10{
|
||||
pixel_x = -3
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
pixel_y = 24
|
||||
},
|
||||
@@ -24089,21 +24083,12 @@
|
||||
/area/library)
|
||||
"aTf" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/storage/pill_bottle/dice,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 5
|
||||
},
|
||||
/area/library)
|
||||
"aTg" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/toy/cards/deck/cas{
|
||||
pixel_x = -5;
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/item/toy/cards/deck/cas/black{
|
||||
pixel_x = 5;
|
||||
pixel_y = 5
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/library)
|
||||
"aTh" = (
|
||||
@@ -31040,7 +31025,7 @@
|
||||
/area/hallway/secondary/entry)
|
||||
"bgR" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Arrivals Port"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -31054,7 +31039,7 @@
|
||||
/area/hallway/secondary/entry)
|
||||
"bgS" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Arrivals Port"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -31083,7 +31068,7 @@
|
||||
/area/hallway/secondary/entry)
|
||||
"bgW" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Arrivals Port"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -33473,7 +33458,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"blL" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -33524,7 +33509,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"blY" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -33629,7 +33614,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"bsB" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -33702,7 +33687,7 @@
|
||||
/area/hallway/secondary/exit)
|
||||
"bsN" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
|
||||
@@ -1801,7 +1801,7 @@
|
||||
id = "permacell2";
|
||||
name = "cell blast door"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt2";
|
||||
name = "Cell 2"
|
||||
},
|
||||
@@ -1820,7 +1820,7 @@
|
||||
id = "permacell1";
|
||||
name = "cell blast door"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
id_tag = "permabolt1";
|
||||
name = "Cell 1"
|
||||
},
|
||||
@@ -3459,7 +3459,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "space-bridge access"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -3499,7 +3499,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/crew_quarters/dorms)
|
||||
"akp" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "space-bridge access"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
@@ -9138,7 +9138,7 @@
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"axy" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Holodeck Door"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -9481,7 +9481,7 @@
|
||||
/area/crew_quarters/dorms)
|
||||
"ayt" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Recreation Room"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -9981,7 +9981,7 @@
|
||||
/area/crew_quarters/dorms)
|
||||
"azB" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Recreation Room"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -12753,7 +12753,7 @@
|
||||
/area/security/detectives_office)
|
||||
"aGb" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -12761,14 +12761,14 @@
|
||||
/area/hallway/primary/fore)
|
||||
"aGc" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/fore)
|
||||
"aGd" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -13092,7 +13092,7 @@
|
||||
/area/storage/primary)
|
||||
"aGY" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Primary Tool Storage"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
@@ -13103,7 +13103,7 @@
|
||||
/area/storage/primary)
|
||||
"aGZ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Primary Tool Storage"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -13645,7 +13645,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"aIg" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dormitory"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -14052,7 +14052,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"aJf" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dormitory"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
@@ -14526,7 +14526,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"aKb" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Dormitory"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -14644,7 +14644,7 @@
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"aKv" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Cockpit";
|
||||
req_access_txt = "19"
|
||||
},
|
||||
@@ -14738,7 +14738,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/storage/art)
|
||||
"aKL" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Art Storage"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
@@ -14757,7 +14757,7 @@
|
||||
/area/crew_quarters/cafeteria/lunchroom)
|
||||
"aKO" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Lunchroom"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
@@ -14903,7 +14903,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/disposal)
|
||||
"aLp" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Cargo Hold";
|
||||
req_access_txt = "0"
|
||||
},
|
||||
@@ -14916,7 +14916,7 @@
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"aLr" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
@@ -16671,7 +16671,7 @@
|
||||
/area/hallway/secondary/exit/departure_lounge)
|
||||
"aPv" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -17060,7 +17060,7 @@
|
||||
/area/hallway/secondary/exit/departure_lounge)
|
||||
"aQz" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -17889,7 +17889,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/disposal)
|
||||
"aSp" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Infirmary"
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
@@ -18921,7 +18921,7 @@
|
||||
/area/hallway/secondary/exit/departure_lounge)
|
||||
"aUJ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
@@ -19484,7 +19484,7 @@
|
||||
/area/hallway/secondary/exit/departure_lounge)
|
||||
"aVQ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Departure Lounge"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -19526,7 +19526,7 @@
|
||||
/area/janitor)
|
||||
"aVV" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics";
|
||||
req_access_txt = "35"
|
||||
},
|
||||
@@ -22165,7 +22165,7 @@
|
||||
/area/crew_quarters/bar)
|
||||
"bcw" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Bar"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -22447,7 +22447,7 @@
|
||||
/area/hallway/secondary/entry)
|
||||
"bdf" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -22547,7 +22547,7 @@
|
||||
/area/crew_quarters/bar)
|
||||
"bdy" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Bar"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
@@ -22849,7 +22849,7 @@
|
||||
/area/hydroponics)
|
||||
"bek" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
cyclelinkeddir = 4;
|
||||
name = "Hydroponics";
|
||||
req_access_txt = "35"
|
||||
@@ -22896,7 +22896,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"beo" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
cyclelinkeddir = 8;
|
||||
name = "Kitchen";
|
||||
req_access_txt = "28"
|
||||
@@ -23213,7 +23213,7 @@
|
||||
/area/hallway/secondary/entry)
|
||||
"bfe" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Central Access"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
@@ -23614,7 +23614,7 @@
|
||||
/area/crew_quarters/lounge)
|
||||
"bgb" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Lounge"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
@@ -23768,7 +23768,7 @@
|
||||
/area/hallway/primary/central)
|
||||
"bgt" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Bar"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -23776,7 +23776,7 @@
|
||||
"bgu" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Bar"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -24901,14 +24901,14 @@
|
||||
"biV" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Medbay"
|
||||
},
|
||||
/turf/open/floor/plasteel/white/side,
|
||||
/area/medical/medbay/zone3)
|
||||
"biW" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Medbay"
|
||||
},
|
||||
/turf/open/floor/plasteel/white/side,
|
||||
@@ -24916,7 +24916,7 @@
|
||||
"biX" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Medbay"
|
||||
},
|
||||
/turf/open/floor/plasteel/white/side,
|
||||
@@ -25318,18 +25318,18 @@
|
||||
"bkj" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"bkk" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"bkl" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"bkm" = (
|
||||
@@ -27686,7 +27686,7 @@
|
||||
"bqd" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Research Division"
|
||||
},
|
||||
/obj/effect/turf_decal/delivery,
|
||||
@@ -27697,7 +27697,7 @@
|
||||
"bqe" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Research Division"
|
||||
},
|
||||
/obj/effect/turf_decal/delivery,
|
||||
@@ -27705,7 +27705,7 @@
|
||||
/area/science/research/lobby)
|
||||
"bqf" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Research Division"
|
||||
},
|
||||
/obj/effect/turf_decal/delivery,
|
||||
@@ -28964,7 +28964,7 @@
|
||||
"bsH" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Medbay"
|
||||
},
|
||||
/turf/open/floor/plasteel/whiteblue/corner{
|
||||
@@ -28975,7 +28975,7 @@
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Medbay"
|
||||
},
|
||||
/turf/open/floor/plasteel/whiteblue/corner,
|
||||
@@ -30671,7 +30671,7 @@
|
||||
/area/shuttle/transport)
|
||||
"bwq" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Monastery Transit"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -30679,7 +30679,7 @@
|
||||
/area/hallway/secondary/entry)
|
||||
"bwr" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Monastery Transit"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
|
||||
@@ -35692,7 +35692,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Research Division"
|
||||
},
|
||||
/obj/effect/turf_decal/delivery,
|
||||
@@ -36262,7 +36262,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Research Division"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
@@ -36395,7 +36395,7 @@
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/science/mixing)
|
||||
"bIL" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
autoclose = 0;
|
||||
frequency = 1449;
|
||||
heat_proof = 1;
|
||||
@@ -36727,7 +36727,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Research Division"
|
||||
},
|
||||
/obj/effect/turf_decal/delivery,
|
||||
@@ -37389,7 +37389,7 @@
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/atmos)
|
||||
"bLf" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
autoclose = 0;
|
||||
frequency = 1449;
|
||||
heat_proof = 1;
|
||||
@@ -43898,7 +43898,7 @@
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
autoclose = 0;
|
||||
frequency = 1449;
|
||||
heat_proof = 1;
|
||||
@@ -43921,7 +43921,7 @@
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
autoclose = 0;
|
||||
frequency = 1449;
|
||||
heat_proof = 1;
|
||||
@@ -46325,7 +46325,7 @@
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/abandoned)
|
||||
"cin" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
@@ -46711,7 +46711,7 @@
|
||||
/turf/open/floor/plating/abductor,
|
||||
/area/shuttle/abandoned)
|
||||
"cjB" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile{
|
||||
@@ -50614,11 +50614,6 @@
|
||||
/area/library)
|
||||
"czr" = (
|
||||
/obj/structure/table/wood/fancy,
|
||||
/obj/item/toy/cards/deck/cas/black{
|
||||
pixel_x = -2;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/item/toy/cards/deck/cas,
|
||||
/turf/open/floor/carpet,
|
||||
/area/library)
|
||||
"czs" = (
|
||||
@@ -51326,6 +51321,10 @@
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/maintenance/department/chapel/monastery)
|
||||
"cCW" = (
|
||||
/obj/machinery/vending/games,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/library)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaa
|
||||
@@ -67341,7 +67340,7 @@ aaa
|
||||
aiu
|
||||
aiu
|
||||
aiu
|
||||
apA
|
||||
aoK
|
||||
aqf
|
||||
ajD
|
||||
aiu
|
||||
@@ -67977,13 +67976,13 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
cjp
|
||||
ckW
|
||||
cCW
|
||||
ckH
|
||||
cyZ
|
||||
ckH
|
||||
czl
|
||||
czr
|
||||
czA
|
||||
czr
|
||||
czI
|
||||
ckH
|
||||
ckH
|
||||
@@ -68239,7 +68238,7 @@ ckH
|
||||
ckH
|
||||
ckH
|
||||
czl
|
||||
czs
|
||||
czr
|
||||
czB
|
||||
czI
|
||||
czV
|
||||
@@ -91543,7 +91542,7 @@ bdI
|
||||
bbI
|
||||
bhr
|
||||
bbI
|
||||
biA
|
||||
aTx
|
||||
bjw
|
||||
bkB
|
||||
blS
|
||||
|
||||
@@ -836,7 +836,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/bridge)
|
||||
"cx" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"cy" = (
|
||||
@@ -961,7 +961,7 @@
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/construction)
|
||||
"cQ" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/construction)
|
||||
"cR" = (
|
||||
@@ -982,7 +982,7 @@
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/storage/primary)
|
||||
"cV" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/storage/primary)
|
||||
"cW" = (
|
||||
|
||||
@@ -8108,6 +8108,7 @@
|
||||
name = "syndicate infiltrator";
|
||||
port_direction = 1;
|
||||
roundstart_move = "syndicate_away";
|
||||
hidden = 1;
|
||||
width = 18
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
|
||||
@@ -300,6 +300,10 @@
|
||||
/obj/item/clockwork/component/vanguard_cogwheel/onyx_prism,
|
||||
/turf/open/indestructible/reebe_void,
|
||||
/area/reebe)
|
||||
"bj" = (
|
||||
/obj/structure/destructible/clockwork/eminence_spire,
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/reebe/city_of_cogs)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
@@ -31739,7 +31743,7 @@ aj
|
||||
aj
|
||||
ai
|
||||
aj
|
||||
aj
|
||||
az
|
||||
aj
|
||||
ai
|
||||
aj
|
||||
@@ -31996,7 +32000,7 @@ aj
|
||||
aj
|
||||
ap
|
||||
aj
|
||||
az
|
||||
aj
|
||||
aj
|
||||
ap
|
||||
aj
|
||||
@@ -32253,7 +32257,7 @@ aj
|
||||
aj
|
||||
ai
|
||||
aj
|
||||
aj
|
||||
bj
|
||||
aj
|
||||
ai
|
||||
aj
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"az" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Cockpit";
|
||||
req_access_txt = "19"
|
||||
},
|
||||
@@ -201,7 +201,7 @@
|
||||
/turf/open/floor/mineral/plastitanium/brig,
|
||||
/area/shuttle/escape)
|
||||
"aJ" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
/turf/open/floor/mineral/plastitanium/brig,
|
||||
/area/shuttle/escape)
|
||||
"aA" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"aB" = (
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"ay" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Cockpit";
|
||||
req_access_txt = "19"
|
||||
},
|
||||
@@ -185,7 +185,7 @@
|
||||
/turf/open/floor/mineral/plastitanium/brig,
|
||||
/area/shuttle/escape)
|
||||
"aH" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
@@ -297,7 +297,7 @@
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"aZ" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Infirmary"
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
/turf/open/floor/plasteel/darkred,
|
||||
/area/shuttle/escape)
|
||||
"aR" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Cockpit";
|
||||
req_access_txt = "19"
|
||||
},
|
||||
@@ -423,7 +423,7 @@
|
||||
/turf/open/floor/mineral/plastitanium/brig,
|
||||
/area/shuttle/escape)
|
||||
"bq" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
/turf/open/floor/noslip,
|
||||
/area/shuttle/escape)
|
||||
"as" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Premium Lounge";
|
||||
req_access_txt = "0"
|
||||
},
|
||||
@@ -143,7 +143,7 @@
|
||||
/turf/open/floor/mineral/plastitanium/brig,
|
||||
/area/shuttle/escape)
|
||||
"aA" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Greentext";
|
||||
req_access_txt = "0"
|
||||
},
|
||||
@@ -275,7 +275,7 @@
|
||||
/turf/open/floor/bluespace,
|
||||
/area/shuttle/escape)
|
||||
"aU" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Infirmary"
|
||||
},
|
||||
/turf/open/floor/bluespace,
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"w" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Infirmary"
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
@@ -157,7 +157,7 @@
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"E" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Cockpit";
|
||||
req_access_txt = "19"
|
||||
},
|
||||
@@ -193,7 +193,7 @@
|
||||
/turf/open/floor/mineral/plastitanium/brig,
|
||||
/area/shuttle/escape)
|
||||
"K" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"aB" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Cockpit";
|
||||
req_access_txt = "19"
|
||||
},
|
||||
@@ -169,7 +169,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aE" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Cargo Hold";
|
||||
req_access_txt = "0"
|
||||
},
|
||||
@@ -182,7 +182,7 @@
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"aG" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
@@ -262,7 +262,7 @@
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"aU" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Infirmary"
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
|
||||
@@ -893,7 +893,7 @@
|
||||
},
|
||||
/area/shuttle/escape)
|
||||
"cf" = (
|
||||
/obj/machinery/door/airlock/glass_titanium{
|
||||
/obj/machinery/door/airlock/titanium/glass{
|
||||
name = "Shuttle Engine Room"
|
||||
},
|
||||
/turf/open/floor/plasteel/darkgreen/side{
|
||||
@@ -901,7 +901,7 @@
|
||||
},
|
||||
/area/shuttle/escape)
|
||||
"cg" = (
|
||||
/obj/machinery/door/airlock/glass_titanium{
|
||||
/obj/machinery/door/airlock/titanium/glass{
|
||||
name = "Shuttle Engine Room"
|
||||
},
|
||||
/turf/open/floor/plasteel/darkgreen/side{
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
/turf/closed/wall/rust,
|
||||
/area/shuttle/escape)
|
||||
"at" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Glorious Leaders";
|
||||
req_access_txt = "19"
|
||||
},
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
/turf/open/floor/mineral/plastitanium/brig,
|
||||
/area/shuttle/escape)
|
||||
"ar" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Cockpit";
|
||||
req_access_txt = "19"
|
||||
},
|
||||
@@ -148,7 +148,7 @@
|
||||
/area/shuttle/escape)
|
||||
"az" = (
|
||||
/obj/structure/grille,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"aB" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
@@ -255,7 +255,7 @@
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"aU" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"aV" = (
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/abandoned)
|
||||
"aw" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/abandoned)
|
||||
"ax" = (
|
||||
@@ -220,7 +220,7 @@
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/abandoned)
|
||||
"aR" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/abandoned)
|
||||
"aS" = (
|
||||
@@ -288,7 +288,7 @@
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/abandoned)
|
||||
"be" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/abandoned)
|
||||
"bf" = (
|
||||
|
||||
@@ -584,10 +584,8 @@
|
||||
desc = "A thin layer of dust coating the floor.";
|
||||
name = "dust"
|
||||
},
|
||||
/obj/machinery/door/airlock{
|
||||
glass = 1;
|
||||
name = "Dormitory";
|
||||
opacity = 0
|
||||
/obj/machinery/door/airlock/glass{
|
||||
name = "Dormitory"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral,
|
||||
/area/shuttle/abandoned)
|
||||
@@ -722,10 +720,8 @@
|
||||
desc = "A thin layer of dust coating the floor.";
|
||||
name = "dust"
|
||||
},
|
||||
/obj/machinery/door/airlock{
|
||||
glass = 1;
|
||||
name = "Crew Quarters";
|
||||
opacity = 0
|
||||
/obj/machinery/door/airlock/glass{
|
||||
name = "Crew Quarters"
|
||||
},
|
||||
/turf/open/floor/plasteel/neutral/side{
|
||||
dir = 1
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/abandoned)
|
||||
"d" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
@@ -81,7 +81,7 @@
|
||||
/turf/open/floor/plating/abductor,
|
||||
/area/shuttle/abandoned)
|
||||
"o" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile{
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
name = "Shuttle"
|
||||
})
|
||||
"h" = (
|
||||
/obj/machinery/door/airlock/glass_external,
|
||||
/obj/machinery/door/airlock/external/glass,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/powered{
|
||||
name = "Shuttle"
|
||||
@@ -65,7 +65,7 @@
|
||||
name = "Shuttle"
|
||||
})
|
||||
"k" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/powered{
|
||||
name = "Shuttle"
|
||||
@@ -89,7 +89,7 @@
|
||||
name = "Shuttle"
|
||||
})
|
||||
"o" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/powered{
|
||||
name = "Shuttle"
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
name = "Shuttle"
|
||||
})
|
||||
"l" = (
|
||||
/obj/machinery/door/airlock/glass_external,
|
||||
/obj/machinery/door/airlock/external/glass,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/powered{
|
||||
name = "Shuttle"
|
||||
@@ -86,7 +86,7 @@
|
||||
name = "Shuttle"
|
||||
})
|
||||
"n" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/powered{
|
||||
name = "Shuttle"
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
name = "Shuttle"
|
||||
})
|
||||
"j" = (
|
||||
/obj/machinery/door/airlock/glass_external,
|
||||
/obj/machinery/door/airlock/external/glass,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/powered{
|
||||
name = "Shuttle"
|
||||
@@ -100,7 +100,7 @@
|
||||
name = "Shuttle"
|
||||
})
|
||||
"p" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/powered{
|
||||
name = "Shuttle"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
/turf/closed/indestructible/oldshuttle,
|
||||
/area/ruin/powered)
|
||||
"d" = (
|
||||
/obj/machinery/door/airlock/glass,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/oldshuttle,
|
||||
/area/ruin/powered)
|
||||
"e" = (
|
||||
|
||||
@@ -929,7 +929,7 @@
|
||||
/area/shuttle/pirate)
|
||||
"cg" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Bar"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -1740,7 +1740,7 @@
|
||||
icon_state = "1-2";
|
||||
pixel_y = 0
|
||||
},
|
||||
/obj/machinery/door/airlock/glass{
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
heat_proof = 1;
|
||||
id_tag = "pirateturbinebolt";
|
||||
locked = 1;
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
/area/survivalpod)
|
||||
"n" = (
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/machinery/door/airlock/survival_pod,
|
||||
/obj/machinery/door/airlock/survival_pod/glass,
|
||||
/turf/open/floor/pod,
|
||||
/area/survivalpod)
|
||||
"o" = (
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
/area/survivalpod)
|
||||
"D" = (
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/machinery/door/airlock/survival_pod,
|
||||
/obj/machinery/door/airlock/survival_pod/glass,
|
||||
/turf/open/floor/pod,
|
||||
/area/survivalpod)
|
||||
"E" = (
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#define MUT_MUTE "Mute"
|
||||
#define SMILE "Smile"
|
||||
#define STONER "Stoner"
|
||||
#define UNINTELLIGABLE "Unintelligable"
|
||||
#define UNINTELLIGIBLE "Unintelligible"
|
||||
#define SWEDISH "Swedish"
|
||||
#define CHAV "Chav"
|
||||
#define ELVIS "Elvis"
|
||||
@@ -82,7 +82,7 @@
|
||||
#define DNA_MUTANTTAIL_BLOCK 17
|
||||
#define DNA_MUTANTWING_BLOCK 18
|
||||
#define DNA_WINGCOLOR_BLOCK 19
|
||||
#define DNA_STRUC_ENZYMES_BLOCKS 19
|
||||
#define DNA_STRUC_ENZYMES_BLOCKS 18
|
||||
#define DNA_UNIQUE_ENZYMES_LEN 32
|
||||
|
||||
//Transformation proc stuff
|
||||
|
||||
@@ -1,14 +1,5 @@
|
||||
#define FIRE_DAMAGE_MODIFIER 0.0215 //Higher values result in more external fire damage to the skin (default 0.0215)
|
||||
#define AIR_DAMAGE_MODIFIER 2.025 //More means less damage from hot air scalding lungs, less = more damage. (default 2.025)
|
||||
|
||||
#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC
|
||||
#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005)
|
||||
#define O2STANDARD 0.21
|
||||
#define N2STANDARD 0.79
|
||||
#define MOLES_O2STANDARD (MOLES_CELLSTANDARD*O2STANDARD) // O2 standard value (21%)
|
||||
#define MOLES_N2STANDARD (MOLES_CELLSTANDARD*N2STANDARD) // N2 standard value (79%)
|
||||
|
||||
//indices of values in gas lists. used by listmos.
|
||||
//LISTMOS
|
||||
//indices of values in gas lists.
|
||||
#define MOLES 1
|
||||
#define ARCHIVE 2
|
||||
#define GAS_META 3
|
||||
@@ -19,32 +10,35 @@
|
||||
#define META_GAS_DANGER 5
|
||||
#define META_GAS_ID 6
|
||||
|
||||
//stuff you should probably leave well alone!
|
||||
//ATMOS
|
||||
#define CELL_VOLUME 2500 //liters in a cell
|
||||
#define BREATH_VOLUME 0.5 //liters in a normal breath
|
||||
#define BREATH_PERCENTAGE (BREATH_VOLUME/CELL_VOLUME) //Amount of air to take a from a tile
|
||||
#define HUMAN_NEEDED_OXYGEN (MOLES_CELLSTANDARD*BREATH_PERCENTAGE*0.16) //Amount of air needed before pass out/suffocation commences
|
||||
#define NORMPIPERATE 30 //pipe-insulation rate divisor
|
||||
#define HEATPIPERATE 8 //heat-exch pipe insulation
|
||||
#define FLOWFRAC 0.99 //fraction of gas transfered per process
|
||||
#define TANK_MELT_TEMPERATURE 1000000
|
||||
#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) //Tank starts leaking
|
||||
#define TANK_RUPTURE_PRESSURE (35.*ONE_ATMOSPHERE) //Tank spills all contents into atmosphere
|
||||
#define TANK_FRAGMENT_PRESSURE (40.*ONE_ATMOSPHERE) //Boom 3x3 base explosion
|
||||
#define TANK_FRAGMENT_SCALE (6.*ONE_ATMOSPHERE) //+1 for each SCALE kPa aboe threshold
|
||||
#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.1 //Ratio of air that must move to/from a tile to reset group processing
|
||||
#define MINIMUM_AIR_RATIO_TO_MOVE 0.001 //Minimum ratio of air that must move to/from a tile
|
||||
#define MINIMUM_AIR_TO_SUSPEND (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_SUSPEND) //Minimum amount of air that has to move before a group processing can be suspended
|
||||
#define MINIMUM_MOLES_DELTA_TO_MOVE (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_MOVE) //Either this must be active
|
||||
#define EXCITED_GROUP_BREAKDOWN_CYCLES 4
|
||||
#define EXCITED_GROUP_DISMANTLE_CYCLES 16
|
||||
#define MINIMUM_TEMPERATURE_TO_MOVE (T20C+100) //or this (or both, obviously)
|
||||
#define MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND 0.012
|
||||
//stuff you should probably leave well alone!
|
||||
#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC
|
||||
#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005) //compared against for superconductivity
|
||||
#define O2STANDARD 0.21 //percentage of oxygen in a normal mixture of air
|
||||
#define N2STANDARD 0.79 //same but for nitrogen
|
||||
#define MOLES_O2STANDARD (MOLES_CELLSTANDARD*O2STANDARD) // O2 standard value (21%)
|
||||
#define MOLES_N2STANDARD (MOLES_CELLSTANDARD*N2STANDARD) // N2 standard value (79%)
|
||||
#define CELL_VOLUME 2500 //liters in a cell
|
||||
#define BREATH_VOLUME 0.5 //liters in a normal breath
|
||||
#define BREATH_PERCENTAGE (BREATH_VOLUME/CELL_VOLUME) //Amount of air to take a from a tile
|
||||
#define HUMAN_NEEDED_OXYGEN (MOLES_CELLSTANDARD*BREATH_PERCENTAGE*0.16) //Amount of air needed before pass out/suffocation commences
|
||||
|
||||
//EXCITED GROUPS
|
||||
#define EXCITED_GROUP_BREAKDOWN_CYCLES 4 //number of FULL air controller ticks before an excited group breaks down (averages gas contents across turfs)
|
||||
#define EXCITED_GROUP_DISMANTLE_CYCLES 16 //number of FULL air controller ticks before an excited group dismantles and removes its turfs from active
|
||||
#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.1 //Ratio of air that must move to/from a tile to reset group processing
|
||||
#define MINIMUM_AIR_RATIO_TO_MOVE 0.001 //Minimum ratio of air that must move to/from a tile
|
||||
#define MINIMUM_AIR_TO_SUSPEND (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_SUSPEND) //Minimum amount of air that has to move before a group processing can be suspended
|
||||
#define MINIMUM_MOLES_DELTA_TO_MOVE (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_MOVE) //Either this must be active
|
||||
#define MINIMUM_TEMPERATURE_TO_MOVE (T20C+100) //or this (or both, obviously)
|
||||
#define MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND 4 //Minimum temperature difference before group processing is suspended
|
||||
#define MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER 0.5 //Minimum temperature difference before the gas temperatures are just set to be equal
|
||||
#define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION T20C+10
|
||||
#define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION T20C+200
|
||||
|
||||
//HEAT TRANSFER COEFFICIENTS
|
||||
//Must be between 0 and 1. Values closer to 1 equalize temperature faster
|
||||
//Should not exceed 0.4 else strange heat flow occur
|
||||
#define FLOOR_HEAT_TRANSFER_COEFFICIENT 0.4
|
||||
#define WALL_HEAT_TRANSFER_COEFFICIENT 0.0
|
||||
#define DOOR_HEAT_TRANSFER_COEFFICIENT 0.0
|
||||
@@ -52,20 +46,31 @@
|
||||
#define OPEN_HEAT_TRANSFER_COEFFICIENT 0.4
|
||||
#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.1 //a hack for now
|
||||
#define HEAT_CAPACITY_VACUUM 7000 //a hack to help make vacuums "cold", sacrificing realism for gameplay
|
||||
//Must be between 0 and 1. Values closer to 1 equalize temperature faster
|
||||
//Should not exceed 0.4 else strange heat flow occur
|
||||
|
||||
//FIRE
|
||||
#define FIRE_MINIMUM_TEMPERATURE_TO_SPREAD 150+T0C
|
||||
#define FIRE_MINIMUM_TEMPERATURE_TO_EXIST 100+T0C
|
||||
#define FIRE_SPREAD_RADIOSITY_SCALE 0.85
|
||||
#define FIRE_GROWTH_RATE 40000 //For small fires
|
||||
#define CARBON_LIFEFORM_FIRE_RESISTANCE 200+T0C //Resistance to fire damage
|
||||
#define CARBON_LIFEFORM_FIRE_DAMAGE 4 //Fire damage
|
||||
#define PLASMA_MINIMUM_BURN_TEMPERATURE 100+T0C
|
||||
|
||||
//GASES
|
||||
#define MIN_TOXIC_GAS_DAMAGE 1
|
||||
#define MAX_TOXIC_GAS_DAMAGE 10
|
||||
#define MOLES_GAS_VISIBLE 0.5 //Moles in a standard cell after which gases are visible
|
||||
#define STOP_REACTIONS 2
|
||||
#define PLASMA_MINIMUM_BURN_TEMPERATURE 100+T0C
|
||||
#define GAS_STIM_MINIMUM 0.002
|
||||
|
||||
//REACTIONS
|
||||
//return values for reactions (bitflags)
|
||||
#define NO_REACTION 0
|
||||
#define REACTING 1
|
||||
#define STOP_REACTIONS 2
|
||||
|
||||
//HUMANS
|
||||
//Hurty numbers
|
||||
#define FIRE_DAMAGE_MODIFIER 0.0215 //Higher values result in more external fire damage to the skin
|
||||
#define AIR_DAMAGE_MODIFIER 2.025 //More means less damage from hot air scalding lungs, less = more damage
|
||||
|
||||
// Pressure limits.
|
||||
#define HAZARD_HIGH_PRESSURE 550 //This determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant)
|
||||
@@ -107,65 +112,71 @@
|
||||
#define SHOES_MIN_TEMP_PROTECT 2.0 //For gloves
|
||||
#define SHOES_MAX_TEMP_PROTECT 1500 //For gloves
|
||||
|
||||
|
||||
#define PRESSURE_DAMAGE_COEFFICIENT 4 //The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE
|
||||
#define MAX_HIGH_PRESSURE_DAMAGE 4
|
||||
#define LOW_PRESSURE_DAMAGE 4 //The amount of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value).
|
||||
|
||||
#define COLD_SLOWDOWN_FACTOR 20 //Humans are slowed by the difference between bodytemp and BODYTEMP_COLD_DAMAGE_LIMIT divided by this
|
||||
|
||||
// Atmos pipe limits
|
||||
//PIPES
|
||||
//Atmos pipe limits
|
||||
#define MAX_OUTPUT_PRESSURE 4500 // (kPa) What pressure pumps and powered equipment max out at.
|
||||
#define MAX_TRANSFER_RATE 200 // (L/s) Maximum speed powered equipment can work at.
|
||||
|
||||
//Atmos machinery pipenet stuff
|
||||
|
||||
// used for device_type vars; used by DEVICE_TYPE_LOOP
|
||||
//used for device_type vars; used by DEVICE_TYPE_LOOP
|
||||
#define UNARY 1
|
||||
#define BINARY 2
|
||||
#define TRINARY 3
|
||||
#define QUATERNARY 4
|
||||
|
||||
// this is the standard for loop used by all sorts of atmos machinery procs
|
||||
//TODO: finally remove this bullshit
|
||||
//this is the standard for loop used by all sorts of atmos machinery procs
|
||||
#define DEVICE_TYPE_LOOP var/I in 1 to device_type
|
||||
|
||||
// defines for the various machinery lists
|
||||
// NODE_I, AIR_I, PARENT_I are used within DEVICE_TYPE_LOOP
|
||||
//defines for the various machinery lists
|
||||
//NODE_I, AIR_I, PARENT_I are used within DEVICE_TYPE_LOOP
|
||||
|
||||
// nodes list - all atmos machinery
|
||||
//nodes list - all atmos machinery
|
||||
#define NODE1 nodes[1]
|
||||
#define NODE2 nodes[2]
|
||||
#define NODE3 nodes[3]
|
||||
#define NODE4 nodes[4]
|
||||
#define NODE_I nodes[I]
|
||||
|
||||
// airs list - components only
|
||||
//airs list - components only
|
||||
#define AIR1 airs[1]
|
||||
#define AIR2 airs[2]
|
||||
#define AIR3 airs[3]
|
||||
#define AIR_I airs[I]
|
||||
|
||||
// parents list - components only
|
||||
//parents list - components only
|
||||
#define PARENT1 parents[1]
|
||||
#define PARENT2 parents[2]
|
||||
#define PARENT3 parents[3]
|
||||
#define PARENT_I parents[I]
|
||||
|
||||
//Tanks
|
||||
#define TANK_MAX_RELEASE_PRESSURE (ONE_ATMOSPHERE*3)
|
||||
#define TANK_MIN_RELEASE_PRESSURE 0
|
||||
#define TANK_DEFAULT_RELEASE_PRESSURE 16
|
||||
|
||||
//TANKS
|
||||
#define TANK_MELT_TEMPERATURE 1000000 //temperature in kelvins at which a tank will start to melt
|
||||
#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) //Tank starts leaking
|
||||
#define TANK_RUPTURE_PRESSURE (35.*ONE_ATMOSPHERE) //Tank spills all contents into atmosphere
|
||||
#define TANK_FRAGMENT_PRESSURE (40.*ONE_ATMOSPHERE) //Boom 3x3 base explosion
|
||||
#define TANK_FRAGMENT_SCALE (6.*ONE_ATMOSPHERE) //+1 for each SCALE kPa aboe threshold
|
||||
#define TANK_MAX_RELEASE_PRESSURE (ONE_ATMOSPHERE*3)
|
||||
#define TANK_MIN_RELEASE_PRESSURE 0
|
||||
#define TANK_DEFAULT_RELEASE_PRESSURE 16
|
||||
|
||||
//CANATMOSPASS
|
||||
#define ATMOS_PASS_YES 1
|
||||
#define ATMOS_PASS_NO 0
|
||||
#define ATMOS_PASS_PROC -1 //ask CanAtmosPass()
|
||||
#define ATMOS_PASS_DENSITY -2 //just check density
|
||||
#define CANATMOSPASS(A, O) ( A.CanAtmosPass == ATMOS_PASS_PROC ? A.CanAtmosPass(O) : ( A.CanAtmosPass == ATMOS_PASS_DENSITY ? !A.density : A.CanAtmosPass ) )
|
||||
|
||||
//LAVALAND
|
||||
#define LAVALAND_EQUIPMENT_EFFECT_PRESSURE 50 //what pressure you have to be under to increase the effect of equipment meant for lavaland
|
||||
#define LAVALAND_DEFAULT_ATMOS "o2=14;n2=23;TEMP=300"
|
||||
|
||||
//MULTIPIPES
|
||||
//IF YOU EVER CHANGE THESE CHANGE SPRITES TO MATCH.
|
||||
#define PIPING_LAYER_MIN 1
|
||||
#define PIPING_LAYER_MAX 3
|
||||
@@ -179,6 +190,7 @@
|
||||
#define PIPING_DEFAULT_LAYER_ONLY 4 //can only exist at PIPING_LAYER_DEFAULT
|
||||
#define PIPING_CARDINAL_AUTONORMALIZE 8 //north/south east/west doesn't matter, auto normalize on build.
|
||||
|
||||
//HELPERS
|
||||
#define THERMAL_ENERGY(gas) (gas.temperature * gas.heat_capacity())
|
||||
|
||||
#define ADD_GAS(gas_id, out_list)\
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
//component id defines
|
||||
#define BELLIGERENT_EYE "belligerent_eye"
|
||||
#define VANGUARD_COGWHEEL "vanguard_cogwheel"
|
||||
#define GEIS_CAPACITOR "geis_capacitor"
|
||||
//component id defines; sometimes these may not make sense in regards to their use in scripture but important ones are bright
|
||||
#define BELLIGERENT_EYE "belligerent_eye" //Use this for offensive and damaging scripture!
|
||||
#define VANGUARD_COGWHEEL "vanguard_cogwheel" //Use this for defensive and healing scripture!
|
||||
#define GEIS_CAPACITOR "geis_capacitor" //Use this for niche scripture!
|
||||
#define REPLICANT_ALLOY "replicant_alloy"
|
||||
#define HIEROPHANT_ANSIBLE "hierophant_ansible"
|
||||
#define HIEROPHANT_ANSIBLE "hierophant_ansible" //Use this for construction-related scripture!
|
||||
|
||||
GLOBAL_VAR_INIT(clockwork_construction_value, 0) //The total value of all structures built by the clockwork cult
|
||||
GLOBAL_VAR_INIT(clockwork_caches, 0) //How many clockwork caches exist in the world (not each individual)
|
||||
@@ -69,6 +69,9 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us
|
||||
//Objective text define
|
||||
#define CLOCKCULT_OBJECTIVE "Construct the Ark of the Clockwork Justicar and free Ratvar."
|
||||
|
||||
//Eminence defines
|
||||
#define SUPERHEATED_CLOCKWORK_WALL_LIMIT 20 //How many walls can be superheated at once
|
||||
|
||||
//misc clockcult stuff
|
||||
|
||||
#define SIGIL_ACCESS_RANGE 2 //range at which transmission sigils can access power
|
||||
@@ -86,3 +89,5 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us
|
||||
#define MARAUDER_SCRIPTURE_SCALING_TIME 50 //The amount of extra deciseconds tacked on to the marauder scripture recital time per recent marauder
|
||||
|
||||
#define MARAUDER_SCRIPTURE_SCALING_MAX 300 //The maximum extra time applied to the marauder scripture
|
||||
|
||||
#define ARK_SCREAM_COOLDOWN 600 //This much time has to pass between instances of the Ark taking damage before it will "scream" again
|
||||
|
||||
@@ -77,6 +77,10 @@
|
||||
#define COMSIG_MACHINE_PROCESS "machine_process" //from machinery subsystem fire(): ()
|
||||
#define COMSIG_MACHINE_PROCESS_ATMOS "machine_process_atmos" //from air subsystem process_atmos_machinery(): ()
|
||||
|
||||
|
||||
// /mob/living/carbon/human signals
|
||||
#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target)
|
||||
#define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby" //from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker)
|
||||
|
||||
#define CALTROP_BYPASS_SHOES 1
|
||||
#define CALTROP_IGNORE_WALKERS 2
|
||||
|
||||
@@ -23,6 +23,11 @@
|
||||
#define WINDOW_IN_FRAME 1
|
||||
#define WINDOW_SCREWED_TO_FRAME 2
|
||||
|
||||
//airlock assembly construction states
|
||||
#define AIRLOCK_ASSEMBLY_NEEDS_WIRES 0
|
||||
#define AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS 1
|
||||
#define AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER 2
|
||||
|
||||
//plastic flaps construction states
|
||||
#define PLASTIC_FLAPS_NORMAL 0
|
||||
#define PLASTIC_FLAPS_DETACHED 1
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
|
||||
#define iscameramob(A) (istype(A, /mob/camera))
|
||||
|
||||
#define iseminence(A) (istype(A, /mob/camera/eminence))
|
||||
|
||||
//Objects
|
||||
#define isobj(A) istype(A, /obj) //override the byond proc because it returns true on children of /atom/movable that aren't objs
|
||||
|
||||
|
||||
@@ -491,6 +491,9 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
|
||||
|
||||
#define RIDING_OFFSET_ALL "ALL"
|
||||
|
||||
//text files
|
||||
#define BRAIN_DAMAGE_FILE "brain_damage_lines.json"
|
||||
|
||||
//Fullscreen overlay resolution in tiles.
|
||||
#define FULLSCREEN_OVERLAY_RESOLUTION_X 15
|
||||
#define FULLSCREEN_OVERLAY_RESOLUTION_Y 15
|
||||
|
||||
@@ -51,6 +51,17 @@
|
||||
#define DEVIL_BODYPART "devil"
|
||||
/*see __DEFINES/inventory.dm for bodypart bitflag defines*/
|
||||
|
||||
//Brain Damage defines
|
||||
#define BRAIN_DAMAGE_MILD 50
|
||||
#define BRAIN_DAMAGE_SEVERE 120
|
||||
#define BRAIN_DAMAGE_DEATH 200
|
||||
|
||||
#define BRAIN_TRAUMA_MILD /datum/brain_trauma/mild
|
||||
#define BRAIN_TRAUMA_SEVERE /datum/brain_trauma/severe
|
||||
#define BRAIN_TRAUMA_SPECIAL /datum/brain_trauma/special
|
||||
|
||||
#define BRAIN_DAMAGE_INTEGRITY_MULTIPLIER 0.5
|
||||
|
||||
//Health hud screws for carbon mobs
|
||||
#define SCREWYHUD_NONE 0
|
||||
#define SCREWYHUD_CRIT 1
|
||||
|
||||
@@ -70,4 +70,8 @@
|
||||
//Rotation params
|
||||
#define ROTATE_DIR 1
|
||||
#define ROTATE_SMOOTH 2
|
||||
#define ROTATE_OFFSET 4
|
||||
#define ROTATE_OFFSET 4
|
||||
|
||||
#define SHUTTLE_DOCKER_LANDING_CLEAR 1
|
||||
#define SHUTTLE_DOCKER_BLOCKED_BY_HIDDEN_PORT 2
|
||||
#define SHUTTLE_DOCKER_BLOCKED 3
|
||||
|
||||
+33
-31
@@ -1,31 +1,33 @@
|
||||
/*
|
||||
Used with the various stat variables (mob, machines)
|
||||
*/
|
||||
|
||||
//mob/var/stat things
|
||||
#define CONSCIOUS 0
|
||||
#define SOFT_CRIT 1
|
||||
#define UNCONSCIOUS 2
|
||||
#define DEAD 3
|
||||
|
||||
//mob disabilities stat
|
||||
|
||||
#define BLIND 1
|
||||
#define MUTE 2
|
||||
#define DEAF 4
|
||||
#define NEARSIGHT 8
|
||||
#define FAT 32
|
||||
#define HUSK 64
|
||||
#define NOCLONE 128
|
||||
#define CLUMSY 256
|
||||
|
||||
// bitflags for machine stat variable
|
||||
#define BROKEN 1
|
||||
#define NOPOWER 2
|
||||
#define MAINT 4 // under maintaince
|
||||
#define EMPED 8 // temporary broken by EMP pulse
|
||||
|
||||
//ai power requirement defines
|
||||
#define POWER_REQ_NONE 0
|
||||
#define POWER_REQ_ALL 1
|
||||
#define POWER_REQ_CLOCKCULT 2
|
||||
/*
|
||||
Used with the various stat variables (mob, machines)
|
||||
*/
|
||||
|
||||
//mob/var/stat things
|
||||
#define CONSCIOUS 0
|
||||
#define SOFT_CRIT 1
|
||||
#define UNCONSCIOUS 2
|
||||
#define DEAD 3
|
||||
|
||||
//mob disabilities stat
|
||||
|
||||
#define BLIND 1
|
||||
#define MUTE 2
|
||||
#define DEAF 4
|
||||
#define NEARSIGHT 8
|
||||
#define FAT 32
|
||||
#define HUSK 64
|
||||
#define NOCLONE 128
|
||||
#define CLUMSY 256
|
||||
#define DUMB 512
|
||||
#define MONKEYLIKE 1024 //sets IsAdvancedToolUser to FALSE
|
||||
|
||||
// bitflags for machine stat variable
|
||||
#define BROKEN 1
|
||||
#define NOPOWER 2
|
||||
#define MAINT 4 // under maintaince
|
||||
#define EMPED 8 // temporary broken by EMP pulse
|
||||
|
||||
//ai power requirement defines
|
||||
#define POWER_REQ_NONE 0
|
||||
#define POWER_REQ_ALL 1
|
||||
#define POWER_REQ_CLOCKCULT 2
|
||||
|
||||
+16
-16
@@ -9,6 +9,16 @@
|
||||
* Misc
|
||||
*/
|
||||
|
||||
#define LAZYINITLIST(L) if (!L) L = list()
|
||||
#define UNSETEMPTY(L) if (L && !L.len) L = null
|
||||
#define LAZYREMOVE(L, I) if(L) { L -= I; if(!L.len) { L = null; } }
|
||||
#define LAZYADD(L, I) if(!L) { L = list(); } L += I;
|
||||
#define LAZYACCESS(L, I) (L ? (isnum(I) ? (I > 0 && I <= L.len ? L[I] : null) : L[I]) : null)
|
||||
#define LAZYSET(L, K, V) if(!L) { L = list(); } L[K] = V;
|
||||
#define LAZYLEN(L) length(L)
|
||||
#define LAZYCLEARLIST(L) if(L) L.Cut()
|
||||
#define SANITIZE_LIST(L) ( islist(L) ? L : list() )
|
||||
|
||||
//Returns a list in plain english as a string
|
||||
/proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" )
|
||||
var/total = input.len
|
||||
@@ -32,7 +42,7 @@
|
||||
|
||||
//Returns list element or null. Should prevent "index out of bounds" error.
|
||||
/proc/listgetindex(list/L, index)
|
||||
if(istype(L))
|
||||
if(LAZYLEN(L))
|
||||
if(isnum(index) && IsInteger(index))
|
||||
if(IsInRange(index,1,L.len))
|
||||
return L[index]
|
||||
@@ -42,7 +52,7 @@
|
||||
|
||||
//Return either pick(list) or null if list is not of type /list or is empty
|
||||
/proc/safepick(list/L)
|
||||
if(istype(L) && L.len)
|
||||
if(LAZYLEN(L))
|
||||
return pick(L)
|
||||
|
||||
//Checks if the list is empty
|
||||
@@ -53,7 +63,7 @@
|
||||
|
||||
//Checks for specific types in a list
|
||||
/proc/is_type_in_list(atom/A, list/L)
|
||||
if(!L || !L.len || !A)
|
||||
if(!LAZYLEN(L) || !A)
|
||||
return FALSE
|
||||
for(var/type in L)
|
||||
if(istype(A, type))
|
||||
@@ -62,7 +72,7 @@
|
||||
|
||||
//Checks for specific types in specifically structured (Assoc "type" = TRUE) lists ('typecaches')
|
||||
/proc/is_type_in_typecache(atom/A, list/L)
|
||||
if(!L || !L.len || !A)
|
||||
if(!LAZYLEN(L) || !A)
|
||||
|
||||
return FALSE
|
||||
if(ispath(A))
|
||||
@@ -72,7 +82,7 @@
|
||||
|
||||
//Checks for a string in a list
|
||||
/proc/is_string_in_list(string, list/L)
|
||||
if(!L || !L.len || !string)
|
||||
if(!LAZYLEN(L) || !string)
|
||||
return
|
||||
for(var/V in L)
|
||||
if(string == V)
|
||||
@@ -81,7 +91,7 @@
|
||||
|
||||
//Removes a string from a list
|
||||
/proc/remove_strings_from_list(string, list/L)
|
||||
if(!L || !L.len || !string)
|
||||
if(!LAZYLEN(L) || !string)
|
||||
return
|
||||
for(var/V in L)
|
||||
if(V == string)
|
||||
@@ -486,16 +496,6 @@
|
||||
//Picks from the list, with some safeties, and returns the "default" arg if it fails
|
||||
#define DEFAULTPICK(L, default) ((islist(L) && length(L)) ? pick(L) : default)
|
||||
|
||||
#define LAZYINITLIST(L) if (!L) L = list()
|
||||
#define UNSETEMPTY(L) if (L && !L.len) L = null
|
||||
#define LAZYREMOVE(L, I) if(L) { L -= I; if(!L.len) { L = null; } }
|
||||
#define LAZYADD(L, I) if(!L) { L = list(); } L += I;
|
||||
#define LAZYACCESS(L, I) (L ? (isnum(I) ? (I > 0 && I <= L.len ? L[I] : null) : L[I]) : null)
|
||||
#define LAZYSET(L, K, V) if(!L) { L = list(); } L[K] = V;
|
||||
#define LAZYLEN(L) length(L)
|
||||
#define LAZYCLEARLIST(L) if(L) L.Cut()
|
||||
#define SANITIZE_LIST(L) ( islist(L) ? L : list() )
|
||||
|
||||
/* Definining a counter as a series of key -> numeric value entries
|
||||
|
||||
* All these procs modify in place.
|
||||
|
||||
@@ -326,25 +326,6 @@
|
||||
return M
|
||||
return null
|
||||
|
||||
// Will return a list of active candidates. It increases the buffer 5 times until it finds a candidate which is active within the buffer.
|
||||
|
||||
/proc/get_candidates(be_special_type, afk_bracket = CONFIG_GET(number/inactivity_period), jobbanType)
|
||||
var/list/candidates = list()
|
||||
// Keep looping until we find a non-afk candidate within the time bracket (we limit the bracket to 10 minutes (6000))
|
||||
var/afk_period = CONFIG_GET(number/afk_period)
|
||||
while(!candidates.len && afk_bracket < afk_period)
|
||||
for(var/mob/dead/observer/G in GLOB.player_list)
|
||||
if(G.client != null)
|
||||
if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD))
|
||||
if(!G.client.is_afk(afk_bracket) && (be_special_type in G.client.prefs.be_special))
|
||||
if (jobbanType)
|
||||
if(!(jobban_isbanned(G, jobbanType) || jobban_isbanned(G, "Syndicate")))
|
||||
candidates += G.client
|
||||
else
|
||||
candidates += G.client
|
||||
afk_bracket += 600 // Add a minute to the bracket, for every attempt
|
||||
return candidates
|
||||
|
||||
/proc/considered_alive(datum/mind/M, enforce_human = TRUE)
|
||||
if(M && M.current)
|
||||
if(enforce_human)
|
||||
|
||||
@@ -198,7 +198,7 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4,
|
||||
var/list/screen_loc_Y = splittext(screen_loc_params[2],":")
|
||||
var/x = (text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32)
|
||||
var/y = (text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32)
|
||||
var/list/screenview = getviewsize(client)
|
||||
var/list/screenview = getviewsize(client.view)
|
||||
var/screenviewX = screenview[1] * world.icon_size
|
||||
var/screenviewY = screenview[2] * world.icon_size
|
||||
var/ox = round(screenviewX/2) - client.pixel_x //"origin" x
|
||||
|
||||
@@ -359,7 +359,7 @@ Proc for attack log creation, because really why not
|
||||
if(!user)
|
||||
return 0
|
||||
var/atom/Tloc = null
|
||||
if(target)
|
||||
if(target && !isturf(target))
|
||||
Tloc = target.loc
|
||||
|
||||
var/atom/Uloc = user.loc
|
||||
|
||||
+17
-24
@@ -14,30 +14,23 @@
|
||||
//breaks when hittin invalid characters thereafter
|
||||
/proc/hex2num(hex)
|
||||
. = 0
|
||||
if(istext(hex))
|
||||
var/negative = 0
|
||||
var/len = length(hex)
|
||||
for(var/i=1, i<=len, i++)
|
||||
var/num = text2ascii(hex,i)
|
||||
switch(num)
|
||||
if(48 to 57)
|
||||
num -= 48 //0-9
|
||||
if(97 to 102)
|
||||
num -= 87 //a-f
|
||||
if(65 to 70)
|
||||
num -= 55 //A-F
|
||||
if(45)
|
||||
negative = 1//-
|
||||
else
|
||||
if(num)
|
||||
break
|
||||
else
|
||||
continue
|
||||
. *= 16
|
||||
. += num
|
||||
if(negative)
|
||||
. *= -1
|
||||
return .
|
||||
var/place = 1
|
||||
for(var/i in length(hex) to 1 step -1)
|
||||
var/num = text2ascii(hex, i)
|
||||
switch(num)
|
||||
if(48 to 57)
|
||||
num -= 48 //0-9
|
||||
if(97 to 102)
|
||||
num -= 87 //a-f
|
||||
if(65 to 70)
|
||||
num -= 55 //A-F
|
||||
if(45)
|
||||
return . * -1 // -
|
||||
else
|
||||
CRASH("Malformed hex number")
|
||||
|
||||
. += num * place
|
||||
place *= 16
|
||||
|
||||
//Returns the hex value of a decimal number
|
||||
//len == length of returned string
|
||||
|
||||
@@ -1507,3 +1507,10 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
else
|
||||
return "\[[url_encode(thing.tag)]\]"
|
||||
return "\ref[input]"
|
||||
|
||||
//Returns a list of all servants of Ratvar and observers.
|
||||
/proc/servants_and_ghosts()
|
||||
. = list()
|
||||
for(var/V in GLOB.player_list)
|
||||
if(is_servant_of_ratvar(V) || isobserver(V))
|
||||
. += V
|
||||
|
||||
@@ -35,4 +35,3 @@ GLOBAL_PROTECT(MAX_EX_FLASH_RANGE)
|
||||
GLOBAL_VAR_INIT(MAX_EX_FLAME_RANGE, 14)
|
||||
GLOBAL_PROTECT(MAX_EX_FLAME_RANGE)
|
||||
GLOBAL_VAR_INIT(DYN_EX_SCALE, 0.5)
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ GLOBAL_LIST_EMPTY(airlocks) //list of all airlocks
|
||||
GLOBAL_LIST_EMPTY(mechas_list) //list of all mechs. Used by hostile mobs target tracking.
|
||||
GLOBAL_LIST_EMPTY(shuttle_caller_list) //list of all communication consoles and AIs, for automatic shuttle calls when there are none.
|
||||
GLOBAL_LIST_EMPTY(machines) //NOTE: this is a list of ALL machines now. The processing machines list is SSmachine.processing !
|
||||
GLOBAL_LIST_EMPTY(navigation_computers) //list of all /obj/machinery/computer/camera_advanced/shuttle_docker
|
||||
GLOBAL_LIST_EMPTY(syndicate_shuttle_boards) //important to keep track of for managing nukeops war declarations.
|
||||
GLOBAL_LIST_EMPTY(navbeacons) //list of all bot nagivation beacons, used for patrolling.
|
||||
GLOBAL_LIST_EMPTY(teleportbeacons) //list of all tracking beacons used by teleporters
|
||||
|
||||
+27
-17
@@ -285,7 +285,7 @@
|
||||
if(!stat && mind && iscarbon(A) && A != src)
|
||||
var/datum/antagonist/changeling/C = mind.has_antag_datum(/datum/antagonist/changeling)
|
||||
if(C && C.chosen_sting)
|
||||
C.chosen_sting.try_to_sting(src,A)
|
||||
C.chosen_sting.try_to_sting(src,A)
|
||||
next_click = world.time + 5
|
||||
return
|
||||
swap_hand()
|
||||
@@ -349,7 +349,7 @@
|
||||
if(!stat && mind && iscarbon(A) && A != src)
|
||||
var/datum/antagonist/changeling/C = mind.has_antag_datum(/datum/antagonist/changeling)
|
||||
if(C && C.chosen_sting)
|
||||
C.chosen_sting.try_to_sting(src,A)
|
||||
C.chosen_sting.try_to_sting(src,A)
|
||||
next_click = world.time + 5
|
||||
return
|
||||
..()
|
||||
@@ -433,28 +433,38 @@
|
||||
else
|
||||
setDir(WEST)
|
||||
|
||||
//debug
|
||||
/obj/screen/proc/scale_to(x1,y1)
|
||||
if(!y1)
|
||||
y1 = x1
|
||||
var/matrix/M = new
|
||||
M.Scale(x1,y1)
|
||||
transform = M
|
||||
|
||||
/obj/screen/click_catcher
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "flash"
|
||||
icon_state = "catcher"
|
||||
plane = CLICKCATCHER_PLANE
|
||||
mouse_opacity = MOUSE_OPACITY_OPAQUE
|
||||
screen_loc = "CENTER"
|
||||
|
||||
#define MAX_SAFE_BYOND_ICON_SCALE_TILES (MAX_SAFE_BYOND_ICON_SCALE_PX / world.icon_size)
|
||||
#define MAX_SAFE_BYOND_ICON_SCALE_PX 33 * 32 //Not using world.icon_size on purpose.
|
||||
|
||||
/obj/screen/click_catcher/proc/UpdateGreed(view_size_x = 15, view_size_y = 15)
|
||||
var/icon/newicon = icon('icons/mob/screen_gen.dmi', "flash")
|
||||
if(view_size_x > 32 || view_size_y > 32)
|
||||
newicon.Scale(16 * world.icon_size,16 * world.icon_size)
|
||||
icon = newicon
|
||||
var/tx = ((view_size_x - 1)*0.5)/16
|
||||
var/ty = ((view_size_y - 1)*0.5)/16
|
||||
var/matrix/M = new
|
||||
M.Scale(tx, ty)
|
||||
transform = M
|
||||
screen_loc = "CENTER-16,CENTER-16"
|
||||
else
|
||||
screen_loc = "CENTER-[(view_size_x-1)*0.5],CENTER-[(view_size_y-1)*0.5]"
|
||||
newicon.Scale(view_size_x * world.icon_size,view_size_y * world.icon_size)
|
||||
icon = newicon
|
||||
var/icon/newicon = icon('icons/mob/screen_gen.dmi', "catcher")
|
||||
var/ox = min(MAX_SAFE_BYOND_ICON_SCALE_TILES, view_size_x)
|
||||
var/oy = min(MAX_SAFE_BYOND_ICON_SCALE_TILES, view_size_y)
|
||||
var/px = view_size_x * world.icon_size
|
||||
var/py = view_size_y * world.icon_size
|
||||
var/sx = min(MAX_SAFE_BYOND_ICON_SCALE_PX, px)
|
||||
var/sy = min(MAX_SAFE_BYOND_ICON_SCALE_PX, py)
|
||||
newicon.Scale(sx, sy)
|
||||
icon = newicon
|
||||
screen_loc = "CENTER-[(ox-1)*0.5],CENTER-[(oy-1)*0.5]"
|
||||
var/matrix/M = new
|
||||
M.Scale(px/sx, py/sy)
|
||||
transform = M
|
||||
|
||||
/obj/screen/click_catcher/Click(location, control, params)
|
||||
var/list/modifiers = params2list(params)
|
||||
|
||||
@@ -8,15 +8,22 @@
|
||||
var/button_icon_state
|
||||
var/appearance_cache
|
||||
|
||||
var/id
|
||||
|
||||
/obj/screen/movable/action_button/Click(location,control,params)
|
||||
var/list/modifiers = params2list(params)
|
||||
if(modifiers["shift"])
|
||||
if(locked)
|
||||
to_chat(usr, "<span class='warning'>Action button \"[name]\" is locked, unlock it first.</span>")
|
||||
return TRUE
|
||||
moved = 0
|
||||
usr.update_action_buttons() //redraw buttons that are no longer considered "moved"
|
||||
return TRUE
|
||||
if(modifiers["ctrl"])
|
||||
locked = !locked
|
||||
to_chat(usr, "<span class='notice'>Action button \"[name]\" [locked ? "" : "un"]locked.</span>")
|
||||
if(id && usr.client) //try to (un)remember position
|
||||
usr.client.prefs.action_buttons_screen_locs["[name]_[id]"] = locked ? moved : null
|
||||
return TRUE
|
||||
if(usr.next_click > world.time)
|
||||
return
|
||||
@@ -38,21 +45,30 @@
|
||||
/obj/screen/movable/action_button/hide_toggle/Click(location,control,params)
|
||||
var/list/modifiers = params2list(params)
|
||||
if(modifiers["shift"])
|
||||
if(locked)
|
||||
to_chat(usr, "<span class='warning'>Action button \"[name]\" is locked, unlock it first.</span>")
|
||||
return TRUE
|
||||
moved = FALSE
|
||||
usr.update_action_buttons(TRUE)
|
||||
return TRUE
|
||||
if(modifiers["ctrl"])
|
||||
locked = !locked
|
||||
to_chat(usr, "<span class='notice'>Action button \"[name]\" [locked ? "" : "un"]locked.</span>")
|
||||
if(id && usr.client) //try to (un)remember position
|
||||
usr.client.prefs.action_buttons_screen_locs["[name]_[id]"] = locked ? moved : null
|
||||
return TRUE
|
||||
if(modifiers["alt"])
|
||||
for(var/V in usr.actions)
|
||||
var/datum/action/A = V
|
||||
var/obj/screen/movable/action_button/B = A.button
|
||||
B.moved = FALSE
|
||||
if(B.id && usr.client)
|
||||
usr.client.prefs.action_buttons_screen_locs["[B.name]_[B.id]"] = null
|
||||
B.locked = usr.client.prefs.buttons_locked
|
||||
locked = usr.client.prefs.buttons_locked
|
||||
moved = FALSE
|
||||
if(id && usr.client)
|
||||
usr.client.prefs.action_buttons_screen_locs["[name]_[id]"] = null
|
||||
usr.update_action_buttons(TRUE)
|
||||
to_chat(usr, "<span class='notice'>Action button positions have been reset.</span>")
|
||||
return TRUE
|
||||
|
||||
@@ -388,23 +388,15 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
desc = "<font size=3><b>CHETR<br>NYY<br>HAGEHUGF-NAQ-UBABE<br>RATVAR.</b></font>"
|
||||
else
|
||||
var/servants = 0
|
||||
var/validservants = 0
|
||||
var/list/textlist
|
||||
for(var/mob/living/L in GLOB.alive_mob_list)
|
||||
if(is_servant_of_ratvar(L))
|
||||
servants++
|
||||
if(ishuman(L) || issilicon(L))
|
||||
validservants++
|
||||
if(servants > 1)
|
||||
if(validservants > 1)
|
||||
textlist = list("<b>[servants]</b> Servants, <b>[validservants]</b> of which count towards scripture.<br>")
|
||||
else
|
||||
textlist = list("<b>[servants]</b> Servants, [validservants ? "<b>[validservants]</b> of which counts":"none of which count"] towards scripture.<br>")
|
||||
else
|
||||
textlist = list("<b>[servants]</b> Servant, who [validservants ? "counts":"does not count"] towards scripture.<br>")
|
||||
for(var/i in SSticker.scripture_states)
|
||||
if(i != SCRIPTURE_DRIVER) //ignore the always-unlocked stuff
|
||||
textlist += "[i] Scripture: <b>[SSticker.scripture_states[i] ? "UNLOCKED":"LOCKED"]</b><br>"
|
||||
textlist = list("[SSticker.mode.eminence ? "There is an Eminence." : "<b>There is no Eminence! Get one ASAP!</b>"]<br>")
|
||||
textlist += "There are currently <b>[servants]</b> servant[servants > 1 ? "s" : ""] of Ratvar.<br>"
|
||||
for(var/i in SSticker.scripture_states)
|
||||
if(i != SCRIPTURE_DRIVER) //ignore the always-unlocked stuff
|
||||
textlist += "[i] Scripture: <b>[SSticker.scripture_states[i] ? "UNLOCKED":"LOCKED"]</b><br>"
|
||||
var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = GLOB.ark_of_the_clockwork_justiciar
|
||||
if(G)
|
||||
var/time_info = G.get_arrival_time(FALSE)
|
||||
|
||||
@@ -135,6 +135,6 @@
|
||||
var/attack_message = "[src] has been [message_verb][message_hit_area] with [I]."
|
||||
if(user in viewers(src, null))
|
||||
attack_message = "[user] has [message_verb] [src][message_hit_area] with [I]!"
|
||||
visible_message("<span class='danger'>[attack_message]</span>", \
|
||||
visible_message("<span class='danger'>[attack_message]</span>",\
|
||||
"<span class='userdanger'>[attack_message]</span>", null, COMBAT_MESSAGE_RANGE)
|
||||
return 1
|
||||
return 1
|
||||
|
||||
+49
-28
@@ -11,7 +11,7 @@
|
||||
attack_verb = list("poked", "jabbed", "hit")
|
||||
light_color = "#37FFF7"
|
||||
var/light_brightness = 3
|
||||
actions_types = list(/datum/action/item_action/pick_color)
|
||||
actions_types = list()
|
||||
|
||||
/obj/item/toy/sword/cx/attack_self(mob/user)
|
||||
active = !( active )
|
||||
@@ -57,18 +57,21 @@
|
||||
var/mob/M = loc
|
||||
M.update_inv_hands()
|
||||
|
||||
/obj/item/toy/sword/cx/ui_action_click(mob/user, var/datum/action/A)
|
||||
if(istype(A, /datum/action/item_action/pick_color))
|
||||
if(alert("Are you sure you want to recolor your blade?", "Confirm Repaint", "Yes", "No") == "Yes")
|
||||
var/energy_color_input = input(usr,"Choose Energy Color") as color|null
|
||||
if(energy_color_input)
|
||||
light_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1)
|
||||
update_icon()
|
||||
update_light()
|
||||
A.UpdateButtonIcon()
|
||||
/obj/item/toy/sword/cx/AltClick(mob/living/user)
|
||||
if(user.incapacitated() || !istype(user))
|
||||
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
||||
return
|
||||
if(!in_range(src, user))
|
||||
return
|
||||
if(user.incapacitated() || !istype(user) || !in_range(src, user))
|
||||
return
|
||||
|
||||
else
|
||||
..()
|
||||
if(alert("Are you sure you want to recolor your blade?", "Confirm Repaint", "Yes", "No") == "Yes")
|
||||
var/energy_color_input = input(usr,"Choose Energy Color") as color|null
|
||||
if(energy_color_input)
|
||||
light_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1)
|
||||
update_icon()
|
||||
update_light()
|
||||
|
||||
/obj/item/toy/sword/cx/worn_overlays(isinhands, icon_file)
|
||||
. = ..()
|
||||
@@ -79,7 +82,21 @@
|
||||
. += blade_inhand
|
||||
|
||||
/obj/item/toy/sword/cx/attackby(obj/item/W, mob/living/user, params)
|
||||
return //NO MORE MAKING DUAL ESWORDS
|
||||
if(istype(W, /obj/item/toy/sword/cx))
|
||||
if((W.flags_1 & NODROP_1) || (flags_1 & NODROP_1))
|
||||
to_chat(user, "<span class='warning'>\the [flags_1 & NODROP_1 ? src : W] is stuck to your hand, you can't attach it to \the [flags_1 & NODROP_1 ? W : src]!</span>")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You combine the two plastic swords, making a single supermassive toy! You're fake-cool.</span>")
|
||||
new /obj/item/twohanded/hypereutactic/toy(user.loc)
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/toy/sword/cx/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>Alt-click to recolor it.</span>")
|
||||
|
||||
/*///autolathe memes/// I really need to stop doing this and find a proper way of adding in my toys
|
||||
|
||||
@@ -124,7 +141,7 @@
|
||||
origin_tech = "combat=3;magnets=4"
|
||||
block_chance = 60
|
||||
light_color = "#37FFF7"
|
||||
actions_types = list(/datum/action/item_action/pick_color)
|
||||
actions_types = list()
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/cx/transform_weapon(mob/living/user, supress_message_text)
|
||||
active = !active //I'd use a ..() here but it'd inherit from the regular esword's proc instead, so SPAGHETTI CODE
|
||||
@@ -152,9 +169,6 @@
|
||||
update_icon()
|
||||
transform_messages(user, supress_message_text)
|
||||
add_fingerprint(user)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
return TRUE
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/cx/transform_messages(mob/living/user, supress_message_text)
|
||||
@@ -181,18 +195,25 @@
|
||||
var/mob/M = loc
|
||||
M.update_inv_hands()
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/cx/ui_action_click(mob/user, var/datum/action/A)
|
||||
if(istype(A, /datum/action/item_action/pick_color))
|
||||
if(alert("Are you sure you want to recolor your blade?", "Confirm Repaint", "Yes", "No") == "Yes")
|
||||
var/energy_color_input = input(usr,"Choose Energy Color") as color|null
|
||||
if(energy_color_input)
|
||||
light_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1)
|
||||
update_icon()
|
||||
update_light()
|
||||
A.UpdateButtonIcon()
|
||||
/obj/item/melee/transforming/energy/sword/cx/AltClick(mob/living/user)
|
||||
if(user.incapacitated() || !istype(user))
|
||||
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
||||
return
|
||||
if(!in_range(src, user))
|
||||
return
|
||||
if(user.incapacitated() || !istype(user) || !in_range(src, user))
|
||||
return
|
||||
|
||||
else
|
||||
..()
|
||||
if(alert("Are you sure you want to recolor your blade?", "Confirm Repaint", "Yes", "No") == "Yes")
|
||||
var/energy_color_input = input(usr,"Choose Energy Color") as color|null
|
||||
if(energy_color_input)
|
||||
light_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1)
|
||||
update_icon()
|
||||
update_light()
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/cx/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>Alt-click to recolor it.</span>")
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/cx/worn_overlays(isinhands, icon_file)
|
||||
. = ..()
|
||||
|
||||
@@ -16,17 +16,20 @@
|
||||
/obj/item/clothing/neck/cloak/inferno
|
||||
name = "Kiara's Cloak"
|
||||
desc = "The design on this seems a little too familiar."
|
||||
icon = 'icons/obj/clothing/cloaks.dmi'
|
||||
icon_state = "infcloak"
|
||||
item_state = "infcloak"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "infcloak-i"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
item_state = "infcloak-w"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
|
||||
/obj/item/clothing/neck/petcollar/inferno
|
||||
name = "Kiara's Collar"
|
||||
desc = "A soft black collar that seems to stretch to fit whoever wears it."
|
||||
icon_state = "infcollar"
|
||||
item_state = "infcollar"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "infcollar-i"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
item_state = "infcollar-w"
|
||||
item_color = null
|
||||
tagname = null
|
||||
|
||||
@@ -43,7 +46,7 @@
|
||||
/obj/item/lighter/gold
|
||||
name = "\improper Engraved Zippo"
|
||||
desc = "A shiny and relatively expensive zippo lighter. There's a small etched in verse on the bottom that reads, 'No Gods, No Masters, Only Man.'"
|
||||
icon = 'icons/obj/cigarettes.dmi'
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "gold_zippo"
|
||||
item_state = "gold_zippo"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
@@ -58,16 +61,20 @@
|
||||
|
||||
/obj/item/clothing/neck/scarf/zomb //Default white color, same functionality as beanies.
|
||||
name = "A special scarf"
|
||||
icon_state = "zombscarf"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "zombscarf-i"
|
||||
desc = "A fashionable collar"
|
||||
item_color = "zombscarf"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
item_color = "zombscarf-w"
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/suit/toggle/labcoat/mad/red
|
||||
name = "\improper The Mad's labcoat"
|
||||
desc = "An oddly special looking coat."
|
||||
icon_state = "labred"
|
||||
item_state = "labred"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "labred-i"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
item_state = "labred-w"
|
||||
|
||||
|
||||
/*PLACEHOLDER*/
|
||||
@@ -86,17 +93,17 @@
|
||||
/obj/item/clothing/neck/cloak/carrot
|
||||
name = "carrot cloak"
|
||||
desc = "A cloak in the shape and color of a carrot!"
|
||||
icon = 'icons/obj/clothing/cloaks.dmi'
|
||||
icon_override = 'icons/mob/citadel/suit.dmi'
|
||||
icon_state = "carrotcloak"
|
||||
item_state = "carrotcloak"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
icon_state = "carrotcloak-i"
|
||||
item_state = "carrotcloak-w"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
|
||||
/obj/item/toy/plush/tree
|
||||
name = "christmass tree plushie"
|
||||
desc = "A festive plush that squeeks when you squeeze it!"
|
||||
icon = 'icons/obj/plushes.dmi'
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "pine_c"
|
||||
item_state = "pine_c"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
@@ -107,10 +114,10 @@
|
||||
/obj/item/clothing/neck/cloak/festive
|
||||
name = "Celebratory Cloak of Morozko"
|
||||
desc = " It probably will protect from snow, charcoal or elves."
|
||||
icon = 'icons/obj/clothing/cloaks.dmi'
|
||||
icon_override = 'icons/mob/citadel/suit.dmi'
|
||||
icon_state = "festivecloak"
|
||||
item_state = "festiveloak"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "festive-i"
|
||||
item_state = "festive-w"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
|
||||
@@ -119,9 +126,10 @@
|
||||
|
||||
/obj/item/clothing/mask/luchador/zigfie
|
||||
name = "Alboroto Rosa mask"
|
||||
icon = 'icons/mob/mask.dmi'
|
||||
icon_state = "lucharzigfie"
|
||||
item_state = "lucharzigfie"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "lucharzigfie-i"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
item_state = "lucharzigfie-w"
|
||||
|
||||
|
||||
/*PLACEHOLDER*/
|
||||
@@ -159,8 +167,10 @@
|
||||
/obj/item/clothing/suit/trenchcoat/green
|
||||
name = "Reece's Great Coat"
|
||||
desc = "You would swear this was in your nightmares after eating too many veggies."
|
||||
icon_state = "hos-g"
|
||||
item_state = "hos-g"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "hos-g-i"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
item_state = "hos-g-w"
|
||||
body_parts_covered = CHEST|GROIN|ARMS|LEGS
|
||||
|
||||
|
||||
@@ -170,14 +180,15 @@
|
||||
desc = "Every good russian spaceman knows it's a good idea to bring along a couple of pints of whiskey wherever they go."
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "russianflask"
|
||||
item_state = "russianflask"
|
||||
volume = 60
|
||||
|
||||
/obj/item/clothing/mask/gas/stalker
|
||||
name = "S.T.A.L.K.E.R. mask"
|
||||
desc = "Smells like reactor four."
|
||||
item_state = "stalker"
|
||||
icon_state = "stalker"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
item_state = "stalker-w"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
icon_state = "stalker-i"
|
||||
|
||||
|
||||
/*Sylas*/
|
||||
@@ -185,8 +196,9 @@
|
||||
name = "collar"
|
||||
desc = "It's a collar..."
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "petcollar-stripe"
|
||||
item_color = "petcollar-stripe"
|
||||
icon_state = "petcollar-stripe-i"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
item_state = "petcollar-stripe-w"
|
||||
tagname = null
|
||||
|
||||
|
||||
@@ -194,17 +206,21 @@
|
||||
/obj/item/clothing/under/singery/custom
|
||||
name = "bluish performer's outfit"
|
||||
desc = "Just looking at this makes you want to sing."
|
||||
icon_state = "ssing"
|
||||
item_state = "ssing"
|
||||
item_color = "ssing"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "singer-i"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
item_state = "singer-w"
|
||||
item_color = "singer-i"
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
alternate_worn_layer = ABOVE_SHOES_LAYER
|
||||
can_adjust = 0
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/pink
|
||||
icon_state = "pink"
|
||||
item_state = "pink"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "pink-i"
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
item_state = "pink-w"
|
||||
|
||||
|
||||
/*Fractious*/
|
||||
@@ -212,10 +228,8 @@
|
||||
/obj/item/clothing/suit/vermillion
|
||||
name = "vermillion clothing"
|
||||
desc = "Some clothing."
|
||||
icon_state = "vermillion-w"
|
||||
item_state = "vermillion-i"
|
||||
icon_state = "vermillion-i"
|
||||
item_state = "vermillion-w"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
|
||||
|
||||
|
||||
icon_override = 'icons/obj/custom.dmi'
|
||||
|
||||
@@ -168,7 +168,10 @@ GLOBAL_PROTECT(config_dir)
|
||||
mode_names[M.config_tag] = M.name
|
||||
probabilities[M.config_tag] = M.probability
|
||||
mode_reports[M.config_tag] = M.generate_report()
|
||||
mode_false_report_weight[M.config_tag] = M.false_report_weight
|
||||
if(M.probability)
|
||||
mode_false_report_weight[M.config_tag] = M.false_report_weight
|
||||
else
|
||||
mode_false_report_weight[M.config_tag] = 1
|
||||
if(M.votable)
|
||||
votable_modes += M.config_tag
|
||||
qdel(M)
|
||||
|
||||
@@ -208,9 +208,9 @@ CONFIG_DEF(string/panic_server_name)
|
||||
/datum/config_entry/string/panic_server_name/ValidateAndSet(str_val)
|
||||
return str_val != "\[Put the name here\]" && ..()
|
||||
|
||||
CONFIG_DEF(string/panic_address) //Reconnect a player this linked server if this server isn't accepting new players
|
||||
CONFIG_DEF(string/panic_server_address) //Reconnect a player this linked server if this server isn't accepting new players
|
||||
|
||||
/datum/config_entry/string/panic_address/ValidateAndSet(str_val)
|
||||
/datum/config_entry/string/panic_server_address/ValidateAndSet(str_val)
|
||||
return str_val != "byond://address:port" && ..()
|
||||
|
||||
CONFIG_DEF(string/invoke_youtubedl)
|
||||
@@ -377,7 +377,7 @@ CONFIG_TWEAK(number/mc_tick_rate/ValidateAndSet(str_val))
|
||||
|
||||
CONFIG_DEF(flag/resume_after_initializations)
|
||||
|
||||
CONFIG_TWEAK(flag/ValidateAndSet(str_val))
|
||||
CONFIG_TWEAK(flag/resume_after_initializations/ValidateAndSet(str_val))
|
||||
. = ..()
|
||||
if(. && Master.current_runlevel)
|
||||
world.sleep_offline = !value
|
||||
@@ -385,3 +385,6 @@ CONFIG_TWEAK(flag/ValidateAndSet(str_val))
|
||||
CONFIG_DEF(number/rounds_until_hard_restart)
|
||||
value = -1
|
||||
min_val = 0
|
||||
|
||||
CONFIG_DEF(string/default_view)
|
||||
value = "15x15"
|
||||
|
||||
@@ -263,4 +263,4 @@ CONFIG_DEF(number/emergency_shuttle_autocall_threshold)
|
||||
max_val = 1
|
||||
integer = FALSE
|
||||
|
||||
CONFIG_DEF(flag/ic_printing)
|
||||
CONFIG_DEF(flag/ic_printing)
|
||||
|
||||
@@ -45,7 +45,14 @@ SUBSYSTEM_DEF(blackbox)
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/blackbox/vv_edit_var(var_name, var_value)
|
||||
return FALSE
|
||||
switch(var_name)
|
||||
if("feedback")
|
||||
return FALSE
|
||||
if("sealed")
|
||||
if(var_value)
|
||||
return Seal()
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/blackbox/Shutdown()
|
||||
sealed = FALSE
|
||||
@@ -76,11 +83,12 @@ SUBSYSTEM_DEF(blackbox)
|
||||
|
||||
/datum/controller/subsystem/blackbox/proc/Seal()
|
||||
if(sealed)
|
||||
return
|
||||
return FALSE
|
||||
if(IsAdminAdvancedProcCall())
|
||||
message_admins("[key_name_admin(usr)] sealed the blackbox!")
|
||||
log_game("Blackbox sealed[IsAdminAdvancedProcCall() ? " by [key_name(usr)]" : ""].")
|
||||
sealed = TRUE
|
||||
return TRUE
|
||||
|
||||
/datum/controller/subsystem/blackbox/proc/log_research(tech, level)
|
||||
if(!(tech in research_levels) || research_levels[tech] < level)
|
||||
|
||||
@@ -44,6 +44,9 @@ SUBSYSTEM_DEF(shuttle)
|
||||
var/list/requestlist = list()
|
||||
var/list/orderhistory = list()
|
||||
|
||||
var/list/hidden_shuttle_turfs = list() //all turfs hidden from navigation computers associated with a list containing the image hiding them and the type of the turf they are pretending to be
|
||||
var/list/hidden_shuttle_turf_images = list() //only the images from the above list
|
||||
|
||||
var/datum/round_event/shuttle_loan/shuttle_loan
|
||||
|
||||
var/shuttle_purchased = FALSE //If the station has purchased a replacement escape shuttle this round
|
||||
@@ -648,4 +651,40 @@ SUBSYSTEM_DEF(shuttle)
|
||||
var/list/xs = overlap[1]
|
||||
var/list/ys = overlap[2]
|
||||
if(xs.len && ys.len)
|
||||
.[port] = overlap
|
||||
.[port] = overlap
|
||||
|
||||
/datum/controller/subsystem/shuttle/proc/update_hidden_docking_ports(list/remove_turfs, list/add_turfs)
|
||||
var/list/remove_images = list()
|
||||
var/list/add_images = list()
|
||||
|
||||
if(remove_turfs)
|
||||
for(var/T in remove_turfs)
|
||||
var/list/L = hidden_shuttle_turfs[T]
|
||||
if(L)
|
||||
remove_images += L[1]
|
||||
hidden_shuttle_turfs -= remove_turfs
|
||||
|
||||
if(add_turfs)
|
||||
for(var/V in add_turfs)
|
||||
var/turf/T = V
|
||||
var/image/I
|
||||
if(remove_images.len)
|
||||
//we can just reuse any images we are about to delete instead of making new ones
|
||||
I = remove_images[1]
|
||||
remove_images.Cut(1, 2)
|
||||
I.loc = T
|
||||
else
|
||||
I = image(loc = T)
|
||||
add_images += I
|
||||
I.appearance = T.appearance
|
||||
I.override = TRUE
|
||||
hidden_shuttle_turfs[T] = list(I, T.type)
|
||||
|
||||
hidden_shuttle_turf_images -= remove_images
|
||||
hidden_shuttle_turf_images += add_images
|
||||
|
||||
for(var/V in GLOB.navigation_computers)
|
||||
var/obj/machinery/computer/camera_advanced/shuttle_docker/C = V
|
||||
C.update_hidden_docking_ports(remove_images, add_images)
|
||||
|
||||
QDEL_LIST(remove_images)
|
||||
|
||||
@@ -33,8 +33,8 @@ SUBSYSTEM_DEF(ticker)
|
||||
SCRIPTURE_APPLICATION = FALSE) //list of clockcult scripture states for announcements
|
||||
|
||||
var/delay_end = 0 //if set true, the round will not restart on it's own
|
||||
|
||||
var/admin_delay_notice = "" //a message to display to anyone who tries to restart the world after a delay
|
||||
var/ready_for_reboot = FALSE //all roundend preparation done with, all that's left is reboot
|
||||
|
||||
var/triai = 0 //Global holder for Triumvirate
|
||||
var/tipped = 0 //Did we broadcast the tip of the day yet?
|
||||
@@ -584,10 +584,17 @@ SUBSYSTEM_DEF(ticker)
|
||||
SSblackbox.Seal()
|
||||
|
||||
sleep(50)
|
||||
if(mode.station_was_nuked)
|
||||
Reboot("Station destroyed by Nuclear Device.", "nuke")
|
||||
ready_for_reboot = TRUE
|
||||
standard_reboot()
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/standard_reboot()
|
||||
if(ready_for_reboot)
|
||||
if(mode.station_was_nuked)
|
||||
Reboot("Station destroyed by Nuclear Device.", "nuke")
|
||||
else
|
||||
Reboot("Round ended.", "proper completion")
|
||||
else
|
||||
Reboot("Round ended.", "proper completion")
|
||||
CRASH("Attempted standard reboot without ticker roundend completion")
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/send_tip_of_the_round()
|
||||
var/m
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
SUBSYSTEM_DEF(traumas)
|
||||
name = "Traumas"
|
||||
flags = SS_NO_FIRE
|
||||
var/list/phobia_types
|
||||
var/list/phobia_words
|
||||
var/list/phobia_mobs
|
||||
var/list/phobia_objs
|
||||
var/list/phobia_turfs
|
||||
var/list/phobia_species
|
||||
|
||||
#define PHOBIA_FILE "phobia.json"
|
||||
|
||||
/datum/controller/subsystem/traumas/Initialize()
|
||||
phobia_types = list("spiders", "space", "security", "clowns", "greytide", "lizards", "skeletons")
|
||||
|
||||
phobia_words = list("spiders" = strings(PHOBIA_FILE, "spiders"),
|
||||
"space" = strings(PHOBIA_FILE, "space"),
|
||||
"security" = strings(PHOBIA_FILE, "security"),
|
||||
"clowns" = strings(PHOBIA_FILE, "clowns"),
|
||||
"greytide" = strings(PHOBIA_FILE, "greytide"),
|
||||
"lizards" = strings(PHOBIA_FILE, "lizards"),
|
||||
"skeletons" = strings(PHOBIA_FILE, "skeletons"),
|
||||
)
|
||||
|
||||
phobia_mobs = list("spiders" = typecacheof(list(/mob/living/simple_animal/hostile/poison/giant_spider)),
|
||||
"security" = typecacheof(list(/mob/living/simple_animal/bot/secbot)),
|
||||
"lizards" = typecacheof(list(/mob/living/simple_animal/hostile/lizard))
|
||||
)
|
||||
|
||||
phobia_objs = list("spiders" = typecacheof(list(/obj/structure/spider)),
|
||||
"security" = typecacheof(list(/obj/item/clothing/under/rank/security, /obj/item/clothing/under/rank/warden,
|
||||
/obj/item/clothing/under/rank/head_of_security, /obj/item/clothing/under/rank/det,
|
||||
/obj/item/melee/baton, /obj/item/gun/energy/taser, /obj/item/restraints/handcuffs,
|
||||
/obj/machinery/door/airlock/security)),
|
||||
"clowns" = typecacheof(list(/obj/item/clothing/under/rank/clown, /obj/item/clothing/shoes/clown_shoes,
|
||||
/obj/item/clothing/mask/gas/clown_hat, /obj/item/device/instrument/bikehorn,
|
||||
/obj/item/device/pda/clown, /obj/item/grown/bananapeel)),
|
||||
"greytide" = typecacheof(list(/obj/item/clothing/under/color/grey, /obj/item/melee/baton/cattleprod,
|
||||
/obj/item/twohanded/spear, /obj/item/clothing/mask/gas)),
|
||||
"lizards" = typecacheof(list(/obj/item/toy/plush/lizardplushie, /obj/item/reagent_containers/food/snacks/kebab/tail,
|
||||
/obj/item/organ/tail/lizard, /obj/item/reagent_containers/food/drinks/bottle/lizardwine)),
|
||||
"skeletons" = typecacheof(list(/obj/item/organ/tongue/bone, /obj/item/clothing/suit/armor/bone, /obj/item/stack/sheet/bone,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton,
|
||||
/obj/effect/decal/remains/human))
|
||||
)
|
||||
phobia_turfs = list("space" = typecacheof(list(/turf/open/space, /turf/open/floor/holofloor/space, /turf/open/floor/fakespace)))
|
||||
|
||||
phobia_species = list("lizards" = typecacheof(list(/datum/species/lizard)),
|
||||
"skeletons" = typecacheof(list(/datum/species/skeleton, /datum/species/plasmaman))
|
||||
)
|
||||
|
||||
#undef PHOBIA_FILE
|
||||
@@ -41,5 +41,14 @@ SUBSYSTEM_DEF(weather)
|
||||
if(W.name == weather_name && W.target_z == Z)
|
||||
W.telegraph()
|
||||
|
||||
/datum/controller/subsystem/weather/proc/is_weather_affecting_area(area/A, weather_datum_type)
|
||||
for(var/V in processing)
|
||||
var/datum/weather/W = V
|
||||
if(!istype(W, weather_datum_type))
|
||||
continue
|
||||
if(A in W.impacted_areas)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/controller/subsystem/weather/proc/make_z_eligible(zlevel)
|
||||
eligible_zlevels |= zlevel
|
||||
|
||||
+19
-1
@@ -43,10 +43,27 @@
|
||||
return
|
||||
Remove(owner)
|
||||
owner = M
|
||||
|
||||
//button id generation
|
||||
var/counter = 0
|
||||
var/bitfield = 0
|
||||
for(var/datum/action/A in M.actions)
|
||||
if(A.name == name && A.button.id)
|
||||
counter += 1
|
||||
bitfield |= A.button.id
|
||||
bitfield = ~bitfield
|
||||
var/bitflag = 1
|
||||
for(var/i in 1 to (counter + 1))
|
||||
if(bitfield & bitflag)
|
||||
button.id = bitflag
|
||||
break
|
||||
bitflag *= 2
|
||||
|
||||
M.actions += src
|
||||
if(M.client)
|
||||
M.client.screen += button
|
||||
button.locked = M.client.prefs.buttons_locked
|
||||
button.locked = M.client.prefs.buttons_locked || button.id ? M.client.prefs.action_buttons_screen_locs["[name]_[button.id]"] : FALSE //even if it's not defaultly locked we should remember we locked it before
|
||||
button.moved = button.id ? M.client.prefs.action_buttons_screen_locs["[name]_[button.id]"] : FALSE
|
||||
M.update_action_buttons()
|
||||
else
|
||||
Remove(owner)
|
||||
@@ -60,6 +77,7 @@
|
||||
owner = null
|
||||
button.moved = FALSE //so the button appears in its normal position when given to another owner.
|
||||
button.locked = FALSE
|
||||
button.id = null
|
||||
|
||||
/datum/action/proc/Trigger()
|
||||
if(!IsAvailable())
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
var/datum/objective/escape/escape_objective = new
|
||||
escape_objective.owner = owner
|
||||
objectives += escape_objective
|
||||
|
||||
|
||||
if(31 to 60)
|
||||
var/datum/objective/steal/steal_objective = new
|
||||
steal_objective.owner = owner
|
||||
@@ -103,8 +103,8 @@
|
||||
if (!(locate(/datum/objective/hijack) in owner.objectives))
|
||||
var/datum/objective/hijack/hijack_objective = new
|
||||
hijack_objective.owner = owner
|
||||
objectives += hijack_objective
|
||||
|
||||
objectives += hijack_objective
|
||||
|
||||
for(var/datum/objective/O in objectives)
|
||||
owner.objectives += O
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
if(H.age < wiz_age)
|
||||
H.age = wiz_age
|
||||
H.equipOutfit(outfit_type)
|
||||
|
||||
|
||||
/datum/antagonist/wizard/greet()
|
||||
to_chat(owner, "<span class='boldannounce'>You are the Space Wizard!</span>")
|
||||
to_chat(owner, "<B>The Space Wizards Federation has given you the following tasks:</B>")
|
||||
@@ -208,7 +208,7 @@
|
||||
owner.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null))
|
||||
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/mind_transfer(null))
|
||||
to_chat(owner, "<B>Your service has not gone unrewarded, however. Studying under [master.current.real_name], you have learned stealthy, robeless spells. You are able to cast knock and mindswap.")
|
||||
|
||||
|
||||
/datum/antagonist/wizard/apprentice/create_objectives()
|
||||
var/datum/objective/protect/new_objective = new /datum/objective/protect
|
||||
new_objective.owner = owner
|
||||
@@ -221,6 +221,7 @@
|
||||
/datum/antagonist/wizard/apprentice/imposter
|
||||
name = "Wizard Imposter"
|
||||
allow_rename = FALSE
|
||||
move_to_lair = FALSE
|
||||
|
||||
/datum/antagonist/wizard/apprentice/imposter/greet()
|
||||
to_chat(owner, "<B>You are an imposter! Trick and confuse the crew to misdirect malice from your handsome original!</B>")
|
||||
@@ -266,7 +267,7 @@
|
||||
|
||||
/datum/antagonist/wizard/academy/equip_wizard()
|
||||
. = ..()
|
||||
|
||||
|
||||
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt)
|
||||
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile)
|
||||
owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball)
|
||||
@@ -274,7 +275,7 @@
|
||||
var/mob/living/M = owner.current
|
||||
if(!istype(M))
|
||||
return
|
||||
|
||||
|
||||
var/obj/item/implant/exile/Implant = new/obj/item/implant/exile(M)
|
||||
Implant.implant(M)
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
//Brain Traumas are the new actual brain damage. Brain damage itself acts as a way to acquire traumas: every time brain damage is dealt, there's a chance of receiving a trauma.
|
||||
//This chance gets higher the higher the mob's brainloss is. Removing traumas is a separate thing from removing brain damage: you can get restored to full brain operativity,
|
||||
//but keep the quirks, until repaired by mannitol (for mild/special ones) or brain surgery (for severe ones).
|
||||
/datum/brain_trauma
|
||||
var/name = "Brain Trauma"
|
||||
var/desc = "A trauma caused by brain damage, which causes issues to the patient."
|
||||
var/scan_desc = "a generic brain trauma" //description when detected by a health scanner
|
||||
var/mob/living/carbon/owner //the poor bastard
|
||||
var/obj/item/organ/brain/brain //the poor bastard's brain
|
||||
var/gain_text = "<span class='notice'>You feel traumatized.</span>"
|
||||
var/lose_text = "<span class='notice'>You no longer feel traumatized.</span>"
|
||||
var/can_gain = TRUE //can this be gained through random traumas?
|
||||
var/permanent = FALSE //can this be cured?
|
||||
|
||||
/datum/brain_trauma/New(obj/item/organ/brain/B, _permanent)
|
||||
brain = B
|
||||
owner = B.owner
|
||||
permanent = _permanent
|
||||
if(owner)
|
||||
on_gain()
|
||||
|
||||
/datum/brain_trauma/Destroy()
|
||||
brain.traumas -= src
|
||||
if(owner)
|
||||
on_lose()
|
||||
brain = null
|
||||
owner = null
|
||||
return ..()
|
||||
|
||||
//Called on life ticks
|
||||
/datum/brain_trauma/proc/on_life()
|
||||
return
|
||||
|
||||
//Called when given to a mob
|
||||
/datum/brain_trauma/proc/on_gain()
|
||||
to_chat(owner, gain_text)
|
||||
|
||||
//Called when removed from a mob
|
||||
/datum/brain_trauma/proc/on_lose(silent)
|
||||
if(!silent)
|
||||
to_chat(owner, lose_text)
|
||||
|
||||
//Called when hearing a spoken message
|
||||
/datum/brain_trauma/proc/on_hear(message, speaker, message_language, raw_message, radio_freq)
|
||||
return message
|
||||
|
||||
//Called when speaking
|
||||
/datum/brain_trauma/proc/on_say(message)
|
||||
return message
|
||||
@@ -0,0 +1,135 @@
|
||||
//Mild traumas are the most common; they are generally minor annoyances.
|
||||
//They can be cured with mannitol and patience, although brain surgery still works.
|
||||
//Most of the old brain damage effects have been transferred to the dumbness trauma.
|
||||
|
||||
/datum/brain_trauma/mild
|
||||
|
||||
/datum/brain_trauma/mild/hallucinations
|
||||
name = "Hallucinations"
|
||||
desc = "Patient suffers constant hallucinations."
|
||||
scan_desc = "schizophrenia"
|
||||
gain_text = "<span class='warning'>You feel your grip on reality slipping...</span>"
|
||||
lose_text = "<span class='notice'>You feel more grounded.</span>"
|
||||
|
||||
/datum/brain_trauma/mild/hallucinations/on_life()
|
||||
owner.hallucination = min(owner.hallucination + 10, 50)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/hallucinations/on_lose()
|
||||
owner.hallucination = 0
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/stuttering
|
||||
name = "Stuttering"
|
||||
desc = "Patient can't speak properly."
|
||||
scan_desc = "reduced mouth coordination"
|
||||
gain_text = "<span class='warning'>Speaking clearly is getting harder.</span>"
|
||||
lose_text = "<span class='notice'>You feel in control of your speech.</span>"
|
||||
|
||||
/datum/brain_trauma/mild/stuttering/on_life()
|
||||
owner.stuttering = min(owner.stuttering + 5, 25)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/stuttering/on_lose()
|
||||
owner.stuttering = 0
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/dumbness
|
||||
name = "Dumbness"
|
||||
desc = "Patient has reduced brain activity, making them less intelligent."
|
||||
scan_desc = "reduced brain activity"
|
||||
gain_text = "<span class='warning'>You feel dumber.</span>"
|
||||
lose_text = "<span class='notice'>You feel smart again.</span>"
|
||||
|
||||
/datum/brain_trauma/mild/dumbness/on_gain()
|
||||
owner.disabilities |= DUMB
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/dumbness/on_life()
|
||||
owner.derpspeech = min(owner.derpspeech + 5, 25)
|
||||
if(prob(3))
|
||||
owner.emote("drool")
|
||||
else if(owner.stat == CONSCIOUS && prob(3))
|
||||
owner.say(pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage"))
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/dumbness/on_lose()
|
||||
owner.disabilities &= ~DUMB
|
||||
owner.derpspeech = 0
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/speech_impediment
|
||||
name = "Speech Impediment"
|
||||
desc = "Patient is unable to form coherent sentences."
|
||||
scan_desc = "communication disorder"
|
||||
gain_text = "" //mutation will handle the text
|
||||
lose_text = ""
|
||||
|
||||
/datum/brain_trauma/mild/speech_impediment/on_gain()
|
||||
owner.dna.add_mutation(UNINTELLIGIBLE)
|
||||
..()
|
||||
|
||||
//no fiddling with genetics to get out of this one
|
||||
/datum/brain_trauma/mild/speech_impediment/on_life()
|
||||
if(!(GLOB.mutations_list[UNINTELLIGIBLE] in owner.dna.mutations))
|
||||
on_gain()
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/speech_impediment/on_lose()
|
||||
owner.dna.remove_mutation(UNINTELLIGIBLE)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/concussion
|
||||
name = "Concussion"
|
||||
desc = "Patient's brain is concussed."
|
||||
scan_desc = "a concussion"
|
||||
gain_text = "<span class='warning'>Your head hurts!</span>"
|
||||
lose_text = "<span class='notice'>The pressure inside your head starts fading.</span>"
|
||||
|
||||
/datum/brain_trauma/mild/concussion/on_life()
|
||||
if(prob(5))
|
||||
switch(rand(1,11))
|
||||
if(1)
|
||||
owner.vomit()
|
||||
if(2,3)
|
||||
owner.dizziness += 10
|
||||
if(4,5)
|
||||
owner.confused += 10
|
||||
owner.blur_eyes(10)
|
||||
if(6 to 9)
|
||||
owner.slurring += 30
|
||||
if(10)
|
||||
to_chat(owner, "<span class='notice'>You forget for a moment what you were doing.</span>")
|
||||
owner.Stun(20)
|
||||
if(11)
|
||||
to_chat(owner, "<span class='warning'>You faint.</span>")
|
||||
owner.Unconscious(80)
|
||||
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/muscle_weakness
|
||||
name = "Muscle Weakness"
|
||||
desc = "Patient experiences occasional bouts of muscle weakness."
|
||||
scan_desc = "weak motor nerve signal"
|
||||
gain_text = "<span class='warning'>Your muscles feel oddly faint.</span>"
|
||||
lose_text = "<span class='notice'>You feel in control of your muscles again.</span>"
|
||||
|
||||
/datum/brain_trauma/mild/muscle_weakness/on_life()
|
||||
var/fall_chance = 1
|
||||
if(owner.m_intent == MOVE_INTENT_RUN)
|
||||
fall_chance += 2
|
||||
if(prob(fall_chance) && !owner.lying && !owner.buckled)
|
||||
to_chat(owner, "<span class='warning'>Your leg gives out!</span>")
|
||||
owner.Knockdown(35)
|
||||
|
||||
else if(owner.get_active_held_item())
|
||||
var/drop_chance = 1
|
||||
var/obj/item/I = owner.get_active_held_item()
|
||||
drop_chance += I.w_class
|
||||
if(prob(drop_chance) && owner.dropItemToGround(I))
|
||||
to_chat(owner, "<span class='warning'>You drop [I]!</span>")
|
||||
|
||||
else if(prob(3))
|
||||
to_chat(owner, "<span class='warning'>You feel a sudden weakness in your muscles!</span>")
|
||||
owner.adjustStaminaLoss(50)
|
||||
..()
|
||||
@@ -0,0 +1,115 @@
|
||||
/datum/brain_trauma/mild/phobia
|
||||
name = "Phobia"
|
||||
desc = "Patient is unreasonably afraid of something."
|
||||
scan_desc = "phobia"
|
||||
gain_text = ""
|
||||
lose_text = ""
|
||||
var/phobia_type
|
||||
var/next_check = 0
|
||||
var/next_scare = 0
|
||||
var/list/trigger_words
|
||||
//instead of cycling every atom, only cycle the relevant types
|
||||
var/list/trigger_mobs
|
||||
var/list/trigger_objs //also checked in mob equipment
|
||||
var/list/trigger_turfs
|
||||
var/list/trigger_species
|
||||
|
||||
/datum/brain_trauma/mild/phobia/New(mob/living/carbon/C, _permanent, specific_type)
|
||||
phobia_type = specific_type
|
||||
if(!phobia_type)
|
||||
phobia_type = pick(SStraumas.phobia_types)
|
||||
|
||||
gain_text = "<span class='warning'>You start finding [phobia_type] very unnerving...</span>"
|
||||
lose_text = "<span class='notice'>You no longer feel afraid of [phobia_type].</span>"
|
||||
scan_desc += " of [phobia_type]"
|
||||
trigger_words = SStraumas.phobia_words[phobia_type]
|
||||
trigger_mobs = SStraumas.phobia_mobs[phobia_type]
|
||||
trigger_objs = SStraumas.phobia_objs[phobia_type]
|
||||
trigger_turfs = SStraumas.phobia_turfs[phobia_type]
|
||||
trigger_species = SStraumas.phobia_species[phobia_type]
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/mild/phobia/on_life()
|
||||
..()
|
||||
if(owner.eye_blind)
|
||||
return
|
||||
if(world.time > next_check && world.time > next_scare)
|
||||
next_check = world.time + 50
|
||||
var/list/seen_atoms = view(7, owner)
|
||||
|
||||
if(LAZYLEN(trigger_objs))
|
||||
for(var/obj/O in seen_atoms)
|
||||
if(is_type_in_typecache(O, trigger_objs))
|
||||
freak_out(O)
|
||||
return
|
||||
|
||||
if(LAZYLEN(trigger_turfs))
|
||||
for(var/turf/T in seen_atoms)
|
||||
if(is_type_in_typecache(T, trigger_turfs))
|
||||
freak_out(T)
|
||||
return
|
||||
|
||||
if(LAZYLEN(trigger_mobs) || LAZYLEN(trigger_objs))
|
||||
for(var/mob/M in seen_atoms)
|
||||
if(is_type_in_typecache(M, trigger_mobs))
|
||||
freak_out(M)
|
||||
return
|
||||
|
||||
else if(ishuman(M)) //check their equipment for trigger items
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(LAZYLEN(trigger_species) && H.dna && H.dna.species && is_type_in_typecache(H.dna.species, trigger_species))
|
||||
freak_out(H)
|
||||
|
||||
for(var/X in H.get_all_slots() | H.held_items)
|
||||
var/obj/I = X
|
||||
if(!QDELETED(I) && is_type_in_typecache(I, trigger_objs))
|
||||
freak_out(I)
|
||||
return
|
||||
|
||||
/datum/brain_trauma/mild/phobia/on_hear(message, speaker, message_language, raw_message, radio_freq)
|
||||
if(owner.disabilities & DEAF || world.time < next_scare) //words can't trigger you if you can't hear them *taps head*
|
||||
return message
|
||||
for(var/word in trigger_words)
|
||||
if(findtext(message, word))
|
||||
addtimer(CALLBACK(src, .proc/freak_out, null, word), 10) //to react AFTER the chat message
|
||||
break
|
||||
return message
|
||||
|
||||
/datum/brain_trauma/mild/phobia/on_say(message)
|
||||
for(var/word in trigger_words)
|
||||
if(findtext(message, word))
|
||||
to_chat(owner, "<span class='warning'>You can't bring yourself to say the word \"[word]\"!</span>")
|
||||
return ""
|
||||
return message
|
||||
|
||||
/datum/brain_trauma/mild/phobia/proc/freak_out(atom/reason, trigger_word)
|
||||
next_scare = world.time + 120
|
||||
var/message = pick("spooks you to the bone", "shakes you up", "terrifies you", "sends you into a panic", "sends chills down your spine")
|
||||
if(reason)
|
||||
to_chat(owner, "<span class='userdanger'>Seeing [reason] [message]!</span>")
|
||||
else if(trigger_word)
|
||||
to_chat(owner, "<span class='userdanger'>Hearing \"[trigger_word]\" [message]!</span>")
|
||||
else
|
||||
to_chat(owner, "<span class='userdanger'>Something [message]!</span>")
|
||||
var/reaction = rand(1,4)
|
||||
switch(reaction)
|
||||
if(1)
|
||||
to_chat(owner, "<span class='warning'>You are paralyzed with fear!</span>")
|
||||
owner.Stun(70)
|
||||
owner.Jitter(8)
|
||||
if(2)
|
||||
owner.emote("scream")
|
||||
owner.Jitter(5)
|
||||
owner.say("AAAAH!!")
|
||||
if(reason)
|
||||
owner.pointed(reason)
|
||||
if(3)
|
||||
to_chat(owner, "<span class='warning'>You shut your eyes in terror!</span>")
|
||||
owner.Jitter(5)
|
||||
owner.blind_eyes(10)
|
||||
if(4)
|
||||
owner.dizziness += 10
|
||||
owner.confused += 10
|
||||
owner.Jitter(10)
|
||||
owner.stuttering += 10
|
||||
@@ -0,0 +1,179 @@
|
||||
//Severe traumas, when your brain gets abused way too much.
|
||||
//These range from very annoying to completely debilitating.
|
||||
//They cannot be cured with chemicals, and require brain surgery to solve.
|
||||
|
||||
/datum/brain_trauma/severe
|
||||
|
||||
/datum/brain_trauma/severe/mute
|
||||
name = "Mutism"
|
||||
desc = "Patient is completely unable to speak."
|
||||
scan_desc = "extensive damage to the brain's language center"
|
||||
gain_text = "<span class='warning'>You forget how to speak!</span>"
|
||||
lose_text = "<span class='notice'>You suddenly remember how to speak.</span>"
|
||||
|
||||
/datum/brain_trauma/severe/mute/on_gain()
|
||||
owner.disabilities |= MUTE
|
||||
..()
|
||||
|
||||
//no fiddling with genetics to get out of this one
|
||||
/datum/brain_trauma/severe/mute/on_life()
|
||||
if(!(owner.disabilities & MUTE))
|
||||
on_gain()
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/mute/on_lose()
|
||||
owner.disabilities &= ~MUTE
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/blindness
|
||||
name = "Cerebral Blindness"
|
||||
desc = "Patient's brain is no longer connected to its eyes."
|
||||
scan_desc = "extensive damage to the brain's occipital lobe"
|
||||
gain_text = "<span class='warning'>You can't see!</span>"
|
||||
lose_text = "<span class='notice'>Your vision returns.</span>"
|
||||
|
||||
/datum/brain_trauma/severe/blindness/on_gain()
|
||||
owner.become_blind()
|
||||
..()
|
||||
|
||||
//no fiddling with genetics to get out of this one
|
||||
/datum/brain_trauma/severe/blindness/on_life()
|
||||
if(!(owner.disabilities & BLIND))
|
||||
on_gain()
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/blindness/on_lose()
|
||||
owner.cure_blind()
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/paralysis
|
||||
name = "Paralysis"
|
||||
desc = "Patient's brain can no longer control its motor functions."
|
||||
scan_desc = "cerebral paralysis"
|
||||
gain_text = "<span class='warning'>You can't feel your body anymore!</span>"
|
||||
lose_text = "<span class='notice'>You can feel your limbs again!</span>"
|
||||
|
||||
/datum/brain_trauma/severe/paralysis/on_life()
|
||||
owner.Knockdown(200, ignore_canknockdown = TRUE)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/paralysis/on_lose()
|
||||
owner.SetKnockdown(0)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/narcolepsy
|
||||
name = "Narcolepsy"
|
||||
desc = "Patient may involuntarily fall asleep during normal activities."
|
||||
scan_desc = "traumatic narcolepsy"
|
||||
gain_text = "<span class='warning'>You have a constant feeling of drowsiness...</span>"
|
||||
lose_text = "<span class='notice'>You feel awake and aware again.</span>"
|
||||
|
||||
/datum/brain_trauma/severe/narcolepsy/on_life()
|
||||
..()
|
||||
if(owner.IsSleeping())
|
||||
return
|
||||
var/sleep_chance = 1
|
||||
if(owner.m_intent == MOVE_INTENT_RUN)
|
||||
sleep_chance += 2
|
||||
if(owner.drowsyness)
|
||||
sleep_chance += 3
|
||||
if(prob(sleep_chance))
|
||||
to_chat(owner, "<span class='warning'>You fall asleep.</span>")
|
||||
owner.Sleeping(60)
|
||||
else if(!owner.drowsyness && prob(sleep_chance * 2))
|
||||
to_chat(owner, "<span class='warning'>You feel tired...</span>")
|
||||
owner.drowsyness += 10
|
||||
|
||||
/datum/brain_trauma/severe/monophobia
|
||||
name = "Monophobia"
|
||||
desc = "Patient feels sick and distressed when not around other people, leading to potentially lethal levels of stress."
|
||||
scan_desc = "severe monophobia"
|
||||
gain_text = ""
|
||||
lose_text = "<span class='notice'>You feel like you could be safe on your own.</span>"
|
||||
var/stress = 0
|
||||
|
||||
/datum/brain_trauma/severe/monophobia/on_gain()
|
||||
..()
|
||||
if(check_alone())
|
||||
to_chat(owner, "<span class='warning'>You feel really lonely...</span>")
|
||||
else
|
||||
to_chat(owner, "<span class='notice'>You feel safe, as long as you have people around you.</span>")
|
||||
|
||||
/datum/brain_trauma/severe/monophobia/on_life()
|
||||
..()
|
||||
if(check_alone())
|
||||
stress = min(stress + 0.5, 100)
|
||||
if(stress > 10 && (prob(5)))
|
||||
stress_reaction()
|
||||
else
|
||||
stress -= 4
|
||||
|
||||
/datum/brain_trauma/severe/monophobia/proc/check_alone()
|
||||
if(owner.disabilities & BLIND)
|
||||
return TRUE
|
||||
for(var/mob/M in oview(owner, 7))
|
||||
if(!isliving(M)) //ghosts ain't people
|
||||
continue
|
||||
if((istype(M, /mob/living/simple_animal/pet)) || M.ckey)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/brain_trauma/severe/monophobia/proc/stress_reaction()
|
||||
if(owner.stat != CONSCIOUS)
|
||||
return
|
||||
|
||||
var/high_stress = (stress > 60) //things get psychosomatic from here on
|
||||
switch(rand(1,6))
|
||||
if(1)
|
||||
if(!high_stress)
|
||||
to_chat(owner, "<span class='warning'>You feel sick...</span>")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'>You feel really sick at the thought of being alone!</span>")
|
||||
addtimer(CALLBACK(owner, /mob/living/carbon.proc/vomit, high_stress), 50) //blood vomit if high stress
|
||||
if(2)
|
||||
if(!high_stress)
|
||||
to_chat(owner, "<span class='warning'>You can't stop shaking...</span>")
|
||||
owner.dizziness += 20
|
||||
owner.confused += 20
|
||||
owner.Jitter(20)
|
||||
else
|
||||
to_chat(owner, "<span class='warning'>You feel weak and scared! If only you weren't alone...</span>")
|
||||
owner.dizziness += 20
|
||||
owner.confused += 20
|
||||
owner.Jitter(20)
|
||||
owner.adjustStaminaLoss(50)
|
||||
|
||||
if(3, 4)
|
||||
if(!high_stress)
|
||||
to_chat(owner, "<span class='warning'>You feel really lonely...</span>")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'>You're going mad with loneliness!</span>")
|
||||
owner.hallucination += 20
|
||||
|
||||
if(5)
|
||||
if(!high_stress)
|
||||
to_chat(owner, "<span class='warning'>Your heart skips a beat.</span>")
|
||||
owner.adjustOxyLoss(8)
|
||||
else
|
||||
if(prob(15) && ishuman(owner))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
H.set_heartattack(TRUE)
|
||||
to_chat(H, "<span class='userdanger'>You feel a stabbing pain in your heart!</span>")
|
||||
else
|
||||
to_chat(owner, "<span class='userdanger'>You feel your heart lurching in your chest...</span>")
|
||||
owner.adjustOxyLoss(8)
|
||||
|
||||
/datum/brain_trauma/severe/discoordination
|
||||
name = "Discoordination"
|
||||
desc = "Patient is unable to use complex tools or machinery."
|
||||
scan_desc = "extreme discoordination"
|
||||
gain_text = "<span class='warning'>You can barely control your hands!</span>"
|
||||
lose_text = "<span class='notice'>You feel in control of your hands again.</span>"
|
||||
|
||||
/datum/brain_trauma/severe/discoordination/on_gain()
|
||||
owner.disabilities |= MONKEYLIKE
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/discoordination/on_lose()
|
||||
owner.disabilities &= ~MONKEYLIKE
|
||||
..()
|
||||
@@ -0,0 +1,122 @@
|
||||
//Brain traumas that are rare and/or somewhat beneficial;
|
||||
//they are the easiest to cure, which means that if you want
|
||||
//to keep them, you can't cure your other traumas
|
||||
/datum/brain_trauma/special
|
||||
|
||||
/datum/brain_trauma/special/godwoken
|
||||
name = "Godwoken Syndrome"
|
||||
desc = "Patient occasionally and uncontrollably channels an eldritch god when speaking."
|
||||
scan_desc = "god delusion"
|
||||
gain_text = "<span class='notice'>You feel a higher power inside your mind...</span>"
|
||||
lose_text = "<span class='warning'>The divine presence leaves your head, no longer interested.</span>"
|
||||
var/next_speech = 0
|
||||
var/inspiration = FALSE
|
||||
|
||||
/datum/brain_trauma/special/godwoken/on_life()
|
||||
..()
|
||||
if(!inspiration && world.time > next_speech && prob(4))
|
||||
to_chat(owner, "<span class='notice'>[pick("You feel inspired!","You feel power course through you...","You feel something within you itching to speak...")]</span>")
|
||||
inspiration = TRUE
|
||||
|
||||
/datum/brain_trauma/special/godwoken/on_say(message)
|
||||
if(world.time > next_speech && inspiration)
|
||||
playsound(get_turf(owner), 'sound/magic/clockwork/invoke_general.ogg', 300, 1, 5)
|
||||
var/cooldown = voice_of_god(message, owner, list("colossus","yell"), 2)
|
||||
cooldown *= 0.33
|
||||
next_speech = world.time + cooldown
|
||||
inspiration = FALSE
|
||||
return ""
|
||||
else
|
||||
return message
|
||||
|
||||
/datum/brain_trauma/special/bluespace_prophet
|
||||
name = "Bluespace Prophecy"
|
||||
desc = "Patient can sense the bob and weave of bluespace around them, showing them passageways no one else can see."
|
||||
scan_desc = "bluespace attunement"
|
||||
gain_text = "<span class='notice'>You feel the bluespace pulsing around you...</span>"
|
||||
lose_text = "<span class='warning'>The faint pulsing of bluespace fades into silence.</span>"
|
||||
var/next_portal = 0
|
||||
|
||||
/datum/brain_trauma/special/bluespace_prophet/on_life()
|
||||
if(world.time > next_portal)
|
||||
next_portal = world.time + 100
|
||||
var/list/turf/possible_turfs = list()
|
||||
for(var/turf/T in range(owner, 8))
|
||||
if(!T.density)
|
||||
var/clear = TRUE
|
||||
for(var/obj/O in T)
|
||||
if(O.density)
|
||||
clear = FALSE
|
||||
break
|
||||
if(clear)
|
||||
possible_turfs += T
|
||||
|
||||
if(!LAZYLEN(possible_turfs))
|
||||
return
|
||||
|
||||
var/turf/first_turf = pick(possible_turfs)
|
||||
if(!first_turf)
|
||||
return
|
||||
|
||||
possible_turfs -= (possible_turfs & range(first_turf, 3))
|
||||
|
||||
var/turf/second_turf = pick(possible_turfs)
|
||||
if(!second_turf)
|
||||
return
|
||||
|
||||
var/obj/effect/hallucination/simple/bluespace_stream/first = new(first_turf, owner)
|
||||
var/obj/effect/hallucination/simple/bluespace_stream/second = new(second_turf, owner)
|
||||
|
||||
first.linked_to = second
|
||||
second.linked_to = first
|
||||
first.seer = owner
|
||||
second.seer = owner
|
||||
|
||||
/obj/effect/hallucination/simple/bluespace_stream
|
||||
name = "bluespace stream"
|
||||
desc = "You see a hidden pathway through bluespace..."
|
||||
image_icon = 'icons/effects/effects.dmi'
|
||||
image_state = "bluestream"
|
||||
image_layer = ABOVE_MOB_LAYER
|
||||
var/obj/effect/hallucination/simple/bluespace_stream/linked_to
|
||||
var/mob/living/carbon/seer
|
||||
|
||||
/obj/effect/hallucination/simple/bluespace_stream/Initialize()
|
||||
. = ..()
|
||||
QDEL_IN(src, 300)
|
||||
|
||||
/obj/effect/hallucination/simple/bluespace_stream/attack_hand(mob/user)
|
||||
if(user != seer || !linked_to)
|
||||
return
|
||||
var/slip_in_message = pick("slides sideways in an odd way, and disappears", "jumps into an unseen dimension",\
|
||||
"sticks one leg straight out, wiggles [user.p_their()] foot, and is suddenly gone", "stops, then blinks out of reality", \
|
||||
"is pulled into an invisible vortex, vanishing from sight")
|
||||
var/slip_out_message = pick("silently fades in", "leaps out of thin air","appears", "walks out of an invisible doorway",\
|
||||
"slides out of a fold in spacetime")
|
||||
to_chat(user, "<span class='notice'>You try to align with the bluespace stream...</span>")
|
||||
if(do_after(user, 20, target = src))
|
||||
new /obj/effect/temp_visual/bluespace_fissure(get_turf(src))
|
||||
new /obj/effect/temp_visual/bluespace_fissure(get_turf(linked_to))
|
||||
user.forceMove(get_turf(linked_to))
|
||||
user.visible_message("<span class='warning'>[user] [slip_in_message].</span>", ignored_mob = user)
|
||||
user.visible_message("<span class='warning'>[user] [slip_out_message].</span>", "<span class='notice'>...and find your way to the other side.</span>")
|
||||
|
||||
/datum/brain_trauma/special/psychotic_brawling
|
||||
name = "Violent Psychosis"
|
||||
desc = "Patient fights in unpredictable ways, ranging from helping his target to hitting them with brutal strength."
|
||||
scan_desc = "violent psychosis"
|
||||
gain_text = "<span class='warning'>You feel unhinged...</span>"
|
||||
lose_text = "<span class='notice'>You feel more balanced.</span>"
|
||||
var/datum/martial_art/psychotic_brawling/psychotic_brawling
|
||||
|
||||
/datum/brain_trauma/special/psychotic_brawling/on_gain()
|
||||
..()
|
||||
psychotic_brawling = new(null)
|
||||
if(!psychotic_brawling.teach(owner, TRUE))
|
||||
to_chat(owner, "<span class='notice'>But your martial knowledge keeps you grounded.</span>")
|
||||
qdel(src)
|
||||
|
||||
/datum/brain_trauma/special/psychotic_brawling/on_lose()
|
||||
..()
|
||||
psychotic_brawling.remove(owner)
|
||||
QDEL_NULL(psychotic_brawling)
|
||||
@@ -0,0 +1,218 @@
|
||||
#define OWNER 0
|
||||
#define STRANGER 1
|
||||
|
||||
/datum/brain_trauma/severe/split_personality
|
||||
name = "Split Personality"
|
||||
desc = "Patient's brain is split into two personalities, which randomly switch control of the body."
|
||||
scan_desc = "complete lobe separation"
|
||||
gain_text = "<span class='warning'>You feel like your mind was split in two.</span>"
|
||||
lose_text = "<span class='notice'>You feel alone again.</span>"
|
||||
var/current_controller = OWNER
|
||||
var/initialized = FALSE //to prevent personalities deleting themselves while we wait for ghosts
|
||||
var/mob/living/split_personality/stranger_backseat //there's two so they can swap without overwriting
|
||||
var/mob/living/split_personality/owner_backseat
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/on_gain()
|
||||
..()
|
||||
make_backseats()
|
||||
get_ghost()
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/proc/make_backseats()
|
||||
stranger_backseat = new(owner, src)
|
||||
owner_backseat = new(owner, src)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/proc/get_ghost()
|
||||
set waitfor = FALSE
|
||||
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as [owner]'s split personality?", null, null, null, 75, stranger_backseat)
|
||||
if(LAZYLEN(candidates))
|
||||
var/client/C = pick(candidates)
|
||||
stranger_backseat.key = C.key
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/on_life()
|
||||
if(owner.stat == DEAD)
|
||||
if(current_controller != OWNER)
|
||||
switch_personalities()
|
||||
qdel(src)
|
||||
else if(prob(3))
|
||||
switch_personalities()
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/on_lose()
|
||||
if(current_controller != OWNER) //it would be funny to cure a guy only to be left with the other personality, but it seems too cruel
|
||||
switch_personalities()
|
||||
QDEL_NULL(stranger_backseat)
|
||||
QDEL_NULL(owner_backseat)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/proc/switch_personalities()
|
||||
if(QDELETED(owner) || owner.stat == DEAD || QDELETED(stranger_backseat) || QDELETED(owner_backseat))
|
||||
return
|
||||
|
||||
var/mob/living/split_personality/current_backseat
|
||||
var/mob/living/split_personality/free_backseat
|
||||
if(current_controller == OWNER)
|
||||
current_backseat = stranger_backseat
|
||||
free_backseat = owner_backseat
|
||||
else
|
||||
current_backseat = owner_backseat
|
||||
free_backseat = stranger_backseat
|
||||
|
||||
log_game("[current_backseat]/([current_backseat.ckey]) assumed control of [owner]/([owner.ckey] due to [src]. (Original owner: [current_controller == OWNER ? owner.ckey : current_backseat.ckey])")
|
||||
to_chat(owner, "<span class='userdanger'>You feel your control being taken away... your other personality is in charge now!</span>")
|
||||
to_chat(current_backseat, "<span class='userdanger'>You manage to take control of your body!</span>")
|
||||
|
||||
//Body to backseat
|
||||
|
||||
var/h2b_id = owner.computer_id
|
||||
var/h2b_ip= owner.lastKnownIP
|
||||
owner.computer_id = null
|
||||
owner.lastKnownIP = null
|
||||
|
||||
free_backseat.ckey = owner.ckey
|
||||
|
||||
free_backseat.name = owner.name
|
||||
|
||||
if(owner.mind)
|
||||
free_backseat.mind = owner.mind
|
||||
|
||||
if(!free_backseat.computer_id)
|
||||
free_backseat.computer_id = h2b_id
|
||||
|
||||
if(!free_backseat.lastKnownIP)
|
||||
free_backseat.lastKnownIP = h2b_ip
|
||||
|
||||
//Backseat to body
|
||||
|
||||
var/s2h_id = current_backseat.computer_id
|
||||
var/s2h_ip= current_backseat.lastKnownIP
|
||||
current_backseat.computer_id = null
|
||||
current_backseat.lastKnownIP = null
|
||||
|
||||
owner.ckey = current_backseat.ckey
|
||||
owner.mind = current_backseat.mind
|
||||
|
||||
if(!owner.computer_id)
|
||||
owner.computer_id = s2h_id
|
||||
|
||||
if(!owner.lastKnownIP)
|
||||
owner.lastKnownIP = s2h_ip
|
||||
|
||||
current_controller = !current_controller
|
||||
|
||||
|
||||
/mob/living/split_personality
|
||||
name = "split personality"
|
||||
real_name = "unknown conscience"
|
||||
var/mob/living/carbon/body
|
||||
var/datum/brain_trauma/severe/split_personality/trauma
|
||||
|
||||
/mob/living/split_personality/Initialize(mapload, _trauma)
|
||||
if(iscarbon(loc))
|
||||
body = loc
|
||||
name = body.real_name
|
||||
real_name = body.real_name
|
||||
trauma = _trauma
|
||||
return ..()
|
||||
|
||||
/mob/living/split_personality/Life()
|
||||
if(QDELETED(body))
|
||||
qdel(src) //in case trauma deletion doesn't already do it
|
||||
|
||||
if((body.stat == DEAD && trauma.owner_backseat == src))
|
||||
trauma.switch_personalities()
|
||||
qdel(trauma)
|
||||
|
||||
//if one of the two ghosts, the other one stays permanently
|
||||
if(!body.client && trauma.initialized)
|
||||
trauma.switch_personalities()
|
||||
qdel(trauma)
|
||||
|
||||
..()
|
||||
|
||||
/mob/living/split_personality/Login()
|
||||
..()
|
||||
to_chat(src, "<span class='notice'>As a split personality, you cannot do anything but observe. However, you will eventually gain control of your body, switching places with the current personality.</span>")
|
||||
|
||||
/mob/living/split_personality/say(message)
|
||||
to_chat(src, "<span class='warning'>You cannot speak, your other self is controlling your body!</span>")
|
||||
return FALSE
|
||||
|
||||
/mob/living/split_personality/emote(message)
|
||||
return
|
||||
|
||||
///////////////BRAINWASHING////////////////////
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/brainwashing
|
||||
name = "Split Personality"
|
||||
desc = "Patient's brain is split into two personalities, which randomly switch control of the body."
|
||||
scan_desc = "complete lobe separation"
|
||||
gain_text = ""
|
||||
lose_text = "<span class='notice'>You are free of your brainwashing.</span>"
|
||||
can_gain = FALSE
|
||||
var/codeword
|
||||
var/objective
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/brainwashing/New(obj/item/organ/brain/B, _permanent, _codeword, _objective)
|
||||
..()
|
||||
if(_codeword)
|
||||
codeword = _codeword
|
||||
else
|
||||
codeword = pick(strings("ion_laws.json", "ionabstract")\
|
||||
| strings("ion_laws.json", "ionobjects")\
|
||||
| strings("ion_laws.json", "ionadjectives")\
|
||||
| strings("ion_laws.json", "ionthreats")\
|
||||
| strings("ion_laws.json", "ionfood")\
|
||||
| strings("ion_laws.json", "iondrinks"))
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/brainwashing/on_gain()
|
||||
..()
|
||||
var/mob/living/split_personality/traitor/traitor_backseat = stranger_backseat
|
||||
traitor_backseat.codeword = codeword
|
||||
traitor_backseat.objective = objective
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/brainwashing/make_backseats()
|
||||
stranger_backseat = new /mob/living/split_personality/traitor(owner, src, codeword, objective)
|
||||
owner_backseat = new(owner, src)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/brainwashing/get_ghost()
|
||||
set waitfor = FALSE
|
||||
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as [owner]'s brainwashed mind?", null, null, null, 75, stranger_backseat)
|
||||
if(LAZYLEN(candidates))
|
||||
var/client/C = pick(candidates)
|
||||
stranger_backseat.key = C.key
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/brainwashing/on_life()
|
||||
return //no random switching
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/brainwashing/on_hear(message, speaker, message_language, raw_message, radio_freq)
|
||||
if(owner.disabilities & DEAF || owner == speaker)
|
||||
return message
|
||||
if(findtext(message, codeword))
|
||||
message = replacetext(message, codeword, "<span class='warning'>[codeword]</span>")
|
||||
addtimer(CALLBACK(src, /datum/brain_trauma/severe/split_personality.proc/switch_personalities), 10)
|
||||
return message
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/brainwashing/on_say(message)
|
||||
if(findtext(message, codeword))
|
||||
return "" //oh hey did you want to tell people about the secret word to bring you back?
|
||||
return message
|
||||
|
||||
/mob/living/split_personality/traitor
|
||||
name = "split personality"
|
||||
real_name = "unknown conscience"
|
||||
var/objective
|
||||
var/codeword
|
||||
|
||||
/mob/living/split_personality/traitor/Login()
|
||||
..()
|
||||
to_chat(src, "<span class='notice'>As a brainwashed personality, you cannot do anything yet but observe. However, you may gain control of your body if you hear the special codeword, switching places with the current personality.</span>")
|
||||
to_chat(src, "<span class='notice'>Your activation codeword is: <b>[codeword]</b></span>")
|
||||
if(objective)
|
||||
to_chat(src, "<span class='notice'>Your master left you an objective: <b>[objective]</b>. Follow it at all costs when in control.</span>")
|
||||
|
||||
#undef OWNER
|
||||
#undef STRANGER
|
||||
@@ -0,0 +1,60 @@
|
||||
/datum/component/caltrop
|
||||
var/min_damage
|
||||
var/max_damage
|
||||
var/probability
|
||||
var/flags
|
||||
|
||||
var/cooldown = 0
|
||||
|
||||
/datum/component/caltrop/Initialize(_min_damage = 0, _max_damage = 0, _probability = 100, _flags = NONE)
|
||||
min_damage = _min_damage
|
||||
max_damage = max(_min_damage, _max_damage)
|
||||
probability = _probability
|
||||
flags = _flags
|
||||
|
||||
RegisterSignal(list(COMSIG_MOVABLE_CROSSED), .proc/Crossed)
|
||||
|
||||
/datum/component/caltrop/proc/Crossed(atom/movable/AM)
|
||||
var/atom/A = parent
|
||||
if(!A.has_gravity())
|
||||
return
|
||||
|
||||
if(!prob(probability))
|
||||
return
|
||||
|
||||
if(ishuman(AM))
|
||||
var/mob/living/carbon/human/H = AM
|
||||
if(PIERCEIMMUNE in H.dna.species.species_traits)
|
||||
return
|
||||
|
||||
if((flags & CALTROP_IGNORE_WALKERS) && H.m_intent == MOVE_INTENT_WALK)
|
||||
return
|
||||
|
||||
var/picked_def_zone = pick("l_leg", "r_leg")
|
||||
var/obj/item/bodypart/O = H.get_bodypart(picked_def_zone)
|
||||
if(!istype(O))
|
||||
return
|
||||
if(O.status == BODYPART_ROBOTIC)
|
||||
return
|
||||
|
||||
var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET))
|
||||
|
||||
if(!(flags & CALTROP_BYPASS_SHOES) && (H.shoes || feetCover))
|
||||
return
|
||||
|
||||
if((H.movement_type & FLYING) || H.buckled)
|
||||
return
|
||||
|
||||
var/damage = rand(min_damage, max_damage)
|
||||
H.apply_damage(damage, BRUTE, picked_def_zone)
|
||||
|
||||
if(cooldown < world.time - 10) //cooldown to avoid message spam.
|
||||
if(!H.incapacitated(ignore_restraints = TRUE))
|
||||
H.visible_message("<span class='danger'>[H] steps on [A].</span>", \
|
||||
"<span class='userdanger'>You step on [A]!</span>")
|
||||
else
|
||||
H.visible_message("<span class='danger'>[H] slides on [A]!</span>", \
|
||||
"<span class='userdanger'>You slide on [A]!</span>")
|
||||
|
||||
cooldown = world.time
|
||||
H.Knockdown(60)
|
||||
@@ -58,7 +58,7 @@
|
||||
return
|
||||
. = COMPONENT_NO_AFTERATTACK
|
||||
var/datum/callback/pc = precondition
|
||||
if(pc && !pc.Invoke())
|
||||
if(pc && !pc.Invoke(user))
|
||||
return
|
||||
var/material_amount = get_item_material_amount(I)
|
||||
if(!material_amount)
|
||||
|
||||
+326
-326
@@ -1,326 +1,326 @@
|
||||
/datum/component/riding
|
||||
var/next_vehicle_move = 0 //used for move delays
|
||||
var/vehicle_move_delay = 2 //tick delay between movements, lower = faster, higher = slower
|
||||
var/keytype
|
||||
|
||||
var/slowed = FALSE
|
||||
var/slowvalue = 1
|
||||
|
||||
var/list/riding_offsets = list() //position_of_user = list(dir = list(px, py)), or RIDING_OFFSET_ALL for a generic one.
|
||||
var/list/directional_vehicle_layers = list() //["[DIRECTION]"] = layer. Don't set it for a direction for default, set a direction to null for no change.
|
||||
var/list/directional_vehicle_offsets = list() //same as above but instead of layer you have a list(px, py)
|
||||
var/list/allowed_turf_typecache
|
||||
var/list/forbid_turf_typecache //allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence.
|
||||
var/allow_one_away_from_valid_turf = TRUE //allow moving one tile away from a valid turf but not more.
|
||||
var/override_allow_spacemove = FALSE
|
||||
var/drive_verb = "drive"
|
||||
var/ride_check_rider_incapacitated = FALSE
|
||||
var/ride_check_rider_restrained = FALSE
|
||||
var/ride_check_ridden_incapacitated = FALSE
|
||||
|
||||
/datum/component/riding/Initialize()
|
||||
if(!ismovableatom(parent))
|
||||
. = COMPONENT_INCOMPATIBLE
|
||||
CRASH("RIDING COMPONENT ASSIGNED TO NON ATOM MOVABLE!")
|
||||
RegisterSignal(COMSIG_MOVABLE_BUCKLE, .proc/vehicle_mob_buckle)
|
||||
RegisterSignal(COMSIG_MOVABLE_UNBUCKLE, .proc/vehicle_mob_unbuckle)
|
||||
RegisterSignal(COMSIG_MOVABLE_MOVED, .proc/vehicle_moved)
|
||||
|
||||
/datum/component/riding/proc/vehicle_mob_unbuckle(mob/living/M, force = FALSE)
|
||||
restore_position(M)
|
||||
unequip_buckle_inhands(M)
|
||||
|
||||
/datum/component/riding/proc/vehicle_mob_buckle(mob/living/M, force = FALSE)
|
||||
handle_vehicle_offsets()
|
||||
|
||||
/datum/component/riding/proc/handle_vehicle_layer()
|
||||
var/atom/movable/AM = parent
|
||||
var/static/list/defaults = list(TEXT_NORTH = OBJ_LAYER, TEXT_SOUTH = ABOVE_MOB_LAYER, TEXT_EAST = ABOVE_MOB_LAYER, TEXT_WEST = ABOVE_MOB_LAYER)
|
||||
. = defaults["[AM.dir]"]
|
||||
if(directional_vehicle_layers["[AM.dir]"])
|
||||
. = directional_vehicle_layers["[AM.dir]"]
|
||||
if(isnull(.)) //you can set it to null to not change it.
|
||||
. = AM.layer
|
||||
AM.layer = .
|
||||
|
||||
/datum/component/riding/proc/set_vehicle_dir_layer(dir, layer)
|
||||
directional_vehicle_layers["[dir]"] = layer
|
||||
|
||||
/datum/component/riding/proc/vehicle_moved()
|
||||
var/atom/movable/AM = parent
|
||||
for(var/i in AM.buckled_mobs)
|
||||
ride_check(i)
|
||||
handle_vehicle_offsets()
|
||||
handle_vehicle_layer()
|
||||
|
||||
/datum/component/riding/proc/ride_check(mob/living/M)
|
||||
var/atom/movable/AM = parent
|
||||
var/mob/AMM = AM
|
||||
if((ride_check_rider_restrained && M.restrained(TRUE)) || (ride_check_rider_incapacitated && M.incapacitated(FALSE, TRUE)) || (ride_check_ridden_incapacitated && istype(AMM) && AMM.incapacitated(FALSE, TRUE)))
|
||||
AM.visible_message("<span class='warning'>[M] falls off of [AM]!</span>")
|
||||
AM.unbuckle_mob(M)
|
||||
return TRUE
|
||||
|
||||
/datum/component/riding/proc/force_dismount(mob/living/M)
|
||||
var/atom/movable/AM = parent
|
||||
AM.unbuckle_mob(M)
|
||||
|
||||
/datum/component/riding/proc/handle_vehicle_offsets()
|
||||
var/atom/movable/AM = parent
|
||||
var/AM_dir = "[AM.dir]"
|
||||
var/passindex = 0
|
||||
if(AM.has_buckled_mobs())
|
||||
for(var/m in AM.buckled_mobs)
|
||||
passindex++
|
||||
var/mob/living/buckled_mob = m
|
||||
var/list/offsets = get_offsets(passindex)
|
||||
var/rider_dir = get_rider_dir(passindex)
|
||||
buckled_mob.setDir(rider_dir)
|
||||
dir_loop:
|
||||
for(var/offsetdir in offsets)
|
||||
if(offsetdir == AM_dir)
|
||||
var/list/diroffsets = offsets[offsetdir]
|
||||
buckled_mob.pixel_x = diroffsets[1]
|
||||
if(diroffsets.len >= 2)
|
||||
buckled_mob.pixel_y = diroffsets[2]
|
||||
if(diroffsets.len == 3)
|
||||
buckled_mob.layer = diroffsets[3]
|
||||
break dir_loop
|
||||
var/list/static/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0))
|
||||
var/px = default_vehicle_pixel_offsets[AM_dir]
|
||||
var/py = default_vehicle_pixel_offsets[AM_dir]
|
||||
if(directional_vehicle_offsets[AM_dir])
|
||||
if(isnull(directional_vehicle_offsets[AM_dir]))
|
||||
px = AM.pixel_x
|
||||
py = AM.pixel_y
|
||||
else
|
||||
px = directional_vehicle_offsets[AM_dir][1]
|
||||
py = directional_vehicle_offsets[AM_dir][2]
|
||||
AM.pixel_x = px
|
||||
AM.pixel_y = py
|
||||
|
||||
/datum/component/riding/proc/set_vehicle_dir_offsets(dir, x, y)
|
||||
directional_vehicle_offsets["[dir]"] = list(x, y)
|
||||
|
||||
//Override this to set your vehicle's various pixel offsets
|
||||
/datum/component/riding/proc/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
. = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0))
|
||||
if(riding_offsets["[pass_index]"])
|
||||
. = riding_offsets["[pass_index]"]
|
||||
else if(riding_offsets["[RIDING_OFFSET_ALL]"])
|
||||
. = riding_offsets["[RIDING_OFFSET_ALL]"]
|
||||
|
||||
/datum/component/riding/proc/set_riding_offsets(index, list/offsets)
|
||||
if(!islist(offsets))
|
||||
return FALSE
|
||||
riding_offsets["[index]"] = offsets
|
||||
|
||||
//Override this to set the passengers/riders dir based on which passenger they are.
|
||||
//ie: rider facing the vehicle's dir, but passenger 2 facing backwards, etc.
|
||||
/datum/component/riding/proc/get_rider_dir(pass_index)
|
||||
var/atom/movable/AM = parent
|
||||
return AM.dir
|
||||
|
||||
//KEYS
|
||||
/datum/component/riding/proc/keycheck(mob/user)
|
||||
return !keytype || user.is_holding_item_of_type(keytype)
|
||||
|
||||
//BUCKLE HOOKS
|
||||
/datum/component/riding/proc/restore_position(mob/living/buckled_mob)
|
||||
if(buckled_mob)
|
||||
buckled_mob.pixel_x = 0
|
||||
buckled_mob.pixel_y = 0
|
||||
if(buckled_mob.client)
|
||||
buckled_mob.client.change_view(world.view)
|
||||
|
||||
//MOVEMENT
|
||||
/datum/component/riding/proc/turf_check(turf/next, turf/current)
|
||||
if(allowed_turf_typecache && !allowed_turf_typecache[next.type])
|
||||
return (allow_one_away_from_valid_turf && allowed_turf_typecache[current.type])
|
||||
else if(forbid_turf_typecache && forbid_turf_typecache[next.type])
|
||||
return (allow_one_away_from_valid_turf && !forbid_turf_typecache[current.type])
|
||||
return TRUE
|
||||
|
||||
/datum/component/riding/proc/handle_ride(mob/user, direction)
|
||||
var/atom/movable/AM = parent
|
||||
if(user.incapacitated())
|
||||
Unbuckle(user)
|
||||
return
|
||||
|
||||
if(world.time < next_vehicle_move)
|
||||
return
|
||||
next_vehicle_move = world.time + vehicle_move_delay
|
||||
|
||||
if(keycheck(user))
|
||||
var/turf/next = get_step(AM, direction)
|
||||
var/turf/current = get_turf(AM)
|
||||
if(!istype(next) || !istype(current))
|
||||
return //not happening.
|
||||
if(!turf_check(next, current))
|
||||
to_chat(user, "Your \the [AM] can not go onto [next]!")
|
||||
return
|
||||
if(!Process_Spacemove(direction) || !isturf(AM.loc))
|
||||
return
|
||||
step(AM, direction)
|
||||
|
||||
handle_vehicle_layer()
|
||||
handle_vehicle_offsets()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You'll need the keys in one of your hands to [drive_verb] [AM].</span>")
|
||||
|
||||
/datum/component/riding/proc/Unbuckle(atom/movable/M)
|
||||
addtimer(CALLBACK(parent, /atom/movable/.proc/unbuckle_mob, M), 0, TIMER_UNIQUE)
|
||||
|
||||
/datum/component/riding/proc/Process_Spacemove(direction)
|
||||
var/atom/movable/AM = parent
|
||||
return override_allow_spacemove || AM.has_gravity()
|
||||
|
||||
/datum/component/riding/proc/account_limbs(mob/living/M)
|
||||
if(M.get_num_legs() < 2 && !slowed)
|
||||
vehicle_move_delay = vehicle_move_delay + slowvalue
|
||||
slowed = TRUE
|
||||
else if(slowed)
|
||||
vehicle_move_delay = vehicle_move_delay - slowvalue
|
||||
slowed = FALSE
|
||||
|
||||
///////Yes, I said humans. No, this won't end well...//////////
|
||||
/datum/component/riding/human
|
||||
|
||||
/datum/component/riding/human/Initialize()
|
||||
. = ..()
|
||||
RegisterSignal(COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/on_host_unarmed_melee)
|
||||
|
||||
/datum/component/riding/human/proc/on_host_unarmed_melee(atom/target)
|
||||
var/mob/living/carbon/human/AM = parent
|
||||
if(AM.a_intent == INTENT_DISARM && (target in AM.buckled_mobs))
|
||||
force_dismount(target)
|
||||
|
||||
/datum/component/riding/human/handle_vehicle_layer()
|
||||
var/atom/movable/AM = parent
|
||||
if(AM.buckled_mobs && AM.buckled_mobs.len)
|
||||
if(AM.dir == SOUTH)
|
||||
AM.layer = ABOVE_MOB_LAYER
|
||||
else
|
||||
AM.layer = OBJ_LAYER
|
||||
else
|
||||
AM.layer = MOB_LAYER
|
||||
|
||||
/datum/component/riding/human/force_dismount(mob/living/user)
|
||||
var/atom/movable/AM = parent
|
||||
AM.unbuckle_mob(user)
|
||||
user.Knockdown(60)
|
||||
user.visible_message("<span class='warning'>[AM] pushes [user] off of them!</span>")
|
||||
|
||||
/datum/component/riding/cyborg
|
||||
|
||||
/datum/component/riding/cyborg/ride_check(mob/user)
|
||||
var/atom/movable/AM = parent
|
||||
if(user.incapacitated())
|
||||
var/kick = TRUE
|
||||
if(iscyborg(AM))
|
||||
var/mob/living/silicon/robot/R = AM
|
||||
if(R.module && R.module.ride_allow_incapacitated)
|
||||
kick = FALSE
|
||||
if(kick)
|
||||
to_chat(user, "<span class='userdanger'>You fall off of [AM]!</span>")
|
||||
Unbuckle(user)
|
||||
return
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/carbonuser = user
|
||||
if(!carbonuser.get_num_arms())
|
||||
Unbuckle(user)
|
||||
to_chat(user, "<span class='userdanger'>You can't grab onto [AM] with no hands!</span>")
|
||||
return
|
||||
|
||||
/datum/component/riding/cyborg/handle_vehicle_layer()
|
||||
var/atom/movable/AM = parent
|
||||
if(AM.buckled_mobs && AM.buckled_mobs.len)
|
||||
if(AM.dir == SOUTH)
|
||||
AM.layer = ABOVE_MOB_LAYER
|
||||
else
|
||||
AM.layer = OBJ_LAYER
|
||||
else
|
||||
AM.layer = MOB_LAYER
|
||||
|
||||
/datum/component/riding/cyborg/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
return list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(-6, 3), TEXT_WEST = list( 6, 3))
|
||||
|
||||
/datum/component/riding/cyborg/handle_vehicle_offsets()
|
||||
var/atom/movable/AM = parent
|
||||
if(AM.has_buckled_mobs())
|
||||
for(var/mob/living/M in AM.buckled_mobs)
|
||||
M.setDir(AM.dir)
|
||||
if(iscyborg(AM))
|
||||
var/mob/living/silicon/robot/R = AM
|
||||
if(istype(R.module))
|
||||
M.pixel_x = R.module.ride_offset_x[dir2text(AM.dir)]
|
||||
M.pixel_y = R.module.ride_offset_y[dir2text(AM.dir)]
|
||||
else
|
||||
..()
|
||||
|
||||
/datum/component/riding/cyborg/force_dismount(mob/living/M)
|
||||
var/atom/movable/AM = parent
|
||||
AM.unbuckle_mob(M)
|
||||
var/turf/target = get_edge_target_turf(AM, AM.dir)
|
||||
var/turf/targetm = get_step(get_turf(AM), AM.dir)
|
||||
M.Move(targetm)
|
||||
M.visible_message("<span class='warning'>[M] is thrown clear of [AM]!</span>")
|
||||
M.throw_at(target, 14, 5, AM)
|
||||
M.Knockdown(60)
|
||||
|
||||
/datum/component/riding/proc/equip_buckle_inhands(mob/living/carbon/human/user, amount_required = 1)
|
||||
var/atom/movable/AM = parent
|
||||
var/amount_equipped = 0
|
||||
for(var/amount_needed = amount_required, amount_needed > 0, amount_needed--)
|
||||
var/obj/item/riding_offhand/inhand = new /obj/item/riding_offhand(user)
|
||||
inhand.rider = user
|
||||
inhand.parent = AM
|
||||
if(user.put_in_hands(inhand, TRUE))
|
||||
amount_equipped++
|
||||
else
|
||||
break
|
||||
if(amount_equipped >= amount_required)
|
||||
return TRUE
|
||||
else
|
||||
unequip_buckle_inhands(user)
|
||||
return FALSE
|
||||
|
||||
/datum/component/riding/proc/unequip_buckle_inhands(mob/living/carbon/user)
|
||||
var/atom/movable/AM = parent
|
||||
for(var/obj/item/riding_offhand/O in user.contents)
|
||||
if(O.parent != AM)
|
||||
CRASH("RIDING OFFHAND ON WRONG MOB")
|
||||
continue
|
||||
if(O.selfdeleting)
|
||||
continue
|
||||
else
|
||||
qdel(O)
|
||||
return TRUE
|
||||
|
||||
/obj/item/riding_offhand
|
||||
name = "offhand"
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "offhand"
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
flags_1 = ABSTRACT_1 | DROPDEL_1 | NOBLUDGEON_1
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
var/mob/living/carbon/rider
|
||||
var/mob/living/parent
|
||||
var/selfdeleting = FALSE
|
||||
|
||||
/obj/item/riding_offhand/dropped()
|
||||
selfdeleting = TRUE
|
||||
. = ..()
|
||||
|
||||
/obj/item/riding_offhand/equipped()
|
||||
if(loc != rider)
|
||||
selfdeleting = TRUE
|
||||
qdel(src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/riding_offhand/Destroy()
|
||||
var/atom/movable/AM = parent
|
||||
if(selfdeleting)
|
||||
if(rider in AM.buckled_mobs)
|
||||
AM.unbuckle_mob(rider)
|
||||
. = ..()
|
||||
/datum/component/riding
|
||||
var/next_vehicle_move = 0 //used for move delays
|
||||
var/vehicle_move_delay = 2 //tick delay between movements, lower = faster, higher = slower
|
||||
var/keytype
|
||||
|
||||
var/slowed = FALSE
|
||||
var/slowvalue = 1
|
||||
|
||||
var/list/riding_offsets = list() //position_of_user = list(dir = list(px, py)), or RIDING_OFFSET_ALL for a generic one.
|
||||
var/list/directional_vehicle_layers = list() //["[DIRECTION]"] = layer. Don't set it for a direction for default, set a direction to null for no change.
|
||||
var/list/directional_vehicle_offsets = list() //same as above but instead of layer you have a list(px, py)
|
||||
var/list/allowed_turf_typecache
|
||||
var/list/forbid_turf_typecache //allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence.
|
||||
var/allow_one_away_from_valid_turf = TRUE //allow moving one tile away from a valid turf but not more.
|
||||
var/override_allow_spacemove = FALSE
|
||||
var/drive_verb = "drive"
|
||||
var/ride_check_rider_incapacitated = FALSE
|
||||
var/ride_check_rider_restrained = FALSE
|
||||
var/ride_check_ridden_incapacitated = FALSE
|
||||
|
||||
/datum/component/riding/Initialize()
|
||||
if(!ismovableatom(parent))
|
||||
. = COMPONENT_INCOMPATIBLE
|
||||
CRASH("RIDING COMPONENT ASSIGNED TO NON ATOM MOVABLE!")
|
||||
RegisterSignal(COMSIG_MOVABLE_BUCKLE, .proc/vehicle_mob_buckle)
|
||||
RegisterSignal(COMSIG_MOVABLE_UNBUCKLE, .proc/vehicle_mob_unbuckle)
|
||||
RegisterSignal(COMSIG_MOVABLE_MOVED, .proc/vehicle_moved)
|
||||
|
||||
/datum/component/riding/proc/vehicle_mob_unbuckle(mob/living/M, force = FALSE)
|
||||
restore_position(M)
|
||||
unequip_buckle_inhands(M)
|
||||
|
||||
/datum/component/riding/proc/vehicle_mob_buckle(mob/living/M, force = FALSE)
|
||||
handle_vehicle_offsets()
|
||||
|
||||
/datum/component/riding/proc/handle_vehicle_layer()
|
||||
var/atom/movable/AM = parent
|
||||
var/static/list/defaults = list(TEXT_NORTH = OBJ_LAYER, TEXT_SOUTH = ABOVE_MOB_LAYER, TEXT_EAST = ABOVE_MOB_LAYER, TEXT_WEST = ABOVE_MOB_LAYER)
|
||||
. = defaults["[AM.dir]"]
|
||||
if(directional_vehicle_layers["[AM.dir]"])
|
||||
. = directional_vehicle_layers["[AM.dir]"]
|
||||
if(isnull(.)) //you can set it to null to not change it.
|
||||
. = AM.layer
|
||||
AM.layer = .
|
||||
|
||||
/datum/component/riding/proc/set_vehicle_dir_layer(dir, layer)
|
||||
directional_vehicle_layers["[dir]"] = layer
|
||||
|
||||
/datum/component/riding/proc/vehicle_moved()
|
||||
var/atom/movable/AM = parent
|
||||
for(var/i in AM.buckled_mobs)
|
||||
ride_check(i)
|
||||
handle_vehicle_offsets()
|
||||
handle_vehicle_layer()
|
||||
|
||||
/datum/component/riding/proc/ride_check(mob/living/M)
|
||||
var/atom/movable/AM = parent
|
||||
var/mob/AMM = AM
|
||||
if((ride_check_rider_restrained && M.restrained(TRUE)) || (ride_check_rider_incapacitated && M.incapacitated(FALSE, TRUE)) || (ride_check_ridden_incapacitated && istype(AMM) && AMM.incapacitated(FALSE, TRUE)))
|
||||
AM.visible_message("<span class='warning'>[M] falls off of [AM]!</span>")
|
||||
AM.unbuckle_mob(M)
|
||||
return TRUE
|
||||
|
||||
/datum/component/riding/proc/force_dismount(mob/living/M)
|
||||
var/atom/movable/AM = parent
|
||||
AM.unbuckle_mob(M)
|
||||
|
||||
/datum/component/riding/proc/handle_vehicle_offsets()
|
||||
var/atom/movable/AM = parent
|
||||
var/AM_dir = "[AM.dir]"
|
||||
var/passindex = 0
|
||||
if(AM.has_buckled_mobs())
|
||||
for(var/m in AM.buckled_mobs)
|
||||
passindex++
|
||||
var/mob/living/buckled_mob = m
|
||||
var/list/offsets = get_offsets(passindex)
|
||||
var/rider_dir = get_rider_dir(passindex)
|
||||
buckled_mob.setDir(rider_dir)
|
||||
dir_loop:
|
||||
for(var/offsetdir in offsets)
|
||||
if(offsetdir == AM_dir)
|
||||
var/list/diroffsets = offsets[offsetdir]
|
||||
buckled_mob.pixel_x = diroffsets[1]
|
||||
if(diroffsets.len >= 2)
|
||||
buckled_mob.pixel_y = diroffsets[2]
|
||||
if(diroffsets.len == 3)
|
||||
buckled_mob.layer = diroffsets[3]
|
||||
break dir_loop
|
||||
var/list/static/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0))
|
||||
var/px = default_vehicle_pixel_offsets[AM_dir]
|
||||
var/py = default_vehicle_pixel_offsets[AM_dir]
|
||||
if(directional_vehicle_offsets[AM_dir])
|
||||
if(isnull(directional_vehicle_offsets[AM_dir]))
|
||||
px = AM.pixel_x
|
||||
py = AM.pixel_y
|
||||
else
|
||||
px = directional_vehicle_offsets[AM_dir][1]
|
||||
py = directional_vehicle_offsets[AM_dir][2]
|
||||
AM.pixel_x = px
|
||||
AM.pixel_y = py
|
||||
|
||||
/datum/component/riding/proc/set_vehicle_dir_offsets(dir, x, y)
|
||||
directional_vehicle_offsets["[dir]"] = list(x, y)
|
||||
|
||||
//Override this to set your vehicle's various pixel offsets
|
||||
/datum/component/riding/proc/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
. = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0))
|
||||
if(riding_offsets["[pass_index]"])
|
||||
. = riding_offsets["[pass_index]"]
|
||||
else if(riding_offsets["[RIDING_OFFSET_ALL]"])
|
||||
. = riding_offsets["[RIDING_OFFSET_ALL]"]
|
||||
|
||||
/datum/component/riding/proc/set_riding_offsets(index, list/offsets)
|
||||
if(!islist(offsets))
|
||||
return FALSE
|
||||
riding_offsets["[index]"] = offsets
|
||||
|
||||
//Override this to set the passengers/riders dir based on which passenger they are.
|
||||
//ie: rider facing the vehicle's dir, but passenger 2 facing backwards, etc.
|
||||
/datum/component/riding/proc/get_rider_dir(pass_index)
|
||||
var/atom/movable/AM = parent
|
||||
return AM.dir
|
||||
|
||||
//KEYS
|
||||
/datum/component/riding/proc/keycheck(mob/user)
|
||||
return !keytype || user.is_holding_item_of_type(keytype)
|
||||
|
||||
//BUCKLE HOOKS
|
||||
/datum/component/riding/proc/restore_position(mob/living/buckled_mob)
|
||||
if(buckled_mob)
|
||||
buckled_mob.pixel_x = 0
|
||||
buckled_mob.pixel_y = 0
|
||||
if(buckled_mob.client)
|
||||
buckled_mob.client.change_view(CONFIG_GET(string/default_view))
|
||||
|
||||
//MOVEMENT
|
||||
/datum/component/riding/proc/turf_check(turf/next, turf/current)
|
||||
if(allowed_turf_typecache && !allowed_turf_typecache[next.type])
|
||||
return (allow_one_away_from_valid_turf && allowed_turf_typecache[current.type])
|
||||
else if(forbid_turf_typecache && forbid_turf_typecache[next.type])
|
||||
return (allow_one_away_from_valid_turf && !forbid_turf_typecache[current.type])
|
||||
return TRUE
|
||||
|
||||
/datum/component/riding/proc/handle_ride(mob/user, direction)
|
||||
var/atom/movable/AM = parent
|
||||
if(user.incapacitated())
|
||||
Unbuckle(user)
|
||||
return
|
||||
|
||||
if(world.time < next_vehicle_move)
|
||||
return
|
||||
next_vehicle_move = world.time + vehicle_move_delay
|
||||
|
||||
if(keycheck(user))
|
||||
var/turf/next = get_step(AM, direction)
|
||||
var/turf/current = get_turf(AM)
|
||||
if(!istype(next) || !istype(current))
|
||||
return //not happening.
|
||||
if(!turf_check(next, current))
|
||||
to_chat(user, "Your \the [AM] can not go onto [next]!")
|
||||
return
|
||||
if(!Process_Spacemove(direction) || !isturf(AM.loc))
|
||||
return
|
||||
step(AM, direction)
|
||||
|
||||
handle_vehicle_layer()
|
||||
handle_vehicle_offsets()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You'll need the keys in one of your hands to [drive_verb] [AM].</span>")
|
||||
|
||||
/datum/component/riding/proc/Unbuckle(atom/movable/M)
|
||||
addtimer(CALLBACK(parent, /atom/movable/.proc/unbuckle_mob, M), 0, TIMER_UNIQUE)
|
||||
|
||||
/datum/component/riding/proc/Process_Spacemove(direction)
|
||||
var/atom/movable/AM = parent
|
||||
return override_allow_spacemove || AM.has_gravity()
|
||||
|
||||
/datum/component/riding/proc/account_limbs(mob/living/M)
|
||||
if(M.get_num_legs() < 2 && !slowed)
|
||||
vehicle_move_delay = vehicle_move_delay + slowvalue
|
||||
slowed = TRUE
|
||||
else if(slowed)
|
||||
vehicle_move_delay = vehicle_move_delay - slowvalue
|
||||
slowed = FALSE
|
||||
|
||||
///////Yes, I said humans. No, this won't end well...//////////
|
||||
/datum/component/riding/human
|
||||
|
||||
/datum/component/riding/human/Initialize()
|
||||
. = ..()
|
||||
RegisterSignal(COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/on_host_unarmed_melee)
|
||||
|
||||
/datum/component/riding/human/proc/on_host_unarmed_melee(atom/target)
|
||||
var/mob/living/carbon/human/AM = parent
|
||||
if(AM.a_intent == INTENT_DISARM && (target in AM.buckled_mobs))
|
||||
force_dismount(target)
|
||||
|
||||
/datum/component/riding/human/handle_vehicle_layer()
|
||||
var/atom/movable/AM = parent
|
||||
if(AM.buckled_mobs && AM.buckled_mobs.len)
|
||||
if(AM.dir == SOUTH)
|
||||
AM.layer = ABOVE_MOB_LAYER
|
||||
else
|
||||
AM.layer = OBJ_LAYER
|
||||
else
|
||||
AM.layer = MOB_LAYER
|
||||
|
||||
/datum/component/riding/human/force_dismount(mob/living/user)
|
||||
var/atom/movable/AM = parent
|
||||
AM.unbuckle_mob(user)
|
||||
user.Knockdown(60)
|
||||
user.visible_message("<span class='warning'>[AM] pushes [user] off of them!</span>")
|
||||
|
||||
/datum/component/riding/cyborg
|
||||
|
||||
/datum/component/riding/cyborg/ride_check(mob/user)
|
||||
var/atom/movable/AM = parent
|
||||
if(user.incapacitated())
|
||||
var/kick = TRUE
|
||||
if(iscyborg(AM))
|
||||
var/mob/living/silicon/robot/R = AM
|
||||
if(R.module && R.module.ride_allow_incapacitated)
|
||||
kick = FALSE
|
||||
if(kick)
|
||||
to_chat(user, "<span class='userdanger'>You fall off of [AM]!</span>")
|
||||
Unbuckle(user)
|
||||
return
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/carbonuser = user
|
||||
if(!carbonuser.get_num_arms())
|
||||
Unbuckle(user)
|
||||
to_chat(user, "<span class='userdanger'>You can't grab onto [AM] with no hands!</span>")
|
||||
return
|
||||
|
||||
/datum/component/riding/cyborg/handle_vehicle_layer()
|
||||
var/atom/movable/AM = parent
|
||||
if(AM.buckled_mobs && AM.buckled_mobs.len)
|
||||
if(AM.dir == SOUTH)
|
||||
AM.layer = ABOVE_MOB_LAYER
|
||||
else
|
||||
AM.layer = OBJ_LAYER
|
||||
else
|
||||
AM.layer = MOB_LAYER
|
||||
|
||||
/datum/component/riding/cyborg/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
return list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(-6, 3), TEXT_WEST = list( 6, 3))
|
||||
|
||||
/datum/component/riding/cyborg/handle_vehicle_offsets()
|
||||
var/atom/movable/AM = parent
|
||||
if(AM.has_buckled_mobs())
|
||||
for(var/mob/living/M in AM.buckled_mobs)
|
||||
M.setDir(AM.dir)
|
||||
if(iscyborg(AM))
|
||||
var/mob/living/silicon/robot/R = AM
|
||||
if(istype(R.module))
|
||||
M.pixel_x = R.module.ride_offset_x[dir2text(AM.dir)]
|
||||
M.pixel_y = R.module.ride_offset_y[dir2text(AM.dir)]
|
||||
else
|
||||
..()
|
||||
|
||||
/datum/component/riding/cyborg/force_dismount(mob/living/M)
|
||||
var/atom/movable/AM = parent
|
||||
AM.unbuckle_mob(M)
|
||||
var/turf/target = get_edge_target_turf(AM, AM.dir)
|
||||
var/turf/targetm = get_step(get_turf(AM), AM.dir)
|
||||
M.Move(targetm)
|
||||
M.visible_message("<span class='warning'>[M] is thrown clear of [AM]!</span>")
|
||||
M.throw_at(target, 14, 5, AM)
|
||||
M.Knockdown(60)
|
||||
|
||||
/datum/component/riding/proc/equip_buckle_inhands(mob/living/carbon/human/user, amount_required = 1)
|
||||
var/atom/movable/AM = parent
|
||||
var/amount_equipped = 0
|
||||
for(var/amount_needed = amount_required, amount_needed > 0, amount_needed--)
|
||||
var/obj/item/riding_offhand/inhand = new /obj/item/riding_offhand(user)
|
||||
inhand.rider = user
|
||||
inhand.parent = AM
|
||||
if(user.put_in_hands(inhand, TRUE))
|
||||
amount_equipped++
|
||||
else
|
||||
break
|
||||
if(amount_equipped >= amount_required)
|
||||
return TRUE
|
||||
else
|
||||
unequip_buckle_inhands(user)
|
||||
return FALSE
|
||||
|
||||
/datum/component/riding/proc/unequip_buckle_inhands(mob/living/carbon/user)
|
||||
var/atom/movable/AM = parent
|
||||
for(var/obj/item/riding_offhand/O in user.contents)
|
||||
if(O.parent != AM)
|
||||
CRASH("RIDING OFFHAND ON WRONG MOB")
|
||||
continue
|
||||
if(O.selfdeleting)
|
||||
continue
|
||||
else
|
||||
qdel(O)
|
||||
return TRUE
|
||||
|
||||
/obj/item/riding_offhand
|
||||
name = "offhand"
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "offhand"
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
flags_1 = ABSTRACT_1 | DROPDEL_1 | NOBLUDGEON_1
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
var/mob/living/carbon/rider
|
||||
var/mob/living/parent
|
||||
var/selfdeleting = FALSE
|
||||
|
||||
/obj/item/riding_offhand/dropped()
|
||||
selfdeleting = TRUE
|
||||
. = ..()
|
||||
|
||||
/obj/item/riding_offhand/equipped()
|
||||
if(loc != rider)
|
||||
selfdeleting = TRUE
|
||||
qdel(src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/riding_offhand/Destroy()
|
||||
var/atom/movable/AM = parent
|
||||
if(selfdeleting)
|
||||
if(rider in AM.buckled_mobs)
|
||||
AM.unbuckle_mob(rider)
|
||||
. = ..()
|
||||
|
||||
@@ -104,15 +104,7 @@
|
||||
else
|
||||
atomsnowflake += "<b>[D]</b>"
|
||||
|
||||
var/formatted_type = "[type]"
|
||||
if(length(formatted_type) > 25)
|
||||
var/middle_point = length(formatted_type) / 2
|
||||
var/splitpoint = findtext(formatted_type,"/",middle_point)
|
||||
if(splitpoint)
|
||||
formatted_type = "[copytext(formatted_type,1,splitpoint)]<br>[copytext(formatted_type,splitpoint)]"
|
||||
else
|
||||
formatted_type = "Type too long" //No suitable splitpoint (/) found.
|
||||
|
||||
var/formatted_type = replacetext("[type]", "/", "<wbr>/")
|
||||
var/marked
|
||||
if(holder && holder.marked_datum && holder.marked_datum == D)
|
||||
marked = "<br><font size='1' color='red'><b>Marked Object</b></font>"
|
||||
@@ -962,6 +954,42 @@
|
||||
manipulate_organs(C)
|
||||
href_list["datumrefresh"] = href_list["editorgans"]
|
||||
|
||||
else if(href_list["givetrauma"])
|
||||
if(!check_rights(0))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/C = locate(href_list["givetrauma"]) in GLOB.mob_list
|
||||
if(!istype(C))
|
||||
to_chat(usr, "This can only be done to instances of type /mob/living/carbon")
|
||||
return
|
||||
|
||||
var/list/traumas = subtypesof(/datum/brain_trauma)
|
||||
var/result = input(usr, "Choose the brain trauma to apply","Traumatize") as null|anything in traumas
|
||||
var/permanent = alert("Do you want to make the trauma unhealable?", "Permanently Traumatize", "Yes", "No")
|
||||
if(!usr)
|
||||
return
|
||||
if(QDELETED(C))
|
||||
to_chat(usr, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
if(result)
|
||||
C.gain_trauma(result, permanent)
|
||||
|
||||
href_list["datumrefresh"] = href_list["givetrauma"]
|
||||
|
||||
else if(href_list["curetraumas"])
|
||||
if(!check_rights(0))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/C = locate(href_list["curetraumas"]) in GLOB.mob_list
|
||||
if(!istype(C))
|
||||
to_chat(usr, "This can only be done to instances of type /mob/living/carbon")
|
||||
return
|
||||
|
||||
C.cure_all_traumas(TRUE, TRUE)
|
||||
|
||||
href_list["datumrefresh"] = href_list["curetraumas"]
|
||||
|
||||
else if(href_list["hallucinate"])
|
||||
if(!check_rights(0))
|
||||
return
|
||||
|
||||
@@ -54,8 +54,8 @@ Bonus
|
||||
else
|
||||
to_chat(M, "<span class='userdanger'>You can't think straight!</span>")
|
||||
M.confused = min(100 * power, M.confused + 8)
|
||||
if(brain_damage && M.getBrainLoss()<=80)
|
||||
M.adjustBrainLoss(5 * power)
|
||||
if(brain_damage)
|
||||
M.adjustBrainLoss(3 * power, 80)
|
||||
M.updatehealth()
|
||||
|
||||
return
|
||||
|
||||
@@ -27,7 +27,9 @@ Bonus
|
||||
symptom_delay_max = 10
|
||||
var/purge_alcohol = FALSE
|
||||
var/brain_heal = FALSE
|
||||
var/trauma_heal = FALSE
|
||||
threshold_desc = "<b>Resistance 6:</b> Heals brain damage.<br>\
|
||||
<b>Resistance 9:</b> Heals brain traumas.<br>\
|
||||
<b>Transmission 8:</b> Purges alcohol in the bloodstream."
|
||||
|
||||
/datum/symptom/mind_restoration/Start(datum/disease/advance/A)
|
||||
@@ -35,6 +37,8 @@ Bonus
|
||||
return
|
||||
if(A.properties["resistance"] >= 6) //heal brain damage
|
||||
brain_heal = TRUE
|
||||
if(A.properties["resistance"] >= 9) //heal brain traumas
|
||||
trauma_heal = TRUE
|
||||
if(A.properties["transmittable"] >= 8) //purge alcohol
|
||||
purge_alcohol = TRUE
|
||||
|
||||
@@ -66,3 +70,9 @@ Bonus
|
||||
|
||||
if(brain_heal && A.stage >= 5)
|
||||
M.adjustBrainLoss(-3)
|
||||
if(trauma_heal && iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
if(prob(30) && C.has_trauma_type(BRAIN_TRAUMA_SPECIAL))
|
||||
C.cure_trauma_type(BRAIN_TRAUMA_SPECIAL)
|
||||
if(prob(10) && C.has_trauma_type(BRAIN_TRAUMA_MILD))
|
||||
C.cure_trauma_type(BRAIN_TRAUMA_MILD)
|
||||
|
||||
@@ -24,15 +24,15 @@
|
||||
if(prob(2))
|
||||
to_chat(affected_mob, "<span class='danger'>You don't feel like yourself.</span>")
|
||||
if(prob(5))
|
||||
affected_mob.adjustBrainLoss(1)
|
||||
affected_mob.adjustBrainLoss(1, 170)
|
||||
affected_mob.updatehealth()
|
||||
if(3)
|
||||
if(prob(2))
|
||||
affected_mob.emote("stare")
|
||||
if(prob(2))
|
||||
affected_mob.emote("drool")
|
||||
if(prob(10) && affected_mob.getBrainLoss()<=98)//shouldn't retard you to death now
|
||||
affected_mob.adjustBrainLoss(2)
|
||||
if(prob(10))
|
||||
affected_mob.adjustBrainLoss(2, 170)
|
||||
affected_mob.updatehealth()
|
||||
if(prob(2))
|
||||
to_chat(affected_mob, "<span class='danger'>Your try to remember something important...but can't.</span>")
|
||||
@@ -42,8 +42,8 @@
|
||||
affected_mob.emote("stare")
|
||||
if(prob(2))
|
||||
affected_mob.emote("drool")
|
||||
if(prob(15) && affected_mob.getBrainLoss()<=98) //shouldn't retard you to death now
|
||||
affected_mob.adjustBrainLoss(3)
|
||||
if(prob(15))
|
||||
affected_mob.adjustBrainLoss(3, 170)
|
||||
affected_mob.updatehealth()
|
||||
if(prob(2))
|
||||
to_chat(affected_mob, "<span class='danger'>Strange buzzing fills your head, removing all thoughts.</span>")
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
"<span class='userdanger'>[A] kicks your head, knocking you out!</span>")
|
||||
playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1)
|
||||
D.SetSleeping(300)
|
||||
D.adjustBrainLoss(25)
|
||||
D.adjustBrainLoss(15, 150)
|
||||
return 1
|
||||
|
||||
/datum/martial_art/cqc/proc/Pressure(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user