Merge branch 'master' into upstream-merge-29523
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
language: generic
|
||||
sudo: false
|
||||
dist: precise
|
||||
|
||||
env:
|
||||
global:
|
||||
|
||||
@@ -145,10 +145,7 @@
|
||||
dir = 1;
|
||||
pixel_y = -27
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Nothing of interest to report.";
|
||||
name = "Important Notice - Mrs. Henderson"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/stations/lavaland/surface/henderson_report,
|
||||
/turf/open/floor/plasteel/cmo,
|
||||
/area/ruin/powered/animal_hospital)
|
||||
"aA" = (
|
||||
@@ -474,7 +471,7 @@
|
||||
"bD" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/cyanide{
|
||||
desc = "A cocktail of chemotherpy drugs intended to treat bladder cancer.";
|
||||
desc = "A cocktail of chemotherapy drugs intended to treat bladder cancer.";
|
||||
name = "MVAC regimen"
|
||||
},
|
||||
/obj/item/weapon/reagent_containers/syringe,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
@@ -6,13 +6,13 @@
|
||||
/obj/structure/stone_tile/surrounding_tile{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ac" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ad" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
@@ -21,13 +21,13 @@
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ae" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"af" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
@@ -36,26 +36,26 @@
|
||||
/obj/structure/stone_tile{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ag" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ah" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ai" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"aj" = (
|
||||
/obj/structure/stone_tile/slab,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ak" = (
|
||||
/turf/closed/indestructible/riveted/boss,
|
||||
@@ -64,7 +64,7 @@
|
||||
/obj/structure/stone_tile/surrounding_tile{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"am" = (
|
||||
/obj/structure/stone_tile{
|
||||
@@ -95,7 +95,10 @@
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ar" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
@@ -104,7 +107,7 @@
|
||||
/obj/structure/stone_tile{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"as" = (
|
||||
/turf/closed/wall/mineral/wood,
|
||||
@@ -113,10 +116,10 @@
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"au" = (
|
||||
/obj/structure/stone_tile,
|
||||
@@ -181,7 +184,7 @@
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"aA" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
@@ -222,10 +225,7 @@
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"aG" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
@@ -297,7 +297,10 @@
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"aO" = (
|
||||
/obj/item/weapon/storage/box/rxglasses,
|
||||
/obj/structure/stone_tile/surrounding/cracked{
|
||||
icon_state = "cracked_surrounding1";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"aP" = (
|
||||
@@ -316,8 +319,10 @@
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"aS" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
@@ -465,13 +470,13 @@
|
||||
/obj/structure/stone_tile{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"bi" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 4
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"bj" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
@@ -677,7 +682,7 @@
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"bD" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
@@ -713,11 +718,11 @@
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"bI" = (
|
||||
/obj/structure/stone_tile/slab/cracked,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"bJ" = (
|
||||
/obj/structure/stone_tile/surrounding_tile,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"bK" = (
|
||||
/obj/structure/stone_tile{
|
||||
@@ -908,10 +913,16 @@
|
||||
"cj" = (
|
||||
/obj/effect/mob_spawn/human/corpse/damaged,
|
||||
/obj/effect/decal/cleanable/blood,
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ck" = (
|
||||
/obj/item/weapon/twohanded/spear,
|
||||
/obj/structure/stone_tile{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cl" = (
|
||||
@@ -931,19 +942,25 @@
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cn" = (
|
||||
/obj/structure/bonfire/dense,
|
||||
/obj/structure/stone_tile/block,
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"co" = (
|
||||
/obj/structure/stone_tile,
|
||||
/obj/structure/stone_tile/cracked{
|
||||
/obj/structure/stone_tile/block/cracked,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cp" = (
|
||||
/obj/structure/stone_tile/cracked,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cq" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
@@ -1021,6 +1038,10 @@
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"cA" = (
|
||||
/obj/structure/stone_tile/slab/cracked{
|
||||
icon_state = "cracked_slab1";
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"cB" = (
|
||||
@@ -1048,6 +1069,11 @@
|
||||
/obj/item/device/flashlight/lantern,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"cE" = (
|
||||
/obj/structure/stone_tile/surrounding/cracked,
|
||||
/obj/effect/baseturf_helper,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"cF" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
@@ -1070,18 +1096,26 @@
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cI" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/blood,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cJ" = (
|
||||
/obj/item/weapon/shovel,
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cK" = (
|
||||
/obj/item/weapon/pickaxe,
|
||||
/obj/machinery/hydroponics/soil,
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cL" = (
|
||||
@@ -1132,21 +1166,19 @@
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cP" = (
|
||||
/obj/structure/stone_tile/block,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cQ" = (
|
||||
/obj/structure/stone_tile{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/obj/structure/stone_tile/block/cracked,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cR" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cS" = (
|
||||
/obj/effect/decal/cleanable/blood,
|
||||
@@ -1156,14 +1188,293 @@
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cT" = (
|
||||
/obj/structure/stone_tile,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cU" = (
|
||||
/obj/effect/baseturf_helper,
|
||||
/turf/closed/indestructible/riveted/boss,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"kB" = (
|
||||
/obj/structure/stone_tile/surrounding/cracked,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cV" = (
|
||||
/obj/structure/stone_tile/cracked,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cW" = (
|
||||
/obj/structure/table/optable,
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"cX" = (
|
||||
/obj/item/weapon/storage/box/rxglasses,
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"cY" = (
|
||||
/obj/item/seeds/glowshroom,
|
||||
/obj/item/seeds/glowshroom,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"cZ" = (
|
||||
/obj/structure/stone_tile/surrounding_tile{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"da" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"db" = (
|
||||
/obj/structure/stone_tile/block,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dc" = (
|
||||
/obj/structure/stone_tile/block,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dd" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"de" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"df" = (
|
||||
/obj/effect/decal/cleanable/blood,
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dg" = (
|
||||
/obj/structure/bonfire/dense,
|
||||
/obj/structure/stone_tile/center,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dh" = (
|
||||
/obj/structure/stone_tile/block/cracked,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"di" = (
|
||||
/obj/effect/decal/cleanable/blood,
|
||||
/obj/structure/stone_tile/block,
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dj" = (
|
||||
/obj/structure/stone_tile/block,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dk" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile/block,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dl" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile/cracked,
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dm" = (
|
||||
/obj/structure/stone_tile/block,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dn" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"do" = (
|
||||
/obj/structure/stone_tile{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dp" = (
|
||||
/obj/item/weapon/pickaxe,
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dq" = (
|
||||
/obj/item/stack/sheet/mineral/wood,
|
||||
/obj/structure/stone_tile{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dr" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked,
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile/surrounding_tile{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/center,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ds" = (
|
||||
/obj/structure/stone_tile/block,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dt" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked,
|
||||
/obj/structure/stone_tile/surrounding_tile{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/center,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"du" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dv" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/mob_spawn/human/corpse/damaged,
|
||||
/obj/effect/decal/cleanable/blood,
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dw" = (
|
||||
/obj/item/weapon/reagent_containers/glass/bucket,
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dx" = (
|
||||
/obj/item/device/flashlight/lantern,
|
||||
/obj/structure/stone_tile/center,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dy" = (
|
||||
/obj/machinery/hydroponics/soil,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dz" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile/cracked,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dA" = (
|
||||
/obj/machinery/hydroponics/soil,
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile/surrounding_tile,
|
||||
/obj/structure/stone_tile/surrounding_tile{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/stone_tile/center,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dB" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/center/cracked,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dC" = (
|
||||
/obj/structure/stone_tile,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dD" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dE" = (
|
||||
/obj/structure/stone_tile,
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dF" = (
|
||||
/obj/structure/stone_tile,
|
||||
/turf/closed/mineral/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
@@ -1190,15 +1501,15 @@ aa
|
||||
(2,1,1) = {"
|
||||
aa
|
||||
ah
|
||||
ab
|
||||
cU
|
||||
cV
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
aL
|
||||
ah
|
||||
bi
|
||||
bu
|
||||
am
|
||||
ah
|
||||
bi
|
||||
da
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -1213,7 +1524,6 @@ aa
|
||||
aa
|
||||
aa
|
||||
ah
|
||||
am
|
||||
as
|
||||
as
|
||||
as
|
||||
@@ -1221,12 +1531,13 @@ as
|
||||
ak
|
||||
as
|
||||
as
|
||||
db
|
||||
ah
|
||||
ah
|
||||
bN
|
||||
bY
|
||||
dp
|
||||
ah
|
||||
cp
|
||||
bX
|
||||
bL
|
||||
bM
|
||||
cC
|
||||
ah
|
||||
ah
|
||||
aa
|
||||
@@ -1235,29 +1546,28 @@ aa
|
||||
aa
|
||||
aa
|
||||
ah
|
||||
an
|
||||
ak
|
||||
aA
|
||||
aM
|
||||
aX
|
||||
cY
|
||||
bj
|
||||
bv
|
||||
ak
|
||||
bK
|
||||
bM
|
||||
bM
|
||||
db
|
||||
bN
|
||||
bM
|
||||
bY
|
||||
cG
|
||||
cg
|
||||
cl
|
||||
cq
|
||||
cq
|
||||
dv
|
||||
ah
|
||||
ah
|
||||
aa
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
ah
|
||||
ah
|
||||
ac
|
||||
as
|
||||
aB
|
||||
aN
|
||||
@@ -1265,56 +1575,57 @@ aY
|
||||
bk
|
||||
bw
|
||||
ak
|
||||
bX
|
||||
cS
|
||||
bM
|
||||
bM
|
||||
cw
|
||||
bM
|
||||
cb
|
||||
bZ
|
||||
ch
|
||||
cm
|
||||
cr
|
||||
bY
|
||||
bL
|
||||
cb
|
||||
ah
|
||||
ah
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
ah
|
||||
ao
|
||||
cT
|
||||
ak
|
||||
aC
|
||||
cX
|
||||
aO
|
||||
aM
|
||||
bl
|
||||
bx
|
||||
bD
|
||||
bS
|
||||
de
|
||||
bV
|
||||
dg
|
||||
cs
|
||||
cy
|
||||
bY
|
||||
cg
|
||||
bM
|
||||
bO
|
||||
cx
|
||||
cw
|
||||
cH
|
||||
cq
|
||||
ah
|
||||
ah
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
ah
|
||||
ap
|
||||
ae
|
||||
as
|
||||
aD
|
||||
cW
|
||||
aP
|
||||
aZ
|
||||
bm
|
||||
by
|
||||
ak
|
||||
bV
|
||||
cb
|
||||
ci
|
||||
bA
|
||||
ct
|
||||
bN
|
||||
cg
|
||||
cl
|
||||
cq
|
||||
bM
|
||||
cw
|
||||
bL
|
||||
cI
|
||||
ah
|
||||
ah
|
||||
@@ -1322,8 +1633,7 @@ ah
|
||||
(8,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
ah
|
||||
ah
|
||||
ae
|
||||
as
|
||||
aE
|
||||
aQ
|
||||
@@ -1331,12 +1641,13 @@ ba
|
||||
bn
|
||||
bz
|
||||
ak
|
||||
cb
|
||||
df
|
||||
bX
|
||||
dh
|
||||
bO
|
||||
dq
|
||||
bZ
|
||||
ch
|
||||
cm
|
||||
cr
|
||||
bY
|
||||
bM
|
||||
cJ
|
||||
ah
|
||||
ah
|
||||
@@ -1345,7 +1656,6 @@ ah
|
||||
aa
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
as
|
||||
ak
|
||||
as
|
||||
@@ -1353,14 +1663,15 @@ as
|
||||
as
|
||||
ak
|
||||
ak
|
||||
ca
|
||||
bV
|
||||
cg
|
||||
cb
|
||||
cg
|
||||
cn
|
||||
cs
|
||||
cy
|
||||
cq
|
||||
bM
|
||||
ah
|
||||
bL
|
||||
dr
|
||||
dw
|
||||
dA
|
||||
dD
|
||||
ah
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
@@ -1368,21 +1679,21 @@ aa
|
||||
ai
|
||||
aq
|
||||
at
|
||||
aF
|
||||
cU
|
||||
aR
|
||||
aR
|
||||
bb
|
||||
bo
|
||||
bA
|
||||
bE
|
||||
bO
|
||||
cZ
|
||||
dd
|
||||
cg
|
||||
cb
|
||||
ci
|
||||
bA
|
||||
ct
|
||||
bN
|
||||
bM
|
||||
di
|
||||
dn
|
||||
ds
|
||||
dx
|
||||
cK
|
||||
ah
|
||||
dE
|
||||
ah
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
@@ -1397,14 +1708,14 @@ ak
|
||||
ak
|
||||
bF
|
||||
bE
|
||||
cc
|
||||
bX
|
||||
co
|
||||
bO
|
||||
bM
|
||||
cg
|
||||
ah
|
||||
ah
|
||||
cb
|
||||
bL
|
||||
dh
|
||||
cb
|
||||
dt
|
||||
dy
|
||||
dB
|
||||
dC
|
||||
aa
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
@@ -1416,16 +1727,16 @@ ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
cU
|
||||
ak
|
||||
ak
|
||||
bP
|
||||
bL
|
||||
bX
|
||||
bM
|
||||
bY
|
||||
bM
|
||||
ah
|
||||
ah
|
||||
dh
|
||||
do
|
||||
du
|
||||
dz
|
||||
dC
|
||||
ah
|
||||
aa
|
||||
"}
|
||||
@@ -1443,7 +1754,7 @@ ak
|
||||
bQ
|
||||
bM
|
||||
cj
|
||||
bL
|
||||
dj
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -1464,14 +1775,14 @@ ak
|
||||
bG
|
||||
bR
|
||||
cd
|
||||
bM
|
||||
bM
|
||||
cg
|
||||
dk
|
||||
cu
|
||||
ah
|
||||
ah
|
||||
aq
|
||||
ah
|
||||
cO
|
||||
bi
|
||||
bi
|
||||
bi
|
||||
da
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
ac
|
||||
@@ -1486,8 +1797,8 @@ bB
|
||||
bH
|
||||
bS
|
||||
ce
|
||||
bM
|
||||
bN
|
||||
dn
|
||||
dl
|
||||
ak
|
||||
ak
|
||||
as
|
||||
@@ -1508,14 +1819,14 @@ ak
|
||||
bG
|
||||
bT
|
||||
cd
|
||||
bM
|
||||
bY
|
||||
bX
|
||||
dj
|
||||
as
|
||||
cz
|
||||
cD
|
||||
cL
|
||||
as
|
||||
cp
|
||||
ah
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
af
|
||||
@@ -1529,12 +1840,12 @@ bt
|
||||
ak
|
||||
ak
|
||||
bU
|
||||
bM
|
||||
cg
|
||||
ck
|
||||
cb
|
||||
bS
|
||||
cv
|
||||
cA
|
||||
kB
|
||||
cE
|
||||
cM
|
||||
as
|
||||
ah
|
||||
@@ -1551,7 +1862,7 @@ ak
|
||||
ak
|
||||
ak
|
||||
bV
|
||||
bM
|
||||
bX
|
||||
bN
|
||||
ah
|
||||
as
|
||||
@@ -1559,7 +1870,7 @@ cB
|
||||
cF
|
||||
cN
|
||||
ak
|
||||
cP
|
||||
db
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
ag
|
||||
@@ -1599,9 +1910,9 @@ ah
|
||||
ah
|
||||
al
|
||||
ah
|
||||
an
|
||||
ah
|
||||
bC
|
||||
cp
|
||||
ah
|
||||
ah
|
||||
cR
|
||||
"}
|
||||
|
||||
@@ -6,10 +6,7 @@
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/ruin/unpowered)
|
||||
"c" = (
|
||||
/obj/item/weapon/paper{
|
||||
desc = "have not gotten around to finishing my cursed item yet sorry - sloth";
|
||||
name = "note from sloth"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/stations/lavaland/sloth/note,
|
||||
/turf/open/floor/sepia{
|
||||
blocks_air = 0;
|
||||
slowdown = 10
|
||||
|
||||
@@ -70,7 +70,6 @@
|
||||
"ak" = (
|
||||
/obj/structure/dresser,
|
||||
/obj/structure/mirror{
|
||||
desc = "Mirror mirror on the wall, who is the most robust of them all?";
|
||||
pixel_x = -26
|
||||
},
|
||||
/turf/open/floor/plasteel/vault,
|
||||
@@ -298,7 +297,6 @@
|
||||
"aP" = (
|
||||
/obj/structure/dresser,
|
||||
/obj/structure/mirror{
|
||||
desc = "Mirror mirror on the wall, who is the most robust of them all?";
|
||||
pixel_x = 26
|
||||
},
|
||||
/turf/open/floor/plasteel/vault{
|
||||
@@ -312,9 +310,7 @@
|
||||
},
|
||||
/area/ruin/powered/syndicate_lava_base)
|
||||
"aR" = (
|
||||
/obj/structure/closet/emcloset{
|
||||
anchored = 1
|
||||
},
|
||||
/obj/structure/closet/emcloset/anchored,
|
||||
/obj/item/weapon/tank/internals/emergency_oxygen/engi,
|
||||
/obj/item/device/flashlight/seclite,
|
||||
/obj/item/clothing/mask/gas,
|
||||
@@ -372,7 +368,6 @@
|
||||
/area/ruin/powered/syndicate_lava_base)
|
||||
"aX" = (
|
||||
/obj/structure/mirror{
|
||||
desc = "Mirror mirror on the wall, who is the most robust of them all?";
|
||||
pixel_x = 28
|
||||
},
|
||||
/obj/structure/sink{
|
||||
@@ -394,9 +389,7 @@
|
||||
},
|
||||
/area/ruin/powered/syndicate_lava_base)
|
||||
"ba" = (
|
||||
/obj/structure/closet/emcloset{
|
||||
anchored = 1
|
||||
},
|
||||
/obj/structure/closet/emcloset/anchored,
|
||||
/obj/item/weapon/tank/internals/emergency_oxygen/engi,
|
||||
/obj/item/device/flashlight/seclite,
|
||||
/obj/item/clothing/mask/gas,
|
||||
@@ -555,8 +548,7 @@
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/device/healthanalyzer,
|
||||
/obj/item/stack/sheet/mineral/plasma{
|
||||
amount = 5;
|
||||
layer = 3.1
|
||||
amount = 5
|
||||
},
|
||||
/turf/open/floor/plasteel/podhatch,
|
||||
/area/ruin/powered/syndicate_lava_base)
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
/area/ruin/unpowered)
|
||||
"w" = (
|
||||
/obj/item/weapon/retractor/alien,
|
||||
/obj/item/weapon/paper/abductor,
|
||||
/obj/item/weapon/paper/guides/antag/abductor,
|
||||
/turf/open/floor/plating/abductor{
|
||||
initial_gas_mix = "o2=16;n2=23;TEMP=300"
|
||||
},
|
||||
|
||||
@@ -249,7 +249,7 @@
|
||||
/area/djstation)
|
||||
"aR" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/djstation,
|
||||
/obj/item/weapon/paper/fluff/ruins/djstation,
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/djstation)
|
||||
"aS" = (
|
||||
|
||||
@@ -1212,10 +1212,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper{
|
||||
info = "If the equipment breaks there should be enough spare parts in our engineering storage near the north east solar array.";
|
||||
name = "Equipment Inventory"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/thederelict/equipment,
|
||||
/turf/open/floor/plasteel/airless,
|
||||
/area/derelict/gravity_generator)
|
||||
"dt" = (
|
||||
@@ -1509,8 +1506,7 @@
|
||||
/area/derelict/singularity_engine)
|
||||
"en" = (
|
||||
/obj/machinery/power/emitter{
|
||||
dir = 1;
|
||||
icon_state = "emitter"
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/derelict/singularity_engine)
|
||||
@@ -1683,10 +1679,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/derelict/bridge)
|
||||
"eN" = (
|
||||
/obj/item/weapon/paper{
|
||||
info = "<b>Objective #1</b>: Destroy the station with a nuclear device.";
|
||||
name = "Objectives of a Nuclear Operative"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/thederelict/nukie_objectives,
|
||||
/turf/open/floor/plasteel/airless{
|
||||
icon_state = "damaged2"
|
||||
},
|
||||
@@ -3745,11 +3738,11 @@
|
||||
"kS" = (
|
||||
/obj/machinery/door/window,
|
||||
/turf/open/floor/plasteel/airless,
|
||||
/area/hallway/primary/port)
|
||||
/area/derelict/hallway/primary/port)
|
||||
"kT" = (
|
||||
/obj/machinery/vending/hydroseeds,
|
||||
/turf/open/floor/plasteel/airless,
|
||||
/area/hallway/primary/port)
|
||||
/area/derelict/hallway/primary/port)
|
||||
"kU" = (
|
||||
/obj/item/weapon/cigbutt,
|
||||
/turf/template_noop,
|
||||
@@ -4785,11 +4778,7 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/derelict/se_solar)
|
||||
"oa" = (
|
||||
/obj/item/weapon/paper{
|
||||
desc = "";
|
||||
info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features. <br><br><b>Objective #1</b>. Kill the God damn AI in a fire blast that it rocks the station. <b>Success!</b> <br><b>Objective #2</b>. Escape alive. <b>Failed.</b>";
|
||||
name = "Mission Objectives"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/thederelict/syndie_mission,
|
||||
/turf/open/floor/plasteel/airless{
|
||||
icon_state = "damaged2"
|
||||
},
|
||||
|
||||
@@ -49,9 +49,7 @@
|
||||
brute_damage = 120;
|
||||
oxy_damage = 75
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Extraction was successful! The disguise was perfect, the clowns never knew what hit 'em! Once I get back to base with the bananium samples I'll be rich, I tell you! RICH!"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/asteroid4/extraction,
|
||||
/obj/item/stack/sheet/mineral/bananium{
|
||||
amount = 15
|
||||
},
|
||||
|
||||
@@ -259,7 +259,7 @@
|
||||
name = "critter crate - mr.tiggles";
|
||||
opened = 1
|
||||
},
|
||||
/obj/item/weapon/paper/crumpled/snowdin{
|
||||
/obj/item/weapon/paper/crumpled/ruins/snowdin{
|
||||
info = "<i>A crumpled piece of manifest paper, out of the barely legible pen writing, you can see something about a warning involving whatever was originally in the crate.</i>"
|
||||
},
|
||||
/obj/structure/alien/weeds{
|
||||
@@ -455,7 +455,7 @@
|
||||
name = "Tradeport Officer";
|
||||
random = 1
|
||||
},
|
||||
/obj/item/weapon/paper/crumpled/snowdin{
|
||||
/obj/item/weapon/paper/crumpled/ruins/snowdin{
|
||||
icon_state = "scrap_bloodied";
|
||||
info = "If anyone finds this, please, don't let my kids know I died a coward.."
|
||||
},
|
||||
|
||||
@@ -103,9 +103,7 @@
|
||||
/turf/open/floor/mineral/bananium/airless,
|
||||
/area/ruin/unpowered)
|
||||
"s" = (
|
||||
/obj/item/weapon/paper{
|
||||
info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/crashedclownship/true_nation,
|
||||
/turf/open/floor/mineral/bananium/airless,
|
||||
/area/ruin/unpowered)
|
||||
"t" = (
|
||||
|
||||
@@ -653,10 +653,7 @@
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/screwdriver,
|
||||
/obj/item/weapon/screwdriver,
|
||||
/obj/item/weapon/paper{
|
||||
info = "The next person who takes one of my screwdrivers gets stabbed with one. They are MINE. - Love, Madsen";
|
||||
name = "scribbled note"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/crashedship/scribbled,
|
||||
/obj/item/weapon/screwdriver,
|
||||
/turf/open/floor/plasteel/bar,
|
||||
/area/awaymission/BMPship/Midship)
|
||||
@@ -954,10 +951,7 @@
|
||||
/area/awaymission/BMPship/Aft)
|
||||
"cY" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper{
|
||||
info = "I'm no scientist, but judging from the design and components, it seems to be some kind of teleporter. This thing is gonna be worth a lot of cash to the right man. The boys are excited, as they have every right to be, and I've let them crack into that case of beer we got. I normally wouldn't allow such a thing, but this is a time for celebration! It's not like a couple drinks will hurt anything.";
|
||||
name = "Captain's log entry"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/crashedship/captains_log,
|
||||
/turf/open/floor/carpet,
|
||||
/area/awaymission/BMPship/Fore)
|
||||
"cZ" = (
|
||||
@@ -2167,10 +2161,7 @@
|
||||
/area/awaymission/BMPship/Aft)
|
||||
"gh" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper{
|
||||
info = "DEAR DAIRY: So we was doing our typpical route when the captain says we've been picking up weird signals on some backwatter planet. Madsen wanted to stay on course but he ain't the captain, so we went out of the way to check it out. There was lots of rocks on the way, but we got to the planet fine. Found a big fancy camp with nobody around and this big metal donut thing with NT stamps all over it right in the middle. Case of beer too. Captain reckons we can pass it off to some buyer in the Syndicate. Ingram says it's bad luck and that someone is going to come look for it but it sounds like better money than selling bad meat to jerky companies.";
|
||||
name = "Old Diary"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/crashedship/old_diary,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/BMPship/Aft)
|
||||
"gi" = (
|
||||
|
||||
@@ -1129,18 +1129,9 @@
|
||||
/obj/structure/noticeboard{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "To whoever keeps it up with the long, hot showers: you're going on the next ice-mining trip. If you feel the need to use up all the damn water during your 'relaxation' time, you sure as hell are gonna work for all that water!";
|
||||
name = "water concerns"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Hydroponics is our life and blood here, if it dies then so do we. Keep the damn plants watered!";
|
||||
name = "hydroponics notice"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Please make sure to throw all excess waste into the crusher in the back! It's amazing what you can get out of what others consider 'garbage' if you run it through a giant crusher enough times.";
|
||||
name = "recycling notice"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/deepstorage/water_concern,
|
||||
/obj/item/weapon/paper/fluff/ruins/deepstorage/hydro_notice,
|
||||
/obj/item/weapon/paper/fluff/ruins/deepstorage/recycling_notice,
|
||||
/turf/open/floor/plasteel/floorgrime{
|
||||
baseturf = /turf/open/floor/plating/asteroid/airless
|
||||
},
|
||||
@@ -1152,6 +1143,9 @@
|
||||
/obj/structure/sign/barsign{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/bar{
|
||||
baseturf = /turf/open/floor/plating/asteroid/airless
|
||||
},
|
||||
|
||||
@@ -69,10 +69,7 @@
|
||||
/area/awaymission/listeningpost)
|
||||
"o" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Nothing of interest to report.";
|
||||
name = "november report"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/november,
|
||||
/obj/item/weapon/pen,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/listeningpost)
|
||||
@@ -98,10 +95,7 @@
|
||||
"r" = (
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/structure/safe/floor,
|
||||
/obj/item/weapon/paper{
|
||||
info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451";
|
||||
name = "odd report"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/odd_report,
|
||||
/obj/item/weapon/gun/ballistic/automatic/pistol,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/listeningpost)
|
||||
@@ -156,46 +150,19 @@
|
||||
/area/awaymission/listeningpost)
|
||||
"B" = (
|
||||
/obj/structure/filingcabinet,
|
||||
/obj/item/weapon/paper{
|
||||
info = "A good start to the operation: intercepted Nanotrasen military communications. A convoy is scheduled to transfer nuclear warheads to a new military base. This is as good a chance as any to get our hands on some heavy weaponry, I suggest we take it.";
|
||||
name = "april report"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Nothing of real interest to report this month. I have intercepted faint transmissions from what appears to be some sort of pirate radio station. They do not appear to be relevant to my assignment.";
|
||||
name = "may report"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Nanotrasen communications have been noticably less frequent recently. The pirate radio station I found last month has been transmitting pro-Nanotrasen propaganda. I will continue to monitor it.";
|
||||
name = "june report"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Nothing of interest to report.";
|
||||
name = "july report"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Nothing of interest to report.";
|
||||
name = "august report"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Nothing of interest to report.";
|
||||
name = "september report"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Nothing of interest to report.";
|
||||
name = "october report"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "1 x Stechtkin pistol - $600<br>1 x silencer - $200<br>shipping charge - $4360<br>total - $5160";
|
||||
name = "receipt"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/april,
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/may,
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/june,
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/july,
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/august,
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/september,
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/october,
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/receipt,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/listeningpost)
|
||||
"C" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper{
|
||||
info = "<b>Mission Details</b>: You have been assigned to a newly constructed listening post constructed within an asteroid in Nanotrasen space to monitor their plasma mining operations. Accurate intel is crucial to the success of our operatives onboard, do not fail us.";
|
||||
name = "mission briefing"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/listeningstation/briefing,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/listeningpost)
|
||||
"D" = (
|
||||
|
||||
@@ -99,6 +99,7 @@
|
||||
"ap" = (
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/decal/cleanable/robot_debris,
|
||||
/mob/living/simple_animal/hostile/hivebot,
|
||||
/turf/open/floor/plasteel/black,
|
||||
/area/ruin/ancientstation/hivebot)
|
||||
"aq" = (
|
||||
@@ -135,7 +136,7 @@
|
||||
desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages.";
|
||||
name = "Broken Computer"
|
||||
},
|
||||
/obj/item/weapon/paper/oldstat/damagereport,
|
||||
/obj/item/weapon/paper/fluff/ruins/oldstation/damagereport,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/comm)
|
||||
"aw" = (
|
||||
@@ -144,7 +145,7 @@
|
||||
desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages.";
|
||||
name = "Broken Computer"
|
||||
},
|
||||
/obj/item/weapon/paper/oldstat/report,
|
||||
/obj/item/weapon/paper/fluff/ruins/oldstation/report,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/comm)
|
||||
"ax" = (
|
||||
@@ -169,11 +170,11 @@
|
||||
/area/template_noop)
|
||||
"aB" = (
|
||||
/obj/effect/decal/cleanable/robot_debris,
|
||||
/mob/living/simple_animal/hostile/hivebot/rapid,
|
||||
/mob/living/simple_animal/hostile/hivebot,
|
||||
/turf/open/floor/plasteel/black,
|
||||
/area/ruin/ancientstation/hivebot)
|
||||
"aC" = (
|
||||
/mob/living/simple_animal/hostile/hivebot/rapid,
|
||||
/mob/living/simple_animal/hostile/hivebot/range,
|
||||
/turf/open/floor/plasteel/black,
|
||||
/area/ruin/ancientstation/hivebot)
|
||||
"aD" = (
|
||||
@@ -691,7 +692,7 @@
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"cc" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/mob/living/simple_animal/hostile/hivebot/strong,
|
||||
/mob/living/simple_animal/hostile/hivebot,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"cd" = (
|
||||
@@ -878,6 +879,7 @@
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/mob/living/simple_animal/hostile/hivebot/strong,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"cA" = (
|
||||
@@ -908,7 +910,7 @@
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/mob/living/simple_animal/hostile/hivebot/rapid,
|
||||
/mob/living/simple_animal/hostile/hivebot/range,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"cD" = (
|
||||
@@ -1079,6 +1081,7 @@
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/mob/living/simple_animal/hostile/hivebot,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"cZ" = (
|
||||
@@ -1087,6 +1090,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 6
|
||||
},
|
||||
/mob/living/simple_animal/hostile/hivebot,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"da" = (
|
||||
@@ -1119,7 +1123,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/mob/living/simple_animal/hostile/hivebot/rapid,
|
||||
/mob/living/simple_animal/hostile/hivebot/range,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"de" = (
|
||||
@@ -1135,6 +1139,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 10
|
||||
},
|
||||
/mob/living/simple_animal/hostile/hivebot/strong,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"dg" = (
|
||||
@@ -1532,6 +1537,7 @@
|
||||
req_access = "0";
|
||||
req_one_access = "0"
|
||||
},
|
||||
/mob/living/simple_animal/hostile/hivebot,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"ef" = (
|
||||
@@ -1868,6 +1874,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/mob/living/simple_animal/hostile/hivebot,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"eX" = (
|
||||
@@ -2234,7 +2241,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/mob/living/simple_animal/hostile/hivebot/strong,
|
||||
/mob/living/simple_animal/hostile/hivebot,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"fS" = (
|
||||
@@ -3494,7 +3501,7 @@
|
||||
/obj/machinery/power/solar_control{
|
||||
name = "Station Solar Control Computer"
|
||||
},
|
||||
/obj/item/weapon/paper/solar,
|
||||
/obj/item/weapon/paper/guides/jobs/engi/solars,
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plasteel/yellow/side{
|
||||
dir = 10
|
||||
@@ -4115,7 +4122,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/mob/living/simple_animal/hostile/hivebot/rapid,
|
||||
/mob/living/simple_animal/hostile/hivebot,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"ju" = (
|
||||
@@ -4139,6 +4146,7 @@
|
||||
"jw" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
|
||||
/mob/living/simple_animal/hostile/hivebot,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"jx" = (
|
||||
@@ -4534,7 +4542,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/paper/oldstat/protosuit,
|
||||
/obj/item/weapon/paper/fluff/ruins/oldstation/protosuit,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/ruin/ancientstation/proto)
|
||||
"ku" = (
|
||||
@@ -4579,7 +4587,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/paper/oldstat/protosing,
|
||||
/obj/item/weapon/paper/fluff/ruins/oldstation/protosing,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/ruin/ancientstation/proto)
|
||||
"kA" = (
|
||||
@@ -4716,7 +4724,7 @@
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/weapon/paper/oldstat,
|
||||
/obj/item/weapon/paper/fluff/ruins/oldstation,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation)
|
||||
"kR" = (
|
||||
@@ -4724,7 +4732,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/paper/oldstat/protohealth,
|
||||
/obj/item/weapon/paper/fluff/ruins/oldstation/protohealth,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/ruin/ancientstation/proto)
|
||||
"kS" = (
|
||||
@@ -4742,7 +4750,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/weapon/paper/oldstat/protoinv,
|
||||
/obj/item/weapon/paper/fluff/ruins/oldstation/protoinv,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/ruin/ancientstation/proto)
|
||||
"kU" = (
|
||||
@@ -4750,7 +4758,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/paper/oldstat/protogun,
|
||||
/obj/item/weapon/paper/fluff/ruins/oldstation/protogun,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/ruin/ancientstation/proto)
|
||||
"kV" = (
|
||||
@@ -5152,31 +5160,6 @@
|
||||
icon_state = "floor"
|
||||
},
|
||||
/area/template_noop)
|
||||
"me" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/mob/living/simple_animal/hostile/hivebot/rapid,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"mf" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/mob/living/simple_animal/hostile/hivebot/rapid,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"mg" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/mob/living/simple_animal/hostile/hivebot/rapid,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
"mh" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/mob/living/simple_animal/hostile/hivebot/strong,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/ruin/ancientstation/deltacorridor)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
@@ -8275,7 +8258,7 @@ ey
|
||||
hC
|
||||
ey
|
||||
ey
|
||||
dW
|
||||
iC
|
||||
dw
|
||||
ey
|
||||
ey
|
||||
@@ -8317,17 +8300,17 @@ bD
|
||||
cA
|
||||
cZ
|
||||
dx
|
||||
me
|
||||
dX
|
||||
hD
|
||||
dX
|
||||
dX
|
||||
eX
|
||||
dX
|
||||
fS
|
||||
gL
|
||||
dX
|
||||
hD
|
||||
mg
|
||||
dX
|
||||
dX
|
||||
fS
|
||||
dx
|
||||
dX
|
||||
dB
|
||||
@@ -8408,18 +8391,18 @@ aa
|
||||
ac
|
||||
ad
|
||||
ae
|
||||
ah
|
||||
aD
|
||||
af
|
||||
af
|
||||
ag
|
||||
aB
|
||||
aE
|
||||
ah
|
||||
ai
|
||||
ao
|
||||
af
|
||||
bo
|
||||
ad
|
||||
ac
|
||||
bD
|
||||
cD
|
||||
dc
|
||||
cC
|
||||
db
|
||||
dy
|
||||
dY
|
||||
ez
|
||||
@@ -8434,8 +8417,8 @@ in
|
||||
iD
|
||||
iP
|
||||
dy
|
||||
dc
|
||||
cD
|
||||
jt
|
||||
jK
|
||||
jV
|
||||
kd
|
||||
kt
|
||||
@@ -8459,14 +8442,14 @@ aa
|
||||
aa
|
||||
ac
|
||||
ad
|
||||
ah
|
||||
aq
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
af
|
||||
ao
|
||||
af
|
||||
ah
|
||||
ah
|
||||
af
|
||||
af
|
||||
af
|
||||
ad
|
||||
bE
|
||||
bD
|
||||
@@ -8522,7 +8505,7 @@ ad
|
||||
ad
|
||||
bG
|
||||
bF
|
||||
cD
|
||||
cC
|
||||
dd
|
||||
dy
|
||||
dZ
|
||||
@@ -8563,14 +8546,14 @@ aa
|
||||
ac
|
||||
ac
|
||||
ad
|
||||
ah
|
||||
af
|
||||
ap
|
||||
af
|
||||
aq
|
||||
ah
|
||||
aq
|
||||
aD
|
||||
ag
|
||||
aq
|
||||
ai
|
||||
be
|
||||
aB
|
||||
aN
|
||||
bG
|
||||
lx
|
||||
@@ -8590,7 +8573,7 @@ ip
|
||||
iF
|
||||
eb
|
||||
dy
|
||||
dc
|
||||
db
|
||||
cC
|
||||
jV
|
||||
kg
|
||||
@@ -8615,24 +8598,24 @@ aa
|
||||
ac
|
||||
ac
|
||||
ad
|
||||
ah
|
||||
ah
|
||||
af
|
||||
af
|
||||
aB
|
||||
ah
|
||||
ai
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
aC
|
||||
af
|
||||
aN
|
||||
bG
|
||||
lx
|
||||
ca
|
||||
dc
|
||||
cF
|
||||
db
|
||||
dz
|
||||
eb
|
||||
eb
|
||||
eb
|
||||
eb
|
||||
fw
|
||||
eb
|
||||
gO
|
||||
eb
|
||||
@@ -8678,7 +8661,7 @@ ad
|
||||
ad
|
||||
bG
|
||||
bF
|
||||
dg
|
||||
ca
|
||||
dc
|
||||
dA
|
||||
eb
|
||||
@@ -8695,7 +8678,7 @@ lT
|
||||
hi
|
||||
jd
|
||||
jw
|
||||
dX
|
||||
fS
|
||||
jX
|
||||
ki
|
||||
ki
|
||||
@@ -8720,20 +8703,20 @@ ac
|
||||
ac
|
||||
ad
|
||||
ag
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
af
|
||||
af
|
||||
af
|
||||
af
|
||||
af
|
||||
af
|
||||
ah
|
||||
ad
|
||||
bE
|
||||
bD
|
||||
ca
|
||||
dc
|
||||
cF
|
||||
db
|
||||
dy
|
||||
dY
|
||||
ec
|
||||
dZ
|
||||
dZ
|
||||
eC
|
||||
@@ -8746,7 +8729,7 @@ is
|
||||
dy
|
||||
dy
|
||||
dy
|
||||
mh
|
||||
dc
|
||||
ca
|
||||
jV
|
||||
kj
|
||||
@@ -8772,12 +8755,12 @@ ac
|
||||
ac
|
||||
ad
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ai
|
||||
ah
|
||||
af
|
||||
af
|
||||
aB
|
||||
af
|
||||
ag
|
||||
ah
|
||||
af
|
||||
ah
|
||||
ad
|
||||
ac
|
||||
@@ -8798,8 +8781,8 @@ eb
|
||||
lM
|
||||
iQ
|
||||
dy
|
||||
jv
|
||||
ca
|
||||
jx
|
||||
ed
|
||||
jV
|
||||
kk
|
||||
kx
|
||||
@@ -8824,12 +8807,12 @@ ac
|
||||
ac
|
||||
ad
|
||||
ai
|
||||
af
|
||||
ah
|
||||
aD
|
||||
ag
|
||||
aC
|
||||
ah
|
||||
aD
|
||||
ah
|
||||
af
|
||||
aq
|
||||
ad
|
||||
ac
|
||||
@@ -8877,17 +8860,17 @@ ac
|
||||
ad
|
||||
ah
|
||||
ag
|
||||
ah
|
||||
ah
|
||||
aC
|
||||
ah
|
||||
aC
|
||||
aC
|
||||
aC
|
||||
ag
|
||||
ah
|
||||
ad
|
||||
ac
|
||||
bD
|
||||
ca
|
||||
dc
|
||||
cF
|
||||
db
|
||||
dy
|
||||
ea
|
||||
eF
|
||||
@@ -8903,7 +8886,7 @@ iG
|
||||
iS
|
||||
dy
|
||||
jt
|
||||
ca
|
||||
ed
|
||||
jV
|
||||
kl
|
||||
kz
|
||||
@@ -8930,8 +8913,8 @@ ad
|
||||
ah
|
||||
ai
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
aD
|
||||
aD
|
||||
ah
|
||||
ai
|
||||
ah
|
||||
@@ -8981,10 +8964,10 @@ ac
|
||||
ad
|
||||
ag
|
||||
aq
|
||||
aD
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
aD
|
||||
aq
|
||||
ah
|
||||
ad
|
||||
@@ -8993,17 +8976,17 @@ bD
|
||||
ca
|
||||
df
|
||||
dB
|
||||
ed
|
||||
ca
|
||||
eY
|
||||
ca
|
||||
ed
|
||||
ca
|
||||
ed
|
||||
hI
|
||||
mf
|
||||
ca
|
||||
ca
|
||||
dg
|
||||
hI
|
||||
ca
|
||||
ca
|
||||
ed
|
||||
ca
|
||||
ed
|
||||
ca
|
||||
je
|
||||
jy
|
||||
@@ -9043,17 +9026,17 @@ ad
|
||||
ac
|
||||
bD
|
||||
cH
|
||||
ca
|
||||
dg
|
||||
dC
|
||||
ee
|
||||
ca
|
||||
hI
|
||||
eY
|
||||
cX
|
||||
ed
|
||||
ca
|
||||
ca
|
||||
ca
|
||||
ed
|
||||
hJ
|
||||
ca
|
||||
ed
|
||||
ca
|
||||
ee
|
||||
cX
|
||||
@@ -9085,10 +9068,10 @@ ac
|
||||
ad
|
||||
aj
|
||||
ai
|
||||
aq
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
aE
|
||||
aD
|
||||
aD
|
||||
aD
|
||||
ah
|
||||
bp
|
||||
ad
|
||||
@@ -9137,17 +9120,17 @@ ac
|
||||
ac
|
||||
ad
|
||||
ag
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
aD
|
||||
aD
|
||||
aD
|
||||
aD
|
||||
aq
|
||||
ad
|
||||
ac
|
||||
bD
|
||||
dh
|
||||
cc
|
||||
dh
|
||||
cc
|
||||
cc
|
||||
bD
|
||||
aa
|
||||
bD
|
||||
@@ -9161,9 +9144,9 @@ hK
|
||||
bD
|
||||
aa
|
||||
bD
|
||||
dh
|
||||
cc
|
||||
dh
|
||||
cc
|
||||
cc
|
||||
bD
|
||||
aa
|
||||
aa
|
||||
|
||||
@@ -106,9 +106,7 @@
|
||||
/turf/open/indestructible/paper,
|
||||
/area/ruin/powered)
|
||||
"as" = (
|
||||
/obj/item/weapon/paper/crumpled{
|
||||
desc = "<i>Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings.</i>"
|
||||
},
|
||||
/obj/item/weapon/paper/crumpled/ruins/originalcontent,
|
||||
/turf/open/indestructible/paper,
|
||||
/area/ruin/powered)
|
||||
"at" = (
|
||||
@@ -598,15 +596,9 @@
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/closet/crate/bin,
|
||||
/obj/item/weapon/paper/crumpled{
|
||||
desc = "<i>Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings.</i>"
|
||||
},
|
||||
/obj/item/weapon/paper/crumpled{
|
||||
desc = "<i>Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings.</i>"
|
||||
},
|
||||
/obj/item/weapon/paper/crumpled{
|
||||
desc = "<i>Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings.</i>"
|
||||
},
|
||||
/obj/item/weapon/paper/crumpled/ruins/originalcontent,
|
||||
/obj/item/weapon/paper/crumpled/ruins/originalcontent,
|
||||
/obj/item/weapon/paper/crumpled/ruins/originalcontent,
|
||||
/obj/item/device/gps{
|
||||
gpstag = "Pulpy Signal"
|
||||
},
|
||||
@@ -802,9 +794,7 @@
|
||||
/area/ruin/powered)
|
||||
"ch" = (
|
||||
/obj/structure/fluff/paper,
|
||||
/obj/item/weapon/paper/crumpled{
|
||||
desc = "<i>Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings.</i>"
|
||||
},
|
||||
/obj/item/weapon/paper/crumpled/ruins/originalcontent,
|
||||
/turf/open/indestructible/paper,
|
||||
/area/ruin/powered)
|
||||
"ci" = (
|
||||
|
||||
@@ -2585,10 +2585,7 @@
|
||||
/obj/structure/noticeboard{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "<bold>!NOTICE!</bold><br><br><center>We are expecting arriving guests soon from a nearby station! Stay sharp and make sure guests enjoy their time spent here. Don't think you can sneak off while they're here, either.</center>";
|
||||
name = "!NOTICE!"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/ruins/spacehotel/notice,
|
||||
/turf/open/floor/plasteel/black,
|
||||
/area/ruin/hotel/workroom)
|
||||
"gJ" = (
|
||||
@@ -2705,26 +2702,11 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/weapon/paper/pamphlet{
|
||||
info = "<center><b>The Twin Nexus Hotel</center></b><br><center><i>A place of Sanctuary</i></center><br><br><center>Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.</center>";
|
||||
name = "hotel pamphlet"
|
||||
},
|
||||
/obj/item/weapon/paper/pamphlet{
|
||||
info = "<center><b>The Twin Nexus Hotel</center></b><br><center><i>A place of Sanctuary</i></center><br><br><center>Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.</center>";
|
||||
name = "hotel pamphlet"
|
||||
},
|
||||
/obj/item/weapon/paper/pamphlet{
|
||||
info = "<center><b>The Twin Nexus Hotel</center></b><br><center><i>A place of Sanctuary</i></center><br><br><center>Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.</center>";
|
||||
name = "hotel pamphlet"
|
||||
},
|
||||
/obj/item/weapon/paper/pamphlet{
|
||||
info = "<center><b>The Twin Nexus Hotel</center></b><br><center><i>A place of Sanctuary</i></center><br><br><center>Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.</center>";
|
||||
name = "hotel pamphlet"
|
||||
},
|
||||
/obj/item/weapon/paper/pamphlet{
|
||||
info = "<center><b>The Twin Nexus Hotel</center></b><br><center><i>A place of Sanctuary</i></center><br><br><center>Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.</center>";
|
||||
name = "hotel pamphlet"
|
||||
},
|
||||
/obj/item/weapon/paper/pamphlet/ruin/spacehotel,
|
||||
/obj/item/weapon/paper/pamphlet/ruin/spacehotel,
|
||||
/obj/item/weapon/paper/pamphlet/ruin/spacehotel,
|
||||
/obj/item/weapon/paper/pamphlet/ruin/spacehotel,
|
||||
/obj/item/weapon/paper/pamphlet/ruin/spacehotel,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/hotel/dock)
|
||||
"hd" = (
|
||||
|
||||
@@ -108,10 +108,7 @@
|
||||
/area/awaymission/academy/headmaster)
|
||||
"ar" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/paper{
|
||||
info = "We're upgrading to the latest mainframes for our consoles, the shipment should be in before spring break is over!";
|
||||
name = "Console Maintenance"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/academy/console_maint,
|
||||
/turf/open/floor/carpet,
|
||||
/area/awaymission/academy/headmaster)
|
||||
"as" = (
|
||||
@@ -1287,9 +1284,7 @@
|
||||
/obj/structure/noticeboard{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
name = "Automotive Repair 101"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/academy/class/automotive,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/awaymission/academy/classrooms)
|
||||
"eh" = (
|
||||
@@ -1302,9 +1297,7 @@
|
||||
/obj/structure/noticeboard{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
name = "Pyromancy 250"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/academy/class/pyromancy,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/awaymission/academy/classrooms)
|
||||
"ej" = (
|
||||
@@ -1779,9 +1772,7 @@
|
||||
/obj/structure/noticeboard{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
name = "Biology Lab"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/academy/class/biology,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/awaymission/academy/classrooms)
|
||||
"fz" = (
|
||||
@@ -2205,10 +2196,7 @@
|
||||
/area/awaymission/academy/academyaft)
|
||||
"gH" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Grade: A+ Educator's Notes: Excellent form.";
|
||||
name = "Summoning Midterm Exam"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/academy/grade/aplus,
|
||||
/obj/item/weapon/gun/ballistic/shotgun/automatic/combat,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 5
|
||||
@@ -2217,10 +2205,7 @@
|
||||
"gI" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/gun/ballistic/revolver/russian,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Grade: B- Educator's Notes: Keep applying yourself, you're showing improvement.";
|
||||
name = "Summoning Midterm Exam"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/academy/grade/bminus,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 5
|
||||
},
|
||||
@@ -2319,10 +2304,7 @@
|
||||
"gW" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/gun/energy/floragun,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Grade: D- Educator's Notes: SEE ME AFTER CLASS.";
|
||||
name = "Summoning Midterm Exam"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/academy/grade/dminus,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 5
|
||||
},
|
||||
@@ -2772,10 +2754,7 @@
|
||||
/obj/structure/closet,
|
||||
/obj/item/weapon/storage/box/snappops,
|
||||
/obj/item/weapon/storage/backpack,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Current Grade: F. Educator's Notes: No improvement shown despite multiple private lessons. Suggest additional tutilage.";
|
||||
name = "Pyromancy Evaluation"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/academy/grade/failure,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/academy/academyaft)
|
||||
"id" = (
|
||||
|
||||
@@ -250,7 +250,7 @@
|
||||
/area/awaymission/cabin)
|
||||
"aQ" = (
|
||||
/obj/machinery/door/airlock/wood{
|
||||
name = "maintence"
|
||||
name = "maintenance"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/cabin)
|
||||
|
||||
@@ -942,9 +942,7 @@
|
||||
})
|
||||
"bX" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/crumpled{
|
||||
info = "<center><b>WARNING</center></b><br><br><center>Majority of this area is consitered 'unsafe' past this point. Theres an outpost directly south of here where you can get your bearing and travel further down if needed. Traveling in groups is HIGHLY advised, the shit out there can be extremely deadly if you're alone.</center>"
|
||||
},
|
||||
/obj/item/weapon/paper/crumpled/awaymissions/caves/unsafe_area,
|
||||
/turf/open/floor/plating/asteroid/basalt{
|
||||
initial_gas_mix = "n2=23;o2=14"
|
||||
},
|
||||
@@ -1091,10 +1089,7 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/filingcabinet,
|
||||
/obj/item/weapon/paper{
|
||||
info = "<b><center>Testing Notes</b></center><br><br><center>Subject appears unresponsive to most interactions, refusing to move away from the corners or face any scientists. Subject appears to move between the two back corners every observation. A strange humming can be heard from inside the cell, appears to be originating from the subject itself, further testing is necessary to confirm or deny this.</center>";
|
||||
name = "Subject Omega Notes"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/caves/omega,
|
||||
/turf/open/floor/plasteel{
|
||||
baseturf = /turf/open/floor/plating/asteroid/basalt;
|
||||
initial_gas_mix = "n2=23;o2=14"
|
||||
@@ -1487,9 +1482,7 @@
|
||||
})
|
||||
"di" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper{
|
||||
info = "<center> Mining is hell down here, you can feel the heat of the magma no matter how thick the suit is. Conditions are barely managble as is, restless nights and horrid work conditions. The ore maybe rich down here, but we've already lost a few men to the faults shifting, god knows how much longer till it all just collapses down and consumes everyone with it.</center>"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/caves/magma,
|
||||
/obj/item/weapon/pen,
|
||||
/obj/effect/decal/cleanable/cobweb,
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -2020,10 +2013,7 @@
|
||||
/area/awaymission/BMPship)
|
||||
"eA" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper{
|
||||
info = "<center><b>Survival Info For Miners</b></center><br><br><center>The caves are an unforgiving place, the only thing you'll have to traverse is the supplies in your locker and your own wit. Travel in packs when mining and try to shut down the monster dens before they overwhelm you. The job is dangerous but the haul is good, so remember this infomation and hopefully we'll all go home alive.</center>";
|
||||
name = "work notice"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/caves/work_notice,
|
||||
/turf/open/floor/plasteel{
|
||||
baseturf = /turf/open/floor/plating/asteroid/basalt
|
||||
},
|
||||
@@ -2196,7 +2186,7 @@
|
||||
/area/awaymission/listeningpost)
|
||||
"eX" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/pamphlet,
|
||||
/obj/item/weapon/paper/pamphlet/gateway,
|
||||
/turf/open/floor/plasteel{
|
||||
baseturf = /turf/open/floor/plating/asteroid/basalt
|
||||
},
|
||||
@@ -2219,14 +2209,8 @@
|
||||
/obj/structure/noticeboard{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "<center>We were suppose to get a shipment of these special laser rifles and a couple 'nades to help combat the wildlife down here, but its been weeks since we last heard from the caravan carrying the shit down here. At this point we can only assume they fell victim to one of the monster nests or the dumbasses managed to trip into the lava. So much for that shipment, I guess.</center>";
|
||||
name = "shipment notice"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "<center>Some of the miners have gone to laying some mine traps among the lower levels of the mine to keep the monsters at bay. This probably isn't the smartest idea in a cavern like this but the boys seem to get a chuckle out of every distant blast they hear go off, so I guess it works </center>";
|
||||
name = "safety notice"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/caves/shipment_notice,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/caves/saftey_notice,
|
||||
/turf/open/floor/plasteel{
|
||||
baseturf = /turf/open/floor/plating/asteroid/basalt
|
||||
},
|
||||
@@ -2241,10 +2225,7 @@
|
||||
})
|
||||
"fc" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/weapon/paper{
|
||||
info = "<center><b>CARAVAN SERVICES</b></center><br><center><i>Quality service since 2205</i></center><br><br><center><b>SHIPMENT CONTENTS:</b></center><br><br>4 scattershot rifles<br>6 grenades<br>1 laser rifle<br>1 blowup doll";
|
||||
name = "Shipment Receipt"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/caves/shipment_receipt,
|
||||
/obj/item/weapon/gun/energy/laser/captain/scattershot,
|
||||
/obj/item/weapon/gun/energy/laser/captain/scattershot,
|
||||
/obj/item/weapon/gun/energy/laser,
|
||||
@@ -2338,10 +2319,7 @@
|
||||
icon_state = "crateopen";
|
||||
opened = 1
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "<center><b>CARAVAN SERVICES</b></center><br><center><i>Quality service since 2205</i></center><br><br><center><b>SHIPMENT CONTENTS:</b></center><br><br>4 scattershot rifles<br>6 grenades<br>1 laser rifle<br>1 blowup doll";
|
||||
name = "Shipment Receipt"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/caves/shipment_receipt,
|
||||
/obj/item/organ/eyes/robotic/thermals,
|
||||
/obj/item/weapon/gun/energy/laser/captain/scattershot,
|
||||
/obj/item/slimepotion/fireproof,
|
||||
@@ -2891,10 +2869,7 @@
|
||||
"gH" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill,
|
||||
/obj/item/weapon/paper{
|
||||
info = "<center><b>NOTICE!!</center></b><br><br><center>Although you may seem indestructible in a mech, remember, THIS SHIT ISN'T LAVA PROOF!! The boys have already had to deal with loosing the last two to salvage because the dumbass thought he could just wade through the lower lakes like it was nothing. The fact he even managed to get back without being fused with what was left of the mech is a miracle in itself. They're built to be resistant against extreme heat, not heat PROOF!</center><br><br><i>Robotics Team</i>";
|
||||
name = "NOTICE!! paper"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/caves/mech_notice,
|
||||
/turf/open/floor/plating{
|
||||
baseturf = /turf/open/floor/plating/asteroid/basalt
|
||||
},
|
||||
|
||||
@@ -1817,7 +1817,7 @@
|
||||
/area/awaymission/centcomAway/courtroom)
|
||||
"fT" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
@@ -1932,7 +1932,7 @@
|
||||
/area/awaymission/centcomAway/courtroom)
|
||||
"gk" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
@@ -1988,7 +1988,7 @@
|
||||
/area/awaymission/centcomAway/general)
|
||||
"gt" = (
|
||||
/obj/machinery/photocopier,
|
||||
/obj/item/weapon/paper/ccaMemo,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/centcom/gateway_memo,
|
||||
/turf/open/floor/plasteel{
|
||||
icon_state = "floor"
|
||||
},
|
||||
@@ -2151,7 +2151,7 @@
|
||||
/area/awaymission/centcomAway/hangar)
|
||||
"gU" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/ccaMemo,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/centcom/gateway_memo,
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/centcomAway/hangar)
|
||||
"gV" = (
|
||||
@@ -3131,7 +3131,7 @@
|
||||
/area/awaymission/centcomAway/general)
|
||||
"jQ" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/turf/open/floor/plasteel{
|
||||
icon_state = "floor"
|
||||
},
|
||||
@@ -3328,7 +3328,7 @@
|
||||
/area/awaymission/centcomAway/hangar)
|
||||
"kq" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 4
|
||||
},
|
||||
@@ -3830,7 +3830,7 @@
|
||||
/area/awaymission/centcomAway/thunderdome)
|
||||
"lO" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
@@ -4170,7 +4170,7 @@
|
||||
/area/awaymission/centcomAway/general)
|
||||
"mP" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
|
||||
@@ -160,17 +160,8 @@
|
||||
/turf/open/floor/plasteel/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
"aI" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 2;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 2
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
@@ -200,17 +191,8 @@
|
||||
/area/awaymission/challenge/main)
|
||||
"aO" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 2;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 2
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
@@ -228,17 +210,8 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/challenge/main)
|
||||
"aS" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 4;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
@@ -261,17 +234,8 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
"aW" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 8;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
@@ -341,17 +305,8 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/challenge/main)
|
||||
"bf" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 1;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
@@ -377,17 +332,8 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/challenge/main)
|
||||
"bi" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 1;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
@@ -402,17 +348,8 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/challenge/main)
|
||||
"bk" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 1;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/plating,
|
||||
@@ -421,17 +358,8 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 1;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
@@ -446,17 +374,8 @@
|
||||
/turf/closed/wall/mineral/plastitanium,
|
||||
/area/awaymission/challenge/main)
|
||||
"bo" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 2;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 2
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
@@ -528,17 +447,8 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/challenge/main)
|
||||
"bx" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 8;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
@@ -578,17 +488,8 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 8;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
@@ -596,17 +497,8 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 4;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
@@ -654,17 +546,8 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
"bL" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 1;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
@@ -672,32 +555,14 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
"bM" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 1;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
"bN" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 1;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
@@ -705,17 +570,8 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/awaymission/challenge/main)
|
||||
"bO" = (
|
||||
/obj/machinery/power/emitter{
|
||||
active = 1;
|
||||
active_power_usage = 0;
|
||||
anchored = 1;
|
||||
dir = 1;
|
||||
idle_power_usage = 0;
|
||||
locked = 1;
|
||||
name = "Energy Cannon";
|
||||
req_access_txt = "100";
|
||||
state = 2;
|
||||
use_power = 0
|
||||
/obj/machinery/power/emitter/ctf{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
@@ -899,10 +755,7 @@
|
||||
/area/awaymission/challenge/end)
|
||||
"cr" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Congratulations,<br><br>Your station has been selected to carry out the Gateway Project.<br><br>The equipment will be shipped to you at the start of the next quarter.<br> You are to prepare a secure location to house the equipment as outlined in the attached documents.<br><br>--Nanotrasen Blue Space Research";
|
||||
name = "Confidential Correspondence, Pg 1"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/gateway,
|
||||
/obj/item/weapon/folder/blue,
|
||||
/turf/open/floor/carpet,
|
||||
/area/awaymission/challenge/end)
|
||||
@@ -1193,7 +1046,7 @@
|
||||
/area/awaymission/challenge/end)
|
||||
"df" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/pamphlet,
|
||||
/obj/item/weapon/paper/pamphlet/gateway,
|
||||
/turf/open/floor/plasteel/black,
|
||||
/area/awaymission/challenge/end)
|
||||
"dg" = (
|
||||
|
||||
@@ -974,10 +974,7 @@
|
||||
pixel_y = 9
|
||||
},
|
||||
/obj/item/weapon/pen,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Log 1:<br>We got our promised supply drop today. We were only meant to get it, what, a week ago? This bloody gateway keeps desyncing itself, and that means subsisting off recycled water and carb packs. No clue where the damn thing connects to on its off days, and HQ say we are 'not to touch it if it isn't linking to command.' We dumped off the assload of crates Jim filled, got our boxes of oxygen, food and drink, and closed the portal.<br><br>Log 2:<br>Damn thing is acting up again. Three days no contact this time. I thought I heard clanking noises from it yesterday. Jim is going on about the NT base or some shit. We've been over this before - They don't know we're here, that engineer was too drunk to recognise his suit, especially since I had it painted orange. He's starting to get annoying. We're safe.<br><br>Log 3:<br>Gateway synced itself up automatically today. I opened it for an instant to spy through it, got a glimpse of the inside of a transport container. Either HQ's redecorating or something, or there's more than two of these things.";
|
||||
name = "Personal Log"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/personal,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 6
|
||||
},
|
||||
@@ -1585,10 +1582,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/item/weapon/stock_parts/cell/high,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Alright, listen up. If you're reading this, I'm either taking a shit or I've been recalled back to Command. Either way, you'll need to know how to restore power. We've stolen this stuff from Nanotrasen, so all the equipment is jury-rigged. We have generators that work on both plasma and uranium, about 50 sheets should power the outpost for quite a while. If the generators aren't working, which is very likely, take the power cell on the desk and put it into the APC in the hallway. That should get the place running, at least for a little while.";
|
||||
name = "Engineering Instructions"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/engineering,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
@@ -2463,10 +2457,7 @@
|
||||
"dq" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/weapon/pen,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Log 1:<br>While mining today I noticed the NT station was finished with its renovations. They placed some huge reinforced tumor on the station, looks so ugly. I wouldn't be surprised if those pigs decided to turn that little astronomy outpost into a prison with that thing, it'd be pretty typical of them.<br><br>Log 2:<br>Really dumb of me but I just waved at an engineer in the outpost, and he waved back. I hope to god he was too dumb or drunk to recognize the suit, because if he isn't then we might have to pull out before they come looking for us.<br><br>Log 3:<br>That huge reinforced tumor in their science section has been making a lot of noise lately. I've been hearing some banging and scratching from the other side and I'm kind of glad now that they reinforced this thing so much. I'll be sleeping with my gun under my pillow from now on.";
|
||||
name = "Personal Log"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/personal_2,
|
||||
/obj/structure/sign/poster/contraband/c20r{
|
||||
pixel_y = -32
|
||||
},
|
||||
@@ -3813,9 +3804,7 @@
|
||||
})
|
||||
"fg" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/stack/sheet/mineral/plasma{
|
||||
layer = 2.9
|
||||
},
|
||||
/obj/item/stack/sheet/mineral/plasma,
|
||||
/obj/machinery/light/small{
|
||||
active_power_usage = 0;
|
||||
dir = 1;
|
||||
@@ -4384,10 +4373,7 @@
|
||||
})
|
||||
"fS" = (
|
||||
/obj/structure/filingcabinet,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Entry One - 27/05/2554:<br>I just arrived, and already I hate my job. I'm stuck on this shithole of an outpost, trying to avoid these damn eggheads running all over the place preparing for god knows what. There's no crimes to stop, no syndies to kill, and I'm not even allowed to beat the fuckin' assistant senseless! They said I was transferred from Space Station 13 for 'good behavior', but this feels more like a punishment than a reward. All I know is that if I don't get some action soon, I'm going to go insane.<br><br>Entry Two - 03/06/2554:<br>Okay, so get this: we got a fuckin' deathsquad coming in today! I thought the day I saw one of them would be the day my employment was 'terminated', if you get my drift. They're escorting some sort of weird alien creature for the eggheads to study. I heard one of the docs telling the chef that this thing killed a whole security force before it was captured. I sure as hell hope that I don't have to fight it.<br><br>Entry Three - 08/06/2554:<br>My first real bit of 'action' today, if you could call it that. Crazy Ivan got in a fight with Kuester today about his Booze-O-Mat. Apparently one of the crewmembers had stolen a couple bottles of booze from the machine after Ivan disabled the ID lock. Tell you the truth, I don't blame the thief. Everyone is going a little stir-crazy in here, and the bartender is being damn stingy with the alcohol. Either way, once they started to pick a fight, I had to take them down. It's a damn shame that we don't have a brig, though. I had to lock Ivan in a fuckin' freezer, for god's sake. Let's hope that we can keep our sanity together, at least for a while.<br><br>Entry Four - 10/06/2554:<br>Jesus fucking Christ riding on a motorbike. These things the scientists are studying are terrifying! Fucking great huge purple bug things as tall as the ceiling, with blades for arms and drooling at the mouth. I don't think my taser will do jack shit against these damn things, but the eggheads say that they're safely contained. If they do, I have a feeling that it's only a matter of time before we're all screwed. These bastards look like walking death.<br><br>Entry Five - 18/06/2554:<br>Finally caught who stole the booze from Kuester. It was that fuckin' loser assistant Steve! He was in the dorms, chugging his worries away. I took one of the bottles back to the barkeep, but no one has to know about this second one. I think I'm gonna enjoy this while watching tomorrow's Thunderdome match.<br><br>Entry Six - 19/06/2554:<br>Oh, great. The chef is still sleeping, so we get Ivan's gruel for breakfast today. I overheard Sano and Douglas saying something about the aliens being restless, so we might get some action today. As long as it happens after the big game, I'm fine with it. I still got one beer to drink before I'm ready to die.";
|
||||
name = "Personal Log - Kenneth Cunningham"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/kenneth,
|
||||
/turf/open/floor/plasteel/red/side{
|
||||
dir = 9;
|
||||
heat_capacity = 1e+006
|
||||
@@ -4824,10 +4810,7 @@
|
||||
})
|
||||
"gx" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Ivan Volodin Stories:<br><br>Entry Won - 28/05/2554:<br>Hello. I am Crazy Ivan. Boss say I must write. I do good job fixing outpost. Is very good job. Much better than mines. Many nice people. I cause no trouble.<br><br>Entry Too - 05/06/2554:<br>I am finding problem with Booze-O-Mat. Is not problem. I solve very easy. Use yellow tool to make purple light go off. I am good engineer! Bartender will be very happy.<br><br>Entry Tree - 08/06/2554:<br>Bartender is not happy. Security man is not happy. Cannot feel legs, is very cold in freezer. Is not good. Table is jammed into door, have no tools. Is very not good. But, on bright side, found meat! Shall chew to keep spirits up.<br><br>Entry Fore - 12/06/2554:<br>Big nasty purple bug looked at me today. Make nervous. Blue wall wire can be broken, then bad thing happens. Very very bad thing. Man in orange spacesuit wave at me today too. He seem nice. Wonder who was?<br><br>Entry Fiv - 15/06/2554:<br>I eat cornflakes today. Is good day. Sun shine for a while. Was nice. I also take ride on disposals chute. Was fun, but tiny. Get clog out of pipes, was vodka bottle. Is empty. This make many sads.<br><br>Entry Sex: 19/06/2554:<br>Purple bugs jumpy today. When waved, get hiss. Maybe very bad. Maybe just ill. Do not know. Is science problem, is not engineer problem. I eat sandwich. Is glorious job. Wish to never end.";
|
||||
name = "Personal Log - Ivan Volodin"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/ivan,
|
||||
/turf/open/floor/plating{
|
||||
broken = 1;
|
||||
heat_capacity = 1e+006;
|
||||
@@ -4991,26 +4974,11 @@
|
||||
icon_state = "bulb-broken";
|
||||
status = 2
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Researcher: <u>Dr. Sakuma Sano </u><br>Date: <u>04/06/2554</u><br><br>Report:<br>As expected, all that is left of the monkeys we sent in earlier is a group of xenomorph larvae. It is quite clear that the facehuggers are not selective in their hosts, and so far the gestation process has been shown to have a 100% success rate.<br><br>The larvae themselves have been behaving very differently from the lone larva we first observed, and despite shying away from humans they are clearly comfortable with others of their kind. Our previous suspicions on larvae have been confirmed with their demonstration of playfulness: they are not nearly as aggressive or violent when young, before molting to adulthood.<br><br>The majority of the play we observed involved a sort of hide-and-seek, and occasionally wrestling by tangling themselves and struggling out of it. While normally we would write these off as instinctual play for honing their skills when they molt, their growth period is so incredibly fast and they are still such adept killers that it would serve no practical purpose. The only explanation for this is perhaps to create bonds and friendships with each other, if that is even possible for such an incredibly hostile race. It may be that they are much more reasonable with each other than other life forms.<br><br>It had become clear that now was the best time to extract a xenomorph for dissecting, as these were all still larvae and the queen was still attached to its ovipositor and would be immobile. With the approval of the research director, we sent in our medical robot that had been dubbed 'Head Surgeon' into the containment pen, dropping the shields for only a fraction of a second to allow it entry. The larvae were cautious, but the curiosity of one had him within grabbing range of our robot. It was brought out and quickly euthanized through lethal injection, courtesy of our mechanical doctor.";
|
||||
name = "Larva Xenomorph Social Interactions & Capturing Procedure"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Researcher: <u>Dr. Sakuma Sano </u><br>Date: <u>04/06/2554</u><br><br>Report:<br>I have studied many interesting and diverse life-forms as a xenobiologist ranging from creatures as large as cows, to specimens too small see with the naked eye. This is by far the largest alien I have ever seen. The alien we were previously studying has molted and has become an absolutely enormous creature. Standing at over 15 feet tall and weighing in at likely two tons or more, the xenomorph queen is an absolutely breathtakingly large and cruel monster. Its behavior has changed drastically from when it was a drone, having become far more comfortable with sitting and staring at us, rather than smashing at the windows.<br><br>The queen, physiologically speaking, is fairly similar to the other xenomorphs, with a few key differences. Its enormous size demands large legs, while the back seems to be always hunched forward. The dorsal tubes on the back have changed to several large spikes, and we observed the alien now sports a second pair of smaller arms on its chest. The purpose of these secondary arms is still unknown. Finally, the queen's crown has become incredibly large, with what seems to be a retractable slot to hide its head in. The dome appears to be extremely thick near the front, and will likely be able to resist a lot of trauma. Despite the enormous size it has grown to, it is not that much slower than it used to be.<br><br>After two hours of doing relatively nothing but staring, the queen began to produce an unusually large amount of resin and weeds, quickly shaping up a large nest that it then hid behind. It then proceeded to smash out all the lights, leaving us with very little to see with our cameras. When we looked through the back cameras, we had discovered that it had grown a large ovipositor, and was releasing large eggs onto the ground. This had us all in agreement that this stage of the life cycle was the queen.<br><br>Over the next few hours, the eggs grew to their full sizes, and we provided the subject with new monkey hosts. When they approached the eggs, they opened to release more facehuggers. It seems that we have observed the full cycle of reproduction for this species. We can expect more larvae in the next few hours.";
|
||||
name = "Queen Xenomorph Physiology & Behavior Observation"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Researcher: <u>Dr. Sakuma Sano </u><br>Date: <u>03/06/2554</u><br><br>Report:<br>The other scientists and I can hardly believe our eyes. The snake-like larva has molted into a 7 foot tall insectoid nightmare in just a few hours. It's obvious now as to why such heavy duty containment was needed. It immediately tried to escape however by flinging itself at the window in a flurry of swipes and stabs. It seems its behavior has returned to a state that is very similar to the facehugger, though I doubt with the same intent! Thankfully, our glass and shields have shown to be more than sturdy enough for such a violent creature, and so far, any attempts at the creature escaping have been in vain.<br><br>As for its physiology, the creature has an elongated head with what appears to be have an exoskeleton resembling an external rib-cage on the torso. The alien is also fairly skinny with a lean body. The little amount of meat on the alien appears to be entirely muscle. We assume this makes it deceptively strong, while remaining agile at the same time. One of the most interesting things we have seen is its pharyngeal jaw. It has some what of an inner mouth capable of being fired externally at extremely high speeds. It has already caused many dents in the walls and a few small cracks in the window with it. The alien also has a couple of dorsal tubes on its back, their purpose unknown. Finally, this monster sports a long ridged tail, complete with a large and extremely sharp blade at the tip.<br><br>Normally I would be absolutely terrified of something like this, but I'm putting my trust in Nanotrasen with the containment. After all, they wouldn't build a cell that could fail to contain its subject, would they?";
|
||||
name = "Adult Xenomorph Physiology & Behavior Observation"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Researcher: <u>Dr. Sakuma Sano </u><br>Date: <u>03/06/2554</u><br><br>Report:<br>When the larva first emerged from the chest of the monkey, it seemed very curious. It would wander around aimlessly for awhile and then sit still. We are unable to determine the gender of the larva, or even determine if it has a gender. After some time had passed, it seemed to lose interest in its surroundings and sat mostly still while occasionally wagging its tail. We decided to throw in a live mouse to see if it would consume it. The larva quickly attacked and ate the mouse and seemed to get larger very suddenly, this suggests that the larvae are capable of metabolizing and directing all the energy towards growth at previously thought impossible speeds. It is a shame that we cannot observe the process more closely, as we do not currently know how dangerous or violent this creature is or will become as it matures fully.<br><br>It is tempting to imagine the possibilities of utilizing such a mechanism. The capability of skipping years of growth time for children, repairing bodily damage in a matter of moments, even its usage in existing cloning technology.";
|
||||
name = "Larva Xenomorph Physiology & Behavior Observation"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Researcher: <u>Dr. Sakuma Sano </u><br>Date: <u>03/06/2554</u><br><br>Report:<br>The test subject we were provided with truly is alien. It is a small spider-like creature with bony legs leading to a smooth body. It has a long tail connected to it, and it has shown extremely aggressive behavior by flinging its entire body at the glass and shields to no avail. While doing so, we noticed there was a small pink hole in the middle of the body.<br><br>When we sent in a monkey through the crude but effective disposal tube, the alien immediately jumped at its face and latched on. The monkey was quickly suffocated by its constricting tail, unable to pry off the fingers. The monkey at first seemed to be dead, but was observed to be breathing. The recently named alien 'facehugger' fell off dead and curled its legs up like a spider moments after it had finished with the monkey's body.<br><br>While the monkey appeared to be unharmed, we kept it in the cell for a couple more hours until we were horrified to discover it screaming out in pain as a snake-like creature erupted from the monkey's chest! It appears that the 'facehugger' is only the start of this life cycle. The impregnation cycle involving the creatures growing inside the chests of their hosts seems to only be the beginning.";
|
||||
name = "'Facehugger' Xenomorph Physiology & Behavior Observation"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/larva_social,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/xeno_queen,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/xeno_adult,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/larva_psych,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/facehugger,
|
||||
/obj/structure/alien/weeds,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/awaycontent/a2{
|
||||
@@ -5196,19 +5164,19 @@
|
||||
})
|
||||
"gW" = (
|
||||
/obj/structure/filingcabinet/filingcabinet,
|
||||
/obj/item/weapon/paper{
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/xeno_hivemind{
|
||||
info = "Researcher: <u>Dr. Mark Douglas </u><br>Date: <u>17/06/2554</u><br><br>Report:<br>Earlier today we have observed a new phenomenon with our subjects. While feeding them our last monkey subject and throwing out the box, the aliens merely looked at us instead of infecting the monkey right away. They looked to be collectively distressed as they would no longer be given hosts, where instead we would move to the next phase of the experiment. When I glanced at the gas tanks and piping leading to their cell, I looked back to see all of them were up against the glass, even the queen! It was as if they all understood what was going to happen, even though we knew only the queen had the cognitive capability to do so.<br><br>The only explanation for this is a form of communication between the aliens, but we have seen no such action take place anywhere in the cell until now. We also know that regular drone and hunter xenomorphs have no personality or instinct to survive by themselves. Perhaps the queen has a direct link to them? A form of a commander or overseer that controls their every move? A hivemind?";
|
||||
name = "The Hivemind Hypothesis"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/xeno_behavior{
|
||||
info = "Researcher: <u>Dr. Sakuma Sano </u><br>Date: <u>08/06/2554</u><br><br>Report:<br>The xenomorphs we have come to study here are a remarkable species. They are almost universally aggressive across all castes, showing no remorse or guilt or pause before or after acts of violence. They appear to be a species entirely designed to kill. Oddly enough, even their method of reproduction is a brutal two-for-one method of birthing a new xenomorph and killing its host.<br><br>The lone xenomorph we studied only five days ago showed little sign of intelligence. Only a simple drone that flung itself at the safety glass and shields repeatedly and thankfully without success. Once the drone molted into a queen, it became much more calm and calculating, merely looking at us and waiting while building its nest. As the hive grew in size and in numbers, so too did the intelligence of the common hunter and drone. We are still researching how they can communicate with one another and the relationship between the different castes and the queen. We will continue to update our research as we learn more about the species.";
|
||||
name = "A Preliminary Study of Alien Behavior"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/xeno_castes{
|
||||
info = "Researcher: <u>Dr. Mark Douglas </u><br>Date: <u>06/06/2554</u><br><br>Report:<br>While observing the growing number of aliens in the containment cell, we began to notice subtle differences that were consistently repeating. Like ants, these creatures clearly have different specialized variations that determine their roles in the hive. We have dubbed the three currently observed castes as Hunters, Drones, and Sentinels.<br><br>Hunters have been observed to be by far the most aggressive and agile of the three, constantly running on every surface and frequently swiping at the windows. They are also remarkably good at camouflaging themselves in darkness and on their resin structures, appearing almost invisible to the unwary observer. They are always the first to reach the monkeys we send in leading us to believe that this caste is primarily used for finding and retrieving hosts.<br><br>Drones on the other hand are much more docile and seem more shy by comparison, though not any less aggressive than the other castes. They have been observed to have a much wider head and lack dorsal tubes. They have shown to be less agile and visibly more fragile than any other caste. The drone however has never been observed to interact with the monkeys directly and instead preferring maintenance of the hive by building walls of resin and moving eggs around the nest. As far as we know, we have only ever observed a drone become a queen, and we have no way of knowing if the other castes have that capability.<br><br>Lastly, we have the Sentinels, which appear at first glance to be the guards of the hive. They have so far been only observed to remain near the queen and the eggs, frequently curled up against the walls. We have only observed one instance where they have interacted with a monkey who strayed too closely to the queen, and was pounced and held down immediately until it was applied with a facehugger. Their lack of movement makes it difficult to determine their exact purpose as guards, sentries, or other role.";
|
||||
name = "The Xenomorph 'Castes'"
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/larva_autopsy{
|
||||
info = "Researcher: <u>Dr. Mark Douglas </u><br>Date: <u>04/06/2554</u><br><br>Report:<br>After an extremely dangerous, time consuming and costly dissection, we have managed to record and identify several of the organs inside of the first stage of the xenomorph cycle: the larva. This procedure took an extensive amount of time because these creatures have incredibly, almost-comically acidic blood that can melt through almost anything in a few moments. We had to use over a dozen scalpels and retractors to complete the autopsy.<br><br>The larva seems to possess far fewer and quite different organs than that of a human. There is a stomach, with no digestive tract, a heart, which seems to lack any blood-oxygen circulation purpose, and an elongated brain, even though its as dumb as any large cat. It also lacks any liver, kidneys, or other basic organs.<br><br>We can't determine the exact nature of how these creatures grow, nor if they gain organs as they become adults. The larger breeds of xenomorph are too dangerous to kill and capture to give us an accurate answer to these questions. All that we can conclude is that being able to function with so little and yet be so deadly means that these creatures are highly evolved and likely to be extremely durable to various hazards that would otherwise be lethal to humans.";
|
||||
name = "Larva Xenomorph Autopsy Report"
|
||||
},
|
||||
@@ -5527,10 +5495,7 @@
|
||||
pixel_y = 23;
|
||||
req_access = null
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "Personal Log for Research Director Gerald Rosswell<br><br>Entry One - 17/05/2554:<br>You know, I can't believe I took this position so suddenly. I saw that corporate needed a research director for one of it's outposts and thought it would be a cakewalk, there isn't going to be a lot of research to be done on a tiny outpost. Mainly just running scans on the gas giant we are orbiting or some basic RnD. However, they conveniently forgot to tell me that me and my science staff would have to pull double duty as medical staff and that there is no one higher up on the chain of command here, so I get to pull triple duty as acting captain as well! This shit is probably allowed in some 3 point fine print buried underneath the literally thousands of pages of contracts. Well, at least the research will be easy work.<br><br>Entry Two - 25/05/2554:<br>Well, we all expected it at the outpost, CentComm has decided to completely change what research we are doing. They've decided that we should be research the species known as 'xenomporphs'. They announced this change 4 days ago and along with it, sadly, the termination of our current science staff barring me. Not to mention the constant noise made by the construction detail they sent to staple on an xenobiology lab ensuring no one has been able to sleep decently ever since they announced the shift. To make matters worse our current security guard actually died of a heart attack today. Just goes to show that 75 year old men shouldn't be security guards. Still can't believe that they decided to do this major change less than a month after the outpost was established.<br><br>Entry Three - 27/05/2554:<br>The new security guard arrived today. Apparently transferred here from the research station that also is orbiting the gas giant. He seems to be rather angry about his transfer. Considering the rumors I've heard about the research station he's probably caught off guard by the fact that Steve hasn't tried to force an IED down his throat.<br><br>Entry Four - 06/06/2554:<br>My requests for additional security and containment measures for the 'xenomorph' has been denied. Does Central Command not notice how dangerous these creatures are? The only thing keeping them in is a force field, a minor problem with the power grid and the entire hive is loose. What would stop them then, the lone security guard with a dinky little taser? Kenneth can barely handle a short-tempered engineer. We are under equipped and under staffed, we are inevitably going to be destroyed unless we get the equipment and staff we need.<br><br>Entry Five - 10/06/2554:<br>Cunningham got a good look at the xenomorph in containment. He was frightened for the rest of the day, rather amusing if it wasn't for the fact that we are all trapped on this scrap heap with naught but a force field keeping those xenomorphs in.<br><br>Entry Six - 17/06/2554:<br>The reactions from the specimens today has shown that they possess strange mental properties. Mark hypothesizes that they possibly have a sort of hive mind, while nothing is certain this would explain how xenomorphs seem to have vastly increased intellect when a 'queen' is present. Of course, to test this hypothesis would require many complicated procedures which we will not be able to undertake. But we do not know the full extend of the xenomorph mind, it may or may not be able to find a way to circumvent our containment system. I will resend my request for additional security measures along with this new found information.";
|
||||
name = "Personal Log - Gerald Rosswell"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/gerald,
|
||||
/turf/open/floor/plasteel/cafeteria{
|
||||
dir = 5
|
||||
},
|
||||
@@ -5695,10 +5660,7 @@
|
||||
icon_state = "bulb-broken";
|
||||
status = 2
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "<h3><font color=red>In The Event of Xenobiology Breach: Evacuate staff, Lock down Xenobiology, Notify on-site superiors and/or Central Command immediatly.</h3></b><br><br><h3>Current Xenobiology Containment Level:<u><strike>Secure</strike><i><b> RUN </h3></b></i></u>";
|
||||
name = "Evacuation Procedure"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/evacuation,
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Research Division";
|
||||
dir = 1;
|
||||
@@ -6241,10 +6203,7 @@
|
||||
},
|
||||
/obj/effect/decal/cleanable/blood/splatter,
|
||||
/obj/item/weapon/pen,
|
||||
/obj/item/weapon/paper/crumpled{
|
||||
info = "<i>19 06 2554</i><br><br><i>I fucking knew it. There was a major breach, that idiotic force field failed and the xenomorphs rushed out and took out the scientists. I've managed to make it to my office and closed the blast doors. I can hear them trying to pry open the doors. Probably don't have long. I have no clue what has happened to the rest of the crew, for all I know they've been killed to produce more of the fucks.</i>";
|
||||
name = "Hastily Written Note"
|
||||
},
|
||||
/obj/item/weapon/paper/crumpled/awaymissions/moonoutpost19/hastey_note,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
@@ -7092,10 +7051,7 @@
|
||||
/obj/structure/noticeboard{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "<b><h2>I Can't Believe It's Not Pasta: Half off on Wednesdays</h2></b><br><br><b><h2><font color=blue>Burger night every Friday 6PM-10PM, free drinks with purchase of meal!</font></h2></b><br><br><b><h2><font color=red>Premiering Tonight: The comedy stylings of Shoe Snatching Willy! 11AM-7PM</font></h2></b>";
|
||||
name = "Specials This Week"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/food_specials,
|
||||
/turf/open/floor/plasteel{
|
||||
burnt = 1;
|
||||
dir = 8;
|
||||
@@ -9039,10 +8995,7 @@
|
||||
dir = 8;
|
||||
pixel_x = 32
|
||||
},
|
||||
/obj/item/weapon/paper{
|
||||
info = "<p><p align=center><h2>Welcome to Moon Outpost 19! Property of Nanotrasen Inc.</h2></p><hr><br><br>Staff Roster:<br>-Dr. Gerald Rosswell: Research Director & Acting Captain<br>-Dr. Sakuma Sano: Xenobiologist<br>-Dr. Mark Douglas: Xenobiologist<br>-Kenneth Cunningham: Security Officer-Ivan Volodin: Engineer<br>-Mathias Kuester: Bartender<br>-Sven Edling: Chef<br>-Steve: Assistant<br><br>Please enjoy your stay, and report any abnormalities to an officer.";
|
||||
name = "Welcome Notice"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/welcome,
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Arrivals South";
|
||||
dir = 8;
|
||||
@@ -9686,10 +9639,7 @@
|
||||
})
|
||||
"nI" = (
|
||||
/obj/structure/dresser,
|
||||
/obj/item/weapon/paper{
|
||||
info = "<i>Bugs break out. I run to here and lock door. I hear door next to me break open and screams. All nice people here dead now. I no want to be eaten, and bottle always said to be coward way out, but person who say that is stupid. Mira, there is no escape for me, tell Alexis and Elena that father will never come home, and that I love you all.</i>";
|
||||
name = "Note"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/goodbye_note,
|
||||
/turf/open/floor/carpet{
|
||||
heat_capacity = 1e+006
|
||||
},
|
||||
|
||||
@@ -896,8 +896,8 @@
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/pamphlet,
|
||||
/obj/item/weapon/paper/pamphlet,
|
||||
/obj/item/weapon/paper/pamphlet/gateway,
|
||||
/obj/item/weapon/paper/pamphlet/gateway,
|
||||
/turf/open/floor/plasteel/black,
|
||||
/area/awaymission/research/interior/gateway)
|
||||
"cG" = (
|
||||
@@ -1060,7 +1060,7 @@
|
||||
"dd" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines.";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
@@ -1081,7 +1081,7 @@
|
||||
read_only = 1
|
||||
},
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines.";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
@@ -1143,7 +1143,7 @@
|
||||
"dp" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines.";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
@@ -1289,12 +1289,12 @@
|
||||
"dL" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off with the words 'DO NOT CLONE' hastely written over it.";
|
||||
desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off with the words 'DO NOT CLONE' hastily written over it.";
|
||||
fields = list("label" = "Buffer1:George Melons", "UI" = "3c300f11b5421ca7014d8", "SE" = "430431205660551642142504334461413202111310233445620533134255", "UE" = "6893e6a0b0076a41897776b10cc2b324", "name" = "George Melons", "blood_type" = "B+");
|
||||
name = "old genetics data disk"
|
||||
},
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines.";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
@@ -1306,12 +1306,12 @@
|
||||
"dM" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines.";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines.";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
@@ -1691,9 +1691,7 @@
|
||||
/turf/open/floor/plasteel/black,
|
||||
/area/awaymission/research/interior/secure)
|
||||
"eU" = (
|
||||
/obj/item/weapon/paper/crumpled{
|
||||
info = "Theres a lot of sensitive info on these disks, try and keep them secure! If these backup copies get into the wrong hands, god knows what they could do with the genetic research on these disk.."
|
||||
},
|
||||
/obj/item/weapon/paper/crumpled/awaymissions/research/sensitive_info,
|
||||
/turf/open/floor/plasteel/black,
|
||||
/area/awaymission/research/interior/secure)
|
||||
"eV" = (
|
||||
@@ -2794,12 +2792,12 @@
|
||||
"hS" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines.";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines. This one has the initials 'C.P' marked on the front. ";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines. This one has the initials 'C.P' marked on the front. ";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
@@ -2812,12 +2810,12 @@
|
||||
"hT" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines.";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines.";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
@@ -2949,7 +2947,7 @@
|
||||
"il" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/weapon/disk/data{
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines.";
|
||||
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
|
||||
name = "encrypted genetic data disk";
|
||||
read_only = 1
|
||||
},
|
||||
@@ -3336,7 +3334,7 @@
|
||||
/area/awaymission/research/interior/dorm)
|
||||
"jp" = (
|
||||
/obj/structure/barricade/wooden{
|
||||
desc = "A wooden table hastely flipped over for cover.";
|
||||
desc = "A wooden table hastily flipped over for cover.";
|
||||
obj_integrity = 55;
|
||||
icon = 'icons/obj/smooth_structures/wood_table.dmi';
|
||||
icon_state = "wood_table";
|
||||
@@ -3402,7 +3400,7 @@
|
||||
/area/awaymission/research/interior/medbay)
|
||||
"jy" = (
|
||||
/obj/machinery/door/airlock/medical{
|
||||
name = "Medical Surgey"
|
||||
name = "Medical Surgery"
|
||||
},
|
||||
/turf/open/floor/plasteel/whiteblue,
|
||||
/area/awaymission/research/interior/medbay)
|
||||
@@ -3446,7 +3444,7 @@
|
||||
/area/awaymission/research/interior/dorm)
|
||||
"jG" = (
|
||||
/obj/structure/barricade/wooden{
|
||||
desc = "A wooden table hastely flipped over for cover.";
|
||||
desc = "A wooden table hastily flipped over for cover.";
|
||||
obj_integrity = 55;
|
||||
icon = 'icons/obj/smooth_structures/wood_table.dmi';
|
||||
icon_state = "wood_table";
|
||||
@@ -3569,7 +3567,7 @@
|
||||
/area/awaymission/research/interior/dorm)
|
||||
"kb" = (
|
||||
/obj/structure/barricade/wooden{
|
||||
desc = "A wooden table hastely flipped over for cover.";
|
||||
desc = "A wooden table hastily flipped over for cover.";
|
||||
obj_integrity = 55;
|
||||
icon = 'icons/obj/smooth_structures/wood_table.dmi';
|
||||
icon_state = "wood_table";
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
"aq" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/door/window/westright,
|
||||
/obj/item/weapon/paper/crumpled/snowdin/keys,
|
||||
/obj/item/weapon/paper/crumpled/ruins/snowdin/keys,
|
||||
/turf/open/floor/plasteel{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow;
|
||||
wet = 0
|
||||
@@ -123,7 +123,7 @@
|
||||
/area/awaymission/snowdin/base)
|
||||
"at" = (
|
||||
/obj/structure/filingcabinet,
|
||||
/obj/item/weapon/paper/snowdin/secnotice,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/snowdin/secnotice,
|
||||
/turf/open/floor/plasteel/darkred{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
@@ -547,7 +547,7 @@
|
||||
"bt" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/shovel,
|
||||
/obj/item/weapon/paper/crumpled/snowdin/shovel,
|
||||
/obj/item/weapon/paper/crumpled/ruins/snowdin/shovel,
|
||||
/turf/open/floor/plating{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
@@ -635,10 +635,10 @@
|
||||
/area/awaymission/snowdin/base)
|
||||
"bC" = (
|
||||
/obj/structure/showcase{
|
||||
desc = "A strange machine thats supposedly used to help pick up and decypth wave signals. ";
|
||||
desc = "A strange machine thats supposedly used to help pick up and decrypt wave signals. ";
|
||||
icon = 'icons/obj/machines/telecomms.dmi';
|
||||
icon_state = "processor";
|
||||
name = "subsystem signal decrypher"
|
||||
name = "subsystem signal decrypter"
|
||||
},
|
||||
/turf/open/floor/plating{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
@@ -982,7 +982,7 @@
|
||||
/area/awaymission/snowdin/base)
|
||||
"cv" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/weapon/paper/crumpled/snowdin/snowdingatewaynotice,
|
||||
/obj/item/weapon/paper/crumpled/ruins/snowdin/snowdingatewaynotice,
|
||||
/turf/open/floor/wood{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
@@ -1067,7 +1067,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/filingcabinet,
|
||||
/obj/item/weapon/paper/snowdin/snowdinlog,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/snowdin/log,
|
||||
/turf/open/floor/plasteel/darkbrown{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
@@ -1311,7 +1311,7 @@
|
||||
},
|
||||
/area/awaymission/snowdin/post)
|
||||
"dt" = (
|
||||
/obj/item/weapon/paper/crumpled/snowdin/lootstructures,
|
||||
/obj/item/weapon/paper/crumpled/ruins/snowdin/lootstructures,
|
||||
/turf/open/floor/plating{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow;
|
||||
icon = 'icons/turf/snow.dmi';
|
||||
@@ -1555,7 +1555,7 @@
|
||||
/area/awaymission/snowdin/post)
|
||||
"dZ" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/crumpled/snowdin/syndielava,
|
||||
/obj/item/weapon/paper/crumpled/ruins/snowdin/syndielava,
|
||||
/obj/machinery/light/small{
|
||||
active_power_usage = 0;
|
||||
dir = 4;
|
||||
@@ -2406,11 +2406,7 @@
|
||||
},
|
||||
/area/awaymission/snowdin/post)
|
||||
"gA" = (
|
||||
/obj/structure/closet/secure_closet{
|
||||
anchored = 1;
|
||||
name = "Contraband Locker";
|
||||
req_access_txt = "3"
|
||||
},
|
||||
/obj/structure/closet/secure_closet/contraband/armory,
|
||||
/obj/item/weapon/gun/ballistic/automatic/speargun,
|
||||
/obj/item/weapon/twohanded/spear,
|
||||
/obj/item/weapon/twohanded/spear,
|
||||
@@ -2504,10 +2500,10 @@
|
||||
"gL" = (
|
||||
/obj/machinery/light/small,
|
||||
/obj/structure/showcase{
|
||||
desc = "A strange machine thats supposedly used to help pick up and decypth wave signals. ";
|
||||
desc = "A strange machine thats supposedly used to help pick up and decrypt wave signals. ";
|
||||
icon = 'icons/obj/machines/telecomms.dmi';
|
||||
icon_state = "processor";
|
||||
name = "subsystem signal decrypher"
|
||||
name = "subsystem signal decrypter"
|
||||
},
|
||||
/turf/open/floor/plating{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
@@ -2721,7 +2717,7 @@
|
||||
/area/awaymission/snowdin/post)
|
||||
"hn" = (
|
||||
/obj/structure/filingcabinet,
|
||||
/obj/item/weapon/paper/snowdin/secnotice,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/snowdin/secnotice,
|
||||
/turf/open/floor/plasteel/darkred{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
@@ -3670,7 +3666,7 @@
|
||||
/area/awaymission/snowdin)
|
||||
"jV" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/crumpled/snowdin/misc1,
|
||||
/obj/item/weapon/paper/crumpled/ruins/snowdin/misc1,
|
||||
/turf/open/floor/mineral/plastitanium/brig{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
@@ -3893,10 +3889,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,
|
||||
/obj/item/weapon/paper{
|
||||
info = "YOU SEEN IVAN, WHEN YOU HOLD SAAW LIKE PEESTOL, YOU STRONGER THAN RECOIL FOR FEAR OF HITTING FACE!";
|
||||
name = "SAW Usage"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/snowdin/saw_usage,
|
||||
/turf/open/floor/plasteel/black{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
@@ -3950,7 +3943,7 @@
|
||||
/area/awaymission/snowdin/sekret)
|
||||
"kE" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/weapon/paper/snowdin/syndienotice,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/snowdin/syndienotice,
|
||||
/turf/open/floor/carpet{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
@@ -4970,7 +4963,7 @@
|
||||
/area/awaymission/snowdin)
|
||||
"nc" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/crumpled/snowdin/shovel,
|
||||
/obj/item/weapon/paper/crumpled/ruins/snowdin/shovel,
|
||||
/turf/open/floor/plasteel/darkbrown{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
@@ -5175,7 +5168,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/filingcabinet,
|
||||
/obj/item/weapon/paper/snowdin/snowdinlog2,
|
||||
/obj/item/weapon/paper/fluff/awaymissions/snowdin/log2,
|
||||
/turf/open/floor/plasteel/darkbrown{
|
||||
baseturf = /turf/open/floor/plating/asteroid/snow
|
||||
},
|
||||
|
||||
@@ -2824,7 +2824,7 @@
|
||||
"eE" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/book/manual/hydroponics_pod_people,
|
||||
/obj/item/weapon/paper/hydroponics,
|
||||
/obj/item/weapon/paper/guides/jobs/hydroponics,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 1;
|
||||
@@ -5557,7 +5557,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/pamphlet,
|
||||
/obj/item/weapon/paper/pamphlet/gateway,
|
||||
/turf/open/floor/plasteel/floorgrime{
|
||||
dir = 8;
|
||||
heat_capacity = 1e+006
|
||||
@@ -9874,7 +9874,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/button/door{
|
||||
desc = "A remote control-switch whichs locks the research division down in the event of a biohazard leak or contamination.";
|
||||
desc = "A remote control-switch which locks the research division down in the event of a biohazard leak or contamination.";
|
||||
id = "UO45_biohazard";
|
||||
name = "Biohazard Door Control";
|
||||
pixel_y = 8;
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
/turf/open/floor/engine/cult,
|
||||
/area/awaymission/wwvault)
|
||||
"aL" = (
|
||||
/obj/item/weapon/paper{
|
||||
/obj/item/weapon/paper/fluff/awaymissions/wildwest/grinder{
|
||||
info = "meat grinder requires sacri"
|
||||
},
|
||||
/turf/open/floor/plasteel/cult{
|
||||
@@ -607,10 +607,7 @@
|
||||
/area/awaymission/wwgov)
|
||||
"cg" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/weapon/paper{
|
||||
info = " The miners in the town have become sick and almost all production has stopped. They, in a fit of delusion, tossed all of their mining equipment into the furnaces. They all claimed the same thing. A voice beckoning them to lay down their arms. Stupid miners.";
|
||||
name = "Planer Saul's Journal: Page 4"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/wildwest/journal/page4,
|
||||
/turf/open/floor/plasteel/cafeteria{
|
||||
dir = 5
|
||||
},
|
||||
@@ -830,10 +827,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/wwrefine)
|
||||
"cU" = (
|
||||
/obj/item/weapon/paper{
|
||||
info = "We've discovered something floating in space. We can't really tell how old it is, but it is scraped and bent to hell. There object is the size of about a room with double doors that we have yet to break into. It is a lot sturdier than we could have imagined. We have decided to call it 'The Vault' ";
|
||||
name = "Planer Saul's Journal: Page 1"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/wildwest/journal/page1,
|
||||
/turf/open/floor/carpet,
|
||||
/area/awaymission/wwgov)
|
||||
"cV" = (
|
||||
@@ -1884,10 +1878,7 @@
|
||||
/turf/open/floor/wood,
|
||||
/area/awaymission/wwmines)
|
||||
"fZ" = (
|
||||
/obj/item/weapon/paper{
|
||||
info = "The Vault...it just keeps growing and growing. I went on my daily walk through the garden and now its just right outside the mansion... a few days ago it was only barely visible. But whatever is inside...its calling to me.";
|
||||
name = "Planer Sauls' Journal: Page 7"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/wildwest/journal/page7,
|
||||
/turf/open/floor/wood,
|
||||
/area/awaymission/wwmines)
|
||||
"ga" = (
|
||||
@@ -2192,10 +2183,7 @@
|
||||
/turf/open/floor/mineral/titanium/yellow,
|
||||
/area/awaymission/wwrefine)
|
||||
"gY" = (
|
||||
/obj/item/weapon/paper{
|
||||
info = "The syndicate have invaded. Their ships appeared out of nowhere and now they likely intend to kill us all and take everything. On the off-chance that the Vault may grant us sanctuary, many of us have decided to force our way inside and bolt the door, taking as many provisions with us as we can carry. In case you find this, send for help immediately and open the Vault. Find us inside.";
|
||||
name = "Planer Saul's Journal: Page 8"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/awaymissions/wildwest/journal/page8,
|
||||
/turf/open/floor/plating/ironsand{
|
||||
icon_state = "ironsand1"
|
||||
},
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#include "map_files\generic\Centcomm.dmm"
|
||||
#include "map_files\generic\CentCom.dmm"
|
||||
#include "map_files\generic\SpaceStation.dmm"
|
||||
#include "map_files\generic\Space.dmm"
|
||||
#include "map_files\generic\SpaceDock.dmm"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,92 +0,0 @@
|
||||
diff a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm (rejected hunks)
|
||||
@@ -33644,7 +33645,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 4;
|
||||
external_pressure_bound = 140;
|
||||
- pressure_checks = 0
|
||||
+ pressure_checks = 0;
|
||||
name = "server vent"
|
||||
},
|
||||
/turf/open/floor/circuit{
|
||||
@@ -83911,12 +83912,12 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
cTg
|
||||
-cTl
|
||||
-cTn
|
||||
-cTr
|
||||
-cTu
|
||||
-cTw
|
||||
-cTz
|
||||
+cTg
|
||||
+cTi
|
||||
+cTg
|
||||
+cTi
|
||||
+cTg
|
||||
+cTg
|
||||
aaa
|
||||
bCq
|
||||
bPS
|
||||
@@ -84167,13 +84168,13 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
-cTh
|
||||
+cTg
|
||||
bGg
|
||||
cTo
|
||||
cMl
|
||||
bHx
|
||||
cTx
|
||||
-cTA
|
||||
+cTg
|
||||
aaa
|
||||
bLv
|
||||
bPR
|
||||
@@ -84427,7 +84428,7 @@ bDi
|
||||
cTi
|
||||
bGh
|
||||
bHx
|
||||
-cTs
|
||||
+cTo
|
||||
bHx
|
||||
bLt
|
||||
bMF
|
||||
@@ -84681,13 +84682,13 @@ bzP
|
||||
bAS
|
||||
bxu
|
||||
aaa
|
||||
-cTj
|
||||
+cTg
|
||||
bGg
|
||||
-cTp
|
||||
-cTt
|
||||
+cTo
|
||||
+cTo
|
||||
bHx
|
||||
bLs
|
||||
-cTB
|
||||
+cTg
|
||||
aaa
|
||||
bLv
|
||||
bPT
|
||||
@@ -84938,13 +84939,13 @@ bzR
|
||||
byd
|
||||
bxx
|
||||
aaa
|
||||
-cTk
|
||||
-cTm
|
||||
-cTq
|
||||
+cTg
|
||||
+cTg
|
||||
+cTi
|
||||
bJc
|
||||
-cTv
|
||||
-cTy
|
||||
-cTC
|
||||
+cTi
|
||||
+cTg
|
||||
+cTg
|
||||
aaa
|
||||
bCq
|
||||
bPV
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,10 +0,0 @@
|
||||
diff a/_maps/map_files/Cerestation/cerestation.dmm b/_maps/map_files/Cerestation/cerestation.dmm (rejected hunks)
|
||||
@@ -94667,7 +94667,7 @@
|
||||
"dzo" = (
|
||||
/obj/machinery/power/apc{
|
||||
dir = 2;
|
||||
- name = "Starboard Asteroid Maintenace APC";
|
||||
+ name = "Starboard Asteroid Maintenance APC";
|
||||
pixel_y = -24
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/end{
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,37 +0,0 @@
|
||||
diff a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm (rejected hunks)
|
||||
@@ -156131,16 +156132,16 @@ cim
|
||||
brN
|
||||
brN
|
||||
bqq
|
||||
-coe
|
||||
+bkT
|
||||
cpL
|
||||
-cqZ
|
||||
+brH
|
||||
csr
|
||||
-cub
|
||||
+bmI
|
||||
cvE
|
||||
cwY
|
||||
-cqZ
|
||||
-cqZ
|
||||
-cqZ
|
||||
+brH
|
||||
+brH
|
||||
+brH
|
||||
brH
|
||||
bkT
|
||||
cFG
|
||||
@@ -156166,10 +156167,10 @@ djZ
|
||||
dlM
|
||||
dnc
|
||||
doh
|
||||
-dpQ
|
||||
+dnc
|
||||
drt
|
||||
dsT
|
||||
-dpQ
|
||||
+dnc
|
||||
ego
|
||||
dwO
|
||||
dyc
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,37 +0,0 @@
|
||||
diff a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm (rejected hunks)
|
||||
@@ -45922,7 +45922,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 8;
|
||||
frequency = 1441;
|
||||
- id_tag = "n2o_out"
|
||||
+ id_tag = "n2o_out";
|
||||
name = "n2o out"
|
||||
},
|
||||
/turf/open/floor/engine/n2o,
|
||||
@@ -49223,7 +49223,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 8;
|
||||
frequency = 1441;
|
||||
- id_tag = "tox_out"
|
||||
+ id_tag = "tox_out";
|
||||
name = "toxin out"
|
||||
},
|
||||
/turf/open/floor/engine/plasma,
|
||||
@@ -52023,7 +52023,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 8;
|
||||
frequency = 1441;
|
||||
- id_tag = "co2_out"
|
||||
+ id_tag = "co2_out";
|
||||
name = "co2 out"
|
||||
},
|
||||
/turf/open/floor/engine/co2,
|
||||
@@ -58890,7 +58890,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 1;
|
||||
frequency = 1441;
|
||||
- id_tag = "n2_out"
|
||||
+ id_tag = "n2_out";
|
||||
name = "n2 out"
|
||||
},
|
||||
/turf/open/floor/engine/n2,
|
||||
@@ -1099,11 +1099,7 @@
|
||||
pixel_y = 30
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper{
|
||||
anchored = 0;
|
||||
info = "A hastily written note has been scribbled here... <br><br> Please use the ore redemption machine in the cargo office for smelting. PLEASE! <br><br>--The Research Staff";
|
||||
name = "URGENT!"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/stations/lavaland/orm_notice,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mine/production)
|
||||
"de" = (
|
||||
@@ -2091,7 +2087,7 @@
|
||||
/area/mine/living_quarters)
|
||||
"ft" = (
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Dormatories";
|
||||
c_tag = "Dormitories";
|
||||
dir = 4;
|
||||
network = list("MINE")
|
||||
},
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+57498
-55531
File diff suppressed because it is too large
Load Diff
@@ -1397,7 +1397,7 @@
|
||||
icon = 'icons/obj/machines/particle_accelerator.dmi';
|
||||
icon_state = "control_boxp";
|
||||
name = "Kobayashi Maru control computer";
|
||||
prizes = list(/obj/item/weapon/paper/trek_diploma = 1);
|
||||
prizes = list(/obj/item/weapon/paper/fluff/holodeck/trek_diploma = 1);
|
||||
settlers = list("Kirk","Worf","Gene")
|
||||
},
|
||||
/turf/open/floor/holofloor/plating,
|
||||
@@ -1423,7 +1423,7 @@
|
||||
icon = 'icons/obj/machines/particle_accelerator.dmi';
|
||||
icon_state = "control_boxp";
|
||||
name = "Kobayashi Maru control computer";
|
||||
prizes = list(/obj/item/weapon/paper/trek_diploma = 1);
|
||||
prizes = list(/obj/item/weapon/paper/fluff/holodeck/trek_diploma = 1);
|
||||
settlers = list("Kirk","Worf","Gene")
|
||||
},
|
||||
/turf/open/floor/holofloor/plating,
|
||||
@@ -1438,7 +1438,7 @@
|
||||
icon = 'icons/obj/machines/particle_accelerator.dmi';
|
||||
icon_state = "control_boxp";
|
||||
name = "Kobayashi Maru control computer";
|
||||
prizes = list(/obj/item/weapon/paper/trek_diploma = 1);
|
||||
prizes = list(/obj/item/weapon/paper/fluff/holodeck/trek_diploma = 1);
|
||||
settlers = list("Kirk","Worf","Gene")
|
||||
},
|
||||
/turf/open/floor/holofloor/plating,
|
||||
@@ -1918,7 +1918,7 @@
|
||||
},
|
||||
/area/holodeck/rec_center/firingrange)
|
||||
"ft" = (
|
||||
/obj/item/weapon/paper/range,
|
||||
/obj/item/weapon/paper/guides/jobs/security/range,
|
||||
/turf/open/floor/holofloor,
|
||||
/area/holodeck/rec_center/firingrange)
|
||||
"fu" = (
|
||||
@@ -2454,7 +2454,6 @@
|
||||
/area/ctf)
|
||||
"hf" = (
|
||||
/obj/machinery/power/emitter/energycannon{
|
||||
icon_state = "emitter";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
@@ -2923,7 +2922,7 @@
|
||||
/area/centcom/prison)
|
||||
"iG" = (
|
||||
/turf/closed/indestructible/fakedoor{
|
||||
name = "Centcom Cell"
|
||||
name = "CentCom Cell"
|
||||
},
|
||||
/area/centcom/prison)
|
||||
"iH" = (
|
||||
@@ -2958,7 +2957,7 @@
|
||||
/area/centcom/supply)
|
||||
"iL" = (
|
||||
/turf/closed/indestructible/fakedoor{
|
||||
name = "Centcom Warehouse"
|
||||
name = "CentCom Warehouse"
|
||||
},
|
||||
/area/centcom/supply)
|
||||
"iM" = (
|
||||
@@ -3064,7 +3063,7 @@
|
||||
"jc" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom";
|
||||
name = "CentCom";
|
||||
opacity = 1;
|
||||
req_access_txt = "0"
|
||||
},
|
||||
@@ -3327,7 +3326,7 @@
|
||||
dwidth = 5;
|
||||
height = 7;
|
||||
id = "supply_away";
|
||||
name = "Centcom";
|
||||
name = "CentCom";
|
||||
width = 12
|
||||
},
|
||||
/turf/open/space,
|
||||
@@ -3513,11 +3512,7 @@
|
||||
},
|
||||
/area/centcom/supply)
|
||||
"jZ" = (
|
||||
/obj/structure/closet/secure_closet{
|
||||
anchored = 1;
|
||||
name = "Contraband Locker";
|
||||
req_access_txt = "19"
|
||||
},
|
||||
/obj/structure/closet/secure_closet/contraband/heads,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 8
|
||||
},
|
||||
@@ -3586,7 +3581,7 @@
|
||||
"ki" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/weapon/phone{
|
||||
desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in.";
|
||||
desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in.";
|
||||
pixel_x = -3;
|
||||
pixel_y = 3
|
||||
},
|
||||
@@ -3822,7 +3817,7 @@
|
||||
/area/centcom/supply)
|
||||
"kM" = (
|
||||
/turf/closed/indestructible/fakedoor{
|
||||
name = "Centcom"
|
||||
name = "CentCom"
|
||||
},
|
||||
/area/centcom/control)
|
||||
"kN" = (
|
||||
@@ -3871,7 +3866,7 @@
|
||||
/area/centcom/control)
|
||||
"kT" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
@@ -3885,7 +3880,7 @@
|
||||
base_state = "rightsecure";
|
||||
dir = 2;
|
||||
icon_state = "leftsecure";
|
||||
name = "Centcom Stand";
|
||||
name = "CentCom Stand";
|
||||
req_access_txt = "109"
|
||||
},
|
||||
/obj/machinery/light{
|
||||
@@ -3922,7 +3917,7 @@
|
||||
base_state = "rightsecure";
|
||||
dir = 2;
|
||||
icon_state = "leftsecure";
|
||||
name = "Centcom Stand";
|
||||
name = "CentCom Stand";
|
||||
req_access_txt = "109"
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
@@ -3941,7 +3936,7 @@
|
||||
base_state = "rightsecure";
|
||||
dir = 2;
|
||||
icon_state = "leftsecure";
|
||||
name = "Centcom Stand";
|
||||
name = "CentCom Stand";
|
||||
req_access_txt = "109"
|
||||
},
|
||||
/obj/machinery/light{
|
||||
@@ -3965,7 +3960,7 @@
|
||||
/area/centcom/supply)
|
||||
"lc" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Supply";
|
||||
name = "CentCom Supply";
|
||||
req_access_txt = "106"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -4162,7 +4157,7 @@
|
||||
/area/centcom/control)
|
||||
"lB" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
@@ -4669,9 +4664,9 @@
|
||||
},
|
||||
/area/centcom/control)
|
||||
"mQ" = (
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
dir = 8
|
||||
@@ -4757,7 +4752,7 @@
|
||||
base_state = "rightsecure";
|
||||
dir = 2;
|
||||
icon_state = "leftsecure";
|
||||
name = "Centcom Stand";
|
||||
name = "CentCom Stand";
|
||||
req_access_txt = "109"
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
@@ -4773,7 +4768,7 @@
|
||||
base_state = "rightsecure";
|
||||
dir = 2;
|
||||
icon_state = "leftsecure";
|
||||
name = "Centcom Stand";
|
||||
name = "CentCom Stand";
|
||||
req_access_txt = "109"
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
@@ -4946,9 +4941,9 @@
|
||||
/area/centcom/control)
|
||||
"ny" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/centcom/control)
|
||||
@@ -5142,7 +5137,7 @@
|
||||
"nX" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/weapon/phone{
|
||||
desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in.";
|
||||
desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in.";
|
||||
pixel_x = -3;
|
||||
pixel_y = 3
|
||||
},
|
||||
@@ -5242,7 +5237,7 @@
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/window/brigdoor{
|
||||
name = "Centcom Customs";
|
||||
name = "CentCom Customs";
|
||||
icon_state = "rightsecure";
|
||||
dir = 4;
|
||||
req_access_txt = "109";
|
||||
@@ -5772,7 +5767,7 @@
|
||||
/area/centcom/ferry)
|
||||
"pu" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
@@ -5783,7 +5778,7 @@
|
||||
/area/centcom/supply)
|
||||
"pv" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom";
|
||||
name = "CentCom";
|
||||
opacity = 1;
|
||||
req_access_txt = "0"
|
||||
},
|
||||
@@ -5809,10 +5804,7 @@
|
||||
/turf/open/floor/engine/cult,
|
||||
/area/wizard_station)
|
||||
"pz" = (
|
||||
/obj/item/weapon/paper{
|
||||
info = "GET DAT FUKKEN DISK";
|
||||
name = "memo"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/stations/centcom/disk_memo,
|
||||
/obj/structure/noticeboard{
|
||||
pixel_x = -32
|
||||
},
|
||||
@@ -6463,7 +6455,7 @@
|
||||
/area/centcom/control)
|
||||
"qQ" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
@@ -6660,7 +6652,7 @@
|
||||
/area/centcom/ferry)
|
||||
"rw" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Supply";
|
||||
name = "CentCom Supply";
|
||||
req_access_txt = "106"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -6914,7 +6906,7 @@
|
||||
"rW" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom";
|
||||
name = "CentCom";
|
||||
opacity = 1;
|
||||
req_access_txt = "0"
|
||||
},
|
||||
@@ -7332,7 +7324,7 @@
|
||||
base_state = "rightsecure";
|
||||
dir = 1;
|
||||
icon_state = "rightsecure";
|
||||
name = "Centcom Customs";
|
||||
name = "CentCom Customs";
|
||||
req_access_txt = "109"
|
||||
},
|
||||
/obj/machinery/door/window,
|
||||
@@ -7360,7 +7352,7 @@
|
||||
dwidth = 25;
|
||||
height = 50;
|
||||
id = "emergency_away";
|
||||
name = "Centcom Emergency Shuttle Dock";
|
||||
name = "CentCom Emergency Shuttle Dock";
|
||||
width = 50
|
||||
},
|
||||
/turf/open/space,
|
||||
@@ -7600,9 +7592,9 @@
|
||||
/area/centcom/control)
|
||||
"tD" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
@@ -7741,7 +7733,7 @@
|
||||
"tZ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
@@ -7795,7 +7787,7 @@
|
||||
/area/centcom/ferry)
|
||||
"ug" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Customs";
|
||||
name = "CentCom Customs";
|
||||
opacity = 1;
|
||||
req_access_txt = "109"
|
||||
},
|
||||
@@ -7936,7 +7928,7 @@
|
||||
dwidth = 2;
|
||||
height = 13;
|
||||
id = "ferry_away";
|
||||
name = "Centcom Ferry Dock";
|
||||
name = "CentCom Ferry Dock";
|
||||
width = 5
|
||||
},
|
||||
/turf/open/space,
|
||||
@@ -8402,7 +8394,7 @@
|
||||
"vR" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/weapon/phone{
|
||||
desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in.";
|
||||
desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in.";
|
||||
pixel_x = -3;
|
||||
pixel_y = 3
|
||||
},
|
||||
@@ -9176,7 +9168,7 @@
|
||||
base_state = "rightsecure";
|
||||
dir = 1;
|
||||
icon_state = "rightsecure";
|
||||
name = "Centcom Customs";
|
||||
name = "CentCom Customs";
|
||||
req_access_txt = "109"
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
@@ -9200,7 +9192,7 @@
|
||||
base_state = "rightsecure";
|
||||
dir = 1;
|
||||
icon_state = "rightsecure";
|
||||
name = "Centcom Customs";
|
||||
name = "CentCom Customs";
|
||||
req_access_txt = "109"
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
@@ -9495,9 +9487,9 @@
|
||||
/area/centcom/control)
|
||||
"yy" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
@@ -9767,7 +9759,7 @@
|
||||
/obj/item/weapon/folder/red,
|
||||
/obj/item/weapon/pen/red,
|
||||
/obj/machinery/door/window/brigdoor{
|
||||
name = "Centcom Customs";
|
||||
name = "CentCom Customs";
|
||||
icon_state = "rightsecure";
|
||||
dir = 4;
|
||||
req_access_txt = "109";
|
||||
@@ -9782,7 +9774,7 @@
|
||||
/obj/item/weapon/folder/white,
|
||||
/obj/item/weapon/pen/blue,
|
||||
/obj/machinery/door/window/brigdoor{
|
||||
name = "Centcom Customs";
|
||||
name = "CentCom Customs";
|
||||
icon_state = "rightsecure";
|
||||
dir = 8;
|
||||
req_access_txt = "109";
|
||||
@@ -10069,7 +10061,7 @@
|
||||
/area/tdome/tdomeobserve)
|
||||
"zT" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
@@ -10150,7 +10142,7 @@
|
||||
"Af" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/item/weapon/paper/pamphlet/ccaInfo,
|
||||
/obj/item/weapon/paper/pamphlet/centcom/visitor_info,
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/tdome/tdomeobserve)
|
||||
@@ -10338,7 +10330,7 @@
|
||||
base_state = "rightsecure";
|
||||
dir = 2;
|
||||
icon_state = "rightsecure";
|
||||
name = "Thunderdoom Booth";
|
||||
name = "Thunderdome Booth";
|
||||
req_access_txt = "109"
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
@@ -10690,7 +10682,6 @@
|
||||
/obj/machinery/door/airlock/silver{
|
||||
name = "Shower"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/tdome/tdomeobserve)
|
||||
"BK" = (
|
||||
@@ -12152,9 +12143,7 @@
|
||||
/area/shuttle/escape)
|
||||
"Fp" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/weapon/paper{
|
||||
info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.<br><br>We apologise for the inconvinience this may cause you.<br><br>Please enjoy the use of this complementary book.<br><br>Sincerely,<br>Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/stations/centcom/broken_evac,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"Fq" = (
|
||||
@@ -12193,7 +12182,7 @@
|
||||
"Fu" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/weapon/phone{
|
||||
desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in.";
|
||||
desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in.";
|
||||
pixel_x = -3;
|
||||
pixel_y = 3
|
||||
},
|
||||
@@ -12656,7 +12645,7 @@
|
||||
/area/abductor_ship)
|
||||
"GS" = (
|
||||
/obj/item/weapon/surgical_drapes,
|
||||
/obj/item/weapon/paper/abductor,
|
||||
/obj/item/weapon/paper/guides/antag/abductor,
|
||||
/obj/item/weapon/scalpel/alien,
|
||||
/obj/structure/table/abductor,
|
||||
/obj/item/weapon/cautery/alien,
|
||||
@@ -13658,7 +13647,7 @@
|
||||
/area/centcom/evac)
|
||||
"Mb" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Centcom Security";
|
||||
name = "CentCom Security";
|
||||
opacity = 1;
|
||||
req_access_txt = "101"
|
||||
},
|
||||
@@ -13669,7 +13658,7 @@
|
||||
/area/centcom/evac)
|
||||
"Mc" = (
|
||||
/turf/closed/indestructible/fakedoor{
|
||||
name = "Centcom"
|
||||
name = "CentCom"
|
||||
},
|
||||
/area/centcom/evac)
|
||||
"Md" = (
|
||||
@@ -14389,6 +14378,12 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Gf
|
||||
Gv
|
||||
GF
|
||||
@@ -14473,12 +14468,6 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Gf
|
||||
Gv
|
||||
GF
|
||||
@@ -14645,6 +14634,12 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Ga
|
||||
Gg
|
||||
GA
|
||||
@@ -14729,12 +14724,6 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Ga
|
||||
Gg
|
||||
Ht
|
||||
@@ -14902,6 +14891,12 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Gb
|
||||
Gm
|
||||
Gx
|
||||
@@ -14986,12 +14981,6 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Gb
|
||||
Hn
|
||||
Gx
|
||||
@@ -15159,6 +15148,12 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Gc
|
||||
Gn
|
||||
Gx
|
||||
@@ -15243,12 +15238,6 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Gc
|
||||
Ho
|
||||
Gx
|
||||
@@ -15416,6 +15405,12 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Gd
|
||||
Go
|
||||
Gx
|
||||
@@ -15500,12 +15495,6 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Gd
|
||||
Hp
|
||||
Gx
|
||||
@@ -15673,6 +15662,12 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Ge
|
||||
Gk
|
||||
Gy
|
||||
@@ -15757,12 +15752,6 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Ge
|
||||
Gk
|
||||
Gy
|
||||
@@ -15931,6 +15920,12 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Gl
|
||||
Gz
|
||||
GL
|
||||
@@ -16015,12 +16010,6 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Gl
|
||||
Gz
|
||||
GL
|
||||
@@ -26988,6 +26977,11 @@ hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
lF
|
||||
hq
|
||||
hq
|
||||
@@ -27016,11 +27010,6 @@ hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
hq
|
||||
Kl
|
||||
hm
|
||||
aa
|
||||
@@ -126,9 +126,7 @@
|
||||
"x" = (
|
||||
/obj/structure/bed,
|
||||
/obj/item/weapon/bedsheet/red,
|
||||
/obj/item/weapon/paper{
|
||||
info = "i love daniel<br>daniel is my best friend<br><br>you are tearing me apart elise"
|
||||
},
|
||||
/obj/item/weapon/paper/fluff/shuttles/daniel,
|
||||
/turf/open/floor/carpet,
|
||||
/area/shuttle/escape)
|
||||
"y" = (
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/turf/open/space,
|
||||
/turf/open/space/basic,
|
||||
/area/space)
|
||||
"ab" = (
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
@@ -159,7 +159,7 @@
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium/brig,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aE" = (
|
||||
/obj/machinery/door/airlock/glass{
|
||||
@@ -172,9 +172,6 @@
|
||||
/obj/item/weapon/twohanded/required/kirbyplants{
|
||||
icon_state = "plant-22"
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"aG" = (
|
||||
@@ -286,7 +283,7 @@
|
||||
port_angle = 90;
|
||||
width = 18
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aY" = (
|
||||
/obj/machinery/light{
|
||||
@@ -311,10 +308,8 @@
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"ba" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/shuttle/engine/heater,
|
||||
/obj/structure/window/shuttle,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"bb" = (
|
||||
@@ -326,6 +321,24 @@
|
||||
/obj/structure/shuttle/engine/propulsion,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"bd" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"be" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"bf" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"bg" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"bh" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"bi" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
@@ -414,13 +427,13 @@ ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ao
|
||||
bf
|
||||
aI
|
||||
aL
|
||||
aL
|
||||
aL
|
||||
ao
|
||||
ab
|
||||
aT
|
||||
bh
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
@@ -430,7 +443,7 @@ ab
|
||||
(6,1,1) = {"
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
bd
|
||||
am
|
||||
au
|
||||
aA
|
||||
@@ -439,7 +452,7 @@ ao
|
||||
ao
|
||||
ao
|
||||
ao
|
||||
aT
|
||||
ao
|
||||
ab
|
||||
aV
|
||||
aY
|
||||
@@ -510,7 +523,7 @@ bc
|
||||
(10,1,1) = {"
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
be
|
||||
aq
|
||||
av
|
||||
aA
|
||||
@@ -519,7 +532,7 @@ ao
|
||||
ao
|
||||
ao
|
||||
ao
|
||||
aT
|
||||
ao
|
||||
ab
|
||||
aW
|
||||
aZ
|
||||
@@ -534,13 +547,13 @@ ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ao
|
||||
bg
|
||||
aI
|
||||
aK
|
||||
aK
|
||||
aK
|
||||
ao
|
||||
ab
|
||||
aT
|
||||
bi
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/turf/open/space,
|
||||
/obj/machinery/porta_turret/centcomm_shuttle{
|
||||
/obj/machinery/porta_turret/centcom_shuttle{
|
||||
dir = 9
|
||||
},
|
||||
/turf/closed/wall/mineral/plastitanium{
|
||||
@@ -623,7 +623,7 @@
|
||||
/obj/docking_port/mobile/emergency{
|
||||
dwidth = 14;
|
||||
height = 18;
|
||||
name = "Centcomm Raven Battlecruiser";
|
||||
name = "CentCom Raven Battlecruiser";
|
||||
timid = 1;
|
||||
width = 32
|
||||
},
|
||||
@@ -980,7 +980,7 @@
|
||||
/area/shuttle/escape)
|
||||
"cr" = (
|
||||
/turf/open/space,
|
||||
/obj/machinery/porta_turret/centcomm_shuttle{
|
||||
/obj/machinery/porta_turret/centcom_shuttle{
|
||||
dir = 5
|
||||
},
|
||||
/turf/closed/wall/mineral/plastitanium{
|
||||
@@ -1006,7 +1006,7 @@
|
||||
/area/shuttle/escape)
|
||||
"cw" = (
|
||||
/turf/open/space,
|
||||
/obj/machinery/porta_turret/centcomm_shuttle{
|
||||
/obj/machinery/porta_turret/centcom_shuttle{
|
||||
dir = 5
|
||||
},
|
||||
/turf/closed/wall/mineral/plastitanium{
|
||||
@@ -1108,7 +1108,7 @@
|
||||
/area/shuttle/escape)
|
||||
"cR" = (
|
||||
/turf/open/space,
|
||||
/obj/machinery/porta_turret/centcomm_shuttle{
|
||||
/obj/machinery/porta_turret/centcom_shuttle{
|
||||
dir = 5
|
||||
},
|
||||
/turf/closed/wall/mineral/plastitanium{
|
||||
@@ -1311,7 +1311,7 @@
|
||||
/area/shuttle/escape)
|
||||
"dQ" = (
|
||||
/turf/open/space,
|
||||
/obj/machinery/porta_turret/centcomm_shuttle{
|
||||
/obj/machinery/porta_turret/centcom_shuttle{
|
||||
dir = 5
|
||||
},
|
||||
/turf/closed/wall/mineral/plastitanium{
|
||||
@@ -1333,7 +1333,7 @@
|
||||
/area/shuttle/escape)
|
||||
"dV" = (
|
||||
/turf/open/space,
|
||||
/obj/machinery/porta_turret/centcomm_shuttle{
|
||||
/obj/machinery/porta_turret/centcom_shuttle{
|
||||
dir = 5
|
||||
},
|
||||
/turf/closed/wall/mineral/plastitanium{
|
||||
@@ -1379,7 +1379,7 @@
|
||||
/area/shuttle/escape)
|
||||
"ei" = (
|
||||
/turf/open/space,
|
||||
/obj/machinery/porta_turret/centcomm_shuttle{
|
||||
/obj/machinery/porta_turret/centcom_shuttle{
|
||||
dir = 10
|
||||
},
|
||||
/turf/closed/wall/mineral/plastitanium{
|
||||
@@ -1400,7 +1400,7 @@
|
||||
/area/shuttle/escape)
|
||||
"en" = (
|
||||
/turf/open/space,
|
||||
/obj/machinery/porta_turret/centcomm_shuttle{
|
||||
/obj/machinery/porta_turret/centcom_shuttle{
|
||||
dir = 6
|
||||
},
|
||||
/turf/closed/wall/mineral/plastitanium{
|
||||
@@ -1461,7 +1461,7 @@
|
||||
/area/shuttle/escape)
|
||||
"eA" = (
|
||||
/turf/open/space,
|
||||
/obj/machinery/porta_turret/centcomm_shuttle{
|
||||
/obj/machinery/porta_turret/centcom_shuttle{
|
||||
dir = 5
|
||||
},
|
||||
/turf/closed/wall/mineral/plastitanium{
|
||||
|
||||
@@ -56,18 +56,14 @@
|
||||
/turf/open/floor/noslip,
|
||||
/area/shuttle/escape)
|
||||
"am" = (
|
||||
/obj/structure/reflector/single{
|
||||
anchored = 1
|
||||
},
|
||||
/obj/structure/reflector/single/anchored,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"an" = (
|
||||
/obj/structure/reflector/box{
|
||||
anchored = 1
|
||||
},
|
||||
/obj/structure/reflector/box/anchored,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ao" = (
|
||||
@@ -221,15 +217,11 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"aN" = (
|
||||
/obj/structure/reflector/single{
|
||||
anchored = 1
|
||||
},
|
||||
/obj/structure/reflector/single/anchored,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"aO" = (
|
||||
/obj/structure/reflector/double{
|
||||
anchored = 1
|
||||
},
|
||||
/obj/structure/reflector/double/anchored,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"aP" = (
|
||||
|
||||
@@ -131,12 +131,12 @@
|
||||
"aq" = (
|
||||
/obj/structure/closet/wardrobe/mixed,
|
||||
/obj/item/clothing/under/rank/centcom_officer{
|
||||
desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time.";
|
||||
name = "\improper dusty old Centcom jumpsuit"
|
||||
desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time.";
|
||||
name = "\improper dusty old CentCom jumpsuit"
|
||||
},
|
||||
/obj/item/clothing/under/rank/centcom_commander{
|
||||
desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time.";
|
||||
name = "\improper dusty old Centcom jumpsuit"
|
||||
desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time.";
|
||||
name = "\improper dusty old CentCom jumpsuit"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt{
|
||||
desc = "A thin layer of dust coating the floor.";
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 627 B |
@@ -1,9 +0,0 @@
|
||||
diff a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm (rejected hunks)
|
||||
@@ -114,4 +114,6 @@
|
||||
#define EASYLIMBATTACHMENT 23
|
||||
#define TOXINLOVER 24
|
||||
#define DIGITIGRADE 25 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi)
|
||||
-#define NO_UNDERWEAR 26
|
||||
+#define NO_UNDERWEAR 26
|
||||
+#define NOLIVER 27
|
||||
+#define NOSTOMACH 28
|
||||
@@ -76,7 +76,7 @@
|
||||
#define ACCESS_CENT_STORAGE 106//Generic storage areas.
|
||||
#define ACCESS_CENT_TELEPORTER 107//Teleporter.
|
||||
#define ACCESS_CENT_CAPTAIN 109//Captain's office/ID comp/AI.
|
||||
#define ACCESS_CENT_BAR 110 // The non-existent Centcom Bar
|
||||
#define ACCESS_CENT_BAR 110 // The non-existent CentCom Bar
|
||||
|
||||
//The Syndicate
|
||||
#define ACCESS_SYNDICATE 150//General Syndicate Access
|
||||
@@ -93,4 +93,9 @@
|
||||
#define ACCESS_AWAY_GENERIC1 205//Away generic access
|
||||
#define ACCESS_AWAY_GENERIC2 206
|
||||
#define ACCESS_AWAY_GENERIC3 207
|
||||
#define ACCESS_AWAY_GENERIC4 208
|
||||
#define ACCESS_AWAY_GENERIC4 208
|
||||
|
||||
//Special, for anything that's basically internal
|
||||
#define ACCESS_BLOODCULT 250
|
||||
#define ACCESS_CLOCKCULT 251
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
#define ADMIN_SM(user) "(<a href='?_src_=holder;subtlemessage=\ref[user]'>SM</a>)"
|
||||
#define ADMIN_TP(user) "(<a href='?_src_=holder;traitor=\ref[user]'>TP</a>)"
|
||||
#define ADMIN_KICK(user) "(<a href='?_src_=holder;boot2=\ref[user]'>KICK</a>)"
|
||||
#define ADMIN_CENTCOM_REPLY(user) "(<a href='?_src_=holder;CentcommReply=\ref[user]'>RPLY</a>)"
|
||||
#define ADMIN_CENTCOM_REPLY(user) "(<a href='?_src_=holder;CentComReply=\ref[user]'>RPLY</a>)"
|
||||
#define ADMIN_SYNDICATE_REPLY(user) "(<a href='?_src_=holder;SyndicateReply=\ref[user]'>RPLY</a>)"
|
||||
#define ADMIN_SC(user) "(<a href='?_src_=holder;adminspawncookie=\ref[user]'>SC</a>)"
|
||||
#define ADMIN_SMITE(user) "(<a href='?_src_=holder;adminsmite=\ref[user]'>SMITE</a>)"
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
GLOBAL_VAR_INIT(clockwork_construction_value, 0) //The total value of all structures built by the clockwork cult
|
||||
GLOBAL_VAR_INIT(clockwork_caches, 0) //How many clockwork caches exist in the world (not each individual)
|
||||
GLOBAL_VAR_INIT(clockwork_vitality, 0) //How much Vitality is stored, total
|
||||
GLOBAL_LIST_EMPTY(active_daemons) //A list of all active tinkerer's daemons
|
||||
GLOBAL_LIST_EMPTY(all_clockwork_objects) //All clockwork items, structures, and effects in existence
|
||||
GLOBAL_LIST_EMPTY(all_clockwork_mobs) //All clockwork SERVANTS (not creatures) in existence
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
diff a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm (rejected hunks)
|
||||
@@ -9,6 +9,7 @@
|
||||
#define OXY "oxy"
|
||||
#define CLONE "clone"
|
||||
#define STAMINA "stamina"
|
||||
+#define BRAIN "brain"
|
||||
|
||||
//bitflag damage defines used for suicide_act
|
||||
#define BRUTELOSS 1
|
||||
@@ -5,7 +5,7 @@ Names of z-level do not matter, but order does greatly, for instances such as ch
|
||||
|
||||
current as of 2016/6/2
|
||||
z1 = station
|
||||
z2 = centcomm
|
||||
z2 = centcom
|
||||
z5 = mining
|
||||
Everything else = randomized space
|
||||
Last space-z level = empty
|
||||
@@ -16,7 +16,7 @@ Last space-z level = empty
|
||||
#define UNAFFECTED 0
|
||||
|
||||
#define MAIN_STATION "Main Station"
|
||||
#define CENTCOMM "CentComm"
|
||||
#define CENTCOM "CentCom"
|
||||
#define EMPTY_AREA_1 "Empty Area 1"
|
||||
#define EMPTY_AREA_2 "Empty Area 2"
|
||||
#define MINING "Mining Asteroid"
|
||||
|
||||
@@ -46,8 +46,8 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
|
||||
//Human Overlays Indexes/////////
|
||||
//citadel code
|
||||
#define MUTATIONS_LAYER 30 //mutations. Tk headglows, cold resistance glow, etc
|
||||
#define BODY_BEHIND_LAYER 29 //certain mutantrace features (tail when looking south) that must appear behind the body parts
|
||||
#define GENITALS_BEHIND_LAYER 28
|
||||
#define GENITALS_BEHIND_LAYER 29 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer
|
||||
#define BODY_BEHIND_LAYER 28 //certain mutantrace features (tail when looking south) that must appear behind the body parts
|
||||
#define BODYPARTS_LAYER 27 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
|
||||
#define BODY_ADJ_LAYER 26 //certain mutantrace features (snout, body markings) that must appear above the body parts
|
||||
#define GENITALS_ADJ_LAYER 25
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#define SHUTTLE_ALREADY_DOCKED "we_are_already_docked"
|
||||
#define SHUTTLE_SOMEONE_ELSE_DOCKED "someone_else_docked"
|
||||
|
||||
//Launching Shuttles to Centcomm
|
||||
//Launching Shuttles to CentCom
|
||||
#define NOLAUNCH -1
|
||||
#define UNLAUNCHED 0
|
||||
#define ENDGAME_LAUNCHED 1
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
diff a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm (rejected hunks)
|
||||
@@ -5,42 +5,15 @@
|
||||
#define CHANNEL_JUKEBOX 1021
|
||||
#define CHANNEL_JUSTICAR_ARK 1020
|
||||
#define CHANNEL_HEARTBEAT 1019 //sound channel for heartbeats
|
||||
+#define CHANNEL_AMBIENCE 1018
|
||||
+#define CHANNEL_BUZZ 1017
|
||||
+#define CHANNEL_BICYCLE 1016
|
||||
|
||||
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
|
||||
//KEEP IT UPDATED
|
||||
|
||||
-#define CHANNEL_HIGHEST_AVAILABLE 1018
|
||||
+#define CHANNEL_HIGHEST_AVAILABLE 1015
|
||||
|
||||
|
||||
#define SOUND_MINIMUM_PRESSURE 10
|
||||
-#define FALLOFF_SOUNDS 0.5
|
||||
-
|
||||
-//BYOND Sound Environment defines
|
||||
-
|
||||
-#define SOUND_ENV_DEFAULT -1
|
||||
-#define SOUND_ENV_GENERIC 0
|
||||
-#define SOUND_ENV_PADDED_CELL 1
|
||||
-#define SOUND_ENV_ROOM 2
|
||||
-#define SOUND_ENV_BATHROOM 3
|
||||
-#define SOUND_ENV_LIVINGROOM 4
|
||||
-#define SOUND_ENV_STONEROOM 5
|
||||
-#define SOUND_ENV_AUDITORIUM 6
|
||||
-#define SOUND_ENV_CONCERT_HALL 7
|
||||
-#define SOUND_ENV_CAVE 8
|
||||
-#define SOUND_ENV_ARENA 9
|
||||
-#define SOUND_ENV_HANGAR 10
|
||||
-#define SOUND_ENV_CARPETTED_HALLWAY 11
|
||||
-#define SOUND_ENV_HALLWAY 12
|
||||
-#define SOUND_ENV_STONE_CORRIDOOR 13
|
||||
-#define SOUND_ENV_ALLEY 14
|
||||
-#define SOUND_ENV_FOREST 15
|
||||
-#define SOUND_ENV_CITY 16
|
||||
-#define SOUND_ENV_MOUNTAINS 17
|
||||
-#define SOUND_ENV_QUARRY 18
|
||||
-#define SOUND_ENV_PLAIN 19
|
||||
-#define SOUND_ENV_PARKING_LOT 20
|
||||
-#define SOUND_ENV_SEWER_PIPE 21
|
||||
-#define SOUND_ENV_UNDERWATER 22
|
||||
-#define SOUND_ENV_DRUGGED 23
|
||||
-#define SOUND_ENV_DIZZY 24
|
||||
-#define SOUND_ENV_PSYCHOTIC 25
|
||||
\ No newline at end of file
|
||||
+#define FALLOFF_SOUNDS 0.5
|
||||
\ No newline at end of file
|
||||
@@ -175,6 +175,9 @@ Actual Adjacent procs :
|
||||
for(var/obj/structure/window/W in src)
|
||||
if(!W.CanAStarPass(ID, adir))
|
||||
return 1
|
||||
for(var/obj/machinery/door/window/W in src)
|
||||
if(!W.CanAStarPass(ID, adir))
|
||||
return 1
|
||||
for(var/obj/O in T)
|
||||
if(!O.CanAStarPass(ID, rdir, caller))
|
||||
return 1
|
||||
|
||||
@@ -91,16 +91,23 @@
|
||||
//returns a new list with only atoms that are in typecache L
|
||||
/proc/typecache_filter_list(list/atoms, list/typecache)
|
||||
. = list()
|
||||
for (var/thing in atoms)
|
||||
for(var/thing in atoms)
|
||||
var/atom/A = thing
|
||||
if (typecache[A.type])
|
||||
. += A
|
||||
|
||||
/proc/typecache_filter_list_reverse(list/atoms, list/typecache)
|
||||
. = list()
|
||||
for (var/thing in atoms)
|
||||
for(var/thing in atoms)
|
||||
var/atom/A = thing
|
||||
if (!typecache[A.type])
|
||||
if(!typecache[A.type])
|
||||
. += A
|
||||
|
||||
/proc/typecache_filter_multi_list_exclusion(list/atoms, list/typecache_include, list/typecache_exclude)
|
||||
. = list()
|
||||
for(var/thing in atoms)
|
||||
var/atom/A = thing
|
||||
if(typecache_include[A.type] && !typecache_exclude[A.type])
|
||||
. += A
|
||||
|
||||
//Like typesof() or subtypesof(), but returns a typecache instead of a list
|
||||
@@ -177,7 +184,11 @@
|
||||
result = first ^ second
|
||||
return result
|
||||
|
||||
//Pretends to pick an element based on its weight but really just seems to pick a random element.
|
||||
//Picks a random element from a list based on a weighting system:
|
||||
//1. Adds up the total of weights for each element
|
||||
//2. Gets a number between 1 and that total
|
||||
//3. For each element in the list, subtracts its weighting from that number
|
||||
//4. If that makes the number 0 or less, return that element.
|
||||
/proc/pickweight(list/L)
|
||||
var/total = 0
|
||||
var/item
|
||||
|
||||
@@ -48,6 +48,11 @@
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, GLOB.xeno_dorsal_list)
|
||||
//genitals
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list)
|
||||
|
||||
for(var/K in GLOB.cock_shapes_list)
|
||||
var/datum/sprite_accessory/penis/value = GLOB.cock_shapes_list[K]
|
||||
GLOB.cock_shapes_icons[K] = value.icon_state
|
||||
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
|
||||
GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
|
||||
|
||||
+15
-19
@@ -968,32 +968,28 @@ GLOBAL_LIST_EMPTY(friendly_animal_types)
|
||||
/image/proc/setDir(newdir)
|
||||
dir = newdir
|
||||
|
||||
/atom/proc/freeze_icon_index()
|
||||
return "\ref[initial(icon)]-[initial(icon_state)]"
|
||||
#define FROZEN_RED_COLOR "#2E5E69"
|
||||
#define FROZEN_GREEN_COLOR "#60A2A8"
|
||||
#define FROZEN_BLUE_COLOR "#A1AFB1"
|
||||
|
||||
/obj/proc/make_frozen_visual()
|
||||
// Used to make the frozen item visuals for Freon.
|
||||
var/static/list/freeze_item_icons = list()
|
||||
if(resistance_flags & FREEZE_PROOF)
|
||||
return
|
||||
if(!HAS_SECONDARY_FLAG(src, FROZEN) && (initial(icon) && initial(icon_state)))
|
||||
var/index = freeze_icon_index()
|
||||
var/icon/IC
|
||||
var/icon/P = freeze_item_icons[index]
|
||||
if(!P)
|
||||
P = new /icon
|
||||
for(var/iconstate in icon_states(icon))
|
||||
var/icon/O = new('icons/effects/freeze.dmi', "ice_cube")
|
||||
IC = new(icon, iconstate)
|
||||
O.Blend(IC, ICON_ADD)
|
||||
P.Insert(O, iconstate)
|
||||
freeze_item_icons[index] = P
|
||||
icon = P
|
||||
if(!HAS_SECONDARY_FLAG(src, FROZEN))
|
||||
name = "frozen [name]"
|
||||
add_atom_colour(list(FROZEN_RED_COLOR, FROZEN_GREEN_COLOR, FROZEN_BLUE_COLOR, rgb(0,0,0)), TEMPORARY_COLOUR_PRIORITY)
|
||||
alpha -= 25
|
||||
SET_SECONDARY_FLAG(src, FROZEN)
|
||||
|
||||
//Assumes already frozed
|
||||
/obj/proc/make_unfrozen()
|
||||
icon = initial(icon)
|
||||
name = replacetext(name, "frozen ", "")
|
||||
CLEAR_SECONDARY_FLAG(src, FROZEN)
|
||||
if(HAS_SECONDARY_FLAG(src, FROZEN))
|
||||
name = replacetext(name, "frozen ", "")
|
||||
remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, list(FROZEN_RED_COLOR, FROZEN_GREEN_COLOR, FROZEN_BLUE_COLOR, rgb(0,0,0)))
|
||||
alpha += 25
|
||||
CLEAR_SECONDARY_FLAG(src, FROZEN)
|
||||
|
||||
#undef FROZEN_RED_COLOR
|
||||
#undef FROZEN_GREEN_COLOR
|
||||
#undef FROZEN_BLUE_COLOR
|
||||
|
||||
@@ -182,3 +182,41 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4,
|
||||
gaussian_next = R2 * working
|
||||
return (mean + stddev * R1)
|
||||
#undef ACCURACY
|
||||
|
||||
/proc/mouse_angle_from_client(client/client)
|
||||
var/list/mouse_control = params2list(client.mouseParams)
|
||||
if(mouse_control["screen-loc"])
|
||||
var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",")
|
||||
var/list/screen_loc_X = splittext(screen_loc_params[1],":")
|
||||
var/list/screen_loc_Y = splittext(screen_loc_params[2],":")
|
||||
var/x = (text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32)
|
||||
var/y = (text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32)
|
||||
var/screenview = (client.view * 2 + 1) * world.icon_size //Refer to http://www.byond.com/docs/ref/info.html#/client/var/view for mad maths
|
||||
var/ox = round(screenview/2) - client.pixel_x //"origin" x
|
||||
var/oy = round(screenview/2) - client.pixel_y //"origin" y
|
||||
var/angle = NORM_ROT(Atan2(y - oy, x - ox))
|
||||
return angle
|
||||
|
||||
/proc/get_turf_in_angle(angle, turf/starting, increments)
|
||||
var/pixel_x = 0
|
||||
var/pixel_y = 0
|
||||
for(var/i in 1 to increments)
|
||||
pixel_x += sin(angle)+16*sin(angle)*2
|
||||
pixel_y += cos(angle)+16*cos(angle)*2
|
||||
var/new_x = starting.x
|
||||
var/new_y = starting.y
|
||||
while(pixel_x > 16)
|
||||
pixel_x -= 32
|
||||
new_x++
|
||||
while(pixel_x < -16)
|
||||
pixel_x += 32
|
||||
new_x--
|
||||
while(pixel_y > 16)
|
||||
pixel_y -= 32
|
||||
new_y++
|
||||
while(pixel_y < -16)
|
||||
pixel_y += 32
|
||||
new_y--
|
||||
new_x = Clamp(new_x, 0, world.maxx)
|
||||
new_y = Clamp(new_y, 0, world.maxy)
|
||||
return locate(new_x, new_y, starting.z)
|
||||
|
||||
@@ -116,6 +116,7 @@
|
||||
"xenohead" = "None",
|
||||
"xenotail" = "None",
|
||||
"exhibitionist" = FALSE,
|
||||
"genitals_use_skintone" = FALSE,
|
||||
"has_cock" = FALSE,
|
||||
"cock_shape" = pick(GLOB.cock_shapes_list),
|
||||
"cock_length" = 6,
|
||||
@@ -158,8 +159,9 @@
|
||||
"womb_cum_rate" = CUM_RATE,
|
||||
"womb_cum_mult" = CUM_RATE_MULT,
|
||||
"womb_efficiency" = CUM_EFFICIENCY,
|
||||
"womb_fluid" = "femcum"))
|
||||
|
||||
"womb_fluid" = "femcum",
|
||||
"flavor_text" = ""))
|
||||
|
||||
/proc/random_hair_style(gender)
|
||||
switch(gender)
|
||||
if(MALE)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
//When we get into galloping mode, we stay there until both runs win less often than MIN_GALLOP consecutive times.
|
||||
#define MIN_GALLOP 7
|
||||
|
||||
//This is a global instance to allow much of this code to be reused. The interfaces are kept seperately
|
||||
//This is a global instance to allow much of this code to be reused. The interfaces are kept separately
|
||||
GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new())
|
||||
/datum/sortInstance
|
||||
//The array being sorted.
|
||||
|
||||
@@ -48,7 +48,7 @@ Location where the teleport begins, target that will teleport, distance to go, d
|
||||
Random error in tile placement x, error in tile placement y, and block offset.
|
||||
Block offset tells the proc how to place the box. Behind teleport location, relative to starting location, forward, etc.
|
||||
Negative values for offset are accepted, think of it in relation to North, -x is west, -y is south. Error defaults to positive.
|
||||
Turf and target are seperate in case you want to teleport some distance from a turf the target is not standing on or something.
|
||||
Turf and target are separate in case you want to teleport some distance from a turf the target is not standing on or something.
|
||||
*/
|
||||
|
||||
var/dirx = 0//Generic location finding variable.
|
||||
@@ -491,17 +491,26 @@ Turf and target are seperate in case you want to teleport some distance from a t
|
||||
var/y=arcsin(x/sqrt(1+x*x))
|
||||
return y
|
||||
|
||||
/atom/proc/GetAllContents()
|
||||
/atom/proc/GetAllContents(list/ignore_typecache)
|
||||
var/list/processing_list = list(src)
|
||||
var/list/assembled = list()
|
||||
if(ignore_typecache) //If there's a typecache, use it.
|
||||
while(processing_list.len)
|
||||
var/atom/A = processing_list[1]
|
||||
processing_list -= A
|
||||
if(ignore_typecache[A.type])
|
||||
continue
|
||||
processing_list |= (A.contents - assembled)
|
||||
assembled |= A
|
||||
|
||||
while(processing_list.len)
|
||||
var/atom/A = processing_list[1]
|
||||
processing_list -= A
|
||||
else //If there's none, only make this check once for performance.
|
||||
while(processing_list.len)
|
||||
var/atom/A = processing_list[1]
|
||||
processing_list -= A
|
||||
|
||||
processing_list |= (A.contents - assembled)
|
||||
processing_list |= (A.contents - assembled)
|
||||
|
||||
assembled |= A
|
||||
assembled |= A
|
||||
|
||||
return assembled
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ GLOBAL_LIST_EMPTY(tech_list) //list of all /datum/tech datums indexed by id.
|
||||
GLOBAL_LIST_EMPTY(surgeries_list) //list of all surgeries by name, associated with their path.
|
||||
GLOBAL_LIST_EMPTY(crafting_recipes) //list of all table craft recipes
|
||||
GLOBAL_LIST_EMPTY(rcd_list) //list of Rapid Construction Devices.
|
||||
GLOBAL_LIST_EMPTY(apcs_list) //list of all Area Power Controller machines, seperate from machines for powernet speeeeeeed.
|
||||
GLOBAL_LIST_EMPTY(apcs_list) //list of all Area Power Controller machines, separate from machines for powernet speeeeeeed.
|
||||
GLOBAL_LIST_EMPTY(tracked_implants) //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented...
|
||||
GLOBAL_LIST_EMPTY(tracked_chem_implants) //list of implants the prisoner console can track and send inject commands too
|
||||
GLOBAL_LIST_EMPTY(poi_list) //list of points of interest for observe/follow
|
||||
|
||||
+20
-14
@@ -24,17 +24,6 @@
|
||||
active_mousedown_item.onMouseUp(object, location, params, mob)
|
||||
active_mousedown_item = null
|
||||
|
||||
/client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params)
|
||||
mouseParams = params
|
||||
mouseLocation = over_location
|
||||
mouseObject = over_object
|
||||
mouseControlObject = over_control
|
||||
if(selected_target[1] && over_object && over_object.IsAutoclickable())
|
||||
selected_target[1] = over_object
|
||||
selected_target[2] = params
|
||||
if(active_mousedown_item)
|
||||
active_mousedown_item.onMouseDrag(src_object, over_object, src_location, over_location, params, mob)
|
||||
|
||||
/mob/proc/CanMobAutoclick(object, location, params)
|
||||
|
||||
/mob/living/carbon/CanMobAutoclick(atom/object, location, params)
|
||||
@@ -63,9 +52,6 @@
|
||||
/obj/item/proc/onMouseUp(object, location, params, mob)
|
||||
return
|
||||
|
||||
/obj/item/proc/onMouseDrag(src_object, over_object, src_location, over_location, params, mob)
|
||||
return
|
||||
|
||||
/obj/item
|
||||
var/canMouseDown = FALSE
|
||||
|
||||
@@ -90,3 +76,23 @@
|
||||
mouseLocation = location
|
||||
mouseObject = object
|
||||
mouseControlObject = control
|
||||
if(mob && LAZYLEN(mob.mousemove_intercept_objects))
|
||||
for(var/obj/item/I in mob.mousemove_intercept_objects)
|
||||
I.onMouseMove(object, location, control, params)
|
||||
|
||||
/obj/item/proc/onMouseMove(object, location, control, params)
|
||||
return
|
||||
|
||||
/client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params)
|
||||
mouseParams = params
|
||||
mouseLocation = over_location
|
||||
mouseObject = over_object
|
||||
mouseControlObject = over_control
|
||||
if(selected_target[1] && over_object && over_object.IsAutoclickable())
|
||||
selected_target[1] = over_object
|
||||
selected_target[2] = params
|
||||
if(active_mousedown_item)
|
||||
active_mousedown_item.onMouseDrag(src_object, over_object, src_location, over_location, params, mob)
|
||||
|
||||
/obj/item/proc/onMouseDrag(src_object, over_object, src_location, over_location, params, mob)
|
||||
return
|
||||
|
||||
+16
-5
@@ -432,14 +432,26 @@
|
||||
|
||||
/obj/screen/click_catcher
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "click_catcher"
|
||||
icon_state = "flash"
|
||||
plane = CLICKCATCHER_PLANE
|
||||
mouse_opacity = 2
|
||||
screen_loc = "CENTER"
|
||||
|
||||
/obj/screen/click_catcher/New()
|
||||
..()
|
||||
transform = matrix(200, 0, 0, 0, 200, 0)
|
||||
/obj/screen/click_catcher/proc/UpdateGreed(view_size_x = 7, view_size_y = 7)
|
||||
var/icon/newicon = icon('icons/mob/screen_gen.dmi', "flash")
|
||||
if(view_size_x > 16 || view_size_y > 16)
|
||||
newicon.Scale((16 * 2 + 1) * world.icon_size,(16 * 2 + 1) * world.icon_size)
|
||||
icon = newicon
|
||||
var/tx = view_size_x/16
|
||||
var/ty = view_size_y/16
|
||||
var/matrix/M = new
|
||||
M.Scale(tx, ty)
|
||||
transform = M
|
||||
screen_loc = "CENTER-16,CENTER-16"
|
||||
else
|
||||
screen_loc = "CENTER-[view_size_x],CENTER-[view_size_y]"
|
||||
newicon.Scale((view_size_x * 2 + 1) * world.icon_size,(view_size_y * 2 + 1) * world.icon_size)
|
||||
icon = newicon
|
||||
|
||||
/obj/screen/click_catcher/Click(location, control, params)
|
||||
var/list/modifiers = params2list(params)
|
||||
@@ -453,7 +465,6 @@
|
||||
T.Click(location, control, params)
|
||||
. = 1
|
||||
|
||||
|
||||
/* MouseWheelOn */
|
||||
|
||||
/mob/proc/MouseWheelOn(atom/A, delta_x, delta_y, params)
|
||||
|
||||
+36
-16
@@ -56,8 +56,7 @@
|
||||
|
||||
var/obj/item/W = get_active_held_item()
|
||||
|
||||
// Cyborgs have no range-checking unless there is item use
|
||||
if(!W)
|
||||
if(!W && get_dist(src,A) <= remote_range)
|
||||
A.attack_robot(src)
|
||||
return
|
||||
|
||||
@@ -106,38 +105,59 @@
|
||||
/atom/proc/BorgCtrlShiftClick(mob/living/silicon/robot/user) //forward to human click if not overriden
|
||||
CtrlShiftClick(user)
|
||||
|
||||
/obj/machinery/door/airlock/BorgCtrlShiftClick() // Sets/Unsets Emergency Access Override Forwards to AI code.
|
||||
AICtrlShiftClick()
|
||||
/obj/machinery/door/airlock/BorgCtrlShiftClick(mob/living/silicon/robot/user) // Sets/Unsets Emergency Access Override Forwards to AI code.
|
||||
if(get_dist(src,user) <= user.remote_range)
|
||||
AICtrlShiftClick()
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
/atom/proc/BorgShiftClick(mob/living/silicon/robot/user) //forward to human click if not overriden
|
||||
ShiftClick(user)
|
||||
|
||||
/obj/machinery/door/airlock/BorgShiftClick() // Opens and closes doors! Forwards to AI code.
|
||||
AIShiftClick()
|
||||
/obj/machinery/door/airlock/BorgShiftClick(mob/living/silicon/robot/user) // Opens and closes doors! Forwards to AI code.
|
||||
if(get_dist(src,user) <= user.remote_range)
|
||||
AIShiftClick()
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
/atom/proc/BorgCtrlClick(mob/living/silicon/robot/user) //forward to human click if not overriden
|
||||
CtrlClick(user)
|
||||
|
||||
/obj/machinery/door/airlock/BorgCtrlClick() // Bolts doors. Forwards to AI code.
|
||||
AICtrlClick()
|
||||
/obj/machinery/door/airlock/BorgCtrlClick(mob/living/silicon/robot/user) // Bolts doors. Forwards to AI code.
|
||||
if(get_dist(src,user) <= user.remote_range)
|
||||
AICtrlClick()
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/machinery/power/apc/BorgCtrlClick() // turns off/on APCs. Forwards to AI code.
|
||||
AICtrlClick()
|
||||
/obj/machinery/power/apc/BorgCtrlClick(mob/living/silicon/robot/user) // turns off/on APCs. Forwards to AI code.
|
||||
if(get_dist(src,user) <= user.remote_range)
|
||||
AICtrlClick()
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/machinery/turretid/BorgCtrlClick() //turret control on/off. Forwards to AI code.
|
||||
AICtrlClick()
|
||||
/obj/machinery/turretid/BorgCtrlClick(mob/living/silicon/robot/user) //turret control on/off. Forwards to AI code.
|
||||
if(get_dist(src,user) <= user.remote_range)
|
||||
AICtrlClick()
|
||||
else
|
||||
..()
|
||||
|
||||
/atom/proc/BorgAltClick(mob/living/silicon/robot/user)
|
||||
AltClick(user)
|
||||
return
|
||||
|
||||
/obj/machinery/door/airlock/BorgAltClick() // Eletrifies doors. Forwards to AI code.
|
||||
AIAltClick()
|
||||
/obj/machinery/door/airlock/BorgAltClick(mob/living/silicon/robot/user) // Eletrifies doors. Forwards to AI code.
|
||||
if(get_dist(src,user) <= user.remote_range)
|
||||
AIAltClick()
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/machinery/turretid/BorgAltClick() //turret lethal on/off. Forwards to AI code.
|
||||
AIAltClick()
|
||||
/obj/machinery/turretid/BorgAltClick(mob/living/silicon/robot/user) //turret lethal on/off. Forwards to AI code.
|
||||
if(get_dist(src,user) <= user.remote_range)
|
||||
AIAltClick()
|
||||
else
|
||||
..()
|
||||
|
||||
/*
|
||||
As with AI, these are not used in click code,
|
||||
|
||||
@@ -205,7 +205,7 @@ or something covering your eyes."
|
||||
/obj/screen/alert/embeddedobject
|
||||
name = "Embedded Object"
|
||||
desc = "Something got lodged into your flesh and is causing major bleeding. It might fall out with time, but surgery is the safest way. \
|
||||
If you're feeling frisky, click yourself in help intent to pull the object out."
|
||||
If you're feeling frisky, examine yourself and click the underlined item to pull the object out."
|
||||
icon_state = "embeddedobject"
|
||||
|
||||
/obj/screen/alert/embeddedobject/Click()
|
||||
|
||||
@@ -145,6 +145,7 @@
|
||||
return 0
|
||||
|
||||
screenmob.client.screen = list()
|
||||
screenmob.client.apply_clickcatcher()
|
||||
|
||||
var/display_hud_version = version
|
||||
if(!display_hud_version) //If 0 or blank, display the next hud version
|
||||
|
||||
@@ -281,7 +281,7 @@
|
||||
to_chat(H, "<span class='notice'>You are now running on internals from the [H.r_store] in your right pocket.</span>")
|
||||
H.internal = H.r_store
|
||||
|
||||
//Seperate so CO2 jetpacks are a little less cumbersome.
|
||||
//Separate so CO2 jetpacks are a little less cumbersome.
|
||||
if(!C.internal && istype(C.back, /obj/item/weapon/tank))
|
||||
to_chat(C, "<span class='notice'>You are now running on internals from the [C.back] on your back.</span>")
|
||||
C.internal = C.back
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
return
|
||||
new /obj/effect/temp_visual/telekinesis(loc)
|
||||
user.UnarmedAttack(src,0) // attack_hand, attack_paw, etc
|
||||
add_hiddenprint(user)
|
||||
return
|
||||
|
||||
/obj/attack_tk(mob/user)
|
||||
@@ -34,6 +35,7 @@
|
||||
O.tk_user = user
|
||||
if(O.focus_object(src))
|
||||
user.put_in_active_hand(O)
|
||||
add_hiddenprint(user)
|
||||
|
||||
/mob/attack_tk(mob/user)
|
||||
return
|
||||
|
||||
@@ -53,6 +53,7 @@ GLOBAL_LIST_EMPTY(xeno_dorsal_list)
|
||||
|
||||
//Genitals and Arousal Lists
|
||||
GLOBAL_LIST_EMPTY(cock_shapes_list)//global_lists.dm for the list initializations //Now also _DATASTRUCTURES globals.dm
|
||||
GLOBAL_LIST_EMPTY(cock_shapes_icons) //Associated list for names->icon_states for cockshapes.
|
||||
GLOBAL_LIST_EMPTY(breasts_size_list)
|
||||
GLOBAL_LIST_EMPTY(breasts_shapes_list)
|
||||
GLOBAL_LIST_EMPTY(vagina_shapes_list)
|
||||
|
||||
+129
-31
@@ -6,7 +6,7 @@
|
||||
var/arousal_rate = 1 //The base rate that arousal will increase in this mob.
|
||||
var/arousal_loss_rate = 1 //How easily arousal can be relieved for this mob.
|
||||
var/canbearoused = FALSE //Mob-level disabler for arousal. Starts off and can be enabled as features are added for different mob types.
|
||||
var/mb_cd_length = 50 //5 second cooldown for masturbating because fuck spam
|
||||
var/mb_cd_length = 100 //5 second cooldown for masturbating because fuck spam.
|
||||
var/mb_cd_timer = 0 //The timer itself
|
||||
|
||||
/mob/living/carbon/human
|
||||
@@ -150,14 +150,14 @@
|
||||
return 0
|
||||
var/mob/living/M = usr
|
||||
if(M.canbearoused)
|
||||
M.mob_masturbate()
|
||||
M.mob_climax()
|
||||
return 1
|
||||
else
|
||||
M << "<span class='warning'>Arousal is disabled. Feature is unavailable.</span>"
|
||||
to_chat(M, "<span class='warning'>Arousal is disabled. Feature is unavailable.</span>")
|
||||
|
||||
|
||||
|
||||
/mob/living/proc/mob_masturbate()//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while.
|
||||
/mob/living/proc/mob_climax()//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while.
|
||||
set name = "Masturbate"
|
||||
set category = "IC"
|
||||
if(canbearoused && !restrained() && !stat)
|
||||
@@ -179,45 +179,93 @@
|
||||
PoolOrNew(/obj/effect/decal/cleanable/femcum, loc)
|
||||
*/
|
||||
else
|
||||
src << "<span class='notice'>You aren't aroused enough for that.</span>"
|
||||
to_chat(src, "<span class='notice'>You aren't aroused enough for that.</span>")
|
||||
|
||||
/mob/living/carbon/human/mob_masturbate()
|
||||
/mob/living/carbon/human/mob_climax(forced_climax=FALSE) //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints
|
||||
if(mb_cd_timer > world.time)
|
||||
src << "<span class='warning'>You need to wait [round((mb_cd_timer - world.time)/(20))] seconds before you can do that again!</span>"
|
||||
if(!forced_climax) //Don't spam the message to the victim if forced to come too fast
|
||||
to_chat(src, "<span class='warning'>You need to wait [round((mb_cd_timer - world.time)/(20))] seconds before you can do that again!</span>")
|
||||
return
|
||||
mb_cd_timer = (world.time + mb_cd_length)
|
||||
var/list/genitals_list = list()
|
||||
var/obj/item/organ/genital/SG = null//originally selected_genital
|
||||
var/list/containers_list = list()
|
||||
var/obj/item/weapon/reagent_containers/SC = null
|
||||
var/datum/reagents/fluid_source = null
|
||||
var/into_container = 0
|
||||
var/arms = get_num_arms()
|
||||
var/free_hands = arms
|
||||
var/free_hands = get_num_arms() //arms was only used to know if we had ANY at all
|
||||
var/total_cum = 0
|
||||
var/finished = 0
|
||||
var/mb_time = 30
|
||||
mb_cd_timer = (world.time + mb_cd_length)
|
||||
if(canbearoused && has_dna())
|
||||
if(restrained())
|
||||
src << "<span class='warning'>You can't do that while restrained!</span>"
|
||||
if(stat==2)
|
||||
to_chat(src, "<span class='warning'>You can't do that while dead!</span>")
|
||||
return
|
||||
if(stat)
|
||||
src << "<span class='warning'>You must be conscious to do that!</span>"
|
||||
if(forced_climax) //Something forced us to cum, this is not a masturbation thing and does not progress to the other checks
|
||||
for(var/obj/item/organ/genital/G in internal_organs)
|
||||
if(G.can_masturbate_with) //All capable genitals will orgasm with this
|
||||
var/unable_to_come = FALSE
|
||||
switch(G.type)
|
||||
if(/obj/item/organ/genital/penis)
|
||||
var/obj/item/organ/genital/penis/P = G
|
||||
if(!P.linked_balls)
|
||||
unable_to_come = TRUE
|
||||
else
|
||||
fluid_source = P.linked_balls.reagents
|
||||
|
||||
|
||||
if(/obj/item/organ/genital/vagina)
|
||||
var/obj/item/organ/genital/vagina/V = G
|
||||
if(!V.linked_womb)
|
||||
unable_to_come = TRUE
|
||||
else
|
||||
fluid_source = V.linked_womb.reagents
|
||||
else //Weird, undefined genitalia behaviour
|
||||
unable_to_come = TRUE
|
||||
|
||||
if(unable_to_come)
|
||||
src.visible_message("<span class='danger'>[src] shudders, their [G.name] unable to cum.</span>", \
|
||||
"<span class='userdanger'>Your [G.name] cannot cum, giving no relief.</span>", \
|
||||
"<span class='userdanger'>Your [G.name] cannot cum, giving no relief.</span>")
|
||||
else
|
||||
if(fluid_source)
|
||||
total_cum = fluid_source.total_volume
|
||||
src.visible_message("<span class='danger'>[src] looks like they're about to cum.</span>", \
|
||||
"<span class='green'>You feel yourself about to orgasm.</span>", \
|
||||
"<span class='green'>You feel yourself about to orgasm.</span>")
|
||||
if(do_after(src, mb_time, target = src))
|
||||
if(total_cum > 5)
|
||||
fluid_source.reaction(src.loc, TOUCH, 1, 0)
|
||||
fluid_source.clear_reagents()
|
||||
fluid_source = null //cleanup so this can be used for the next genitalia
|
||||
|
||||
src.visible_message("<span class='danger'>[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!</span>", \
|
||||
"<span class='green'>You're forced to cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""] with your [G].</span>", \
|
||||
"<span class='green'>Your [G] have been forced to climax.</span>")
|
||||
finished = 1
|
||||
if(finished)
|
||||
setArousalLoss(min_arousal)
|
||||
return //Do not proceed to masturbating if all genitals have been forced to orgasm.
|
||||
if(stat==1) //Sleeping people can be forced chemically or with electrical stimulants, for example.
|
||||
to_chat(src, "<span class='warning'>You must be conscious to do that!</span>")
|
||||
return
|
||||
if(restrained())
|
||||
to_chat(src, "<span class='warning'>You can't do that while restrained!</span>")
|
||||
return
|
||||
if(getArousalLoss() < 33)//flat number instead of percentage
|
||||
src << "<span class='warning'>You aren't aroused enough for that!</span>"
|
||||
to_chat(src, "<span class='warning'>You aren't aroused enough for that!</span>")
|
||||
return
|
||||
if(!is_groin_exposed())
|
||||
src << "<span class='warning'>You need to undress, first!</span>"
|
||||
to_chat(src, "<span class='warning'>You need to undress, first!</span>")
|
||||
return
|
||||
if(!arms)
|
||||
src << "<span class='warning'>You need at least one arm.</span>"
|
||||
if(!free_hands)
|
||||
to_chat(src, "<span class='warning'>You need at least one free arm.</span>")
|
||||
return
|
||||
for(var/helditem in held_items)//how many hands are free
|
||||
if(isobj(helditem))
|
||||
free_hands--
|
||||
if(free_hands <= 0)
|
||||
src << "<span class='warning'>You need at least one free hand.</span>"
|
||||
to_chat(src, "<span class='warning'>You need at least one free hand.</span>")
|
||||
return
|
||||
for(var/obj/item/organ/genital/G in internal_organs)
|
||||
if(G.can_masturbate_with)//filter out what you can't masturbate with
|
||||
@@ -240,12 +288,12 @@
|
||||
if(/obj/item/organ/genital/penis)
|
||||
var/obj/item/organ/genital/penis/P = SG
|
||||
if(!P.linked_balls)
|
||||
src << "<span class='warning'>Grow a pair!</span>"
|
||||
to_chat(src, "<span class='warning'>You need a pair of testicles to do this.</span>")
|
||||
return
|
||||
fluid_source = P.linked_balls.reagents
|
||||
total_cum = fluid_source.total_volume
|
||||
if(into_container)//into a glass or beaker or whatever
|
||||
src.visible_message("<span class='danger'>[src] starts [pick("jerking off","stroking")] their [SG] over [SC].</span>", \
|
||||
src.visible_message("<span class='danger'>[src] starts [pick("jerking off","stroking")] their [SG.name] over [SC].</span>", \
|
||||
"<span class='userdanger'>You start jerking off over [SC.name].</span>", \
|
||||
"<span class='userdanger'>You start masturbating.</span>")
|
||||
if(do_after(src, mb_time, target = src) && in_range(src, SC))
|
||||
@@ -254,16 +302,71 @@
|
||||
"<span class='green'>You cum into [SC].</span>", \
|
||||
"<span class='green'>You have relieved yourself.</span>")
|
||||
finished = 1
|
||||
|
||||
else //Not in a container
|
||||
if(src.pulling)
|
||||
if(iscarbon(src.pulling))
|
||||
var/mob/living/carbon/C = src.pulling
|
||||
if(!C.is_groin_exposed())
|
||||
to_chat(src, "<span class='warning'>You must undress someone to climax inside them.</span>")
|
||||
return
|
||||
if(isliving(src.pulling)) //Gotta be alive to fuck it, don't wanna have to code fucking objects that ain't containers...
|
||||
var/mob/living/partner = src.pulling
|
||||
src.visible_message("[src] is about to climax inside [partner]!", \
|
||||
"You're about to climax inside [partner]!", \
|
||||
"<span class='danger'>You're preparing to climax inside someone!</span>")
|
||||
switch(grab_state)
|
||||
if(GRAB_PASSIVE)
|
||||
if(do_after(src, mb_time, target = src) && in_range(src, partner))
|
||||
var/spillage = 0.5 //Leaks a bit on passive grab
|
||||
var/did_spill = FALSE
|
||||
fluid_source.trans_to(partner, total_cum*(1-spillage))
|
||||
total_cum = total_cum*spillage
|
||||
if(total_cum > 5)
|
||||
fluid_source.reaction(partner.loc, TOUCH, 1, 0)
|
||||
did_spill = TRUE
|
||||
fluid_source.clear_reagents()
|
||||
|
||||
src.visible_message("<span class='danger'>[src] ejaculates inside [partner][did_spill ? ", overflowing and spilling":""]!</span>", \
|
||||
"<span class='green'>You ejaculate inside [partner][did_spill ? ", spilling out of them":""].</span>", \
|
||||
"<span class='green'>You have climaxed inside someone[did_spill ? ", spilling out of them":""].</span>")
|
||||
finished = 1
|
||||
else //Aggressive or higher
|
||||
if(do_after(src, mb_time, target = src) && in_range(src, partner))
|
||||
var/spillage = 0.0 //Leakproofing seals
|
||||
fluid_source.trans_to(partner, total_cum*(1-spillage))
|
||||
total_cum = total_cum*spillage
|
||||
if(total_cum > 5)
|
||||
fluid_source.reaction(partner.loc, TOUCH, 1, 0)
|
||||
fluid_source.clear_reagents()
|
||||
|
||||
src.visible_message("<span class='danger'>[src] ejaculates inside [partner], spilling nothing!</span>", \
|
||||
"<span class='green'>You ejaculate inside [partner], spilling nothing.</span>", \
|
||||
"<span class='green'>You have climaxed inside someone, spilling nothing.</span>")
|
||||
finished = 1
|
||||
//Don't care, not coding you fucking a unanchored girder
|
||||
else //No pulling, or pulling non-living things
|
||||
src.visible_message("<span class='danger'>[src] starts [pick("jerking off","stroking")] their [SG].</span>", \
|
||||
"<span class='green'>You start masturbating.</span>", \
|
||||
"<span class='green'>You start masturbating.</span>")
|
||||
if(do_after(src, mb_time, target = src))
|
||||
if(total_cum > 5)
|
||||
fluid_source.reaction(src.loc, TOUCH, 1, 0)
|
||||
fluid_source.clear_reagents()
|
||||
|
||||
src.visible_message("<span class='danger'>[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!</span>", \
|
||||
"<span class='green'>You cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""].</span>", \
|
||||
"<span class='green'>You have relieved yourself.</span>")
|
||||
finished = 1
|
||||
|
||||
if(/obj/item/organ/genital/vagina)
|
||||
var/obj/item/organ/genital/vagina/V = SG
|
||||
if(!V.linked_womb)
|
||||
src << "<span class='warning'>No womb!</span>"
|
||||
to_chat(src, "<span class='warning'>You need a womb to do this.</span>")
|
||||
return
|
||||
fluid_source = V.linked_womb.reagents
|
||||
total_cum = fluid_source.total_volume
|
||||
if(into_container)//into a glass or beaker or whatever
|
||||
src.visible_message("<span class='danger'>[src] starts fingering their vagina over [SC].</span>", \
|
||||
src.visible_message("<span class='danger'>[src] starts fingering their [SG.name] over [SC].</span>", \
|
||||
"<span class='userdanger'>You start fingering over [SC.name].</span>", \
|
||||
"<span class='userdanger'>You start masturbating.</span>")
|
||||
if(do_after(src, mb_time, target = src) && in_range(src, SC))
|
||||
@@ -272,7 +375,7 @@
|
||||
"<span class='green'>You cum into [SC].</span>", \
|
||||
"<span class='green'>You have relieved yourself.</span>")
|
||||
finished = 1
|
||||
|
||||
|
||||
else//not into a container
|
||||
src.visible_message("<span class='danger'>[src] starts fingering their vagina.</span>", \
|
||||
"<span class='userdanger'>You start fingering your vagina.</span>", \
|
||||
@@ -297,10 +400,5 @@
|
||||
setArousalLoss(min_arousal)
|
||||
|
||||
else
|
||||
src << "<span class='warning'>You have no genitals!</span>"
|
||||
to_chat(src, "<span class='warning'>You have no genitals!</span>")
|
||||
return
|
||||
|
||||
/mob/living/carbon/proc/force_orgasm(intensity)
|
||||
if(canbearoused && has_dna() && (has_penis() || has_vagina()))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
M.emote(pick("moan","blush"))
|
||||
if(prob(5))
|
||||
var/aroused_message = pick("You feel frisky.", "You're having trouble suppressing your urges.", "You feel in the mood.")
|
||||
M << "<span class='love'>[aroused_message]</span>"
|
||||
to_chat(M, "<span class='love'>[aroused_message]</span>")
|
||||
..()
|
||||
|
||||
/datum/reagent/aphrodisiacplus
|
||||
@@ -128,15 +128,13 @@
|
||||
else
|
||||
M.emote(pick("moan","blush"))
|
||||
if(prob(5))
|
||||
var/aroused_message
|
||||
if(M.getArousalLoss() > 90)
|
||||
var/aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!")
|
||||
M << "<span class='love'>[aroused_message]</span>"
|
||||
aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!")
|
||||
else
|
||||
var/aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.")
|
||||
M << "<span class='love'>[aroused_message]</span>"
|
||||
// if(iscarbon(M) && has_dna(M))
|
||||
// M.force_ejaculation()
|
||||
..()
|
||||
aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.")
|
||||
to_chat(M, "<span class='love'>[aroused_message]</span>")
|
||||
|
||||
/datum/reagent/aphrodisiacplus/addiction_act_stage2(mob/living/M)
|
||||
if(prob(30))
|
||||
M.adjustBrainLoss(2)
|
||||
@@ -152,11 +150,17 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/aphrodisiacplus/overdose_process(mob/living/M)
|
||||
if(prob(66))
|
||||
if(prob(33))
|
||||
if(M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna())
|
||||
var/mob/living/carbon/human/H = M
|
||||
to_chat(H, "<span class='love'>Your libido is going haywire!</span>")
|
||||
H.mob_climax(forced_climax=TRUE)
|
||||
if(M.min_arousal < 50)
|
||||
M.min_arousal += 1
|
||||
if(M.max_arousal < 200)
|
||||
M.max_arousal += 1
|
||||
to_chat(M, "<span class='love'>You're having a hard time thinkin about things other than sex!</span>")
|
||||
if(M.min_arousal < M.max_arousal)
|
||||
M.min_arousal += 1
|
||||
to_chat(M, "<span class='love'>You feel your libido permanently increasing.</span>")
|
||||
M.adjustArousalLoss(2)
|
||||
..()
|
||||
|
||||
@@ -193,8 +197,10 @@
|
||||
if(prob(33))
|
||||
if(M.min_arousal > 0)
|
||||
M.min_arousal -= 1
|
||||
if(M.max_arousal > 75)
|
||||
to_chat(M, "<span class='notice'>You feel your libido returning to more normal levels.</span>")
|
||||
if(M.min_arousal > 50)
|
||||
M.min_arousal -= 1
|
||||
to_chat(M, "<span class='notice'>You feel like your overactive libido is calming down.</span>")
|
||||
M.adjustArousalLoss(-2)
|
||||
..()
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 704 B |
@@ -1,5 +1,5 @@
|
||||
/obj/item/organ/genital/breasts
|
||||
name = "breasts"
|
||||
name = "Breasts"
|
||||
desc = "Female milk producing organs."
|
||||
icon_state = "breasts"
|
||||
icon = 'code/citadel/icons/breasts.dmi'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/organ/genital/eggsack
|
||||
name = "egg sack"
|
||||
name = "Egg sack"
|
||||
desc = "An egg producing reproductive organ."
|
||||
icon_state = "egg_sack"
|
||||
icon = 'code/citadel/icons/ovipositor.dmi'
|
||||
|
||||
@@ -243,8 +243,10 @@
|
||||
G.aroused_state = FALSE
|
||||
icon_string = "[G.slot]_[S.icon_state]_[size]_[G.aroused_state]_[layertext]"
|
||||
I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer)
|
||||
|
||||
if(S.center)
|
||||
I = center_image(I,S.dimension_x,S.dimension_y)
|
||||
|
||||
if(use_skintones && H.dna.features["genitals_use_skintone"])
|
||||
I.color = "#[skintone2hex(H.skin_tone)]"
|
||||
else
|
||||
|
||||
@@ -31,6 +31,33 @@
|
||||
icon_state = "tapered"
|
||||
name = "Tapered"
|
||||
|
||||
////////////////////////
|
||||
// Taur cocks go here //
|
||||
////////////////////////
|
||||
/datum/sprite_accessory/penis/taur_flared
|
||||
icon = 'code/citadel/icons/taur_penis_onmob.dmi' //Needed larger width
|
||||
icon_state = "flared"
|
||||
name = "Taur, Flared"
|
||||
center = TRUE //Center the image 'cause 2-tile wide.
|
||||
dimension_x = 64
|
||||
|
||||
/datum/sprite_accessory/penis/taur_knotted
|
||||
icon = 'code/citadel/icons/taur_penis_onmob.dmi' //Needed larger width
|
||||
icon_state = "knotted"
|
||||
name = "Taur, Knotted"
|
||||
center = TRUE //Center the image 'cause 2-tile wide.
|
||||
dimension_x = 64
|
||||
|
||||
/datum/sprite_accessory/penis/taur_tapered
|
||||
icon = 'code/citadel/icons/taur_penis_onmob.dmi' //Needed larger width
|
||||
icon_state = "tapered"
|
||||
name = "Taur, Tapered"
|
||||
center = TRUE //Center the image 'cause 2-tile wide.
|
||||
dimension_x = 64
|
||||
|
||||
|
||||
|
||||
|
||||
//Vaginas
|
||||
/datum/sprite_accessory/vagina
|
||||
icon = 'code/citadel/icons/vagina_onmob.dmi'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/organ/genital/ovipositor
|
||||
name = "ovipositor"
|
||||
name = "Ovipositor"
|
||||
desc = "An egg laying reproductive organ."
|
||||
icon_state = "ovi_knotted_2"
|
||||
icon = 'code/citadel/icons/ovipositor.dmi'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/organ/genital/penis
|
||||
name = "penis"
|
||||
name = "Penis"
|
||||
desc = "A male reproductive organ."
|
||||
icon_state = "penis"
|
||||
icon = 'code/citadel/icons/penis.dmi'
|
||||
@@ -35,7 +35,7 @@
|
||||
cached_length = length
|
||||
|
||||
/obj/item/organ/genital/penis/update_appearance()
|
||||
var/string = "penis_[lowertext(shape)]_[size]"
|
||||
var/string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]"
|
||||
icon_state = sanitize_text(string)
|
||||
var/lowershape = lowertext(shape)
|
||||
if(lowershape in knotted_types)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/organ/genital/testicles
|
||||
name = "testicles"
|
||||
name = "Testicles"
|
||||
desc = "A male reproductive organ."
|
||||
icon_state = "testicles"
|
||||
icon = 'code/citadel/icons/penis.dmi'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/organ/genital/vagina
|
||||
name = "vagina"
|
||||
name = "Vagina"
|
||||
desc = "A female reproductive organ."
|
||||
icon = 'code/citadel/icons/vagina.dmi'
|
||||
icon_state = "vagina"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/organ/genital/womb
|
||||
name = "womb"
|
||||
name = "Womb"
|
||||
desc = "A female reproductive organ."
|
||||
icon = 'code/citadel/icons/vagina.dmi'
|
||||
icon_state = "womb"
|
||||
@@ -10,7 +10,7 @@
|
||||
fluid_id = "femcum"
|
||||
producing = TRUE
|
||||
var/obj/item/organ/genital/vagina/linked_vag
|
||||
|
||||
|
||||
/obj/item/organ/genital/womb/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent(fluid_id, fluid_max_volume)
|
||||
|
||||
@@ -124,7 +124,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
|
||||
var/FireHim = FALSE
|
||||
if(istype(BadBoy))
|
||||
msg = null
|
||||
switch(++BadBoy.failure_strikes)
|
||||
LAZYINITLIST(BadBoy.failure_strikes)
|
||||
switch(++BadBoy.failure_strikes[BadBoy.type])
|
||||
if(2)
|
||||
msg = "The [BadBoy.name] subsystem was the last to fire for 2 controller restarts. It will be recovered now and disabled if it happens again."
|
||||
FireHim = TRUE
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
var/runlevels = RUNLEVELS_DEFAULT //points of the game at which the SS can fire
|
||||
|
||||
var/static/failure_strikes = 0 //How many times we suspect this subsystem has crashed the MC, 3 strikes and you're out!
|
||||
var/static/list/failure_strikes //How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out!
|
||||
|
||||
//Do not override
|
||||
/datum/controller/subsystem/New()
|
||||
|
||||
@@ -259,7 +259,6 @@ SUBSYSTEM_DEF(blackbox)
|
||||
|
||||
/datum/feedback_variable/proc/add_details(text)
|
||||
if (istext(text))
|
||||
text = replacetext(text, " ", "_")
|
||||
if (!details)
|
||||
details = text
|
||||
else
|
||||
|
||||
@@ -18,7 +18,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
// refID's are associated with the time at which they time out and need to be manually del()
|
||||
// we do this so we aren't constantly locating them and preventing them from being gc'd
|
||||
|
||||
var/list/tobequeued = list() //We store the references of things to be added to the queue seperately so we can spread out GC overhead over a few ticks
|
||||
var/list/tobequeued = list() //We store the references of things to be added to the queue separately so we can spread out GC overhead over a few ticks
|
||||
|
||||
var/list/didntgc = list() // list of all types that have failed to GC associated with the number of times that's happened.
|
||||
// the types are stored as strings
|
||||
@@ -144,7 +144,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
|
||||
queue[refid] = gctime
|
||||
|
||||
//this is purely to seperate things profile wise.
|
||||
//this is purely to separate things profile wise.
|
||||
/datum/controller/subsystem/garbage/proc/HardDelete(datum/A)
|
||||
var/time = world.timeofday
|
||||
var/tick = world.tick_usage
|
||||
@@ -234,27 +234,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
else if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
|
||||
CRASH("[D.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic")
|
||||
|
||||
// Default implementation of clean-up code.
|
||||
// This should be overridden to remove all references pointing to the object being destroyed.
|
||||
// Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE.
|
||||
// TODO: Move this and all datum var definitions into code/datums/datum.dm
|
||||
/datum/proc/Destroy(force=FALSE)
|
||||
tag = null
|
||||
var/list/timers = active_timers
|
||||
active_timers = null
|
||||
for(var/thing in timers)
|
||||
var/datum/timedevent/timer = thing
|
||||
if (timer.spent)
|
||||
continue
|
||||
qdel(timer)
|
||||
QDEL_LIST(datum_components)
|
||||
return QDEL_HINT_QUEUE
|
||||
|
||||
/datum/var/gc_destroyed //Time when this object was destroyed.
|
||||
|
||||
#ifdef TESTING
|
||||
/datum/var/running_find_references
|
||||
/datum/var/last_find_references = 0
|
||||
|
||||
/datum/verb/find_refs()
|
||||
set category = "Debug"
|
||||
@@ -303,13 +283,12 @@ SUBSYSTEM_DEF(garbage)
|
||||
|
||||
/client/verb/purge_all_destroyed_objects()
|
||||
set category = "Debug"
|
||||
if(SSgarbage)
|
||||
while(SSgarbage.queue.len)
|
||||
var/datum/o = locate(SSgarbage.queue[1])
|
||||
if(istype(o) && o.gc_destroyed)
|
||||
del(o)
|
||||
SSgarbage.totaldels++
|
||||
SSgarbage.queue.Cut(1, 2)
|
||||
while(SSgarbage.queue.len)
|
||||
var/datum/o = locate(SSgarbage.queue[1])
|
||||
if(istype(o) && o.gc_destroyed)
|
||||
del(o)
|
||||
SSgarbage.totaldels++
|
||||
SSgarbage.queue.Cut(1, 2)
|
||||
|
||||
/datum/verb/qdel_then_find_references()
|
||||
set category = "Debug"
|
||||
|
||||
@@ -217,10 +217,9 @@ SUBSYSTEM_DEF(job)
|
||||
Debug("Running DO")
|
||||
|
||||
//Holder for Triumvirate is stored in the SSticker, this just processes it
|
||||
if(SSticker)
|
||||
if(SSticker.triai)
|
||||
for(var/datum/job/ai/A in occupations)
|
||||
if(SSticker.triai)
|
||||
A.spawn_positions = 3
|
||||
A.spawn_positions = 3
|
||||
|
||||
//Get the players who are ready
|
||||
for(var/mob/dead/new_player/player in GLOB.player_list)
|
||||
|
||||
@@ -40,9 +40,15 @@ SUBSYSTEM_DEF(server_maint)
|
||||
|
||||
/datum/controller/subsystem/server_maint/Shutdown()
|
||||
kick_clients_in_lobby("<span class='boldannounce'>The round came to an end with you in the lobby.</span>", TRUE) //second parameter ensures only afk clients are kicked
|
||||
var/server = config.server
|
||||
for(var/thing in GLOB.clients)
|
||||
if(!thing)
|
||||
continue
|
||||
var/client/C = thing
|
||||
if(C && config.server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite
|
||||
C << link("byond://[config.server]")
|
||||
var/datum/chatOutput/co = C.chatOutput
|
||||
if(co)
|
||||
co.ehjax_send(data = "roundrestart")
|
||||
if(server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite
|
||||
C << link("byond://[server]")
|
||||
|
||||
#undef PING_BUFFER_TIME
|
||||
|
||||
@@ -34,8 +34,8 @@ SUBSYSTEM_DEF(shuttle)
|
||||
var/obj/docking_port/mobile/supply/supply
|
||||
var/ordernum = 1 //order number given to next order
|
||||
var/points = 5000 //number of trade-points we have
|
||||
var/centcom_message = "" //Remarks from Centcom on how well you checked the last order.
|
||||
var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentComm, associated with their potencies
|
||||
var/centcom_message = "" //Remarks from CentCom on how well you checked the last order.
|
||||
var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentCom, associated with their potencies
|
||||
|
||||
var/list/supply_packs = list()
|
||||
var/list/shoppinglist = list()
|
||||
@@ -185,7 +185,7 @@ SUBSYSTEM_DEF(shuttle)
|
||||
|
||||
switch(emergency.mode)
|
||||
if(SHUTTLE_RECALL)
|
||||
to_chat(user, "The emergency shuttle may not be called while returning to Centcom.")
|
||||
to_chat(user, "The emergency shuttle may not be called while returning to CentCom.")
|
||||
return
|
||||
if(SHUTTLE_CALL)
|
||||
to_chat(user, "The emergency shuttle is already on its way.")
|
||||
@@ -200,7 +200,7 @@ SUBSYSTEM_DEF(shuttle)
|
||||
to_chat(user, "The emergency shuttle is moving away to a safe distance.")
|
||||
return
|
||||
if(SHUTTLE_STRANDED)
|
||||
to_chat(user, "The emergency shuttle has been disabled by Centcom.")
|
||||
to_chat(user, "The emergency shuttle has been disabled by CentCom.")
|
||||
return
|
||||
|
||||
call_reason = trim(html_encode(call_reason))
|
||||
|
||||
@@ -103,7 +103,7 @@ SUBSYSTEM_DEF(throwing)
|
||||
finalize()
|
||||
return
|
||||
|
||||
/datum/thrownthing/proc/finalize(hit = FALSE)
|
||||
/datum/thrownthing/proc/finalize(hit = FALSE, target=null)
|
||||
set waitfor = 0
|
||||
SSthrowing.processing -= thrownthing
|
||||
//done throwing, either because it hit something or it finished moving
|
||||
@@ -120,13 +120,15 @@ SUBSYSTEM_DEF(throwing)
|
||||
thrownthing.newtonian_move(init_dir)
|
||||
else
|
||||
thrownthing.newtonian_move(init_dir)
|
||||
|
||||
if(target)
|
||||
thrownthing.throw_impact(target, src)
|
||||
|
||||
if (callback)
|
||||
callback.Invoke()
|
||||
|
||||
/datum/thrownthing/proc/hit_atom(atom/A)
|
||||
thrownthing.throw_impact(A, src)
|
||||
thrownthing.newtonian_move(init_dir)
|
||||
finalize(TRUE)
|
||||
finalize(hit=TRUE, target=A)
|
||||
|
||||
/datum/thrownthing/proc/hitcheck()
|
||||
for (var/thing in get_turf(thrownthing))
|
||||
@@ -134,6 +136,5 @@ SUBSYSTEM_DEF(throwing)
|
||||
if (AM == thrownthing)
|
||||
continue
|
||||
if (AM.density && !(AM.pass_flags & LETPASSTHROW) && !(AM.flags & ON_BORDER))
|
||||
thrownthing.throwing = null
|
||||
thrownthing.throw_impact(AM, src)
|
||||
finalize(hit=TRUE, target=AM)
|
||||
return TRUE
|
||||
|
||||
@@ -479,7 +479,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
var/list/area/shuttle_areas
|
||||
if(SSshuttle && SSshuttle.emergency)
|
||||
shuttle_areas = SSshuttle.emergency.shuttle_areas
|
||||
if(!Player.onCentcom() && !Player.onSyndieBase())
|
||||
if(!Player.onCentCom() && !Player.onSyndieBase())
|
||||
to_chat(Player, "<font color='blue'><b>You managed to survive, but were marooned on [station_name()]...</b></FONT>")
|
||||
else
|
||||
num_escapees++
|
||||
|
||||
@@ -210,7 +210,6 @@ SUBSYSTEM_DEF(timer)
|
||||
timer_id_dict |= SStimer.timer_id_dict
|
||||
bucket_list |= SStimer.bucket_list
|
||||
|
||||
/datum/var/list/active_timers
|
||||
/datum/timedevent
|
||||
var/id
|
||||
var/datum/callback/callBack
|
||||
|
||||
+19
-5
@@ -10,12 +10,13 @@
|
||||
var/check_flags = 0
|
||||
var/processing = FALSE
|
||||
var/obj/screen/movable/action_button/button = null
|
||||
var/button_icon = 'icons/mob/actions.dmi'
|
||||
var/background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND
|
||||
var/buttontooltipstyle = ""
|
||||
|
||||
var/icon_icon = 'icons/mob/actions.dmi'
|
||||
var/button_icon_state = "default"
|
||||
var/button_icon = 'icons/mob/actions/backgrounds.dmi' //This is the file for the BACKGROUND icon
|
||||
var/background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND //And this is the state for the background icon
|
||||
|
||||
var/icon_icon = 'icons/mob/actions.dmi' //This is the file for the ACTION icon
|
||||
var/button_icon_state = "default" //And this is the state for the action icon
|
||||
var/mob/owner
|
||||
|
||||
/datum/action/New(Target)
|
||||
@@ -168,6 +169,10 @@
|
||||
|
||||
/datum/action/item_action/toggle_firemode
|
||||
name = "Toggle Firemode"
|
||||
|
||||
/datum/action/item_action/rcl
|
||||
name = "Change Cable Color"
|
||||
button_icon_state = "rcl_rainbow"
|
||||
|
||||
/datum/action/item_action/startchainsaw
|
||||
name = "Pull The Starting Cord"
|
||||
@@ -221,6 +226,7 @@
|
||||
/datum/action/item_action/toggle_unfriendly_fire
|
||||
name = "Toggle Friendly Fire \[ON\]"
|
||||
desc = "Toggles if the club's blasts cause friendly fire."
|
||||
icon_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "vortex_ff_on"
|
||||
|
||||
/datum/action/item_action/toggle_unfriendly_fire/Trigger()
|
||||
@@ -254,6 +260,7 @@
|
||||
/datum/action/item_action/vortex_recall
|
||||
name = "Vortex Recall"
|
||||
desc = "Recall yourself, and anyone nearby, to an attuned hierophant beacon at any time.<br>If the beacon is still attached, will detach it."
|
||||
icon_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "vortex_recall"
|
||||
|
||||
/datum/action/item_action/vortex_recall/IsAvailable()
|
||||
@@ -264,6 +271,7 @@
|
||||
return ..()
|
||||
|
||||
/datum/action/item_action/clock
|
||||
icon_icon = 'icons/mob/actions/actions_clockcult.dmi'
|
||||
background_icon_state = "bg_clock"
|
||||
buttontooltipstyle = "clockcult"
|
||||
|
||||
@@ -363,6 +371,7 @@
|
||||
|
||||
/datum/action/item_action/toggle_research_scanner
|
||||
name = "Toggle Research Scanner"
|
||||
icon_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "scan_mode"
|
||||
var/active = FALSE
|
||||
|
||||
@@ -399,6 +408,7 @@
|
||||
/datum/action/item_action/ninjajaunt
|
||||
name = "Phase Jaunt (10E)"
|
||||
desc = "Utilizes the internal VOID-shift device to rapidly transit in direction facing."
|
||||
icon_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "ninja_phase"
|
||||
|
||||
/datum/action/item_action/ninjasmoke
|
||||
@@ -407,6 +417,7 @@
|
||||
button_icon_state = "smoke"
|
||||
|
||||
/datum/action/item_action/ninjaboost
|
||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_CONSCIOUS
|
||||
name = "Adrenaline Boost"
|
||||
desc = "Inject a secret chemical that will counteract all movement-impairing effect."
|
||||
button_icon_state = "repulse"
|
||||
@@ -437,6 +448,7 @@
|
||||
/datum/action/item_action/ninja_stealth
|
||||
name = "Toggle Stealth"
|
||||
desc = "Toggles stealth mode on and off."
|
||||
icon_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "ninja_cloak"
|
||||
|
||||
/datum/action/item_action/toggle_glove
|
||||
@@ -478,7 +490,7 @@
|
||||
var/obj/effect/proc_holder/spell/S = target
|
||||
S.action = src
|
||||
name = S.name
|
||||
button_icon = S.action_icon
|
||||
icon_icon = S.action_icon
|
||||
button_icon_state = S.action_icon_state
|
||||
background_icon_state = S.action_background_icon_state
|
||||
button.name = name
|
||||
@@ -553,12 +565,14 @@
|
||||
/datum/action/item_action/stickmen
|
||||
name = "Summon Stick Minions"
|
||||
desc = "Allows you to summon faithful stickmen allies to aide you in battle."
|
||||
icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
|
||||
button_icon_state = "art_summon"
|
||||
|
||||
//surf_ss13
|
||||
/datum/action/item_action/bhop
|
||||
name = "Activate Jump Boots"
|
||||
desc = "Activates the jump boot's internal propulsion system, allowing the user to dash over 4-wide gaps."
|
||||
icon_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "jetboot"
|
||||
|
||||
/datum/action/language_menu
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
/datum/antagonist/traitor/human
|
||||
should_specialise = FALSE
|
||||
var/should_equip = TRUE
|
||||
|
||||
/datum/antagonist/traitor/human/custom
|
||||
silent = TRUE
|
||||
should_give_codewords = FALSE
|
||||
@@ -31,6 +32,7 @@
|
||||
|
||||
/datum/antagonist/traitor/AI
|
||||
should_specialise = FALSE
|
||||
|
||||
/datum/antagonist/traitor/AI/custom
|
||||
silent = TRUE
|
||||
should_give_codewords = FALSE
|
||||
@@ -38,9 +40,8 @@
|
||||
|
||||
|
||||
/datum/antagonist/traitor/on_body_transfer(mob/living/old_body, mob/living/new_body)
|
||||
if(issilicon(new_body) && issilicon(old_body))
|
||||
..()
|
||||
else
|
||||
// human <-> silicon only
|
||||
if(old_body && issilicon(new_body) ^ issilicon(old_body))
|
||||
silent = TRUE
|
||||
owner.add_antag_datum(base_datum_custom)
|
||||
for(var/datum/antagonist/traitor/new_datum in owner.antag_datums)
|
||||
@@ -49,13 +50,14 @@
|
||||
transfer_important_variables(new_datum)
|
||||
break
|
||||
on_removal()
|
||||
|
||||
|
||||
else
|
||||
..()
|
||||
|
||||
/datum/antagonist/traitor/human/custom //used to give custom objectives
|
||||
silent = TRUE
|
||||
give_objectives = FALSE
|
||||
should_give_codewords = FALSE
|
||||
|
||||
/datum/antagonist/traitor/AI/custom //used to give custom objectives
|
||||
silent = TRUE
|
||||
give_objectives = FALSE
|
||||
@@ -83,7 +85,8 @@
|
||||
if(owner.assigned_role == "Clown")
|
||||
var/mob/living/carbon/human/traitor_mob = owner.current
|
||||
if(traitor_mob&&istype(traitor_mob))
|
||||
if(!silent) to_chat(traitor_mob, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
|
||||
if(!silent)
|
||||
to_chat(traitor_mob, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
|
||||
traitor_mob.dna.remove_mutation(CLOWNMUT)
|
||||
|
||||
/datum/antagonist/traitor/remove_innate_effects()
|
||||
|
||||
@@ -100,3 +100,57 @@
|
||||
if (object == GLOBAL_PROC)
|
||||
return call(delegate)(arglist(calling_arguments))
|
||||
return call(object, delegate)(arglist(calling_arguments))
|
||||
|
||||
|
||||
/datum/callback_select
|
||||
var/list/finished
|
||||
var/pendingcount
|
||||
var/total
|
||||
|
||||
/datum/callback_select/New(count, savereturns)
|
||||
total = count
|
||||
if (savereturns)
|
||||
finished = new(count)
|
||||
|
||||
|
||||
/datum/callback_select/proc/invoke_callback(index, datum/callback/callback, list/callback_args, savereturn = TRUE)
|
||||
set waitfor = FALSE
|
||||
if (!callback || !istype(callback))
|
||||
//This check only exists because the alternative is callback_select would block forever if given invalid data
|
||||
CRASH("invalid callback passed to invoke_callback")
|
||||
if (!length(callback_args))
|
||||
callback_args = list()
|
||||
pendingcount++
|
||||
var/rtn = callback.Invoke(arglist(callback_args))
|
||||
pendingcount--
|
||||
if (savereturn)
|
||||
finished[index] = rtn
|
||||
|
||||
|
||||
|
||||
|
||||
//runs a list of callbacks asynchronously, returning once all of them return.
|
||||
//callbacks can be repeated.
|
||||
//callbacks-args is a optional list of argument lists, in the same order as the callbacks,
|
||||
// the inner lists will be sent to the callbacks when invoked() as additional args.
|
||||
//can optionly save and return a list of return values, in the same order as the original list of callbacks
|
||||
//resolution is the number of byond ticks between checks.
|
||||
/proc/callback_select(list/callbacks, list/callback_args, savereturns = TRUE, resolution = 1)
|
||||
if (!callbacks)
|
||||
return
|
||||
var/count = length(callbacks)
|
||||
if (!count)
|
||||
return
|
||||
if (!callback_args)
|
||||
callback_args = list()
|
||||
|
||||
callback_args.len = count
|
||||
|
||||
var/datum/callback_select/CS = new(count, savereturns)
|
||||
for (var/i in 1 to count)
|
||||
CS.invoke_callback(i, callbacks[i], callback_args[i], savereturns)
|
||||
|
||||
while(CS.pendingcount)
|
||||
sleep(resolution*world.tick_lag)
|
||||
return CS.finished
|
||||
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
# Datum Component System (DCS)
|
||||
|
||||
## Concept
|
||||
|
||||
Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward it's arguments with a `SendSignal()` call. Now every component that want's to can also know about this happening.
|
||||
|
||||
### In the code
|
||||
|
||||
#### Slippery things
|
||||
|
||||
At the time of this writing, every object that is slippery overrides atom/Crossed does some checks, then slips the mob. Instead of all those Crossed overrides they could add a slippery component to all these objects. And have the checks in one proc that is run by the Crossed event
|
||||
|
||||
#### Powercells
|
||||
|
||||
A lot of objects have powercells. The `get_cell()` proc was added to give generic access to the cell var if it had one. This is just a specific use case of `GetComponent()`
|
||||
|
||||
#### Radios
|
||||
|
||||
The radio object as it is should not exist, given that more things use the _concept_ of radios rather than the object itself. The actual function of the radio can exist in a component which all the things that use it (Request consoles, actual radios, the SM shard) can add to themselves.
|
||||
|
||||
#### Standos
|
||||
|
||||
Stands have a lot of procs which mimic mob procs. Rather than inserting hooks for all these procs in overrides, the same can be accomplished with signals
|
||||
|
||||
## API
|
||||
|
||||
### Vars
|
||||
|
||||
1. `/datum/var/list/datum_components` (private)
|
||||
* Lazy list of all components a datum has (TODO: Make this a typecache with longer paths overwriting shorter ones maybe? It'd be weird)
|
||||
1. `/datum/component/var/enabled` (protected, boolean)
|
||||
* If the component is enabled. If not, it will not react to signals
|
||||
* TRUE by default
|
||||
1. `/datum/component/var/dupe_mode` (protected, enum)
|
||||
* How multiple components of the exact same type are handled when added to the datum.
|
||||
* `COMPONENT_DUPE_HIGHLANDER` (default): Old component will be deleted, new component will first have `/datum/component/proc/InheritComponent(datum/component/old, FALSE)` on it
|
||||
* `COMPONENT_DUPE_ALLOWED`: The components will be treated as seperate, `GetComponent()` will return the first added
|
||||
* `COMPONENT_DUPE_UNIQUE`: New component will be deleted, old component will first have `/datum/component/proc/InheritComponent(datum/component/new, TRUE)` on it
|
||||
1. `/datum/component/var/list/signal_procs` (private)
|
||||
* Associated lazy list of signals -> callbacks that will be run when the parent datum recieves that signal
|
||||
1. `/datum/component/var/datum/parent` (protected, read-only)
|
||||
* The datum this component belongs to
|
||||
|
||||
### Procs
|
||||
|
||||
1. `/datum/proc/GetComponent(component_type(type)) -> datum/component?` (public, final)
|
||||
* Returns a reference to a component of component_type if it exists in the datum, null otherwise
|
||||
1. `/datum/proc/GetComponents(component_type(type)) -> list` (public, final)
|
||||
* Returns a list of references to all components of component_type that exist in the datum
|
||||
1. `/datum/proc/GetExactComponent(component_type(type)) -> datum/component?` (public, final)
|
||||
* Returns a reference to a component whose type MATCHES component_type if that component exists in the datum, null otherwise
|
||||
1. `GET_COMPONENT(varname, component_type)` OR `GET_COMPONENT_FROM(varname, component_type, src)`
|
||||
* Shorthand for `var/component_type/varname = src.GetComponent(component_type)`
|
||||
1. `/datum/proc/AddComponent(component_type(type), ...) -> datum/component` (public, final)
|
||||
* Creates an instance of `component_type` in the datum and passes `...` to it's `New()` call
|
||||
* Sends the `COMSIG_COMPONENT_ADDED` signal to the datum
|
||||
* All components a datum owns are deleted with the datum
|
||||
* Returns the component that was created. Or the old component in a dupe situation where `COMPONENT_DUPE_UNIQUE` was set
|
||||
1. `/datum/proc/ComponentActivated(datum/component/C)` (abstract)
|
||||
* Called on a component's `parent` after a signal recieved causes it to activate. `src` is the parameter
|
||||
* Will only be called if a component's callback returns `TRUE`
|
||||
1. `/datum/proc/TakeComponent(datum/component/C)` (public, final)
|
||||
* Properly transfers ownership of a component from one datum to another
|
||||
* Singals `COMSIG_COMPONENT_REMOVING` on the parent
|
||||
* Called on the datum you want to own the component with another datum's component
|
||||
1. `/datum/proc/SendSignal(signal, ...)` (public, final)
|
||||
* Call to send a signal to the components of the target datum
|
||||
* Extra arguments are to be specified in the signal definition
|
||||
1. `/datum/component/New(datum/parent, ...)` (protected, virtual)
|
||||
* Forwarded the arguments from `AddComponent()`
|
||||
1. `/datum/component/Destroy()` (virtual)
|
||||
* Sends the `COMSIG_COMPONENT_REMOVING` signal to the parent datum if the `parent` isn't being qdeleted
|
||||
* Properly removes the component from `parent` and cleans up references
|
||||
1. `/datum/component/proc/InheritComponent(datum/component/C, i_am_original(boolean))` (abstract)
|
||||
* Called on a component when a component of the same type was added to the same parent
|
||||
* See `/datum/component/var/dupe_mode`
|
||||
* `C`'s type will always be the same of the called component
|
||||
1. `/datum/component/proc/OnTransfer(datum/new_parent)` (abstract)
|
||||
* Called before the new `parent` is assigned in `TakeComponent()`, after the remove signal, before the added signal
|
||||
* Allows the component to react to ownership transfers
|
||||
1. `/datum/component/proc/_RemoveNoSignal()` (private, final)
|
||||
* Internal, clears the parent var and removes the component from the parents component list
|
||||
1. `/datum/component/proc/RegisterSignal(signal(string), proc_ref(type), override(boolean))` (protected, final) (Consider removing for performance gainz)
|
||||
* Makes a component listen for the specified `signal` on it's `parent` datum.
|
||||
* When that signal is recieved `proc_ref` will be called on the component, along with associated arguments
|
||||
* Example proc ref: `.proc/OnEvent`
|
||||
* If a previous registration is overwritten by the call, a runtime occurs. Setting `override` to TRUE prevents this
|
||||
* These callbacks run asyncronously
|
||||
* Returning `TRUE` from these callbacks will trigger a `TRUE` return from the `SendSignal()` that initiated it
|
||||
1. `/datum/component/proc/ReceiveSignal(signal, ...)` (virtual)
|
||||
* Called when a component recieves any signal and is enabled
|
||||
* Default implementation looks if the signal is registered and runs the appropriate proc
|
||||
|
||||
### See signals and their arguments in __DEFINES\components.dm
|
||||
|
||||
## Examples
|
||||
Material Containers: #29268 (Too many GetComponent calls, but not bad)
|
||||
Slips: #00000 (PR DIS)
|
||||
Powercells: (TODO)
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
//set up the typecache
|
||||
var/our_type = type
|
||||
for(var/I in _GetInverseTypeListExceptRoot(our_type))
|
||||
for(var/I in _GetInverseTypeList(our_type))
|
||||
var/test = dc[I]
|
||||
if(test) //already another component of this type here
|
||||
var/list/components_of_type
|
||||
@@ -66,7 +66,7 @@
|
||||
if(P)
|
||||
var/list/dc = P.datum_components
|
||||
var/our_type = type
|
||||
for(var/I in _GetInverseTypeListExceptRoot(our_type))
|
||||
for(var/I in _GetInverseTypeList(our_type))
|
||||
var/list/components_of_type = dc[I]
|
||||
if(islist(components_of_type)) //
|
||||
var/list/subtracted = components_of_type - src
|
||||
@@ -110,25 +110,226 @@
|
||||
/datum/component/proc/OnTransfer(datum/new_parent)
|
||||
return
|
||||
|
||||
/datum/component/proc/_GetInverseTypeListExceptRoot(our_type_cached)
|
||||
var/datum/component/current_type = our_type_cached
|
||||
. = list()
|
||||
while (current_type != /datum/component)
|
||||
. += current_type
|
||||
current_type = type2parent(current_type)
|
||||
/datum/component/proc/AfterComponentActivated()
|
||||
return
|
||||
|
||||
/datum/var/list/datum_components //special typecache of /datum/component
|
||||
/datum/component/proc/_GetInverseTypeList(current_type)
|
||||
. = list(current_type)
|
||||
while (current_type != /datum/component)
|
||||
current_type = type2parent(current_type)
|
||||
. += current_type
|
||||
|
||||
/datum/proc/SendSignal(sigtype, ...)
|
||||
var/list/comps = datum_components
|
||||
. = FALSE
|
||||
for(var/I in comps)
|
||||
var/datum/component/C = I
|
||||
if(!C.enabled)
|
||||
continue
|
||||
if(C.ReceiveSignal(arglist(args)))
|
||||
if(!comps)
|
||||
return
|
||||
var/target = comps[/datum/component]
|
||||
if(!islist(target))
|
||||
var/datum/component/C = target
|
||||
if(C.enabled && C.ReceiveSignal(arglist(args)))
|
||||
ComponentActivated(C)
|
||||
. = TRUE
|
||||
C.AfterComponentActivated()
|
||||
return TRUE
|
||||
else
|
||||
for(var/I in target)
|
||||
var/datum/component/C = I
|
||||
if(!C.enabled)
|
||||
continue
|
||||
if(C.ReceiveSignal(arglist(args)))
|
||||
ComponentActivated(C)
|
||||
. = TRUE
|
||||
|
||||
/datum/proc/ComponentActivated(datum/component/C)
|
||||
return
|
||||
|
||||
/datum/proc/GetComponent(c_type)
|
||||
var/list/dc = datum_components
|
||||
if(!dc)
|
||||
return null
|
||||
. = dc[c_type]
|
||||
if(islist(.))
|
||||
return .[1]
|
||||
|
||||
/datum/proc/GetExactComponent(c_type)
|
||||
var/list/dc = datum_components
|
||||
if(!dc)
|
||||
return null
|
||||
var/datum/component/C = dc[c_type]
|
||||
if(C)
|
||||
if(islist(C))
|
||||
C = C[1]
|
||||
if(C.type == c_type)
|
||||
return C
|
||||
return null
|
||||
|
||||
/datum/proc/GetComponents(c_type)
|
||||
var/list/dc = datum_components
|
||||
if(!dc)
|
||||
return null
|
||||
. = dc[c_type]
|
||||
if(!islist(.))
|
||||
return list(.)
|
||||
|
||||
/datum/proc/AddComponent(new_type, ...)
|
||||
var/nt = new_type
|
||||
args[1] = src
|
||||
var/datum/component/C = new nt(arglist(args))
|
||||
return QDELING(C) ? GetComponent(new_type) : C
|
||||
|
||||
/datum/proc/TakeComponent(datum/component/C)
|
||||
if(!C)
|
||||
return
|
||||
var/datum/helicopter = C.parent
|
||||
if(helicopter == src)
|
||||
//wat
|
||||
return
|
||||
C._RemoveNoSignal()
|
||||
helicopter.SendSignal(COMSIG_COMPONENT_REMOVING, C)
|
||||
C.OnTransfer(src)
|
||||
C.parent = src
|
||||
SendSignal(COMSIG_COMPONENT_ADDED, C)
|
||||
/datum/component
|
||||
var/enabled = TRUE
|
||||
var/dupe_mode = COMPONENT_DUPE_HIGHLANDER
|
||||
var/list/signal_procs
|
||||
var/datum/parent
|
||||
|
||||
/datum/component/New(datum/P, ...)
|
||||
var/dm = dupe_mode
|
||||
if(dm != COMPONENT_DUPE_ALLOWED)
|
||||
var/datum/component/old = P.GetExactComponent(type)
|
||||
if(old)
|
||||
switch(dm)
|
||||
if(COMPONENT_DUPE_HIGHLANDER)
|
||||
InheritComponent(old, FALSE)
|
||||
qdel(old)
|
||||
if(COMPONENT_DUPE_UNIQUE)
|
||||
old.InheritComponent(src, TRUE)
|
||||
qdel(src)
|
||||
return
|
||||
P.SendSignal(COMSIG_COMPONENT_ADDED, src)
|
||||
|
||||
//lazy init the parent's dc list
|
||||
var/list/dc = P.datum_components
|
||||
if(!dc)
|
||||
P.datum_components = dc = list()
|
||||
|
||||
//set up the typecache
|
||||
var/our_type = type
|
||||
for(var/I in _GetInverseTypeList(our_type))
|
||||
var/test = dc[I]
|
||||
if(test) //already another component of this type here
|
||||
var/list/components_of_type
|
||||
if(!islist(test))
|
||||
components_of_type = list(test)
|
||||
dc[I] = components_of_type
|
||||
else
|
||||
components_of_type = test
|
||||
if(I == our_type) //exact match, take priority
|
||||
var/inserted = FALSE
|
||||
for(var/J in 1 to components_of_type.len)
|
||||
var/datum/component/C = components_of_type[J]
|
||||
if(C.type != our_type) //but not over other exact matches
|
||||
components_of_type.Insert(J, I)
|
||||
inserted = TRUE
|
||||
break
|
||||
if(!inserted)
|
||||
components_of_type += src
|
||||
else //indirect match, back of the line with ya
|
||||
components_of_type += src
|
||||
else //only component of this type, no list
|
||||
dc[I] = src
|
||||
|
||||
parent = P
|
||||
|
||||
/datum/component/Destroy()
|
||||
enabled = FALSE
|
||||
var/datum/P = parent
|
||||
if(P)
|
||||
_RemoveNoSignal()
|
||||
P.SendSignal(COMSIG_COMPONENT_REMOVING, src)
|
||||
LAZYCLEARLIST(signal_procs)
|
||||
return ..()
|
||||
|
||||
/datum/component/proc/_RemoveNoSignal()
|
||||
var/datum/P = parent
|
||||
if(P)
|
||||
var/list/dc = P.datum_components
|
||||
var/our_type = type
|
||||
for(var/I in _GetInverseTypeList(our_type))
|
||||
var/list/components_of_type = dc[I]
|
||||
if(islist(components_of_type)) //
|
||||
var/list/subtracted = components_of_type - src
|
||||
if(subtracted.len == 1) //only 1 guy left
|
||||
dc[I] = subtracted[1] //make him special
|
||||
else
|
||||
dc[I] = subtracted
|
||||
else //just us
|
||||
dc -= I
|
||||
if(!dc.len)
|
||||
P.datum_components = null
|
||||
parent = null
|
||||
|
||||
/datum/component/proc/RegisterSignal(sig_type, proc_on_self, override = FALSE)
|
||||
if(QDELETED(src))
|
||||
return
|
||||
var/list/procs = signal_procs
|
||||
if(!procs)
|
||||
procs = list()
|
||||
signal_procs = procs
|
||||
|
||||
if(!override)
|
||||
. = procs[sig_type]
|
||||
if(.)
|
||||
stack_trace("[sig_type] overridden. Use override = TRUE to suppress this warning")
|
||||
|
||||
procs[sig_type] = CALLBACK(src, proc_on_self)
|
||||
|
||||
/datum/component/proc/ReceiveSignal(sigtype, ...)
|
||||
var/list/sps = signal_procs
|
||||
var/datum/callback/CB = LAZYACCESS(sps, sigtype)
|
||||
if(!CB)
|
||||
return FALSE
|
||||
var/list/arguments = args.Copy()
|
||||
arguments.Cut(1, 2)
|
||||
return CB.InvokeAsync(arglist(arguments))
|
||||
|
||||
/datum/component/proc/InheritComponent(datum/component/C, i_am_original)
|
||||
return
|
||||
|
||||
/datum/component/proc/OnTransfer(datum/new_parent)
|
||||
return
|
||||
|
||||
/datum/component/proc/AfterComponentActivated()
|
||||
return
|
||||
|
||||
/datum/component/proc/_GetInverseTypeList(current_type)
|
||||
. = list(current_type)
|
||||
while (current_type != /datum/component)
|
||||
current_type = type2parent(current_type)
|
||||
. += current_type
|
||||
|
||||
/datum/proc/SendSignal(sigtype, ...)
|
||||
var/list/comps = datum_components
|
||||
. = FALSE
|
||||
if(!comps)
|
||||
return
|
||||
var/target = comps[/datum/component]
|
||||
if(!islist(target))
|
||||
var/datum/component/C = target
|
||||
if(C.enabled && C.ReceiveSignal(arglist(args)))
|
||||
ComponentActivated(C)
|
||||
C.AfterComponentActivated()
|
||||
return TRUE
|
||||
else
|
||||
for(var/I in target)
|
||||
var/datum/component/C = I
|
||||
if(!C.enabled)
|
||||
continue
|
||||
if(C.ReceiveSignal(arglist(args)))
|
||||
ComponentActivated(C)
|
||||
. = TRUE
|
||||
|
||||
/datum/proc/ComponentActivated(datum/component/C)
|
||||
return
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user