Merge remote-tracking branch 'upstream/master' into mechastuff
# Conflicts: # icons/mob/screen_alert.dmi
@@ -525,6 +525,8 @@ pull requests/issues, and merging/closing pull requests.
|
||||
### Maintainer List
|
||||
* [Fox P McCloud](https://github.com/Fox-McCloud)
|
||||
* [Crazy Lemon](https://github.com/Crazylemon64)
|
||||
* [Tigercat2000](https://github.com/tigercat2000)
|
||||
* [Ansari](https://github.com/variableundefined)
|
||||
|
||||
### Maintainer instructions
|
||||
* Do not `self-merge`; this refers to the practice of opening a pull request, then
|
||||
|
||||
@@ -0,0 +1,662 @@
|
||||
"aa" = (/turf/template_noop,/area/template_noop)
|
||||
"ab" = (/turf/simulated/mineral,/area/ruin/unpowered)
|
||||
"ac" = (/turf/simulated/wall/r_wall,/area/ruin/space/ancientstation/hivebot)
|
||||
"ad" = (/obj/structure/closet/crate,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/plasteel{amount = 30},/obj/item/stack/sheet/mineral/titanium{amount = 30},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"ae" = (/turf/simulated/floor/plating/airless,/area/template_noop)
|
||||
"af" = (/turf/simulated/wall/rust,/area/template_noop)
|
||||
"ag" = (/obj/structure/lattice,/turf/template_noop,/area/template_noop)
|
||||
"ah" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"ai" = (/turf/simulated/wall,/area/ruin/space/ancientstation/hivebot)
|
||||
"aj" = (/obj/effect/decal/remains/robot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"ak" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/silver{amount = 25},/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/stack/ore/bluespace_crystal,/obj/item/stack/ore/bluespace_crystal,/obj/item/stack/ore/bluespace_crystal,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"al" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation/comm)
|
||||
"am" = (/obj/structure/sign/poster/official/nanotrasen_logo,/turf/simulated/wall/rust,/area/ruin/space/ancientstation/comm)
|
||||
"an" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{id_tag = "ancient"},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/comm)
|
||||
"ao" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"ap" = (/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"aq" = (/obj/effect/decal/remains/robot{icon_state = "gib2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"ar" = (/obj/effect/decal/remains/robot{icon_state = "gibup"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"as" = (/turf/simulated/floor/plating,/area/ruin/space/ancientstation/hivebot)
|
||||
"at" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"au" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"av" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/item/paper/fluff/ruins/oldstation/damagereport,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"aw" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/item/paper/fluff/ruins/oldstation/report,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"ax" = (/obj/effect/decal/remains/robot{icon_state = "gib5"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"ay" = (/obj/structure/shuttle/engine/large{icon_state = "large_engine"; dir = 4},/turf/simulated/wall,/area/ruin/space/ancientstation/hivebot)
|
||||
"az" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation)
|
||||
"aA" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/door_control{id = "ancient"; name = "Charlie Station Lockdown Button"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"aB" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"aC" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/toy/cards/deck,/obj/item/folder/blue,/obj/item/pen,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"aD" = (/obj/machinery/door/airlock/highsecurity,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/hivebot)
|
||||
"aE" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 4; name = "Charlie Command APC"; pixel_x = 24; start_charge = 0},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/comm)
|
||||
"aF" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"aG" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"aH" = (/obj/item/solar_assembly,/turf/template_noop,/area/template_noop)
|
||||
"aI" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/structure/urinal{pixel_y = 30},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation)
|
||||
"aJ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/toilet{pixel_y = 12},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation)
|
||||
"aK" = (/obj/structure/sign/poster/contraband/random,/turf/simulated/wall/rust,/area/ruin/space/ancientstation)
|
||||
"aL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"aM" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/ruin/space/ancientstation/comm)
|
||||
"aN" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/megaphone,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"aO" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "arrivalcorner"; dir = 1},/area/ruin/space/ancientstation/comm)
|
||||
"aP" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation)
|
||||
"aQ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/mirror{name = "dusty mirror"; pixel_x = 26},/obj/structure/sink{dir = 4; pixel_x = 12},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation)
|
||||
"aR" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate/engineering/electrical,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"aS" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/lighter/zippo,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"aT" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/decal/cleanable/dirt,/obj/item/coin,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"aU" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation)
|
||||
"aV" = (/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"aW" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"aX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate/engineering/electrical,/obj/item/airlock_electronics,/obj/item/airlock_electronics,/obj/item/apc_electronics,/obj/item/apc_electronics,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"aY" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 4; icon_state = "bluecorner"},/area/ruin/space/ancientstation/comm)
|
||||
"aZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"ba" = (/obj/machinery/light/small{dir = 8; pixel_y = -8},/obj/effect/decal/cleanable/dirt,/obj/structure/mirror{name = "dusty mirror"; pixel_x = -26},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation)
|
||||
"bb" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/shower{dir = 8},/obj/machinery/door/window/westright,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation)
|
||||
"bc" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 20},/obj/item/stack/sheet/metal{amount = 20},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"bd" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/plasma{amount = 25},/obj/item/stack/sheet/mineral/uranium{amount = 25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"be" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"bf" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation/betanorth)
|
||||
"bg" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"bh" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/ruin/space/ancientstation/comm)
|
||||
"bi" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/ruin/space/ancientstation/comm)
|
||||
"bj" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/ruin/space/ancientstation/comm)
|
||||
"bk" = (/obj/machinery/light{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/ruin/space/ancientstation/comm)
|
||||
"bl" = (/obj/effect/decal/cleanable/dirt,/obj/structure/mirror{name = "dusty mirror"; pixel_x = -26},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation)
|
||||
"bm" = (/obj/effect/decal/cleanable/dirt,/obj/item/soap/nanotrasen,/obj/machinery/shower{dir = 8},/obj/machinery/door/window/westleft,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation)
|
||||
"bn" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/highsecurity,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/hivebot)
|
||||
"bo" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"bp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"bq" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/comm)
|
||||
"br" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/command/glass{name = "Bridge"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/comm)
|
||||
"bs" = (/obj/structure/sign/poster/official/cleanliness,/turf/simulated/wall/rust,/area/ruin/space/ancientstation)
|
||||
"bt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/template_noop)
|
||||
"bu" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"bv" = (/turf/simulated/wall,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"bw" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/hivebot)
|
||||
"bx" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/hivebot)
|
||||
"by" = (/obj/machinery/door/firedoor/closed,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"bz" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"bA" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"bB" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate/engineering/electrical,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"bC" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"bD" = (/obj/structure/sign/redcross{icon_state = "greencross"},/turf/simulated/wall/rust,/area/ruin/space/ancientstation)
|
||||
"bE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/item/twohanded/required/kirbyplants{icon_state = "plant-dead"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"bF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"bG" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"bH" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"bI" = (/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"bJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"bK" = (/obj/item/twohanded/required/kirbyplants{icon_state = "plant-dead"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"bL" = (/obj/structure/sign/science,/turf/simulated/wall/rust,/area/ruin/space/ancientstation)
|
||||
"bM" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"bN" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"bO" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"bP" = (/obj/structure/sign/poster/official/science,/turf/simulated/wall/rust,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"bQ" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation/hivebot)
|
||||
"bR" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science{name = "Artificial Program Core Room"},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/hivebot)
|
||||
"bS" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"bT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/circular_saw,/obj/item/retractor,/obj/item/hemostat,/obj/item/scalpel,/obj/item/cautery,/obj/item/FixOVein,/obj/item/surgicaldrill,/obj/item/bonegel,/obj/item/bonesetter,/obj/item/stack/medical/bruise_pack/advanced,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"bU" = (/obj/machinery/door/airlock/command,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"bV" = (/obj/effect/decal/remains/human,/turf/template_noop,/area/template_noop)
|
||||
"bW" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"bX" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"bY" = (/obj/structure/transit_tube_pod{dir = 4},/obj/structure/transit_tube/station/reverse{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/arrow{icon_state = "4"; dir = 1},/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"bZ" = (/obj/machinery/door/poddoor{id_tag = "ancient"},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/command{name = "Beta Station Access"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/powered)
|
||||
"ca" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/decal/cleanable/generic,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cc" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/template_noop)
|
||||
"cd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"ce" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cg" = (/obj/effect/decal/cleanable/deadcockroach,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"ch" = (/obj/machinery/door/poddoor{id_tag = "ancient"},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/command{name = "Delta Station Access"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/powered)
|
||||
"ci" = (/obj/structure/transit_tube/station/reverse{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cj" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ck" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"cl" = (/obj/structure/transit_tube/station/reverse,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cm" = (/obj/effect/decal/cleanable/dirt,/obj/item/stack/medical/bruise_pack,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cn" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/command,/obj/structure/barricade/wooden,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"co" = (/obj/effect/decal/cleanable/blood/oil,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"cp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cs" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ct" = (/obj/item/twohanded/required/kirbyplants{icon_state = "plant-dead"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cu" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cv" = (/obj/effect/decal/cleanable/blood/oil,/obj/effect/decal/remains/robot{icon_state = "gib2"},/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"cw" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"cx" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/storage/box/lights/mixed,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cy" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cA" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation/hydroponics)
|
||||
"cB" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/hydroponics)
|
||||
"cC" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/airless,/area/template_noop)
|
||||
"cD" = (/obj/structure/cable/yellow{d1 = 0; d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/template_noop)
|
||||
"cE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cF" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cG" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cH" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/template_noop)
|
||||
"cI" = (/obj/effect/decal/cleanable/dirt,/obj/item/pickaxe,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cK" = (/obj/effect/decal/remains/robot{icon_state = "gib5"},/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"cL" = (/mob/living/simple_animal/hostile/hivebot/strong,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"cM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cP" = (/obj/effect/decal/cleanable/blood/oil,/mob/living/simple_animal/hostile/hivebot/strong,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"cQ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate/engineering{name = "plasma tank crate"},/obj/item/tank/plasma/full,/obj/item/tank/plasma/full,/obj/item/tank/plasma/full,/obj/item/tank/plasma/full,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"cR" = (/obj/structure/table,/obj/item/storage/firstaid/ancient,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless{dir = 5; icon_state = "whitehall"},/area/ruin/space/ancientstation/betanorth)
|
||||
"cS" = (/obj/structure/sign/poster/official/nanomichi_ad,/turf/simulated/wall/rust,/area/ruin/space/ancientstation/betanorth)
|
||||
"cT" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"cU" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation/engi)
|
||||
"cV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/obj/machinery/alarm/all_access{dir = 4; pixel_x = -24},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"cW" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/ruin/space/ancientstation/comm)
|
||||
"cX" = (/obj/structure/transit_tube,/turf/template_noop,/area/template_noop)
|
||||
"cY" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/hydroponics)
|
||||
"cZ" = (/obj/machinery/hydroponics/soil,/turf/simulated/floor/grass,/area/ruin/space/ancientstation/hydroponics)
|
||||
"da" = (/obj/structure/reagent_dispensers/watertank/high,/obj/item/reagent_containers/glass/bucket,/obj/item/reagent_containers/glass/bucket,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/hydroponics)
|
||||
"db" = (/obj/item/solar_assembly,/obj/structure/lattice,/turf/template_noop,/area/template_noop)
|
||||
"dc" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 10},/area/ruin/space/ancientstation/comm)
|
||||
"dd" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"de" = (/obj/structure/transit_tube{icon_state = "E-W-Pass"},/turf/template_noop,/area/template_noop)
|
||||
"df" = (/obj/structure/cable/yellow,/turf/simulated/floor/plating/airless,/area/template_noop)
|
||||
"dg" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation/sec)
|
||||
"dh" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"di" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"dj" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation/rnd)
|
||||
"dk" = (/obj/structure/transit_tube_pod{dir = 4},/turf/template_noop,/area/template_noop)
|
||||
"dl" = (/obj/item/stack/cable_coil,/turf/template_noop,/area/template_noop)
|
||||
"dm" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"dn" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/template_noop,/area/template_noop)
|
||||
"do" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"dp" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d1 = 0; d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/template_noop)
|
||||
"dq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"dr" = (/obj/item/roller,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless{dir = 4; icon_state = "whitehall"},/area/ruin/space/ancientstation/betanorth)
|
||||
"ds" = (/obj/effect/decal/remains/robot{icon_state = "gibup"},/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ruin/space/ancientstation/hivebot)
|
||||
"dt" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/ruin/space/ancientstation/comm)
|
||||
"du" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "arrivalcorner"},/area/ruin/space/ancientstation/comm)
|
||||
"dv" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/turf/simulated/floor/plasteel{dir = 6; icon_state = "blue"},/area/ruin/space/ancientstation/comm)
|
||||
"dw" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/hydroponics)
|
||||
"dx" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/soap/nanotrasen,/turf/simulated/floor/plasteel{dir = 6; icon_state = "blue"},/area/ruin/space/ancientstation/comm)
|
||||
"dy" = (/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"dz" = (/obj/structure/transit_tube/station/reverse,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/arrow,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"dA" = (/obj/structure/sign/poster/contraband/donut_corp,/turf/simulated/wall/rust,/area/ruin/space/ancientstation/sec)
|
||||
"dB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm/all_access{dir = 4; pixel_x = -24},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"dC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"dD" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitepurple"},/area/ruin/space/ancientstation/rnd)
|
||||
"dE" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"dF" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitepurple"},/area/ruin/space/ancientstation/rnd)
|
||||
"dG" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"dH" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"dI" = (/obj/machinery/door/airlock/medical/glass{name = "Medical Bay"},/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"dJ" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"dK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/item/twohanded/required/kirbyplants{icon_state = "plant-dead"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"dL" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/recharger,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 10},/area/ruin/space/ancientstation/comm)
|
||||
"dM" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/dice/d6,/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/ruin/space/ancientstation/comm)
|
||||
"dN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"dO" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"dP" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/tank/emergency_oxygen,/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/ruin/space/ancientstation/comm)
|
||||
"dQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"dR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/public/glass{name = "Hydroponics"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/hydroponics)
|
||||
"dS" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/item/cultivator,/obj/item/cultivator,/obj/item/shovel/spade{pixel_x = 4; pixel_y = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/hydroponics)
|
||||
"dT" = (/obj/machinery/seed_extractor,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/hydroponics)
|
||||
"dU" = (/obj/structure/table,/obj/item/seeds/harebell,/obj/item/seeds/carrot,/obj/item/seeds/potato,/obj/item/seeds/ambrosia,/obj/item/seeds/poppy,/obj/item/seeds/grape,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/hydroponics)
|
||||
"dV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"dW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"dX" = (/obj/structure/table,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Charlie Security APC"; pixel_x = -24; shock_proof = 0; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/ruin/space/ancientstation/sec)
|
||||
"dY" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"dZ" = (/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/ruin/space/ancientstation/sec)
|
||||
"ea" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; pixel_x = -28},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"eb" = (/obj/machinery/light{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"ec" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer/rdconsole/core,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"ed" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/r_n_d/destructive_analyzer,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"ee" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"ef" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/glass/fifty{pixel_x = 2; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"eg" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"eh" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/firealarm{dir = 8; pixel_x = 28},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ei" = (/obj/item/circuitboard/sleeper,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"ej" = (/obj/item/stack/sheet/glass,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless{dir = 4; icon_state = "whitehall"},/area/ruin/space/ancientstation/betanorth)
|
||||
"ek" = (/obj/machinery/door/firedoor/closed,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"el" = (/obj/structure/table,/obj/machinery/recharger,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/ruin/space/ancientstation/sec)
|
||||
"em" = (/obj/machinery/light/small{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/twohanded/required/kirbyplants{icon_state = "plant-dead"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 9; icon_state = "green"},/area/ruin/space/ancientstation/hydroponics)
|
||||
"en" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"eo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"ep" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 1; icon_state = "greencorner"},/area/ruin/space/ancientstation/hydroponics)
|
||||
"eq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/generic,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"er" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/hydroponics)
|
||||
"es" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/hydroponics)
|
||||
"et" = (/obj/structure/rack,/obj/effect/decal/cleanable/dirt,/obj/item/clothing/shoes/magboots,/obj/item/clothing/head/helmet/space/nasavoid/old,/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"eu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "red"},/area/ruin/space/ancientstation/sec)
|
||||
"ev" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ew" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ex" = (/obj/machinery/firealarm{dir = 4; pixel_x = -28},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"ey" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ez" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"eA" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless{dir = 4; icon_state = "whitehall"},/area/ruin/space/ancientstation/betanorth)
|
||||
"eB" = (/obj/item/solar_assembly,/obj/item/tracker_electronics,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"eC" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"eD" = (/obj/structure/cable/yellow{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"eE" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/smes/engineering{charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"eF" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 4; icon_state = "greencorner"},/area/ruin/space/ancientstation/hydroponics)
|
||||
"eG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"eH" = (/obj/machinery/light/small{dir = 4},/obj/item/twohanded/required/kirbyplants{icon_state = "plant-dead"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 5; icon_state = "green"},/area/ruin/space/ancientstation/hydroponics)
|
||||
"eI" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/ruin/space/ancientstation/sec)
|
||||
"eJ" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/item/tank/oxygen,/obj/item/clothing/mask/breath,/turf/simulated/floor/plasteel{dir = 9; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"eK" = (/turf/simulated/floor/plating/airless,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"eL" = (/obj/structure/rack,/obj/item/clothing/suit/space/nasavoid/old,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 5},/area/ruin/space/ancientstation/engi)
|
||||
"eM" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"eN" = (/obj/structure/sign/poster/official/here_for_your_safety,/turf/simulated/wall/rust,/area/ruin/space/ancientstation/sec)
|
||||
"eO" = (/obj/structure/table,/obj/item/paper,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"eP" = (/obj/structure/chair{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"eQ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"eR" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/ruin/space/ancientstation/sec)
|
||||
"eS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"eT" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/r_n_d/protolathe,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"eU" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/r_n_d/circuit_imprinter,/obj/item/reagent_containers/dropper,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"eV" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"eW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/optable{name = "Robotics Operating Table"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"eX" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/field/generator,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"eY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"eZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"fa" = (/obj/effect/decal/cleanable/ash,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"fb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Engineering"},/obj/machinery/door/poddoor{id_tag = "ancient"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/powered)
|
||||
"fc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"fd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/hydroponics)
|
||||
"fe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"ff" = (/obj/machinery/door/poddoor{id_tag = "ancient"},/obj/machinery/door/firedoor/closed,/obj/machinery/door/airlock/security,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"fg" = (/obj/structure/table,/obj/item/book/manual/security_space_law,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/ruin/space/ancientstation/sec)
|
||||
"fh" = (/obj/structure/table,/obj/item/pen,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"fi" = (/obj/item/apc_electronics,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"fj" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 1; name = "Delta Main Corridor APC"; pixel_y = 24; start_charge = 0},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"fk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"fl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"fm" = (/obj/machinery/light{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 10; icon_state = "whitepurple"},/area/ruin/space/ancientstation/rnd)
|
||||
"fn" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitepurple"},/area/ruin/space/ancientstation/rnd)
|
||||
"fo" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 10; icon_state = "whitepurple"},/area/ruin/space/ancientstation/rnd)
|
||||
"fp" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitepurple"},/area/ruin/space/ancientstation/rnd)
|
||||
"fq" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"fr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"fs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"ft" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/betanorth)
|
||||
"fu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"fv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"fw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"fx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"fy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"fz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"fA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_one_access_txt = "271"},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"fB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"fC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"fD" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"fE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"fF" = (/obj/item/stack/cable_coil{amount = 2},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"fG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"fH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor{id_tag = "ancient"},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/powered)
|
||||
"fI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"fJ" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"fK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"fL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"fM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/power/apc{dir = 1; name = "Charlie Hydroponics APC"; pixel_y = 24; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/hydroponics)
|
||||
"fN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"fO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"fP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "Charlie Kitchen APC"; pixel_y = -24; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/kitchen)
|
||||
"fQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"fR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"fS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"fT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/poddoor{id_tag = "ancient"},/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/sec)
|
||||
"fU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"fV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"fW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"fX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "red"},/area/ruin/space/ancientstation/sec)
|
||||
"fY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/sec)
|
||||
"fZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ga" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"gb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"gc" = (/mob/living/simple_animal/hostile/carp,/turf/template_noop,/area/template_noop)
|
||||
"gd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ge" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Delta RnD APC"; pixel_x = 24; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gf" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gg" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/glass/fifty{pixel_x = 2; pixel_y = -2},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gh" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/storage/toolbox/mechanical/old,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gl" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/stack/sheet/glass,/obj/item/stack/sheet/glass,/obj/item/stock_parts/matter_bin,/obj/item/stock_parts/scanning_module,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gm" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/stock_parts/manipulator,/obj/item/stock_parts/capacitor,/obj/item/stock_parts/micro_laser,/obj/item/stack/cable_coil,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"go" = (/obj/item/stack/cable_coil,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"gp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"gq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"gr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"gs" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation/kitchen)
|
||||
"gt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/kitchen)
|
||||
"gu" = (/obj/structure/table,/obj/item/reagent_containers/food/drinks/cans/cola,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"gv" = (/obj/structure/table,/obj/item/flash,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/ruin/space/ancientstation/sec)
|
||||
"gw" = (/obj/structure/table,/obj/machinery/light/small,/obj/item/trash/plate,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"gx" = (/obj/structure/chair{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"gy" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/rnd)
|
||||
"gz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gA" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/rad_collector,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"gB" = (/obj/item/solar_assembly,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"gC" = (/obj/structure/cable/yellow,/obj/machinery/power/terminal{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"gD" = (/obj/structure/cable,/obj/machinery/power/smes/engineering{charge = 0},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"gE" = (/obj/machinery/vending/dinnerware,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"gF" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"gG" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"gH" = (/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"gI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"gJ" = (/obj/effect/decal/cleanable/egg_smudge,/obj/machinery/alarm/all_access{pixel_y = 24},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"gK" = (/obj/machinery/processor,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"gL" = (/obj/structure/table,/obj/machinery/kitchen_machine/microwave,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"gM" = (/obj/structure/table,/obj/item/folder/red,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/sec)
|
||||
"gN" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/ruin/space/ancientstation/sec)
|
||||
"gO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"gP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"gQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/ruin/space/ancientstation/sec)
|
||||
"gR" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/glass/bottle/carbon{pixel_x = 5},/obj/item/reagent_containers/glass/bottle/chlorine{pixel_x = -3},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gS" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/glass/bottle/copper{pixel_x = 5},/obj/item/reagent_containers/glass/bottle/ethanol{pixel_x = -3},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"gT" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"gU" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"gV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/betanorth)
|
||||
"gW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"gX" = (/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/item/card/id/away/old/apc,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 9; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"gY" = (/obj/item/clothing/head/welding,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/engi)
|
||||
"gZ" = (/obj/item/stock_parts/cell{charge = 100; maxcharge = 15000},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"ha" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/kitchen)
|
||||
"hb" = (/obj/effect/decal/cleanable/flour,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"hc" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"hd" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"he" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/ruin/space/ancientstation/sec)
|
||||
"hf" = (/turf/simulated/floor/plating/airless,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"hg" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/chair,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hh" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/ruin/space/ancientstation/rnd)
|
||||
"hi" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/ruin/space/ancientstation/rnd)
|
||||
"hj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hk" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/glass/bottle/water{pixel_y = 6},/obj/item/reagent_containers/glass/bottle/hydrogen{pixel_x = 5},/obj/item/reagent_containers/glass/bottle/fluorine{pixel_x = -3},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/stack/cable_coil{amount = 2},/turf/simulated/floor/plating/airless,/area/template_noop)
|
||||
"hm" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"hn" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ho" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 8},/area/ruin/space/ancientstation/engi)
|
||||
"hp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"hq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"hr" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/public/glass{name = "Dining Area"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"hs" = (/turf/simulated/floor/plating/airless,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"ht" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; pixel_x = -28},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"hu" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/broken_bottle,/obj/item/soap/nanotrasen,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hv" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/folder/white,/obj/item/reagent_containers/glass/beaker,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/chem_master,/obj/item/reagent_containers/glass/beaker,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"hx" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical/glass{name = "Chemical Storage"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hA" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/glass/bottle/phosphorus{pixel_x = -5; pixel_y = 6},/obj/item/reagent_containers/glass/bottle/oxygen{pixel_x = 6; pixel_y = 6},/obj/item/reagent_containers/glass/bottle/nitrogen{pixel_x = 6},/obj/item/reagent_containers/glass/bottle/mercury{pixel_x = -5},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hB" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/item/reagent_containers/glass/bottle/lithium{pixel_y = 6},/obj/item/reagent_containers/glass/bottle/iron{pixel_x = 5},/obj/item/reagent_containers/glass/bottle/iodine{pixel_x = -3},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 8},/area/ruin/space/ancientstation)
|
||||
"hD" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "green"; dir = 8},/area/ruin/space/ancientstation/hydroponics)
|
||||
"hE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance_hatch{req_one_access_txt = "271"},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"hF" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/ruin/space/ancientstation/hydroponics)
|
||||
"hG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cautioncorner"; dir = 4},/area/ruin/space/ancientstation/engi)
|
||||
"hH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellowcorner"},/area/ruin/space/ancientstation)
|
||||
"hI" = (/obj/effect/decal/cleanable/vomit,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"hJ" = (/turf/simulated/floor/plating/airless,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"hK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/ruin/space/ancientstation/sec)
|
||||
"hL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_one_access_txt = "271"},/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/engi)
|
||||
"hM" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "green"; dir = 8},/area/ruin/space/ancientstation/hydroponics)
|
||||
"hN" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/toy/nuke,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hO" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/recharger,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hP" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/chem_heater,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"hQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hR" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/firealarm{dir = 4; pixel_x = -28},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hS" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/glass/bottle/welding_fuel{pixel_y = 6},/obj/item/reagent_containers/glass/bottle/radium{pixel_x = 5},/obj/item/reagent_containers/glass/bottle/potassium{pixel_x = -3},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"hT" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitepurple"},/area/ruin/space/ancientstation/rnd)
|
||||
"hU" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/particle_accelerator/control_box{icon = 'icons/obj/machines/particle_accelerator3.dmi'},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"hV" = (/obj/effect/decal/cleanable/dirt,/obj/structure/particle_accelerator/particle_emitter/right{icon = 'icons/obj/machines/particle_accelerator3.dmi'},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"hW" = (/obj/machinery/light/small{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/chair{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"hX" = (/obj/structure/table,/obj/item/kitchen/utensil/fork,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"hY" = (/obj/structure/chair{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"hZ" = (/obj/structure/chair{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"ia" = (/obj/structure/table,/obj/item/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 2},/obj/item/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = -2},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"ib" = (/obj/structure/table,/obj/item/trash/plate,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"ic" = (/obj/machinery/light/small{dir = 4},/obj/structure/chair{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"id" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"ie" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"if" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ig" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"ih" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/ruin/space/ancientstation/rnd)
|
||||
"ii" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/ruin/space/ancientstation/rnd)
|
||||
"ij" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/glass/bottle/sulfur{pixel_x = 5},/obj/item/reagent_containers/glass/bottle/sugar{pixel_x = -3},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"ik" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/glass/bottle/sodium{pixel_x = 5},/obj/item/reagent_containers/glass/bottle/silver{pixel_x = -3},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"il" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/glass/bottle/silicon{pixel_x = 5},/obj/item/reagent_containers/glass/bottle/sacid{pixel_x = -3},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"im" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/firealarm{dir = 8; pixel_x = 28},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"in" = (/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"io" = (/obj/structure/closet/crate/medical,/obj/item/defibrillator,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"ip" = (/turf/simulated/wall/rust,/area/ruin/space/ancientstation/atmo)
|
||||
"iq" = (/obj/effect/decal/cleanable/cobweb,/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/yellow{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"ir" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/smes/engineering{charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"is" = (/obj/effect/decal/cleanable/dirt,/obj/item/wrench,/obj/item/wirecutters,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"it" = (/obj/structure/sign/biohazard{icon_state = "radiation"; name = "\improper HAZARDOUS RADIATION"},/turf/simulated/wall/rust,/area/ruin/space/ancientstation/engi)
|
||||
"iu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"iv" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"iw" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ix" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"iy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iA" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/recharge_station,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iB" = (/turf/simulated/floor/plating/airless,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"iC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"iD" = (/obj/machinery/light/small{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable/yellow,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"iE" = (/obj/structure/cable,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"iF" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"iG" = (/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/engineering{name = "Backup Generator Room"},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"iH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"iI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"iJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"iK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"iL" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"iM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"iN" = (/obj/machinery/door/poddoor{id_tag = "ancient"},/obj/machinery/door/airlock/command{name = "Delta Station Access"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/powered)
|
||||
"iO" = (/turf/simulated/floor/plating,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"iP" = (/turf/simulated/floor/plating,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"iQ" = (/obj/machinery/light/small,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "greencorner"},/area/ruin/space/ancientstation/hydroponics)
|
||||
"iR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 1; in_use = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iW" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24},/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iY" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate/secure/weapon,/obj/item/flash,/obj/item/flash,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"iZ" = (/obj/structure/closet/crate/radiation,/obj/item/stack/sheet/mineral/uranium{amount = 10},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"ja" = (/obj/machinery/power/port_gen/pacman/super,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"jb" = (/obj/structure/table,/obj/item/stack/cable_coil{amount = 15},/obj/item/paper/fluff/ruins/oldstation/generator_manual,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/engi)
|
||||
"jc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/obj/item/twohanded/required/kirbyplants{icon_state = "plant-dead"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"jd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"je" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"jf" = (/obj/machinery/light/small,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"jg" = (/obj/effect/decal/cleanable/dirt,/obj/item/twohanded/required/kirbyplants{icon_state = "plant-dead"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"jh" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/effect/decal/cleanable/dirt,/obj/item/twohanded/required/kirbyplants{icon_state = "plant-dead"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ji" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"jj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"jk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"jl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"jm" = (/obj/effect/decal/cleanable/dirt,/obj/structure/particle_accelerator/particle_emitter/center{icon = 'icons/obj/machines/particle_accelerator3.dmi'},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"jn" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"jo" = (/obj/effect/decal/cleanable/dirt,/obj/item/twohanded/required/kirbyplants{icon_state = "plant-dead"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"jp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"jq" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"jr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/public/glass{name = "Cryogenics Room"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"js" = (/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"jt" = (/turf/simulated/wall/r_wall/rust,/area/ruin/space/ancientstation/proto)
|
||||
"ju" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/highsecurity{name = "Prototype Laboratory"; req_access_txt = "271"},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/ruin/space/ancientstation/proto)
|
||||
"jv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/highsecurity{name = "Prototype Laboratory"; req_access_txt = "271"},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/ruin/space/ancientstation/proto)
|
||||
"jw" = (/turf/simulated/floor/plating/airless,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"jx" = (/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"jy" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/meter,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"jz" = (/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"jA" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"jB" = (/obj/structure/table/reinforced,/obj/item/clothing/suit/space/hardsuit/ancient,/obj/item/clothing/head/helmet/space/hardsuit/ancient,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jC" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/poddoor{id_tag = "proto"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jD" = (/obj/machinery/light{dir = 1; in_use = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jE" = (/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 1; name = "Delta Prototype Lab APC"; pixel_y = 24; start_charge = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jH" = (/obj/machinery/alarm/all_access{pixel_y = 24},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jI" = (/obj/machinery/light{dir = 1; in_use = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jJ" = (/obj/structure/table/reinforced,/obj/machinery/the_singularitygen,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jK" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/engine/vacuum,/area/ruin/space/ancientstation/atmo)
|
||||
"jL" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"jM" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"jN" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"jO" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"jP" = (/obj/effect/decal/warning_stripes/southeast,/obj/effect/decal/warning_stripes/northwest,/obj/effect/decal/cleanable/dirt,/obj/structure/showcase/machinery/oldpod,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"jQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/warning_stripes/southeast,/obj/effect/decal/warning_stripes/northwest,/obj/effect/decal/cleanable/dirt,/obj/structure/showcase/machinery/oldpod,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"jR" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"jS" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 8},/obj/item/paper/fluff/ruins/oldstation/protosuit,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jT" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/poddoor{id_tag = "proto"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jU" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jV" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jW" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jX" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/poddoor{id_tag = "proto"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jY" = (/obj/structure/table/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/paper/fluff/ruins/oldstation/protosing,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"jZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"ka" = (/obj/structure/window/reinforced,/turf/simulated/floor/engine/vacuum,/area/ruin/space/ancientstation/atmo)
|
||||
"kb" = (/obj/machinery/atmospherics/unary/tank/air{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"kc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"kd" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/glowstick/random,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"ke" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/deadcockroach,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"kf" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/powered)
|
||||
"kg" = (/obj/structure/closet/crate,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/spray/weedspray,/obj/item/reagent_containers/spray/pestspray,/obj/item/reagent_containers/spray/cleaner,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"kh" = (/obj/structure/closet/crate/engineering/electrical,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"ki" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/southwestcorner,/obj/effect/decal/warning_stripes/northwestcorner,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"kj" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/northeastcorner,/obj/effect/decal/warning_stripes/southeastcorner,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"kk" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"kl" = (/turf/simulated/floor/plating/airless,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"km" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/solar_assembly,/obj/item/stack/sheet/glass{amount = 30},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"kn" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/glowstick/random,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"ko" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/item/paper/fluff/ruins/oldstation,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"kp" = (/obj/structure/closet/crate/engineering/electrical,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"kq" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 8},/obj/item/paper/fluff/ruins/oldstation/protohealth,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"kr" = (/obj/structure/chair,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"ks" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"kt" = (/obj/structure/table/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/paper/fluff/ruins/oldstation/protogun,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"ku" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"kv" = (/turf/simulated/floor/plating,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"kw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/engine,/area/ruin/space/ancientstation/atmo)
|
||||
"kx" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Charlie Main Corridor APC"; pixel_x = 24; start_charge = 0},/obj/structure/closet/crate,/obj/item/storage/backpack/old,/obj/item/storage/backpack/old,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
|
||||
"ky" = (/obj/structure/table/reinforced,/obj/item/healthanalyzer/advanced{desc = "A prototype hand-held body scanner able to distinguish vital signs of the subject."; name = "prototype health analyzer"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"kz" = (/obj/machinery/light,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"kA" = (/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"kB" = (/obj/structure/table/reinforced,/obj/item/gun/energy/e_gun/old,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"kC" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1},/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"kD" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/engine,/area/ruin/space/ancientstation/atmo)
|
||||
"kE" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/proto)
|
||||
"kF" = (/obj/structure/transit_tube_pod{dir = 4},/obj/structure/transit_tube/station/reverse{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/arrow{icon_state = "4"; dir = 1},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"kG" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"kH" = (/turf/simulated/mineral/uranium,/area/ruin/unpowered)
|
||||
"kI" = (/obj/effect/decal/warning_stripes/southeast,/obj/effect/decal/warning_stripes/northwest,/obj/effect/decal/cleanable/dirt,/obj/effect/mob_spawn/human/oldsec,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"kJ" = (/obj/effect/decal/warning_stripes/southeast,/obj/effect/decal/warning_stripes/northwest,/obj/effect/decal/cleanable/dirt,/obj/effect/mob_spawn/human/oldsci,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"kK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/warning_stripes/southeast,/obj/effect/decal/warning_stripes/northwest,/obj/effect/decal/cleanable/dirt,/obj/effect/mob_spawn/human/oldeng,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"kL" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/rnd)
|
||||
"kM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"kN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"kO" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"kP" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"kQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"kR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"kS" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"kT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/particle_accelerator/particle_emitter/left{icon = 'icons/obj/machines/particle_accelerator3.dmi'},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"kU" = (/obj/effect/decal/cleanable/dirt,/obj/structure/particle_accelerator/fuel_chamber{icon = 'icons/obj/machines/particle_accelerator3.dmi'},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"kV" = (/obj/effect/decal/cleanable/dirt,/obj/structure/particle_accelerator/end_cap{icon = 'icons/obj/machines/particle_accelerator3.dmi'},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"kW" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/glass/bottle/bromine{pixel_x = -3},/obj/item/reagent_containers/glass/bottle/aluminum{pixel_x = 4},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"kX" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"kY" = (/obj/effect/decal/cleanable/dirt,/obj/structure/particle_accelerator/power_box{icon = 'icons/obj/machines/particle_accelerator3.dmi'},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"kZ" = (/turf/simulated/floor/plating,/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
|
||||
"la" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"lb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm/all_access{dir = 4; pixel_x = -24},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"lc" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24},/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"ld" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"le" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"lf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 1; in_use = 1},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"lg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"lh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"li" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 0; icon_state = "green"},/area/ruin/space/ancientstation/hydroponics)
|
||||
"lj" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "greencorner"; dir = 8},/area/ruin/space/ancientstation/hydroponics)
|
||||
"lk" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/ruin/space/ancientstation/hydroponics)
|
||||
"ll" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/ruin/space/ancientstation/sec)
|
||||
"lm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/ruin/space/ancientstation/sec)
|
||||
"ln" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "red"},/area/ruin/space/ancientstation/sec)
|
||||
"lo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/ruin/space/ancientstation/sec)
|
||||
"lp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/ruin/space/ancientstation/engi)
|
||||
"lq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "cautioncorner"},/area/ruin/space/ancientstation)
|
||||
"lr" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"ls" = (/obj/machinery/light/small{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/blood/oil,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 8},/area/ruin/space/ancientstation/engi)
|
||||
"lt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"lu" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "red"},/area/ruin/space/ancientstation/sec)
|
||||
"lv" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/item/storage/backpack/old,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/ruin/space/ancientstation/sec)
|
||||
"lw" = (/obj/structure/cable/yellow,/obj/machinery/power/solar_control{name = "Station Solar Control Computer"},/obj/item/paper/solar,/turf/simulated/floor/plasteel{dir = 10; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"lx" = (/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/stack/sheet/glass{amount = 30},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 0; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"ly" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "cautioncorner"},/area/ruin/space/ancientstation/engi)
|
||||
"lz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"lA" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Beta Engineering APC"; pixel_x = 24; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"lB" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow/old,/obj/item/clothing/gloves/color/fyellow/old,/obj/item/multitool,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 10; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"lC" = (/obj/structure/rack,/obj/item/storage/toolbox/mechanical/old,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 0; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"lD" = (/obj/structure/rack,/obj/item/stack/cable_coil,/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Charlie Engineering APC"; pixel_x = 24; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 6; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"lE" = (/obj/machinery/light/small{dir = 4},/obj/machinery/pipedispenser,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"lF" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "red"},/area/ruin/space/ancientstation/sec)
|
||||
"lG" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/ruin/space/ancientstation/sec)
|
||||
"lH" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 0; icon_state = "red"},/area/ruin/space/ancientstation/sec)
|
||||
"lI" = (/obj/structure/table,/obj/item/restraints/handcuffs,/obj/item/clothing/mask/gas,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/ruin/space/ancientstation/sec)
|
||||
"lJ" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"lK" = (/obj/machinery/alarm/all_access{dir = 4; pixel_x = -24},/obj/structure/rack,/obj/item/gun/energy/laser/retro/old{pixel_x = -3; pixel_y = -3},/obj/item/gun/energy/laser/retro/old,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 10; icon_state = "red"},/area/ruin/space/ancientstation/sec)
|
||||
"lL" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/old,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 0; icon_state = "red"},/area/ruin/space/ancientstation/sec)
|
||||
"lM" = (/obj/structure/rack,/obj/item/clothing/head/helmet/old,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/ruin/space/ancientstation/sec)
|
||||
"lN" = (/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"lO" = (/obj/structure/transit_tube/station/reverse,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/arrow,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaagcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagcaaaaaaaaaaaaaaaaaaabababababababababababaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacacacacacacacacacacacacacacabababaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadapacapapacaiahajahahaiacakacababaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalamanananananamalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacapcoaccvapacapapapaiaqaoacaraiaiasaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalaMaOauavawaYbhalalaaaaaaaaaaaaaaaaabababaaaaaaaaaaagababacapapacapcKacapapahapahcLaccPcLayasaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazazalaMaOataAaBaCataYbhalazazazaaaaagaaababababaaagaaaaaaagababacaiahaDaoahaDapdsaiapcLahaDcLcLaiasaa
|
||||
aaaaaaaaaaaaaaaaaaagaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaEalbiaFaGaGaGatataFbjalaIaJazagagaaaaababababaaaaaaaaagaaababacaxahaDahajaDapapapapcLahaDcLcLayasaa
|
||||
aaaaaaaaaaaaabaaaaaaaaagagagagagagagagagagagagagagagagagazaKaLalbkatataGaNaGatatcWalaPaQazaaaaaaagaaababaaaaaaagaaaaaaababaccoapacaiahacapaiahapahcLaccLcLaiasaa
|
||||
aaaaaaagaaabababagaaagaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaRaLalbiaSataGaTaGataFbjalaUazazaaaaaaaaaaaacXaaaaaaaaaaaaaaababacapapaccoapacapapapaiajaoacahaoayasaa
|
||||
aaaVaWaVagababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaXaLaldcdtataGaZaGatdudvalbabbazaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacbcapacdsapacahahaoahahahacbdacababaa
|
||||
aVbebfaVaVabababaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazbgaLalaldLdMdtaZdudPdxalalblbmazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacacacbnbnacacacacacacacacacababaaaa
|
||||
aVbfbfbfbobfbfbfbfbfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazazazazazbpazalambqbqbrbqbqamalazaUbsazazazazaaaaaaaaaaaaaabubububuaaaaababbvbwbxbxbwbvababababababbubububuaa
|
||||
agbybebebebebfbebebzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbBbCbDbEbFbGbHbIbGbGbJbGbGbIbHbGbGbKbLbCbCbAaacXaaaaaaaaaabMbNbObPbubububububQbRbRbQbubububububububudHbTbuaa
|
||||
aVbybebebebebUbebYbWcXcXdecXcXcXcXcXcXcXcXcXdecXcXbXdzbCbZcacbcdcecdcdcdcfbGbGcgbHbGbGbCchbCcibXcXaadkaaaadncXcjclcmcndKcpcqevcpevcrewbOewbObOewcsbOctcudHeybuaa
|
||||
aVbzbfbfbebebfcwbebzaHaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbCcxbDcyczcAcAcBcBcBcBcBcBcBcAcAcEcFbLcGbCbAaaaacXaaaaaaaabMcIcJbPfwfxcMfycNfzcNfycNfycOcNfycMgWhnbubScQbuaa
|
||||
aaaVcRcSbecTbfbfbfbfbfaaaaaaagaaagaaagaaaaaaaaaacUcUcUcUcUcVbJcAemepcZcZdacZcZeFeHcAbJdddgdgdgdgdgaaaaaaaaaaaabubububudhdidjdjdjdjdjdmdmdjdjdjdjdjdodqbubububuaa
|
||||
agbedrbzbebebfaVaVagaWagagaeckaeckaeeKdpagagcUcUcUeJeteLcUcabJcBdwdwdwdwdwdwdwdwcYcBbJbCdgdXdZeldAdgdgaaaaababaaaaaabudBdCdjdDdEdEdFdGdGhTdEdEdFdjewiWbuaaaaaaaa
|
||||
aVbebedIbebebfdJagagaaaaaaaeckaeckaehfaeaaaacUgXgZdNdOhmcUdQbJdRdwdwdwdSdTdUdwdwdwdRdVdWdgeudYeIeRfgdgaadnabababaaaabueadCdjebecedkLdGdGdEeeefegdjbOehbubububuaa
|
||||
aVeiejbzekekbfaVaVaaaaaaaaaehfcHeKcDckaeaaaacUhodOeneohpcUhCeqcBhDdwdweresdwdwdwhFcBdVbCdgfXdYdYdYgvdgaaaaaaababaaaabukMkNdjexdEdEdEdGdGdEdEdEdEdjkOkObuezezbubu
|
||||
aaaVeAbfbebebfbeeBaVaaaaaaaackaahfaackaaaaaaeCdOeDeEdOhGcUhHeGcAhMcZcZiQliljcZcZlkcAeGeMeNeueOePeQgNdgaaaaaaaabubububueSdCdjdEeTeUdEkPdGkLeVeWdEdjbOcJbuezeXeXbu
|
||||
aaagaaaWbebebzbeaVaVagaaaaaackaahfaackaaeCeCeCdOeYeZfadNfbcafccAcAcAcAcAfdcAcAcAcAcAfebCffgQfhdyeQhedgagagagagbufifjbukQkRdjfmdEdEfndGdGfodEdEfpdjkSkSbuezeXeXbu
|
||||
aaagaaaVfrfsftfsfufvfvagaghlhshJiBhJhshJhLfBfAfCfDfEfFfGfHfIfJfKfLfLfMfLfNfOfPfOfOfQfRfSfTfUfVfVfWhKfYbtbtbtbtfZgagbhEgdgedjgfggghgigjgkgfglgmgfdjfqfqcubSbSeXbu
|
||||
aaagaaaagnbebzbegoaVagaaaaaaiOaahfaahfaaeCeCeCgpeYgqdOgrfbcafcgsgsgsgsgsgtgsgsgsgsgsfebCffllgudyeQlmdgagagagagbugwgxbufkfldjgygygygydGgzdjdjdjdjdjkSkSbubSgAgAbu
|
||||
aaaeagagaVaVbfgBaVaVaaaaaaaaiOaackaahfaaaaaaeCgpgCgDdOlpcUlqeGgsgEgFgGgHgIgJgGgKgLgseGeMdglngMePeQlodgaaaaaaaabubububugOgPdjdGdGkXdGdGgzdjkWgRgSdjgTgUbubSgAgAbu
|
||||
aaagaaaaaagVaWaaagaaaaaaaacCiPaeckaehfaeaaaacUlsdOdOgYltcUhCdVhagGgGhbhchdhcgGgGgGhadVdWdglueQeQeQlvdgaaaaaaaaaaaaaabufkfldjhghghhgfhihjdjgfgfhkdjkSkSbubShUhVbu
|
||||
aaagaaaaaaagaaaaagagafaaaaaekZcCjwaeklcDaaaacUlwlxlydOlzcUhqdVhrgGgGgGgGgGhbgGgGgGhrdVbCdglFeQlGlHlIdgaaaaaaaaaaaaaabuhtfldjhuhvgihwlahxhyhzhAhBdjfqfqbujmkTkUbu
|
||||
aaagaaaaaaagagagaeaeccagagaekvaeckaehfaeagagcUcUcUlBlClDcUdQdVhagGgGhIgGgGgGgGgGgGhadVbCdglKlLlMdgdgdgaaaaaaaaaaaaaabulbkRdjhNhOgfhPgfhQdjhRgfhSdjkSlcbukVkYbubu
|
||||
aaagaaaaaaagaaaaaaaaaaaaaaagkZaghfagckagaaaaaaaacUcUcUcUcUcVdVgshWhXhYhZiahYhZibicgsdViddgdgdgdgdgaaaaaaaaaaaabubububuieifdjigigihgfiihQdjijikildjfqimbubububuaa
|
||||
inioipaaagagaaaaaaaaaaaaaaaeiOaeckaehfaeaaaaaaaacUiqirisitcyiugsgshahahahahahahagsgsivcFbLcGbCbAaaaaaaaaaaaaaabMfqiwbPfkfldjdjdjdjdjdmixdjdjdjdjdjiyizbudHiAbuaa
|
||||
aglriniClrlraaaaaaaaaaaaaaaekZaeckaehfcDaaaaaaaacUiDiEiFiGiHiIiJiKiJiJiJiLiJiJiJiKiJiMbCiNbCkFbXcXcXcXdecXcXcXcjlOfqcnfkiRiSldiUiVldiTleiTlfiTldiSiXfqcudHiYbuaa
|
||||
inlrlrininlraaaaaeagagagagcHiPaeckaeklcDagagagagcUiZjajbitjcjdjeeMjfbCbCdVbCbCjfeMbCbCjgbLbCbCbAaaaaaaaaaaaaaabMfqfqbPjhjijjlgjkjilgjlkRfqlhfqkSjnfqjobudHbSbuaa
|
||||
injpipdbininaaaaaaaaaaaaaaaaagaadfaaagaaaaaaaaaacUcUcUcUcUazjqazazazbAbAjrbAbAazazazjsazazazazazaaaaaaaaaaaaaabubububububujtjtjtjtjtjujvjtjtjtjtjtbubububububuaa
|
||||
inlAipipaainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazjxjyazazjzbCbCdVbCbCbCazazbgjAazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtjBjCjDjEjFjGjHjIjCjJjtaaaaaaaaaaaaaa
|
||||
lrlrjKjLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazjMjNazjObCjPbCjQbCkIbCjRazbgbgazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtjSjTjUjVjVjGjVjWjXjYjtaaaaaaaaaaaaaa
|
||||
jZlrkajLaaagaaaaaaaaagaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaazkbkcazkdbCbCbCdVkebCbCkfazkgkhazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtjtjtkijVjVjGjVkjjtjtjtaaaaaaaaaaaaaa
|
||||
kkinlEjLagaaagagagagaaaaaaaaagdlagaaaaagagagagagagagagagazazkmazknbCkJbCkKbCjPbCkoazkpazazagagagagagagagagagagagagagagagagjtkqjTjUjVkrksjVjWjXktjtaaaaaaaaaaaaaa
|
||||
kulJkwjLaaaaaaaaaaaaaaaaaaagaaababaaaaaaaaaaaaaaaaaaaaaaaaazkxazkdbCbCbCdVbCbCbCkfazbgazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtkyjCjUkzkAkAkzjWjCkBjtaaaaaaaaaaaaaa
|
||||
kClrkDjLaaagaaaaaaaaaaaaagaaaHabababaaagaaaaaaaaaaaaaaaaaaazazazbCbCjPbCjQbCjPbCbCazazazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtjtjtjtjtkEkEjtjtjtjtjtaaaaaaaaaaaaaa
|
||||
aalNipipaaaaaaaaaaaaaaaaaaaaababababaaaaaaaaaaaaaaaaaaaaaaaaaaazazjfbCbCkGbCbCjfazazaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
agipipaaaaaaaaaaaaaaaaaaaaaaabkHababaaaaaaaaaaaaaaaaaaaaaaaaaaaaazazbAazbAazbAazazaaaaaaaaaaaaaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagcaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaagcaaaaaaaaaaaaaaaaaagcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagcaaaaaaababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
"}
|
||||
@@ -35,11 +35,13 @@
|
||||
#include "map_files\RandomRuins\SpaceRuins\intactemptyship.dmm"
|
||||
#include "map_files\RandomRuins\SpaceRuins\listeningpost.dmm"
|
||||
#include "map_files\RandomRuins\SpaceRuins\mechtransport.dmm"
|
||||
#include "map_files\RandomRuins\SpaceRuins\oldstation.dmm"
|
||||
#include "map_files\RandomRuins\SpaceRuins\onehalf.dmm"
|
||||
#include "map_files\RandomRuins\SpaceRuins\spacebar.dmm"
|
||||
#include "map_files\RandomRuins\SpaceRuins\turretedoutpost.dmm"
|
||||
#include "map_files\RandomRuins\SpaceRuins\way_home.dmm"
|
||||
|
||||
|
||||
// Shuttle Templates
|
||||
#include "map_files\shuttles\cargo_base.dmm"
|
||||
#include "map_files\shuttles\emergency_bar.dmm"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#define SEND_SIGNAL(target, sigtype, arguments...) ( !target.comp_lookup || !target.comp_lookup[sigtype] ? NONE : target._SendSignal(sigtype, list(target, ##arguments)) )
|
||||
|
||||
#define SEND_GLOBAL_SIGNAL(sigtype, arguments...) ( SEND_SIGNAL(SSdcs, sigtype, ##arguments) )
|
||||
|
||||
//shorthand
|
||||
#define GET_COMPONENT_FROM(varname, path, target) var##path/##varname = ##target.GetComponent(##path)
|
||||
#define GET_COMPONENT(varname, path) GET_COMPONENT_FROM(varname, path, src)
|
||||
@@ -8,15 +10,25 @@
|
||||
|
||||
// How multiple components of the exact same type are handled in the same datum
|
||||
|
||||
#define COMPONENT_DUPE_HIGHLANDER 0 //old component is deleted (default)
|
||||
#define COMPONENT_DUPE_ALLOWED 1 //duplicates allowed
|
||||
#define COMPONENT_DUPE_UNIQUE 2 //new component is deleted
|
||||
#define COMPONENT_DUPE_UNIQUE_PASSARGS 4 //old component is given the initialization args of the new
|
||||
#define COMPONENT_DUPE_HIGHLANDER 0 //old component is deleted (default)
|
||||
#define COMPONENT_DUPE_ALLOWED 1 //duplicates allowed
|
||||
#define COMPONENT_DUPE_UNIQUE 2 //new component is deleted
|
||||
#define COMPONENT_DUPE_UNIQUE_PASSARGS 4 //old component is given the initialization args of the new
|
||||
|
||||
// All signals. Format:
|
||||
// When the signal is called: (signal arguments)
|
||||
// All signals send the source datum of the signal as the first argument
|
||||
|
||||
// global signals
|
||||
// These are signals which can be listened to by any component on any parent
|
||||
// start global signals with "!", this used to be necessary but now it's just a formatting choice
|
||||
#define COMSIG_GLOB_NEW_Z "!new_z" //from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
|
||||
#define COMSIG_GLOB_VAR_EDIT "!var_edit" //called after a successful var edit somewhere in the world: (list/args)
|
||||
#define COMSIG_GLOB_MOB_CREATED "!mob_created" //mob was created somewhere : (mob)
|
||||
#define COMSIG_GLOB_MOB_DEATH "!mob_death" //mob died somewhere : (mob , gibbed)
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
// /datum signals
|
||||
#define COMSIG_COMPONENT_ADDED "component_added" //when a component is added to a datum: (/datum/component)
|
||||
#define COMSIG_COMPONENT_REMOVING "component_removing" //before a component is removed from a datum because of RemoveComponent: (/datum/component)
|
||||
@@ -35,6 +47,8 @@
|
||||
//End positions
|
||||
#define COMPONENT_EXNAME_CHANGED 1
|
||||
#define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (atom/movable/entering, /atom)
|
||||
#define COMSIG_ATOM_EXIT "atom_exit" //from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc)
|
||||
#define COMPONENT_ATOM_BLOCK_EXIT 1
|
||||
#define COMSIG_ATOM_EXITED "atom_exited" //from base of atom/Exited(): (atom/movable/exiting, atom/newloc)
|
||||
#define COMSIG_ATOM_EX_ACT "atom_ex_act" //from base of atom/ex_act(): (severity, target)
|
||||
#define COMSIG_ATOM_EMP_ACT "atom_emp_act" //from base of atom/emp_act(): (severity)
|
||||
@@ -49,9 +63,18 @@
|
||||
#define COMSIG_ATOM_RCD_ACT "atom_rcd_act" //from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode)
|
||||
#define COMSIG_ATOM_SING_PULL "atom_sing_pull" //from base of atom/singularity_pull(): (S, current_size)
|
||||
#define COMSIG_ATOM_SET_LIGHT "atom_set_light" //from base of atom/set_light(): (l_range, l_power, l_color)
|
||||
#define COMSIG_ATOM_ROTATE "atom_rotate" //from base of atom/shuttleRotate(): (rotation, params)
|
||||
#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" //from base of atom/setDir(): (old_dir, new_dir)
|
||||
#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" //from base of atom/handle_atom_del(): (atom/deleted)
|
||||
#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" //from base of atom/has_gravity(): (turf/location, list/forced_gravities)
|
||||
#define COMSIG_ATOM_RAD_PROBE "atom_rad_probe" //from proc/get_rad_contents(): ()
|
||||
#define COMPONENT_BLOCK_RADIATION 1
|
||||
#define COMSIG_ATOM_RAD_CONTAMINATING "atom_rad_contam" //from base of datum/radiation_wave/radiate(): (strength)
|
||||
#define COMPONENT_BLOCK_CONTAMINATION 1
|
||||
#define COMSIG_ATOM_RAD_WAVE_PASSING "atom_rad_wave_pass" //from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width)
|
||||
#define COMPONENT_RAD_WAVE_HANDLED 1
|
||||
#define COMSIG_ATOM_CANREACH "atom_can_reach" //from internal loop in atom/movable/proc/CanReach(): (list/next)
|
||||
#define COMPONENT_BLOCK_REACH 1
|
||||
#define COMSIG_ATOM_SCREWDRIVER_ACT "atom_screwdriver_act" //from base of atom/screwdriver_act(): (mob/living/user, obj/item/I)
|
||||
/////////////////
|
||||
#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" //from base of atom/attack_ghost(): (mob/dead/observer/ghost)
|
||||
#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" //from base of atom/attack_hand(): (mob/user)
|
||||
@@ -62,7 +85,7 @@
|
||||
#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area)
|
||||
#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area)
|
||||
|
||||
#define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params)
|
||||
#define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params, mob/user)
|
||||
#define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob)
|
||||
#define COMSIG_CLICK_CTRL "ctrl_click" //from base of atom/CtrlClickOn(): (/mob)
|
||||
#define COMSIG_CLICK_ALT "alt_click" //from base of atom/AltClick(): (/mob)
|
||||
@@ -75,44 +98,117 @@
|
||||
#define COMSIG_AREA_ENTERED "area_entered" //from base of area/Entered(): (atom/movable/M)
|
||||
#define COMSIG_AREA_EXITED "area_exited" //from base of area/Exited(): (atom/movable/M)
|
||||
|
||||
// /turf signals
|
||||
#define COMSIG_TURF_CHANGE "turf_change" //from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/transferring_comps)
|
||||
#define COMSIG_TURF_HAS_GRAVITY "turf_has_gravity" //from base of atom/has_gravity(): (atom/asker, list/forced_gravities)
|
||||
|
||||
// /atom/movable signals
|
||||
#define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir)
|
||||
#define COMSIG_MOVABLE_CROSS "movable_cross" //from base of atom/movable/Cross(): (/atom/movable)
|
||||
#define COMSIG_MOVABLE_CROSSED "movable_crossed" //from base of atom/movable/Crossed(): (/atom/movable)
|
||||
#define COMSIG_MOVABLE_UNCROSS "movable_uncross" //from base of atom/movable/Uncross(): (/atom/movable)
|
||||
#define COMPONENT_MOVABLE_BLOCK_UNCROSS 1
|
||||
#define COMSIG_MOVABLE_UNCROSSED "movable_uncrossed" //from base of atom/movable/Uncrossed(): (/atom/movable)
|
||||
#define COMSIG_MOVABLE_COLLIDE "movable_collide" //from base of atom/movable/Collide(): (/atom)
|
||||
#define COMSIG_MOVABLE_BUMP "movable_bump" //from base of atom/movable/Bump(): (/atom)
|
||||
#define COMSIG_MOVABLE_IMPACT "movable_impact" //from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum)
|
||||
#define COMSIG_MOVABLE_IMPACT_ZONE "item_impact_zone" //from base of mob/living/hitby(): (mob/living/target, hit_zone)
|
||||
#define COMSIG_MOVABLE_BUCKLE "buckle" //from base of atom/movable/buckle_mob(): (mob, force)
|
||||
#define COMSIG_MOVABLE_UNBUCKLE "unbuckle" //from base of atom/movable/unbuckle_mob(): (mob, force)
|
||||
#define COMSIG_MOVABLE_THROW "movable_throw" //from base of atom/movable/throw_at(): (datum/thrownthing, spin)
|
||||
#define COMSIG_MOVABLE_IMPACT_ZONE "item_impact_zone" //from base of mob/living/hitby(): (mob/living/target, hit_zone)
|
||||
#define COMSIG_MOVABLE_BUCKLE "buckle" //from base of atom/movable/buckle_mob(): (mob, force)
|
||||
#define COMSIG_MOVABLE_UNBUCKLE "unbuckle" //from base of atom/movable/unbuckle_mob(): (mob, force)
|
||||
#define COMSIG_MOVABLE_PRE_THROW "movable_pre_throw" //from base of atom/movable/throw_at(): (list/args)
|
||||
#define COMPONENT_CANCEL_THROW 1
|
||||
#define COMSIG_MOVABLE_POST_THROW "movable_post_throw" //from base of atom/movable/throw_at(): (datum/thrownthing, spin)
|
||||
#define COMSIG_MOVABLE_Z_CHANGED "movable_ztransit" //from base of atom/movable/onTransitZ(): (old_z, new_z)
|
||||
#define COMSIG_MOVABLE_HEAR "movable_hear" //from base of atom/movable/Hear(): (message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode)
|
||||
#define COMSIG_MOVABLE_DISPOSING "movable_disposing" //called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source)
|
||||
|
||||
// /mob signals
|
||||
#define COMSIG_MOB_DEATH "mob_death" //from base of mob/death(): (gibbed)
|
||||
#define COMSIG_MOB_CLICKON "mob_clickon" //from base of mob/clickon(): (atom/A, params)
|
||||
#define COMSIG_MOB_CANCEL_CLICKON 1
|
||||
#define COMSIG_MOB_ALLOWED "mob_allowed" //from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj
|
||||
#define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic" //from base of mob/anti_magic_check(): (magic, holy, protection_sources)
|
||||
#define COMPONENT_BLOCK_MAGIC 1
|
||||
#define COMSIG_MOB_HUD_CREATED "mob_hud_created" //from base of mob/create_mob_hud(): ()
|
||||
#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" //from base of
|
||||
#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" //from base of /obj/item/attack(): (mob/M, mob/user)
|
||||
#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters)
|
||||
#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged" //from base of mob/RangedAttack(): (atom/A, params)
|
||||
#define COMSIG_MOB_THROW "mob_throw" //from base of /mob/throw_item(): (atom/target)
|
||||
#define COMSIG_MOB_UPDATE_SIGHT "mob_update_sight" //from base of /mob/update_sight(): ()
|
||||
|
||||
// /mob/living signals
|
||||
#define COMSIG_LIVING_RESIST "living_resist" //from base of mob/living/resist() (/mob/living)
|
||||
#define COMSIG_LIVING_IGNITED "living_ignite" //from base of mob/living/IgniteMob() (/mob/living)
|
||||
#define COMSIG_LIVING_EXTINGUISHED "living_extinguished" //from base of mob/living/ExtinguishMob() (/mob/living)
|
||||
#define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" //from base of mob/living/electrocute_act(): (shock_damage)
|
||||
#define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" //sent by stuff like stunbatons and tasers: ()
|
||||
|
||||
//ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS!
|
||||
#define COMSIG_LIVING_STATUS_STUN "living_stun" //from base of mob/living/Stun() (amount, update, ignore)
|
||||
#define COMSIG_LIVING_STATUS_KNOCKDOWN "living_knockdown" //from base of mob/living/Knockdown() (amount, update, ignore)
|
||||
#define COMSIG_LIVING_STATUS_PARALYZE "living_paralyze" //from base of mob/living/Paralyze() (amount, update, ignore)
|
||||
#define COMSIG_LIVING_STATUS_IMMOBILIZE "living_immobilize" //from base of mob/living/Immobilize() (amount, update, ignore)
|
||||
#define COMSIG_LIVING_STATUS_UNCONSCIOUS "living_unconscious" //from base of mob/living/Unconscious() (amount, update, ignore)
|
||||
#define COMSIG_LIVING_STATUS_SLEEP "living_sleeping" //from base of mob/living/Sleeping() (amount, update, ignore)
|
||||
#define COMPONENT_NO_STUN 1 //For all of them
|
||||
|
||||
// /mob/living/carbon signals
|
||||
#define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" //from base of mob/living/carbon/soundbang_act(): (list(intensity))
|
||||
|
||||
// /obj signals
|
||||
#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" //from base of obj/deconstruct(): (disassembled)
|
||||
#define COMSIG_OBJ_SETANCHORED "obj_setanchored" //called in /obj/structure/setAnchored(): (value)
|
||||
|
||||
// /obj/item signals
|
||||
#define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
|
||||
#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" //from base of obj/item/attack_self(): (/mob)
|
||||
#define COMPONENT_NO_INTERACT 1
|
||||
#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" //from base of obj/item/attack_obj(): (/obj, /mob)
|
||||
#define COMPONENT_NO_ATTACK_OBJ 1
|
||||
#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" //from base of obj/item/pre_attack(): (atom/target, mob/user, params)
|
||||
#define COMPONENT_NO_ATTACK 1
|
||||
#define COMSIG_ITEM_AFTERATTACK "item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, params)
|
||||
#define COMSIG_ITEM_EQUIPPED "item_equip" //from base of obj/item/equipped(): (/mob/equipper, slot)
|
||||
#define COMSIG_ITEM_DROPPED "item_drop"
|
||||
#define COMSIG_ITEM_DROPPED "item_drop" //from base of obj/item/dropped(): (mob/user)
|
||||
#define COMSIG_ITEM_PICKUP "item_pickup" //from base of obj/item/pickup(): (/mob/taker)
|
||||
#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" //from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone)
|
||||
#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user)
|
||||
#define COMSIG_ITEM_HIT_REACT "item_hit_react" //from base of obj/item/hit_reaction(): (list/args)
|
||||
|
||||
// /obj/item/clothing signals
|
||||
#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): ()
|
||||
|
||||
// /obj/machinery signals
|
||||
#define COMSIG_MACHINE_PROCESS "machine_process" //from machinery subsystem fire(): ()
|
||||
#define COMSIG_MACHINE_PROCESS_ATMOS "machine_process_atmos" //from air subsystem process_atmos_machinery(): ()
|
||||
// /obj/item/implant signals
|
||||
#define COMSIG_IMPLANT_ACTIVATED "implant_activated" //from base of /obj/item/implant/proc/activate(): ()
|
||||
#define COMSIG_IMPLANT_IMPLANTING "implant_implanting" //from base of /obj/item/implant/proc/implant(): (list/args)
|
||||
#define COMPONENT_STOP_IMPLANTING 1
|
||||
#define COMSIG_IMPLANT_OTHER "implant_other" //called on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant)
|
||||
//#define COMPONENT_STOP_IMPLANTING 1 //The name makes sense for both
|
||||
#define COMPONENT_DELETE_NEW_IMPLANT 2
|
||||
#define COMPONENT_DELETE_OLD_IMPLANT 4
|
||||
#define COMSIG_IMPLANT_EXISTING_UPLINK "implant_uplink_exists" //called on implants being implanted into someone with an uplink implant: (datum/component/uplink)
|
||||
//This uses all return values of COMSIG_IMPLANT_OTHER
|
||||
|
||||
// /obj/item/pda signals
|
||||
#define COMSIG_PDA_CHANGE_RINGTONE "pda_change_ringtone" //called on pda when the user changes the ringtone: (mob/living/user, new_ringtone)
|
||||
#define COMPONENT_STOP_RINGTONE_CHANGE 1
|
||||
|
||||
// /obj/item/radio signals
|
||||
#define COMSIG_RADIO_NEW_FREQUENCY "radio_new_frequency" //called from base of /obj/item/radio/proc/set_frequency(): (list/args)
|
||||
|
||||
// /obj/item/pen signals
|
||||
#define COMSIG_PEN_ROTATED "pen_rotated" //called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user)
|
||||
|
||||
|
||||
// /mob/living/carbon/human signals
|
||||
#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target)
|
||||
#define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby" //from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker)
|
||||
#define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit" //Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted)
|
||||
|
||||
// /datum/species signals
|
||||
#define COMSIG_SPECIES_GAIN "species_gain" //from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species)
|
||||
#define COMSIG_SPECIES_LOSS "species_loss" //from datum/species/on_species_loss(): (datum/species/lost_species)
|
||||
|
||||
/*******Component Specific Signals*******/
|
||||
//Janitor
|
||||
#define COMSIG_TURF_IS_WET "check_turf_wet" //(): Returns bitflags of wet values.
|
||||
@@ -127,7 +223,24 @@
|
||||
#define COMSIG_CLEAR_MOOD_EVENT "clear_mood" //Called when you clear a mood event from anywhere in the code.
|
||||
|
||||
//NTnet
|
||||
#define COMSIG_COMPONENT_NTNET_RECIEVE "ntnet_recieve" //called on an object by its NTNET connection component on recieve. (sending_id(number), sending_netname(text), data(datum/netdata))
|
||||
#define COMSIG_COMPONENT_NTNET_RECEIVE "ntnet_receive" //called on an object by its NTNET connection component on receive. (sending_id(number), sending_netname(text), data(datum/netdata))
|
||||
|
||||
//Nanites
|
||||
#define COMSIG_HAS_NANITES "has_nanites" //() returns TRUE if nanites are found
|
||||
#define COMSIG_NANITE_GET_PROGRAMS "nanite_get_programs" //(list/nanite_programs) - makes the input list a copy the nanites' program list
|
||||
#define COMSIG_NANITE_SET_VOLUME "nanite_set_volume" //(amount) Sets current nanite volume to the given amount
|
||||
#define COMSIG_NANITE_ADJUST_VOLUME "nanite_adjust" //(amount) Adjusts nanite volume by the given amount
|
||||
#define COMSIG_NANITE_SET_MAX_VOLUME "nanite_set_max_volume" //(amount) Sets maximum nanite volume to the given amount
|
||||
#define COMSIG_NANITE_SET_CLOUD "nanite_set_cloud" //(amount(0-100)) Sets cloud ID to the given amount
|
||||
#define COMSIG_NANITE_SET_SAFETY "nanite_set_safety" //(amount) Sets safety threshold to the given amount
|
||||
#define COMSIG_NANITE_SET_REGEN "nanite_set_regen" //(amount) Sets regeneration rate to the given amount
|
||||
#define COMSIG_NANITE_SIGNAL "nanite_signal" //(code(1-9999)) Called when sending a nanite signal to a mob.
|
||||
#define COMSIG_NANITE_SCAN "nanite_scan" //(mob/user, full_scan) - sends to chat a scan of the nanites to the user, returns TRUE if nanites are detected
|
||||
#define COMSIG_NANITE_UI_DATA "nanite_ui_data" //(list/data, scan_level) - adds nanite data to the given data list - made for ui_data procs
|
||||
#define COMSIG_NANITE_ADD_PROGRAM "nanite_add_program" //(datum/nanite_program/new_program, datum/nanite_program/source_program) Called when adding a program to a nanite component
|
||||
#define COMPONENT_PROGRAM_INSTALLED 1 //Installation successful
|
||||
#define COMPONENT_PROGRAM_NOT_INSTALLED 2 //Installation failed, but there are still nanites
|
||||
#define COMSIG_NANITE_SYNC "nanite_sync" //(datum/component/nanites, full_overwrite, copy_activation) Called to sync the target's nanites to a given nanite component
|
||||
|
||||
// /datum/component/storage signals
|
||||
#define COMSIG_CONTAINS_STORAGE "is_storage" //() - returns bool.
|
||||
@@ -141,15 +254,22 @@
|
||||
#define COMSIG_TRY_STORAGE_FILL_TYPE "storage_fill_type" //(type, amount = INFINITY, force = FALSE) //don't fuck this up. Force will ignore max_items, and amount is normally clamped to max_items.
|
||||
#define COMSIG_TRY_STORAGE_TAKE "storage_take_obj" //(obj, new_loc, force = FALSE) - returns bool
|
||||
#define COMSIG_TRY_STORAGE_QUICK_EMPTY "storage_quick_empty" //(loc) - returns bool - if loc is null it will dump at parent location.
|
||||
#define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" //(list/list_to_inject_results_into)
|
||||
#define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" //(list/list_to_inject_results_into, recursively_search_inside_storages = TRUE)
|
||||
#define COMSIG_TRY_STORAGE_CAN_INSERT "storage_can_equip" //(obj/item/insertion_candidate, mob/user, silent) - returns bool
|
||||
|
||||
// /datum/action signals
|
||||
#define COMSIG_ACTION_TRIGGER "action_trigger" //from base of datum/action/proc/Trigger(): (datum/action)
|
||||
#define COMPONENT_ACTION_BLOCK_TRIGGER 1
|
||||
|
||||
/*******Non-Signal Component Related Defines*******/
|
||||
|
||||
//Redirection component init flags
|
||||
#define REDIRECT_TRANSFER_WITH_TURF 1
|
||||
|
||||
//Arch
|
||||
#define ARCH_PROB "probability" //Probability for each item
|
||||
#define ARCH_MAXDROP "max_drop_amount" //each item's max drop amount
|
||||
|
||||
//Ouch my toes!
|
||||
#define CALTROP_BYPASS_SHOES 1
|
||||
#define CALTROP_IGNORE_WALKERS 2
|
||||
#define CALTROP_IGNORE_WALKERS 2
|
||||
@@ -128,6 +128,7 @@
|
||||
#define LIGHT_COLOR_DARKGREEN "#50AB00"
|
||||
#define LIGHT_COLOR_PURE_GREEN "#00FF00"
|
||||
|
||||
#define LIGHT_COLOR_BLUE "#6496FA" //Cold, diluted blue. rgb(100, 150, 250)
|
||||
#define LIGHT_COLOR_LIGHTBLUE "#0099FF"
|
||||
#define LIGHT_COLOR_DARKBLUE "#315AB4"
|
||||
#define LIGHT_COLOR_PURE_BLUE "#0000FF"
|
||||
@@ -136,6 +137,8 @@
|
||||
#define LIGHT_COLOR_PURPLE "#CD00CD"
|
||||
#define LIGHT_COLOR_PINK "#FF33CC"
|
||||
|
||||
#define LIGHT_COLOR_YELLOW "#E1E17D" //Dimmed yellow, leaning kaki. rgb(225, 225, 125)
|
||||
|
||||
#define LIGHT_COLOR_WHITE "#FFFFFF"
|
||||
|
||||
#define RESIZE_DEFAULT_SIZE 1
|
||||
|
||||
@@ -177,8 +177,7 @@
|
||||
#define isbot(A) (istype((A), /mob/living/simple_animal/bot))
|
||||
#define isswarmer(A) (istype((A), /mob/living/simple_animal/hostile/swarmer))
|
||||
#define isguardian(A) (istype((A), /mob/living/simple_animal/hostile/guardian))
|
||||
|
||||
|
||||
#define isnymph(A) (istype((A), /mob/living/simple_animal/diona))
|
||||
|
||||
#define issilicon(A) (istype((A), /mob/living/silicon))
|
||||
#define isAI(A) (istype((A), /mob/living/silicon/ai))
|
||||
|
||||
@@ -238,6 +238,32 @@ proc/age2agedescription(age)
|
||||
if(70 to INFINITY) return "elderly"
|
||||
else return "unknown"
|
||||
|
||||
/proc/set_criminal_status(mob/living/user, datum/data/record/target_records , criminal_status, comment, user_rank, list/authcard_access = list())
|
||||
var/status = criminal_status
|
||||
var/their_name = target_records.fields["name"]
|
||||
var/their_rank = target_records.fields["rank"]
|
||||
switch(criminal_status)
|
||||
if("arrest")
|
||||
status = "*Arrest*"
|
||||
if("none")
|
||||
status = "None"
|
||||
if("execute")
|
||||
if((access_magistrate in authcard_access) || (access_armory in authcard_access))
|
||||
status = "*Execute*"
|
||||
message_admins("[ADMIN_FULLMONTY(usr)] authorized <span class='warning'>EXECUTION</span> for [their_rank] [their_name], with comment: [comment]")
|
||||
else
|
||||
return 0
|
||||
if("incarcerated")
|
||||
status = "Incarcerated"
|
||||
if("parolled")
|
||||
status = "Parolled"
|
||||
if("released")
|
||||
status = "Released"
|
||||
target_records.fields["criminal"] = status
|
||||
log_admin("[key_name_admin(user)] set secstatus of [their_rank] [their_name] to [status], comment: [comment]")
|
||||
target_records.fields["comments"] += "Set to [status] by [user.name] ([user_rank]) on [current_date_string] [station_time_timestamp()], comment: [comment]"
|
||||
update_all_mob_security_hud()
|
||||
return 1
|
||||
|
||||
/*
|
||||
Proc for attack log creation, because really why not
|
||||
|
||||
@@ -136,14 +136,14 @@
|
||||
number_of_alphanumeric++
|
||||
last_char_group = 3
|
||||
|
||||
// ' - .
|
||||
if(39,45,46) //Common name punctuation
|
||||
// ' - . ,
|
||||
if(39, 45, 46, 44) //Common name punctuation
|
||||
if(!last_char_group) continue
|
||||
t_out += ascii2text(ascii_char)
|
||||
last_char_group = 2
|
||||
|
||||
// ~ | @ : # $ % & * + !
|
||||
if(126,124,64,58,35,36,37,38,42,43,33) //Other symbols that we'll allow (mainly for AI)
|
||||
if(126, 124, 64, 58, 35, 36, 37, 38, 42, 43, 33) //Other symbols that we'll allow (mainly for AI)
|
||||
if(!last_char_group) continue //suppress at start of string
|
||||
if(!allow_numbers) continue
|
||||
t_out += ascii2text(ascii_char)
|
||||
@@ -551,4 +551,4 @@ proc/checkhtml(var/t)
|
||||
text = replacetext(text, "<img src = ntlogo.png>", "\[logo\]")
|
||||
return text
|
||||
|
||||
#define string2charlist(string) (splittext(string, regex("(\\x0A|.)")) - splittext(string, ""))
|
||||
#define string2charlist(string) (splittext(string, regex("(\\x0A|.)")) - splittext(string, ""))
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
//please store common type caches here.
|
||||
//type caches should only be stored here if used in mutiple places or likely to be used in mutiple places.
|
||||
|
||||
//Note: typecache can only replace istype if you know for sure the thing is at least a datum.
|
||||
|
||||
GLOBAL_LIST_INIT(typecache_mob, typecacheof(/mob))
|
||||
|
||||
GLOBAL_LIST_INIT(typecache_living, typecacheof(/mob/living))
|
||||
|
||||
GLOBAL_LIST_INIT(typecache_stack, typecacheof(/obj/item/stack))
|
||||
|
||||
GLOBAL_LIST_INIT(typecache_machine_or_structure, typecacheof(list(/obj/machinery, /obj/structure)))
|
||||
@@ -315,6 +315,18 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the
|
||||
desc = "Unit's power cell is running low. Recharging stations are available in robotics, the dormitory bathrooms, and the AI satellite."
|
||||
icon_state = "lowcell"
|
||||
|
||||
//Diona Nymph
|
||||
/obj/screen/alert/nymph
|
||||
name = "Gestalt merge"
|
||||
desc = "You have merged with a diona gestalt and are now part of it's biomass. You can still wiggle yourself free though."
|
||||
|
||||
/obj/screen/alert/nymph/Click()
|
||||
if(!usr || !usr.client)
|
||||
return
|
||||
if(isnymph(usr))
|
||||
var/mob/living/simple_animal/diona/D = usr
|
||||
return D.resist()
|
||||
|
||||
//Need to cover all use cases - emag, illegal upgrade module, malf AI hack, traitor cyborg
|
||||
/obj/screen/alert/hacked
|
||||
name = "Hacked"
|
||||
|
||||
@@ -14,7 +14,9 @@
|
||||
|
||||
// No comment
|
||||
/atom/proc/attackby(obj/item/W, mob/user, params)
|
||||
return SEND_SIGNAL(src, COMSIG_PARENT_ATTACKBY, W, user, params)
|
||||
if(SEND_SIGNAL(src, COMSIG_PARENT_ATTACKBY, W, user, params) & COMPONENT_NO_AFTERATTACK)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/attackby(obj/item/I, mob/living/user, params)
|
||||
return ..() || (can_be_hit && I.attack_obj(src, user))
|
||||
|
||||
@@ -261,7 +261,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
|
||||
|
||||
if(isnull(D.gc_destroyed))
|
||||
if(SEND_SIGNAL(D, COMSIG_PARENT_QDELETED, force)) // Give the components a chance to prevent their parent from being deleted
|
||||
if(SEND_SIGNAL(D, COMSIG_PARENT_PREQDELETED, force)) // Give the components a chance to prevent their parent from being deleted
|
||||
return
|
||||
D.gc_destroyed = GC_CURRENTLY_BEING_QDELETED
|
||||
var/start_time = world.time
|
||||
|
||||
@@ -26,15 +26,18 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo
|
||||
|
||||
### Defines
|
||||
|
||||
1. `COMPONENT_INCOMPATIBLE` Return this from `/datum/component/Initialize` or `datum/component/OnTransfer` to have the component be deleted if it's applied to an incorrect type. `parent` must not be modified if this is to be returned.
|
||||
|
||||
1. `COMPONENT_INCOMPATIBLE` Return this from `/datum/component/Initialize` or `datum/component/OnTransfer` to have the component be deleted if it's applied to an incorrect type. `parent` must not be modified if this is to be returned. This will be noted in the runtime logs
|
||||
|
||||
### Vars
|
||||
|
||||
1. `/datum/var/list/datum_components` (private)
|
||||
* Lazy associated list of type -> component/list of components.
|
||||
1. `/datum/component/var/enabled` (protected, boolean)
|
||||
* If the component is enabled. If not, it will not react to signals
|
||||
1. `/datum/var/list/comp_lookup` (private)
|
||||
* Lazy associated list of signal -> registree/list of registrees
|
||||
1. `/datum/var/list/signal_procs` (private)
|
||||
* Associated lazy list of signals -> `/datum/callback`s that will be run when the parent datum receives that signal
|
||||
1. `/datum/var/signal_enabled` (protected, boolean)
|
||||
* If the datum is signal enabled. If not, it will not react to signals
|
||||
* `FALSE` by default, set to `TRUE` when a signal is registered
|
||||
1. `/datum/component/var/dupe_mode` (protected, enum)
|
||||
* How duplicate component types are handled when added to the datum.
|
||||
@@ -46,11 +49,12 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo
|
||||
* Definition of a duplicate component type
|
||||
* `null` means exact match on `type` (default)
|
||||
* Any other type means that and all subtypes
|
||||
1. `/datum/component/var/list/signal_procs` (private)
|
||||
* Associated lazy list of signals -> `/datum/callback`s 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
|
||||
* Never `null` in child procs
|
||||
1. `report_signal_origin` (protected, boolean)
|
||||
* If `TRUE`, will invoke the callback when signalled with the signal type as the first argument.
|
||||
* `FALSE` by default.
|
||||
|
||||
### Procs
|
||||
|
||||
@@ -77,7 +81,7 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo
|
||||
1. `/datum/proc/LoadComponent(component_type(type), ...) -> datum/component` (public, final)
|
||||
* Equivalent to calling `GetComponent(component_type)` where, if the result would be `null`, returns `AddComponent(component_type, ...)` instead
|
||||
1. `/datum/proc/ComponentActivated(datum/component/C)` (abstract, async)
|
||||
* Called on a component's `parent` after a signal recieved causes it to activate. `src` is the parameter
|
||||
* Called on a component's `parent` after a signal received 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
|
||||
@@ -86,13 +90,21 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo
|
||||
1. `/datum/proc/_SendSignal(signal, list/arguments)` (private, final)
|
||||
* Handles most of the actual signaling procedure
|
||||
* Will runtime if used on datums with an empty component list
|
||||
1. `/datum/proc/RegisterSignal(datum/target, signal(string/list of strings), proc_ref(type), override(boolean))` (protected, final)
|
||||
* If signal is a list it will be as if RegisterSignal was called for each of the entries with the same following arguments
|
||||
* Makes the datum listen for the specified `signal` on it's `parent` datum.
|
||||
* When that signal is received `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/New(datum/parent, ...)` (private, final)
|
||||
* Runs internal setup for the component
|
||||
* Extra arguments are passed to `Initialize()`
|
||||
1. `/datum/component/Initialize(...)` (abstract, no-sleep)
|
||||
* Called by `New()` with the same argments excluding `parent`
|
||||
* Component does not exist in `parent`'s `datum_components` list yet, although `parent` is set and may be used
|
||||
* Signals will not be recieved while this function is running
|
||||
* Signals will not be received while this function is running
|
||||
* Component may be deleted after this function completes without being attached
|
||||
* Do not call `qdel(src)` from this function
|
||||
1. `/datum/component/Destroy(force(bool), silent(bool))` (virtual, no-sleep)
|
||||
@@ -113,13 +125,11 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo
|
||||
* Clears `parent` and removes the component from it's component list
|
||||
1. `/datum/component/proc/_JoinParent` (private, final)
|
||||
* Tries to add the component to it's `parent`s `datum_components` list
|
||||
1. `/datum/component/proc/RegisterSignal(datum/target, signal(string/list of strings), proc_ref(type), override(boolean))` (protected, final)
|
||||
* If signal is a list it will be as if RegisterSignal was called for each of the entries with the same following arguments
|
||||
* 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/RegisterWithParent` (abstract, no-sleep)
|
||||
* Used to register the signals that should be on the `parent` object
|
||||
* Use this if you plan on the component transfering between parents
|
||||
1. `/datum/component/proc/UnregisterFromParent` (abstract, no-sleep)
|
||||
* Counterpart to `RegisterWithParent()`
|
||||
* Used to unregister the signals that should only be on the `parent` object
|
||||
|
||||
### See/Define signals and their arguments in __DEFINES\components.dm
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
/datum/component
|
||||
var/enabled = FALSE
|
||||
var/dupe_mode = COMPONENT_DUPE_HIGHLANDER
|
||||
var/dupe_type
|
||||
var/list/signal_procs
|
||||
var/datum/parent
|
||||
|
||||
/datum/component/New(datum/P, ...)
|
||||
@@ -10,7 +8,7 @@
|
||||
var/list/arguments = args.Copy(2)
|
||||
if(Initialize(arglist(arguments)) == COMPONENT_INCOMPATIBLE)
|
||||
qdel(src, TRUE, TRUE)
|
||||
CRASH("Incompatible [type] assigned to a [P]!")
|
||||
CRASH("Incompatible [type] assigned to a [P.type]! args: [json_encode(arguments)]")
|
||||
|
||||
_JoinParent(P)
|
||||
|
||||
@@ -47,19 +45,21 @@
|
||||
else //only component of this type, no list
|
||||
dc[I] = src
|
||||
|
||||
RegisterWithParent()
|
||||
|
||||
// If you want/expect to be moving the component around between parents, use this to register on the parent for signals
|
||||
/datum/component/proc/RegisterWithParent()
|
||||
return
|
||||
|
||||
/datum/component/proc/Initialize(...)
|
||||
return
|
||||
|
||||
/datum/component/Destroy(force=FALSE, silent=FALSE)
|
||||
enabled = FALSE
|
||||
var/datum/P = parent
|
||||
if(!force)
|
||||
if(!force && parent)
|
||||
_RemoveFromParent()
|
||||
if(!silent)
|
||||
SEND_SIGNAL(P, COMSIG_COMPONENT_REMOVING, src)
|
||||
SEND_SIGNAL(parent, COMSIG_COMPONENT_REMOVING, src)
|
||||
parent = null
|
||||
for(var/target in signal_procs)
|
||||
UnregisterSignal(target, signal_procs[target])
|
||||
return ..()
|
||||
|
||||
/datum/component/proc/_RemoveFromParent()
|
||||
@@ -78,7 +78,12 @@
|
||||
if(!dc.len)
|
||||
P.datum_components = null
|
||||
|
||||
/datum/component/proc/RegisterSignal(datum/target, sig_type_or_types, proc_or_callback, override = FALSE)
|
||||
UnregisterFromParent()
|
||||
|
||||
/datum/component/proc/UnregisterFromParent()
|
||||
return
|
||||
|
||||
/datum/proc/RegisterSignal(datum/target, sig_type_or_types, proc_or_callback, override = FALSE)
|
||||
if(QDELETED(src) || QDELETED(target))
|
||||
return
|
||||
|
||||
@@ -100,6 +105,7 @@
|
||||
stack_trace("[sig_type] overridden. Use override = TRUE to suppress this warning")
|
||||
|
||||
procs[target][sig_type] = proc_or_callback
|
||||
|
||||
if(!lookup[sig_type]) // Nothing has registered here yet
|
||||
lookup[sig_type] = src
|
||||
else if(lookup[sig_type] == src) // We already registered here
|
||||
@@ -110,8 +116,9 @@
|
||||
else // Many other things have registered here
|
||||
lookup[sig_type][src] = TRUE
|
||||
|
||||
enabled = TRUE
|
||||
/datum/component/proc/UnregisterSignal(datum/target, sig_type_or_types)
|
||||
signal_enabled = TRUE
|
||||
|
||||
/datum/proc/UnregisterSignal(datum/target, sig_type_or_types)
|
||||
var/list/lookup = target.comp_lookup
|
||||
if(!signal_procs || !signal_procs[target] || !lookup)
|
||||
return
|
||||
@@ -137,24 +144,19 @@
|
||||
lookup[sig] -= src
|
||||
|
||||
signal_procs[target] -= sig_type_or_types
|
||||
if(length(signal_procs[target]))
|
||||
if(!signal_procs[target].len)
|
||||
signal_procs -= target
|
||||
|
||||
/datum/component/proc/InheritComponent(datum/component/C, i_am_original)
|
||||
return
|
||||
|
||||
/datum/component/proc/OnTransfer(datum/new_parent)
|
||||
/datum/component/proc/PreTransfer()
|
||||
return
|
||||
|
||||
/datum/component/proc/PostTransfer()
|
||||
return
|
||||
|
||||
/datum/component/proc/_GetInverseTypeList(our_type = type)
|
||||
#if DM_VERSION >= 513
|
||||
#warn 512 is definitely stable now, remove the old code
|
||||
#endif
|
||||
|
||||
#if DM_VERSION < 512
|
||||
//remove this when we use 512 full time
|
||||
set invisibility = 101
|
||||
#endif
|
||||
//we can do this one simple trick
|
||||
var/current_type = parent_type
|
||||
. = list(our_type, current_type)
|
||||
@@ -166,15 +168,15 @@
|
||||
/datum/proc/_SendSignal(sigtype, list/arguments)
|
||||
var/target = comp_lookup[sigtype]
|
||||
if(!length(target))
|
||||
var/datum/component/C = target
|
||||
if(!C.enabled)
|
||||
var/datum/C = target
|
||||
if(!C.signal_enabled)
|
||||
return NONE
|
||||
var/datum/callback/CB = C.signal_procs[src][sigtype]
|
||||
return CB.InvokeAsync(arglist(arguments))
|
||||
. = NONE
|
||||
for(var/I in target)
|
||||
var/datum/component/C = I
|
||||
if(!C.enabled)
|
||||
var/datum/C = I
|
||||
if(!C.signal_enabled)
|
||||
continue
|
||||
var/datum/callback/CB = C.signal_procs[src][sigtype]
|
||||
. |= CB.InvokeAsync(arglist(arguments))
|
||||
@@ -218,12 +220,9 @@
|
||||
if(ispath(nt))
|
||||
if(nt == /datum/component)
|
||||
CRASH("[nt] attempted instantiation!")
|
||||
if(!isnum(dm))
|
||||
CRASH("[nt]: Invalid dupe_mode ([dm])!")
|
||||
if(dt && !ispath(dt))
|
||||
CRASH("[nt]: Invalid dupe_type ([dt])!")
|
||||
else
|
||||
new_comp = nt
|
||||
nt = new_comp.type
|
||||
|
||||
args[1] = src
|
||||
|
||||
@@ -267,21 +266,27 @@
|
||||
if(!.)
|
||||
return AddComponent(arglist(args))
|
||||
|
||||
/datum/proc/TakeComponent(datum/component/C)
|
||||
if(!C)
|
||||
/datum/component/proc/RemoveComponent()
|
||||
if(!parent)
|
||||
return
|
||||
var/datum/helicopter = C.parent
|
||||
if(helicopter == src)
|
||||
//if we're taking to the same thing no need for anything
|
||||
var/datum/old_parent = parent
|
||||
PreTransfer()
|
||||
_RemoveFromParent()
|
||||
parent = null
|
||||
SEND_SIGNAL(old_parent, COMSIG_COMPONENT_REMOVING, src)
|
||||
|
||||
/datum/proc/TakeComponent(datum/component/target)
|
||||
if(!target || target.parent == src)
|
||||
return
|
||||
if(C.OnTransfer(src) == COMPONENT_INCOMPATIBLE)
|
||||
qdel(C)
|
||||
return
|
||||
C._RemoveFromParent()
|
||||
SEND_SIGNAL(helicopter, COMSIG_COMPONENT_REMOVING, C)
|
||||
C.parent = src
|
||||
if(C == AddComponent(C))
|
||||
C._JoinParent()
|
||||
if(target.parent)
|
||||
target.RemoveComponent()
|
||||
target.parent = src
|
||||
if(target.PostTransfer() == COMPONENT_INCOMPATIBLE)
|
||||
var/c_type = target.type
|
||||
qdel(target)
|
||||
CRASH("Incompatible [c_type] transfer attempt to a [type]!")
|
||||
if(target == AddComponent(target))
|
||||
target._JoinParent()
|
||||
|
||||
/datum/proc/TransferComponents(datum/target)
|
||||
var/list/dc = datum_components
|
||||
@@ -295,4 +300,4 @@
|
||||
target.TakeComponent(comps)
|
||||
|
||||
/datum/component/nano_host()
|
||||
return parent
|
||||
return parent
|
||||
@@ -15,18 +15,25 @@
|
||||
var/sheet_type
|
||||
var/list/materials
|
||||
var/show_on_examine
|
||||
var/disable_attackby
|
||||
var/list/allowed_typecache
|
||||
var/last_inserted_id
|
||||
var/precise_insertion = FALSE
|
||||
var/datum/callback/precondition
|
||||
var/datum/callback/after_insert
|
||||
|
||||
/datum/component/material_container/Initialize(list/mat_list, max_amt = 0, _show_on_examine = FALSE, list/allowed_types, datum/callback/_precondition, datum/callback/_after_insert)
|
||||
/datum/component/material_container/Initialize(list/mat_list, max_amt = 0, _show_on_examine = FALSE, list/allowed_types, datum/callback/_precondition, datum/callback/_after_insert, _disable_attackby)
|
||||
materials = list()
|
||||
max_amount = max(0, max_amt)
|
||||
show_on_examine = _show_on_examine
|
||||
disable_attackby = _disable_attackby
|
||||
|
||||
if(allowed_types)
|
||||
allowed_typecache = typecacheof(allowed_types)
|
||||
if(ispath(allowed_types) && allowed_types == /obj/item/stack)
|
||||
allowed_typecache = GLOB.typecache_stack
|
||||
else
|
||||
allowed_typecache = typecacheof(allowed_types)
|
||||
|
||||
precondition = _precondition
|
||||
after_insert = _after_insert
|
||||
|
||||
@@ -43,16 +50,21 @@
|
||||
materials[id] = new mat_path()
|
||||
|
||||
/datum/component/material_container/proc/OnExamine(datum/source, mob/user)
|
||||
for(var/I in materials)
|
||||
var/datum/material/M = materials[I]
|
||||
var/amt = amount(M.id)
|
||||
if(amt)
|
||||
to_chat(user, "<span class='notice'>It has [amt] units of [lowertext(M.name)] stored.</span>")
|
||||
if(show_on_examine)
|
||||
for(var/I in materials)
|
||||
var/datum/material/M = materials[I]
|
||||
var/amt = amount(M.id)
|
||||
if(amt)
|
||||
to_chat(user, "<span class='notice'>It has [amt] units of [lowertext(M.name)] stored.</span>")
|
||||
|
||||
/datum/component/material_container/proc/OnAttackBy(datum/source, obj/item/I, mob/living/user)
|
||||
var/list/tc = allowed_typecache
|
||||
if(disable_attackby)
|
||||
return
|
||||
if(user.a_intent != INTENT_HELP)
|
||||
return
|
||||
if(I.flags & ABSTRACT)
|
||||
return
|
||||
if((I.flags_2 & (HOLOGRAM_2 | NO_MAT_REDEMPTION_2)) || (tc && !is_type_in_typecache(I, tc)))
|
||||
to_chat(user, "<span class='warning'>[parent] won't accept [I]!</span>")
|
||||
return
|
||||
@@ -88,10 +100,9 @@
|
||||
if(istype(I, /obj/item/stack))
|
||||
var/obj/item/stack/S = I
|
||||
to_chat(user, "<span class='notice'>You insert [inserted] [S.singular_name][inserted>1 ? "s" : ""] into [parent].</span>")
|
||||
if(!QDELETED(I))
|
||||
if(!user.put_in_hands(I))
|
||||
stack_trace("Warning: User could not put object back in hand during material container insertion, line [__LINE__]! This can lead to issues.")
|
||||
I.forceMove(user.loc)
|
||||
if(!QDELETED(I) && !user.put_in_hands(I))
|
||||
stack_trace("Warning: User could not put object back in hand during material container insertion, line [__LINE__]! This can lead to issues.")
|
||||
I.forceMove(user.drop_location())
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You insert a material total of [inserted] into [parent].</span>")
|
||||
qdel(I)
|
||||
@@ -235,24 +246,25 @@
|
||||
//For spawning mineral sheets; internal use only
|
||||
/datum/component/material_container/proc/retrieve(sheet_amt, datum/material/M, target = null)
|
||||
if(!M.sheet_type)
|
||||
return FALSE
|
||||
if(sheet_amt > 0)
|
||||
if(M.amount < (sheet_amt * MINERAL_MATERIAL_AMOUNT))
|
||||
sheet_amt = round(M.amount / MINERAL_MATERIAL_AMOUNT)
|
||||
var/count = 0
|
||||
while(sheet_amt > MAX_STACK_SIZE)
|
||||
new M.sheet_type(get_turf(parent), MAX_STACK_SIZE)
|
||||
count += MAX_STACK_SIZE
|
||||
use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id)
|
||||
sheet_amt -= MAX_STACK_SIZE
|
||||
if(round((sheet_amt * MINERAL_MATERIAL_AMOUNT) / MINERAL_MATERIAL_AMOUNT))
|
||||
var/obj/item/stack/sheet/s = new M.sheet_type(get_turf(parent), sheet_amt)
|
||||
if(target)
|
||||
s.forceMove(target)
|
||||
count += sheet_amt
|
||||
use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id)
|
||||
return count
|
||||
return FALSE
|
||||
return 0
|
||||
if(sheet_amt <= 0)
|
||||
return 0
|
||||
|
||||
if(!target)
|
||||
target = get_turf(parent)
|
||||
if(M.amount < (sheet_amt * MINERAL_MATERIAL_AMOUNT))
|
||||
sheet_amt = round(M.amount / MINERAL_MATERIAL_AMOUNT)
|
||||
var/count = 0
|
||||
while(sheet_amt > MAX_STACK_SIZE)
|
||||
new M.sheet_type(target, MAX_STACK_SIZE)
|
||||
count += MAX_STACK_SIZE
|
||||
use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id)
|
||||
sheet_amt -= MAX_STACK_SIZE
|
||||
if(sheet_amt >= 1)
|
||||
new M.sheet_type(target, sheet_amt)
|
||||
count += sheet_amt
|
||||
use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id)
|
||||
return count
|
||||
|
||||
/datum/component/material_container/proc/retrieve_sheets(sheet_amt, id, target = null)
|
||||
if(materials[id])
|
||||
@@ -386,4 +398,4 @@
|
||||
/datum/material/plastic
|
||||
name = "Plastic"
|
||||
id = MAT_PLASTIC
|
||||
sheet_type = /obj/item/stack/sheet/plastic
|
||||
sheet_type = /obj/item/stack/sheet/plastic
|
||||
@@ -324,6 +324,7 @@ var/record_id_num = 1001
|
||||
S.fields["notes"] = H.sec_record
|
||||
else
|
||||
S.fields["notes"] = "No notes."
|
||||
LAZYINITLIST(S.fields["comments"])
|
||||
security += S
|
||||
|
||||
//Locked Record
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
var/list/active_timers //for SStimer
|
||||
var/list/datum_components //for /datum/components
|
||||
var/list/comp_lookup
|
||||
var/list/signal_procs
|
||||
var/signal_enabled = FALSE
|
||||
var/var_edited = FALSE //Warranty void if seal is broken
|
||||
|
||||
var/tmp/unique_datum_id = null
|
||||
@@ -26,6 +28,9 @@
|
||||
continue
|
||||
qdel(timer)
|
||||
|
||||
//BEGIN: ECS SHIT
|
||||
signal_enabled = FALSE
|
||||
|
||||
var/list/dc = datum_components
|
||||
if(dc)
|
||||
var/all_components = dc[/datum/component]
|
||||
@@ -51,6 +56,10 @@
|
||||
comp.UnregisterSignal(src, sig)
|
||||
comp_lookup = lookup = null
|
||||
|
||||
for(var/target in signal_procs)
|
||||
UnregisterSignal(target, signal_procs[target])
|
||||
//END: ECS SHIT
|
||||
|
||||
return QDEL_HINT_QUEUE
|
||||
|
||||
|
||||
|
||||
@@ -167,3 +167,11 @@
|
||||
suffix = "way_home.dmm"
|
||||
name = "Salvation"
|
||||
description = "In the darkest times, we will find our way home."
|
||||
|
||||
/datum/map_template/ruin/space/oldstation
|
||||
id = "oldstation"
|
||||
suffix = "oldstation.dmm"
|
||||
name = "Ancient Space Station"
|
||||
description = "The crew of a space station awaken one hundred years after a crisis. Awaking to a derelict space station on the verge of collapse, and a hostile force of invading \
|
||||
hivebots. Can the surviving crew overcome the odds and survive and rebuild, or will the cold embrace of the stars become their new home?"
|
||||
cost = 2
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
/datum/spawners_menu
|
||||
var/mob/dead/observer/owner
|
||||
|
||||
/datum/spawners_menu/New(mob/dead/observer/new_owner)
|
||||
if(!istype(new_owner))
|
||||
qdel(src)
|
||||
owner = new_owner
|
||||
|
||||
/datum/spawners_menu/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = FALSE, datum/nanoui/master_ui = null)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "spawners_menu.tmpl", "Spawners Menu", 700, 600, master_ui)
|
||||
ui.open()
|
||||
|
||||
/datum/spawners_menu/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
data["spawners"] = list()
|
||||
for(var/spawner in GLOB.mob_spawners)
|
||||
var/list/this = list()
|
||||
this["name"] = spawner
|
||||
this["desc"] = ""
|
||||
this["uids"] = list()
|
||||
for(var/spawner_obj in GLOB.mob_spawners[spawner])
|
||||
this["uids"] += "\ref[spawner_obj]"
|
||||
if(!this["desc"])
|
||||
if(istype(spawner_obj, /obj/effect/mob_spawn))
|
||||
var/obj/effect/mob_spawn/MS = spawner_obj
|
||||
this["desc"] = MS.flavour_text
|
||||
else
|
||||
var/obj/O = spawner_obj
|
||||
this["desc"] = O.desc
|
||||
this["amount_left"] = LAZYLEN(GLOB.mob_spawners[spawner])
|
||||
data["spawners"] += list(this)
|
||||
|
||||
return data
|
||||
|
||||
/datum/spawners_menu/Topic(href, href_list)
|
||||
if(..())
|
||||
return 1
|
||||
var/spawners = replacetext(href_list["uid"], ",", ";")
|
||||
var/list/possible_spawners = params2list(spawners)
|
||||
var/obj/effect/mob_spawn/MS = locate(pick(possible_spawners))
|
||||
if(!MS || !istype(MS))
|
||||
log_runtime(EXCEPTION("A ghost tried to interact with an invalid spawner, or the spawner didn't exist."))
|
||||
return
|
||||
switch(href_list["action"])
|
||||
if("jump")
|
||||
owner.forceMove(get_turf(MS))
|
||||
. = TRUE
|
||||
if("spawn")
|
||||
MS.attack_ghost(owner)
|
||||
. = TRUE
|
||||
@@ -992,6 +992,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
item = /obj/item/card/emag
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/device_tools/access_tuner
|
||||
name = "Access Tuner"
|
||||
desc = "The access tuner is a small device that can interface with airlocks from range. It takes a few seconds to connect and can change the bolt state, open the door, or toggle emergency access."
|
||||
reference = "HACK"
|
||||
item = /obj/item/door_remote/omni/access_tuner
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/device_tools/toolbox
|
||||
name = "Fully Loaded Toolbox"
|
||||
desc = "The syndicate toolbox is a suspicious black and red. Aside from tools, it comes with insulated gloves and a multitool."
|
||||
|
||||
@@ -1072,6 +1072,13 @@
|
||||
if(buildstage < 1)
|
||||
to_chat(user, "The circuit is missing.")
|
||||
|
||||
/obj/machinery/alarm/all_access
|
||||
name = "all-access air alarm"
|
||||
desc = "This particular atmos control unit appears to have no access restrictions."
|
||||
locked = FALSE
|
||||
req_access = null
|
||||
req_one_access = null
|
||||
|
||||
/*
|
||||
AIR ALARM CIRCUIT
|
||||
Just an object used in constructing air alarms
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
var/list/categories = list("Tools", "Electronics", "Construction", "Communication", "Security", "Machinery", "Medical", "Miscellaneous", "Dinnerware", "Imported")
|
||||
|
||||
/obj/machinery/autolathe/New()
|
||||
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS), 0, FALSE, null, null, CALLBACK(src, .proc/AfterMaterialInsert))
|
||||
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS), 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert))
|
||||
..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/autolathe(null)
|
||||
|
||||
@@ -169,41 +169,16 @@
|
||||
screen = SEC_DATA_R_LIST
|
||||
if("criminal")
|
||||
if(active2)
|
||||
var/their_name = active2.fields["name"]
|
||||
var/their_rank = active2.fields["rank"]
|
||||
var/t1
|
||||
if(temp_href[2] == "execute")
|
||||
t1 = copytext(trim(sanitize(input("Explain why they are being executed. Include a list of their crimes, and victims.", "EXECUTION ORDER", null, null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
else
|
||||
t1 = copytext(trim(sanitize(input("Enter Reason:", "Secure. records", null, null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
var/visible_reason
|
||||
if(t1)
|
||||
visible_reason = t1
|
||||
else
|
||||
if(!t1)
|
||||
t1 = "(none)"
|
||||
visible_reason = "<span class='warning'>NO REASON PROVIDED</span>"
|
||||
switch(temp_href[2])
|
||||
if("none")
|
||||
active2.fields["criminal"] = "None"
|
||||
if("arrest")
|
||||
active2.fields["criminal"] = "*Arrest*"
|
||||
if("execute")
|
||||
if((access_magistrate in authcard_access) || (access_armory in authcard_access))
|
||||
active2.fields["criminal"] = "*Execute*"
|
||||
message_admins("[ADMIN_FULLMONTY(usr)] authorized <span class='warning'>EXECUTION</span> for [their_rank] [their_name], with comment: [visible_reason]")
|
||||
else
|
||||
setTemp("<h3 class='bad'>Error: permission denied.</h3>")
|
||||
return 1
|
||||
if("incarcerated")
|
||||
active2.fields["criminal"] = "Incarcerated"
|
||||
if("parolled")
|
||||
active2.fields["criminal"] = "Parolled"
|
||||
if("released")
|
||||
active2.fields["criminal"] = "Released"
|
||||
var/newstatus = active2.fields["criminal"]
|
||||
log_admin("[key_name_admin(usr)] set secstatus of [their_rank] [their_name] to [newstatus], comment: [t1]")
|
||||
active2.fields["comments"] += "Set to [newstatus] by [usr.name] ([rank]) on [current_date_string] [station_time_timestamp()], comment: [t1]"
|
||||
update_all_mob_security_hud()
|
||||
if(!set_criminal_status(usr, active2, temp_href[2], t1, rank, authcard_access))
|
||||
setTemp("<h3 class='bad'>Error: permission denied.</h3>")
|
||||
return 1
|
||||
if("rank")
|
||||
if(active1)
|
||||
active1.fields["rank"] = temp_href[2]
|
||||
|
||||
@@ -730,6 +730,13 @@ obj/item/circuitboard/rdserver
|
||||
/obj/item/stock_parts/matter_bin = 1)
|
||||
var/target
|
||||
|
||||
/obj/item/circuitboard/teleporter_perma/attackby(obj/item/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item/gps))
|
||||
var/obj/item/gps/L = I
|
||||
if(L.locked_location)
|
||||
target = get_turf(L.locked_location)
|
||||
to_chat(user, "<span class='caution'>You upload the data from [L]</span>")
|
||||
|
||||
/obj/item/circuitboard/telesci_pad
|
||||
name = "Circuit board (Telepad)"
|
||||
build_path = /obj/machinery/telepad
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#define CHARS_PER_LINE 5
|
||||
#define FONT_SIZE "5pt"
|
||||
#define FONT_COLOR "#09f"
|
||||
#define FONT_STYLE "Arial Black"
|
||||
#define FONT_STYLE "Small Fonts"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Brig Door control displays.
|
||||
@@ -30,6 +30,7 @@
|
||||
var/datum/data/record/prisoner
|
||||
maptext_height = 26
|
||||
maptext_width = 32
|
||||
maptext_y = -1
|
||||
|
||||
/obj/machinery/door_timer/proc/print_report()
|
||||
var/logname = input(usr, "Name of the guilty?","[id] log name")
|
||||
@@ -349,7 +350,7 @@
|
||||
if(timing)
|
||||
var/disp1 = id
|
||||
var/timeleft = timeleft()
|
||||
var/disp2 = "[add_zero(num2text((timeleft / 60) % 60),2)]~[add_zero(num2text(timeleft % 60), 2)]"
|
||||
var/disp2 = "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
|
||||
if(length(disp2) > CHARS_PER_LINE)
|
||||
disp2 = "Error"
|
||||
update_display(disp1, disp2)
|
||||
@@ -372,6 +373,8 @@
|
||||
//Checks to see if there's 1 line or 2, adds text-icons-numbers/letters over display
|
||||
// Stolen from status_display
|
||||
/obj/machinery/door_timer/proc/update_display(line1, line2)
|
||||
line1 = uppertext(line1)
|
||||
line2 = uppertext(line2)
|
||||
var/new_text = {"<div style="font-size:[FONT_SIZE];color:[FONT_COLOR];font:'[FONT_STYLE]';text-align:center;" valign="top">[line1]<br>[line2]</div>"}
|
||||
if(maptext != new_text)
|
||||
maptext = new_text
|
||||
|
||||
@@ -141,16 +141,15 @@ Class Procs:
|
||||
/obj/machinery/makeSpeedProcess()
|
||||
if(speed_process)
|
||||
return
|
||||
speed_process = 1
|
||||
speed_process = TRUE
|
||||
STOP_PROCESSING(SSmachines, src)
|
||||
GLOB.fast_processing += src
|
||||
isprocessing = TRUE
|
||||
|
||||
// gotta go slow
|
||||
/obj/machinery/makeNormalProcess()
|
||||
if(!speed_process)
|
||||
return
|
||||
speed_process = 0
|
||||
speed_process = FALSE
|
||||
START_PROCESSING(SSmachines, src)
|
||||
GLOB.fast_processing -= src
|
||||
|
||||
|
||||
@@ -18,7 +18,8 @@ var/const/SAFETY_COOLDOWN = 100
|
||||
var/item_recycle_sound = 'sound/machines/recycler.ogg'
|
||||
|
||||
/obj/machinery/recycler/New()
|
||||
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_PLASTIC, MAT_BLUESPACE))
|
||||
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_PLASTIC, MAT_BLUESPACE), 0,
|
||||
TRUE, null, null, null, TRUE)
|
||||
..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/recycler(null)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#define FONT_SIZE "5pt"
|
||||
#define FONT_COLOR "#09f"
|
||||
#define WARNING_FONT_COLOR "#f90"
|
||||
#define FONT_STYLE "Arial Black"
|
||||
#define FONT_STYLE "Small Fonts"
|
||||
#define SCROLL_SPEED 2
|
||||
|
||||
// Status display
|
||||
@@ -39,6 +39,7 @@
|
||||
|
||||
maptext_height = 26
|
||||
maptext_width = 32
|
||||
maptext_y = -1
|
||||
|
||||
var/const/CHARS_PER_LINE = 5
|
||||
var/const/STATUS_DISPLAY_BLANK = 0
|
||||
@@ -157,6 +158,8 @@
|
||||
overlays += image('icons/obj/status_display.dmi', icon_state=picture_state)
|
||||
|
||||
/obj/machinery/status_display/proc/update_display(line1, line2, warning = 0)
|
||||
line1 = uppertext(line1)
|
||||
line2 = uppertext(line2)
|
||||
var/new_text = {"<div style="font-size:[FONT_SIZE];color:[warning ? WARNING_FONT_COLOR : FONT_COLOR];font:'[FONT_STYLE]';text-align:center;" valign="top">[line1]<br>[line2]</div>"}
|
||||
if(maptext != new_text)
|
||||
maptext = new_text
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
/obj/machinery/mecha_part_fabricator/New()
|
||||
var/datum/component/material_container/materials = AddComponent(/datum/component/material_container,
|
||||
list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE), 0,
|
||||
FALSE, list(/obj/item/stack, /obj/item/stack/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert))
|
||||
FALSE, /obj/item/stack, CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert))
|
||||
materials.precise_insertion = TRUE
|
||||
..()
|
||||
component_parts = list()
|
||||
|
||||
@@ -118,6 +118,28 @@
|
||||
icon_state = "gangtool-blue"
|
||||
region_access = list(REGION_CENTCOMM)
|
||||
|
||||
/obj/item/door_remote/omni/access_tuner
|
||||
name = "access tuner"
|
||||
desc = "A device used for illegally interfacing with doors."
|
||||
icon_state = "hacktool"
|
||||
item_state = "hacktool"
|
||||
var/hack_speed = 30
|
||||
var/busy = FALSE
|
||||
|
||||
/obj/item/door_remote/omni/access_tuner/afterattack(obj/machinery/door/airlock/D, mob/user)
|
||||
if(!istype(D))
|
||||
return
|
||||
if(busy)
|
||||
to_chat(user, "<span class='warning'>[src] is alreading interfacing with a door!</span>")
|
||||
return
|
||||
icon_state = "hacktool-g"
|
||||
busy = TRUE
|
||||
to_chat(user, "<span class='notice'>[src] is attempting to interface with [D]...</span>")
|
||||
if(do_after(user, hack_speed, target = D))
|
||||
. = ..()
|
||||
busy = FALSE
|
||||
icon_state = "hacktool"
|
||||
|
||||
#undef WAND_OPEN
|
||||
#undef WAND_BOLT
|
||||
#undef WAND_EMERGENCY
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
slot_flags = SLOT_BELT
|
||||
materials = list(MAT_METAL=50, MAT_GLASS=20)
|
||||
actions_types = list(/datum/action/item_action/toggle_light)
|
||||
var/on = 0
|
||||
var/on = FALSE
|
||||
var/brightness_on = 4 //luminosity when on
|
||||
|
||||
/obj/item/flashlight/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
if(on)
|
||||
icon_state = "[initial(icon_state)]-on"
|
||||
set_light(brightness_on)
|
||||
@@ -198,9 +198,10 @@ obj/item/flashlight/lamp/bananalamp
|
||||
|
||||
// Usual checks
|
||||
if(!fuel)
|
||||
to_chat(user, "<span class='notice'>It's out of fuel.</span>")
|
||||
to_chat(user, "<span class='notice'>[src] is out of fuel.</span>")
|
||||
return
|
||||
if(on)
|
||||
to_chat(user, "<span class='notice'>[src] is already on.</span>")
|
||||
return
|
||||
|
||||
. = ..()
|
||||
@@ -260,10 +261,11 @@ obj/item/flashlight/lamp/bananalamp
|
||||
|
||||
/obj/item/flashlight/emp/process()
|
||||
charge_tick++
|
||||
if(charge_tick < 10) return 0
|
||||
if(charge_tick < 10)
|
||||
return FALSE
|
||||
charge_tick = 0
|
||||
emp_cur_charges = min(emp_cur_charges+1, emp_max_charges)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/obj/item/flashlight/emp/attack(mob/living/M as mob, mob/living/user as mob)
|
||||
if(on && user.zone_sel.selecting == "eyes") // call original attack proc only if aiming at the eyes
|
||||
@@ -299,4 +301,101 @@ obj/item/flashlight/lamp/bananalamp
|
||||
anchored = TRUE
|
||||
var/range = null
|
||||
unacidable = TRUE
|
||||
burn_state = LAVA_PROOF
|
||||
burn_state = LAVA_PROOF
|
||||
|
||||
/obj/item/flashlight/glowstick
|
||||
name = "green glowstick"
|
||||
desc = "A military-grade glowstick."
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
brightness_on = 4
|
||||
color = LIGHT_COLOR_GREEN
|
||||
icon_state = "glowstick"
|
||||
item_state = "glowstick"
|
||||
var/fuel = 0
|
||||
|
||||
/obj/item/flashlight/glowstick/Initialize()
|
||||
fuel = rand(1600, 2000)
|
||||
light_color = color
|
||||
. = ..()
|
||||
|
||||
/obj/item/flashlight/glowstick/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/flashlight/glowstick/process()
|
||||
fuel = max(fuel - 1, 0)
|
||||
if(!fuel)
|
||||
turn_off()
|
||||
processing_objects.Remove(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/flashlight/glowstick/proc/turn_off()
|
||||
on = FALSE
|
||||
update_icon()
|
||||
|
||||
/obj/item/flashlight/glowstick/update_icon()
|
||||
item_state = "glowstick"
|
||||
cut_overlays()
|
||||
if(!fuel)
|
||||
icon_state = "glowstick-empty"
|
||||
cut_overlays()
|
||||
update_brightness(0)
|
||||
else if(on)
|
||||
var/mutable_appearance/glowstick_overlay = mutable_appearance(icon, "glowstick-glow")
|
||||
glowstick_overlay.color = color
|
||||
add_overlay(glowstick_overlay)
|
||||
item_state = "glowstick-on"
|
||||
update_brightness(brightness_on)
|
||||
else
|
||||
icon_state = "glowstick"
|
||||
cut_overlays()
|
||||
|
||||
/obj/item/flashlight/glowstick/attack_self(mob/user)
|
||||
if(!fuel)
|
||||
to_chat(user, "<span class='notice'>[src] is spent.</span>")
|
||||
return
|
||||
if(on)
|
||||
to_chat(user, "<span class='notice'>[src] is already lit.</span>")
|
||||
return
|
||||
|
||||
. = ..()
|
||||
if(.)
|
||||
user.visible_message("<span class='notice'>[user] cracks and shakes [src].</span>", "<span class='notice'>You crack and shake [src], turning it on!</span>")
|
||||
activate()
|
||||
|
||||
/obj/item/flashlight/glowstick/proc/activate()
|
||||
if(!on)
|
||||
on = TRUE
|
||||
processing_objects.Add(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/flashlight/glowstick/red
|
||||
name = "red glowstick"
|
||||
color = LIGHT_COLOR_RED
|
||||
|
||||
/obj/item/flashlight/glowstick/blue
|
||||
name = "blue glowstick"
|
||||
color = LIGHT_COLOR_BLUE
|
||||
|
||||
/obj/item/flashlight/glowstick/orange
|
||||
name = "orange glowstick"
|
||||
color = LIGHT_COLOR_ORANGE
|
||||
|
||||
/obj/item/flashlight/glowstick/yellow
|
||||
name = "yellow glowstick"
|
||||
color = LIGHT_COLOR_YELLOW
|
||||
|
||||
/obj/item/flashlight/glowstick/pink
|
||||
name = "pink glowstick"
|
||||
color = LIGHT_COLOR_PINK
|
||||
|
||||
/obj/item/flashlight/glowstick/random
|
||||
name = "random colored glowstick"
|
||||
icon_state = "random_glowstick"
|
||||
color = null
|
||||
|
||||
/obj/item/flashlight/glowstick/random/Initialize()
|
||||
..()
|
||||
var/T = pick(typesof(/obj/item/flashlight/glowstick) - /obj/item/flashlight/glowstick/random)
|
||||
new T(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -31,6 +31,10 @@
|
||||
new /obj/item/flashlight/flare(src)
|
||||
new /obj/item/radio(src)
|
||||
|
||||
/obj/item/storage/toolbox/emergency/old
|
||||
name = "rusty red toolbox"
|
||||
icon_state = "toolbox_red_old"
|
||||
|
||||
/obj/item/storage/toolbox/mechanical
|
||||
name = "mechanical toolbox"
|
||||
icon_state = "blue"
|
||||
@@ -48,6 +52,10 @@
|
||||
/obj/item/storage/toolbox/mechanical/greytide
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/storage/toolbox/mechanical/old
|
||||
name = "rusty blue toolbox"
|
||||
icon_state = "toolbox_blue_old"
|
||||
|
||||
/obj/item/storage/toolbox/electrical
|
||||
name = "electrical toolbox"
|
||||
icon_state = "yellow"
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
/obj/effect/mob_spawn
|
||||
name = "Unknown"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "remains"
|
||||
var/mob_type = null
|
||||
@@ -26,13 +28,12 @@
|
||||
var/datum/disease/disease = null //Do they start with a pre-spawned disease?
|
||||
var/mob_color //Change the mob's color
|
||||
var/assignedrole
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
var/banType = "lavaland"
|
||||
var/ghost_usable = TRUE
|
||||
|
||||
|
||||
/obj/effect/mob_spawn/attack_ghost(mob/user)
|
||||
if(ticker.current_state != GAME_STATE_PLAYING || !loc)
|
||||
if(ticker.current_state != GAME_STATE_PLAYING || !loc || !ghost_usable)
|
||||
return
|
||||
if(!uses)
|
||||
to_chat(user, "<span class='warning'>This spawner is out of charges!</span>")
|
||||
@@ -40,6 +41,8 @@
|
||||
if(jobban_isbanned(user, banType))
|
||||
to_chat(user, "<span class='warning'>You are jobanned!</span>")
|
||||
return
|
||||
if(QDELETED(src) || QDELETED(user))
|
||||
return
|
||||
var/ghost_role = alert("Become [mob_name]? (Warning, You can no longer be cloned!)",,"Yes","No")
|
||||
if(ghost_role == "No" || !loc)
|
||||
return
|
||||
@@ -50,7 +53,7 @@
|
||||
. = ..()
|
||||
if(instant || roundstart) //at some point we should probably re-introduce the (ticker && ticker.current_state > GAME_STATE_SETTING_UP) portion of this check, but for now it was preventing the corpses from spawning at roundstart and resulting in ghost role spawners that made dead bodies.
|
||||
create()
|
||||
else
|
||||
else if(ghost_usable)
|
||||
GLOB.poi_list |= src
|
||||
LAZYADD(GLOB.mob_spawners[name], src)
|
||||
|
||||
@@ -305,7 +308,7 @@
|
||||
name = "sleeper"
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "sleeper"
|
||||
flavour_text = "You are a space doctor!"
|
||||
flavour_text = "<span class='big bold'>You are a space doctor!</span>"
|
||||
assignedrole = "Space Doctor"
|
||||
|
||||
/obj/effect/mob_spawn/human/doctor/alive/equip(mob/living/carbon/human/H)
|
||||
@@ -436,7 +439,7 @@
|
||||
name = "bartender sleeper"
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "sleeper"
|
||||
flavour_text = "You are a space bartender!"
|
||||
flavour_text = "<span class='big bold'>You are a space bartender!</span><b> Time to mix drinks and change lives.</b>"
|
||||
assignedrole = "Space Bartender"
|
||||
|
||||
/datum/outfit/spacebartender
|
||||
@@ -556,4 +559,4 @@
|
||||
back = /obj/item/storage/backpack
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
suit = /obj/item/clothing/suit/armor/vest
|
||||
glasses = /obj/item/clothing/glasses/sunglasses/reagent
|
||||
glasses = /obj/item/clothing/glasses/sunglasses/reagent
|
||||
|
||||
@@ -0,0 +1,475 @@
|
||||
// items
|
||||
/obj/item/storage/firstaid/ancient
|
||||
icon_state = "firstaid"
|
||||
desc = "A first aid kit with the ability to heal common types of injuries."
|
||||
|
||||
/obj/item/storage/firstaid/ancient/New()
|
||||
..()
|
||||
new /obj/item/stack/medical/bruise_pack(src)
|
||||
new /obj/item/stack/medical/bruise_pack(src)
|
||||
new /obj/item/stack/medical/bruise_pack(src)
|
||||
new /obj/item/stack/medical/bruise_pack(src)
|
||||
new /obj/item/stack/medical/ointment(src)
|
||||
new /obj/item/stack/medical/ointment(src)
|
||||
new /obj/item/stack/medical/ointment(src)
|
||||
|
||||
/obj/item/card/id/away/old
|
||||
name = "A perfectly retrograde identification card"
|
||||
desc = "A perfectly retrograde identification card. Looks like it could use some flavor."
|
||||
icon = 'icons/obj/card.dmi'
|
||||
icon_state = "retro"
|
||||
access = list(access_away01)
|
||||
|
||||
/obj/item/card/id/away/old/sec
|
||||
name = "Security Officer ID"
|
||||
desc = "A clip on ID Badge, has one of those fancy new magnetic strips built in. This one is encoded for the Security Dept."
|
||||
icon_state = "retro_security"
|
||||
|
||||
/obj/item/card/id/away/old/sci
|
||||
name = "Scientist ID"
|
||||
desc = "A clip on ID Badge, has one of those fancy new magnetic strips built in. This one is encoded for the Science Dept."
|
||||
icon_state = "retro_research"
|
||||
|
||||
/obj/item/card/id/away/old/med
|
||||
name = "Medical ID"
|
||||
desc = "A clip on ID Badge, has one of those fancy new magnetic strips built in. This one is encoded for the Medical Dept."
|
||||
icon_state = "retro_medical"
|
||||
|
||||
/obj/item/card/id/away/old/eng
|
||||
name = "Engineer ID"
|
||||
desc = "A clip on ID Badge, has one of those fancy new magnetic strips built in. This one is encoded for the Engineering Dept."
|
||||
icon_state = "retro_engineering"
|
||||
|
||||
/obj/item/card/id/away/old/apc
|
||||
name = "APC Access ID"
|
||||
desc = "A special ID card that allows access to APC terminals."
|
||||
icon_state = "centcom_old"
|
||||
access = list(access_engine_equip)
|
||||
|
||||
/obj/item/storage/backpack/old
|
||||
max_combined_w_class = 12
|
||||
|
||||
// Equipment
|
||||
/obj/item/clothing/head/helmet/space/nasavoid/old
|
||||
name = "Engineering Void Helmet"
|
||||
desc = "A CentCom engineering dark red space suit helmet. While old and dusty, it still gets the job done."
|
||||
icon_state = "void-red"
|
||||
item_state = "void"
|
||||
|
||||
/obj/item/clothing/suit/space/nasavoid/old
|
||||
name = "Engineering Voidsuit"
|
||||
icon_state = "void-red"
|
||||
item_state = "void"
|
||||
desc = "A CentCom engineering dark red space suit. Age has degraded the suit making is difficult to move around in."
|
||||
slowdown = 4
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank, /obj/item/multitool)
|
||||
|
||||
/obj/item/clothing/head/helmet/old
|
||||
name = "degrading helmet"
|
||||
desc = "Standard issue security helmet. Due to degradation the helmet's visor obstructs the users ability to see long distances."
|
||||
tint = 2
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/old
|
||||
name = "degrading armor vest"
|
||||
desc = "Older generation Type 1 armored vest. Due to degradation over time the vest is far less maneuverable to move in."
|
||||
icon_state = "armor"
|
||||
item_state = "armor"
|
||||
slowdown = 1
|
||||
|
||||
/obj/item/gun/energy/laser/retro/old
|
||||
name ="laser gun"
|
||||
icon_state = "retro"
|
||||
desc = "First generation lasergun, developed by Nanotrasen. Suffers from ammo issues but its unique ability to recharge its ammo without the need of a magazine helps compensate. You really hope someone has developed a better lasergun while you were in cryo."
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/lasergun/old)
|
||||
ammo_x_offset = 3
|
||||
|
||||
/obj/item/ammo_casing/energy/lasergun/old
|
||||
projectile_type = /obj/item/projectile/beam/laser
|
||||
e_cost = 200
|
||||
select_name = "kill"
|
||||
|
||||
/obj/item/gun/energy/e_gun/old
|
||||
name = "prototype energy gun"
|
||||
desc = "NT-P:01 Prototype Energy Gun. Early stage development of a unique laser rifle that has multifaceted energy lens allowing the gun to alter the form of projectile it fires on command."
|
||||
icon_state = "protolaser"
|
||||
ammo_x_offset = 2
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/electrode/old)
|
||||
|
||||
/obj/item/ammo_casing/energy/electrode/old
|
||||
e_cost = 1000
|
||||
|
||||
// Papers
|
||||
/obj/item/paper/fluff/ruins/oldstation
|
||||
name = "Cryo Awakening Alert"
|
||||
info = "<B>**WARNING**</B><BR><BR>Catastrophic damage sustained to station. Powernet exhausted to reawaken crew.<BR><BR>Immediate Objectives<br><br>1: Activate emergency power generator<br>2: Lift station lockdown on the bridge<br><br>Please locate the 'Damage Report' on the bridge for a detailed situation report."
|
||||
|
||||
/obj/item/paper/fluff/ruins/oldstation/damagereport
|
||||
name = "Damage Report"
|
||||
info = "<b>*Damage Report*</b><br><br><b>Alpha Station</b> - Destroyed<br><br><b>Beta Station</b> - Catastrophic Damage. Medical, destroyed. Atmospherics, partially destroyed. Engine Core, destroyed.<br><br><b>Charlie Station</b> - Intact. Loss of oxygen to eastern side of main corridor.<br><br><b>Delta Station</b> - Intact. <b>WARNING</b>: Unknown force occupying Delta Station. Intent unknown. Species unknown. Numbers unknown.<br><br>Recommendation - Reestablish station powernet via solar array. Reestablish station atmospherics system to restore air."
|
||||
|
||||
/obj/item/paper/fluff/ruins/oldstation/protosuit
|
||||
name = "B01-RIG Hardsuit Report"
|
||||
info = "<b>*Prototype Hardsuit*</b><br><br>The B01-RIG Hardsuit is a prototype powered exoskeleton. Based off of a recovered pre-void war era united Earth government powered military \
|
||||
exosuit, the RIG Hardsuit is a breakthrough in Hardsuit technology, and is the first post-void war era Hardsuit that can be safely used by an operator.<br><br>The B01 however suffers \
|
||||
a myriad of constraints. It is slow and bulky to move around, it lacks any significant armor plating against direct attacks and its internal heads up display is unfinished, \
|
||||
resulting in the user being unable to see long distances.<br><br>The B01 is unlikely to see any form of mass production, but will serve as a base for future Hardsuit developments."
|
||||
|
||||
/obj/item/paper/fluff/ruins/oldstation/protohealth
|
||||
name = "Health Analyser Report"
|
||||
info = "<b>*Health Analyser*</b><br><br>The portable Health Analyser is essentially a handheld variant of a health analyser. Years of research have concluded with this device which is \
|
||||
capable of diagnosing even the most critical, obscure or technical injuries any humanoid entity is suffering in an easy to understand format that even a non-trained health professional \
|
||||
can understand.<br><br>The health analyser is expected to go into full production as standard issue medical kit."
|
||||
|
||||
/obj/item/paper/fluff/ruins/oldstation/protogun
|
||||
name = "K14 Energy Gun Report"
|
||||
info = "<b>*K14-Multiphase Energy Gun*</b><br><br>The K14 Prototype Energy Gun is the first Energy Rifle that has been successfully been able to not only hold a larger ammo charge \
|
||||
than other gun models, but is capable of swapping between different energy projectile types on command with no incidents.<br><br>The weapon still suffers several drawbacks, its alternative, \
|
||||
non laser fire mode, can only fire one round before exhausting the energy cell, the weapon also remains prohibitively expensive, nonetheless NT Market Research fully believe this weapon \
|
||||
will form the backbone of our Energy weapon catalogue.<br><br>The K14 is expected to undergo revision to fix the ammo issues, the K15 is expected to replace the 'stun' setting with a \
|
||||
'disable' setting in an attempt to bypass the ammo issues."
|
||||
|
||||
/obj/item/paper/fluff/ruins/oldstation/protosing
|
||||
name = "Singularity Generator"
|
||||
info = "<b>*Singularity Generator*</b><br><br>Modern power generation typically comes in two forms, a Fusion Generator or a Fission Generator. Fusion provides the best space to power \
|
||||
ratio, and is typically seen on military or high security ships and stations, however Fission reactors require the usage of expensive, and rare, materials in its construction.. Fission generators are massive and bulky, and require a large reserve of uranium to power, however they are extremely cheap to operate and oft need little maintenance once \
|
||||
operational.<br><br>The Singularity aims to alter this, a functional Singularity is essentially a controlled Black Hole, a Black Hole that generates far more power than Fusion or Fission \
|
||||
generators can ever hope to produce. "
|
||||
|
||||
/obj/item/paper/fluff/ruins/oldstation/protoinv
|
||||
name = "Laboratory Inventory"
|
||||
info = "<b>*Inventory*</b><br><br>(1) Prototype Hardsuit<br><br>(1)Health Analyser<br><br>(1)Prototype Energy Gun<br><br>(1)Singularity Generation Disk<br><br><b>DO NOT REMOVE WITHOUT \
|
||||
THE CAPTAIN AND RESEARCH DIRECTOR'S AUTHORISATION</b>"
|
||||
|
||||
/obj/item/paper/fluff/ruins/oldstation/report
|
||||
name = "Crew Reawakening Report"
|
||||
info = "Artificial Program's report to surviving crewmembers.<br><br>Crew were placed into cryostasis on March 10th, 2445.<br><br>Crew were awoken from cryostasis around June, 2557.<br><br> \
|
||||
<b>SIGNIFICANT EVENTS OF NOTE</b><br>1: The primary radiation detectors were taken offline after 112 years due to power failure, secondary radiation detectors showed no residual \
|
||||
radiation on station. Deduction, primarily detector was malfunctioning and was producing a radiation signal when there was none.<br><br>2: A data burst from a nearby Nanotrasen Space \
|
||||
Station was received, this data burst contained research data that has been uploaded to our RnD labs.<br><br>3: Unknown invasion force has occupied Delta station."
|
||||
|
||||
/obj/item/paper/fluff/ruins/oldstation/generator_manual
|
||||
name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator manual"
|
||||
info = "You can barely make out a faded sentence... <br><br> Wrench down the generator on top of a wire node connected to either a SMES input terminal or the power grid."
|
||||
|
||||
|
||||
//Old Prototype Hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/ancient
|
||||
name = "prototype RIG hardsuit helmet"
|
||||
desc = "Early prototype RIG hardsuit helmet, designed to quickly shift over a user's head. Design constraints of the helmet mean it has no inbuilt cameras, thus it restricts the users visability."
|
||||
icon_state = "hardsuit0-ancient"
|
||||
item_state = "anc_helm"
|
||||
armor = list("melee" = 30, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75)
|
||||
item_color = "ancient"
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ancient
|
||||
name = "prototype RIG hardsuit"
|
||||
desc = "Prototype powered RIG hardsuit. Provides excellent protection from the elements of space while being comfortable to move around in, thanks to the powered locomotives. Remains very bulky however."
|
||||
icon_state = "hardsuit-ancient"
|
||||
item_state = "anc_hardsuit"
|
||||
armor = list("melee" = 30, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75)
|
||||
slowdown = 3
|
||||
resistance_flags = FIRE_PROOF
|
||||
var/footstep = 1
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ancient/on_mob_move()
|
||||
var/mob/living/carbon/human/H = loc
|
||||
if(!istype(H) || H.wear_suit != src)
|
||||
return
|
||||
if(footstep > 1)
|
||||
playsound(src, 'sound/effects/servostep.ogg', 100, 1)
|
||||
footstep = 0
|
||||
else
|
||||
footstep++
|
||||
..()
|
||||
|
||||
// Chemical bottles
|
||||
/obj/item/reagent_containers/glass/bottle/aluminum
|
||||
name = "aluminum bottle"
|
||||
list_reagents = list("aluminum" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/hydrogen
|
||||
name = "hydrogen bottle"
|
||||
list_reagents = list("hydrogen" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/lithium
|
||||
name = "lithium bottle"
|
||||
list_reagents = list("lithium" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/carbon
|
||||
name = "carbon bottle"
|
||||
list_reagents = list("carbon" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nitrogen
|
||||
name = "nitrogen bottle"
|
||||
list_reagents = list("nitrogen" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/oxygen
|
||||
name = "oxygen bottle"
|
||||
list_reagents = list("oxygen" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/fluorine
|
||||
name = "fluorine bottle"
|
||||
list_reagents = list("fluorine" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/sodium
|
||||
name = "sodium bottle"
|
||||
list_reagents = list("sodium" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/silicon
|
||||
name = "silicon bottle"
|
||||
list_reagents = list("silicon" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/phosphorus
|
||||
name = "phosphorus bottle"
|
||||
list_reagents = list("phosphorus" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/sulfur
|
||||
name = "sulfur bottle"
|
||||
list_reagents = list("sulfur" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/chlorine
|
||||
name = "chlorine bottle"
|
||||
list_reagents = list("chlorine" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/potassium
|
||||
name = "potassium bottle"
|
||||
list_reagents = list("potassium" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/iron
|
||||
name = "iron bottle"
|
||||
list_reagents = list("iron" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/copper
|
||||
name = "copper bottle"
|
||||
list_reagents = list("copper" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/mercury
|
||||
name = "mercury bottle"
|
||||
list_reagents = list("mercury" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/radium
|
||||
name = "radium bottle"
|
||||
list_reagents = list("radium" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/water
|
||||
name = "water bottle"
|
||||
list_reagents = list("water" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/ethanol
|
||||
name = "ethanol bottle"
|
||||
list_reagents = list("ethanol" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/sugar
|
||||
name = "sugar bottle"
|
||||
list_reagents = list("sugar" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/sacid
|
||||
name = "sulphuric acid bottle"
|
||||
list_reagents = list("sacid" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/welding_fuel
|
||||
name = "welding fuel bottle"
|
||||
list_reagents = list("fuel" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/silver
|
||||
name = "silver bottle"
|
||||
list_reagents = list("silver" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/iodine
|
||||
name = "iodine bottle"
|
||||
list_reagents = list("iodine" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/bromine
|
||||
name = "bromine bottle"
|
||||
list_reagents = list("bromine" = 30)
|
||||
|
||||
// Engines
|
||||
/obj/structure/shuttle/engine/large
|
||||
name = "engine"
|
||||
opacity = 1
|
||||
icon = 'icons/obj/2x2.dmi'
|
||||
icon_state = "large_engine"
|
||||
desc = "A very large bluespace engine used to propel very large ships."
|
||||
bound_width = 64
|
||||
bound_height = 64
|
||||
appearance_flags = 0
|
||||
|
||||
// areas
|
||||
//Ruin of ancient Space Station
|
||||
|
||||
/area/ruin/space/ancientstation
|
||||
name = "Charlie Station Main Corridor"
|
||||
icon_state = "green"
|
||||
has_gravity = TRUE
|
||||
|
||||
/area/ruin/space/ancientstation/powered
|
||||
name = "Powered Tile"
|
||||
icon_state = "teleporter"
|
||||
requires_power = FALSE
|
||||
|
||||
/area/ruin/space/ancientstation/space
|
||||
name = "Exposed To Space"
|
||||
icon_state = "teleporter"
|
||||
has_gravity = FALSE
|
||||
|
||||
/area/ruin/space/ancientstation/atmo
|
||||
name = "Beta Station Atmospherics"
|
||||
icon_state = "red"
|
||||
has_gravity = FALSE
|
||||
|
||||
/area/ruin/space/ancientstation/betanorth
|
||||
name = "Beta Station North Corridor"
|
||||
icon_state = "blue"
|
||||
|
||||
/area/ruin/space/ancientstation/solar
|
||||
name = "Station Solar Array"
|
||||
icon_state = "panelsAP"
|
||||
|
||||
/area/ruin/space/ancientstation/engi
|
||||
name = "Charlie Station Engineering"
|
||||
icon_state = "engine"
|
||||
|
||||
/area/ruin/space/ancientstation/comm
|
||||
name = "Charlie Station Command"
|
||||
icon_state = "captain"
|
||||
|
||||
/area/ruin/space/ancientstation/hydroponics
|
||||
name = "Charlie Station Hydroponics"
|
||||
icon_state = "garden"
|
||||
|
||||
/area/ruin/space/ancientstation/kitchen
|
||||
name = "Charlie Station Kitchen"
|
||||
icon_state = "kitchen"
|
||||
|
||||
/area/ruin/space/ancientstation/sec
|
||||
name = "Charlie Station Security"
|
||||
icon_state = "red"
|
||||
|
||||
/area/ruin/space/ancientstation/deltacorridor
|
||||
name = "Delta Station Main Corridor"
|
||||
icon_state = "green"
|
||||
|
||||
/area/ruin/space/ancientstation/proto
|
||||
name = "Delta Station Prototype Lab"
|
||||
icon_state = "toxlab"
|
||||
|
||||
/area/ruin/space/ancientstation/rnd
|
||||
name = "Delta Station Research and Development"
|
||||
icon_state = "toxlab"
|
||||
|
||||
/area/ruin/space/ancientstation/hivebot
|
||||
name = "Hivebot Mothership"
|
||||
icon_state = "teleporter"
|
||||
|
||||
// Mob Spawners
|
||||
//Ancient cryogenic sleepers. Players become NT crewmen from a hundred year old space station, now on the verge of collapse.
|
||||
|
||||
/obj/effect/mob_spawn/human/oldsec
|
||||
name = "old cryogenics pod"
|
||||
desc = "A humming cryo pod. You can barely recognise a security uniform underneath the built up ice. The machine is attempting to wake up its occupant."
|
||||
mob_name = "a security officer"
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "sleeper"
|
||||
roundstart = FALSE
|
||||
death = FALSE
|
||||
random = TRUE
|
||||
mob_species = /datum/species/human
|
||||
flavour_text = "<span class='big bold'>You are a security officer working for Nanotrasen,</span><b> stationed onboard a state of the art research station. You vaguely recall rushing into a \
|
||||
cryogenics pod due to an oncoming radiation storm. The last thing you remember is the station's Artificial Program telling you that you would only be asleep for eight hours. As you open \
|
||||
your eyes, everything seems rusted and broken, a dark feeling swells in your gut as you climb out of your pod. \
|
||||
Work as a team with your fellow survivors and do not abandon them.</b>"
|
||||
uniform = /obj/item/clothing/under/retro/security
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
id = /obj/item/card/id/away/old/sec
|
||||
r_pocket = /obj/item/restraints/handcuffs
|
||||
l_pocket = /obj/item/flash
|
||||
assignedrole = "Ancient Crew"
|
||||
|
||||
/obj/effect/mob_spawn/human/oldsec/Destroy()
|
||||
new /obj/structure/showcase/machinery/oldpod/used(drop_location())
|
||||
return ..()
|
||||
|
||||
/obj/effect/mob_spawn/human/oldmed
|
||||
name = "old cryogenics pod"
|
||||
desc = "A humming cryo pod. You can barely recognise a medical uniform underneath the built up ice. The machine is attempting to wake up its occupant."
|
||||
mob_name = "a medical doctor"
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "sleeper"
|
||||
roundstart = FALSE
|
||||
death = FALSE
|
||||
random = TRUE
|
||||
mob_species = /datum/species/human
|
||||
flavour_text = "<span class='big bold'>You are a medical working for Nanotrasen,</span><b> stationed onboard a state of the art research station. You vaguely recall rushing into a \
|
||||
cryogenics pod due to an oncoming radiation storm. The last thing you remember is the station's Artificial Program telling you that you would only be asleep for eight hours. As you open \
|
||||
your eyes, everything seems rusted and broken, a dark feeling swells in your gut as you climb out of your pod. \
|
||||
Work as a team with your fellow survivors and do not abandon them.</b>"
|
||||
uniform = /obj/item/clothing/under/retro/medical
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
id = /obj/item/card/id/away/old/med
|
||||
l_pocket = /obj/item/stack/medical/ointment
|
||||
r_pocket = /obj/item/stack/medical/ointment
|
||||
assignedrole = "Ancient Crew"
|
||||
|
||||
/obj/effect/mob_spawn/human/oldmed/Destroy()
|
||||
new /obj/structure/showcase/machinery/oldpod/used(drop_location())
|
||||
return ..()
|
||||
|
||||
/obj/effect/mob_spawn/human/oldeng
|
||||
name = "old cryogenics pod"
|
||||
desc = "A humming cryo pod. You can barely recognise an engineering uniform underneath the built up ice. The machine is attempting to wake up its occupant."
|
||||
mob_name = "an engineer"
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "sleeper"
|
||||
roundstart = FALSE
|
||||
death = FALSE
|
||||
random = TRUE
|
||||
mob_species = /datum/species/human
|
||||
flavour_text = "<span class='big bold'>You are an engineer working for Nanotrasen,</span><b> stationed onboard a state of the art research station. You vaguely recall rushing into a \
|
||||
cryogenics pod due to an oncoming radiation storm. The last thing you remember is the station's Artificial Program telling you that you would only be asleep for eight hours. As you open \
|
||||
your eyes, everything seems rusted and broken, a dark feeling swells in your gut as you climb out of your pod. \
|
||||
Work as a team with your fellow survivors and do not abandon them.</b>"
|
||||
uniform = /obj/item/clothing/under/retro/engineering
|
||||
shoes = /obj/item/clothing/shoes/workboots
|
||||
id = /obj/item/card/id/away/old/eng
|
||||
gloves = /obj/item/clothing/gloves/color/fyellow/old
|
||||
l_pocket = /obj/item/tank/emergency_oxygen
|
||||
assignedrole = "Ancient Crew"
|
||||
|
||||
/obj/effect/mob_spawn/human/oldeng/Destroy()
|
||||
new /obj/structure/showcase/machinery/oldpod/used(drop_location())
|
||||
return ..()
|
||||
|
||||
/obj/effect/mob_spawn/human/oldsci
|
||||
name = "old cryogenics pod"
|
||||
desc = "A humming cryo pod. You can barely recognise a science uniform underneath the built up ice. The machine is attempting to wake up its occupant."
|
||||
mob_name = "a scientist"
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "sleeper"
|
||||
roundstart = FALSE
|
||||
death = FALSE
|
||||
random = TRUE
|
||||
mob_species = /datum/species/human
|
||||
flavour_text = "<span class='big bold'>You are a scientist working for Nanotrasen,</span><b> stationed onboard a state of the art research station. You vaguely recall rushing into a \
|
||||
cryogenics pod due to an oncoming radiation storm. The last thing you remember is the station's Artificial Program telling you that you would only be asleep for eight hours. As you open \
|
||||
your eyes, everything seems rusted and broken, a dark feeling swells in your gut as you climb out of your pod. \
|
||||
Work as a team with your fellow survivors and do not abandon them.</b>"
|
||||
uniform = /obj/item/clothing/under/retro/science
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
id = /obj/item/card/id/away/old/sci
|
||||
l_pocket = /obj/item/stack/medical/bruise_pack
|
||||
assignedrole = "Ancient Crew"
|
||||
|
||||
/obj/effect/mob_spawn/human/oldsci/Destroy()
|
||||
new /obj/structure/showcase/machinery/oldpod/used(drop_location())
|
||||
return ..()
|
||||
|
||||
/obj/structure/showcase/machinery/oldpod
|
||||
name = "damaged cryogenic pod"
|
||||
desc = "A damaged cryogenic pod long since lost to time, including its former occupant..."
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "sleeper-open"
|
||||
|
||||
/obj/structure/showcase/machinery/oldpod/used
|
||||
name = "opened cryogenic pod"
|
||||
desc = "A cryogenic pod that has recently discharged its occupant. The pod appears non-functional."
|
||||
@@ -48,8 +48,17 @@
|
||||
item_color="yellow"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
New()
|
||||
siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5)
|
||||
/obj/item/clothing/gloves/color/fyellow/New()
|
||||
..()
|
||||
siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5)
|
||||
|
||||
/obj/item/clothing/gloves/color/fyellow/old
|
||||
desc = "Old and worn out insulated gloves, hopefully they still work."
|
||||
name = "worn out insulated gloves"
|
||||
|
||||
/obj/item/clothing/gloves/color/fyellow/old/New()
|
||||
..()
|
||||
siemens_coefficient = pick(0,0,0,0.5,0.5,0.5,0.75)
|
||||
|
||||
/obj/item/clothing/gloves/color/black
|
||||
desc = "These gloves are fire-resistant."
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
|
||||
H.do_attack_animation(C)
|
||||
visible_message("<span class='danger'>[C] has been touched with [src] by [H]!</span>")
|
||||
add_attack_logs(H, C, "Touched with stun gloves")
|
||||
C.Stun(stun_strength)
|
||||
C.Weaken(stun_strength)
|
||||
C.apply_effect(STUTTER, stun_strength)
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
//Let's keep clothing sorting clean. This is for all the oldstation clothes.
|
||||
|
||||
/obj/item/clothing/under/retro/security
|
||||
desc = "A (now) retro corporate security jumpsuit. It doesn't have any sort of robust fabric, good ol' NT cutting costs."
|
||||
name = "retro security officer's uniform"
|
||||
icon_state = "retro_sec"
|
||||
item_state = "retro_sec"
|
||||
item_color = "retro_sec"
|
||||
displays_id = 0
|
||||
flags_size = ONESIZEFITSALL
|
||||
|
||||
/obj/item/clothing/under/retro/medical
|
||||
desc = "A once biologically resistant medical uniform. The high-vis stripes are faded and unreflective."
|
||||
name = "retro medical officer's uniform"
|
||||
icon_state = "retro_med"
|
||||
item_state = "retro_med"
|
||||
item_color = "retro_med"
|
||||
displays_id = 0
|
||||
flags_size = ONESIZEFITSALL
|
||||
|
||||
/obj/item/clothing/under/retro/engineering
|
||||
desc = "A faded grimy engineering jumpsuit and overall combo. It's coated with oil, dust, and grit."
|
||||
name = "retro engineering uniform"
|
||||
icon_state = "retro_eng"
|
||||
item_state = "retro_eng"
|
||||
item_color = "retro_eng"
|
||||
displays_id = 0
|
||||
flags_size = ONESIZEFITSALL
|
||||
|
||||
/obj/item/clothing/under/retro/science
|
||||
desc = "A faded polo and set of distinct white slacks. What a ridiculous tie."
|
||||
name = "retro science officer's uniform"
|
||||
icon_state = "retro_sci"
|
||||
item_state = "retro_sci"
|
||||
item_color = "retro_sci"
|
||||
displays_id = 0
|
||||
flags_size = ONESIZEFITSALL
|
||||
@@ -135,7 +135,7 @@
|
||||
/obj/item/claymore/fluff/hit_reaction()
|
||||
return 0
|
||||
|
||||
/obj/item/fluff/rsik_katana //Xydonus: Rsik Ugsharki
|
||||
/obj/item/fluff/rsik_katana //Xydonus: Rsik Ugsharki Atan
|
||||
name = "ceremonial katana"
|
||||
desc = "A shimmering ceremonial golden katana, for the most discerning class of ninja. Looks expensive, and fragile."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
@@ -1020,6 +1020,26 @@
|
||||
flags = NODROP|BLOCKHAIR
|
||||
flags_inv = HIDEEARS
|
||||
|
||||
/obj/item/clothing/suit/hooded/hoodie/fluff/xydonus //Xydonus: Rsik Ugsharki Atan | Based off of the bomber jacket, but with a hood slapped on (for allowed suit storage)
|
||||
name = "custom fit bomber jacket"
|
||||
desc = "Made for Unathi who likes to show off their big horns."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "xydonus_jacket"
|
||||
ignore_suitadjust = 0
|
||||
hoodtype = /obj/item/clothing/head/hood/fluff/xydonus
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
allowed = list(/obj/item/flashlight,/obj/item/tank/emergency_oxygen,/obj/item/toy,/obj/item/storage/fancy/cigarettes,/obj/item/lighter)
|
||||
|
||||
/obj/item/clothing/head/hood/fluff/xydonus
|
||||
name = "custom fit hood"
|
||||
desc = "A hood with some horns <i>glued</i> to them, or something like that. Custom fit for a Unathi's head shape."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "xydonus_bomberhood"
|
||||
body_parts_covered = HEAD
|
||||
flags = NODROP|BLOCKHAIR
|
||||
flags_inv = HIDEEARS
|
||||
|
||||
//////////// Uniforms ////////////
|
||||
/obj/item/clothing/under/fluff/counterfeitguise_uniform // thatdanguy23 : Rissa Williams
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
/obj/machinery/mineral/ore_redemption/New()
|
||||
..()
|
||||
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE),INFINITY)
|
||||
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE), INFINITY, FALSE, /obj/item/stack)
|
||||
files = new /datum/research/smelter(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/ore_redemption(null)
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
|
||||
/obj/machinery/mineral/processing_unit/New()
|
||||
..()
|
||||
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE), INFINITY)
|
||||
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE), INFINITY, TRUE, /obj/item/stack)
|
||||
files = new /datum/research/smelter(src)
|
||||
|
||||
/obj/machinery/mineral/processing_unit/Destroy()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
/obj/machinery/mineral/mint/New()
|
||||
..()
|
||||
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_URANIUM, MAT_DIAMOND, MAT_BANANIUM, MAT_TRANQUILLITE), MINERAL_MATERIAL_AMOUNT * 50)
|
||||
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_URANIUM, MAT_DIAMOND, MAT_BANANIUM, MAT_TRANQUILLITE), MINERAL_MATERIAL_AMOUNT * 50, FALSE, /obj/item/stack)
|
||||
|
||||
/obj/machinery/mineral/mint/process()
|
||||
var/turf/T = get_step(src, input_dir)
|
||||
|
||||
@@ -30,7 +30,9 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi
|
||||
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
|
||||
see_invisible = SEE_INVISIBLE_OBSERVER_AI_EYE
|
||||
see_in_dark = 100
|
||||
verbs += /mob/dead/observer/proc/dead_tele
|
||||
verbs += list(
|
||||
/mob/dead/observer/proc/dead_tele,
|
||||
/mob/dead/observer/proc/open_spawners_menu)
|
||||
|
||||
// Our new boo spell.
|
||||
AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/boo(null))
|
||||
@@ -678,3 +680,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
mind.transfer_to(new_char)
|
||||
else
|
||||
new_char.key = key
|
||||
|
||||
/mob/dead/observer/proc/open_spawners_menu()
|
||||
set name = "Mob spawners menu"
|
||||
set desc = "See all currently available ghost spawners"
|
||||
set category = "Ghost"
|
||||
|
||||
var/datum/spawners_menu/menu = new /datum/spawners_menu(src)
|
||||
menu.ui_interact(src)
|
||||
|
||||
@@ -281,6 +281,15 @@
|
||||
flags = RESTRICTED | WHITELISTED
|
||||
syllables = list("click","clack")
|
||||
|
||||
/datum/language/kidan/get_random_name()
|
||||
var/new_name = "[pick(list("Vrax", "Krek", "Vriz", "Zrik", "Zarak", "Click", "Zerk", "Drax", "Zven", "Drexx"))]"
|
||||
new_name += ", "
|
||||
new_name += "[pick(list("Noble", "Worker", "Scout", "Builder", "Farmer", "Gatherer", "Soldier", "Guard", "Prospector"))]"
|
||||
new_name += " of Clan "
|
||||
new_name += "[pick(list("Tristan", "Zarlan", "Clack", "Kkraz", "Zramn", "Orlan", "Zrax"))]" //I ran out of ideas after the first two tbh -_-
|
||||
return new_name
|
||||
|
||||
|
||||
/datum/language/slime
|
||||
name = "Bubblish"
|
||||
desc = "The language of slimes. It's a mixture of bubbling noises and pops. Very difficult to speak without mechanical aid for humans."
|
||||
|
||||
@@ -731,25 +731,22 @@
|
||||
|
||||
if(hasHUD(usr, "security") && setcriminal != "Cancel")
|
||||
found_record = 1
|
||||
var/their_name = R.fields["name"]
|
||||
var/their_rank = R.fields["rank"]
|
||||
if(R.fields["criminal"] == "*Execute*")
|
||||
to_chat(usr, "<span class='warning'>Unable to modify the sec status of a person with an active Execution order. Use a security computer instead.</span>")
|
||||
else
|
||||
else
|
||||
var/rank
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/U = usr
|
||||
R.fields["comments"] += "Set to [setcriminal] by [U.get_authentification_name()] ([U.get_assignment()]) on [current_date_string] [station_time_timestamp()] with comment: [t1]<BR>"
|
||||
if(isrobot(usr))
|
||||
rank = U.get_assignment()
|
||||
else if(isrobot(usr))
|
||||
var/mob/living/silicon/robot/U = usr
|
||||
R.fields["comments"] += "Set to [setcriminal] by [U.name] ([U.modtype] [U.braintype]) on [current_date_string] [station_time_timestamp()] with comment: [t1]<BR>"
|
||||
if(isAI(usr))
|
||||
var/mob/living/silicon/ai/U = usr
|
||||
R.fields["comments"] += "Set to [setcriminal] by [U.name] (artificial intelligence) on [current_date_string] [station_time_timestamp()] with comment: [t1]<BR>"
|
||||
|
||||
R.fields["criminal"] = setcriminal
|
||||
log_admin("[key_name_admin(usr)] set secstatus of [their_rank] [their_name] to [setcriminal], comment: [t1]")
|
||||
spawn()
|
||||
sec_hud_set_security_status()
|
||||
rank = "[U.modtype] [U.braintype]"
|
||||
else if(isAI(usr))
|
||||
rank = "AI"
|
||||
set_criminal_status(usr, R, setcriminal, t1, rank)
|
||||
break // Git out of the securiy records loop!
|
||||
if(found_record)
|
||||
break // Git out of the general records
|
||||
|
||||
if(!found_record)
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
|
||||
@@ -32,24 +32,72 @@
|
||||
melee_damage_upper = 8
|
||||
attacktext = "bites"
|
||||
attack_sound = 'sound/weapons/bite.ogg'
|
||||
var/chirp_sound = 'sound/misc/nymphchirp.ogg' //used in emote
|
||||
|
||||
speed = 0
|
||||
stop_automated_movement = 0
|
||||
turns_per_move = 4
|
||||
|
||||
var/list/donors = list()
|
||||
var/ready_evolve = 0
|
||||
holder_type = /obj/item/holder/diona
|
||||
can_collar = 1
|
||||
can_collar = TRUE
|
||||
|
||||
a_intent = INTENT_HELP
|
||||
var/gestalt_alert = "merged with gestalt" //used in adding and clearing alert
|
||||
var/evolve_donors = 5 //amount of blood donors needed before evolving
|
||||
var/awareness_donors = 3 //amount of blood donors needed for understand language
|
||||
var/nutrition_need = 500 //amount of nutrition needed before evolving
|
||||
|
||||
var/datum/action/innate/diona/merge/merge_action = new()
|
||||
var/datum/action/innate/diona/evolve/evolve_action = new()
|
||||
var/datum/action/innate/diona/steal_blood/steal_blood_action = new()
|
||||
|
||||
/datum/action/innate/diona/merge
|
||||
name = "Merge with gestalt"
|
||||
icon_icon = 'icons/mob/human_races/r_diona.dmi'
|
||||
button_icon_state = "preview"
|
||||
|
||||
/datum/action/innate/diona/merge/Activate()
|
||||
var/mob/living/simple_animal/diona/user = owner
|
||||
user.merge()
|
||||
|
||||
/datum/action/innate/diona/evolve
|
||||
name = "Evolve"
|
||||
icon_icon = 'icons/obj/cloning.dmi'
|
||||
button_icon_state = "pod_1"
|
||||
|
||||
/datum/action/innate/diona/evolve/Activate()
|
||||
var/mob/living/simple_animal/diona/user = owner
|
||||
user.evolve()
|
||||
|
||||
/datum/action/innate/diona/steal_blood
|
||||
name = "Steal blood"
|
||||
icon_icon = 'icons/obj/bloodpack.dmi'
|
||||
button_icon_state = "full"
|
||||
|
||||
/datum/action/innate/diona/steal_blood/Activate()
|
||||
var/mob/living/simple_animal/diona/user = owner
|
||||
user.steal_blood()
|
||||
|
||||
/mob/living/simple_animal/diona/New()
|
||||
..()
|
||||
if(name == initial(name)) //To stop Pun-Pun becoming generic.
|
||||
name = "[name] ([rand(1, 1000)])"
|
||||
real_name = name
|
||||
|
||||
add_language("Rootspeak")
|
||||
verbs += /mob/living/simple_animal/diona/proc/merge
|
||||
merge_action.Grant(src)
|
||||
evolve_action.Grant(src)
|
||||
steal_blood_action.Grant(src)
|
||||
|
||||
/mob/living/simple_animal/diona/UnarmedAttack(var/atom/A)
|
||||
if(isdiona(A) && (src in A.contents)) //can't attack your gestalt
|
||||
visible_message("[src] wiggles around a bit.")
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/diona/resist()
|
||||
..()
|
||||
split()
|
||||
|
||||
/mob/living/simple_animal/diona/attack_hand(mob/living/carbon/human/M)
|
||||
//Let people pick the little buggers up.
|
||||
@@ -57,88 +105,76 @@
|
||||
if(isdiona(M))
|
||||
to_chat(M, "You feel your being twine with that of [src] as it merges with your biomass.")
|
||||
to_chat(src, "You feel your being twine with that of [M] as you merge with its biomass.")
|
||||
verbs += /mob/living/simple_animal/diona/proc/split
|
||||
verbs -= /mob/living/simple_animal/diona/proc/merge
|
||||
throw_alert(gestalt_alert, /obj/screen/alert/nymph, new_master = src) //adds a screen alert that can call resist
|
||||
forceMove(M)
|
||||
else
|
||||
get_scooped(M)
|
||||
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/diona/proc/merge()
|
||||
set category = "Diona"
|
||||
set name = "Merge with gestalt"
|
||||
set desc = "Merge with another diona."
|
||||
|
||||
if(iscarbon(loc))
|
||||
verbs -= /mob/living/simple_animal/diona/proc/merge
|
||||
return
|
||||
if(stat != CONSCIOUS)
|
||||
return FALSE
|
||||
|
||||
var/list/choices = list()
|
||||
for(var/mob/living/carbon/C in view(1,src))
|
||||
|
||||
if(!(Adjacent(C)) || !(C.client))
|
||||
for(var/mob/living/carbon/human/H in view(1,src))
|
||||
if(!(Adjacent(H)) || !isdiona(H))
|
||||
continue
|
||||
choices += H
|
||||
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/D = C
|
||||
if(isdiona(D))
|
||||
choices += C
|
||||
if(!choices.len)
|
||||
to_chat(src, "<span class='warning'>No suitable diona nearby.</span>")
|
||||
return FALSE
|
||||
|
||||
var/mob/living/M = input(src,"Who do you wish to merge with?") in null|choices
|
||||
|
||||
if(!M || !src || !(Adjacent(M)))
|
||||
return
|
||||
if(!M || !src || !(Adjacent(M)) || stat != CONSCIOUS) //input can take a while, so re-validate
|
||||
return FALSE
|
||||
|
||||
if(ishuman(M))
|
||||
if(isdiona(M))
|
||||
to_chat(M, "You feel your being twine with that of [src] as it merges with your biomass.")
|
||||
M.status_flags |= PASSEMOTES
|
||||
|
||||
to_chat(src, "You feel your being twine with that of [M] as you merge with its biomass.")
|
||||
forceMove(M)
|
||||
verbs += /mob/living/simple_animal/diona/proc/split
|
||||
verbs -= /mob/living/simple_animal/diona/proc/merge
|
||||
throw_alert(gestalt_alert, /obj/screen/alert/nymph, new_master = src) //adds a screen alert that can call resist
|
||||
return TRUE
|
||||
else
|
||||
return
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/diona/proc/split()
|
||||
set category = "Diona"
|
||||
set name = "Split from gestalt"
|
||||
set desc = "Split away from your gestalt as a lone nymph."
|
||||
|
||||
if(!(iscarbon(loc)))
|
||||
verbs -= /mob/living/simple_animal/diona/proc/split
|
||||
return
|
||||
|
||||
if((stat != CONSCIOUS) || !isdiona(loc))
|
||||
return FALSE
|
||||
var/mob/living/carbon/human/D = loc
|
||||
T = get_turf(src)
|
||||
if(!T)
|
||||
return FALSE
|
||||
to_chat(loc, "You feel a pang of loss as [src] splits away from your biomass.")
|
||||
to_chat(src, "You wiggle out of the depths of [loc]'s biomass and plop to the ground.")
|
||||
forceMove(T)
|
||||
|
||||
var/hasMobs = FALSE
|
||||
for(var/atom/A in D.contents)
|
||||
if(istype(A, /mob/) || istype(A, /obj/item/holder))
|
||||
hasMobs = TRUE
|
||||
if(!hasMobs)
|
||||
D.status_flags &= ~PASSEMOTES
|
||||
|
||||
var/mob/living/M = loc
|
||||
clear_alert(gestalt_alert)
|
||||
return TRUE
|
||||
|
||||
forceMove(get_turf(src))
|
||||
verbs -= /mob/living/simple_animal/diona/proc/split
|
||||
verbs += /mob/living/simple_animal/diona/proc/merge
|
||||
|
||||
if(istype(M))
|
||||
for(var/atom/A in M.contents)
|
||||
if(istype(A, /mob/living/simple_animal/borer) || istype(A, /obj/item/holder))
|
||||
return
|
||||
M.status_flags &= ~PASSEMOTES
|
||||
|
||||
/mob/living/simple_animal/diona/verb/evolve()
|
||||
set category = "Diona"
|
||||
set name = "Evolve"
|
||||
set desc = "Grow to a more complex form."
|
||||
|
||||
if(donors.len < 5)
|
||||
/mob/living/simple_animal/diona/proc/evolve()
|
||||
if(stat != CONSCIOUS)
|
||||
return FALSE
|
||||
|
||||
if(donors.len < evolve_donors)
|
||||
to_chat(src, "<span class='warning'>You need more blood in order to ascend to a new state of consciousness...</span>")
|
||||
return
|
||||
return FALSE
|
||||
|
||||
if(nutrition < 500)
|
||||
if(nutrition < nutrition_need)
|
||||
to_chat(src, "<span class='warning'>You need to binge on weeds in order to have the energy to grow...</span>")
|
||||
return
|
||||
return FALSE
|
||||
|
||||
split()
|
||||
if(isdiona(loc) && !split()) //if it's merged with diona, needs to able to split before evolving
|
||||
return FALSE
|
||||
|
||||
visible_message("<span class='danger'>[src] begins to shift and quiver, and erupts in a shower of shed bark as it splits into a tangle of nearly a dozen new dionaea.</span>","<span class='danger'>You begin to shift and quiver, feeling your awareness splinter. All at once, we consume our stored nutrients to surge with growth, splitting into a tangle of at least a dozen new dionaea. We have attained our gestalt form.</span>")
|
||||
|
||||
var/mob/living/carbon/human/diona/adult = new(get_turf(loc))
|
||||
@@ -162,28 +198,33 @@
|
||||
unEquip(W)
|
||||
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/diona/verb/steal_blood()
|
||||
set category = "Diona"
|
||||
set name = "Steal Blood"
|
||||
set desc = "Take a blood sample from a suitable donor."
|
||||
|
||||
/mob/living/simple_animal/diona/proc/steal_blood()
|
||||
if(stat != CONSCIOUS)
|
||||
return FALSE
|
||||
|
||||
var/list/choices = list()
|
||||
for(var/mob/living/carbon/human/H in oview(1,src))
|
||||
choices += H
|
||||
if(Adjacent(H) && H.dna && !(NO_BLOOD in H.dna.species.species_traits))
|
||||
choices += H
|
||||
|
||||
if(!choices.len)
|
||||
to_chat(src, "<span class='warning'>No suitable blood donors nearby.</span>")
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/human/M = input(src,"Who do you wish to take a sample from?") in null|choices
|
||||
|
||||
if(!M || !src)
|
||||
return
|
||||
if(!M || !src || !(Adjacent(M)) || stat != CONSCIOUS) //input can take a while, so re-validate
|
||||
return FALSE
|
||||
|
||||
if(NO_BLOOD in M.dna.species.species_traits)
|
||||
if(!M.dna || (NO_BLOOD in M.dna.species.species_traits))
|
||||
to_chat(src, "<span class='warning'>That donor has no blood to take.</span>")
|
||||
return
|
||||
return FALSE
|
||||
|
||||
if(donors.Find(M.real_name))
|
||||
to_chat(src, "<span class='warning'>That donor offers you nothing new.</span>")
|
||||
return
|
||||
return FALSE
|
||||
|
||||
visible_message("<span class='danger'>[src] flicks out a feeler and neatly steals a sample of [M]'s blood.</span>","<span class='danger'>You flick out a feeler and neatly steal a sample of [M]'s blood.</span>")
|
||||
donors += M.real_name
|
||||
@@ -195,13 +236,12 @@
|
||||
update_progression()
|
||||
|
||||
/mob/living/simple_animal/diona/proc/update_progression()
|
||||
if(!donors.len)
|
||||
return
|
||||
if(stat != CONSCIOUS || !donors.len)
|
||||
return FALSE
|
||||
|
||||
if(donors.len == 5)
|
||||
ready_evolve = 1
|
||||
if(donors.len == evolve_donors)
|
||||
to_chat(src, "<span class='noticealien'>You feel ready to move on to your next stage of growth.</span>")
|
||||
else if(donors.len == 3)
|
||||
else if(donors.len == awareness_donors)
|
||||
universal_understand = 1
|
||||
to_chat(src, "<span class='noticealien'>You feel your awareness expand, and realize you know how to understand the creatures around you.</span>")
|
||||
else
|
||||
@@ -219,7 +259,7 @@
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/diona/emote(act, m_type=1, message = null)
|
||||
if(stat)
|
||||
if(stat != CONSCIOUS)
|
||||
return
|
||||
|
||||
var/on_CD = 0
|
||||
@@ -237,6 +277,6 @@
|
||||
if("chirp")
|
||||
message = "<B>\The [src]</B> chirps!"
|
||||
m_type = 2 //audible
|
||||
playsound(src, 'sound/misc/nymphchirp.ogg', 40, 1, 1)
|
||||
playsound(src, chirp_sound, 40, 1, 1)
|
||||
|
||||
..(act, m_type, message)
|
||||
@@ -115,7 +115,7 @@
|
||||
#define CHARS_PER_LINE 5
|
||||
#define FONT_SIZE "5pt"
|
||||
#define FONT_COLOR "#09f"
|
||||
#define FONT_STYLE "Arial Black"
|
||||
#define FONT_STYLE "Small Fonts"
|
||||
|
||||
/obj/machinery/treadmill_monitor
|
||||
name = "Treadmill Monitor"
|
||||
@@ -126,6 +126,7 @@
|
||||
density = 0
|
||||
maptext_height = 26
|
||||
maptext_width = 32
|
||||
maptext_y = -1
|
||||
|
||||
var/on = 0 // if we should be metering or not
|
||||
var/id = null // id of treadmill
|
||||
@@ -200,6 +201,8 @@
|
||||
//Checks to see if there's 1 line or 2, adds text-icons-numbers/letters over display
|
||||
// Stolen from status_display
|
||||
/obj/machinery/treadmill_monitor/proc/update_display(var/line1, var/line2)
|
||||
line1 = uppertext(line1)
|
||||
line2 = uppertext(line2)
|
||||
var/new_text = {"<div style="font-size:[FONT_SIZE];color:[FONT_COLOR];font:'[FONT_STYLE]';text-align:center;" valign="top">[line1]<br>[line2]</div>"}
|
||||
if(maptext != new_text)
|
||||
maptext = new_text
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
/obj/machinery/r_n_d/New()
|
||||
materials = AddComponent(/datum/component/material_container,
|
||||
list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), 0,
|
||||
FALSE, list(/obj/item/stack, /obj/item/stack/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert))
|
||||
TRUE, /obj/item/stack, CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert))
|
||||
materials.precise_insertion = TRUE
|
||||
..()
|
||||
wires["Red"] = 0
|
||||
|
||||
@@ -17,7 +17,10 @@ World largest carp patty at display on {{AFFECTED}}.
|
||||
'Here kitty kitty' no longer preferred tajaran retrieval technique.
|
||||
Man travels 7000 light years to retrieve lost hankie, 'It was my favourite'.
|
||||
New bowling lane that shoots mini-meteors at bowlers very popular.
|
||||
Guy gets tattoo of Tau Ceti on chest '[pick("CentComm","star","starship","asteroid")] tickles most'.
|
||||
Guy gets tattoo of Tau Ceti on chest 'Asteroid tickles most'.
|
||||
Guy gets tattoo of Tau Ceti on chest 'Starship tickles most'.
|
||||
Guy gets tattoo of Tau Ceti on chest 'Star tickles most'.
|
||||
Guy gets tattoo of Tau Ceti on chest 'CentComm tickles most'.
|
||||
Skrell marries computer; wedding attended by 100 modems.
|
||||
Chef reports successfully using harmonica as cheese grater.
|
||||
Nanotrasen invents handkerchief that says 'Bless you' after sneeze.
|
||||
|
||||
@@ -56,6 +56,70 @@
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
|
||||
<h2 class="date">04 November 2018</h2>
|
||||
<h3 class="author">AffectedArc07 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="tweak">Makes status display font crispy. mmmmmmmmmmmmm</li>
|
||||
</ul>
|
||||
<h3 class="author">Citinited updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Fixes a bug in machines when switching between speedy and normal processing speeds.</li>
|
||||
</ul>
|
||||
<h3 class="author">Dave-TH updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Adds the access tuner, a syndicate device for interfacing with airlocks. Try it out!</li>
|
||||
</ul>
|
||||
<h3 class="author">TDSSS updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="tweak">Allow , in names, Kidan of the world, rejoice</li>
|
||||
<li class="tweak">Made kidan random name generation less shitty</li>
|
||||
</ul>
|
||||
<h3 class="author">Triiodine updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">ghost role sprites with a palette more depressed than the playerbase</li>
|
||||
<li class="rscadd">medical doc spawn to ghost station</li>
|
||||
<li class="rscadd">Xydonus's second fluff item</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">03 November 2018</h2>
|
||||
<h3 class="author">Certhic updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Added diona nymph action buttons</li>
|
||||
<li class="rscadd">Added diona nymph resist alert when they're merged</li>
|
||||
<li class="rscadd">Diona nymph can now initiate merge with the gestalt</li>
|
||||
<li class="bugfix">Diona nymph can now leave their gestalt by resisting</li>
|
||||
<li class="bugfix">Diona nymph can no longer attack its gestalt</li>
|
||||
</ul>
|
||||
<h3 class="author">Farie82 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Security comments now work again. Sec hud arrests will now function as intended.</li>
|
||||
</ul>
|
||||
<h3 class="author">Fox McCloud updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Fixes exploit involving materials and the recycler</li>
|
||||
</ul>
|
||||
<h3 class="author">Jazz23 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">A method of uploading coordinates to perma teleporter circuit board.</li>
|
||||
</ul>
|
||||
<h3 class="author">variableundefined updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Tigercat2000 & variableundefined (Ansari) to the maintainer list.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">02 November 2018</h2>
|
||||
<h3 class="author">Purpose updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">After over 100 years in cryosleep, a few cryocells are starting to open... AncientStation ghost roles are now available.</li>
|
||||
<li class="rscadd">Adds a ghost role menu, available under the Ghost menu</li>
|
||||
<li class="rscadd">Adds an all-access Air Alarm for mappers to utilise.</li>
|
||||
<li class="rscadd">Adds glowsticks. Currently only available in AncientStation.</li>
|
||||
</ul>
|
||||
<h3 class="author">variableundefined updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Attack log to stun gloves</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">01 November 2018</h2>
|
||||
<h3 class="author">Citinited updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
@@ -64,6 +128,7 @@
|
||||
<h3 class="author">Farie82 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="tweak">Repairing a mech now says you're doing it to the others balance: Mechs now take time to repair. No more spam repairing</li>
|
||||
<li class="bugfix">Random news feed now does not contain random code.</li>
|
||||
</ul>
|
||||
<h3 class="author">Mitchs98 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
|
||||
@@ -7806,9 +7806,51 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
|
||||
Farie82:
|
||||
- tweak: 'Repairing a mech now says you''re doing it to the others balance: Mechs
|
||||
now take time to repair. No more spam repairing'
|
||||
- bugfix: Random news feed now does not contain random code.
|
||||
Mitchs98:
|
||||
- tweak: Lowers the spam you receive from entering a warm or cold pool. You will
|
||||
no longer receive 'The water is quite warm.' nearly every few seconds.
|
||||
- bugfix: Headslugs no longer teleport out of closed lockers upon bursting.
|
||||
Warior4356:
|
||||
- bugfix: Ghosts can no longer re-enter a drone that has been shut down.
|
||||
2018-11-02:
|
||||
Purpose:
|
||||
- rscadd: After over 100 years in cryosleep, a few cryocells are starting to open...
|
||||
AncientStation ghost roles are now available.
|
||||
- rscadd: Adds a ghost role menu, available under the Ghost menu
|
||||
- rscadd: Adds an all-access Air Alarm for mappers to utilise.
|
||||
- rscadd: Adds glowsticks. Currently only available in AncientStation.
|
||||
variableundefined:
|
||||
- rscadd: Attack log to stun gloves
|
||||
2018-11-03:
|
||||
Certhic:
|
||||
- rscadd: Added diona nymph action buttons
|
||||
- rscadd: Added diona nymph resist alert when they're merged
|
||||
- rscadd: Diona nymph can now initiate merge with the gestalt
|
||||
- bugfix: Diona nymph can now leave their gestalt by resisting
|
||||
- bugfix: Diona nymph can no longer attack its gestalt
|
||||
Farie82:
|
||||
- bugfix: Security comments now work again. Sec hud arrests will now function as
|
||||
intended.
|
||||
Fox McCloud:
|
||||
- bugfix: Fixes exploit involving materials and the recycler
|
||||
Jazz23:
|
||||
- rscadd: A method of uploading coordinates to perma teleporter circuit board.
|
||||
variableundefined:
|
||||
- rscadd: Tigercat2000 & variableundefined (Ansari) to the maintainer list.
|
||||
2018-11-04:
|
||||
AffectedArc07:
|
||||
- tweak: Makes status display font crispy. mmmmmmmmmmmmm
|
||||
Citinited:
|
||||
- bugfix: Fixes a bug in machines when switching between speedy and normal processing
|
||||
speeds.
|
||||
Dave-TH:
|
||||
- rscadd: Adds the access tuner, a syndicate device for interfacing with airlocks.
|
||||
Try it out!
|
||||
TDSSS:
|
||||
- tweak: Allow , in names, Kidan of the world, rejoice
|
||||
- tweak: Made kidan random name generation less shitty
|
||||
Triiodine:
|
||||
- rscadd: ghost role sprites with a palette more depressed than the playerbase
|
||||
- rscadd: medical doc spawn to ghost station
|
||||
- rscadd: Xydonus's second fluff item
|
||||
|
||||
|
Before Width: | Height: | Size: 240 KiB After Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 491 KiB After Width: | Height: | Size: 494 KiB |
|
Before Width: | Height: | Size: 353 KiB After Width: | Height: | Size: 358 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 143 KiB |
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 69 KiB |
@@ -0,0 +1,20 @@
|
||||
<div class='statusDisplay'>
|
||||
<h1>Mob Spawners</h1>
|
||||
<table style='width:100%;'>
|
||||
{{for data.spawners}}
|
||||
<div class='item'>
|
||||
<div class='itemLabel'>
|
||||
<h3>{{:value.name}}</h3>
|
||||
<p>{{:value.amount_left}} spawners left.</p>
|
||||
</div>
|
||||
<div class='itemContent'>
|
||||
{{:value.desc}}
|
||||
</div>
|
||||
<div class='floatRight'>
|
||||
{{:helper.link('Jump', null, {'action': 'jump', 'uid': value.uids})}}
|
||||
{{:helper.link('Spawn', null, {'action': 'spawn', 'uid': value.uids})}}
|
||||
</div>
|
||||
</div>
|
||||
{{/for}}
|
||||
</table>
|
||||
</div>
|
||||
@@ -108,6 +108,7 @@
|
||||
#include "code\_globalvars\lists\names.dm"
|
||||
#include "code\_globalvars\lists\objects.dm"
|
||||
#include "code\_globalvars\lists\reagents.dm"
|
||||
#include "code\_globalvars\lists\typecache.dm"
|
||||
#include "code\_onclick\adjacent.dm"
|
||||
#include "code\_onclick\ai.dm"
|
||||
#include "code\_onclick\click.dm"
|
||||
@@ -245,6 +246,7 @@
|
||||
#include "code\datums\ruins.dm"
|
||||
#include "code\datums\shuttles.dm"
|
||||
#include "code\datums\soullink.dm"
|
||||
#include "code\datums\spawners_menu.dm"
|
||||
#include "code\datums\spell.dm"
|
||||
#include "code\datums\statclick.dm"
|
||||
#include "code\datums\supplypacks.dm"
|
||||
@@ -1211,6 +1213,7 @@
|
||||
#include "code\modules\awaymissions\mission_code\stationCollision.dm"
|
||||
#include "code\modules\awaymissions\mission_code\UO71-terrorspiders.dm"
|
||||
#include "code\modules\awaymissions\mission_code\wildwest.dm"
|
||||
#include "code\modules\awaymissions\mission_code\ruins\oldstation.dm"
|
||||
#include "code\modules\buildmode\bm_mode.dm"
|
||||
#include "code\modules\buildmode\buildmode.dm"
|
||||
#include "code\modules\buildmode\buttons.dm"
|
||||
@@ -1315,6 +1318,7 @@
|
||||
#include "code\modules\clothing\under\chameleon.dm"
|
||||
#include "code\modules\clothing\under\color.dm"
|
||||
#include "code\modules\clothing\under\miscellaneous.dm"
|
||||
#include "code\modules\clothing\under\oldstation_uni.dm"
|
||||
#include "code\modules\clothing\under\pants.dm"
|
||||
#include "code\modules\clothing\under\shorts.dm"
|
||||
#include "code\modules\clothing\under\syndicate.dm"
|
||||
|
||||