Merge remote-tracking branch 'citadel/master' into combat_v7

This commit is contained in:
silicons
2021-03-20 14:13:23 -07:00
202 changed files with 6640 additions and 4867 deletions
+1 -1
View File
@@ -20,7 +20,7 @@ jobs:
run: |
~/dmdoc
touch dmdoc/.nojekyll
echo codedocs.tgstation13.org > dmdoc/CNAME
echo codedocs.citadel-station.net > dmdoc/CNAME
- name: Deploy
uses: JamesIves/github-pages-deploy-action@3.7.1
with:
@@ -158,8 +158,8 @@
/area/ruin/powered/beach)
"aF" = (
/obj/machinery/vending/boozeomat{
set_obj_flags = "EMAGGED";
req_access_txt = "0"
req_access_txt = "0";
set_obj_flags = "EMAGGED"
},
/turf/open/floor/wood,
/area/ruin/powered/beach)
@@ -547,8 +547,8 @@
"rV" = (
/obj/effect/turf_decal/sand,
/obj/item/reagent_containers/food/drinks/beer/light{
pixel_y = -3;
pixel_x = -9
pixel_x = -9;
pixel_y = -3
},
/turf/open/floor/plating,
/area/ruin/powered/beach)
@@ -326,8 +326,8 @@
/area/ruin/unpowered/ash_walkers)
"aO" = (
/obj/structure/stone_tile/surrounding/cracked{
icon_state = "cracked_surrounding1";
dir = 1
dir = 1;
icon_state = "cracked_surrounding1"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
@@ -510,9 +510,7 @@
/obj/structure/stone_tile/cracked{
dir = 4
},
/obj/item/construction/rcd/loaded/upgraded{
},
/obj/item/construction/rcd/loaded/upgraded,
/turf/open/indestructible/boss,
/area/ruin/unpowered/ash_walkers)
"bn" = (
@@ -1019,8 +1017,8 @@
/area/ruin/unpowered/ash_walkers)
"cA" = (
/obj/structure/stone_tile/slab/cracked{
icon_state = "cracked_slab1";
dir = 4
dir = 4;
icon_state = "cracked_slab1"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
@@ -13,10 +13,10 @@
/area/ruin/unpowered)
"f" = (
/obj/structure/mirror{
broken = 1;
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
icon_state = "mirror_broke";
pixel_x = -28;
broken = 1
pixel_x = -28
},
/obj/item/clothing/suit/hooded/bloated_human,
/obj/effect/decal/cleanable/blood,
@@ -25,10 +25,10 @@
"g" = (
/obj/effect/decal/cleanable/blood/tracks,
/obj/structure/mirror{
broken = 1;
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
icon_state = "mirror_broke";
pixel_x = -28;
broken = 1
pixel_x = -28
},
/turf/open/floor/plating,
/area/ruin/unpowered)
@@ -45,10 +45,10 @@
/area/ruin/unpowered)
"k" = (
/obj/structure/mirror{
broken = 1;
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
icon_state = "mirror_broke";
pixel_x = 28;
broken = 1
pixel_x = 28
},
/turf/open/floor/plating{
icon_state = "panelscorched"
@@ -56,19 +56,19 @@
/area/ruin/unpowered)
"l" = (
/obj/structure/mirror{
broken = 1;
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
icon_state = "mirror_broke";
pixel_x = 28;
broken = 1
pixel_x = 28
},
/turf/open/floor/plating,
/area/ruin/unpowered)
"m" = (
/obj/structure/mirror{
broken = 1;
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
icon_state = "mirror_broke";
pixel_x = -28;
broken = 1
pixel_x = -28
},
/turf/open/floor/plating,
/area/ruin/unpowered)
@@ -79,10 +79,10 @@
/area/ruin/unpowered)
"o" = (
/obj/structure/mirror{
broken = 1;
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
icon_state = "mirror_broke";
pixel_x = -28;
broken = 1
pixel_x = -28
},
/turf/open/floor/plating{
icon_state = "platingdmg1"
@@ -98,10 +98,10 @@
/area/lavaland/surface/outdoors)
"T" = (
/obj/structure/mirror{
broken = 1;
desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!";
icon_state = "mirror_broke";
pixel_y = 28;
broken = 1
pixel_y = 28
},
/obj/item/kitchen/knife/envy,
/turf/open/floor/plating,
@@ -137,8 +137,8 @@
/area/ruin/powered)
"D" = (
/obj/effect/decal/cleanable/blood/footprints{
icon_state = "blood1";
dir = 1
dir = 1;
icon_state = "blood1"
},
/obj/machinery/door/airlock/survival_pod/glass,
/obj/structure/fans/tiny,
@@ -641,4 +641,4 @@ a
a
a
a
"}
"}
@@ -87,8 +87,8 @@
/obj/effect/decal/cleanable/blood,
/obj/effect/decal/cleanable/blood/drip,
/obj/effect/decal/cleanable/blood/footprints{
icon_state = "blood1";
dir = 1
dir = 1;
icon_state = "blood1"
},
/turf/open/floor/pod/dark,
/area/ruin/powered)
@@ -106,24 +106,24 @@
/area/lavaland/surface/outdoors)
"t" = (
/obj/effect/decal/cleanable/blood/footprints{
icon_state = "blood1";
dir = 1
dir = 1;
icon_state = "blood1"
},
/obj/machinery/door/airlock/survival_pod/glass,
/turf/open/floor/pod/dark,
/area/ruin/powered)
"u" = (
/obj/effect/decal/cleanable/blood/footprints{
icon_state = "blood1";
dir = 8
dir = 8;
icon_state = "blood1"
},
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"v" = (
/obj/effect/decal/cleanable/blood/footprints{
icon_state = "blood1";
dir = 8
dir = 8;
icon_state = "blood1"
},
/obj/effect/decal/cleanable/blood/footprints{
icon_state = "blood1"
@@ -139,8 +139,8 @@
"x" = (
/obj/effect/decal/cleanable/blood/drip,
/obj/effect/decal/cleanable/blood/footprints{
icon_state = "blood1";
dir = 1
dir = 1;
icon_state = "blood1"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
@@ -149,15 +149,15 @@
pixel_y = 32
},
/obj/effect/decal/cleanable/blood/footprints{
icon_state = "blood1";
dir = 8
dir = 8;
icon_state = "blood1"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"z" = (
/obj/effect/decal/cleanable/blood/footprints{
icon_state = "blood1";
dir = 8
dir = 8;
icon_state = "blood1"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
+2 -2
View File
@@ -2268,9 +2268,9 @@
"hF" = (
/obj/structure/table,
/obj/machinery/computer/pod/old{
id = "derelict_gun";
name = "ProComp IIe";
pixel_y = 7;
id = "derelict_gun"
pixel_y = 7
},
/turf/open/floor/plasteel/chapel,
/area/ruin/space/derelict/medical/chapel)
+12 -12
View File
@@ -66,8 +66,8 @@
/area/ruin/space/has_grav/powered/advancedlab)
"n" = (
/obj/structure/chair/comfy/beige{
icon_state = "comfychair";
dir = 8
dir = 8;
icon_state = "comfychair"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/advancedlab)
@@ -85,10 +85,10 @@
},
/obj/structure/table/glass,
/obj/item/paper{
info = "As of yet, our experiments have seen a fair bit of success. Unfortunately, our business partners have stopped funding us as they realised they utterly hate each other. To whoever finds this place, they are yours. Use them how you will. I leave you with the next generation of greytiding.";
name = "Note to finder";
pixel_x = -1;
pixel_y = 3;
info = "As of yet, our experiments have seen a fair bit of success. Unfortunately, our business partners have stopped funding us as they realised they utterly hate each other. To whoever finds this place, they are yours. Use them how you will. I leave you with the next generation of greytiding."
pixel_y = 3
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/advancedlab)
@@ -112,8 +112,8 @@
/area/ruin/space/has_grav/powered/advancedlab)
"s" = (
/obj/structure/chair/comfy/beige{
icon_state = "comfychair";
dir = 1
dir = 1;
icon_state = "comfychair"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/advancedlab)
@@ -123,8 +123,8 @@
/area/ruin/space/has_grav/powered/advancedlab)
"u" = (
/obj/machinery/light/small{
icon_state = "bulb";
dir = 4
dir = 4;
icon_state = "bulb"
},
/obj/structure/closet,
/obj/item/clothing/suit/hooded/wintercoat/miner,
@@ -161,8 +161,8 @@
/area/ruin/space/has_grav/powered/advancedlab)
"y" = (
/obj/machinery/light/small{
icon_state = "bulb";
dir = 1
dir = 1;
icon_state = "bulb"
},
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered/advancedlab)
@@ -268,8 +268,8 @@
/area/ruin/space/has_grav/powered/advancedlab)
"R" = (
/obj/machinery/light/small{
icon_state = "bulb";
dir = 1
dir = 1;
icon_state = "bulb"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powered/advancedlab)
+2 -2
View File
@@ -57,8 +57,8 @@
dir = 4
},
/mob/living/simple_animal/hostile/gorilla/familiar{
icon_state = "crawling";
dir = 4
dir = 4;
icon_state = "crawling"
},
/turf/open/floor/plating/beach/sand,
/area/ruin/powered)
+108 -108
View File
@@ -65,10 +65,10 @@
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"ao" = (
/obj/machinery/power/apc{
start_charge = 0;
dir = 4;
name = "Cargo Bay APC";
pixel_x = 24
pixel_x = 24;
start_charge = 0
},
/obj/structure/cable{
icon_state = "0-8"
@@ -385,9 +385,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 9;
icon_state = "trails_1";
dir = 9
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
@@ -398,9 +398,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
@@ -415,9 +415,9 @@
pixel_y = 32
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
@@ -428,9 +428,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 5;
icon_state = "trails_1";
dir = 5
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
@@ -479,9 +479,9 @@
/area/ruin/space/has_grav/derelictoutpost/dockedship)
"bw" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 5;
icon_state = "trails_1";
dir = 5
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -598,9 +598,9 @@
},
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 1;
icon_state = "trails_1";
dir = 1
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
@@ -755,9 +755,9 @@
/area/ruin/space/has_grav/derelictoutpost)
"bU" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/turf/open/floor/plating{
icon_state = "wall_thermite";
@@ -766,17 +766,17 @@
/area/ruin/space/has_grav/derelictoutpost)
"bV" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
"bW" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 6;
icon_state = "trails_1";
dir = 6
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
@@ -787,9 +787,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 1;
icon_state = "trails_1";
dir = 1
name = "dried blood trail"
},
/obj/machinery/light{
dir = 4
@@ -813,11 +813,11 @@
/area/ruin/space/has_grav/derelictoutpost/powerstorage)
"ca" = (
/obj/machinery/power/apc{
start_charge = 0;
dir = 4;
name = "Power Storage APC";
pixel_x = 23;
pixel_y = 2
pixel_y = 2;
start_charge = 0
},
/obj/structure/cable{
icon_state = "0-8"
@@ -924,10 +924,10 @@
/area/ruin/space/has_grav/derelictoutpost)
"ck" = (
/obj/machinery/power/apc{
start_charge = 0;
dir = 2;
name = "Tradepost APC";
pixel_y = -24
pixel_y = -24;
start_charge = 0
},
/obj/structure/cable{
icon_state = "0-8"
@@ -942,9 +942,9 @@
},
/obj/structure/glowshroom/single,
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 1;
icon_state = "trails_1";
dir = 1
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
@@ -1106,9 +1106,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 10;
icon_state = "trails_1";
dir = 10
name = "dried blood trail"
},
/mob/living/simple_animal/hostile/netherworld{
desc = "Awh its so sm-OH GOD WHAT THE FUCK.";
@@ -1126,9 +1126,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/turf/open/floor/plating/asteroid,
/area/ruin/space/has_grav/derelictoutpost)
@@ -1139,9 +1139,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 5;
icon_state = "trails_1";
dir = 5
name = "dried blood trail"
},
/turf/open/floor/plating/asteroid,
/area/ruin/space/has_grav/derelictoutpost)
@@ -1182,9 +1182,9 @@
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"cK" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 10;
icon_state = "trails_1";
dir = 10
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1198,9 +1198,9 @@
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"cL" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 5;
icon_state = "trails_1";
dir = 5
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1268,9 +1268,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 1;
icon_state = "trails_1";
dir = 1
name = "dried blood trail"
},
/turf/open/floor/plating/asteroid,
/area/ruin/space/has_grav/derelictoutpost)
@@ -1297,9 +1297,9 @@
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"cX" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 1;
icon_state = "trails_1";
dir = 1
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1325,9 +1325,9 @@
},
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 1;
icon_state = "trails_1";
dir = 1
name = "dried blood trail"
},
/turf/open/floor/plating/asteroid,
/area/ruin/space/has_grav/derelictoutpost)
@@ -1366,25 +1366,25 @@
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"dd" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 10;
icon_state = "trails_1";
dir = 10
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"de" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"df" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1399,9 +1399,9 @@
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"dg" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1415,9 +1415,9 @@
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"dh" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1436,9 +1436,9 @@
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"di" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 5;
icon_state = "trails_1";
dir = 5
name = "dried blood trail"
},
/obj/effect/decal/cleanable/cobweb{
icon_state = "cobweb2"
@@ -1499,9 +1499,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 8;
icon_state = "trails_1";
dir = 8
name = "dried blood trail"
},
/turf/open/floor/plating/asteroid,
/area/ruin/space/has_grav/derelictoutpost)
@@ -1512,9 +1512,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 6;
icon_state = "trails_1";
dir = 6
name = "dried blood trail"
},
/turf/open/floor/plating/asteroid,
/area/ruin/space/has_grav/derelictoutpost)
@@ -1574,9 +1574,9 @@
/area/ruin/space/has_grav/derelictoutpost)
"dv" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 9;
icon_state = "trails_1";
dir = 9
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1587,9 +1587,9 @@
/area/ruin/space/has_grav/derelictoutpost)
"dw" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1605,9 +1605,9 @@
/area/ruin/space/has_grav/derelictoutpost)
"dx" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1618,9 +1618,9 @@
/area/ruin/space/has_grav/derelictoutpost)
"dy" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1632,9 +1632,9 @@
/area/ruin/space/has_grav/derelictoutpost)
"dz" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 5;
icon_state = "trails_1";
dir = 5
name = "dried blood trail"
},
/obj/effect/decal/cleanable/cobweb{
icon_state = "cobweb2"
@@ -1648,17 +1648,17 @@
/area/ruin/space/has_grav/derelictoutpost)
"dA" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/turf/open/floor/plating/asteroid,
/area/ruin/space/has_grav/derelictoutpost)
"dB" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 6;
icon_state = "trails_1";
dir = 6
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1706,9 +1706,9 @@
/area/ruin/space/has_grav/derelictoutpost)
"dF" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 10;
icon_state = "trails_1";
dir = 10
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1719,9 +1719,9 @@
/area/ruin/space/has_grav/derelictoutpost)
"dG" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 8;
icon_state = "trails_1";
dir = 8
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1732,9 +1732,9 @@
/area/ruin/space/has_grav/derelictoutpost)
"dH" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 6;
icon_state = "trails_1";
dir = 6
name = "dried blood trail"
},
/obj/structure/alien/weeds{
color = "#4BAE56";
@@ -1779,9 +1779,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 5;
icon_state = "trails_1";
dir = 5
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost/cargobay)
@@ -1795,9 +1795,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 9;
icon_state = "trails_1";
dir = 9
name = "dried blood trail"
},
/obj/structure/cable{
icon_state = "1-2"
@@ -1806,9 +1806,9 @@
/area/ruin/space/has_grav/derelictoutpost)
"dN" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 8;
icon_state = "trails_1";
dir = 8
name = "dried blood trail"
},
/turf/open/floor/plating{
icon_state = "wall_thermite";
@@ -1823,9 +1823,9 @@
name = "gelatinous membrane"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 8;
icon_state = "trails_1";
dir = 8
name = "dried blood trail"
},
/turf/open/floor/plating{
icon_state = "wall_thermite";
@@ -1840,9 +1840,9 @@
},
/obj/structure/glowshroom/single,
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 8;
icon_state = "trails_1";
dir = 8
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
@@ -1853,9 +1853,9 @@
name = "gelatinous floor"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 6;
icon_state = "trails_1";
dir = 6
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost)
@@ -2021,10 +2021,10 @@
/area/ruin/space/has_grav/derelictoutpost/cargostorage)
"el" = (
/obj/machinery/power/apc{
start_charge = 0;
dir = 4;
name = "Cargo Storage APC";
pixel_x = 24
pixel_x = 24;
start_charge = 0
},
/obj/structure/cable{
icon_state = "0-2"
@@ -2099,35 +2099,35 @@
/area/ruin/space/has_grav/derelictoutpost)
"ew" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 8;
icon_state = "trails_1";
dir = 8
name = "dried blood trail"
},
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost/cargostorage)
"ex" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 8;
icon_state = "trails_1";
dir = 8
name = "dried blood trail"
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost/cargostorage)
"ey" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 8;
icon_state = "trails_1";
dir = 8
name = "dried blood trail"
},
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/derelictoutpost/cargostorage)
"ez" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 5;
icon_state = "trails_1";
dir = 5
name = "dried blood trail"
},
/obj/structure/cable{
icon_state = "1-2"
@@ -2188,9 +2188,9 @@
/area/ruin/space/has_grav/derelictoutpost/cargostorage)
"eI" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 10;
icon_state = "trails_1";
dir = 10
name = "dried blood trail"
},
/obj/structure/cable{
icon_state = "1-4"
@@ -2204,9 +2204,9 @@
name = "pried-open airlock"
},
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 4;
icon_state = "trails_1";
dir = 4
name = "dried blood trail"
},
/obj/structure/cable{
icon_state = "4-8"
@@ -2215,9 +2215,9 @@
/area/ruin/space/has_grav/derelictoutpost/cargostorage)
"eK" = (
/obj/effect/decal/cleanable/blood/old{
name = "dried blood trail";
dir = 6;
icon_state = "trails_1";
dir = 6
name = "dried blood trail"
},
/obj/structure/cable{
icon_state = "1-8"
@@ -287,9 +287,9 @@
/area/space/nearstation)
"M" = (
/obj/structure/fluff/broken_flooring{
name = "broken plating";
dir = 8;
icon_state = "plating";
dir = 8
name = "broken plating"
},
/turf/template_noop,
/area/space/nearstation)
+4 -4
View File
@@ -16,8 +16,8 @@
"ag" = (
/obj/machinery/porta_turret{
dir = 8;
set_obj_flags = "EMAGGED";
installation = /obj/item/gun/energy/lasercannon
installation = /obj/item/gun/energy/lasercannon;
set_obj_flags = "EMAGGED"
},
/turf/open/floor/engine,
/area/awaymission/BMPship/Aft)
@@ -2110,8 +2110,8 @@
"gl" = (
/obj/machinery/porta_turret{
dir = 8;
set_obj_flags = "EMAGGED";
installation = /obj/item/gun/energy/lasercannon
installation = /obj/item/gun/energy/lasercannon;
set_obj_flags = "EMAGGED"
},
/turf/open/floor/engine,
/area/awaymission/BMPship/Fore)
+34 -34
View File
@@ -5,8 +5,8 @@
"ab" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
icon_state = "singular";
dir = 1
dir = 1;
icon_state = "singular"
},
/turf/template_noop,
/area/space/nearstation)
@@ -27,8 +27,8 @@
/area/space/nearstation)
"af" = (
/obj/structure/fluff/broken_flooring{
icon_state = "pile";
dir = 8
dir = 8;
icon_state = "pile"
},
/turf/template_noop,
/area/template_noop)
@@ -45,8 +45,8 @@
/area/ruin/unpowered)
"aj" = (
/obj/structure/fluff/broken_flooring{
icon_state = "pile";
dir = 4
dir = 4;
icon_state = "pile"
},
/turf/template_noop,
/area/template_noop)
@@ -58,8 +58,8 @@
/area/ruin/unpowered)
"al" = (
/obj/structure/fluff/broken_flooring{
icon_state = "singular";
dir = 4
dir = 4;
icon_state = "singular"
},
/obj/structure/lattice,
/turf/template_noop,
@@ -133,17 +133,17 @@
/area/ruin/unpowered)
"az" = (
/obj/structure/fluff/broken_flooring{
name = "broken plating";
dir = 8;
icon_state = "plating";
dir = 8
name = "broken plating"
},
/obj/structure/lattice,
/turf/template_noop,
/area/ruin/unpowered)
"aA" = (
/obj/structure/fluff/broken_flooring{
icon_state = "pile";
dir = 1
dir = 1;
icon_state = "pile"
},
/turf/template_noop,
/area/template_noop)
@@ -405,8 +405,8 @@
/area/ruin/unpowered)
"bt" = (
/obj/structure/fluff/broken_flooring{
icon_state = "side";
dir = 1
dir = 1;
icon_state = "side"
},
/obj/structure/lattice,
/turf/template_noop,
@@ -424,34 +424,34 @@
"bw" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
name = "broken plating";
dir = 1;
icon_state = "plating";
dir = 1
name = "broken plating"
},
/turf/template_noop,
/area/ruin/unpowered)
"bx" = (
/obj/structure/fluff/broken_flooring{
name = "broken plating";
dir = 4;
icon_state = "plating";
dir = 4
name = "broken plating"
},
/obj/structure/lattice,
/turf/template_noop,
/area/ruin/unpowered)
"by" = (
/obj/structure/fluff/broken_flooring{
icon_state = "pile";
dir = 4
dir = 4;
icon_state = "pile"
},
/turf/open/floor/plasteel/airless,
/area/ruin/unpowered)
"bz" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
name = "broken plating";
dir = 4;
icon_state = "plating";
dir = 4
name = "broken plating"
},
/turf/template_noop,
/area/ruin/unpowered)
@@ -464,38 +464,38 @@
"bC" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
icon_state = "corner";
dir = 1
dir = 1;
icon_state = "corner"
},
/turf/template_noop,
/area/ruin/unpowered)
"bD" = (
/obj/structure/fluff/broken_flooring{
icon_state = "singular";
dir = 4
dir = 4;
icon_state = "singular"
},
/turf/open/floor/plasteel/airless,
/area/ruin/unpowered)
"bE" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
icon_state = "corner";
dir = 8
dir = 8;
icon_state = "corner"
},
/turf/template_noop,
/area/ruin/unpowered)
"bF" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
icon_state = "side";
dir = 4
dir = 4;
icon_state = "side"
},
/turf/template_noop,
/area/ruin/unpowered)
"bG" = (
/obj/structure/fluff/broken_flooring{
icon_state = "singular";
dir = 4
dir = 4;
icon_state = "singular"
},
/turf/template_noop,
/area/template_noop)
@@ -510,9 +510,9 @@
"bI" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
name = "broken plating";
dir = 8;
icon_state = "plating";
dir = 8
name = "broken plating"
},
/turf/template_noop,
/area/ruin/unpowered)
+2 -2
View File
@@ -149,8 +149,8 @@
/area/ruin/space/has_grav/ancientstation/hivebot)
"aF" = (
/obj/structure/shuttle/engine/large{
icon_state = "large_engine";
dir = 4
dir = 4;
icon_state = "large_engine"
},
/turf/closed/wall,
/area/ruin/space/has_grav/ancientstation/hivebot)
@@ -54,15 +54,15 @@
/area/ruin/powered)
"m" = (
/obj/structure/chair/old{
icon_state = "chairold";
dir = 1
dir = 1;
icon_state = "chairold"
},
/turf/open/floor/oldshuttle,
/area/ruin/powered)
"n" = (
/obj/structure/chair/old{
icon_state = "chairold";
dir = 1
dir = 1;
icon_state = "chairold"
},
/obj/item/crowbar/large{
desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big. It feels oddly heavy..";
@@ -73,8 +73,8 @@
/area/ruin/powered)
"o" = (
/obj/structure/chair/old{
icon_state = "chairold";
dir = 1
dir = 1;
icon_state = "chairold"
},
/mob/living/simple_animal/hostile/retaliate/spaceman,
/turf/open/floor/oldshuttle,
File diff suppressed because it is too large Load Diff
+78 -78
View File
@@ -40,8 +40,8 @@
/area/ruin/space/diner/interior)
"ai" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end{
icon_state = "hrwindow_spawner_end";
dir = 1
dir = 1;
icon_state = "hrwindow_spawner_end"
},
/turf/open/floor/plating,
/area/ruin/space/diner/interior)
@@ -116,8 +116,8 @@
/area/ruin/space/diner)
"aw" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end{
icon_state = "hrwindow_spawner_end";
dir = 4
dir = 4;
icon_state = "hrwindow_spawner_end"
},
/turf/open/floor/plating/airless,
/area/ruin/space/diner)
@@ -253,8 +253,8 @@
/area/ruin/space/diner/interior)
"aQ" = (
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 10
dir = 10;
icon_state = "pipe11-2"
},
/turf/open/floor/plating,
/area/ruin/space/diner/interior)
@@ -438,8 +438,8 @@
},
/obj/machinery/grill,
/obj/machinery/light/small/broken{
icon_state = "bulb-broken";
dir = 1
dir = 1;
icon_state = "bulb-broken"
},
/obj/machinery/power/apc/highcap/five_k{
name = "Space Diner APC";
@@ -468,8 +468,8 @@
/area/ruin/space/diner/interior)
"bx" = (
/obj/structure/toilet/secret/low_loot{
icon_state = "toilet00";
dir = 4
dir = 4;
icon_state = "toilet00"
},
/obj/effect/decal/cleanable/cobweb,
/obj/effect/decal/cleanable/dirt,
@@ -509,8 +509,8 @@
/area/ruin/space/diner/interior)
"bB" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end{
icon_state = "hrwindow_spawner_end";
dir = 8
dir = 8;
icon_state = "hrwindow_spawner_end"
},
/obj/structure/cable{
icon_state = "0-4"
@@ -529,8 +529,8 @@
/area/ruin/space/diner/interior)
"bD" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end{
icon_state = "hrwindow_spawner_end";
dir = 4
dir = 4;
icon_state = "hrwindow_spawner_end"
},
/obj/structure/cable{
icon_state = "0-8"
@@ -568,8 +568,8 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 4
dir = 4;
icon_state = "pipe11-2"
},
/turf/open/floor/plasteel,
/area/ruin/space/diner/interior)
@@ -579,8 +579,8 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 4
dir = 4;
icon_state = "pipe11-2"
},
/turf/open/floor/plasteel,
/area/ruin/space/diner/interior)
@@ -594,8 +594,8 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 4
dir = 4;
icon_state = "pipe11-2"
},
/turf/open/floor/plasteel,
/area/ruin/space/diner/interior)
@@ -616,8 +616,8 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 10
dir = 10;
icon_state = "pipe11-2"
},
/turf/open/floor/plasteel,
/area/ruin/space/diner/interior)
@@ -662,8 +662,8 @@
/area/ruin/space/diner/interior)
"bP" = (
/obj/structure/toilet/secret/low_loot{
icon_state = "toilet00";
dir = 4
dir = 4;
icon_state = "toilet00"
},
/obj/structure/window/reinforced/spawner/north,
/obj/effect/decal/cleanable/dirt,
@@ -673,8 +673,8 @@
"bQ" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 6
dir = 6;
icon_state = "pipe11-2"
},
/turf/open/floor/plasteel,
/area/ruin/space/diner/interior)
@@ -727,8 +727,8 @@
/area/ruin/space/diner/interior)
"bX" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end{
icon_state = "hrwindow_spawner_end";
dir = 1
dir = 1;
icon_state = "hrwindow_spawner_end"
},
/obj/structure/cable{
icon_state = "0-2"
@@ -756,24 +756,24 @@
"ca" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/manifold/general/hidden{
icon_state = "manifold-2";
dir = 8
dir = 8;
icon_state = "manifold-2"
},
/turf/open/floor/plasteel,
/area/ruin/space/diner/interior)
"cb" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 4
dir = 4;
icon_state = "pipe11-2"
},
/turf/open/floor/plasteel,
/area/ruin/space/diner/interior)
"cc" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 10
dir = 10;
icon_state = "pipe11-2"
},
/turf/open/floor/plasteel,
/area/ruin/space/diner/interior)
@@ -962,8 +962,8 @@
icon_state = "1-4"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 4
dir = 4;
icon_state = "pipe11-2"
},
/obj/item/beacon,
/turf/open/floor/plasteel/dark,
@@ -973,8 +973,8 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 4
dir = 4;
icon_state = "pipe11-2"
},
/turf/open/floor/plasteel/dark,
/area/ruin/space/diner/interior)
@@ -993,8 +993,8 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 4
dir = 4;
icon_state = "pipe11-2"
},
/turf/open/floor/plasteel/dark,
/area/ruin/space/diner/interior)
@@ -1105,8 +1105,8 @@
/area/ruin/space/diner/interior)
"cM" = (
/obj/machinery/light/broken{
icon_state = "tube-broken";
dir = 1
dir = 1;
icon_state = "tube-broken"
},
/obj/effect/decal/cleanable/dirt{
desc = "A thin layer of dust coating the floor.";
@@ -1146,8 +1146,8 @@
},
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/machinery/computer/arcade{
icon_state = "arcade";
dir = 8
dir = 8;
icon_state = "arcade"
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -1161,8 +1161,8 @@
/area/ruin/space/diner/interior)
"cS" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end{
icon_state = "hrwindow_spawner_end";
dir = 1
dir = 1;
icon_state = "hrwindow_spawner_end"
},
/obj/structure/cable,
/obj/structure/cable{
@@ -1242,8 +1242,8 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 5
dir = 5;
icon_state = "pipe11-2"
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -1257,8 +1257,8 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 4
dir = 4;
icon_state = "pipe11-2"
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -1287,8 +1287,8 @@
icon_state = "1-4"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 4
dir = 4;
icon_state = "pipe11-2"
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -1311,8 +1311,8 @@
icon_state = "1-4"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 9
dir = 9;
icon_state = "pipe11-2"
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -1351,8 +1351,8 @@
icon_state = "1-2"
},
/obj/machinery/computer/teleporter{
icon_state = "computer";
dir = 1
dir = 1;
icon_state = "computer"
},
/obj/structure/cable,
/turf/open/floor/plasteel/dark,
@@ -1414,8 +1414,8 @@
"ds" = (
/obj/structure/cable,
/obj/machinery/power/solar_control{
icon_state = "computer";
dir = 4
dir = 4;
icon_state = "computer"
},
/turf/open/floor/plating,
/area/ruin/space/diner/interior)
@@ -1427,8 +1427,8 @@
/area/ruin/space/diner/interior)
"dv" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end{
icon_state = "hrwindow_spawner_end";
dir = 4
dir = 4;
icon_state = "hrwindow_spawner_end"
},
/obj/structure/cable,
/obj/structure/cable{
@@ -1449,8 +1449,8 @@
dir = 1
},
/obj/machinery/light/broken{
icon_state = "tube-broken";
dir = 8
dir = 8;
icon_state = "tube-broken"
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -1492,8 +1492,8 @@
name = "dust"
},
/obj/item/chair{
icon_state = "chair_toppled";
dir = 1
dir = 1;
icon_state = "chair_toppled"
},
/turf/open/floor/carpet,
/area/ruin/space/diner/interior)
@@ -1508,8 +1508,8 @@
/area/ruin/space/diner/interior)
"dE" = (
/obj/machinery/light/small/broken{
icon_state = "bulb-broken";
dir = 1
dir = 1;
icon_state = "bulb-broken"
},
/turf/open/floor/engine/airless,
/area/ruin/space/diner)
@@ -1663,8 +1663,8 @@
/area/ruin/space/diner/interior)
"dV" = (
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
icon_state = "hrwindow_spawner_directional";
dir = 10
dir = 10;
icon_state = "hrwindow_spawner_directional"
},
/turf/open/floor/plating,
/area/ruin/space/diner/interior)
@@ -1674,22 +1674,22 @@
/area/ruin/space/diner/interior)
"dX" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end{
icon_state = "hrwindow_spawner_end";
dir = 4
dir = 4;
icon_state = "hrwindow_spawner_end"
},
/turf/open/floor/plating,
/area/ruin/space/diner/interior)
"dY" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end{
icon_state = "hrwindow_spawner_end";
dir = 8
dir = 8;
icon_state = "hrwindow_spawner_end"
},
/turf/open/floor/plating,
/area/ruin/space/diner/interior)
"dZ" = (
/obj/effect/spawner/structure/window/hollow/reinforced/directional{
icon_state = "hrwindow_spawner_directional";
dir = 6
dir = 6;
icon_state = "hrwindow_spawner_directional"
},
/turf/open/floor/plating,
/area/ruin/space/diner/interior)
@@ -1728,8 +1728,8 @@
/area/ruin/space/diner)
"ef" = (
/obj/machinery/light/small/broken{
icon_state = "bulb-broken";
dir = 1
dir = 1;
icon_state = "bulb-broken"
},
/obj/machinery/vending/snack,
/obj/effect/turf_decal/bot,
@@ -1737,8 +1737,8 @@
/area/ruin/space/diner)
"eg" = (
/obj/effect/spawner/structure/window/hollow/reinforced/end{
icon_state = "hrwindow_spawner_end";
dir = 1
dir = 1;
icon_state = "hrwindow_spawner_end"
},
/turf/open/floor/plating/airless,
/area/ruin/space/diner)
+32 -32
View File
@@ -125,8 +125,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_3)
"ay" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/obj/structure/toilet,
/turf/open/floor/plasteel/showroomfloor,
@@ -166,8 +166,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_4)
"aG" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/obj/structure/toilet,
/turf/open/floor/plasteel/showroomfloor,
@@ -207,8 +207,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_5)
"aO" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/obj/structure/toilet,
/turf/open/floor/plasteel/showroomfloor,
@@ -248,8 +248,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_6)
"aW" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/obj/structure/toilet,
/turf/open/floor/plasteel/showroomfloor,
@@ -287,8 +287,8 @@
/area/ruin/unpowered/no_grav)
"be" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/hotel/guestroom/room_3)
@@ -319,8 +319,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_3)
"bk" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/hotel/guestroom/room_4)
@@ -351,8 +351,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_4)
"bq" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/hotel/guestroom/room_5)
@@ -383,8 +383,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_5)
"bw" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/hotel/guestroom/room_6)
@@ -1067,8 +1067,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_2)
"dl" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/obj/structure/toilet,
/turf/open/floor/plasteel/showroomfloor,
@@ -1131,8 +1131,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_1)
"dt" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/obj/structure/toilet,
/turf/open/floor/plasteel/showroomfloor,
@@ -1230,8 +1230,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_2)
"dI" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/hotel/guestroom/room_2)
@@ -1262,8 +1262,8 @@
/area/ruin/space/has_grav/hotel/guestroom/room_1)
"dP" = (
/obj/structure/window{
icon_state = "window";
dir = 8
dir = 8;
icon_state = "window"
},
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/hotel/guestroom/room_1)
@@ -2564,16 +2564,16 @@
/area/ruin/space/has_grav/hotel/workroom)
"hG" = (
/obj/effect/mob_spawn/human/hotel_staff{
icon_state = "sleeper_s";
dir = 1
dir = 1;
icon_state = "sleeper_s"
},
/obj/machinery/light,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/hotel/workroom)
"hH" = (
/obj/effect/mob_spawn/human/hotel_staff{
icon_state = "sleeper_s";
dir = 1
dir = 1;
icon_state = "sleeper_s"
},
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/hotel/workroom)
@@ -4283,8 +4283,8 @@
/area/ruin/space/has_grav/hotel/security)
"lG" = (
/obj/structure/window{
icon_state = "window";
dir = 1
dir = 1;
icon_state = "window"
},
/obj/machinery/light{
dir = 8
@@ -4307,8 +4307,8 @@
/obj/item/clothing/shoes/sandal,
/obj/item/clothing/shoes/sandal,
/obj/structure/window{
icon_state = "window";
dir = 1
dir = 1;
icon_state = "window"
},
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/hotel/pool)
@@ -9,9 +9,9 @@
dwidth = 11;
height = 22;
id = "whiteship_away";
json_key = "whiteship";
name = "Deep Space";
width = 35;
json_key = "whiteship"
width = 35
},
/turf/open/space,
/area/space)
@@ -336,16 +336,6 @@
"yf" = (
/turf/open/space/basic,
/area/space/nearstation)
"zw" = (
/obj/structure/closet/crate,
/obj/item/stack/sheet/mineral/plasma{
amount = 50
},
/obj/item/stack/sheet/mineral/plasma{
amount = 10
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"zS" = (
/turf/open/space/basic,
/area/space)
@@ -715,12 +705,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"WB" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"Ys" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
@@ -1164,15 +1148,15 @@ zS
MP
dw
lG
WB
eP
Jq
WB
eP
UD
Cx
UD
WB
eP
Jq
WB
eP
UD
MP
tw
@@ -1276,15 +1260,15 @@ zS
MP
Cb
AC
WB
eP
mW
WB
eP
Kl
Cx
Kl
WB
eP
mW
WB
eP
Kl
MP
tw
@@ -1505,11 +1489,11 @@ Ok
CH
GI
Ok
zw
zw
zw
zw
zw
gF
gF
gF
gF
gF
MP
tw
yf
@@ -111,26 +111,14 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
"uC" = (
/obj/structure/lattice/catwalk,
/turf/open/space/basic,
/area/space/nearstation)
"wt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/closet/radiation,
/turf/open/floor/plasteel,
/area/engine/engineering)
"wS" = (
/obj/structure/lattice/catwalk,
/turf/open/space/basic,
/area/space/nearstation)
"yf" = (
/turf/open/space/basic,
/area/space/nearstation)
"yA" = (
/obj/structure/lattice/catwalk,
/turf/open/space/basic,
/area/space/nearstation)
"zS" = (
/turf/open/space/basic,
/area/space)
@@ -224,10 +212,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"Le" = (
/obj/structure/lattice/catwalk,
/turf/open/space/basic,
/area/space/nearstation)
"LS" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plating/airless,
@@ -397,17 +381,17 @@ ZT
ZT
ZT
ZT
Le
hK
tw
Le
Le
hK
hK
tw
Le
Le
hK
hK
tw
Le
Le
Le
hK
hK
hK
YZ
Oj
YZ
@@ -453,17 +437,17 @@ ZT
ZT
ZT
ZT
Le
hK
tw
Le
Le
hK
hK
tw
Le
Le
hK
hK
tw
Le
Le
Le
hK
hK
hK
YZ
Oj
YZ
@@ -509,17 +493,17 @@ Ke
EL
Tk
MP
Le
hK
tw
Le
Le
hK
hK
tw
Le
Le
hK
hK
tw
Le
Le
Le
hK
hK
hK
YZ
Oj
YZ
+32 -32
View File
@@ -2411,8 +2411,8 @@
/area/awaymission/snowdin/post/dorm)
"fw" = (
/obj/machinery/sleeper{
icon_state = "sleeper";
dir = 4
dir = 4;
icon_state = "sleeper"
},
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -6704,9 +6704,9 @@
"oo" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5;
piping_layer = 3
pixel_y = 5
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -6714,9 +6714,9 @@
"op" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5;
piping_layer = 3
pixel_y = 5
},
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/engineering)
@@ -9707,10 +9707,10 @@
/area/awaymission/snowdin/post/broken_shuttle)
"wc" = (
/obj/machinery/computer{
name = "Shuttle Transist Console";
desc = "A console meant for calling and sending a transit ferry. It seems iced-over and non-functional.";
dir = 1;
icon_screen = null
icon_screen = null;
name = "Shuttle Transist Console"
},
/turf/open/floor/mineral/titanium/blue,
/area/awaymission/snowdin/post/broken_shuttle)
@@ -9799,9 +9799,9 @@
"wm" = (
/obj/machinery/porta_turret/centcom_shuttle/weak{
desc = "A turret built with substandard parts and run down further with age.";
icon_state = "syndie_off";
dir = 9;
faction = list("pirate")
faction = list("pirate");
icon_state = "syndie_off"
},
/turf/open/floor/plating/snowed/smoothed,
/area/awaymission/snowdin/cave)
@@ -9926,8 +9926,8 @@
/area/awaymission/snowdin/outside)
"wC" = (
/obj/vehicle/ridden/atv{
icon_state = "atv";
dir = 4
dir = 4;
icon_state = "atv"
},
/obj/effect/light_emitter{
name = "outdoor light";
@@ -10650,10 +10650,10 @@
/area/awaymission/snowdin/cave)
"yu" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
name = "toxin out";
dir = 8;
frequency = 1442;
id_tag = "snowdin_toxins_mine_1";
frequency = 1442
name = "toxin out"
},
/turf/open/floor/engine/vacuum,
/area/awaymission/snowdin/cave)
@@ -11025,8 +11025,8 @@
/area/awaymission/snowdin/post/minipost)
"zq" = (
/obj/vehicle/ridden/atv{
icon_state = "atv";
dir = 8
dir = 8;
icon_state = "atv"
},
/turf/open/floor/plating,
/area/awaymission/snowdin/post/minipost)
@@ -11939,8 +11939,8 @@
/area/awaymission/snowdin/cave)
"BO" = (
/obj/effect/turf_decal/stripes/end{
icon_state = "warn_end";
dir = 1
dir = 1;
icon_state = "warn_end"
},
/turf/open/floor/plating/snowed/cavern,
/area/awaymission/snowdin/cave/cavern)
@@ -11953,8 +11953,8 @@
/area/awaymission/snowdin/cave/cavern)
"BQ" = (
/obj/effect/turf_decal/stripes/end{
icon_state = "warn_end";
dir = 8
dir = 8;
icon_state = "warn_end"
},
/turf/open/floor/plating/snowed/cavern,
/area/awaymission/snowdin/cave/cavern)
@@ -12268,8 +12268,8 @@
/area/awaymission/snowdin/cave)
"CP" = (
/obj/structure/shuttle/engine/heater{
icon_state = "heater";
dir = 4
dir = 4;
icon_state = "heater"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -12803,8 +12803,8 @@
/area/awaymission/snowdin/cave)
"DU" = (
/obj/structure/shuttle/engine/heater{
icon_state = "heater";
dir = 4
dir = 4;
icon_state = "heater"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -13244,8 +13244,8 @@
/area/awaymission/snowdin/cave)
"EN" = (
/obj/machinery/sleeper/syndie{
icon_state = "sleeper_s";
dir = 1
dir = 1;
icon_state = "sleeper_s"
},
/obj/effect/turf_decal/bot_white,
/turf/open/floor/plasteel/dark,
@@ -13257,8 +13257,8 @@
"EP" = (
/obj/effect/turf_decal/bot_white,
/obj/machinery/sleeper/syndie{
icon_state = "sleeper_s";
dir = 1
dir = 1;
icon_state = "sleeper_s"
},
/turf/open/floor/plasteel/dark,
/area/awaymission/snowdin/cave)
@@ -14452,8 +14452,8 @@
/area/awaymission/snowdin/post/mining_main/mechbay)
"In" = (
/obj/mecha/working/ripley/mining{
icon_state = "ripley";
dir = 1
dir = 1;
icon_state = "ripley"
},
/obj/effect/turf_decal/bot,
/turf/open/floor/mech_bay_recharge_floor,
@@ -14513,8 +14513,8 @@
/area/awaymission/snowdin/post/mining_main)
"Ix" = (
/obj/vehicle/ridden/atv{
icon_state = "atv";
dir = 1
dir = 1;
icon_state = "atv"
},
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating,
+6 -6
View File
@@ -468,8 +468,8 @@
/area/awaymission/centcomAway/hangar)
"cO" = (
/obj/machinery/sleep_console{
icon_state = "console";
dir = 8
dir = 8;
icon_state = "console"
},
/turf/open/floor/mineral/titanium/blue,
/area/awaymission/centcomAway/hangar)
@@ -746,8 +746,8 @@
/area/awaymission/centcomAway/general)
"eI" = (
/obj/machinery/sleep_console{
icon_state = "console";
dir = 8
dir = 8;
icon_state = "console"
},
/turf/open/indestructible,
/area/awaymission/centcomAway/general)
@@ -1787,8 +1787,8 @@
/area/awaymission/centcomAway/general)
"kD" = (
/obj/machinery/door/window/northright{
icon_state = "right";
dir = 2
dir = 2;
icon_state = "right"
},
/turf/open/indestructible,
/area/awaymission/centcomAway/general)
+24 -24
View File
@@ -3129,8 +3129,8 @@
/obj/structure/table,
/obj/item/gun/ballistic/revolver/russian/soul,
/turf/open/floor/plasteel/airless{
icon_state = "whitered";
dir = 4
dir = 4;
icon_state = "whitered"
},
/area/awaymission/academy/academyaft)
"iY" = (
@@ -3197,8 +3197,8 @@
icon_state = "4-8"
},
/turf/open/floor/plasteel/airless{
icon_state = "whitered";
dir = 4
dir = 4;
icon_state = "whitered"
},
/area/awaymission/academy/academyaft)
"jh" = (
@@ -3258,8 +3258,8 @@
name = "The preserved brain of Harry Houdini"
},
/turf/open/floor/plasteel/airless{
icon_state = "whitered";
dir = 4
dir = 4;
icon_state = "whitered"
},
/area/awaymission/academy/academyaft)
"jp" = (
@@ -3365,8 +3365,8 @@
/obj/structure/window/reinforced,
/obj/item/batterer,
/turf/open/floor/plasteel/airless{
icon_state = "whitered";
dir = 4
dir = 4;
icon_state = "whitered"
},
/area/awaymission/academy/academyaft)
"jB" = (
@@ -3616,8 +3616,8 @@
/area/awaymission/academy/academygate)
"kw" = (
/turf/closed/indestructible/fakeglass{
icon_state = "fakewindows";
dir = 8
dir = 8;
icon_state = "fakewindows"
},
/area/awaymission/academy/headmaster)
"kx" = (
@@ -3671,8 +3671,8 @@
/area/awaymission/academy/academyaft)
"kF" = (
/turf/closed/indestructible/fakeglass{
icon_state = "fakewindows2";
dir = 8
dir = 8;
icon_state = "fakewindows2"
},
/area/awaymission/academy/headmaster)
"kG" = (
@@ -4270,8 +4270,8 @@
/area/awaymission/academy/academycellar)
"mW" = (
/turf/closed/indestructible/fakeglass{
icon_state = "fakewindows";
dir = 4
dir = 4;
icon_state = "fakewindows"
},
/area/awaymission/academy/headmaster)
"mX" = (
@@ -4284,14 +4284,14 @@
/area/space/nearstation)
"mZ" = (
/turf/closed/indestructible/fakeglass{
icon_state = "fakewindows";
dir = 1
dir = 1;
icon_state = "fakewindows"
},
/area/awaymission/academy/headmaster)
"na" = (
/turf/closed/indestructible/fakeglass{
icon_state = "fakewindows2";
dir = 1
dir = 1;
icon_state = "fakewindows2"
},
/area/awaymission/academy/headmaster)
"nb" = (
@@ -4310,20 +4310,20 @@
/area/awaymission/academy/headmaster)
"nd" = (
/turf/closed/indestructible/fakeglass{
icon_state = "fakewindows";
dir = 1
dir = 1;
icon_state = "fakewindows"
},
/area/awaymission/academy/academyengine)
"ne" = (
/turf/closed/indestructible/fakeglass{
icon_state = "fakewindows2";
dir = 1
dir = 1;
icon_state = "fakewindows2"
},
/area/awaymission/academy/academyengine)
"nf" = (
/turf/closed/indestructible/fakeglass{
icon_state = "fakewindows2";
dir = 6
dir = 6;
icon_state = "fakewindows2"
},
/area/awaymission/academy/headmaster)
"ng" = (
+16 -16
View File
@@ -11,8 +11,8 @@
"ad" = (
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
initial_gas_mix = "n2=23;o2=14"
initial_gas_mix = "n2=23;o2=14";
luminosity = 5
},
/area/awaymission/caves/BMP_asteroid/level_four)
"ae" = (
@@ -35,8 +35,8 @@
"ah" = (
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
initial_gas_mix = "n2=23;o2=14"
initial_gas_mix = "n2=23;o2=14";
luminosity = 5
},
/area/awaymission/caves/BMP_asteroid/level_three)
"ai" = (
@@ -305,8 +305,8 @@
/obj/effect/forcefield/cult,
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
initial_gas_mix = "n2=23;o2=14"
initial_gas_mix = "n2=23;o2=14";
luminosity = 5
},
/area/awaymission/caves/BMP_asteroid/level_four)
"aW" = (
@@ -540,8 +540,8 @@
"bM" = (
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
initial_gas_mix = "n2=23;o2=14"
initial_gas_mix = "n2=23;o2=14";
luminosity = 5
},
/area/awaymission/caves/BMP_asteroid)
"bN" = (
@@ -550,8 +550,8 @@
"bO" = (
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
initial_gas_mix = "n2=23;o2=14"
initial_gas_mix = "n2=23;o2=14";
luminosity = 5
},
/area/awaymission/caves/BMP_asteroid/level_two)
"bP" = (
@@ -1818,8 +1818,8 @@
/area/awaymission/caves/BMP_asteroid)
"fQ" = (
/turf/open/floor/plasteel/elevatorshaft{
name = "elevator flooring";
initial_gas_mix = "n2=23;o2=14"
initial_gas_mix = "n2=23;o2=14";
name = "elevator flooring"
},
/area/awaymission/caves/BMP_asteroid)
"fR" = (
@@ -1843,8 +1843,8 @@
"fU" = (
/obj/effect/landmark/awaystart,
/turf/open/floor/plasteel/elevatorshaft{
name = "elevator flooring";
initial_gas_mix = "n2=23;o2=14"
initial_gas_mix = "n2=23;o2=14";
name = "elevator flooring"
},
/area/awaymission/caves/BMP_asteroid)
"fW" = (
@@ -2169,8 +2169,8 @@
/obj/effect/baseturf_helper/lava,
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
initial_gas_mix = "n2=23;o2=14"
initial_gas_mix = "n2=23;o2=14";
luminosity = 5
},
/area/awaymission/caves/BMP_asteroid/level_four)
"gZ" = (
@@ -208,8 +208,8 @@
"aX" = (
/obj/machinery/porta_turret{
dir = 8;
set_obj_flags = "EMAGGED";
installation = /obj/item/gun/energy/lasercannon
installation = /obj/item/gun/energy/lasercannon;
set_obj_flags = "EMAGGED"
},
/turf/open/floor/plating/airless,
/area/awaymission/challenge/main)
@@ -354,8 +354,8 @@
"bq" = (
/obj/machinery/porta_turret{
dir = 8;
set_obj_flags = "EMAGGED";
installation = /obj/item/gun/energy/lasercannon
installation = /obj/item/gun/energy/lasercannon;
set_obj_flags = "EMAGGED"
},
/turf/open/floor/plating,
/area/awaymission/challenge/main)
File diff suppressed because it is too large Load Diff
+14 -14
View File
@@ -3162,10 +3162,10 @@
/obj/effect/mob_spawn/human/doctor{
brute_damage = 145;
id_job = "Geneticist";
name = "Geneticist";
oxy_damage = 55;
suit = /obj/item/clothing/suit/toggle/labcoat/genetics;
uniform = /obj/item/clothing/under/rank/medical/geneticist;
name = "Geneticist"
uniform = /obj/item/clothing/under/rank/medical/geneticist
},
/obj/effect/decal/cleanable/blood,
/obj/effect/turf_decal/tile/purple{
@@ -4276,10 +4276,10 @@
/obj/effect/mob_spawn/human/doctor{
brute_damage = 145;
id_job = "Geneticist";
name = "Geneticist";
oxy_damage = 55;
suit = /obj/item/clothing/suit/toggle/labcoat/genetics;
uniform = /obj/item/clothing/under/rank/medical/geneticist;
name = "Geneticist"
uniform = /obj/item/clothing/under/rank/medical/geneticist
},
/obj/effect/decal/cleanable/blood,
/obj/effect/turf_decal/tile/purple{
@@ -4724,11 +4724,11 @@
"jp" = (
/obj/structure/barricade/wooden{
desc = "A wooden table hastily flipped over for cover.";
obj_integrity = 55;
icon = 'icons/obj/smooth_structures/wood_table.dmi';
icon_state = "wood_table";
max_integrity = 55;
name = "flipped table"
name = "flipped table";
obj_integrity = 55
},
/turf/open/floor/plasteel/yellowsiding{
dir = 1
@@ -4874,11 +4874,11 @@
"jG" = (
/obj/structure/barricade/wooden{
desc = "A wooden table hastily flipped over for cover.";
obj_integrity = 55;
icon = 'icons/obj/smooth_structures/wood_table.dmi';
icon_state = "wood_table";
max_integrity = 55;
name = "flipped table"
name = "flipped table";
obj_integrity = 55
},
/turf/open/floor/plasteel,
/area/awaymission/research/interior/dorm)
@@ -5051,11 +5051,11 @@
"kb" = (
/obj/structure/barricade/wooden{
desc = "A wooden table hastily flipped over for cover.";
obj_integrity = 55;
icon = 'icons/obj/smooth_structures/wood_table.dmi';
icon_state = "wood_table";
max_integrity = 55;
name = "flipped table"
name = "flipped table";
obj_integrity = 55
},
/turf/open/floor/plasteel/yellowsiding,
/area/awaymission/research/interior/dorm)
@@ -5126,10 +5126,10 @@
/obj/effect/mob_spawn/human/doctor{
brute_damage = 145;
id_job = "Geneticist";
name = "Geneticist";
oxy_damage = 55;
suit = /obj/item/clothing/suit/toggle/labcoat/genetics;
uniform = /obj/item/clothing/under/rank/medical/geneticist;
name = "Geneticist"
uniform = /obj/item/clothing/under/rank/medical/geneticist
},
/obj/effect/decal/cleanable/blood,
/obj/effect/turf_decal/tile/blue{
@@ -6000,10 +6000,10 @@
/obj/effect/mob_spawn/human/doctor{
brute_damage = 145;
id_job = "Geneticist";
name = "Geneticist";
oxy_damage = 55;
suit = /obj/item/clothing/suit/toggle/labcoat/genetics;
uniform = /obj/item/clothing/under/rank/medical/geneticist;
name = "Geneticist"
uniform = /obj/item/clothing/under/rank/medical/geneticist
},
/turf/open/floor/mineral/titanium/blue,
/area/awaymission/research/exterior)
+8 -8
View File
@@ -6699,9 +6699,9 @@
"oo" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5;
piping_layer = 3
pixel_y = 5
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -6709,9 +6709,9 @@
"op" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5;
piping_layer = 3
pixel_y = 5
},
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/engineering)
@@ -9713,10 +9713,10 @@
/area/awaymission/snowdin/post/broken_shuttle)
"wc" = (
/obj/machinery/computer{
name = "Shuttle Transist Console";
desc = "A console meant for calling and sending a transit ferry. It seems iced-over and non-functional.";
dir = 1;
icon_screen = null
icon_screen = null;
name = "Shuttle Transist Console"
},
/turf/open/floor/mineral/titanium/blue,
/area/awaymission/snowdin/post/broken_shuttle)
@@ -10657,10 +10657,10 @@
/area/awaymission/snowdin/cave)
"yu" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
name = "toxin out";
dir = 8;
frequency = 1442;
id_tag = "snowdin_toxins_mine_1";
frequency = 1442
name = "toxin out"
},
/turf/open/floor/engine/vacuum,
/area/awaymission/snowdin/cave)
@@ -813,16 +813,16 @@
"bW" = (
/obj/structure/glowshroom/single,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 351.9
},
/area/awaymission/undergroundoutpost45/caves)
"bX" = (
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 351.9
},
@@ -2261,8 +2261,8 @@
/area/awaymission/undergroundoutpost45/central)
"eJ" = (
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -2632,8 +2632,8 @@
dir = 8
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -2868,8 +2868,8 @@
dir = 1
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -3047,8 +3047,8 @@
"gf" = (
/obj/structure/glowshroom/single,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -3195,8 +3195,8 @@
"gB" = (
/obj/machinery/light/small,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -3409,8 +3409,8 @@
dir = 8
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -3420,8 +3420,8 @@
dir = 4
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -3452,8 +3452,8 @@
dir = 8
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -4787,8 +4787,8 @@
"jL" = (
/obj/machinery/light/small,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -4821,8 +4821,8 @@
"jP" = (
/obj/machinery/light/small,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -6604,8 +6604,8 @@
dir = 1
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -8354,8 +8354,8 @@
dir = 6
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -8365,8 +8365,8 @@
dir = 4
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -8377,8 +8377,8 @@
dir = 4
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -8470,8 +8470,8 @@
name = "air out"
},
/turf/open/floor/engine{
name = "air floor";
initial_gas_mix = "n2=10580;o2=2644"
initial_gas_mix = "n2=10580;o2=2644";
name = "air floor"
},
/area/awaymission/undergroundoutpost45/engineering)
"pF" = (
@@ -8668,8 +8668,8 @@
"qa" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -8743,8 +8743,8 @@
dir = 10
},
/turf/open/floor/plasteel/dark{
name = "Server Walkway";
initial_gas_mix = "n2=500,TEMP=80"
initial_gas_mix = "n2=500,TEMP=80";
name = "Server Walkway"
},
/area/awaymission/undergroundoutpost45/research)
"qj" = (
@@ -8900,8 +8900,8 @@
dir = 4
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -8911,8 +8911,8 @@
dir = 1
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -8922,8 +8922,8 @@
dir = 9
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -9126,8 +9126,8 @@
dir = 8
},
/turf/open/floor/plasteel/dark{
name = "Server Walkway";
initial_gas_mix = "n2=500,TEMP=80"
initial_gas_mix = "n2=500,TEMP=80";
name = "Server Walkway"
},
/area/awaymission/undergroundoutpost45/research)
"qR" = (
@@ -9545,8 +9545,8 @@
dir = 9
},
/turf/open/floor/plasteel/dark{
name = "Server Walkway";
initial_gas_mix = "n2=500,TEMP=80"
initial_gas_mix = "n2=500,TEMP=80";
name = "Server Walkway"
},
/area/awaymission/undergroundoutpost45/research)
"rA" = (
@@ -11104,8 +11104,8 @@
dir = 1
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -11750,8 +11750,8 @@
dir = 4
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -11976,8 +11976,8 @@
dir = 1
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -12262,8 +12262,8 @@
dir = 8
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13481,8 +13481,8 @@
dir = 1
},
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13490,8 +13490,8 @@
"yh" = (
/obj/structure/ore_box,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13499,8 +13499,8 @@
"yi" = (
/obj/structure/closet/crate,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13510,8 +13510,8 @@
/obj/structure/bed/nest,
/obj/effect/mob_spawn/human,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13520,8 +13520,8 @@
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13531,8 +13531,8 @@
/obj/structure/glowshroom/single,
/obj/effect/decal/cleanable/blood/gibs/down,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13541,8 +13541,8 @@
/obj/structure/alien/weeds,
/obj/effect/decal/cleanable/blood/gibs/core,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13550,8 +13550,8 @@
"yn" = (
/obj/structure/alien/weeds,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13560,8 +13560,8 @@
/obj/structure/alien/weeds,
/obj/structure/alien/resin/wall,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13570,8 +13570,8 @@
/obj/structure/alien/weeds,
/obj/effect/mob_spawn/human,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13579,8 +13579,8 @@
"yq" = (
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13588,8 +13588,8 @@
"yr" = (
/obj/effect/decal/cleanable/blood/gibs/up,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13598,8 +13598,8 @@
/obj/structure/alien/weeds,
/obj/structure/glowshroom/single,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13608,8 +13608,8 @@
/obj/structure/alien/resin/wall,
/obj/structure/alien/weeds,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13618,8 +13618,8 @@
/obj/structure/alien/weeds,
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13627,8 +13627,8 @@
"yz" = (
/obj/structure/alien/resin/membrane,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13637,8 +13637,8 @@
/obj/structure/alien/weeds,
/obj/effect/decal/cleanable/blood/gibs/down,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13646,8 +13646,8 @@
"yB" = (
/obj/effect/decal/cleanable/blood/gibs/limb,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13656,8 +13656,8 @@
/obj/effect/decal/cleanable/blood/splatter,
/obj/effect/mob_spawn/human,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13667,8 +13667,8 @@
/obj/effect/decal/cleanable/blood/splatter,
/obj/effect/mob_spawn/human,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
@@ -13678,8 +13678,8 @@
/obj/effect/decal/cleanable/blood/gibs/down,
/obj/effect/mob_spawn/human,
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
name = "Cave Floor";
temperature = 363.9
},
File diff suppressed because it is too large Load Diff
+19 -18
View File
@@ -1000,7 +1000,7 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/hos)
"act" = (
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"acu" = (
@@ -3551,7 +3551,7 @@
/turf/open/floor/plasteel,
/area/security/brig)
"agU" = (
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"agV" = (
@@ -19903,7 +19903,6 @@
/turf/open/floor/plasteel,
/area/bridge)
"aVk" = (
/obj/machinery/holopad,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -19913,6 +19912,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/holopad,
/turf/open/floor/plasteel,
/area/bridge)
"aVl" = (
@@ -22726,10 +22726,10 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"bcf" = (
/obj/machinery/holopad,
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"bcg" = (
@@ -23322,10 +23322,10 @@
/turf/open/floor/mineral/titanium/blue,
/area/crew_quarters/toilet/locker)
"bdK" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/holopad/secure,
/turf/open/floor/carpet,
/area/bridge/meeting_room)
"bdL" = (
@@ -24223,6 +24223,7 @@
/obj/effect/turf_decal/tile/purple{
dir = 8
},
/obj/machinery/lapvend,
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bgb" = (
@@ -24557,10 +24558,10 @@
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/holopad,
/obj/structure/cable{
icon_state = "2-8"
},
/obj/machinery/holopad/secure,
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
"bgX" = (
@@ -28662,7 +28663,7 @@
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
"bqB" = (
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/carpet,
/area/crew_quarters/heads/hop)
"bqC" = (
@@ -32045,7 +32046,7 @@
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/heads/hor)
"byr" = (
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/white,
/area/crew_quarters/heads/hor)
"bys" = (
@@ -32135,13 +32136,13 @@
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"byC" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/tile/brown{
dir = 4
},
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"byD" = (
@@ -35876,13 +35877,13 @@
/turf/open/floor/engine,
/area/science/storage)
"bGZ" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/heads/cmo)
"bHa" = (
@@ -40809,8 +40810,8 @@
/turf/open/floor/plasteel,
/area/security/checkpoint/engineering)
"bTI" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/tcommsat/computer)
"bTJ" = (
@@ -45387,7 +45388,6 @@
name = "Privacy Shutters Control";
pixel_y = 26
},
/obj/machinery/holopad,
/obj/machinery/light{
dir = 1
},
@@ -45401,6 +45401,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/chief)
"cfI" = (
@@ -49628,12 +49629,12 @@
/turf/open/floor/plasteel/grimy,
/area/ai_monitored/turret_protected/aisat_interior)
"ctJ" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable{
icon_state = "2-8"
},
/obj/effect/landmark/start/cyborg,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/grimy,
/area/ai_monitored/turret_protected/aisat_interior)
"ctK" = (
@@ -50018,9 +50019,9 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/atmos)
"cuC" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/landmark/start/cyborg,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/atmos)
"cuD" = (
@@ -50075,12 +50076,12 @@
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/effect/landmark/start/cyborg,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"cuH" = (
@@ -50106,10 +50107,10 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/service)
"cuJ" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/service)
"cuK" = (
@@ -50676,8 +50677,8 @@
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/hallway)
"cvU" = (
@@ -50932,10 +50933,10 @@
/obj/structure/cable{
icon_state = "2-8"
},
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"cwB" = (
File diff suppressed because it is too large Load Diff
+30 -30
View File
@@ -2425,8 +2425,8 @@
"go" = (
/obj/machinery/camera/autoname,
/obj/structure/railing{
icon_state = "railing";
dir = 8
dir = 8;
icon_state = "railing"
},
/turf/open/floor/grass,
/area/hydroponics/garden/monastery)
@@ -2572,8 +2572,8 @@
"gO" = (
/obj/machinery/space_heater,
/obj/structure/railing/corner{
icon_state = "railing_corner";
dir = 8
dir = 8;
icon_state = "railing_corner"
},
/turf/open/floor/plating,
/area/maintenance/central)
@@ -5594,8 +5594,8 @@
/area/maintenance/solars/starboard)
"oy" = (
/obj/structure/railing{
icon_state = "railing";
dir = 4
dir = 4;
icon_state = "railing"
},
/turf/open/floor/plating,
/area/maintenance/central)
@@ -7058,8 +7058,8 @@
/area/hydroponics)
"sn" = (
/obj/structure/railing/corner{
icon_state = "railing_corner";
dir = 8
dir = 8;
icon_state = "railing_corner"
},
/turf/open/floor/plating,
/area/maintenance/central)
@@ -7083,8 +7083,8 @@
/area/asteroid/nearstation)
"sr" = (
/obj/structure/railing/corner{
icon_state = "railing_corner";
dir = 4
dir = 4;
icon_state = "railing_corner"
},
/turf/open/floor/grass,
/area/hydroponics/garden/monastery)
@@ -12130,8 +12130,8 @@
/area/hallway/secondary/service)
"Fw" = (
/obj/structure/railing{
icon_state = "railing";
dir = 8
dir = 8;
icon_state = "railing"
},
/turf/open/floor/plating,
/area/maintenance/central)
@@ -13656,8 +13656,8 @@
/area/janitor)
"IY" = (
/obj/structure/railing{
icon_state = "railing";
dir = 8
dir = 8;
icon_state = "railing"
},
/obj/structure/cable{
icon_state = "1-2"
@@ -14004,8 +14004,8 @@
/area/vacant_room/commissary)
"JT" = (
/obj/docking_port/stationary/public_mining_dock{
icon_state = "pinonfar";
dir = 2
dir = 2;
icon_state = "pinonfar"
},
/turf/open/floor/plating,
/area/construction/mining/aux_base)
@@ -14423,8 +14423,8 @@
/area/crew_quarters/kitchen)
"KX" = (
/obj/structure/railing/corner{
icon_state = "railing_corner";
dir = 1
dir = 1;
icon_state = "railing_corner"
},
/turf/open/floor/grass,
/area/hydroponics/garden/monastery)
@@ -14469,8 +14469,8 @@
/area/hallway/secondary/service)
"Le" = (
/obj/structure/railing{
icon_state = "railing";
dir = 5
dir = 5;
icon_state = "railing"
},
/turf/open/floor/grass,
/area/hydroponics/garden/monastery)
@@ -14493,8 +14493,8 @@
/area/crew_quarters/fitness/recreation)
"Lg" = (
/obj/structure/railing{
icon_state = "railing";
dir = 8
dir = 8;
icon_state = "railing"
},
/obj/machinery/power/apc{
areastring = "/area/hallway/secondary/construction";
@@ -15478,8 +15478,8 @@
/area/maintenance/department/crew_quarters/dorms)
"NG" = (
/obj/structure/railing{
icon_state = "railing";
dir = 9
dir = 9;
icon_state = "railing"
},
/turf/open/floor/grass,
/area/hydroponics/garden/monastery)
@@ -16723,8 +16723,8 @@
/area/crew_quarters/fitness/recreation)
"QT" = (
/obj/structure/railing{
icon_state = "railing";
dir = 8
dir = 8;
icon_state = "railing"
},
/turf/open/floor/grass,
/area/hydroponics/garden/monastery)
@@ -16896,8 +16896,8 @@
/area/gateway)
"Rx" = (
/obj/structure/railing/corner{
icon_state = "railing_corner";
dir = 8
dir = 8;
icon_state = "railing_corner"
},
/turf/open/floor/grass,
/area/hydroponics/garden/monastery)
@@ -16929,8 +16929,8 @@
/area/gateway)
"RA" = (
/obj/structure/railing{
icon_state = "railing";
dir = 4
dir = 4;
icon_state = "railing"
},
/turf/open/floor/grass,
/area/hydroponics/garden/monastery)
+66 -66
View File
@@ -61,16 +61,16 @@
"n" = (
/obj/effect/landmark/mafia,
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 9
dir = 9;
icon_state = "trimline_fill"
},
/obj/effect/turf_decal/trimline/brown/filled/corner,
/turf/open/floor/plasteel,
/area/mafia)
"o" = (
/obj/effect/turf_decal/trimline/brown/filled/end{
icon_state = "trimline_end_fill";
dir = 4
dir = 4;
icon_state = "trimline_end_fill"
},
/obj/structure/closet{
desc = "It's a storage unit. For mining stuff. Y'know.";
@@ -94,8 +94,8 @@
/area/mafia)
"r" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 9
dir = 9;
icon_state = "trimline_fill"
},
/obj/structure/closet{
desc = "It's a storage unit. For mining stuff. Y'know.";
@@ -107,8 +107,8 @@
/area/mafia)
"s" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 9
dir = 9;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
@@ -134,31 +134,31 @@
/area/mafia)
"w" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 1
dir = 1;
icon_state = "trimline_fill"
},
/obj/effect/turf_decal/trimline/brown/filled/corner,
/turf/open/floor/plasteel,
/area/mafia)
"x" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 1
dir = 1;
icon_state = "trimline_fill"
},
/obj/effect/turf_decal/trimline/brown/filled/line,
/turf/open/floor/plasteel,
/area/mafia)
"y" = (
/obj/effect/turf_decal/trimline/brown/filled/end{
icon_state = "trimline_end_fill";
dir = 4
dir = 4;
icon_state = "trimline_end_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"z" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 5
dir = 5;
icon_state = "trimline_fill"
},
/obj/structure/closet{
desc = "It's a storage unit. For mining stuff. Y'know.";
@@ -171,70 +171,70 @@
"A" = (
/obj/effect/landmark/mafia,
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 6
dir = 6;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"B" = (
/obj/effect/turf_decal/trimline/brown/filled/end{
icon_state = "trimline_end_fill";
dir = 1
dir = 1;
icon_state = "trimline_end_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"C" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 4
dir = 4;
icon_state = "trimline_fill"
},
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 8
dir = 8;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"D" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 10
dir = 10;
icon_state = "trimline_fill"
},
/obj/effect/turf_decal/trimline/brown/filled/corner{
icon_state = "trimline_corner_fill";
dir = 4
dir = 4;
icon_state = "trimline_corner_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"E" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 1
dir = 1;
icon_state = "trimline_fill"
},
/obj/effect/turf_decal/trimline/brown/filled/corner{
icon_state = "trimline_corner_fill";
dir = 8
dir = 8;
icon_state = "trimline_corner_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"F" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 5
dir = 5;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"G" = (
/obj/effect/landmark/mafia,
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 10
dir = 10;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"H" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 10
dir = 10;
icon_state = "trimline_fill"
},
/obj/structure/closet{
desc = "It's a storage unit. For mining stuff. Y'know.";
@@ -246,8 +246,8 @@
/area/mafia)
"I" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 6
dir = 6;
icon_state = "trimline_fill"
},
/obj/structure/closet{
desc = "It's a storage unit. For mining stuff. Y'know.";
@@ -260,19 +260,19 @@
"J" = (
/obj/effect/landmark/mafia,
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 6
dir = 6;
icon_state = "trimline_fill"
},
/obj/effect/turf_decal/trimline/brown/filled/corner{
icon_state = "trimline_corner_fill";
dir = 1
dir = 1;
icon_state = "trimline_corner_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"K" = (
/obj/effect/turf_decal/trimline/brown/filled/end{
icon_state = "trimline_end_fill";
dir = 8
dir = 8;
icon_state = "trimline_end_fill"
},
/obj/structure/closet{
desc = "It's a storage unit. For mining stuff. Y'know.";
@@ -285,34 +285,34 @@
"L" = (
/obj/effect/landmark/mafia,
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 5
dir = 5;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"M" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 10
dir = 10;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"N" = (
/obj/effect/turf_decal/trimline/brown/filled/line,
/obj/effect/turf_decal/trimline/brown/filled/corner{
icon_state = "trimline_corner_fill";
dir = 4
dir = 4;
icon_state = "trimline_corner_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"O" = (
/obj/effect/turf_decal/trimline/brown/filled/corner{
icon_state = "trimline_corner_fill";
dir = 8
dir = 8;
icon_state = "trimline_corner_fill"
},
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 5
dir = 5;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
@@ -323,8 +323,8 @@
"Q" = (
/obj/effect/landmark/mafia,
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 9
dir = 9;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
@@ -345,31 +345,31 @@
/area/mafia)
"S" = (
/obj/effect/turf_decal/trimline/brown/filled/end{
icon_state = "trimline_end_fill";
dir = 8
dir = 8;
icon_state = "trimline_end_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"T" = (
/obj/effect/turf_decal/trimline/brown/filled/line,
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 1
dir = 1;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"U" = (
/obj/effect/turf_decal/trimline/brown/filled/line,
/obj/effect/turf_decal/trimline/brown/filled/corner{
icon_state = "trimline_corner_fill";
dir = 1
dir = 1;
icon_state = "trimline_corner_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
"V" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
icon_state = "trimline_fill";
dir = 6
dir = 6;
icon_state = "trimline_fill"
},
/turf/open/floor/plasteel,
/area/mafia)
+2 -2
View File
@@ -62,8 +62,8 @@
/area/mafia)
"n" = (
/obj/structure/chair/brass{
icon_state = "brass_chair";
dir = 1
dir = 1;
icon_state = "brass_chair"
},
/turf/open/floor/clockwork/reebe,
/area/mafia)
+74 -129
View File
@@ -3710,7 +3710,6 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"agS" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -3721,6 +3720,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"agT" = (
@@ -3795,11 +3795,11 @@
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"agZ" = (
/obj/machinery/holopad,
/obj/structure/chair{
dir = 1
},
/obj/effect/landmark/start/head_of_security,
/obj/machinery/holopad/secure,
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"aha" = (
@@ -9617,8 +9617,8 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
},
/obj/machinery/holopad,
/obj/effect/turf_decal/stripes/line,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
"arR" = (
@@ -13304,13 +13304,6 @@
/obj/structure/lattice/catwalk,
/turf/open/space,
/area/space/nearstation)
"aze" = (
/obj/item/kirbyplants{
icon_state = "plant-22"
},
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/wood,
/area/library)
"azg" = (
/obj/item/stack/cable_coil,
/turf/open/floor/plating/airless,
@@ -14062,18 +14055,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/engine/engineering)
"aAz" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
pixel_x = 1;
pixel_y = 5
},
/obj/machinery/computer/security/telescreen/entertainment{
pixel_y = 30
},
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plasteel/cult,
/area/library)
"aAA" = (
/obj/docking_port/stationary{
dir = 8;
@@ -14907,6 +14888,12 @@
},
/turf/open/floor/plasteel/dark,
/area/security/nuke_storage)
"aCi" = (
/obj/structure/sign/painting/library{
pixel_y = 32
},
/turf/open/floor/wood,
/area/library)
"aCj" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/security/glass{
@@ -16576,14 +16563,17 @@
/turf/open/floor/engine,
/area/engine/engineering)
"aFE" = (
/obj/structure/table/wood,
/obj/machinery/newscaster{
pixel_y = 32
/obj/structure/table/wood/fancy/blue,
/obj/structure/table/wood/fancy/royalblue,
/obj/structure/sign/painting/library_secure{
pixel_x = 32
},
/obj/item/folder,
/obj/item/folder,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plasteel/cult,
/obj/machinery/door/window{
dir = 8;
name = "Secure Art Exhibition";
req_access_txt = "37"
},
/turf/open/floor/wood,
/area/library)
"aFF" = (
/obj/structure/table,
@@ -20575,7 +20565,7 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"aOc" = (
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"aOd" = (
@@ -21700,7 +21690,7 @@
/area/quartermaster/qm)
"aQs" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"aQt" = (
@@ -25578,7 +25568,7 @@
dir = 1;
pixel_y = 1
},
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/aisat)
"aYe" = (
@@ -27503,7 +27493,6 @@
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
"bbv" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -27514,6 +27503,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
"bbw" = (
@@ -30698,7 +30688,6 @@
/obj/structure/window/reinforced{
dir = 8
},
/obj/machinery/holopad,
/turf/open/floor/wood,
/area/crew_quarters/heads/captain/private)
"bhz" = (
@@ -31161,8 +31150,8 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"bip" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"biq" = (
@@ -33899,12 +33888,12 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"bnC" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/effect/landmark/start/cyborg,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"bnD" = (
@@ -34887,11 +34876,11 @@
/turf/open/floor/plasteel/dark,
/area/aisat)
"bpF" = (
/obj/machinery/holopad,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/aisat)
"bpG" = (
@@ -34937,8 +34926,8 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/holopad,
/obj/item/beacon,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/foyer)
"bpL" = (
@@ -36523,16 +36512,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bsI" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/obj/structure/extinguisher_cabinet{
pixel_y = -30
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bsJ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -37489,9 +37468,9 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/captain/private)
"buG" = (
/obj/machinery/holopad{
pixel_x = 9;
pixel_y = -9
/obj/machinery/holopad/secure{
pixel_x = 15;
pixel_y = -15
},
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain/private)
@@ -38069,32 +38048,12 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/carpet,
/area/library)
"bwe" = (
/obj/structure/chair/comfy/black{
dir = 8
"bwf" = (
/obj/machinery/light{
dir = 1
},
/turf/open/floor/wood,
/area/library)
"bwf" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
pixel_x = 1;
pixel_y = 5
},
/obj/machinery/computer/security/telescreen/entertainment{
pixel_y = 30
},
/turf/open/floor/plasteel/cult,
/area/library)
"bwg" = (
/obj/structure/table/wood,
/obj/machinery/newscaster{
pixel_y = 32
},
/obj/item/folder,
/obj/item/folder,
/turf/open/floor/plasteel/cult,
/area/library)
"bwh" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/extinguisher_cabinet{
@@ -38943,14 +38902,19 @@
/obj/effect/landmark/start/librarian,
/turf/open/floor/wood,
/area/library)
"bxW" = (
/turf/open/floor/plasteel/cult,
/area/library)
"bxX" = (
/obj/structure/chair/comfy/brown{
dir = 1
/obj/structure/table/wood/fancy/blue,
/obj/structure/table/wood/fancy/royalblue,
/obj/structure/sign/painting/library_secure{
pixel_x = 32
},
/turf/open/floor/plasteel/cult,
/obj/machinery/door/window{
dir = 8;
name = "Secure Art Exhibition";
req_access_txt = "37"
},
/obj/structure/window/reinforced/spawner,
/turf/open/floor/wood,
/area/library)
"bxY" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -39670,7 +39634,6 @@
/turf/open/floor/plasteel/grimy,
/area/tcommsat/computer)
"bzq" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
@@ -39681,6 +39644,7 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/grimy,
/area/tcommsat/computer)
"bzr" = (
@@ -39797,18 +39761,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/carpet,
/area/library)
"bzG" = (
/obj/machinery/door/morgue{
name = "Study #1"
},
/turf/open/floor/plasteel/cult,
/area/library)
"bzH" = (
/obj/machinery/door/morgue{
name = "Study #2"
},
/turf/open/floor/plasteel/cult,
/area/library)
"bzI" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/light{
@@ -40511,9 +40463,6 @@
/area/engine/atmos)
"bBu" = (
/obj/machinery/vending/coffee,
/obj/machinery/newscaster{
pixel_y = 32
},
/turf/open/floor/wood,
/area/library)
"bBv" = (
@@ -40525,12 +40474,6 @@
/obj/machinery/bookbinder,
/turf/open/floor/wood,
/area/library)
"bBx" = (
/obj/item/kirbyplants{
icon_state = "plant-22"
},
/turf/open/floor/wood,
/area/library)
"bBy" = (
/obj/structure/sign/directions/command{
dir = 4;
@@ -43456,13 +43399,13 @@
/turf/open/floor/plasteel/dark/telecomms,
/area/tcommsat/server)
"bHE" = (
/obj/machinery/holopad,
/obj/structure/cable/yellow{
icon_state = "1-4"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark/telecomms,
/area/tcommsat/server)
"bHF" = (
@@ -58787,7 +58730,7 @@
/area/science/explab)
"cmX" = (
/obj/structure/window/reinforced,
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/aisat)
"cmY" = (
@@ -61251,13 +61194,13 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/holopad,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/heads/cmo)
"crA" = (
@@ -63638,7 +63581,7 @@
},
/area/crew_quarters/heads/hor)
"cvU" = (
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/cafeteria{
dir = 5
},
@@ -75899,9 +75842,6 @@
/obj/machinery/light{
dir = 1
},
/obj/machinery/status_display/evac{
pixel_y = 30
},
/obj/machinery/photocopier{
pixel_y = 3
},
@@ -81614,6 +81554,12 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"iAG" = (
/obj/structure/sign/painting/library{
pixel_y = -32
},
/turf/open/floor/wood,
/area/library)
"iCn" = (
/obj/machinery/vr_sleeper,
/turf/open/floor/plasteel,
@@ -82628,12 +82574,11 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/fitness/recreation)
"qBh" = (
/obj/structure/table,
/obj/item/paicard,
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
dir = 8
},
/obj/machinery/lapvend,
/turf/open/floor/plasteel/white,
/area/science/research)
"qBq" = (
@@ -103714,8 +103659,8 @@ bnV
bql
awL
bue
aze
bwe
bzE
bzE
bGv
bHT
bwc
@@ -103971,8 +103916,8 @@ bod
bql
bsG
bue
bue
bue
aCi
iAG
bue
bBu
bwc
@@ -104228,9 +104173,9 @@ boe
bql
bsH
bue
aAz
bxW
bzG
aCi
iAG
bue
bzE
bwc
bEA
@@ -104485,8 +104430,8 @@ bof
bqu
bsz
bue
bwg
bxX
aCi
iAG
bue
bBv
bwc
@@ -104740,10 +104685,10 @@ bku
bml
bog
bqv
bsI
bue
bue
bsz
bue
aCi
iAG
bue
cUT
bwc
@@ -105000,8 +104945,8 @@ bqw
bsx
bue
bwf
bxW
bzH
bzE
bzE
bzE
dCX
bwc
@@ -105258,11 +105203,11 @@ bsx
bue
aFE
bxX
bue
bzE
bzE
bwc
bwc
bBw
bwc
bwc
bBx
bue
bue
bue
@@ -3,9 +3,9 @@
/turf/open/space/basic,
/area/space)
"aab" = (
/obj/machinery/holopad,
/obj/effect/landmark/start/cyborg,
/mob/living/simple_animal/bot/secbot/pingsky,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"aac" = (
@@ -999,7 +999,7 @@
/obj/machinery/power/terminal{
dir = 1
},
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/white,
/area/ai_monitored/turret_protected/ai)
"acs" = (
@@ -11793,7 +11793,7 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/captain)
"aBn" = (
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/captain)
"aBo" = (
@@ -12592,7 +12592,7 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/hop)
"aCR" = (
/obj/machinery/holopad,
/obj/machinery/holopad/secure,
/turf/open/floor/wood,
/area/crew_quarters/heads/hop)
"aCS" = (
@@ -12995,7 +12995,6 @@
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai_upload)
"aDM" = (
/obj/machinery/holopad,
/obj/machinery/camera/motion{
c_tag = "AI Upload Center";
dir = 1;
@@ -13008,6 +13007,7 @@
name = "Station Intercom (AI Private)";
pixel_y = -28
},
/obj/machinery/holopad/secure,
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai_upload)
"aDN" = (
+30 -30
View File
@@ -435,8 +435,8 @@
/area/engine/atmos)
"bm" = (
/obj/machinery/atmospherics/components/binary/valve/on{
icon_state = "mvalve_map-2";
dir = 4
dir = 4;
icon_state = "mvalve_map-2"
},
/turf/open/floor/plating,
/area/engine/atmos)
@@ -1502,8 +1502,8 @@
/area/engine/storage)
"gK" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
icon_state = "connector_map-2";
dir = 8
dir = 8;
icon_state = "connector_map-2"
},
/obj/machinery/portable_atmospherics/canister/toxins,
/turf/open/floor/plating,
@@ -1514,8 +1514,8 @@
/area/hallway/secondary/service)
"hi" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
icon_state = "inje_map-2";
dir = 4
dir = 4;
icon_state = "inje_map-2"
},
/turf/open/floor/plating,
/area/construction)
@@ -1555,8 +1555,8 @@
/area/hallway/secondary/service)
"jA" = (
/obj/effect/turf_decal/stripes/white/line{
icon_state = "warningline_white";
dir = 8
dir = 8;
icon_state = "warningline_white"
},
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -1567,8 +1567,8 @@
/area/construction)
"jV" = (
/obj/effect/turf_decal/stripes/white/line{
icon_state = "warningline_white";
dir = 6
dir = 6;
icon_state = "warningline_white"
},
/turf/open/floor/plating,
/area/engine/storage)
@@ -1637,8 +1637,8 @@
/area/engine/storage)
"qR" = (
/obj/effect/turf_decal/stripes/white/line{
icon_state = "warningline_white";
dir = 9
dir = 9;
icon_state = "warningline_white"
},
/turf/open/floor/plating,
/area/engine/storage)
@@ -1659,15 +1659,15 @@
/area/construction)
"sE" = (
/obj/effect/turf_decal/stripes/white/line{
icon_state = "warningline_white";
dir = 4
dir = 4;
icon_state = "warningline_white"
},
/turf/open/floor/plating,
/area/engine/storage)
"td" = (
/obj/effect/turf_decal/stripes/white/line{
icon_state = "warningline_white";
dir = 8
dir = 8;
icon_state = "warningline_white"
},
/turf/open/floor/plating,
/area/engine/storage)
@@ -1704,8 +1704,8 @@
/area/construction)
"xB" = (
/obj/effect/turf_decal/stripes/white/line{
icon_state = "warningline_white";
dir = 1
dir = 1;
icon_state = "warningline_white"
},
/turf/open/floor/plating,
/area/engine/storage)
@@ -1720,8 +1720,8 @@
/area/construction)
"zZ" = (
/obj/structure/disposalpipe/trunk{
icon_state = "pipe-t";
dir = 1
dir = 1;
icon_state = "pipe-t"
},
/obj/machinery/disposal/bin,
/turf/open/floor/plating,
@@ -1788,12 +1788,12 @@
/area/construction)
"EH" = (
/obj/effect/turf_decal/stripes/white/line{
icon_state = "warningline_white";
dir = 1
dir = 1;
icon_state = "warningline_white"
},
/obj/effect/turf_decal/stripes/white/line{
icon_state = "warningline_white";
dir = 4
dir = 4;
icon_state = "warningline_white"
},
/turf/open/floor/plating,
/area/engine/storage)
@@ -1804,8 +1804,8 @@
"FL" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/green/hidden{
icon_state = "pipe11-2";
dir = 4
dir = 4;
icon_state = "pipe11-2"
},
/turf/open/floor/plating,
/area/construction)
@@ -1896,8 +1896,8 @@
/area/engine/storage)
"Qo" = (
/obj/structure/disposalpipe/trunk/multiz/down{
icon_state = "pipe-down";
dir = 1
dir = 1;
icon_state = "pipe-down"
},
/turf/open/floor/plating,
/area/hallway/secondary/service)
@@ -1966,8 +1966,8 @@
/area/construction)
"ZQ" = (
/obj/effect/turf_decal/stripes/white/line{
icon_state = "warningline_white";
dir = 5
dir = 5;
icon_state = "warningline_white"
},
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
+6 -6
View File
@@ -1407,8 +1407,8 @@
height = 5;
id = "laborcamp_home";
name = "fore bay 1";
width = 9;
roundstart_template = /datum/map_template/shuttle/labour/box
roundstart_template = /datum/map_template/shuttle/labour/box;
width = 9
},
/turf/open/space/basic,
/area/space)
@@ -1419,8 +1419,8 @@
height = 15;
id = "arrivals_stationary";
name = "arrivals";
width = 7;
roundstart_template = /datum/map_template/shuttle/arrival/box
roundstart_template = /datum/map_template/shuttle/arrival/box;
width = 7
},
/turf/open/space/basic,
/area/space)
@@ -2325,8 +2325,8 @@
height = 5;
id = "mining_home";
name = "mining shuttle bay";
width = 7;
roundstart_template = /datum/map_template/shuttle/mining/box
roundstart_template = /datum/map_template/shuttle/mining/box;
width = 7
},
/turf/open/space/basic,
/area/space)
+7 -26
View File
@@ -80,10 +80,6 @@
},
/turf/open/floor/clockwork/reebe,
/area/reebe/city_of_cogs)
"az" = (
/obj/structure/destructible/clockwork/eminence_spire,
/turf/open/floor/clockwork/reebe,
/area/reebe/city_of_cogs)
"aA" = (
/obj/machinery/door/airlock/clockwork/brass{
name = "Infirmary"
@@ -168,21 +164,6 @@
/obj/effect/clockwork/sigil/transmission,
/turf/open/floor/clockwork/reebe,
/area/reebe/city_of_cogs)
"ew" = (
/obj/structure/table/reinforced/brass,
/obj/item/clockwork/construct_chassis/cogscarab{
pixel_y = 20
},
/obj/item/clockwork/construct_chassis/cogscarab{
pixel_x = -7;
pixel_y = 6
},
/obj/item/clockwork/construct_chassis/cogscarab{
pixel_x = 7;
pixel_y = 6
},
/turf/open/floor/clockwork/reebe,
/area/reebe/city_of_cogs)
"hY" = (
/obj/item/clockwork/alloy_shards/pinion_lock,
/turf/open/floor/clockwork/reebe,
@@ -208,10 +189,6 @@
/obj/item/storage/belt/utility/servant,
/turf/open/floor/clockwork/reebe,
/area/reebe/city_of_cogs)
"vx" = (
/obj/effect/clockwork/sigil/transmission,
/turf/open/floor/clockwork/reebe,
/area/reebe/city_of_cogs)
"wV" = (
/obj/item/clockwork/alloy_shards/large,
/turf/open/indestructible/reebe_void/spawning/lattices,
@@ -244,6 +221,10 @@
/obj/item/clockwork/alloy_shards/small,
/turf/open/indestructible/reebe_void/spawning/lattices,
/area/reebe)
"Ox" = (
/obj/structure/destructible/clockwork/eminence_spire,
/turf/open/floor/clockwork/reebe,
/area/reebe/city_of_cogs)
"OB" = (
/obj/item/clockwork/component/geis_capacitor/fallen_armor,
/turf/open/floor/clockwork/reebe,
@@ -32770,7 +32751,7 @@ ae
ae
ag
ah
ew
aL
aj
aj
aj
@@ -33284,8 +33265,8 @@ ab
ab
ae
ai
az
vx
Ox
aj
aj
aj
aE
+2 -2
View File
@@ -9,9 +9,9 @@
dwidth = 11;
height = 22;
id = "whiteship_away";
json_key = "whiteship";
name = "Deep Space";
width = 35;
json_key = "whiteship"
width = 35
},
/turf/open/space,
/area/space)
+16 -16
View File
@@ -75,8 +75,8 @@
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/arrows{
icon_state = "arrows";
dir = 1
dir = 1;
icon_state = "arrows"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -112,8 +112,8 @@
/area/shuttle/arrival)
"n" = (
/obj/structure/shuttle/engine/propulsion/left{
icon_state = "propulsion_l";
dir = 8
dir = 8;
icon_state = "propulsion_l"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -124,8 +124,8 @@
/obj/structure/window/shuttle,
/obj/structure/grille,
/obj/structure/shuttle/engine/heater{
icon_state = "heater";
dir = 8
dir = 8;
icon_state = "heater"
},
/turf/open/floor/plating,
/area/shuttle/arrival)
@@ -143,8 +143,8 @@
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/arrows{
icon_state = "arrows";
dir = 1
dir = 1;
icon_state = "arrows"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -157,8 +157,8 @@
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/arrows{
icon_state = "arrows";
dir = 1
dir = 1;
icon_state = "arrows"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -194,8 +194,8 @@
/area/shuttle/arrival)
"u" = (
/obj/structure/shuttle/engine/propulsion{
icon_state = "propulsion";
dir = 8
dir = 8;
icon_state = "propulsion"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -237,8 +237,8 @@
pixel_x = 28
},
/obj/effect/turf_decal/arrows{
icon_state = "arrows";
dir = 1
dir = 1;
icon_state = "arrows"
},
/obj/effect/turf_decal/stripes/corner,
/obj/effect/turf_decal/stripes/corner{
@@ -327,8 +327,8 @@
/area/shuttle/arrival)
"G" = (
/obj/structure/shuttle/engine/propulsion/right{
icon_state = "propulsion_r";
dir = 8
dir = 8;
icon_state = "propulsion_r"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
+2 -2
View File
@@ -198,9 +198,9 @@
dir = 8;
dwidth = 6;
height = 18;
name = "Birdboat emergency escape shuttle";
port_direction = 4;
width = 14;
name = "Birdboat emergency escape shuttle"
width = 14
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium,
+2 -2
View File
@@ -545,9 +545,9 @@
dwidth = 11;
height = 18;
name = "Delta emergency shuttle";
width = 30;
port_direction = 4;
preferred_direction = 2;
port_direction = 4
width = 30
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
+3 -3
View File
@@ -19,10 +19,10 @@
name = "Escape Pod Airlock"
},
/obj/docking_port/mobile/pod{
port_direction = 2;
dwidth = 1;
width = 3;
height = 4
height = 4;
port_direction = 2;
width = 3
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
+4 -4
View File
@@ -4,8 +4,8 @@
/area/shuttle/labor)
"b" = (
/obj/structure/shuttle/engine/propulsion{
icon_state = "propulsion";
dir = 1
dir = 1;
icon_state = "propulsion"
},
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -14,8 +14,8 @@
/area/shuttle/labor)
"c" = (
/obj/structure/shuttle/engine/heater{
icon_state = "heater";
dir = 1
dir = 1;
icon_state = "heater"
},
/obj/structure/window/reinforced,
/obj/effect/turf_decal/stripes/line{
+4 -4
View File
@@ -86,8 +86,8 @@
width = 7
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 8
dir = 8;
icon_state = "pipe11-2"
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
@@ -115,8 +115,8 @@
"p" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 8
dir = 8;
icon_state = "pipe11-2"
},
/obj/effect/turf_decal/stripes/corner{
dir = 8
+2 -1
View File
@@ -13,7 +13,8 @@
#define BLOCK_Z_OUT_UP (1<<10) // Should this object block z uprise from loc?
#define BLOCK_Z_IN_DOWN (1<<11) // Should this object block z falling from above?
#define BLOCK_Z_IN_UP (1<<12) // Should this object block z uprise from below?
#define SHOVABLE_ONTO (1<<13) //called on turf.shove_act() to consider whether an object should have a niche effect (defined in their own shove_act()) when someone is pushed onto it, or do a sanity CanPass() check.
#define SHOVABLE_ONTO (1<<13)//called on turf.shove_act() to consider whether an object should have a niche effect (defined in their own shove_act()) when someone is pushed onto it, or do a sanity CanPass() check.
#define EXAMINE_SKIP (1<<14) /// Makes the Examine proc not read out this item.
/// Integrity defines for clothing (not flags but close enough)
#define CLOTHING_PRISTINE 0 // We have no damage on the clothing
+1
View File
@@ -80,6 +80,7 @@ GLOBAL_LIST_EMPTY(living_heart_cache) //A list of all living hearts in existance
#define PATH_ASH "Ash"
#define PATH_RUST "Rust"
#define PATH_FLESH "Flesh"
#define PATH_VOID "Void"
//Overthrow time to update heads obj
#define OBJECTIVE_UPDATING_TIME 300
+3
View File
@@ -462,6 +462,9 @@
#define COMSIG_CLEAR_MOOD_EVENT "clear_mood" //Called when you clear a mood event from anywhere in the code.
#define COMSIG_MODIFY_SANITY "modify_sanity" //Called when you want to increase or decrease sanity from anywhere in the code.
///Mask of Madness
#define COMSIG_VOID_MASK_ACT "void_mask_act"
//NTnet
#define COMSIG_COMPONENT_NTNET_RECEIVE "ntnet_receive" //called on an object by its NTNET connection component on receive. (sending_id(number), sending_netname(text), data(datum/netdata))
+3
View File
@@ -59,6 +59,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
//Human sub-species
#define isabductor(A) (is_species(A, /datum/species/abductor))
#define isgolem(A) (is_species(A, /datum/species/golem))
#define isclockworkgolem(A) (is_species(A, /datum/species/golem/clockwork/no_scrap))
#define islizard(A) (is_species(A, /datum/species/lizard))
#define isplasmaman(A) (is_species(A, /datum/species/plasmaman))
#define ispodperson(A) (is_species(A, /datum/species/pod))
@@ -225,6 +226,8 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define isfood(A) (istype(A, /obj/item/reagent_containers/food/snacks))
#define iscontainer(A) (istype(A, /obj/structure/reagent_dispensers))
//Assemblies
#define isassembly(O) (istype(O, /obj/item/assembly))
+1
View File
@@ -42,6 +42,7 @@ require only minor tweaks.
#define ZTRAIT_SNOWSTORM "Weather_Snowstorm"
#define ZTRAIT_ASHSTORM "Weather_Ashstorm"
#define ZTRAIT_ACIDRAIN "Weather_Acidrain"
#define ZTRAIT_VOIDSTORM "Weather_Voidstorm"
// number - bombcap is multiplied by this before being applied to bombs
#define ZTRAIT_BOMBCAP_MULTIPLIER "Bombcap Multiplier"
+8
View File
@@ -205,6 +205,14 @@
#define RULE_OF_THREE(a, b, x) ((a*x)/b)
// )
/// Converts a probability/second chance to probability/delta_time chance
/// For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do `if(prob(100*DT_PROB_RATE(0.1, 5)))`
#define DT_PROB_RATE(prob_per_second, delta_time) (1 - (1 - (prob_per_second)) ** (delta_time))
/// Like DT_PROB_RATE but easier to use, simply put `if(DT_PROB(10, 5))`
#define DT_PROB(prob_per_second_percent, delta_time) (prob(100*DT_PROB_RATE((prob_per_second_percent)/100, (delta_time))))
// )
#define MANHATTAN_DISTANCE(a, b) (abs(a.x - b.x) + abs(a.y - b.y))
#define LOGISTIC_FUNCTION(L,k,x,x_0) (L/(1+(NUM_E**(-k*(x-x_0)))))
+1
View File
@@ -45,6 +45,7 @@
//The gamemode specific ones are just so the gamemodes can query whether a player is old enough
//(in game days played) to play that role
GLOBAL_LIST_INIT(special_roles, list(
ROLE_SYNDICATE,
ROLE_TRAITOR = /datum/game_mode/traitor,
ROLE_BROTHER = /datum/game_mode/traitor/bros,
ROLE_OPERATIVE = /datum/game_mode/nuclear,
+4 -1
View File
@@ -87,12 +87,15 @@
//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
#define MAX_MESSAGE_LEN 4096 //Citadel edit: What's the WORST that could happen?
#define MAX_FLAVOR_LEN 4096
#define MAX_FLAVOR_LEN 4096
#define MAX_TASTE_LEN 40 //lick... vore... ew...
#define MAX_NAME_LEN 42
#define MAX_BROADCAST_LEN 512
#define MAX_CHARTER_LEN 80
// Is something in the IC chat filter? This is config dependent.
#define CHAT_FILTER_CHECK(T) (config.ic_filter_regex && findtext(T, config.ic_filter_regex))
// Audio/Visual Flags. Used to determine what sense are required to notice a message.
#define MSG_VISUAL (1<<0)
#define MSG_AUDIBLE (1<<1)
+8 -1
View File
@@ -105,7 +105,8 @@
#define STATUS_EFFECT_FAKE_VIRUS /datum/status_effect/fake_virus //gives you fluff messages for cough, sneeze, headache, etc but without an actual virus
#define STATUS_EFFECT_NO_COMBAT_MODE /datum/status_effect //Wont allow combat mode and will disable it
#define STATUS_EFFECT_STASIS /datum/status_effect/grouped/stasis //Halts biological functions like bleeding, chemical processing, blood regeneration, walking, etc
#define STATUS_EFFECT_MESMERIZE /datum/status_effect/mesmerize //Just reskinned no_combat_mode
#define STATUS_EFFECT_ELECTROSTAFF /datum/status_effect/electrostaff //slows down victim
@@ -138,3 +139,9 @@
#define STATUS_EFFECT_RAINBOWPROTECTION /datum/status_effect/rainbow_protection //Invulnerable and pacifistic
#define STATUS_EFFECT_SLIMESKIN /datum/status_effect/slimeskin //Increased armor
#define STATUS_EFFECT_DNA_MELT /datum/status_effect/dna_melt //usually does something horrible to you when you hit 100 genetic instability
/////////////
// GROUPED //
/////////////
#define STASIS_ASCENSION_EFFECT "heretic_ascension"
+1
View File
@@ -323,6 +323,7 @@
#define ABDUCTOR_ANTAGONIST "abductor-antagonist"
#define MADE_UNCLONEABLE "made-uncloneable"
#define TIMESTOP_TRAIT "timestop"
#define DOMAIN_TRAIT "domain"
#define NUKEOP_TRAIT "nuke-op"
#define CLOWNOP_TRAIT "clown-op"
#define MEGAFAUNA_TRAIT "megafauna"
+11
View File
@@ -284,6 +284,17 @@ GLOBAL_LIST_INIT(wisdoms, world.file2list("strings/wisdoms.txt"))
GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitters", "chimpers", "declares", "bellows", "buzzes" ,"beeps", "chirps", "clicks", "hisses" ,"poofs" , "puffs", "rattles", "mewls" ,"barks", "blorbles", "squeaks", "squawks", "flutters", "warbles", "caws", "gekkers", "clucks"))
GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc, "xeno tongue" = /obj/item/organ/tongue/alien))
/proc/get_roundstart_languages()
var/list/languages = subtypesof(/datum/language)
var/list/roundstart_languages = list("None") //default option for the list
for(var/some_language in languages)
var/datum/language/language = some_language
if(initial(language.chooseable_roundstart))
roundstart_languages[initial(language.name)] = some_language
return roundstart_languages
GLOBAL_LIST_INIT(roundstart_languages, get_roundstart_languages())
//SPECIES BODYPART LISTS
//locked parts are those that your picked species requires to have
//unlocked parts are those that anyone can choose on customisation regardless
+4 -4
View File
@@ -3,7 +3,7 @@
var/obj/screen/blockchance
var/obj/screen/counterchance
/datum/hud/marauder/New(mob/living/simple_animal/hostile/clockwork/marauder/guardian/owner)
/datum/hud/marauder/New(mob/living/simple_animal/hostile/clockwork/guardian/owner)
..()
var/obj/screen/using
@@ -24,7 +24,7 @@
hosthealth = null
return ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/create_mob_hud()
/mob/living/simple_animal/hostile/clockwork/guardian/create_mob_hud()
if(client && !hud_used)
hud_used = new /datum/hud/marauder(src, ui_style2icon(client.prefs.UI_style))
@@ -37,8 +37,8 @@
desc = "Emerge or Return."
/obj/screen/marauder/emerge/Click()
if(istype(usr, /mob/living/simple_animal/hostile/clockwork/marauder/guardian))
var/mob/living/simple_animal/hostile/clockwork/marauder/guardian/G = usr
if(istype(usr, /mob/living/simple_animal/hostile/clockwork/guardian))
var/mob/living/simple_animal/hostile/clockwork/guardian/G = usr
if(G.is_in_host())
G.try_emerge()
else
@@ -22,7 +22,7 @@
var/motd
// var/policy
// var/static/regex/ic_filter_regex
var/static/regex/ic_filter_regex
/datum/controller/configuration/proc/admin_reload()
if(IsAdminAdvancedProcCall())
@@ -53,7 +53,7 @@
loadmaplist(CONFIG_MAPS_FILE)
LoadMOTD()
// LoadPolicy()
// LoadChatFilter()
LoadChatFilter()
if (Master)
Master.OnConfigLoad()
@@ -486,7 +486,7 @@ Example config:
continue
runnable_modes[M] = probabilities[M.config_tag]
return runnable_modes
/*
/datum/controller/configuration/proc/LoadChatFilter()
var/list/in_character_filter = list()
if(!fexists("[directory]/in_character_filter.txt"))
@@ -499,7 +499,7 @@ Example config:
continue
in_character_filter += REGEX_QUOTE(line)
ic_filter_regex = in_character_filter.len ? regex("\\b([jointext(in_character_filter, "|")])\\b", "i") : null
*/
//Message admins when you can.
/datum/controller/configuration/proc/DelayedMessageAdmins(text)
addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, text), 0)
+6
View File
@@ -33,6 +33,8 @@
RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/on_revive)
RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud)
RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/stop_processing)
RegisterSignal(parent, COMSIG_VOID_MASK_ACT, .proc/direct_sanity_drain)
if(owner.hud_used)
modify_hud()
@@ -377,6 +379,10 @@
remove_temp_moods()
setSanity(initial(sanity))
///Causes direct drain of someone's sanity, call it with a numerical value corresponding how badly you want to hurt their sanity
/datum/component/mood/proc/direct_sanity_drain(datum/source, amount)
setSanity(sanity + amount)
#undef ECSTATIC_SANITY_PEN
#undef SLIGHT_INSANITY_PEN
#undef MINOR_INSANITY_PEN
@@ -97,3 +97,11 @@
. = ..()
can_hold = typecacheof(list(/obj/item/reagent_containers/glass/bottle,
/obj/item/ammo_box/a762))
/datum/component/storage/concrete/pockets/void_cloak
quickdraw = TRUE
max_items = 3
/datum/component/storage/concrete/pockets/void_cloak/Initialize()
. = ..()
var/static/list/exception_cache = typecacheof(list(/obj/item/living_heart,/obj/item/forbidden_book))
+9
View File
@@ -45,3 +45,12 @@
start_length = 130
end_sound = 'sound/weather/ashstorm/inside/weak_end.ogg'
volume = 30
/datum/looping_sound/void_loop
mid_sounds = list('sound/ambience/VoidsEmbrace.ogg'=1)
mid_length = 1669 // exact length of the music in ticks
volume = 100
extra_range = 30
/datum/looping_sound/void_loop/start(atom/add_thing)
. = ..()
+3
View File
@@ -34,3 +34,6 @@
/datum/skill_modifier/job/level/wiring/basic
level_mod = JOB_SKILL_BASIC
/datum/skill_modifier/job/level/dwarfy/blacksmithing
target_skills = /datum/skill/level/dwarfy/blacksmithing
+95
View File
@@ -768,3 +768,98 @@
M.dna.species.punchdamagelow -= damageboost
M.dna.species.punchwoundbonus -= woundboost
to_chat(M, "<span class='notice'>You calm yourself, and your unnatural strength dissipates.</span>")
/datum/status_effect/crucible_soul
id = "Blessing of Crucible Soul"
status_type = STATUS_EFFECT_REFRESH
duration = 15 SECONDS
examine_text = "<span class='notice'>They don't seem to be all here.</span>"
alert_type = /obj/screen/alert/status_effect/crucible_soul
var/turf/location
/datum/status_effect/crucible_soul/on_apply()
. = ..()
to_chat(owner,"<span class='notice'>You phase through reality, nothing is out of bounds!</span>")
owner.alpha = 180
owner.pass_flags |= PASSCLOSEDTURF | PASSGLASS | PASSGRILLE | PASSTABLE | PASSMOB
location = get_turf(owner)
/datum/status_effect/crucible_soul/on_remove()
to_chat(owner,"<span class='notice'>You regain your physicality, returning you to your original location...</span>")
owner.alpha = initial(owner.alpha)
owner.pass_flags &= ~(PASSCLOSEDTURF | PASSGLASS | PASSGRILLE | PASSTABLE | PASSMOB)
owner.forceMove(location)
location = null
return ..()
/datum/status_effect/duskndawn
id = "Blessing of Dusk and Dawn"
status_type = STATUS_EFFECT_REFRESH
duration = 60 SECONDS
alert_type =/obj/screen/alert/status_effect/duskndawn
/datum/status_effect/duskndawn/on_apply()
. = ..()
ADD_TRAIT(owner,TRAIT_XRAY_VISION,type)
owner.update_sight()
/datum/status_effect/duskndawn/on_remove()
REMOVE_TRAIT(owner,TRAIT_XRAY_VISION,type)
owner.update_sight()
return ..()
/datum/status_effect/marshal
id = "Blessing of Wounded Soldier"
status_type = STATUS_EFFECT_REFRESH
duration = 60 SECONDS
tick_interval = 1 SECONDS
alert_type = /obj/screen/alert/status_effect/marshal
/datum/status_effect/marshal/on_apply()
. = ..()
ADD_TRAIT(owner,TRAIT_IGNOREDAMAGESLOWDOWN,type)
/datum/status_effect/marshal/on_remove()
. = ..()
REMOVE_TRAIT(owner,TRAIT_IGNOREDAMAGESLOWDOWN,type)
/datum/status_effect/marshal/tick()
. = ..()
if(!iscarbon(owner))
return
var/mob/living/carbon/carbie = owner
for(var/BP in carbie.bodyparts)
var/obj/item/bodypart/part = BP
for(var/W in part.wounds)
var/datum/wound/wound = W
var/heal_amt = 0
switch(wound.severity)
if(WOUND_SEVERITY_MODERATE)
heal_amt = 1
if(WOUND_SEVERITY_SEVERE)
heal_amt = 3
if(WOUND_SEVERITY_CRITICAL)
heal_amt = 6
if(wound.wound_type == WOUND_BURN)
carbie.adjustFireLoss(-heal_amt)
else
carbie.adjustBruteLoss(-heal_amt)
carbie.blood_volume += carbie.blood_volume >= BLOOD_VOLUME_NORMAL ? 0 : heal_amt*3
/obj/screen/alert/status_effect/crucible_soul
name = "Blessing of Crucible Soul"
desc = "You phased through the reality, you are halfway to your final destination..."
icon_state = "crucible"
/obj/screen/alert/status_effect/duskndawn
name = "Blessing of Dusk and Dawn"
desc = "Many things hide beyond the horizon, with Owl's help i managed to slip past sun's guard and moon's watch."
icon_state = "duskndawn"
/obj/screen/alert/status_effect/marshal
name = "Blessing of Wounded Soldier"
desc = "Some people seek power through redemption, one thing many people don't know is that battle is the ultimate redemption and wounds let you bask in eternal glory."
icon_state = "wounded_soldier"
+28 -13
View File
@@ -127,17 +127,6 @@
desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are."
icon_state = "asleep"
/datum/status_effect
id = "no_combat_mode"
alert_type = null
status_type = STATUS_EFFECT_REPLACE
blocks_combatmode = TRUE
/datum/status_effect/on_creation(mob/living/new_owner, set_duration)
if(isnum(set_duration))
duration = set_duration
. = ..()
/datum/status_effect/robotic_emp
id = "emp_no_combat_mode"
@@ -506,6 +495,32 @@
I.take_damage(100)
return ..()
/datum/status_effect/eldritch/void
id = "void_mark"
effect_sprite = "emark4"
/datum/status_effect/eldritch/void/on_effect()
var/turf/open/turfie = get_turf(owner)
turfie.TakeTemperature(-40)
owner.adjust_bodytemperature(-60)
return ..()
/datum/status_effect/domain
id = "domain"
alert_type = null
var/movespeed_mod = /datum/movespeed_modifier/status_effect/domain
/datum/status_effect/domain/on_creation(mob/living/new_owner, set_duration)
if(isliving(owner))
var/mob/living/carbon/C = owner
C.add_movespeed_modifier(movespeed_mod)
/datum/status_effect/electrode/on_remove()
if(isliving(owner))
var/mob/living/carbon/C = owner
C.remove_movespeed_modifier(movespeed_mod)
. = ..()
/datum/status_effect/corrosion_curse
id = "corrosion_curse"
status_type = STATUS_EFFECT_REPLACE
@@ -514,7 +529,7 @@
/datum/status_effect/corrosion_curse/on_creation(mob/living/new_owner, ...)
. = ..()
to_chat(owner, "<span class='danger'>Your feel your body starting to break apart...</span>")
to_chat(owner, "<span class='danger'>You feel your body starting to break apart...</span>")
/datum/status_effect/corrosion_curse/tick()
. = ..()
@@ -585,7 +600,7 @@
/datum/status_effect/amok/on_apply(mob/living/afflicted)
. = ..()
to_chat(owner, "<span class='boldwarning'>Your feel filled with a rage that is not your own!</span>")
to_chat(owner, "<span class='boldwarning'>You feel filled with a rage that is not your own!</span>")
/datum/status_effect/amok/tick()
. = ..()
-16
View File
@@ -219,19 +219,3 @@
/datum/quirk/night_vision/on_spawn()
var/mob/living/carbon/human/H = quirk_holder
H.update_sight()
/datum/quirk/multilingual
name = "Multi-Lingual"
desc = "You spent a portion of your life learning to understand an additional language. You may or may not be able to speak it based on your anatomy."
value = 1
mob_trait = TRAIT_MULTILINGUAL
gain_text = "You've learned an extra language!"
lose_text = "You've forgotten your extra language."
/datum/quirk/multilingual/post_add()
var/mob/living/carbon/human/H = quirk_holder
H.grant_language(H.client.prefs.language, TRUE, TRUE, LANGUAGE_MULTILINGUAL)
/datum/quirk/multilingual/remove()
var/mob/living/carbon/human/H = quirk_holder
H.remove_language(H.client.prefs.language, TRUE, TRUE, LANGUAGE_MULTILINGUAL)
+8 -5
View File
@@ -58,13 +58,13 @@
/// The list of z-levels that this weather is actively affecting
var/impacted_z_levels
/// Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that.
var/overlay_layer = AREA_LAYER
/// Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that.
var/overlay_layer = AREA_LAYER
/// Plane for the overlay
var/overlay_plane = BLACKNESS_PLANE
/// If the weather has no purpose but aesthetics.
/// If the weather has no purpose but aesthetics.
var/aesthetic = FALSE
/// Used by mobs to prevent them from being affected by the weather
/// Used by mobs to prevent them from being affected by the weather
var/immunity_type = "storm"
/// The stage of the weather, from 1-4
@@ -79,6 +79,8 @@
var/barometer_predictable = FALSE
/// For barometers to know when the next storm will hit
var/next_hit_time = 0
/// This causes the weather to only end if forced to
var/perpetual = FALSE
/datum/weather/New(z_levels)
..()
@@ -140,7 +142,8 @@
to_chat(M, weather_message)
if(weather_sound)
SEND_SOUND(M, sound(weather_sound))
addtimer(CALLBACK(src, .proc/wind_down), weather_duration)
if(!perpetual)
addtimer(CALLBACK(src, .proc/wind_down), weather_duration)
/**
* Weather enters the winding down phase, stops effects
@@ -0,0 +1,31 @@
/datum/weather/void_storm
name = "void storm"
desc = "A rare and highly anomalous event often accompanied by unknown entities shredding spacetime continouum. We'd advise you to start running."
telegraph_duration = 2 SECONDS
telegraph_overlay = "void"
weather_message = "<span class='danger'><i>You feel air around you getting colder... and void's sweet embrace...</i></span>"
weather_overlay = "void_storm"
weather_duration_lower = 60 SECONDS
weather_duration_upper = 120 SECONDS
end_duration = 10 SECONDS
area_type = /area
protect_indoors = FALSE
target_trait = ZTRAIT_VOIDSTORM
immunity_type = "void"
barometer_predictable = FALSE
perpetual = TRUE
/datum/weather/void_storm/weather_act(mob/living/L)
if(IS_HERETIC(L) || IS_HERETIC_MONSTER(L))
return
L.adjustOxyLoss(rand(1,3))
L.adjustFireLoss(rand(1,3))
L.adjust_blurriness(rand(0,1))
L.adjust_bodytemperature(-rand(5,15))
+1 -1
View File
@@ -420,7 +420,7 @@
for(var/mob/dead/new_player/player in players)
if(player.client && player.ready == PLAYER_READY_TO_PLAY)
if(role in player.client.prefs.be_special)
if((role in player.client.prefs.be_special) && (ROLE_SYNDICATE in player.client.prefs.be_special))
if(!jobban_isbanned(player, ROLE_SYNDICATE) && !QDELETED(player) && !jobban_isbanned(player, role) && !QDELETED(player)) //Nodrak/Carn: Antag Job-bans
if(age_check(player.client)) //Must be older than the minimum age
candidates += player.mind // Get a list of all the people who want to be the antagonist for this round
+3 -3
View File
@@ -79,7 +79,7 @@ GLOBAL_LIST_EMPTY(network_holopads)
var/secure = FALSE
/// If we are currently calling another holopad
var/calling = FALSE
/*
/obj/machinery/holopad/secure
name = "secure holopad"
desc = "It's a floor-mounted device for projecting holographic images. This one will refuse to auto-connect incoming calls."
@@ -90,7 +90,7 @@ GLOBAL_LIST_EMPTY(network_holopads)
var/obj/item/circuitboard/machine/holopad/board = circuit
board.secure = TRUE
board.build_path = /obj/machinery/holopad/secure
*/
/obj/machinery/holopad/tutorial
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
flags_1 = NODECONSTRUCT_1
@@ -372,7 +372,7 @@ GLOBAL_LIST_EMPTY(network_holopads)
if(force_answer_call && world.time > (HC.call_start_time + (HOLOPAD_MAX_DIAL_TIME / 2)))
HC.Answer(src)
break
if(!secure) //HC.head_call &&
if(HC.head_call && !secure)
HC.Answer(src)
break
if(outgoing_call)
@@ -243,6 +243,17 @@
icon_state = "shieldsparkles"
duration = 5
/obj/effect/temp_visual/voidpush
name = "eldritch energy"
icon_state = "emark4"
duration = 5
/obj/effect/temp_visual/voidswap
name = "altered space"
icon = 'icons/mob/mob.dmi'
icon_state = "voidalter"
duration = 5
/obj/effect/temp_visual/telekinesis
name = "telekinetic force"
icon_state = "empdisable"
+3
View File
@@ -16,6 +16,9 @@
if(isopenturf(target))
deploy_bodybag(user, target)
/obj/item/bodybag/canReachInto(atom/user, atom/target, list/next, view_only, obj/item/tool)
return (user in src)
/obj/item/bodybag/proc/deploy_bodybag(mob/user, atom/location)
var/obj/structure/closet/body_bag/R = new unfoldedbag_path(location)
R.open(user)
@@ -472,7 +472,7 @@
build_path = /obj/machinery/holopad
secure = FALSE
else
build_path = /obj/machinery/holopad //secure
build_path = /obj/machinery/holopad/secure //secure
secure = TRUE
to_chat(user, "<span class='notice'>You [secure? "en" : "dis"]able the security on the [src]</span>")
. = ..()
+11
View File
@@ -332,6 +332,7 @@
to_chat(occupant, "You pop out of the [src], slightly dazed!")
occupant.Stun(5 SECONDS)
/obj/item/pet_carrier/bluespace/return_air()
if(!occupant_gas_supply)
occupant_gas_supply = new
@@ -353,4 +354,14 @@
if(..())
name = "[initial(name)] ([target])"
/obj/item/pet_carrier/bluespace/single_use
desc = "A jar, that seems to be bigger on the inside, somehow allowing lifeforms to fit through its narrow entrance. This one looks exceptionally fragile."
/obj/item/pet_carrier/bluespace/single_use/remove_occupant(mob/living/occupant)
. = ..()
if(!QDELETED(src))
playsound(src, "shatter", 70, 1)
qdel(src)
#undef pet_carrier_full
+1 -1
View File
@@ -469,7 +469,7 @@
//hijacking the minature first aids for hypospray boxes. <3
/obj/item/storage/hypospraykit
name = "hypospray kit"
desc = "It's a kit containing a hypospray and specific treatment chemical-filled vials."
desc = "It's a kit designed for containing a hypospray and specific treatment chemical-filled vials."
icon_state = "firstaid-mini"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
@@ -626,4 +626,4 @@
T1.visible_message("<span class='warning'>[user] dives into [src]!</span>")
/obj/structure/closet/canReachInto(atom/user, atom/target, list/next, view_only, obj/item/tool)
return ..() && opened
return (user in src)
@@ -676,7 +676,6 @@
ADD_TRAIT(new_spawn, TRAIT_SIXTHSENSE, GHOSTROLE_TRAIT)
ADD_TRAIT(new_spawn, TRAIT_EXEMPT_HEALTH_EVENTS, GHOSTROLE_TRAIT)
ADD_TRAIT(new_spawn, TRAIT_NO_MIDROUND_ANTAG, GHOSTROLE_TRAIT) //The mob can't be made into a random antag, they are still eligible for ghost roles popups.
ADD_TRAIT(new_spawn, TRAIT_PACIFISM, GHOSTROLE_TRAIT)
to_chat(new_spawn,"<span class='boldwarning'>Ghosting is free!</span>")
var/datum/action/toggle_dead_chat_mob/D = new(new_spawn)
D.Grant(new_spawn)
@@ -125,6 +125,8 @@
/datum/antagonist/changeling/proc/remove_changeling_powers()
if(ishuman(owner.current) || ismonkey(owner.current))
reset_properties()
QDEL_NULL(cellular_emporium)
QDEL_NULL(emporium_action)
for(var/obj/effect/proc_holder/changeling/p in purchasedpowers)
if(p.always_keep)
continue
@@ -139,6 +141,7 @@
/datum/antagonist/changeling/proc/reset_powers()
if(purchasedpowers)
remove_changeling_powers()
create_actions()
//Repurchase free powers.
for(var/path in all_powers)
var/obj/effect/proc_holder/changeling/S = new path()
@@ -225,7 +228,8 @@
/datum/antagonist/changeling/proc/regenerate()
var/mob/living/carbon/the_ling = owner.current
if(istype(the_ling))
emporium_action.Grant(the_ling)
if(emporium_action)
emporium_action.Grant(the_ling)
if(the_ling.stat == DEAD)
chem_charges = min(max(0, chem_charges + chem_recharge_rate - chem_recharge_slowdown), (chem_storage*0.5))
geneticdamage = max(LING_DEAD_GENETICDAMAGE_HEAL_CAP,geneticdamage-1)
@@ -11,6 +11,14 @@
//Revive from revival stasis
/obj/effect/proc_holder/changeling/revive/sting_action(mob/living/carbon/user)
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
if(!changeling)
return
if(changeling.hostile_absorbed)
to_chat(user, "<span class='notice'>We cannot muster up the strength to revive ourselves!</span>")
changeling.purchasedpowers -= src
src.action.Remove(user)
return
user.cure_fakedeath("changeling")
user.revive(full_heal = 1)
var/list/missing = user.get_missing_limbs()
@@ -27,7 +35,6 @@
user.regenerate_limbs(0, list(BODY_ZONE_HEAD))
user.regenerate_organs()
to_chat(user, "<span class='notice'>We have revived ourselves.</span>")
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
changeling.purchasedpowers -= src
src.action.Remove(user)
return TRUE
@@ -144,7 +144,7 @@
to_chat(L, "<span class='heavy_brass'>\"You belong to me now.\"</span>")
if(!GLOB.application_scripture_unlocked)
GLOB.application_scripture_unlocked = TRUE
hierophant_message("<span class='large_brass bold'>With the conversion of a new servant the Ark's power grows. Application scriptures are now available.</span>")
hierophant_message("<span class='large_brass bold'>With the conversion of a new servant the Hierophant Network's power grows. Application scriptures are now available.</span>")
if(add_servant_of_ratvar(L))
L.log_message("conversion was done with a [sigil_name]", LOG_ATTACK, color="BE8700")
if(iscarbon(L))
@@ -196,4 +196,68 @@
CL.visible_message("<span class='warning'>[CL] materialises out of thin air!")
new /obj/effect/temp_visual/ratvar/sigil/transmission(T,2)
//summons a soul vessel, which is the clockwork cult version of a soul shard. It acts like a posibrain and, as long as the target has a brain, a soul shard.
/datum/clockwork_rite/soul_vessel
name = "Rite of the Vessel" //The name of the rite
desc = "This rite is used to summon a soul vessel, a special posibrain that makes whoever has their brain put into it loyal to the Justiciar.,\
When put into a cyborg shell, the created cyborg will automatically be a servant of Ratvar."
required_ingredients = list(/obj/item/stack/cable_coil, /obj/item/stock_parts/cell/, /obj/item/organ/cyberimp)
power_cost = 2500 //These things are pretty strong, I won't lie
requires_full_power = TRUE
cast_time = 50
limit = INFINITE
rite_cast_sound = 'sound/magic/summon_guns.ogg'
/datum/clockwork_rite/soul_vessel/cast(var/mob/living/invoker, var/turf/T, var/mob/living/carbon/human/target)
. = ..()
if(!.)
return FALSE
var/obj/item/mmi/posibrain/soul_vessel/SV = new /obj/item/mmi/posibrain/soul_vessel(T)
SV.visible_message("<span class='warning'>[SV] materalizes out of thin air!</span>")
new /obj/effect/temp_visual/ratvar/sigil/transmission(T,2)
/datum/clockwork_rite/cyborg_transform
name = "Rite of the Divine Form"
desc = "This rite is used to ascend into a cyborg, gaining unique scripture and a loadout that depends on which module is chosen. Consult the wiki for details on each cyborg module's loadout. Mutually exclusive to Enhanced Form."
required_ingredients = list(/obj/item/mmi/posibrain, /obj/item/stack/cable_coil, /obj/item/stock_parts/cell/super, /obj/item/bodypart/l_arm/robot, /obj/item/bodypart/r_arm/robot, /obj/item/bodypart/chest/robot, /obj/item/bodypart/head/robot, /obj/item/bodypart/r_leg/robot, /obj/item/bodypart/l_leg/robot)
power_cost = 20000
requires_human = TRUE
requires_full_power = FALSE
cast_time = 100
limit = INFINITE
rite_cast_sound = 'sound/magic/disable_tech.ogg'
/datum/clockwork_rite/cyborg_transform/cast(var/mob/living/invoker, var/turf/T, var/mob/living/carbon/human/target)
. = ..()
if(!.)
return FALSE
if(isclockworkgolem(target))
return FALSE
target.visible_message("<span class='warning'>The robotic parts magnetize to [target], the new frame's eyes glowing in a brilliant yellow!</span>")
var/mob/living/silicon/robot/R = target.Robotize()
R.cell = new /obj/item/stock_parts/cell/super(R)//takes one to use the rite to begin with
new /obj/effect/temp_visual/ratvar/sigil/transmission(T,2)
/datum/clockwork_rite/golem_transform
name = "Rite of the Enhanced Form"
desc = "This rite is used to shed one's flesh to become a clockwork automaton, becoming immune to many environmental hazards as well as being more resilient to incoming damage. Mutually exclusive to Divine Form."
required_ingredients = list(/obj/item/mmi/posibrain, /obj/item/stock_parts/cell/super, /obj/item/bodypart/l_arm/robot, /obj/item/bodypart/r_arm/robot, /obj/item/bodypart/chest/robot, /obj/item/bodypart/head/robot, /obj/item/bodypart/r_leg/robot, /obj/item/bodypart/l_leg/robot)
power_cost = 20000
requires_human = TRUE
requires_full_power = FALSE
cast_time = 100
limit = INFINITE
rite_cast_sound = 'sound/magic/disable_tech.ogg'
/datum/clockwork_rite/golem_transform/cast(var/mob/living/invoker, var/turf/T, var/mob/living/carbon/human/target)
. = ..()
if(!.)
return FALSE
target.visible_message("<span class='warning'>The robotic parts magnetize to [target], the humanoid shape's eye glowing with an inner flame!</span>")
to_chat(target, "<span class='bold alloy'>The rite's power warps your body into a clockwork form! You are now immune to many hazards, and your body is more robust against damage!</span>")
target.set_species(/datum/species/golem/clockwork/no_scrap)
new /obj/effect/temp_visual/ratvar/sigil/transmission(T,2)
#undef INFINITE
@@ -350,3 +350,22 @@
// Winter coat
/obj/item/clothing/suit/hooded/wintercoat/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent) //four sheets of metal
return list("operation_time" = 30, "new_obj_type" = /obj/item/clothing/suit/hooded/wintercoat/ratvar, "power_cost" = POWER_METAL * 4, "spawn_dir" = SOUTH)
//tools
/obj/item/crowbar/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent) //1 metal rod each
return list("operation_time" = 2, "new_obj_type" = /obj/item/crowbar/brass, "power_cost" = POWER_ROD * 1, "spawn_dir" = SOUTH)
/obj/item/screwdriver/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent)
return list("operation_time" = 2, "new_obj_type" = /obj/item/screwdriver/brass, "power_cost" = POWER_ROD * 1, "spawn_dir" = SOUTH)
/obj/item/weldingtool/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent)
return list("operation_time" = 2, "new_obj_type" = /obj/item/weldingtool/experimental/brass, "power_cost" = POWER_ROD * 1, "spawn_dir" = SOUTH)
/obj/item/wirecutters/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent)
return list("operation_time" = 2, "new_obj_type" = /obj/item/wirecutters/brass, "power_cost" = POWER_ROD * 1, "spawn_dir" = SOUTH)
/obj/item/wrench/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent)
return list("operation_time" = 2, "new_obj_type" = /obj/item/wrench/brass, "power_cost" = POWER_ROD * 1, "spawn_dir" = SOUTH)
/obj/item/multitool/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent)
return list("operation_time" = 2, "new_obj_type" = /obj/item/multitool/advanced/brass, "power_cost" = POWER_ROD * 1, "spawn_dir" = SOUTH)
@@ -5,7 +5,7 @@
name = "clock-themed arm-mounted implant"
var/clockwork_desc = "According to Ratvar, this really shouldn't exist. Tell Him about this immediately."
syndicate_implant = TRUE
icon_state = "clock_arm_implant"
icon_state = "toolkit_implant"
/obj/item/organ/cyberimp/arm/clockwork/ui_action_click()
if(is_servant_of_ratvar(owner) || (obj_flags & EMAGGED)) //If you somehow manage to steal a clockie's implant AND have an emag AND manage to get it implanted for yourself, good on ya!
@@ -251,7 +251,9 @@
var/mob/camera/eminence/E = owner
E.eminence_help()
/*
//Returns to the Ark - Commented out and replaced with obelisk_jump
/datum/action/innate/eminence/ark_jump
name = "Return to Ark"
@@ -265,7 +267,7 @@
owner.playsound_local(owner, 'sound/magic/magic_missile.ogg', 50, TRUE)
flash_color(owner, flash_color = "#AF0AAF", flash_time = 25)
else
to_chat(owner, "<span class='warning'>There is no Ark!</span>")
to_chat(owner, "<span class='warning '>There is no Ark!</span>")
*/
//Warps to a chosen Obelisk
@@ -0,0 +1,432 @@
//Clockwork guardian: Slow but with high damage, resides inside of a servant. Created via the Memory Allocation scripture.
/mob/living/simple_animal/hostile/clockwork/guardian
name = "clockwork guardian"
desc = "A slow, armored clockwork machine, blazing with magenta flames. It's armed with a gladius and shield, and stands ready by its master."
icon_state = "clockwork_guardian"
health = 300
maxHealth = 300
speed = 1
obj_damage = 40
melee_damage_lower = 20//ranged attacks are the way to go for fighting these
melee_damage_upper = 20
attack_verb_continuous = "slashes"
attack_verb_simple = "slash"
attack_sound = 'sound/weapons/bladeslice.ogg'
weather_immunities = list("lava")
movement_type = FLYING
AIStatus = AI_OFF //this has to be manually set so that the guardian doesn't start bashing the host, how annoying -_-
loot = list(/obj/structure/destructible/clockwork/taunting_trail)
var/true_name = "Meme Master 69" //Required to call forth the guardian
var/global/list/possible_true_names = list("Servant", "Warden", "Serf", "Page", "Usher", "Knave", "Vassal", "Escort")
var/mob/living/host //The mob that the guardian is living inside of
var/recovering = FALSE //If the guardian is recovering from recalling
var/blockchance = 17 //chance to block attacks entirely
var/counterchance = 30 //chance to counterattack after blocking
var/static/list/damage_heal_order = list(OXY, BURN, BRUTE, TOX) //we heal our host's damage in this order
light_color = "#AF0AAF"
light_range = 2
light_power = 1.1
playstyle_string = "<span class='sevtug'>You are a clockwork guardian</span><b>, a living extension of Sevtug's will. As a guardian, you are somewhat slow, but may block attacks, \
and have a chance to also counter blocked melee attacks for extra damage, in addition to being immune to extreme temperatures and pressures. \
Your primary goal is to serve the creature that you are now a part of, as well as The Clockwork Justiciar, Ratvar. You can use <span class='sevtug_small'><i>The Hierophant Network</i></span> to communicate silently with your master and their allies, \
but can only exit if your master calls your true name or if they are exceptionally damaged. \
\n\n\
Stay near your host to protect and heal them; being too far from your host will rapidly cause you massive damage. Recall to your host if you are too weak and believe you cannot continue \
fighting safely. As a final note, you should probably avoid harming any fellow servants of Ratvar.</span>"
/mob/living/simple_animal/hostile/clockwork/guardian/Initialize()
. = ..()
true_name = pick(possible_true_names)
/mob/living/simple_animal/hostile/clockwork/guardian/BiologicalLife(seconds, times_fired)
..()
if(is_in_host())
if(!is_servant_of_ratvar(host))
emerge_from_host(FALSE, TRUE)
unbind_from_host()
return
if(!GLOB.ratvar_awakens && host.stat == DEAD)
death()
return
if(GLOB.ratvar_awakens)
adjustHealth(-50)
else
adjustHealth(-10)
if(!recovering)
heal_host() //also heal our host if inside of them and we aren't recovering
else if(health == maxHealth)
to_chat(src, "<span class='userdanger'>Your strength has returned. You can once again come forward!</span>")
to_chat(host, "<span class='userdanger'>Your guardian is now strong enough to come forward again!</span>")
recovering = FALSE
else
if(GLOB.ratvar_awakens) //If Ratvar is alive, guardians don't need a host and are downright impossible to kill
adjustHealth(-5)
heal_host()
else if(host)
if(!is_servant_of_ratvar(host))
unbind_from_host()
return
if(host.stat == DEAD)
adjustHealth(50)
to_chat(src, "<span class='userdanger'>Your host is dead!</span>")
return
if(z && host.z && z == host.z)
switch(get_dist(get_turf(src), get_turf(host)))
if(2)
adjustHealth(-1)
if(3)
//EQUILIBRIUM
if(4)
adjustHealth(1)
if(5)
adjustHealth(3)
if(6)
adjustHealth(6)
if(7)
adjustHealth(9)
if(8 to INFINITY)
adjustHealth(15)
to_chat(src, "<span class='userdanger'>You're too far from your host and rapidly taking damage!</span>")
else //right next to or on top of host
adjustHealth(-2)
heal_host() //gradually heal host if nearby and host is very weak
else //well then, you're not even in the same zlevel
adjustHealth(15)
to_chat(src, "<span class='userdanger'>You're too far from your host and rapidly taking damage!</span>")
/mob/living/simple_animal/hostile/clockwork/guardian/death(gibbed)
emerge_from_host(FALSE, TRUE)
unbind_from_host()
visible_message("<span class='warning'>[src]'s equipment fades into a purple mist as the flames within sputter and dissipate.</span>", \
"<span class='userdanger'>Your equipment fades away. You feel a moment of confusion before your fragile form is annihilated.</span>")
. = ..()
/mob/living/simple_animal/hostile/clockwork/guardian/Stat()
..()
if(statpanel("Status"))
stat(null, "Current True Name: [true_name]")
stat(null, "Host: [host ? host : "NONE"]")
if(host)
var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5)
if(iscarbon(host))
resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)
stat(null, "Host Health: [resulthealth]%")
if(GLOB.ratvar_awakens)
stat(null, "You are [recovering ? "un" : ""]able to deploy!")
else
if(resulthealth > GUARDIAN_EMERGE_THRESHOLD)
stat(null, "You are [recovering ? "unable to deploy" : "able to deploy on hearing your True Name"]!")
else
stat(null, "You are [recovering ? "unable to deploy" : "able to deploy to protect your host"]!")
stat(null, "You do [melee_damage_upper] damage on melee attacks.")
/mob/living/simple_animal/hostile/clockwork/guardian/Process_Spacemove(movement_dir = 0)
return 1
/mob/living/simple_animal/hostile/clockwork/guardian/proc/bind_to_host(mob/living/new_host)
if(!new_host)
return FALSE
host = new_host
var/datum/action/innate/summon_guardian/SG = new()
SG.linked_guardian = src
SG.Grant(host)
var/datum/action/innate/linked_minds/LM = new()
LM.linked_guardian = src
LM.Grant(host)
return TRUE
/mob/living/simple_animal/hostile/clockwork/guardian/proc/unbind_from_host()
if(host)
for(var/datum/action/innate/summon_guardian/SG in host.actions)
qdel(SG)
for(var/datum/action/innate/linked_minds/LM in host.actions)
qdel(LM)
host = null
return TRUE
return FALSE
//DAMAGE and FATIGUE
/mob/living/simple_animal/hostile/clockwork/guardian/proc/heal_host()
if(!host)
return
var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5)
if(iscarbon(host))
resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)
if(GLOB.ratvar_awakens || resulthealth <= GUARDIAN_EMERGE_THRESHOLD)
new /obj/effect/temp_visual/heal(host.loc, "#AF0AAF")
host.heal_ordered_damage(4, damage_heal_order)
/mob/living/simple_animal/hostile/clockwork/guardian/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
if(amount > 0)
for(var/mob/living/L in view(2, src))
if(L.is_holding_item_of_type(/obj/item/nullrod))
to_chat(src, "<span class='userdanger'>The presence of a brandished holy artifact weakens your armor!</span>")
amount *= 4 //if a wielded null rod is nearby, it takes four times the health damage
break
. = ..()
if(src && updating_health)
update_health_hud()
update_stats()
/mob/living/simple_animal/hostile/clockwork/guardian/update_health_hud()
if(hud_used && hud_used.healths)
if(istype(hud_used, /datum/hud))
var/datum/hud/marauder/G = hud_used
var/resulthealth
if(host)
if(iscarbon(host))
resulthealth = "[round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)]%"
else
resulthealth = "[round((host.health / host.maxHealth) * 100, 0.5)]%"
else
resulthealth = "NONE"
G.hosthealth.maptext = "<div align='center' valign='middle' style='position:relative; top:0px; left:6px'><font color='#AF0AAF'>HOST<br>[resulthealth]</font></div>"
hud_used.healths.maptext = "<div align='center' valign='middle' style='position:relative; top:0px; left:6px'><font color='#AF0AAF'>[round((health / maxHealth) * 100, 0.5)]%</font>"
/mob/living/simple_animal/hostile/clockwork/guardian/proc/update_stats()
if(GLOB.ratvar_awakens)
speed = 0
melee_damage_lower = 20
melee_damage_upper = 20
attack_verb_continuous = "devastates"
else
var/healthpercent = (health/maxHealth) * 100
switch(healthpercent)
if(100 to 70) //Bonuses to speed and damage at high health
speed = 0
melee_damage_lower = 16
melee_damage_upper = 16
attack_verb_continuous = "viciously slashes"
if(70 to 40)
speed = initial(speed)
melee_damage_lower = initial(melee_damage_lower)
melee_damage_upper = initial(melee_damage_upper)
attack_verb_continuous = initial(attack_verb_continuous)
if(40 to 30) //Damage decrease, but not speed
speed = initial(speed)
melee_damage_lower = 10
melee_damage_upper = 10
attack_verb_continuous = "lightly slashes"
if(30 to 20) //Speed decrease
speed = 2
melee_damage_lower = 8
melee_damage_upper = 8
attack_verb_continuous = "lightly slashes"
if(20 to 10) //Massive speed decrease and weak melee attacks
speed = 3
melee_damage_lower = 6
melee_damage_upper = 6
attack_verb_continuous = "weakly slashes"
if(10 to 0) //We are super weak and going to die
speed = 4
melee_damage_lower = 4
melee_damage_upper = 4
attack_verb_continuous = "taps"
//ATTACKING, BLOCKING, and COUNTERING
/mob/living/simple_animal/hostile/clockwork/guardian/AttackingTarget()
if(is_in_host())
return FALSE
return ..()
/mob/living/simple_animal/hostile/clockwork/guardian/bullet_act(obj/item/projectile/Proj)
if(blockOrCounter(null, Proj))
return
return ..()
/mob/living/simple_animal/hostile/clockwork/guardian/hitby(atom/movable/AM, skipcatch, hitpush, blocked, atom/movable/AM, datum/thrownthing/throwingdatum)
if(blockOrCounter(null, AM))
return
return ..()
/mob/living/simple_animal/hostile/clockwork/guardian/attack_animal(mob/living/simple_animal/M)
if(istype(M, /mob/living/simple_animal/hostile/clockwork/guardian) || !blockOrCounter(M, M)) //we don't want infinite blockcounter loops if fighting another guardian
return ..()
/mob/living/simple_animal/hostile/clockwork/guardian/attack_paw(mob/living/carbon/monkey/M)
if(!blockOrCounter(M, M))
return ..()
/mob/living/simple_animal/hostile/clockwork/guardian/attack_alien(mob/living/carbon/alien/humanoid/M)
if(!blockOrCounter(M, M))
return ..()
/mob/living/simple_animal/hostile/clockwork/guardian/attack_slime(mob/living/simple_animal/slime/M)
if(!blockOrCounter(M, M))
return ..()
/mob/living/simple_animal/hostile/clockwork/guardian/attack_hand(mob/living/carbon/human/M)
if(!blockOrCounter(M, M))
return ..()
/mob/living/simple_animal/hostile/clockwork/guardian/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/nullrod) || !blockOrCounter(user, I))
return ..()
/mob/living/simple_animal/hostile/clockwork/guardian/proc/blockOrCounter(mob/target, atom/textobject)
if(GLOB.ratvar_awakens) //if ratvar has woken, we block nearly everything at a very high chance
blockchance = 90
counterchance = 90
if(prob(blockchance))
. = TRUE
if(target)
target.do_attack_animation(src)
target.DelayNextAction(CLICK_CD_MELEE)
blockchance = initial(blockchance)
playsound(src, 'sound/magic/clockwork/fellowship_armory.ogg', 30, 1, 0, 1) //clang
visible_message("<span class='boldannounce'>[src] blocks [target && isitem(textobject) ? "[target]'s [textobject.name]":"\the [textobject]"]!</span>", \
"<span class='userdanger'>You block [target && isitem(textobject) ? "[target]'s [textobject.name]":"\the [textobject]"]!</span>")
if(target && Adjacent(target))
if(prob(counterchance))
counterchance = initial(counterchance)
var/previousattack_verb_continuous = attack_verb_continuous
attack_verb_continuous = "counters"
UnarmedAttack(target)
attack_verb_continuous = previousattack_verb_continuous
else
counterchance = min(counterchance + initial(counterchance), 100)
else
blockchance = min(blockchance + initial(blockchance), 100)
if(GLOB.ratvar_awakens)
blockchance = 90
counterchance = 90
//COMMUNICATION and EMERGENCE
/*
/mob/living/simple_animal/hostile/clockwork/guardian/handle_inherent_channels(message, message_mode)
if(host && (is_in_host() || message_mode == MODE_BINARY))
guardian_comms(message)
return TRUE
return ..()
*/
/mob/living/simple_animal/hostile/clockwork/guardian/proc/guardian_comms(message)
var/name_part = "<span class='sevtug'>[src] ([true_name])</span>"
message = "<span class='sevtug_small'>\"[message]\"</span>" //Processed output
to_chat(src, "[name_part]<span class='sevtug_small'>:</span> [message]")
to_chat(host, "[name_part]<span class='sevtug_small'>:</span> [message]")
for(var/M in GLOB.mob_list)
if(isobserver(M))
var/link = FOLLOW_LINK(M, src)
to_chat(M, "[link] [name_part] <span class='sevtug_small'>(to</span> <span class='sevtug'>[findtextEx(host.name, host.real_name) ? "[host.name]" : "[host.real_name] (as [host.name])"]</span><span class='sevtug_small'>):</span> [message] ")
return TRUE
/mob/living/simple_animal/hostile/clockwork/guardian/proc/return_to_host()
if(is_in_host())
return FALSE
if(!host)
to_chat(src, "<span class='warning'>You don't have a host!</span>")
return FALSE
var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5)
if(iscarbon(host))
resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)
host.visible_message("<span class='warning'>[host]'s skin flashes magenta!</span>", "<span class='sevtug'>You feel [true_name]'s consciousness settle in your mind.</span>")
visible_message("<span class='warning'>[src] suddenly disappears!</span>", "<span class='sevtug'>You return to [host].</span>")
forceMove(host)
if(resulthealth > GUARDIAN_EMERGE_THRESHOLD && health != maxHealth)
recovering = TRUE
to_chat(src, "<span class='userdanger'>You have weakened and will need to recover before manifesting again!</span>")
to_chat(host, "<span class='sevtug'>[true_name] has weakened and will need to recover before manifesting again!</span>")
return TRUE
/mob/living/simple_animal/hostile/clockwork/guardian/proc/try_emerge()
if(!host)
to_chat(src, "<span class='warning'>You don't have a host!</span>")
return FALSE
if(!GLOB.ratvar_awakens)
var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5)
if(iscarbon(host))
resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)
if(host.stat != DEAD && resulthealth > GUARDIAN_EMERGE_THRESHOLD) //if above 20 health, fails
to_chat(src, "<span class='warning'>Your host must be at [GUARDIAN_EMERGE_THRESHOLD]% or less health to emerge like this!</span>")
return FALSE
return emerge_from_host(FALSE)
/mob/living/simple_animal/hostile/clockwork/guardian/proc/emerge_from_host(hostchosen, force) //Notice that this is a proc rather than a verb - guardians can NOT exit at will, but they CAN return
if(!is_in_host())
return FALSE
if(!force && recovering)
if(hostchosen)
to_chat(host, "<span class='sevtug'>[true_name] is too weak to come forth!</span>")
else
to_chat(host, "<span class='sevtug'>[true_name] tries to emerge to protect you, but it's too weak!</span>")
to_chat(src, "<span class='userdanger'>You try to come forth, but you're too weak!</span>")
return FALSE
if(!force)
if(hostchosen) //guardian approved
to_chat(host, "<span class='sevtug'>Your words echo with power as [true_name] emerges from your body!</span>")
else
to_chat(host, "<span class='sevtug'>[true_name] emerges from your body to protect you!</span>")
forceMove(host.loc)
visible_message("<span class='warning'>[host]'s skin glows red as [name] emerges from their body!</span>", "<span class='sevtug_small'>You exit the safety of [host]'s body!</span>")
return TRUE
/mob/living/simple_animal/hostile/clockwork/guardian/get_alt_name()
return " ([text2ratvar(true_name)])"
/mob/living/simple_animal/hostile/clockwork/guardian/proc/is_in_host() //Checks if the guardian is inside of their host
return host && loc == host
//HOST ACTIONS
//Summon guardian action: Calls forth or recalls your guardian
/datum/action/innate/summon_guardian
name = "Force Guardian to Emerge/Recall"
desc = "Allows you to force your clockwork guardian to emerge or recall as required."
button_icon_state = "clockwork_marauder"
background_icon_state = "bg_clock"
check_flags = AB_CHECK_CONSCIOUS
buttontooltipstyle = "clockcult"
var/mob/living/simple_animal/hostile/clockwork/guardian/linked_guardian
var/list/defend_phrases = list("Defend me", "Come forth", "Assist me", "Protect me", "Give aid", "Help me")
var/list/return_phrases = list("Return", "Return to me", "Your job is done", "You have served", "Come back", "Retreat")
/datum/action/innate/summon_guardian/IsAvailable()
if(!linked_guardian)
return FALSE
if(isliving(owner))
var/mob/living/L = owner
if(!L.can_speak_vocal() || L.stat)
return FALSE
return ..()
/datum/action/innate/summon_guardian/Activate()
if(linked_guardian.is_in_host())
clockwork_say(owner, text2ratvar("[pick(defend_phrases)], [linked_guardian.true_name]!"))
linked_guardian.emerge_from_host(TRUE)
else
clockwork_say(owner, text2ratvar("[pick(return_phrases)], [linked_guardian.true_name]!"))
linked_guardian.return_to_host()
return TRUE
//Linked Minds action: talks to your guardian
/datum/action/innate/linked_minds
name = "Linked Minds"
desc = "Allows you to silently communicate with your guardian."
button_icon_state = "linked_minds"
background_icon_state = "bg_clock"
check_flags = AB_CHECK_CONSCIOUS
buttontooltipstyle = "clockcult"
var/mob/living/simple_animal/hostile/clockwork/guardian/linked_guardian
/datum/action/innate/linked_minds/IsAvailable()
if(!linked_guardian)
return FALSE
return ..()
/datum/action/innate/linked_minds/Activate()
var/message = stripped_input(owner, "Enter a message to tell your guardian.", "Telepathy")
if(!owner || !message)
return FALSE
if(!linked_guardian)
to_chat(owner, "<span class='warning'>Your guardian seems to have been destroyed!</span>")
return FALSE
var/name_part = "<span class='sevtug'>Servant [findtextEx(owner.name, owner.real_name) ? "[owner.name]" : "[owner.real_name] (as [owner.name])"]</span>"
message = "<span class='sevtug_small'>\"[message]\"</span>" //Processed output
to_chat(owner, "[name_part]<span class='sevtug_small'>:</span> [message]")
to_chat(linked_guardian, "[name_part]<span class='sevtug_small'>:</span> [message]")
for(var/M in GLOB.mob_list)
if(isobserver(M))
var/link = FOLLOW_LINK(M, src)
to_chat(M, "[link] [name_part] <span class='sevtug_small'>(to</span> <span class='sevtug'>[linked_guardian] ([linked_guardian.true_name])</span><span class='sevtug_small'>):</span> [message]")
return TRUE
@@ -123,437 +123,3 @@
#undef MARAUDER_SLOWDOWN_PERCENTAGE
#undef MARAUDER_SHIELD_REGEN_TIME
//Clockwork guardian: Slow but with high damage, resides inside of a servant. Created via the Memory Allocation scripture.
/mob/living/simple_animal/hostile/clockwork/marauder/guardian
name = "clockwork guardian"
desc = "A stalwart apparition of a soldier, blazing with crimson flames. It's armed with a gladius and shield and stands ready by its master."
icon_state = "clockwork_marauder"
health = 300
maxHealth = 300
speed = 1
obj_damage = 40
melee_damage_lower = 12
melee_damage_upper = 12
attack_verb_continuous = "slashes"
attack_verb_simple = "slash"
attack_sound = 'sound/weapons/bladeslice.ogg'
weather_immunities = list("lava")
movement_type = FLYING
AIStatus = AI_OFF //this has to be manually set so that the guardian doesn't start bashing the host, how annoying -_-
loot = list(/obj/item/clockwork/component/geis_capacitor/fallen_armor)
max_shield_health = 0
shield_health = 0
var/true_name = "Meme Master 69" //Required to call forth the guardian
var/global/list/possible_true_names = list("Servant", "Warden", "Serf", "Page", "Usher", "Knave", "Vassal", "Escort")
var/mob/living/host //The mob that the guardian is living inside of
var/recovering = FALSE //If the guardian is recovering from recalling
var/blockchance = 17 //chance to block attacks entirely
var/counterchance = 30 //chance to counterattack after blocking
var/static/list/damage_heal_order = list(OXY, BURN, BRUTE, TOX) //we heal our host's damage in this order
light_range = 2
light_power = 1.1
playstyle_string = "<span class='sevtug'>You are a clockwork guardian</span><b>, a living extension of Sevtug's will. As a guardian, you are somewhat slow, but may block attacks, \
and have a chance to also counter blocked melee attacks for extra damage, in addition to being immune to extreme temperatures and pressures. \
Your primary goal is to serve the creature that you are now a part of, as well as The Clockwork Justiciar, Ratvar. You can use <span class='sevtug_small'><i>The Hierophant Network</i></span> to communicate silently with your master and their allies, \
but can only exit if your master calls your true name or if they are exceptionally damaged. \
\n\n\
Stay near your host to protect and heal them; being too far from your host will rapidly cause you massive damage. Recall to your host if you are too weak and believe you cannot continue \
fighting safely. As a final note, you should probably avoid harming any fellow servants of Ratvar.</span>"
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/Initialize()
. = ..()
true_name = pick(possible_true_names)
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/BiologicalLife(seconds, times_fired)
..()
if(is_in_host())
if(!is_servant_of_ratvar(host))
emerge_from_host(FALSE, TRUE)
unbind_from_host()
return
if(!GLOB.ratvar_awakens && host.stat == DEAD)
death()
return
if(GLOB.ratvar_awakens)
adjustHealth(-50)
else
adjustHealth(-10)
if(!recovering)
heal_host() //also heal our host if inside of them and we aren't recovering
else if(health == maxHealth)
to_chat(src, "<span class='userdanger'>Your strength has returned. You can once again come forward!</span>")
to_chat(host, "<span class='userdanger'>Your guardian is now strong enough to come forward again!</span>")
recovering = FALSE
else
if(GLOB.ratvar_awakens) //If Ratvar is alive, guardians don't need a host and are downright impossible to kill
adjustHealth(-5)
heal_host()
else if(host)
if(!is_servant_of_ratvar(host))
unbind_from_host()
return
if(host.stat == DEAD)
adjustHealth(50)
to_chat(src, "<span class='userdanger'>Your host is dead!</span>")
return
if(z && host.z && z == host.z)
switch(get_dist(get_turf(src), get_turf(host)))
if(2)
adjustHealth(-1)
if(3)
//EQUILIBRIUM
if(4)
adjustHealth(1)
if(5)
adjustHealth(3)
if(6)
adjustHealth(6)
if(7)
adjustHealth(9)
if(8 to INFINITY)
adjustHealth(15)
to_chat(src, "<span class='userdanger'>You're too far from your host and rapidly taking damage!</span>")
else //right next to or on top of host
adjustHealth(-2)
heal_host() //gradually heal host if nearby and host is very weak
else //well then, you're not even in the same zlevel
adjustHealth(15)
to_chat(src, "<span class='userdanger'>You're too far from your host and rapidly taking damage!</span>")
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/death(gibbed)
emerge_from_host(FALSE, TRUE)
unbind_from_host()
visible_message("<span class='warning'>[src]'s equipment clatters lifelessly to the ground as the red flames within dissipate.</span>", \
"<span class='userdanger'>Your equipment falls away. You feel a moment of confusion before your fragile form is annihilated.</span>")
. = ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/Stat()
..()
if(statpanel("Status"))
stat(null, "Current True Name: [true_name]")
stat(null, "Host: [host ? host : "NONE"]")
if(host)
var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5)
if(iscarbon(host))
resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)
stat(null, "Host Health: [resulthealth]%")
if(GLOB.ratvar_awakens)
stat(null, "You are [recovering ? "un" : ""]able to deploy!")
else
if(resulthealth > GUARDIAN_EMERGE_THRESHOLD)
stat(null, "You are [recovering ? "unable to deploy" : "able to deploy on hearing your True Name"]!")
else
stat(null, "You are [recovering ? "unable to deploy" : "able to deploy to protect your host"]!")
stat(null, "You do [melee_damage_upper] damage on melee attacks.")
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/Process_Spacemove(movement_dir = 0)
return 1
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/proc/bind_to_host(mob/living/new_host)
if(!new_host)
return FALSE
host = new_host
var/datum/action/innate/summon_guardian/SG = new()
SG.linked_guardian = src
SG.Grant(host)
var/datum/action/innate/linked_minds/LM = new()
LM.linked_guardian = src
LM.Grant(host)
return TRUE
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/proc/unbind_from_host()
if(host)
for(var/datum/action/innate/summon_guardian/SG in host.actions)
qdel(SG)
for(var/datum/action/innate/linked_minds/LM in host.actions)
qdel(LM)
host = null
return TRUE
return FALSE
//DAMAGE and FATIGUE
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/proc/heal_host()
if(!host)
return
var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5)
if(iscarbon(host))
resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)
if(GLOB.ratvar_awakens || resulthealth <= GUARDIAN_EMERGE_THRESHOLD)
new /obj/effect/temp_visual/heal(host.loc, "#AF0AAF")
host.heal_ordered_damage(4, damage_heal_order)
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
if(amount > 0)
for(var/mob/living/L in view(2, src))
if(L.is_holding_item_of_type(/obj/item/nullrod))
to_chat(src, "<span class='userdanger'>The presence of a brandished holy artifact weakens your armor!</span>")
amount *= 4 //if a wielded null rod is nearby, it takes four times the health damage
break
. = ..()
if(src && updating_health)
update_health_hud()
update_stats()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/update_health_hud()
if(hud_used && hud_used.healths)
if(istype(hud_used, /datum/hud/marauder))
var/datum/hud/marauder/G = hud_used
var/resulthealth
if(host)
if(iscarbon(host))
resulthealth = "[round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)]%"
else
resulthealth = "[round((host.health / host.maxHealth) * 100, 0.5)]%"
else
resulthealth = "NONE"
G.hosthealth.maptext = "<div align='center' valign='middle' style='position:relative; top:0px; left:6px'><font color='#AF0AAF'>HOST<br>[resulthealth]</font></div>"
hud_used.healths.maptext = "<div align='center' valign='middle' style='position:relative; top:0px; left:6px'><font color='#AF0AAF'>[round((health / maxHealth) * 100, 0.5)]%</font>"
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/proc/update_stats()
if(GLOB.ratvar_awakens)
speed = 0
melee_damage_lower = 20
melee_damage_upper = 20
attack_verb_continuous = "devastates"
else
var/healthpercent = (health/maxHealth) * 100
switch(healthpercent)
if(100 to 70) //Bonuses to speed and damage at high health
speed = 0
melee_damage_lower = 16
melee_damage_upper = 16
attack_verb_continuous = "viciously slashes"
if(70 to 40)
speed = initial(speed)
melee_damage_lower = initial(melee_damage_lower)
melee_damage_upper = initial(melee_damage_upper)
attack_verb_continuous = initial(attack_verb_continuous)
if(40 to 30) //Damage decrease, but not speed
speed = initial(speed)
melee_damage_lower = 10
melee_damage_upper = 10
attack_verb_continuous = "lightly slashes"
if(30 to 20) //Speed decrease
speed = 2
melee_damage_lower = 8
melee_damage_upper = 8
attack_verb_continuous = "lightly slashes"
if(20 to 10) //Massive speed decrease and weak melee attacks
speed = 3
melee_damage_lower = 6
melee_damage_upper = 6
attack_verb_continuous = "weakly slashes"
if(10 to 0) //We are super weak and going to die
speed = 4
melee_damage_lower = 4
melee_damage_upper = 4
attack_verb_continuous = "taps"
//ATTACKING, BLOCKING, and COUNTERING
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/AttackingTarget()
if(is_in_host())
return FALSE
return ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/bullet_act(obj/item/projectile/Proj)
if(blockOrCounter(null, Proj))
return
return ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/hitby(atom/movable/AM, skipcatch, hitpush, blocked, atom/movable/AM, datum/thrownthing/throwingdatum)
if(blockOrCounter(null, AM))
return
return ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/attack_animal(mob/living/simple_animal/M)
if(istype(M, /mob/living/simple_animal/hostile/clockwork/marauder/guardian) || !blockOrCounter(M, M)) //we don't want infinite blockcounter loops if fighting another guardian
return ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/attack_paw(mob/living/carbon/monkey/M)
if(!blockOrCounter(M, M))
return ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/attack_alien(mob/living/carbon/alien/humanoid/M)
if(!blockOrCounter(M, M))
return ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/attack_slime(mob/living/simple_animal/slime/M)
if(!blockOrCounter(M, M))
return ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/attack_hand(mob/living/carbon/human/M)
if(!blockOrCounter(M, M))
return ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/nullrod) || !blockOrCounter(user, I))
return ..()
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/proc/blockOrCounter(mob/target, atom/textobject)
if(GLOB.ratvar_awakens) //if ratvar has woken, we block nearly everything at a very high chance
blockchance = 90
counterchance = 90
if(prob(blockchance))
. = TRUE
if(target)
target.do_attack_animation(src)
target.DelayNextAction(CLICK_CD_MELEE)
blockchance = initial(blockchance)
playsound(src, 'sound/magic/clockwork/fellowship_armory.ogg', 30, 1, 0, 1) //clang
visible_message("<span class='boldannounce'>[src] blocks [target && isitem(textobject) ? "[target]'s [textobject.name]":"\the [textobject]"]!</span>", \
"<span class='userdanger'>You block [target && isitem(textobject) ? "[target]'s [textobject.name]":"\the [textobject]"]!</span>")
if(target && Adjacent(target))
if(prob(counterchance))
counterchance = initial(counterchance)
var/previousattack_verb_continuous = attack_verb_continuous
attack_verb_continuous = "counters"
UnarmedAttack(target)
attack_verb_continuous = previousattack_verb_continuous
else
counterchance = min(counterchance + initial(counterchance), 100)
else
blockchance = min(blockchance + initial(blockchance), 100)
if(GLOB.ratvar_awakens)
blockchance = 90
counterchance = 90
//COMMUNICATION and EMERGENCE
/*
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/handle_inherent_channels(message, message_mode)
if(host && (is_in_host() || message_mode == MODE_BINARY))
guardian_comms(message)
return TRUE
return ..()
*/
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/proc/guardian_comms(message)
var/name_part = "<span class='sevtug'>[src] ([true_name])</span>"
message = "<span class='sevtug_small'>\"[message]\"</span>" //Processed output
to_chat(src, "[name_part]<span class='sevtug_small'>:</span> [message]")
to_chat(host, "[name_part]<span class='sevtug_small'>:</span> [message]")
for(var/M in GLOB.mob_list)
if(isobserver(M))
var/link = FOLLOW_LINK(M, src)
to_chat(M, "[link] [name_part] <span class='sevtug_small'>(to</span> <span class='sevtug'>[findtextEx(host.name, host.real_name) ? "[host.name]" : "[host.real_name] (as [host.name])"]</span><span class='sevtug_small'>):</span> [message] ")
return TRUE
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/proc/return_to_host()
if(is_in_host())
return FALSE
if(!host)
to_chat(src, "<span class='warning'>You don't have a host!</span>")
return FALSE
var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5)
if(iscarbon(host))
resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)
host.visible_message("<span class='warning'>[host]'s skin flashes crimson!</span>", "<span class='sevtug'>You feel [true_name]'s consciousness settle in your mind.</span>")
visible_message("<span class='warning'>[src] suddenly disappears!</span>", "<span class='sevtug'>You return to [host].</span>")
forceMove(host)
if(resulthealth > GUARDIAN_EMERGE_THRESHOLD && health != maxHealth)
recovering = TRUE
to_chat(src, "<span class='userdanger'>You have weakened and will need to recover before manifesting again!</span>")
to_chat(host, "<span class='sevtug'>[true_name] has weakened and will need to recover before manifesting again!</span>")
return TRUE
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/proc/try_emerge()
if(!host)
to_chat(src, "<span class='warning'>You don't have a host!</span>")
return FALSE
if(!GLOB.ratvar_awakens)
var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5)
if(iscarbon(host))
resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)
if(host.stat != DEAD && resulthealth > GUARDIAN_EMERGE_THRESHOLD) //if above 20 health, fails
to_chat(src, "<span class='warning'>Your host must be at [GUARDIAN_EMERGE_THRESHOLD]% or less health to emerge like this!</span>")
return FALSE
return emerge_from_host(FALSE)
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/proc/emerge_from_host(hostchosen, force) //Notice that this is a proc rather than a verb - guardians can NOT exit at will, but they CAN return
if(!is_in_host())
return FALSE
if(!force && recovering)
if(hostchosen)
to_chat(host, "<span class='sevtug'>[true_name] is too weak to come forth!</span>")
else
to_chat(host, "<span class='sevtug'>[true_name] tries to emerge to protect you, but it's too weak!</span>")
to_chat(src, "<span class='userdanger'>You try to come forth, but you're too weak!</span>")
return FALSE
if(!force)
if(hostchosen) //guardian approved
to_chat(host, "<span class='sevtug'>Your words echo with power as [true_name] emerges from your body!</span>")
else
to_chat(host, "<span class='sevtug'>[true_name] emerges from your body to protect you!</span>")
forceMove(host.loc)
visible_message("<span class='warning'>[host]'s skin glows red as [name] emerges from their body!</span>", "<span class='sevtug_small'>You exit the safety of [host]'s body!</span>")
return TRUE
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/get_alt_name()
return " ([text2ratvar(true_name)])"
/mob/living/simple_animal/hostile/clockwork/marauder/guardian/proc/is_in_host() //Checks if the guardian is inside of their host
return host && loc == host
//HOST ACTIONS
//Summon guardian action: Calls forth or recalls your guardian
/datum/action/innate/summon_guardian
name = "Force Guardian to Emerge/Recall"
desc = "Allows you to force your clockwork guardian to emerge or recall as required."
button_icon_state = "clockwork_marauder"
background_icon_state = "bg_clock"
check_flags = AB_CHECK_CONSCIOUS
buttontooltipstyle = "clockcult"
var/mob/living/simple_animal/hostile/clockwork/marauder/guardian/linked_guardian
var/list/defend_phrases = list("Defend me", "Come forth", "Assist me", "Protect me", "Give aid", "Help me")
var/list/return_phrases = list("Return", "Return to me", "Your job is done", "You have served", "Come back", "Retreat")
/datum/action/innate/summon_guardian/IsAvailable()
if(!linked_guardian)
return FALSE
if(isliving(owner))
var/mob/living/L = owner
if(!L.can_speak_vocal() || L.stat)
return FALSE
return ..()
/datum/action/innate/summon_guardian/Activate()
if(linked_guardian.is_in_host())
clockwork_say(owner, text2ratvar("[pick(defend_phrases)], [linked_guardian.true_name]!"))
linked_guardian.emerge_from_host(TRUE)
else
clockwork_say(owner, text2ratvar("[pick(return_phrases)], [linked_guardian.true_name]!"))
linked_guardian.return_to_host()
return TRUE
//Linked Minds action: talks to your guardian
/datum/action/innate/linked_minds
name = "Linked Minds"
desc = "Allows you to silently communicate with your guardian."
button_icon_state = "linked_minds"
background_icon_state = "bg_clock"
check_flags = AB_CHECK_CONSCIOUS
buttontooltipstyle = "clockcult"
var/mob/living/simple_animal/hostile/clockwork/marauder/guardian/linked_guardian
/datum/action/innate/linked_minds/IsAvailable()
if(!linked_guardian)
return FALSE
return ..()
/datum/action/innate/linked_minds/Activate()
var/message = stripped_input(owner, "Enter a message to tell your guardian.", "Telepathy")
if(!owner || !message)
return FALSE
if(!linked_guardian)
to_chat(owner, "<span class='warning'>Your guardian seems to have been destroyed!</span>")
return FALSE
var/name_part = "<span class='sevtug'>Servant [findtextEx(owner.name, owner.real_name) ? "[owner.name]" : "[owner.real_name] (as [owner.name])"]</span>"
message = "<span class='sevtug_small'>\"[message]\"</span>" //Processed output
to_chat(owner, "[name_part]<span class='sevtug_small'>:</span> [message]")
to_chat(linked_guardian, "[name_part]<span class='sevtug_small'>:</span> [message]")
for(var/M in GLOB.mob_list)
if(isobserver(M))
var/link = FOLLOW_LINK(M, src)
to_chat(M, "[link] [name_part] <span class='sevtug_small'>(to</span> <span class='sevtug'>[linked_guardian] ([linked_guardian.true_name])</span><span class='sevtug_small'>):</span> [message]")
return TRUE
@@ -5,7 +5,7 @@ Pieces of scripture require certain follower counts, contruction value, and acti
Drivers: Unlocked by default
Scripts: 35k power or one convert
Applications: 50k or three converts
Judgement 5 converts
Judgement 80k power or nine converts
*/
/datum/clockwork_scripture
@@ -18,7 +18,7 @@
tier = SCRIPTURE_APPLICATION
one_per_tile = TRUE
primary_component = HIEROPHANT_ANSIBLE
sort_priority = 1
sort_priority = 2
important = TRUE
quickbind = TRUE
quickbind_desc = "Creates a Sigil of Transmission, which can drain and will store power for clockwork structures."
@@ -72,7 +72,7 @@
tier = SCRIPTURE_APPLICATION
one_per_tile = TRUE
primary_component = HIEROPHANT_ANSIBLE
sort_priority = 2
sort_priority = 5
quickbind = TRUE
quickbind_desc = "Creates a Mania Motor, which causes minor damage and negative mental effects in non-Servants."
requires_full_power = TRUE
@@ -101,7 +101,7 @@
//Memory Allocation: Finds a willing ghost and makes them into a clockwork guardian for the invoker.
/datum/clockwork_scripture/memory_allocation
descname = "Personal Guardian, A Peice Of Your Mind."
descname = "Personal Guardian housed in the brain."
name = "Memory Allocation"
desc = "Allocates part of your consciousness to a Clockwork Guardian, a variant of Marauder that lives within you, able to be \
called forth by Speaking its True Name or if you become exceptionally low on health.<br>\
@@ -109,13 +109,13 @@
invocations = list("Fright's will...", "...call forth...")
channel_time = 100
power_cost = 8000
usage_tip = "guardians are useful as personal bodyguards and frontline warriors."
usage_tip = "Guardians are useful as personal bodyguards and frontline warriors."
tier = SCRIPTURE_APPLICATION
primary_component = GEIS_CAPACITOR
sort_priority = 5
sort_priority = 6
/datum/clockwork_scripture/memory_allocation/check_special_requirements()
for(var/mob/living/simple_animal/hostile/clockwork/marauder/guardian/M in GLOB.all_clockwork_mobs)
for(var/mob/living/simple_animal/hostile/clockwork/guardian/M in GLOB.all_clockwork_mobs)
if(M.host == invoker)
to_chat(invoker, "<span class='warning'>You can only house one guardian at a time!</span>")
return FALSE
@@ -151,7 +151,7 @@
return FALSE
clockwork_say(invoker, text2ratvar("...sword and shield!"))
var/mob/dead/observer/theghost = pick(marauder_candidates)
var/mob/living/simple_animal/hostile/clockwork/marauder/guardian/M = new(invoker)
var/mob/living/simple_animal/hostile/clockwork/guardian/M = new(invoker)
M.key = theghost.key
M.bind_to_host(invoker)
invoker.visible_message("<span class='warning'>The tendril retracts from [invoker]'s head, sealing the entry wound as it does so!</span>", \
@@ -171,7 +171,7 @@
tier = SCRIPTURE_APPLICATION
one_per_tile = TRUE
primary_component = BELLIGERENT_EYE
sort_priority = 6
sort_priority = 7
quickbind = TRUE
quickbind_desc = "Creates a clockwork marauder, used for frontline combat."
object_path = /obj/item/clockwork/construct_chassis/clockwork_marauder
@@ -223,7 +223,7 @@
object_path = /obj/mecha/combat/neovgre
tier = SCRIPTURE_APPLICATION
primary_component = BELLIGERENT_EYE
sort_priority = 7
sort_priority = 8
creator_message = "<span class='brass'>Neovgre, the Anima Bulwark towers over you... your enemies reckoning has come.</span>"
/datum/clockwork_scripture/create_object/summon_arbiter/check_special_requirements()
@@ -20,7 +20,7 @@
usage_tip = "The gateway is completely vulnerable to attack during its five-minute duration. It will periodically give indication of its general position to everyone on the station \
as well as being loud enough to be heard throughout the entire sector. Defend it with your life!"
tier = SCRIPTURE_APPLICATION
sort_priority = 8
sort_priority = 1
requires_full_power = TRUE
/datum/clockwork_scripture/create_object/ark_of_the_clockwork_justiciar/check_special_requirements()
@@ -81,7 +81,7 @@
priority_announce("Massive [Gibberish("bluespace", 100)] anomaly detected on all frequencies. All crew are directed to \
@!$, [text2ratvar("PURGE ALL UNTRUTHS")] <&. the anomalies and destroy their source to prevent further damage to corporate property. This is \
not a drill.", "Central Command Higher Dimensional Affairs", 'sound/magic/clockwork/ark_activation_sequence.ogg')
set_security_level("delta")
set_security_level("Delta")
for(var/V in SSticker.mode.servants_of_ratvar)
var/datum/mind/M = V
if(!M || !M.current)
@@ -29,8 +29,9 @@
sound_to_playing_players('sound/effects/ratvar_reveal.ogg')
var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/clockwork_effects.dmi', "ratvar_alert")
notify_ghosts("The Justiciar's light calls to you! Reach out to Ratvar in [get_area_name(src)] to be granted a shell to spread his glory!", null, source = src, alert_overlay = alert_overlay)
INVOKE_ASYNC(SSshuttle.emergency, /obj/docking_port/mobile/emergency.proc/request, null, 10, null, FALSE, 0)
SSpersistence.station_was_destroyed = TRUE
INVOKE_ASYNC(src, .proc/purge_the_heresy)
/obj/structure/destructible/clockwork/massive/ratvar/Destroy()
GLOB.ratvar_awakens--
@@ -151,3 +152,34 @@
sound_to_playing_players('sound/machines/clockcult/ratvar_scream.ogg', 80)
narsie.clashing = FALSE
qdel(src)
/obj/structure/destructible/clockwork/massive/ratvar/proc/purge_the_heresy()
sleep(50)
priority_announce("Massive energy surge detected. Closest matching threat: Incoming supernova. All crew are advised to evacuate NAN lightyears away from blast zone","Central Command Higher Dimensional Affairs", 'sound/misc/airraid.ogg')
sleep(300)
priority_announce("Gravitational anomalies detected on the station. [Gibberish("There is no additional dat", 100)]-BZZZZZT.","Central Command Higher Dimensional Affairs", 'sound/magic/clockwork/ratvar_announce1.ogg')
sleep(80)
sound_to_playing_players('sound/magic/clockwork/ratvar_announce2.ogg', 70)
send_to_playing_players("<span class='heavy_brass'><font size=5>\"COME, ALL THOSE FAITHFUL! WITNESS THE RAYS OF JUSTICE CAST UPON THE HERETICS!\"</font></span>")
sleep(50)
SSshuttle.registerHostileEnvironment(src)
SSshuttle.lockdown = TRUE
sleep(250)
if(QDELETED(src))
priority_announce("Energy signal no longer detected.","Central Command Higher Dimensional Affairs")
return
sound_to_playing_players('sound/magic/clockwork/ark_activation_sequence.ogg', 80) //if this isn't lessened in volume it peaks for some reason
addtimer(CALLBACK(GLOBAL_PROC, /proc/clockcult_ending_helper), 300)
/proc/clockcult_ending_helper()
for(var/mob/M in GLOB.mob_list)
if(M.client)
SEND_SOUND(M, sound('sound/magic/clockwork/ratvar_attack.ogg'))
SEND_SOUND(M, sound('sound/magic/clockwork/ratvarfire.ogg'))
if(!is_servant_of_ratvar(M) && isliving(M))
var/mob/living/L = M
L.fire_stacks = INFINITY
L.IgniteMob()
sleep(50)
SSticker.force_ending = 1
@@ -1,7 +1,7 @@
/obj/structure/destructible/clockwork/reflector
name = "reflector"
desc = "A large lantern-shaped machine made of thin brass. It looks fragile."
clockwork_desc = "A lantern-shaped generator that produces power when near starlight."
desc = "A large mirror-like structure made of thin brass on one side. It looks fragile."
clockwork_desc = "A large mirror-like structure made of thin brass on one side. It can redirect laser fire on one side"
icon_state = "reflector"
unanchored_icon = "reflector_unwrenched"
max_integrity = 40
@@ -5,7 +5,7 @@
antagpanel_category = "Clockcult"
job_rank = ROLE_SERVANT_OF_RATVAR
antag_moodlet = /datum/mood_event/cult
skill_modifiers = list(/datum/skill_modifier/job/level/wiring)
skill_modifiers = list(/datum/skill_modifier/job/level/wiring, /datum/skill_modifier/job/level/dwarfy/blacksmithing)
var/datum/action/innate/hierophant/hierophant_network = new
threat = 3
var/datum/team/clockcult/clock_team
+1 -1
View File
@@ -83,7 +83,7 @@
if(choice == "Yes" && IsAvailable())
var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(!C.cult_team)
to_chat(owner, "<span class='cult bold'>Do you not alreaady lead yourself?</span>")
to_chat(owner, "<span class='cult bold'>Do you not already lead yourself?</span>")
return
pollCultists(owner,C.cult_team)
@@ -25,9 +25,9 @@
to_chat(owner, "<span class='boldannounce'>You are the Heretic!</span><br>\
<B>The old ones gave you these tasks to fulfill:</B>")
owner.announce_objectives()
to_chat(owner, "<span class='cult'>The book whispers, the forbidden knowledge walks once again!<br>\
Your book allows you to research abilities, but be careful, you cannot undo what has been done.<br>\
You gain charges by either collecting influences or sacrificing people tracked by the living heart<br> \
to_chat(owner, "<span class='cult'>The book whispers softly, its forbidden knowledge walks this plane once again!<br>\
Your book allows you to research abilities. Read it very carefully, for you cannot undo what has been done!<br>\
You gain charges by either collecting influences or sacrificing people tracked by the living heart.<br> \
You can find a basic guide at : https://tgstation13.org/wiki/Heresy_101 </span>")
/datum/antagonist/heretic/on_gain()
@@ -39,7 +39,6 @@
gain_knowledge(/datum/eldritch_knowledge/spell/basic)
gain_knowledge(/datum/eldritch_knowledge/living_heart)
gain_knowledge(/datum/eldritch_knowledge/codex_cicatrix)
gain_knowledge(/datum/eldritch_knowledge/eldritch_blade)
current.log_message("has been converted to the cult of the forgotten ones!", LOG_ATTACK, color="#960000")
GLOB.reality_smash_track.AddMind(owner)
START_PROCESSING(SSprocessing,src)
@@ -59,6 +58,8 @@
GLOB.reality_smash_track.RemoveMind(owner)
STOP_PROCESSING(SSprocessing,src)
on_death()
return ..()
@@ -90,15 +91,25 @@
/datum/antagonist/heretic/process()
if(owner.current.stat == DEAD)
return
for(var/X in researched_knowledge)
var/datum/eldritch_knowledge/EK = researched_knowledge[X]
EK.on_life(owner.current)
///What happens to the heretic once he dies, used to remove any custom perks
/datum/antagonist/heretic/proc/on_death()
for(var/X in researched_knowledge)
var/datum/eldritch_knowledge/EK = researched_knowledge[X]
EK.on_death(owner.current)
/datum/antagonist/heretic/proc/forge_primary_objectives()
var/list/assasination = list()
var/list/protection = list()
for(var/i in 1 to 2)
var/pck = pick("assasinate","protect")
var/pck = pick("assasinate")
switch(pck)
if("assasinate")
var/datum/objective/assassinate/once/A = new
@@ -107,13 +118,6 @@
A.find_target(owners,protection)
assasination += A.target
objectives += A
if("protect")
var/datum/objective/protect/P = new
P.owner = owner
var/list/owners = P.get_owners()
P.find_target(owners,assasination)
protection += P.target
objectives += P
var/datum/objective/sacrifice_ecult/SE = new
SE.owner = owner
@@ -126,7 +130,7 @@
if(mob_override)
current = mob_override
add_antag_hud(antag_hud_type, antag_hud_name, current)
handle_clown_mutation(current, mob_override ? null : "Knowledge described in the book allowed you to overcome your clownish nature, allowing you to use complex items effectively.")
handle_clown_mutation(current, mob_override ? null : "Ancient knowledge described in the book allows you to overcome your clownish nature, allowing you to use complex items effectively.")
current.faction |= "heretics"
/datum/antagonist/heretic/remove_innate_effects(mob/living/mob_override)
@@ -161,7 +165,7 @@
cultiewin = FALSE
count++
if(ascended)
parts += "<span class='greentext big'>HERETIC HAS ASCENDED!</span>"
parts += "<span class='greentext big'>THE HERETIC ASCENDED!</span>"
else
if(cultiewin)
parts += "<span class='greentext'>The heretic was successful!</span>"
@@ -1,6 +1,6 @@
/obj/item/forbidden_book
name = "Codex Cicatrix"
desc = "Book describing the secrets of the veil."
desc = "This book describes the secrets of the veil between worlds."
icon = 'icons/obj/eldritch.dmi'
icon_state = "codex"
item_state = "codex"
@@ -74,8 +74,8 @@
last_user = user
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
icon_state = "book_open"
flick("book_opening", src)
icon_state = "codex_open"
flick("codex_opening", src)
ui = new(user, src, "ForbiddenLore", name)
ui.open()
@@ -133,13 +133,13 @@
if(initial(EK.name) != ekname)
continue
if(cultie.gain_knowledge(EK))
charge -= text2num(params["cost"])
charge -= initial(EK.cost)
return TRUE
update_icon() // Not applicable to all objects.
/obj/item/forbidden_book/ui_close(mob/user)
flick("book_closing",src)
flick("codex_closing",src)
icon_state = initial(icon_state)
return ..()
@@ -1,6 +1,6 @@
/obj/effect/eldritch
name = "Generic rune"
desc = "Weird combination of shapes and symbols etched into the floor itself. The indentation is filled with thick black tar-like fluid."
desc = "A flowing circle of shapes and runes is etched into the floor, filled with a thick black tar-like fluid."
anchored = TRUE
icon_state = ""
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
@@ -14,7 +14,7 @@
I.override = TRUE
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "heretic_rune", I)
/obj/effect/eldritch/attack_hand(mob/living/user)
/obj/effect/eldritch/attack_hand(mob/living/user, list/modifiers)
. = ..()
if(.)
return
@@ -81,7 +81,7 @@
continue
flick("[icon_state]_active",src)
playsound(user, 'sound/magic/castsummon.ogg', 75, TRUE)
playsound(user, 'sound/magic/castsummon.ogg', 75, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_exponent = 10)
//we are doing this since some on_finished_recipe subtract the atoms from selected_atoms making them invisible permanently.
var/list/atoms_to_disappear = selected_atoms.Copy()
for(var/to_disappear in atoms_to_disappear)
@@ -90,31 +90,31 @@
atom_to_disappear.invisibility = INVISIBILITY_ABSTRACT
if(current_eldritch_knowledge.on_finished_recipe(user,selected_atoms,loc))
current_eldritch_knowledge.cleanup_atoms(selected_atoms)
is_in_use = FALSE
for(var/to_appear in atoms_to_disappear)
var/atom/atom_to_appear = to_appear
//we need to reappear the item just in case the ritual didnt consume everything... or something.
atom_to_appear.invisibility = initial(atom_to_appear.invisibility)
is_in_use = FALSE
return
is_in_use = FALSE
to_chat(user,"<span class='warning'>Your ritual failed! You used either wrong components or are missing something important!</span>")
to_chat(user,"<span class='warning'>Your ritual failed! You either used the wrong components or are missing something important!</span>")
/obj/effect/eldritch/big
name = "transmutation circle"
name = "transmutation rune"
icon = 'icons/effects/96x96.dmi'
icon_state = "eldritch_rune1"
pixel_x = -32 //So the big ol' 96x96 sprite shows up right
pixel_y = -32
/**
* #Reality smash tracker
*
* Stupid fucking list holder, DONT create new ones, it will break the game, this is automnatically created whenever eldritch cultists are created.
*
* Tracks relevant data, generates relevant data, useful tool
*/
* #Reality smash tracker
*
* Stupid fucking list holder, DONT create new ones, it will break the game, this is automnatically created whenever eldritch cultists are created.
*
* Tracks relevant data, generates relevant data, useful tool
*/
/datum/reality_smash_tracker
///list of tracked reality smashes
var/list/smashes = list()
@@ -127,12 +127,11 @@
QDEL_LIST(smashes)
targets.Cut()
return ..()
/**
* Automatically fixes the target and smash network
*
* Fixes any bugs that are caused by late Generate() or exchanging clients
*/
* Automatically fixes the target and smash network
*
* Fixes any bugs that are caused by late Generate() or exchanging clients
*/
/datum/reality_smash_tracker/proc/ReworkNetwork()
listclearnulls(smashes)
for(var/mind in targets)
@@ -144,52 +143,51 @@
reality_smash.AddMind(mind)
/**
* Generates a set amount of reality smashes based on the N value
*
* Automatically creates more reality smashes
*/
/datum/reality_smash_tracker/proc/_Generate()
* Generates a set amount of reality smashes based on the N value
*
* Automatically creates more reality smashes
*/
/datum/reality_smash_tracker/proc/Generate(mob/caller)
if(istype(caller))
targets += caller
var/targ_len = length(targets)
var/smash_len = length(smashes)
var/number = targ_len * 6 - smash_len
var/number = max(targ_len * (6-(targ_len-1)) - smash_len,1)
for(var/i in 0 to number)
var/turf/chosen_location = get_safe_random_station_turf()
//we also dont want them close to each other, at least 1 tile of seperation
var/obj/effect/reality_smash/what_if_i_have_one = locate() in range(1, chosen_location)
var/obj/effect/broken_illusion/what_if_i_had_one_but_got_used = locate() in range(1, chosen_location)
if(what_if_i_have_one || what_if_i_had_one_but_got_used) //we dont want to spawn
continue
var/obj/effect/reality_smash/RS = new/obj/effect/reality_smash(chosen_location)
smashes += RS
new /obj/effect/reality_smash(chosen_location)
ReworkNetwork()
/**
* Adds a mind to the list of people that can see the reality smashes
*
* Use this whenever you want to add someone to the list
*/
/datum/reality_smash_tracker/proc/AddMind(var/datum/mind/M)
RegisterSignal(M.current,COMSIG_MOB_CLIENT_LOGIN,.proc/ReworkNetwork)
targets |= M
_Generate()
for(var/X in smashes)
var/obj/effect/reality_smash/reality_smash = X
reality_smash.AddMind(M)
* Adds a mind to the list of people that can see the reality smashes
*
* Use this whenever you want to add someone to the list
*/
/datum/reality_smash_tracker/proc/AddMind(datum/mind/e_cultists)
RegisterSignal(e_cultists.current,COMSIG_MOB_CLIENT_LOGIN,.proc/ReworkNetwork)
targets |= e_cultists
Generate()
for(var/obj/effect/reality_smash/reality_smash in smashes)
reality_smash.AddMind(e_cultists)
/**
* Removes a mind from the list of people that can see the reality smashes
*
* Use this whenever you want to remove someone from the list
*/
/datum/reality_smash_tracker/proc/RemoveMind(var/datum/mind/M)
UnregisterSignal(M.current,COMSIG_MOB_CLIENT_LOGIN)
targets -= M
for(var/obj/effect/reality_smash/RS in smashes)
RS.RemoveMind(M)
* Removes a mind from the list of people that can see the reality smashes
*
* Use this whenever you want to remove someone from the list
*/
/datum/reality_smash_tracker/proc/RemoveMind(datum/mind/e_cultists)
UnregisterSignal(e_cultists.current,COMSIG_MOB_CLIENT_LOGIN)
targets -= e_cultists
for(var/obj/effect/reality_smash/reality_smash in smashes)
reality_smash.RemoveMind(e_cultists)
/obj/effect/broken_illusion
name = "pierced reality"
@@ -198,66 +196,67 @@
anchored = TRUE
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
alpha = 0
invisibility = INVISIBILITY_OBSERVER
/obj/effect/broken_illusion/Initialize()
. = ..()
addtimer(CALLBACK(src, .proc/show_presence), 15 SECONDS)
var/image/I = image(icon = 'icons/effects/eldritch.dmi', icon_state = null, loc = src)
addtimer(CALLBACK(src,.proc/show_presence),15 SECONDS)
var/image/I = image('icons/effects/eldritch.dmi',src,null,OBJ_LAYER)
I.override = TRUE
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "pierced_reality", I)
///Makes this obj appear out of nothing
/obj/effect/broken_illusion/proc/show_presence()
invisibility = 0
animate(src, alpha = 255, time = 15 SECONDS)
animate(src,alpha = 255,time = 15 SECONDS)
/obj/effect/broken_illusion/attack_hand(mob/living/user)
/obj/effect/broken_illusion/attack_hand(mob/living/user, list/modifiers)
if(!ishuman(user))
return ..()
var/mob/living/carbon/human/human_user = user
if(IS_HERETIC(human_user))
to_chat(human_user,"<span class='boldwarning'>You know better than to tempt forces out of your control.</span>")
to_chat(human_user,"<span class='boldwarning'>You know better than to tempt forces out of your control!</span>")
else
var/obj/item/bodypart/arm = human_user.get_active_hand()
if(prob(25))
to_chat(human_user,"<span class='userdanger'>An otherwordly presence tears your arm apart into atoms as you try to touch the hole in the very fabric of reality!</span>")
to_chat(human_user,"<span class='userdanger'>An otherwordly presence tears and atomizes your arm as you try to touch the hole in the very fabric of reality!</span>")
arm.dismember()
qdel(arm)
else
to_chat(human_user,"<span class='danger'>You pull your hand away from the hole as eldritch energy flails out, trying to latch onto existence itself!</span>")
to_chat(human_user,"<span class='danger'>You pull your hand away from the hole as the eldritch energy flails trying to latch onto existance itself!</span>")
/obj/effect/broken_illusion/attack_tk(mob/user)
if(!ishuman(user))
return
var/mob/living/carbon/human/human_user = user
if(IS_HERETIC(human_user))
to_chat(human_user,"<span class='boldwarning'>You know better than to tempt forces out of your control.</span>")
to_chat(human_user,"<span class='boldwarning'>You know better than to tempt forces out of your control!</span>")
return
//a very elaborate way to suicide
to_chat(human_user,"<span class='userdanger'>Eldritch energy lashes out, piercing your fragile mind, tearing it to pieces!</span>")
human_user.ghostize()
var/obj/item/bodypart/head/head = locate() in human_user.bodyparts
if(head)
head.dismember()
qdel(head)
else
//a very elaborate way to suicide
to_chat(human_user,"<span class='userdanger'>Eldritch energy lashes out, piercing your fragile mind, tearing it to pieces!</span>")
human_user.ghostize()
var/obj/item/bodypart/head/head = locate() in human_user.bodyparts
if(head)
head.dismember()
qdel(head)
else
human_user.gib()
human_user.gib()
var/datum/effect_system/reagents_explosion/explosion = new()
explosion.set_up(1, get_turf(human_user), TRUE, 0)
explosion.start()
var/datum/effect_system/reagents_explosion/explosion = new()
explosion.set_up(1, get_turf(human_user), 1, 0)
explosion.start()
/obj/effect/broken_illusion/examine(mob/user)
. = ..()
if(!IS_HERETIC(user) && ishuman(user))
var/mob/living/carbon/human/human_user = user
to_chat(human_user,"<span class='userdanger'>Your brain hurts when you look at this!</span>")
human_user.adjustOrganLoss(ORGAN_SLOT_BRAIN,20,190)
to_chat(human_user,"<span class='warning'>Your mind burns as you stare at the tear!</span>")
human_user.adjustOrganLoss(ORGAN_SLOT_BRAIN,10,190)
SEND_SIGNAL(human_user, COMSIG_ADD_MOOD_EVENT, "gates_of_mansus", /datum/mood_event/gates_of_mansus)
log_game("[key_name(user)] stared at a pierced reality at [AREACOORD(user)]")
/obj/effect/reality_smash
name = "/improper reality smash"
name = "reality smash"
icon = 'icons/effects/eldritch.dmi'
anchored = TRUE
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
@@ -271,44 +270,41 @@
/obj/effect/reality_smash/Initialize()
. = ..()
GLOB.reality_smash_track.smashes += src
img = image(icon, src, image_state, OBJ_LAYER)
generate_name()
/obj/effect/reality_smash/Destroy()
GLOB.reality_smash_track.smashes -= src
on_destroy()
return ..()
///Custom effect that happens on destruction
/obj/effect/reality_smash/proc/on_destroy()
for(var/cm in minds)
var/datum/mind/cultie = cm
if(cultie.current?.client)
cultie.current.client.images -= img
for(var/e_cultists in minds)
var/datum/mind/e_cultie = e_cultists
if(e_cultie.current?.client)
e_cultie.current.client.images -= img
//clear the list
minds -= cultie
GLOB.reality_smash_track.smashes -= src
minds -= e_cultie
img = null
new /obj/effect/broken_illusion(drop_location())
var/obj/effect/broken_illusion/illusion = new /obj/effect/broken_illusion(drop_location())
illusion.name = pick("Researched","Siphoned","Analyzed","Emptied","Drained") + " " + name
///Makes the mind able to see this effect
/obj/effect/reality_smash/proc/AddMind(var/datum/mind/cultie)
minds |= cultie
if(cultie.current.client)
cultie.current.client.images |= img
/obj/effect/reality_smash/proc/AddMind(datum/mind/e_cultie)
minds |= e_cultie
if(e_cultie.current.client)
e_cultie.current.client.images |= img
///Makes the mind not able to see this effect
/obj/effect/reality_smash/proc/RemoveMind(var/datum/mind/cultie)
minds -= cultie
if(cultie.current.client)
cultie.current.client.images -= img
/obj/effect/reality_smash/proc/RemoveMind(datum/mind/e_cultie)
minds -= e_cultie
if(e_cultie.current.client)
e_cultie.current.client.images -= img
///Generates random name
/obj/effect/reality_smash/proc/generate_name()
var/static/list/prefix = list("Omniscient","Thundering","Enlightening","Intrusive","Rejectful","Atomized","Subtle","Rising","Lowering","Fleeting","Towering","Blissful","Arrogant","Threatening","Peaceful","Aggressive")
var/static/list/postfix = list("Flaw","Presence","Crack","Heat","Cold","Memory","Reminder","Breeze","Grasp","Sight","Whisper","Flow","Touch","Veil","Thought","Imperfection","Blemish","Blush")
name = pick(prefix) + " " + pick(postfix)
name = "\improper" + pick(prefix) + " " + pick(postfix)

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