@@ -69,35 +69,18 @@
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/security/prison)
|
||||
"aaj" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/security/prison)
|
||||
"aak" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/security/prison)
|
||||
"aal" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"aam" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/security/prison)
|
||||
@@ -115,11 +98,17 @@
|
||||
/obj/structure/sign/warning/electricshock{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/grass,
|
||||
/area/security/prison)
|
||||
"aap" = (
|
||||
/obj/machinery/hydroponics/soil,
|
||||
/obj/item/seeds/carrot,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/turf/open/floor/grass,
|
||||
/area/security/prison)
|
||||
"aaq" = (
|
||||
@@ -140,17 +129,29 @@
|
||||
/obj/structure/sink{
|
||||
pixel_y = 20
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"aar" = (
|
||||
/obj/machinery/hydroponics/soil,
|
||||
/obj/item/seeds/glowshroom,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/grass,
|
||||
/area/security/prison)
|
||||
"aas" = (
|
||||
/obj/structure/sign/warning/electricshock{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"aat" = (
|
||||
@@ -5666,6 +5667,9 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"akw" = (
|
||||
@@ -5845,10 +5849,13 @@
|
||||
/area/science/xenobiology)
|
||||
"akQ" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/security/brig)
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"akR" = (
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Security Office";
|
||||
@@ -6108,7 +6115,7 @@
|
||||
"alq" = (
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
name = "Evidence Storage";
|
||||
req_access_txt = "4"
|
||||
req_one_access_txt = "4;1"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -6142,25 +6149,11 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"alt" = (
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
id_tag = "innerbrig";
|
||||
name = "Brig";
|
||||
req_access_txt = "63"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
@@ -6180,16 +6173,11 @@
|
||||
/area/ai_monitored/nuke_storage)
|
||||
"alv" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "Secure Gate";
|
||||
name = "brig shutters"
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
"alw" = (
|
||||
@@ -6272,6 +6260,9 @@
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"alB" = (
|
||||
@@ -6572,9 +6563,6 @@
|
||||
/turf/open/floor/engine,
|
||||
/area/science/xenobiology)
|
||||
"amm" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
@@ -6609,6 +6597,9 @@
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"amq" = (
|
||||
@@ -6661,9 +6652,6 @@
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
@@ -6763,6 +6751,12 @@
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"amJ" = (
|
||||
@@ -6853,25 +6847,15 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
"amR" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "Secure Gate";
|
||||
name = "brig shutters"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
"amS" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/wall/r_wall,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"amT" = (
|
||||
/obj/structure/cable{
|
||||
@@ -7271,9 +7255,11 @@
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
"anQ" = (
|
||||
@@ -7281,9 +7267,6 @@
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"anR" = (
|
||||
@@ -7514,14 +7497,13 @@
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "Secure Gate";
|
||||
name = "brig shutters"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
@@ -7755,13 +7737,13 @@
|
||||
/area/security/brig)
|
||||
"aoZ" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "Secure Brig Control";
|
||||
name = "brig shutters"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/security/warden)
|
||||
"apa" = (
|
||||
@@ -7780,6 +7762,9 @@
|
||||
/area/science/xenobiology)
|
||||
"apc" = (
|
||||
/obj/structure/chair/office/dark,
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
/area/security/warden)
|
||||
"apd" = (
|
||||
@@ -7933,6 +7918,12 @@
|
||||
pixel_x = 6;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
/area/security/warden)
|
||||
"apw" = (
|
||||
@@ -8052,6 +8043,12 @@
|
||||
pixel_y = -24;
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
/area/security/warden)
|
||||
"apI" = (
|
||||
@@ -8133,9 +8130,6 @@
|
||||
req_access_txt = "63"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 1
|
||||
},
|
||||
@@ -8158,14 +8152,19 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"apT" = (
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "Cell Interior Shutters";
|
||||
name = "brig shutters"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/security/warden)
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
"apU" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/security/vacantoffice/b)
|
||||
@@ -8181,20 +8180,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"apX" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "Secure Brig Control";
|
||||
name = "brig shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/security/warden)
|
||||
"apY" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
@@ -8406,13 +8391,11 @@
|
||||
/area/crew_quarters/fitness/pool)
|
||||
"aqt" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "Secure Brig Control";
|
||||
name = "brig shutters"
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plating,
|
||||
/area/security/warden)
|
||||
"aqu" = (
|
||||
@@ -8858,6 +8841,9 @@
|
||||
c_tag = "Brig Control";
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
/area/security/warden)
|
||||
"arz" = (
|
||||
@@ -52616,9 +52602,6 @@
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"cLS" = (
|
||||
@@ -53521,9 +53504,17 @@
|
||||
/area/science/circuit)
|
||||
"dyE" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "Secure Gate";
|
||||
name = "brig shutters"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
"dyS" = (
|
||||
/obj/effect/turf_decal/tile/green{
|
||||
@@ -53583,9 +53574,6 @@
|
||||
/turf/open/space,
|
||||
/area/space/nearstation)
|
||||
"dCV" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
@@ -54994,11 +54982,11 @@
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
"gOZ" = (
|
||||
@@ -56342,15 +56330,15 @@
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"kcx" = (
|
||||
@@ -56869,9 +56857,6 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"laq" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
@@ -57160,7 +57145,7 @@
|
||||
/area/maintenance/starboard/aft)
|
||||
"lZn" = (
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
id_tag = "innerbrig";
|
||||
id_tag = null;
|
||||
name = "Brig Infirmary";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
@@ -58195,9 +58180,6 @@
|
||||
/area/hallway/primary/central)
|
||||
"ovv" = (
|
||||
/obj/structure/table,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
@@ -58540,9 +58522,6 @@
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
@@ -58671,9 +58650,6 @@
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
@@ -58681,7 +58657,10 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
@@ -58809,9 +58788,6 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/fitness)
|
||||
"pQr" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/green,
|
||||
/obj/effect/turf_decal/tile/green{
|
||||
dir = 8
|
||||
@@ -59498,9 +59474,6 @@
|
||||
/area/maintenance/bar)
|
||||
"rCl" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 1
|
||||
},
|
||||
@@ -59544,20 +59517,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/abandoned_gambling_den)
|
||||
"rJv" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "Secure Gate";
|
||||
name = "brig shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
"rJw" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/hemostat,
|
||||
@@ -59764,9 +59723,6 @@
|
||||
},
|
||||
/area/crew_quarters/fitness)
|
||||
"seP" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
@@ -61092,6 +61048,9 @@
|
||||
/area/maintenance/starboard/aft)
|
||||
"uXt" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"vae" = (
|
||||
@@ -61332,13 +61291,13 @@
|
||||
/area/crew_quarters/dorms)
|
||||
"vyK" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "Secure Gate";
|
||||
name = "brig shutters"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/security/brig)
|
||||
"vzp" = (
|
||||
@@ -88087,7 +88046,7 @@ aaa
|
||||
aaa
|
||||
aag
|
||||
aaa
|
||||
aak
|
||||
aam
|
||||
aap
|
||||
saX
|
||||
aaD
|
||||
@@ -88344,7 +88303,7 @@ aaa
|
||||
aaa
|
||||
aag
|
||||
aaf
|
||||
aaj
|
||||
aai
|
||||
aao
|
||||
aax
|
||||
aaC
|
||||
@@ -88370,7 +88329,7 @@ alz
|
||||
cZe
|
||||
alg
|
||||
plS
|
||||
dyE
|
||||
afM
|
||||
pQr
|
||||
aou
|
||||
aqC
|
||||
@@ -88601,7 +88560,7 @@ aaa
|
||||
aaa
|
||||
aag
|
||||
aaa
|
||||
aal
|
||||
aam
|
||||
aar
|
||||
uGI
|
||||
aaF
|
||||
@@ -88858,7 +88817,7 @@ aaa
|
||||
aaa
|
||||
aag
|
||||
aaf
|
||||
aaj
|
||||
aai
|
||||
aaq
|
||||
dyS
|
||||
aaE
|
||||
@@ -88883,10 +88842,10 @@ agj
|
||||
agM
|
||||
sAk
|
||||
akp
|
||||
akQ
|
||||
agj
|
||||
amB
|
||||
amn
|
||||
amS
|
||||
aiX
|
||||
anz
|
||||
anz
|
||||
aov
|
||||
@@ -89115,8 +89074,8 @@ aaa
|
||||
aaa
|
||||
aag
|
||||
aaa
|
||||
aal
|
||||
aat
|
||||
aam
|
||||
aaj
|
||||
aat
|
||||
aat
|
||||
aat
|
||||
@@ -89143,7 +89102,7 @@ akM
|
||||
amm
|
||||
gyr
|
||||
anM
|
||||
rJv
|
||||
xal
|
||||
aqC
|
||||
anz
|
||||
aox
|
||||
@@ -89372,7 +89331,7 @@ aaa
|
||||
aaa
|
||||
aag
|
||||
aaf
|
||||
aaj
|
||||
aai
|
||||
aas
|
||||
aat
|
||||
aat
|
||||
@@ -89395,12 +89354,12 @@ akU
|
||||
afM
|
||||
lBz
|
||||
alA
|
||||
ene
|
||||
alg
|
||||
alt
|
||||
amS
|
||||
kbm
|
||||
dyE
|
||||
afM
|
||||
cKC
|
||||
seP
|
||||
dyE
|
||||
aqC
|
||||
anR
|
||||
aow
|
||||
@@ -89630,7 +89589,7 @@ aaa
|
||||
aag
|
||||
aaa
|
||||
aam
|
||||
aav
|
||||
akQ
|
||||
aav
|
||||
aav
|
||||
aav
|
||||
@@ -89657,7 +89616,7 @@ akT
|
||||
gNE
|
||||
gLz
|
||||
anB
|
||||
amR
|
||||
seP
|
||||
aqC
|
||||
anz
|
||||
aov
|
||||
@@ -89911,10 +89870,10 @@ fxx
|
||||
ako
|
||||
ene
|
||||
amj
|
||||
akQ
|
||||
agj
|
||||
amB
|
||||
amn
|
||||
amS
|
||||
aiX
|
||||
anz
|
||||
anz
|
||||
aov
|
||||
@@ -90171,7 +90130,7 @@ amk
|
||||
amm
|
||||
gyr
|
||||
mos
|
||||
rJv
|
||||
xal
|
||||
aqC
|
||||
anz
|
||||
aov
|
||||
@@ -90424,11 +90383,11 @@ akF
|
||||
aiy
|
||||
akv
|
||||
uXt
|
||||
alg
|
||||
amS
|
||||
pAK
|
||||
dyE
|
||||
afM
|
||||
anQ
|
||||
seP
|
||||
dyE
|
||||
aqC
|
||||
anz
|
||||
aov
|
||||
@@ -90685,7 +90644,7 @@ akT
|
||||
amx
|
||||
any
|
||||
arD
|
||||
amR
|
||||
seP
|
||||
aqC
|
||||
anz
|
||||
aov
|
||||
@@ -90939,10 +90898,10 @@ ajc
|
||||
akz
|
||||
ene
|
||||
als
|
||||
akQ
|
||||
amB
|
||||
agj
|
||||
apT
|
||||
amn
|
||||
amS
|
||||
aiX
|
||||
aqD
|
||||
anz
|
||||
aov
|
||||
@@ -91196,7 +91155,7 @@ ajc
|
||||
akz
|
||||
ene
|
||||
alg
|
||||
alt
|
||||
alw
|
||||
amp
|
||||
aot
|
||||
apR
|
||||
@@ -91455,7 +91414,7 @@ itD
|
||||
alg
|
||||
vyK
|
||||
amI
|
||||
alg
|
||||
amS
|
||||
alv
|
||||
aqE
|
||||
anS
|
||||
@@ -91970,7 +91929,7 @@ agn
|
||||
agn
|
||||
amN
|
||||
aoZ
|
||||
apT
|
||||
agn
|
||||
anw
|
||||
anz
|
||||
cXU
|
||||
@@ -92227,7 +92186,7 @@ akY
|
||||
alE
|
||||
amU
|
||||
apH
|
||||
apX
|
||||
aqt
|
||||
aqC
|
||||
anz
|
||||
gfC
|
||||
|
||||
@@ -136,11 +136,15 @@
|
||||
#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" //from base of atom/attack_hand(): (mob/user)
|
||||
#define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw" //from base of atom/attack_paw(): (mob/user)
|
||||
#define COMPONENT_NO_ATTACK_HAND 1 //works on all 3.
|
||||
/////////////////
|
||||
|
||||
//This signal return value bitflags can be found in __DEFINES/misc.dm
|
||||
#define COMSIG_ATOM_INTERCEPT_Z_FALL "movable_intercept_z_impact" //called for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels)
|
||||
|
||||
|
||||
/////////////////
|
||||
/// Called from orbit component: (atom/movable/orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation)
|
||||
#define COMSIG_ATOM_ORBIT_BEGIN "atom_orbit_begin"
|
||||
/// Called from orbit component: (atom/movable/orbiter, refreshing)
|
||||
#define COMSIG_ATOM_ORBIT_END "atom_orbit_end"
|
||||
|
||||
#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area)
|
||||
#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area)
|
||||
@@ -536,3 +540,7 @@
|
||||
#define COMSIG_XENO_TURF_CLICK_SHIFT "xeno_turf_click_shift" //from turf ShiftClickOn(): (/mob)
|
||||
#define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" //from turf AltClickOn(): (/mob)
|
||||
#define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" //from monkey CtrlClickOn(): (/mob)
|
||||
|
||||
// twitch plays
|
||||
/// Returns direction: (wipe_votes)
|
||||
#define COMSIG_TWITCH_PLAYS_MOVEMENT_DATA "twitch_plays_movement_data"
|
||||
|
||||
@@ -72,3 +72,11 @@
|
||||
ASSERT(target_prefs)
|
||||
//In the future, maybe add custom path allowances a la admin create outfit but for now..
|
||||
return generate_custom_holoform_from_prefs(target_prefs, null, null, TRUE, TRUE)
|
||||
|
||||
//Errors go to user.
|
||||
/proc/generate_custom_holoform_from_prefs_safe(datum/preferences/prefs, mob/user)
|
||||
if(user)
|
||||
if(user.client.prefs.last_custom_holoform > world.time - CUSTOM_HOLOFORM_DELAY)
|
||||
to_chat(user, "<span class='boldwarning'>You are attempting to set your custom holoform too fast!</span>")
|
||||
return
|
||||
return generate_custom_holoform_from_prefs(prefs, null, null, TRUE, TRUE)
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
move_react()
|
||||
|
||||
/datum/component/orbiter/proc/begin_orbit(atom/movable/orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation)
|
||||
SEND_SIGNAL(parent, COMSIG_ATOM_ORBIT_BEGIN, orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation)
|
||||
if(orbiter.orbiting)
|
||||
if(orbiter.orbiting == src)
|
||||
orbiter.orbiting.end_orbit(orbiter, TRUE)
|
||||
@@ -87,6 +88,7 @@
|
||||
/datum/component/orbiter/proc/end_orbit(atom/movable/orbiter, refreshing=FALSE)
|
||||
if(!orbiters[orbiter])
|
||||
return
|
||||
SEND_SIGNAL(parent, COMSIG_ATOM_ORBIT_END, orbiter, refreshing)
|
||||
UnregisterSignal(orbiter, COMSIG_MOVABLE_MOVED)
|
||||
orbiter.SpinAnimation(0, 0)
|
||||
if(istype(orbiters[orbiter],/matrix)) //This is ugly.
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
|
||||
//KEYS
|
||||
/datum/component/riding/proc/keycheck(mob/user)
|
||||
return !keytype || user.is_holding_item_of_type(keytype)
|
||||
return !keytype || user?.is_holding_item_of_type(keytype)
|
||||
|
||||
//BUCKLE HOOKS
|
||||
/datum/component/riding/proc/restore_position(mob/living/buckled_mob)
|
||||
@@ -153,7 +153,7 @@
|
||||
|
||||
/datum/component/riding/proc/handle_ride(mob/user, direction)
|
||||
var/atom/movable/AM = parent
|
||||
if(user.incapacitated())
|
||||
if(user && user.incapacitated())
|
||||
Unbuckle(user)
|
||||
return
|
||||
if(world.time < last_vehicle_move + ((last_move_diagonal? 2 : 1) * vehicle_move_delay))
|
||||
|
||||
104
code/datums/components/twitch_plays.dm
Normal file
@@ -0,0 +1,104 @@
|
||||
/**
|
||||
* Observers voting on things through orbiting
|
||||
*/
|
||||
/datum/component/twitch_plays
|
||||
/// Observers
|
||||
var/list/mob/players = list()
|
||||
|
||||
/datum/component/twitch_plays/Initialize(...)
|
||||
. = ..()
|
||||
if(!isatom(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
RegisterSignal(parent, COMSIG_ATOM_ORBIT_BEGIN, .proc/on_start_orbit)
|
||||
RegisterSignal(parent, COMSIG_ATOM_ORBIT_END, .proc/on_end_orbit)
|
||||
|
||||
/datum/component/twitch_plays/Destroy(force, silent)
|
||||
for(var/i in players)
|
||||
DetachPlayer(i)
|
||||
return ..()
|
||||
|
||||
/datum/component/twitch_plays/proc/on_start_orbit(datum/source, atom/movable/orbiter)
|
||||
if(!isobserver(orbiter))
|
||||
return
|
||||
AttachPlayer(orbiter)
|
||||
|
||||
/datum/component/twitch_plays/proc/on_end_orbit(datum/source, atom/movable/orbiter)
|
||||
if(!(orbiter in players))
|
||||
return
|
||||
DetachPlayer(orbiter)
|
||||
|
||||
/datum/component/twitch_plays/proc/AttachPlayer(mob/dead/observer)
|
||||
players |= observer
|
||||
RegisterSignal(observer, COMSIG_PARENT_QDELETING, .proc/on_end_orbit)
|
||||
|
||||
/datum/component/twitch_plays/proc/DetachPlayer(mob/dead/observer)
|
||||
players -= observer
|
||||
UnregisterSignal(observer, COMSIG_PARENT_QDELETING)
|
||||
|
||||
/// Simple movement one
|
||||
/datum/component/twitch_plays/simple_movement
|
||||
/// Movement votes by observer
|
||||
var/list/votes = list()
|
||||
/// Allow diagonals
|
||||
var/allow_diagonal = FALSE
|
||||
|
||||
/datum/component/twitch_plays/simple_movement/Initialize(...)
|
||||
. = ..()
|
||||
if(. & COMPONENT_INCOMPATIBLE)
|
||||
return
|
||||
RegisterSignal(parent, COMSIG_TWITCH_PLAYS_MOVEMENT_DATA, .proc/fetch_data)
|
||||
|
||||
/datum/component/twitch_plays/simple_movement/AttachPlayer(mob/dead/observer)
|
||||
. = ..()
|
||||
RegisterSignal(observer, COMSIG_MOVABLE_PRE_MOVE, .proc/pre_move)
|
||||
|
||||
/datum/component/twitch_plays/simple_movement/DetachPlayer(mob/dead/observer)
|
||||
. = ..()
|
||||
UnregisterSignal(observer, COMSIG_MOVABLE_PRE_MOVE)
|
||||
|
||||
/datum/component/twitch_plays/simple_movement/proc/pre_move(datum/source, turf/newLoc)
|
||||
if(get_dist(newLoc, parent) > 1) // they're trying to escape orbit
|
||||
return
|
||||
. = COMPONENT_MOVABLE_BLOCK_PRE_MOVE
|
||||
var/dir = get_dir(parent, newLoc)
|
||||
if(!dir)
|
||||
return
|
||||
if(allow_diagonal || !((dir - 1) & dir))
|
||||
votes[source] = dir
|
||||
else // pick one or the other
|
||||
votes[source] = prob(50)? (dir & ~(dir - 1)) : (dir & (dir - 1))
|
||||
|
||||
/datum/component/twitch_plays/simple_movement/proc/fetch_data(datum/source, wipe_votes)
|
||||
if(!votes.len)
|
||||
return
|
||||
var/list/total = list(TEXT_NORTH, TEXT_SOUTH, TEXT_EAST, TEXT_WEST)
|
||||
for(var/i in votes)
|
||||
total[num2text(votes[i])] += 1
|
||||
. = text2num(pickweight(total, 0))
|
||||
if(wipe_votes)
|
||||
votes.len = 0
|
||||
|
||||
/datum/component/twitch_plays/simple_movement/auto
|
||||
var/move_delay = 2
|
||||
var/last_move = 0
|
||||
|
||||
/datum/component/twitch_plays/simple_movement/auto/Initialize(...)
|
||||
if(!ismovable(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
. = ..()
|
||||
if(. & COMPONENT_INCOMPATIBLE)
|
||||
return
|
||||
START_PROCESSING(SSfastprocess, src)
|
||||
|
||||
/datum/component/twitch_plays/simple_movement/auto/Destroy(force, silent)
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
return ..()
|
||||
|
||||
/datum/component/twitch_plays/simple_movement/auto/process()
|
||||
var/dir = fetch_data(null, TRUE)
|
||||
if(!dir)
|
||||
return
|
||||
if(world.time < (last_move + move_delay))
|
||||
return
|
||||
last_move = world.time
|
||||
step(parent, dir)
|
||||
@@ -7,6 +7,7 @@
|
||||
id = MARTIALART_SLEEPINGCARP
|
||||
allow_temp_override = FALSE
|
||||
help_verb = /mob/living/carbon/human/proc/sleeping_carp_help
|
||||
block_parry_data = /datum/block_parry_data/sleeping_carp
|
||||
pugilist = TRUE
|
||||
|
||||
/datum/martial_art/the_sleeping_carp/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
|
||||
@@ -325,10 +325,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "Service Hallway"
|
||||
icon_state = "hall_service"
|
||||
|
||||
/area/hallway/secondary/civilian
|
||||
name = "Civilian Wing"
|
||||
icon_state = "hallFS"
|
||||
|
||||
|
||||
//Command
|
||||
|
||||
@@ -469,6 +465,11 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "yellow"
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
|
||||
/area/crew_quarters/arcade
|
||||
name = "Arcade"
|
||||
icon_state = "abandoned_g_den"
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
|
||||
/area/crew_quarters/fitness
|
||||
name = "Fitness Room"
|
||||
icon_state = "fitness"
|
||||
@@ -479,6 +480,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "fitness"
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
|
||||
/area/crew_quarters/fitness/pool
|
||||
name = "Pool Area"
|
||||
icon_state = "pool"
|
||||
|
||||
/area/crew_quarters/cafeteria
|
||||
name = "Cafeteria"
|
||||
icon_state = "cafeteria"
|
||||
@@ -765,6 +770,11 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "medbay3"
|
||||
ambientsounds = MEDICAL
|
||||
|
||||
/area/medical/clinic
|
||||
name = "Clinic"
|
||||
icon_state = "medbay3"
|
||||
ambientsounds = MEDICAL
|
||||
|
||||
/area/medical/abandoned
|
||||
name = "Abandoned Medbay"
|
||||
icon_state = "medbay3"
|
||||
@@ -1036,10 +1046,19 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "janitor"
|
||||
flags_1 = NONE
|
||||
|
||||
/area/janitor/aux
|
||||
name = "Auxiliary Custodial Closet"
|
||||
icon_state = "janitor"
|
||||
flags_1 = NONE
|
||||
|
||||
/area/hydroponics
|
||||
name = "Hydroponics"
|
||||
icon_state = "hydro"
|
||||
|
||||
/area/hydroponics/lobby
|
||||
name = "Hydroponics Lobby"
|
||||
icon_state = "hydro"
|
||||
|
||||
/area/hydroponics/garden
|
||||
name = "Garden"
|
||||
icon_state = "garden"
|
||||
@@ -1058,6 +1077,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "Science Division"
|
||||
icon_state = "toxlab"
|
||||
|
||||
/area/science/observatory
|
||||
name = "Research Observatory"
|
||||
icon_state = "toxmisc"
|
||||
|
||||
/area/science/lab
|
||||
name = "Research and Development"
|
||||
icon_state = "toxlab"
|
||||
@@ -1186,6 +1209,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "storage"
|
||||
clockwork_warp_allowed = FALSE
|
||||
|
||||
/area/storage/emergency
|
||||
name = "Emergency Storage"
|
||||
icon_state = "emergencystorage"
|
||||
|
||||
/area/storage/emergency/starboard
|
||||
name = "Starboard Emergency Storage"
|
||||
icon_state = "emergencystorage"
|
||||
@@ -1395,100 +1422,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "Telecommunications Satellite Lounge"
|
||||
icon_state = "tcomsatlounge"
|
||||
|
||||
/area/crew_quarters/fitness/pool
|
||||
name = "Pool Area"
|
||||
icon_state = "pool"
|
||||
|
||||
/area/crew_quarters/dorms/blue
|
||||
name = "Blue Dorms"
|
||||
icon_state = "Sleep"
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_NONE
|
||||
|
||||
/area/crew_quarters/dorms/purple
|
||||
name = "Purple Dorms"
|
||||
icon_state = "Sleep"
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_NONE
|
||||
|
||||
/area/crew_quarters/lounge/jazz
|
||||
name = "Jazz Lounge"
|
||||
icon_state = "yellow"
|
||||
ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg')
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
|
||||
|
||||
/area/crew_quarters/fitness/recreation
|
||||
name = "Recreation Area"
|
||||
icon_state = "fitness"
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
|
||||
/area/crew_quarters/fitness/cogpool
|
||||
name = "Pool"
|
||||
icon_state = "fitness"
|
||||
clockwork_warp_fail = "Pool's closed."
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
|
||||
/area/crew_quarters/barbershop
|
||||
name = "Barbershop"
|
||||
icon_state = "blue"
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
|
||||
/area/crew_quarters/observatory
|
||||
name = "Observatory"
|
||||
icon_state = "Sleep"
|
||||
|
||||
//Engineering
|
||||
|
||||
/area/engine/teg_hot
|
||||
name = "Hot Loop"
|
||||
icon_state = "red"
|
||||
|
||||
/area/engine/teg_cold
|
||||
name = "Cold Loop"
|
||||
icon_state = "blue"
|
||||
|
||||
/area/engine/workshop
|
||||
name = "Engineering Workshop"
|
||||
icon_state = "engine"
|
||||
|
||||
/area/security/courtroom/jury
|
||||
name = "Jury Room"
|
||||
icon_state = "courtroom"
|
||||
|
||||
/area/quartermaster/miningdock/airless
|
||||
name = "Mining Dock"
|
||||
icon_state = "mining"
|
||||
has_gravity = STANDARD_GRAVITY
|
||||
valid_territory = FALSE
|
||||
outdoors = TRUE
|
||||
ambientsounds = SPACE
|
||||
blob_allowed = FALSE //While part of the station, what good will it do you?
|
||||
|
||||
/area/quartermaster/miningdock/airless/no_grav
|
||||
name = "Mining Dock"
|
||||
icon_state = "mining"
|
||||
dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT
|
||||
power_light = FALSE
|
||||
power_equip = FALSE
|
||||
power_environ = FALSE
|
||||
valid_territory = FALSE
|
||||
outdoors = TRUE
|
||||
ambientsounds = SPACE
|
||||
blob_allowed = FALSE //While part of the station, what good will it do you?
|
||||
|
||||
/area/janitor/aux
|
||||
name = "Auxiliary Custodial Closet"
|
||||
icon_state = "janitor"
|
||||
flags_1 = NONE
|
||||
|
||||
/area/hydroponics/lobby
|
||||
name = "Hydroponics Lobby"
|
||||
icon_state = "hydro"
|
||||
|
||||
//Storage
|
||||
|
||||
/area/storage/emergency/generic
|
||||
name = "Emergency Storage"
|
||||
icon_state = "emergencystorage"
|
||||
|
||||
//Construction
|
||||
|
||||
@@ -1545,10 +1478,99 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "Storage Wing"
|
||||
icon_state = "storage_wing"
|
||||
|
||||
//Routers
|
||||
//Areas that predominantly only apply to CogStation
|
||||
|
||||
/area/crew_quarters/dorms/blue
|
||||
name = "Blue Dorms"
|
||||
icon_state = "Sleep"
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_NONE
|
||||
|
||||
/area/crew_quarters/dorms/purple
|
||||
name = "Purple Dorms"
|
||||
icon_state = "Sleep"
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_NONE
|
||||
|
||||
/area/crew_quarters/lounge/jazz
|
||||
name = "Jazz Lounge"
|
||||
icon_state = "yellow"
|
||||
ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg')
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
|
||||
/area/crew_quarters/fitness/cogpool
|
||||
name = "Pool"
|
||||
icon_state = "fitness"
|
||||
clockwork_warp_fail = "Pool's closed."
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
|
||||
/area/crew_quarters/barbershop
|
||||
name = "Barbershop"
|
||||
icon_state = "blue"
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
|
||||
/area/crew_quarters/observatory
|
||||
name = "Observatory"
|
||||
icon_state = "Sleep"
|
||||
|
||||
/area/hallway/secondary/civilian
|
||||
name = "Civilian Wing"
|
||||
icon_state = "hallFS"
|
||||
|
||||
/area/engine/atmos/aftair
|
||||
name = "Aft Air Hookup"
|
||||
icon_state = "atmos"
|
||||
flags_1 = NONE
|
||||
|
||||
/area/engine/teg
|
||||
name = "Thermo-Electric Generator"
|
||||
icon_state = "engine"
|
||||
|
||||
/area/engine/teg/hotloop
|
||||
name = "Hot Loop"
|
||||
icon_state = "red"
|
||||
|
||||
/area/engine/teg/coldloop
|
||||
name = "Cold Loop"
|
||||
icon_state = "blue"
|
||||
|
||||
/area/engine/workshop
|
||||
name = "Engineering Workshop"
|
||||
icon_state = "engine"
|
||||
|
||||
/area/engine/substation
|
||||
name = "Electrical Substation"
|
||||
icon_state = "engine"
|
||||
|
||||
/area/security/courtroom/jury
|
||||
name = "Jury Room"
|
||||
icon_state = "courtroom"
|
||||
|
||||
/area/quartermaster/miningdock/airless
|
||||
name = "Mining Dock"
|
||||
icon_state = "mining"
|
||||
has_gravity = STANDARD_GRAVITY
|
||||
valid_territory = FALSE
|
||||
outdoors = TRUE
|
||||
ambientsounds = SPACE
|
||||
blob_allowed = FALSE //While part of the station, what good will it do you?
|
||||
|
||||
/area/quartermaster/miningdock/airless/no_grav
|
||||
name = "Mining Dock"
|
||||
icon_state = "mining"
|
||||
dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT
|
||||
power_light = FALSE
|
||||
power_equip = FALSE
|
||||
power_environ = FALSE
|
||||
valid_territory = FALSE
|
||||
outdoors = TRUE
|
||||
ambientsounds = SPACE
|
||||
blob_allowed = FALSE //While part of the station, what good will it do you?
|
||||
|
||||
|
||||
|
||||
//Routers (currently exclusive to CogStation)
|
||||
|
||||
/area/router
|
||||
name = "Router"
|
||||
name = "Routing Depot"
|
||||
icon_state = "yellow"
|
||||
ambientsounds = ENGINEERING
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
var/mode = HEATER_MODE_STANDBY
|
||||
var/setMode = "auto" // Anything other than "heat" or "cool" is considered auto.
|
||||
var/targetTemperature = T20C
|
||||
var/heatingPower = 40000
|
||||
var/heatingPower = 10000
|
||||
var/efficiency = 20000
|
||||
var/temperatureTolerance = 1
|
||||
var/settableTemperatureMedian = 30 + T0C
|
||||
@@ -74,46 +74,55 @@
|
||||
|
||||
if(cell && cell.charge > 0)
|
||||
var/turf/L = loc
|
||||
if(!istype(L))
|
||||
if(mode != HEATER_MODE_STANDBY)
|
||||
mode = HEATER_MODE_STANDBY
|
||||
update_icon()
|
||||
return
|
||||
PerformHeating(L)
|
||||
|
||||
var/datum/gas_mixture/env = L.return_air()
|
||||
for(var/direction in GLOB.alldirs)
|
||||
L=get_step(src,direction)
|
||||
if(!locate(/turf/closed) in L) // we don't want to heat walls and cause jank
|
||||
PerformHeating(L)
|
||||
|
||||
var/newMode = HEATER_MODE_STANDBY
|
||||
if(setMode != HEATER_MODE_COOL && env.return_temperature() < targetTemperature - temperatureTolerance)
|
||||
newMode = HEATER_MODE_HEAT
|
||||
else if(setMode != HEATER_MODE_HEAT && env.return_temperature() > targetTemperature + temperatureTolerance)
|
||||
newMode = HEATER_MODE_COOL
|
||||
|
||||
if(mode != newMode)
|
||||
mode = newMode
|
||||
update_icon()
|
||||
|
||||
if(mode == HEATER_MODE_STANDBY)
|
||||
return
|
||||
|
||||
var/heat_capacity = env.heat_capacity()
|
||||
var/requiredPower = abs(env.return_temperature() - targetTemperature) * heat_capacity
|
||||
requiredPower = min(requiredPower, heatingPower)
|
||||
|
||||
if(requiredPower < 1)
|
||||
return
|
||||
|
||||
var/deltaTemperature = requiredPower / heat_capacity
|
||||
if(mode == HEATER_MODE_COOL)
|
||||
deltaTemperature *= -1
|
||||
if(deltaTemperature)
|
||||
env.set_temperature(env.return_temperature() + deltaTemperature)
|
||||
air_update_turf()
|
||||
cell.use(requiredPower / efficiency)
|
||||
else
|
||||
on = FALSE
|
||||
update_icon()
|
||||
return PROCESS_KILL
|
||||
|
||||
/obj/machinery/space_heater/proc/PerformHeating(turf/L)
|
||||
if(!istype(L))
|
||||
if(mode != HEATER_MODE_STANDBY)
|
||||
mode = HEATER_MODE_STANDBY
|
||||
update_icon()
|
||||
return
|
||||
|
||||
var/datum/gas_mixture/env = L.return_air()
|
||||
|
||||
var/newMode = HEATER_MODE_STANDBY
|
||||
if(setMode != HEATER_MODE_COOL && env.return_temperature() < targetTemperature - temperatureTolerance)
|
||||
newMode = HEATER_MODE_HEAT
|
||||
else if(setMode != HEATER_MODE_HEAT && env.return_temperature() > targetTemperature + temperatureTolerance)
|
||||
newMode = HEATER_MODE_COOL
|
||||
|
||||
if(mode != newMode)
|
||||
mode = newMode
|
||||
update_icon()
|
||||
|
||||
if(mode == HEATER_MODE_STANDBY)
|
||||
return
|
||||
|
||||
var/heat_capacity = env.heat_capacity()
|
||||
var/requiredPower = abs(env.return_temperature() - targetTemperature) * heat_capacity
|
||||
requiredPower = min(requiredPower, heatingPower)
|
||||
|
||||
if(requiredPower < 1)
|
||||
return
|
||||
|
||||
var/deltaTemperature = requiredPower / heat_capacity
|
||||
if(mode == HEATER_MODE_COOL)
|
||||
deltaTemperature *= -1
|
||||
if(deltaTemperature)
|
||||
env.set_temperature(env.return_temperature() + deltaTemperature)
|
||||
air_update_turf()
|
||||
cell.use(requiredPower / efficiency)
|
||||
|
||||
/obj/machinery/space_heater/RefreshParts()
|
||||
var/laser = 2
|
||||
var/cap = 1
|
||||
@@ -122,7 +131,7 @@
|
||||
for(var/obj/item/stock_parts/capacitor/M in component_parts)
|
||||
cap += M.rating
|
||||
|
||||
heatingPower = laser * 40000
|
||||
heatingPower = laser * 10000
|
||||
|
||||
settableTemperatureRange = cap * 30
|
||||
efficiency = (cap + 1) * 10000
|
||||
|
||||
@@ -80,6 +80,17 @@
|
||||
to_chat(user, "<span class='notice'>You insert the credits into [src].</span>")
|
||||
update_icon()
|
||||
qdel(H)
|
||||
if(istype(I, /obj/item/card/id))
|
||||
var/obj/item/card/id/ID = I
|
||||
if(!ID.registered_account)
|
||||
to_chat(user, "<span class='warning'>[ID] doesn't have a linked account to deposit into!</span>")
|
||||
return
|
||||
for(var/obj/item/holochip/money in src.loc.contents)
|
||||
ID.attackby(money, user)
|
||||
for(var/obj/item/stack/spacecash/money in src.loc.contents)
|
||||
ID.attackby(money, user)
|
||||
for(var/obj/item/coin/money in src.loc.contents)
|
||||
ID.attackby(money, user)
|
||||
|
||||
/obj/item/holochip/AltClick(mob/user)
|
||||
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
|
||||
|
||||
@@ -33,6 +33,20 @@
|
||||
. = ..()
|
||||
update_desc()
|
||||
|
||||
/obj/item/stack/spacecash/attackby(obj/item/W, mob/user, params)
|
||||
. = ..()
|
||||
if(istype(W, /obj/item/card/id))
|
||||
var/obj/item/card/id/ID = W
|
||||
if(!ID.registered_account)
|
||||
to_chat(user, "<span class='warning'>[ID] doesn't have a linked account to deposit into!</span>")
|
||||
return
|
||||
for(var/obj/item/holochip/money in src.loc.contents)
|
||||
ID.attackby(money, user)
|
||||
for(var/obj/item/stack/spacecash/money in src.loc.contents)
|
||||
ID.attackby(money, user)
|
||||
for(var/obj/item/coin/money in src.loc.contents)
|
||||
ID.attackby(money, user)
|
||||
|
||||
/obj/item/stack/spacecash/c1
|
||||
icon_state = "spacecash"
|
||||
singular_name = "one credit bill"
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if(user.stat != DEAD)
|
||||
user.emote("deathgasp")
|
||||
user.tod = STATION_TIME_TIMESTAMP("hh:mm:ss", world.time)
|
||||
user.fakedeath("changeling") //play dead
|
||||
user.fakedeath("changeling", TRUE) //play dead
|
||||
user.update_stat()
|
||||
|
||||
addtimer(CALLBACK(src, .proc/ready_to_regenerate, user), LING_FAKEDEATH_TIME, TIMER_UNIQUE)
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
chemical_cost = 1000
|
||||
dna_cost = -1
|
||||
|
||||
var/recharge_slowdown = 0
|
||||
var/silent = FALSE
|
||||
var/weapon_type
|
||||
var/weapon_name_simple
|
||||
@@ -37,6 +38,8 @@
|
||||
if(!silent)
|
||||
playsound(user, 'sound/effects/blobattack.ogg', 30, 1)
|
||||
user.visible_message("<span class='warning'>With a sickening crunch, [user] reforms [user.p_their()] [weapon_name_simple] into an arm!</span>", "<span class='notice'>We assimilate the [weapon_name_simple] back into our body.</span>", "<span class='italics>You hear organic matter ripping and tearing!</span>")
|
||||
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
|
||||
changeling.chem_recharge_slowdown -= recharge_slowdown
|
||||
user.update_inv_hands()
|
||||
return 1
|
||||
|
||||
@@ -57,6 +60,8 @@
|
||||
user.put_in_hands(W)
|
||||
if(!silent)
|
||||
playsound(user, 'sound/effects/blobattack.ogg', 30, 1)
|
||||
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
|
||||
changeling.chem_recharge_slowdown += recharge_slowdown
|
||||
return W
|
||||
|
||||
/obj/effect/proc_holder/changeling/weapon/on_refund(mob/user)
|
||||
@@ -141,10 +146,11 @@
|
||||
name = "Arm Blade"
|
||||
desc = "We reform one of our arms into a deadly blade."
|
||||
helptext = "We may retract our armblade in the same manner as we form it. Cannot be used while in lesser form. This ability is loud, and might cause our blood to react violently to heat."
|
||||
chemical_cost = 10
|
||||
chemical_cost = 5
|
||||
dna_cost = 2
|
||||
loudness = 2
|
||||
req_human = 1
|
||||
recharge_slowdown = 0.6
|
||||
weapon_type = /obj/item/melee/arm_blade
|
||||
weapon_name_simple = "blade"
|
||||
action_icon = 'icons/mob/actions/actions_changeling.dmi'
|
||||
@@ -487,7 +493,7 @@
|
||||
helmet_type = /obj/item/clothing/head/helmet/space/changeling
|
||||
suit_name_simple = "flesh shell"
|
||||
helmet_name_simple = "space helmet"
|
||||
recharge_slowdown = 0.5
|
||||
recharge_slowdown = 0.6
|
||||
blood_on_castoff = 1
|
||||
|
||||
/obj/item/clothing/suit/space/changeling
|
||||
@@ -532,11 +538,11 @@
|
||||
name = "Chitinous Armor"
|
||||
desc = "We turn our skin into tough chitin to protect us from damage."
|
||||
helptext = "Upkeep of the armor requires a constant expenditure of chemicals, resulting in a reduced chemical generation. The armor is strong against brute force, but does not provide much protection from lasers. Cannot be used in lesser form. This ability is loud, and might cause our blood to react violently to heat."
|
||||
chemical_cost = 20
|
||||
chemical_cost = 10
|
||||
dna_cost = 1
|
||||
loudness = 2
|
||||
req_human = 1
|
||||
recharge_slowdown = 0.5
|
||||
recharge_slowdown = 0.6
|
||||
action_icon = 'icons/mob/actions/actions_changeling.dmi'
|
||||
action_icon_state = "ling_armor"
|
||||
action_background_icon_state = "bg_ling"
|
||||
@@ -662,10 +668,11 @@
|
||||
name = "Bone Gauntlets"
|
||||
desc = "We turn our hands into solid bone and chitin, sacrificing dexterity for raw strength."
|
||||
helptext = "These grotesque, bone-and-chitin gauntlets are remarkably good at beating victims senseless, and cannot be used in lesser form. This ability is loud, and might cause our blood to react violently to heat."
|
||||
chemical_cost = 10 // same cost as armblade because its a sidegrade (sacrifice utility for punching people violently)
|
||||
chemical_cost = 5 // same cost as armblade because its a sidegrade (sacrifice utility for punching people violently)
|
||||
dna_cost = 2
|
||||
loudness = 2
|
||||
req_human = 1
|
||||
recharge_slowdown = 0.6
|
||||
action_icon = 'icons/mob/actions/actions_changeling.dmi'
|
||||
action_icon_state = "ling_gauntlets"
|
||||
action_background_icon_state = "bg_ling"
|
||||
|
||||
@@ -2,8 +2,10 @@
|
||||
name = "Codex Cicatrix"
|
||||
desc = "Book describing the secrets of the veil."
|
||||
icon = 'icons/obj/eldritch.dmi'
|
||||
icon_state = "book"
|
||||
item_state = "book"
|
||||
icon_state = "codex"
|
||||
item_state = "codex"
|
||||
lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi'
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
///Last person that touched this
|
||||
var/mob/living/last_user
|
||||
|
||||
@@ -68,10 +68,6 @@
|
||||
R.reaction(turfing ? target : target.loc, TOUCH, 1, 0)
|
||||
if(!turfing)
|
||||
R.trans_to(target, R.total_volume * (spill ? G.fluid_transfer_factor : 1))
|
||||
|
||||
overlay_fullscreen("flash", /obj/screen/fullscreen/flash) // To be more true to the hentai
|
||||
clear_fullscreen("flash", 20)
|
||||
|
||||
G.last_orgasmed = world.time
|
||||
R.clear_reagents()
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
/datum/supply_pack/critter/parrot/generate()
|
||||
. = ..()
|
||||
for(var/i in 1 to 5)
|
||||
switch(rand(1, 23))
|
||||
switch(rand(1, 24))
|
||||
if(1)
|
||||
new /mob/living/simple_animal/parrot(.)
|
||||
if(2)
|
||||
@@ -82,6 +82,8 @@
|
||||
new /mob/living/simple_animal/parrot/hooded_too(.)
|
||||
if(23)
|
||||
new /mob/living/simple_animal/parrot/pink_too(.)
|
||||
if(24)
|
||||
new /mob/living/simple_animal/parrot/eclectusr(.)
|
||||
|
||||
|
||||
/datum/supply_pack/critter/butterfly
|
||||
|
||||
@@ -397,6 +397,17 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need one length of cable to attach a string to the coin!</span>")
|
||||
return
|
||||
else if(istype(W, /obj/item/card/id))
|
||||
var/obj/item/card/id/ID = W
|
||||
if(!ID.registered_account)
|
||||
to_chat(user, "<span class='warning'>[ID] doesn't have a linked account to deposit into!</span>")
|
||||
return
|
||||
for(var/obj/item/holochip/money in src.loc.contents)
|
||||
ID.attackby(money, user)
|
||||
for(var/obj/item/stack/spacecash/money in src.loc.contents)
|
||||
ID.attackby(money, user)
|
||||
for(var/obj/item/coin/money in src.loc.contents)
|
||||
ID.attackby(money, user)
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
@@ -380,6 +380,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
|
||||
/mob/dead/observer/Move(NewLoc, direct)
|
||||
if (SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_MOVE, NewLoc) & COMPONENT_MOVABLE_BLOCK_PRE_MOVE)
|
||||
return
|
||||
if(updatedir)
|
||||
setDir(direct)//only update dir if we actually need it, so overlays won't spin on base sprites that don't have directions of their own
|
||||
var/oldloc = loc
|
||||
|
||||
@@ -190,6 +190,11 @@
|
||||
message = "chimes."
|
||||
sound = 'sound/machines/chime.ogg'
|
||||
|
||||
/datum/emote/sound/human/squeak
|
||||
key = "squeak"
|
||||
message = "squeaks."
|
||||
sound = 'sound/effects/mousesqueek.ogg'
|
||||
|
||||
//rock paper scissors emote handling
|
||||
/mob/living/carbon/human/proc/beginRockPaperScissors(var/chosen_move)
|
||||
GLOB.rockpaperscissors_players[src] = list(chosen_move, ROCKPAPERSCISSORS_NOT_DECIDED)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,WINGCOLOR,HAS_FLESH)
|
||||
mutantlungs = /obj/item/organ/lungs/slime
|
||||
mutant_heart = /obj/item/organ/heart/slime
|
||||
mutant_bodyparts = list("mcolor" = "FFFFFF", "mam_tail" = "None", "mam_ears" = "None", "mam_snouts" = "None", "taur" = "None", "deco_wings" = "None")
|
||||
mutant_bodyparts = list("mcolor" = "FFFFFF", "mam_tail" = "None", "mam_ears" = "None", "mam_snouts" = "None", "taur" = "None", "deco_wings" = "None", "legs" = "Plantigrade")
|
||||
inherent_traits = list(TRAIT_TOXINLOVER)
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime
|
||||
gib_types = list(/obj/effect/gibspawner/slime, /obj/effect/gibspawner/slime/bodypartless)
|
||||
@@ -406,7 +406,7 @@
|
||||
default_color = "00FFFF"
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR)
|
||||
inherent_traits = list(TRAIT_TOXINLOVER)
|
||||
mutant_bodyparts = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "Plain", "mam_snouts" = "None", "taur" = "None")
|
||||
mutant_bodyparts = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "Plain", "mam_snouts" = "None", "taur" = "None", "legs" = "Plantigrade")
|
||||
say_mod = "says"
|
||||
hair_color = "mutcolor"
|
||||
hair_alpha = 160 //a notch brighter so it blends better.
|
||||
|
||||
@@ -1,3 +1,30 @@
|
||||
/mob/living/silicon/verb/clear_custom_holoform()
|
||||
set name = "Clear Custom Holoform"
|
||||
set desc = "Clear your current custom holoform"
|
||||
set category = "OOC"
|
||||
if(!client.prefs)
|
||||
to_chat(src, "<span class='boldwarning'>No preferences datum on your client, contact an admin/coder!</span>")
|
||||
return
|
||||
client.prefs.custom_holoform_icon = null
|
||||
client.prefs.cached_holoform_icons = null
|
||||
to_chat(src, "<span class='boldnotice'>Holoform removed.</span>")
|
||||
|
||||
/mob/living/silicon/verb/set_custom_holoform()
|
||||
set name = "Set Custom Holoform"
|
||||
set desc = "Set your custom holoform using your current preferences slot and a specified set of gear."
|
||||
if(!client.prefs)
|
||||
to_chat(src, "<span class='boldwarning'>No preferences datum on your client, contact an admin/coder!</span>")
|
||||
return
|
||||
if(client.prefs.last_custom_holoform > world.time - CUSTOM_HOLOFORM_DELAY)
|
||||
to_chat(src, "<span class='warning'>You are attempting to change custom holoforms too fast!</span>")
|
||||
|
||||
var/icon/new_holoform = user_interface_custom_holoform(client)
|
||||
if(new_holoform)
|
||||
client.prefs.custom_holoform_icon = new_holoform
|
||||
client.prefs.cached_holoform_icons = null
|
||||
client.prefs.last_custom_holoform = world.time
|
||||
to_chat(src, "<span class='boldnotice'>Holoform set.</span>")
|
||||
|
||||
/mob/living/silicon/proc/attempt_set_custom_holoform()
|
||||
if(!client.prefs)
|
||||
to_chat(src, "<span class='boldwarning'>No preferences datum on your client, contact an admin/coder!</span>")
|
||||
|
||||
@@ -9,6 +9,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
|
||||
real_name = "Guardian Spirit"
|
||||
desc = "A mysterious being that stands by its charge, ever vigilant."
|
||||
speak_emote = list("hisses")
|
||||
rad_flags = RAD_NO_CONTAMINATE | RAD_PROTECT_CONTENTS
|
||||
gender = NEUTER
|
||||
mob_biotypes = NONE
|
||||
bubble_icon = "guardian"
|
||||
|
||||
@@ -1042,123 +1042,151 @@
|
||||
icon_state = "kea-flap"
|
||||
icon_living = "kea-flap"
|
||||
icon_dead = "kea-dead"
|
||||
icon_sit = "kea_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/eclectusr
|
||||
name = "Eclectus"
|
||||
icon_state = "eclectusr-flap"
|
||||
icon_living = "eclectusr-flap"
|
||||
icon_dead = "eclectusr-dead"
|
||||
icon_sit = "electusr_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/eclectus
|
||||
name = "Eclectus"
|
||||
icon_state = "eclectus-flap"
|
||||
icon_living = "eclectus-flap"
|
||||
icon_dead = "eclectus-dead"
|
||||
icon_sit = "electus_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/eclectusf
|
||||
name = "Eclectus"
|
||||
icon_state = "eclectusf-flap"
|
||||
icon_living = "eclectusf-flap"
|
||||
icon_dead = "eclectusf-dead"
|
||||
icon_sit = "electusf_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/greybird
|
||||
name = "Grey Bird"
|
||||
icon_state = "agrey-flap"
|
||||
icon_living = "agrey-flap"
|
||||
icon_dead = "agrey-dead"
|
||||
icon_sit = "agrey_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/blue_caique
|
||||
name = "Blue Caique "
|
||||
icon_state = "bcaique-flap"
|
||||
icon_living = "bcaique-flap"
|
||||
icon_dead = "bcaique-dead"
|
||||
icon_sit = "bcaique_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/white_caique
|
||||
name = "White caique"
|
||||
icon_state = "wcaique-flap"
|
||||
icon_living = "wcaique-flap"
|
||||
icon_dead = "wcaique-dead"
|
||||
icon_sit = "wcaique_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/green_budgerigar
|
||||
name = "Green Budgerigar"
|
||||
icon_state = "gbudge-flap"
|
||||
icon_living = "gbudge-flap"
|
||||
icon_dead = "gbudge-dead"
|
||||
icon_sit = "gbudge_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/blue_Budgerigar
|
||||
name = "Blue Budgerigar"
|
||||
icon_state = "bbudge-flap"
|
||||
icon_living = "bbudge-flap"
|
||||
icon_dead = "bbudge-dead"
|
||||
icon_sit = "bbudge_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/bluegreen_Budgerigar
|
||||
name = "Bluegreen Budgerigar"
|
||||
icon_state = "bgbudge-flap"
|
||||
icon_living = "bgbudge-flap"
|
||||
icon_dead = "bgbudge-dead"
|
||||
icon_sit = "bgbudge_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/commonblackbird
|
||||
name = "Black Bird"
|
||||
icon_state = "commonblackbird"
|
||||
icon_living = "commonblackbird"
|
||||
icon_dead = "commonblackbird-dead"
|
||||
icon_sit = "commonblackbird_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/azuretit
|
||||
name = "Azure Tit"
|
||||
icon_state = "azuretit"
|
||||
icon_living = "azuretit"
|
||||
icon_dead = "azuretit-dead"
|
||||
icon_sit = "azuretit_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/europeanrobin
|
||||
name = "European Robin"
|
||||
icon_state = "europeanrobin"
|
||||
icon_living = "europeanrobin"
|
||||
icon_dead = "europeanrobin-dead"
|
||||
icon_sit = "europeanrobin_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/goldcrest
|
||||
name = "Goldcrest"
|
||||
icon_state = "goldcrest"
|
||||
icon_living = "goldcrest"
|
||||
icon_dead = "goldcrest-dead"
|
||||
icon_sit = "goldencrest_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/ringneckdove
|
||||
name = "Ringneck Dove"
|
||||
icon_state = "ringneckdove"
|
||||
icon_living = "ringneckdove"
|
||||
icon_dead = "ringneckdove-dead"
|
||||
icon_sit = "ringneckdove_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/cockatiel
|
||||
name = "Cockatiel"
|
||||
icon_state = "tiel-flap"
|
||||
icon_living = "tiel-flap"
|
||||
icon_dead = "tiel-dead"
|
||||
icon_sit = "tiel_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/white_cockatiel
|
||||
name = "White Cockatiel"
|
||||
icon_state = "wtiel-flap"
|
||||
icon_living = "wtiel-flap"
|
||||
icon_dead = "wtiel-dead"
|
||||
icon_sit = "wtiel_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/yellowish_cockatiel
|
||||
name = "Yellowish Cockatiel"
|
||||
icon_state = "luttiel-flap"
|
||||
icon_living = "luttiel-flap"
|
||||
icon_dead = "luttiel-dead"
|
||||
icon_sit = "luttiel_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/grey_cockatiel
|
||||
name = "Grey Cockatiel"
|
||||
icon_state = "blutiel-flap"
|
||||
icon_living = "blutiel-flap"
|
||||
icon_dead = "blutiel-dead"
|
||||
icon_sit = "blutiel_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/too
|
||||
name = "Too"
|
||||
icon_state = "too-flap"
|
||||
icon_living = "too-flap"
|
||||
icon_dead = "too-dead"
|
||||
icon_sit = "too_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/hooded_too
|
||||
name = "Utoo"
|
||||
icon_state = "utoo-flap"
|
||||
icon_living = "utoo-flap"
|
||||
icon_dead = "utoo-dead"
|
||||
icon_sit = "utoo_sit"
|
||||
|
||||
/mob/living/simple_animal/parrot/pink_too
|
||||
name = "Mtoo"
|
||||
icon_state = "mtoo-flap"
|
||||
icon_living = "mtoo-flap"
|
||||
icon_dead = "mtoo-dead"
|
||||
icon_dead = "mtoo-dead"
|
||||
icon_sit = "mtoo_sit"
|
||||
@@ -148,8 +148,8 @@ proc/get_top_level_mob(var/mob/S)
|
||||
var/safety = 25
|
||||
for(var/obj/structure/table/T in range(user, 1))
|
||||
processing |= T
|
||||
for(var/i in processing)
|
||||
var/obj/structure/table/T = i
|
||||
for(var/i = 1; i <= processing.len; ++i)
|
||||
var/obj/structure/table/T = processing[i]
|
||||
if(safety-- <= 0)
|
||||
to_chat(user, "Table scan aborted early, some people might have not received the message (max 25)")
|
||||
break
|
||||
|
||||
@@ -633,7 +633,7 @@
|
||||
value = REAGENT_VALUE_RARE
|
||||
|
||||
/datum/reagent/medicine/sal_acid
|
||||
name = "Salicyclic Acid"
|
||||
name = "Salicylic Acid"
|
||||
description = "Stimulates the healing of severe bruises. Extremely rapidly heals severe bruising and slowly heals minor ones. Overdose will worsen existing bruising."
|
||||
reagent_state = LIQUID
|
||||
color = "#D2D2D2"
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
required_reagents = list(/datum/reagent/medicine/pen_acid = 1, /datum/reagent/toxin/slimejelly = 1)
|
||||
|
||||
/datum/chemical_reaction/sal_acid
|
||||
name = "Salicyclic Acid"
|
||||
name = "Salicylic Acid"
|
||||
id = /datum/reagent/medicine/sal_acid
|
||||
results = list(/datum/reagent/medicine/sal_acid = 5)
|
||||
required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/phenol = 1, /datum/reagent/carbon = 1, /datum/reagent/oxygen = 1, /datum/reagent/toxin/acid = 1)
|
||||
|
||||
@@ -18,14 +18,12 @@
|
||||
. = ..()
|
||||
initialize_controller_action_type(/datum/action/vehicle/sealed/horn/clowncar, VEHICLE_CONTROL_DRIVE)
|
||||
|
||||
|
||||
/obj/vehicle/sealed/car/clowncar/driver_move(mob/user, direction) //Prevent it from moving onto space
|
||||
if(isspaceturf(get_step(src, direction)))
|
||||
return FALSE
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/vehicle/sealed/car/clowncar/auto_assign_occupant_flags(mob/M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
@@ -138,3 +136,24 @@
|
||||
|
||||
/obj/vehicle/sealed/car/clowncar/proc/StopDroppingOil()
|
||||
droppingoil = FALSE
|
||||
|
||||
/obj/vehicle/sealed/car/clowncar/twitch_plays
|
||||
key_type = null
|
||||
|
||||
/obj/vehicle/sealed/car/clowncar/twitch_plays/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/twitch_plays/simple_movement)
|
||||
START_PROCESSING(SSfastprocess, src)
|
||||
GLOB.poi_list |= src
|
||||
notify_ghosts("Twitch Plays: Clown Car")
|
||||
|
||||
/obj/vehicle/sealed/car/clowncar/twitch_plays/Destroy()
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
GLOB.poi_list -= src
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/sealed/car/clowncar/twitch_plays/process()
|
||||
var/dir = SEND_SIGNAL(src, COMSIG_TWITCH_PLAYS_MOVEMENT_DATA, TRUE)
|
||||
if(!dir)
|
||||
return
|
||||
driver_move(null, dir)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
canmove = TRUE
|
||||
density = FALSE //Thought I couldn't fix this one easily, phew
|
||||
arms_required = 1
|
||||
var/override_movespeed = FALSE
|
||||
|
||||
/obj/vehicle/ridden/wheelchair/Initialize()
|
||||
. = ..()
|
||||
@@ -42,10 +43,11 @@
|
||||
canmove = FALSE
|
||||
addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20)
|
||||
return FALSE
|
||||
var/datum/component/riding/D = GetComponent(/datum/component/riding)
|
||||
//1.5 (movespeed as of this change) multiplied by 6.7 gets ABOUT 10 (rounded), the old constant for the wheelchair that gets divided by how many arms they have
|
||||
//if that made no sense this simply makes the wheelchair speed change along with movement speed delay
|
||||
D.vehicle_move_delay = round((CONFIG_GET(number/movedelay/run_delay) * 4) / min(user.get_num_arms(), 2), world.tick_lag)
|
||||
if(!override_movespeed)
|
||||
var/datum/component/riding/D = GetComponent(/datum/component/riding)
|
||||
//1.5 (movespeed as of this change) multiplied by 6.7 gets ABOUT 10 (rounded), the old constant for the wheelchair that gets divided by how many arms they have
|
||||
//if that made no sense this simply makes the wheelchair speed change along with movement speed delay
|
||||
D.vehicle_move_delay = round((CONFIG_GET(number/movedelay/run_delay) * 4) / min(user.get_num_arms(), 2), world.tick_lag)
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/ridden/wheelchair/Moved()
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
/obj/belly
|
||||
name = "belly" // Name of this location
|
||||
desc = "It's a belly! You're in it!" // Flavor text description of inside sight/sound/smells/feels.
|
||||
rad_flags = RAD_NO_CONTAMINATE | RAD_PROTECT_CONTENTS
|
||||
var/vore_sound = "Gulp" // Sound when ingesting someone
|
||||
var/vore_verb = "ingest" // Verb for eating with this in messages
|
||||
var/release_sound = "Splatter" // Sound for letting someone out.
|
||||
|
||||
4
html/changelogs/AutoChangeLog-pr-13867.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "Putnam3145"
|
||||
delete-after: True
|
||||
changes:
|
||||
- balance: "Zeolites now only generate 1/5 the heat when reacting and don't require a catalyst."
|
||||
4
html/changelogs/AutoChangeLog-pr-13885.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "raspy-on-osu"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "space heater heating range and power"
|
||||
4
html/changelogs/AutoChangeLog-pr-13892.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "silicons"
|
||||
delete-after: True
|
||||
changes:
|
||||
- balance: "changeling combat mutations rebalanced. most of them take chemicals to upkeep now."
|
||||
4
html/changelogs/AutoChangeLog-pr-13902.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "timothyteakettle"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "avian/digitigrade legs have been added for slimes"
|
||||
4
html/changelogs/AutoChangeLog-pr-13903.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "DeltaFire15"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Changelings no longer double-deathgasp when activating the regen stasis ability while not dead."
|
||||
4
html/changelogs/AutoChangeLog-pr-13905.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "zeroisthebiggay"
|
||||
delete-after: True
|
||||
changes:
|
||||
- imageadd: "cool codex cicatrix inhands"
|
||||
4
html/changelogs/AutoChangeLog-pr-13909.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "silicons"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Twitch Plays: Clown Car"
|
||||
4
html/changelogs/AutoChangeLog-pr-13911.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "raspy-on-osu"
|
||||
delete-after: True
|
||||
changes:
|
||||
- spellcheck: "salicylic acid"
|
||||
4
html/changelogs/AutoChangeLog-pr-13913.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "keronshb"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Fixes the parry data for scarp"
|
||||
6
html/changelogs/AutoChangeLog-pr-13914.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
author: "EmeraldSundisk"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Adds a few new area designations primarily for CogStation, incorporates them into said map"
|
||||
- tweak: "Reorganizes some area designations for ease of use, along with renaming the central \"Router\" to \"Routing Depot\""
|
||||
- bugfix: "Fixes an incorrectly designated area in CogStation"
|
||||
4
html/changelogs/AutoChangeLog-pr-13915.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "Xantholne"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Fixed new birds changing back to basic parrot when sitting"
|
||||
4
html/changelogs/AutoChangeLog-pr-13916.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "timothyteakettle"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "re-adds the holoform verb for people who want to use it over going through the char list"
|
||||
4
html/changelogs/AutoChangeLog-pr-13917.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "timothyteakettle"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "*squeak"
|
||||
4
html/changelogs/AutoChangeLog-pr-13924.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "SandPoot"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "You can attack a pile of money on the floor with your id to put it all in quickly."
|
||||
4
html/changelogs/AutoChangeLog-pr-13926.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "MrJWhit"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscdel: "Removes the screen flashing on climax."
|
||||
4
html/changelogs/AutoChangeLog-pr-13930.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "MrJWhit"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "Small fixes on security on boxstation"
|
||||
|
Before Width: | Height: | Size: 414 KiB After Width: | Height: | Size: 414 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
@@ -593,7 +593,6 @@
|
||||
id = /datum/reagent/fermi/zeolites
|
||||
results = list(/datum/reagent/fermi/zeolites = 5) //We make a lot! - But it's now somewhat dangerous, and needs a bit of gold to catalyze the reaction
|
||||
required_reagents = list(/datum/reagent/medicine/potass_iodide = 1, /datum/reagent/aluminium = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1)
|
||||
required_catalysts = list(/datum/reagent/gold = 5)
|
||||
//FermiChem vars:
|
||||
OptimalTempMin = 500
|
||||
OptimalTempMax = 750
|
||||
@@ -604,7 +603,7 @@
|
||||
//CatalystFact = 0
|
||||
CurveSharpT = 1.5
|
||||
CurveSharppH = 3
|
||||
ThermicConstant = 5
|
||||
ThermicConstant = 1
|
||||
HIonRelease = -0.15
|
||||
RateUpLim = 4
|
||||
PurityMin = 0.5 //Good luck!
|
||||
|
||||
@@ -492,6 +492,7 @@
|
||||
#include "code\datums\components\swarming.dm"
|
||||
#include "code\datums\components\tackle.dm"
|
||||
#include "code\datums\components\thermite.dm"
|
||||
#include "code\datums\components\twitch_plays.dm"
|
||||
#include "code\datums\components\twohanded.dm"
|
||||
#include "code\datums\components\uplink.dm"
|
||||
#include "code\datums\components\virtual_reality.dm"
|
||||
|
||||