mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
fix merge conflict, wipe map changes
This commit is contained in:
@@ -6,7 +6,7 @@ If you did not make a map or sprite edit, you may leave this section blank. You
|
||||
|
||||
**Changelog:**
|
||||
*Remove this line, and appropriate fields from the changelog*
|
||||
:cl: name here
|
||||
:cl:
|
||||
add: Added new things
|
||||
del: Removed old things
|
||||
tweak: tweaked a few things
|
||||
|
||||
@@ -20,3 +20,4 @@ data/
|
||||
*.db
|
||||
stddef.dm
|
||||
.atom-build.json
|
||||
*.vscode/*
|
||||
@@ -28,7 +28,7 @@
|
||||
"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)
|
||||
"aE" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Beta Engineering APC"; pixel_x = 24; report_power_alarm = 0; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"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)
|
||||
@@ -149,15 +149,15 @@
|
||||
"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)
|
||||
"cV" = (/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; report_power_alarm = 0; start_charge = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"cW" = (/obj/machinery/alarm/all_access{pixel_y = 24; report_danger_level = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
|
||||
"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)
|
||||
"dd" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Charlie Main Corridor APC"; pixel_x = 24; report_power_alarm = 0; 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)
|
||||
"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)
|
||||
@@ -181,7 +181,7 @@
|
||||
"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)
|
||||
"dB" = (/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24; report_danger_level = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel/airless,/area/ruin/space/ancientstation/atmo)
|
||||
"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)
|
||||
@@ -203,7 +203,7 @@
|
||||
"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)
|
||||
"dX" = (/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; report_power_alarm = 0; start_charge = 0},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/comm)
|
||||
"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)
|
||||
@@ -243,7 +243,7 @@
|
||||
"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)
|
||||
"eL" = (/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; report_danger_level = 0},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/ruin/space/ancientstation/comm)
|
||||
"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)
|
||||
@@ -267,7 +267,7 @@
|
||||
"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)
|
||||
"fj" = (/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; report_danger_level = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"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)
|
||||
@@ -296,10 +296,10 @@
|
||||
"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)
|
||||
"fM" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24; report_danger_level = 0},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"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)
|
||||
"fP" = (/obj/structure/rack,/obj/item/clothing/suit/space/nasavoid/old,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24; report_danger_level = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 5},/area/ruin/space/ancientstation/engi)
|
||||
"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)
|
||||
@@ -314,7 +314,7 @@
|
||||
"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)
|
||||
"ge" = (/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; report_power_alarm = 0; 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)
|
||||
"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)
|
||||
@@ -345,7 +345,7 @@
|
||||
"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)
|
||||
"gJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm/all_access{dir = 4; pixel_x = -24; report_danger_level = 0},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"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)
|
||||
@@ -371,7 +371,7 @@
|
||||
"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)
|
||||
"hj" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24; report_danger_level = 0},/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"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)
|
||||
@@ -417,7 +417,7 @@
|
||||
"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)
|
||||
"id" = (/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; report_power_alarm = 0; start_charge = 0},/turf/simulated/floor/plating,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"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)
|
||||
@@ -462,7 +462,7 @@
|
||||
"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)
|
||||
"iW" = (/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; report_power_alarm = 0; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/hydroponics)
|
||||
"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)
|
||||
@@ -496,10 +496,10 @@
|
||||
"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)
|
||||
"jE" = (/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; report_power_alarm = 0; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation/kitchen)
|
||||
"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)
|
||||
"jH" = (/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; report_power_alarm = 0; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"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)
|
||||
@@ -521,7 +521,7 @@
|
||||
"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)
|
||||
"kd" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/flare/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)
|
||||
@@ -531,7 +531,7 @@
|
||||
"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)
|
||||
"kn" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/flare/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)
|
||||
@@ -541,7 +541,7 @@
|
||||
"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)
|
||||
"kx" = (/obj/effect/decal/cleanable/egg_smudge,/obj/machinery/alarm/all_access{pixel_y = 24; report_danger_level = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/ruin/space/ancientstation/kitchen)
|
||||
"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)
|
||||
@@ -571,8 +571,8 @@
|
||||
"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)
|
||||
"lb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24; report_danger_level = 0},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/rnd)
|
||||
"lc" = (/obj/structure/rack,/obj/item/stack/cable_coil,/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Charlie Engineering APC"; pixel_x = 24; report_power_alarm = 0; start_charge = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 6; icon_state = "yellow"},/area/ruin/space/ancientstation/engi)
|
||||
"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)
|
||||
@@ -596,20 +596,20 @@
|
||||
"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)
|
||||
"lA" = (/obj/machinery/alarm/all_access{dir = 4; pixel_x = -24; report_danger_level = 0},/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)
|
||||
"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)
|
||||
"lD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm/all_access{dir = 4; pixel_x = -24; report_danger_level = 0},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"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)
|
||||
"lK" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24; report_danger_level = 0},/mob/living/simple_animal/hostile/hivebot,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/deltacorridor)
|
||||
"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)
|
||||
"lN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm/all_access{dir = 8; pixel_x = 24; report_danger_level = 0},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
|
||||
"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) = {"
|
||||
@@ -620,8 +620,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalamanananananamalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacapcoaccvapacapapapaiaqaoacaraiaiasaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalaMaOauavawaYbhalalaaaaaaaaaaaaaaaaabababaaaaaaaaaaagababacapapacapcKacapapahapahcLaccPcLayasaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazazalaMaOataAaBaCataYbhalazazazaaaaagaaabkHkHabaaagaaaaaaagababacaiahaDaoahaDapdsaiapcLahaDcLcLaiasaa
|
||||
aaaaaaaaaaaaaaaaaaagaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaEalbiaFaGaGaGatataFbjalaIaJazagagaaaaabkHkHabaaaaaaaaagaaababacaxahaDahajaDapapapapcLahaDcLcLayasaa
|
||||
aaaaaaaaaaaaabaaaaaaaaagagagagagagagagagagagagagagagagagazaKaLalbkatataGaNaGatatcWalaPaQazaaaaaaagaaababaaaaaaagaaaaaaababaccoapacaiahacapaiahapahcLaccLcLaiasaa
|
||||
aaaaaaaaaaaaaaaaaaagaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazdXalbiaFaGaGaGatataFbjalaIaJazagagaaaaabkHkHabaaaaaaaaagaaababacaxahaDahajaDapapapapcLahaDcLcLayasaa
|
||||
aaaaaaaaaaaaabaaaaaaaaagagagagagagagagagagagagagagagagagazaKaLalbkatataGaNaGatateLalaPaQazaaaaaaagaaababaaaaaaagaaaaaaababaccoapacaiahacapaiahapahcLaccLcLaiasaa
|
||||
aaaaaaagaaabkHabagaaagaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaRaLalbiaSataGaTaGataFbjalaUazazaaaaaaaaaaaacXaaaaaaaaaaaaaaababacapapaccoapacapapapaiajaoacahaoayasaa
|
||||
aaaVaWaVagabkHababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaXaLaldcdtataGaZaGatdudvalbabbazaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacbcapacdsapacahahaoahahahacbdacababaa
|
||||
aVbebfaVaVabababaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazbgaLalaldLdMdtaZdudPdxalalblbmazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacacacbnbnacacacacacacacacacababaaaa
|
||||
@@ -629,30 +629,30 @@ aVbfbfbfbobfbfbfbfbfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazazazazazbpazalambqbqbrbqbqam
|
||||
agbybebebebebfbebebzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbBbCbDbEbFbGbHbIbGbGbJbGbGbIbHbGbGbKbLbCbCbAaacXaaaaaaaaaabMbNbObPbubububububQbRbRbQbubububububububudHbTbuaa
|
||||
aVbybebebebebUbebYbWcXcXdecXcXcXcXcXcXcXcXcXdecXcXbXdzbCbZcacbcdcecdcdcdcfbGbGcgbHbGbGbCchbCcibXcXaadkaaaadncXcjclcmcndKcpcqevcpevcrewbOewbObOewcsbOctcudHeybuaa
|
||||
aVbzbfbfbebebfcwbebzaHaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbCcxbDcyczcAcAcBcBcBcBcBcBcBcAcAcEcFbLcGbCbAaaaacXaaaaaaaabMcIcJbPfwfxcMfycNfzcNfycNfycOcNfycMgWhnbubScQbuaa
|
||||
aaaVcRcSbecTbfbfbfbfbfaaaaaaagaaagaaagaaaaaaaaaacUcUcUcUcUcVbJcAemepcZcZdacZcZeFeHcAbJdddgdgdgdgdgaaaaaaaaaaaabubububudhdidjdjdjdjdjdmdmdjdjdjdjdjdodqbubububuaa
|
||||
agbedrbzbebebfaVaVagaWagagaeckaeckaeeKdpagagcUcUcUeJeteLcUcabJcBdwdwdwdwdwdwdwdwcYcBbJbCdgdXdZeldAdgdgaaaaababaaaaaabudBdCdjdDdEdEdFdGdGhTdEdEdFdjewiWbuaaaaaaaa
|
||||
aaaVcRcSbecTbfbfbfbfbfaaaaaaagaaagaaagaaaaaaaaaacUcUcUcUcUfjbJcAemepcZcZdacZcZeFeHcAbJfMdgdgdgdgdgaaaaaaaaaaaabubububudhdidjdjdjdjdjdmdmdjdjdjdjdjdodqbubububuaa
|
||||
agbedrbzbebebfaVaVagaWagagaeckaeckaeeKdpagagcUcUcUeJetfPcUcabJcBdwdwdwdwdwdwdwdwcYcBbJbCdggedZeldAdgdgaaaaababaaaaaabugJdCdjdDdEdEdFdGdGhTdEdEdFdjewhjbuaaaaaaaa
|
||||
aVbebedIbebebfdJagagaaaaaaaeckaeckaehfaeaaaacUgXgZdNdOhmcUdQbJdRdwdwdwdSdTdUdwdwdwdRdVdWdgeudYeIeRfgdgaadnabababaaaabueadCdjebecedkLdGdGdEeeefegdjbOehbubububuaa
|
||||
aVeiejbzekekbfaVaVaaaaaaaaaehfcHeKcDckaeaaaacUhodOeneohpcUhCeqcBhDdwdweresdwdwdwhFcBdVbCdgfXdYdYdYgvdgaaaaaaababaaaabukMkNdjexdEdEdEdGdGdEdEdEdEdjkOkObuezezbubu
|
||||
aaaVeAbfbebebfbeeBaVaaaaaaaackaahfaackaaaaaaeCdOeDeEdOhGcUhHeGcAhMcZcZiQliljcZcZlkcAeGeMeNeueOePeQgNdgaaaaaaaabubububueSdCdjdEeTeUdEkPdGkLeVeWdEdjbOcJbuezeXeXbu
|
||||
aaagaaaWbebebzbeaVaVagaaaaaackaahfaackaaeCeCeCdOeYeZfadNfbcafccAcAcAcAcAfdcAcAcAcAcAfebCffgQfhdyeQhedgagagagagbufifjbukQkRdjfmdEdEfndGdGfodEdEfpdjkSkSbuezeXeXbu
|
||||
aaagaaaVfrfsftfsfufvfvagaghlhshJiBhJhshJhLfBfAfCfDfEfFfGfHfIfJfKfLfLfMfLfNfOfPfOfOfQfRfSfTfUfVfVfWhKfYbtbtbtbtfZgagbhEgdgedjgfggghgigjgkgfglgmgfdjfqfqcubSbSeXbu
|
||||
aaagaaaWbebebzbeaVaVagaaaaaackaahfaackaaeCeCeCdOeYeZfadNfbcafccAcAcAcAcAfdcAcAcAcAcAfebCffgQfhdyeQhedgagagagagbufiidbukQkRdjfmdEdEfndGdGfodEdEfpdjkSkSbuezeXeXbu
|
||||
aaagaaaVfrfsftfsfufvfvagaghlhshJiBhJhshJhLfBfAfCfDfEfFfGfHfIfJfKfLfLiWfLfNfOjEfOfOfQfRfSfTfUfVfVfWhKfYbtbtbtbtfZgagbhEgdjHdjgfggghgigjgkgfglgmgfdjfqfqcubSbSeXbu
|
||||
aaagaaaagnbebzbegoaVagaaaaaaiOaahfaahfaaeCeCeCgpeYgqdOgrfbcafcgsgsgsgsgsgtgsgsgsgsgsfebCffllgudyeQlmdgagagagagbugwgxbufkfldjgygygygydGgzdjdjdjdjdjkSkSbubSgAgAbu
|
||||
aaaeagagaVaVbfgBaVaVaaaaaaaaiOaackaahfaaaaaaeCgpgCgDdOlpcUlqeGgsgEgFgGgHgIgJgGgKgLgseGeMdglngMePeQlodgaaaaaaaabubububugOgPdjdGdGkXdGdGgzdjkWgRgSdjgTgUbubSgAgAbu
|
||||
aaagaaaaaagVaWaaagaaaaaaaacCiPaeckaehfaeaaaacUlsdOdOgYltcUhCdVhagGgGhbhchdhcgGgGgGhadVdWdglueQeQeQlvdgaaaaaaaaaaaaaabufkfldjhghghhgfhihjdjgfgfhkdjkSkSbubShUhVbu
|
||||
aaaeagagaVaVbfgBaVaVaaaaaaaaiOaackaahfaaaaaaeCgpgCgDdOlpcUlqeGgsgEgFgGgHgIkxgGgKgLgseGeMdglngMePeQlodgaaaaaaaabubububugOgPdjdGdGkXdGdGgzdjkWgRgSdjgTgUbubSgAgAbu
|
||||
aaagaaaaaagVaWaaagaaaaaaaacCiPaeckaehfaeaaaacUlsdOdOgYltcUhCdVhagGgGhbhchdhcgGgGgGhadVdWdglueQeQeQlvdgaaaaaaaaaaaaaabufkfldjhghghhgfhilbdjgfgfhkdjkSkSbubShUhVbu
|
||||
aaagaaaaaaagaaaaagagafaaaaaekZcCjwaeklcDaaaacUlwlxlydOlzcUhqdVhrgGgGgGgGgGhbgGgGgGhrdVbCdglFeQlGlHlIdgaaaaaaaaaaaaaabuhtfldjhuhvgihwlahxhyhzhAhBdjfqfqbujmkTkUbu
|
||||
aaagaaaaaaagagagaeaeccagagaekvaeckaehfaeagagcUcUcUlBlClDcUdQdVhagGgGhIgGgGgGgGgGgGhadVbCdglKlLlMdgdgdgaaaaaaaaaaaaaabulbkRdjhNhOgfhPgfhQdjhRgfhSdjkSlcbukVkYbubu
|
||||
aaagaaaaaaagaaaaaaaaaaaaaaagkZaghfagckagaaaaaaaacUcUcUcUcUcVdVgshWhXhYhZiahYhZibicgsdViddgdgdgdgdgaaaaaaaaaaaabubububuieifdjigigihgfiihQdjijikildjfqimbubububuaa
|
||||
aaagaaaaaaagagagaeaeccagagaekvaeckaehfaeagagcUcUcUlBlClccUdQdVhagGgGhIgGgGgGgGgGgGhadVbCdglAlLlMdgdgdgaaaaaaaaaaaaaabulDkRdjhNhOgfhPgfhQdjhRgfhSdjkSlKbukVkYbubu
|
||||
aaagaaaaaaagaaaaaaaaaaaaaaagkZaghfagckagaaaaaaaacUcUcUcUcUfjdVgshWhXhYhZiahYhZibicgsdVlNdgdgdgdgdgaaaaaaaaaaaabubububuieifdjigigihgfiihQdjijikildjfqimbubububuaa
|
||||
inioipaaagagaaaaaaaaaaaaaaaeiOaeckaehfaeaaaaaaaacUiqirisitcyiugsgshahahahahahahagsgsivcFbLcGbCbAaaaaaaaaaaaaaabMfqiwbPfkfldjdjdjdjdjdmixdjdjdjdjdjiyizbudHiAbuaa
|
||||
aglriniClrlraaaaaaaaaaaaaaaekZaeckaehfcDaaaaaaaacUiDiEiFiGiHiIiJiKiJiJiJiLiJiJiJiKiJiMbCiNbCkFbXcXcXcXdecXcXcXcjlOfqcnfkiRiSldiUiVldiTleiTlfiTldiSiXfqcudHiYbuaa
|
||||
inlrlrininlraaaaaeagagagagcHiPaeckaeklcDagagagagcUiZjajbitjcjdjeeMjfbCbCdVbCbCjfeMbCbCjgbLbCbCbAaaaaaaaaaaaaaabMfqfqbPjhjijjlgjkjilgjlkRfqlhfqkSjnfqjobudHbSbuaa
|
||||
injpipdbininaaaaaaaaaaaaaaaaagaadfaaagaaaaaaaaaacUcUcUcUcUazjqazazazbAbAjrbAbAazazazjsazazazazazaaaaaaaaaaaaaabubububububujtjtjtjtjtjujvjtjtjtjtjtbubububububuaa
|
||||
inlAipipaainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazjxjyazazjzbCbCdVbCbCbCazazbgjAazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtjBjCjDjEjFjGjHjIjCjJjtaaaaaaaaaaaaaa
|
||||
inaEipipaainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazjxjyazazjzbCbCdVbCbCbCazazbgjAazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtjBjCjDcVjFjGcWjIjCjJjtaaaaaaaaaaaaaa
|
||||
lrlrjKjLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazjMjNazjObCjPbCjQbCkIbCjRazbgbgazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtjSjTjUjVjVjGjVjWjXjYjtaaaaaaaaaaaaaa
|
||||
jZlrkajLaaagaaaaaaaaagaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaazkbkcazkdbCbCbCdVkebCbCkfazkgkhazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtjtjtkijVjVjGjVkjjtjtjtaaaaaaaaaaaaaa
|
||||
kkinlEjLagaaagagagagaaaaaaaaagdlagaaaaagagagagagagagagagazazkmazknbCkJbCkKbCjPbCkoazkpazazagagagagagagagagagagagagagagagagjtkqjTjUjVkrksjVjWjXktjtaaaaaaaaaaaaaa
|
||||
kulJkwjLaaaaaaaaaaaaaaaaaaagaaababaaaaaaaaaaaaaaaaaaaaaaaaazkxazkdbCbCbCdVbCbCbCkfazbgazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtkyjCjUkzkAkAkzjWjCkBjtaaaaaaaaaaaaaa
|
||||
kulJkwjLaaaaaaaaaaaaaaaaaaagaaababaaaaaaaaaaaaaaaaaaaaaaaaazddazkdbCbCbCdVbCbCbCkfazbgazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtkyjCjUkzkAkAkzjWjCkBjtaaaaaaaaaaaaaa
|
||||
kClrkDjLaaagaaaaaaaaaaaaagaaaHabababaaagaaaaaaaaaaaaaaaaaaazazazbCbCjPbCjQbCjPbCbCazazazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajtjtjtjtjtkEkEjtjtjtjtjtaaaaaaaaaaaaaa
|
||||
aalNipipaaaaaaaaaaaaaaaaaaaaabkHkHabaaaaaaaaaaaaaaaaaaaaaaaaaaazazjfbCbCkGbCbCjfazazaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aadBipipaaaaaaaaaaaaaaaaaaaaabkHkHabaaaaaaaaaaaaaaaaaaaaaaaaaaazazjfbCbCkGbCbCjfazazaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
agipipaaaaaaaaaaaaaaaaaaaaaaabkHkHabaaaaaaaaaaaaaaaaaaaaaaaaaaaaazazbAazbAazbAazazaaaaaaaaaaaaaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababkHkHabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagcaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaagcaaaaaaaaaaaaaaaaaagcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababkHkHabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
@@ -798,10 +798,10 @@
|
||||
"apr" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/trade/sol)
|
||||
"aps" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/trade/sol)
|
||||
"apt" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/trade/sol)
|
||||
"apu" = (/obj/structure/window/full/shuttle,/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "open"; id_tag = "trader_privacy"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
|
||||
"apu" = (/obj/machinery/door/airlock/external{frequency = 1450; icon_state = "door_locked"; id_tag = "trade_sol_outer"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "160"},/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
|
||||
"apv" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/trade/sol)
|
||||
"apw" = (/obj/effect/spawner/lootdrop/trade_sol/civ,/obj/structure/closet,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"apx" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/trade/sol)
|
||||
"apw" = (/obj/structure/window/full/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
|
||||
"apx" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
|
||||
"apy" = (/obj/effect/decal/warning_stripes/northwest,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/security/range)
|
||||
"apz" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1; name = "Firing Range Control Console"; path = "w;e;e;w;s;n;n;s"; pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel,/area/security/range)
|
||||
"apA" = (/obj/machinery/vending/wallmed1{dir = 2; name = "Emergency NanoMed"; pixel_x = -27; pixel_y = 0; req_access_txt = "0"},/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack/advanced,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Brig Security Equipment South"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/seceqstorage)
|
||||
@@ -836,13 +836,13 @@
|
||||
"aqd" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/security/range)
|
||||
"aqe" = (/obj/structure/grille,/obj/structure/sign/securearea,/turf/simulated/floor/plating/airless,/area/security/podbay)
|
||||
"aqf" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "burst_l"},/turf/space,/area/shuttle/trade/sol)
|
||||
"aqg" = (/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/effect/spawner/lootdrop/trade_sol/donksoft,/obj/structure/closet,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"aqh" = (/obj/effect/spawner/lootdrop/trade_sol/minerals,/obj/structure/closet,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"aqi" = (/obj/machinery/door/airlock/shuttle/glass{name = "trader shuttle airlock"; req_access_txt = "160"; security_level = 6},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"aqj" = (/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"aqk" = (/obj/machinery/door_control{id = "soltrader_north"; name = "Trade Deposits Door"; normaldoorcontrol = 1; pixel_x = 24; pixel_y = -8; req_access_txt = "160"},/obj/machinery/door_control{id = "trader_privacy"; name = "Privacy Shutters Control"; pixel_x = 24; pixel_y = 8; req_access_txt = "160"},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"aql" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall8"; tag = "icon-swall12"},/area/shuttle/trade/sol)
|
||||
"aqm" = (/turf/simulated/shuttle/wall{icon_state = "swallc2"},/area/shuttle/trade/sol)
|
||||
"aqg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/trade/sol)
|
||||
"aqh" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/shuttle/trade/sol)
|
||||
"aqi" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1450; id_tag = "trade_sol_pump"; req_access_txt = "160"; req_one_access_txt = "0"},/obj/machinery/airlock_sensor{frequency = 1450; id_tag = "trade_sol_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1450; id_tag = "trade_sol"; pixel_x = 25; req_access_txt = "160"; tag_airpump = "trade_sol_pump"; tag_chamber_sensor = "trade_sol_sensor"; tag_exterior_door = "trade_sol_outer"; tag_interior_door = "trade_sol_inner"},/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
|
||||
"aqj" = (/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/computer/shuttle/trade/sol,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"aqk" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"aql" = (/obj/structure/closet/crate,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"aqm" = (/obj/structure/chair,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"aqn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/security/range)
|
||||
"aqo" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
|
||||
"aqp" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
|
||||
@@ -886,9 +886,9 @@
|
||||
"arb" = (/turf/space,/obj/structure/cable,/turf/simulated/floor/plating/airless/catwalk,/area/solar/auxport)
|
||||
"arc" = (/obj/effect/decal/warning_stripes/southwest,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/security/range)
|
||||
"ard" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion"},/turf/space,/area/shuttle/trade/sol)
|
||||
"are" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "soltradeship_north"; name = "Security Doors"; opacity = 0},/obj/machinery/door/airlock/shuttle/glass{id_tag = "soltrader_north"; name = "trader shuttle airlock"; req_access_txt = "160"; security_level = 6},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"arf" = (/obj/effect/spawner/lootdrop/trade_sol/sci,/obj/structure/closet,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"arg" = (/obj/effect/spawner/lootdrop/trade_sol/med,/obj/structure/closet,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"are" = (/obj/machinery/door/airlock/external{frequency = 1450; icon_state = "door_locked"; id_tag = "trade_sol_inner"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "160"},/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
|
||||
"arf" = (/obj/machinery/door/airlock/shuttle{id_tag = "s_docking_airlock"; req_access_txt = "160"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 11; id = "trade_sol"; name = "sol trade shuttle"; roundstart_move = "trade_sol_base"; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 11; id = "trade_sol_offstation"; lock_shuttle_doors = 1; name = "northwest of Cyberiad"; width = 5},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"arg" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"},/area/shuttle/trade/sol)
|
||||
"arh" = (/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"ari" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig)
|
||||
"arj" = (/obj/machinery/light{dir = 1; on = 1},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkredcorners"},/area/security/brig)
|
||||
@@ -930,11 +930,11 @@
|
||||
"arT" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore)
|
||||
"arU" = (/turf/space,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless/catwalk,/area/solar/auxport)
|
||||
"arV" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "burst_r"},/turf/space,/area/shuttle/trade/sol)
|
||||
"arW" = (/obj/structure/chair{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"arW" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1450; master_tag = "trade_sol"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "160"},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"arX" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxport)
|
||||
"arY" = (/obj/machinery/light/spot,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"arZ" = (/obj/machinery/atm{pixel_x = 0; pixel_y = 32},/obj/structure/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"asa" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "open"; id_tag = "trader_privacy"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"arZ" = (/obj/structure/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"asa" = (/obj/structure/chair{dir = 1},/obj/machinery/light/spot,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"asb" = (/turf/space,/turf/simulated/floor/plating/airless/catwalk,/area/solar/auxport)
|
||||
"asc" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig)
|
||||
"asd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig)
|
||||
@@ -1452,7 +1452,7 @@
|
||||
"aBV" = (/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/maintenance/abandonedbar)
|
||||
"aBW" = (/obj/structure/sink/kitchen{pixel_y = 25},/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/maintenance/abandonedbar)
|
||||
"aBX" = (/obj/item/trash/liquidfood,/turf/simulated/floor/wood,/area/maintenance/abandonedbar)
|
||||
"aBY" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "syndicate_elite"; name = "Side Hull Door"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
|
||||
"aBY" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "syndicate_elite"; name = "Side Hull Door"; opacity = 0; req_access_txt = "150"},/obj/docking_port/mobile{dir = 4; dwidth = 7; height = 5; id = "sst"; name = "SST shuttle"; roundstart_move = "sst_away"; width = 11},/obj/docking_port/stationary{dir = 4; dwidth = 7; height = 5; id = "sst_home"; name = "Near Cyberiad Arrivals"; width = 11},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
|
||||
"aBZ" = (/obj/effect/landmark/damageturf,/turf/simulated/floor/plasteel/airless,/area/space)
|
||||
"aCa" = (/obj/structure/chair{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/courtroom)
|
||||
"aCb" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/chair/comfy/black{dir = 8},/obj/machinery/camera{c_tag = "Courtroom Judge Committee"; dir = 8; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/crew_quarters/courtroom)
|
||||
@@ -1503,7 +1503,7 @@
|
||||
"aCU" = (/obj/item/stack/sheet/mineral/plasma{amount = 10},/obj/item/stack/rods{amount = 50},/obj/structure/rack,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil{amount = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/maintenance/electrical)
|
||||
"aCV" = (/obj/structure/table/wood,/obj/item/trash/plate,/turf/simulated/floor/wood,/area/maintenance/abandonedbar)
|
||||
"aCW" = (/obj/structure/table/wood,/obj/item/reagent_containers/food/drinks/bottle/patron,/obj/item/storage/fancy/cigarettes/cigpack_shadyjims,/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
|
||||
"aCX" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "syndicate_elite"; name = "Side Hull Door"; opacity = 0; req_access_txt = "150"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "sst"; name = "SST shuttle"; roundstart_move = "sst_away"; width = 11},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "sst_home"; name = "northwest of station"; width = 11},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
|
||||
"aCX" = (/obj/structure/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
|
||||
"aCY" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/obj/structure/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
|
||||
"aCZ" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "syndicate_sit_1"; name = "Side Hull Door"; opacity = 0; req_access_txt = "150"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "sit"; name = "SIT shuttle"; roundstart_move = "sit_away"; width = 11},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "sit_arrivals"; name = "Cyberiad Arrivals"; width = 11},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
|
||||
"aDa" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_tool_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
|
||||
@@ -1559,7 +1559,7 @@
|
||||
"aDY" = (/obj/item/stack/tile/plasteel,/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
|
||||
"aDZ" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/maintenance/electrical)
|
||||
"aEa" = (/obj/structure/table/wood,/obj/item/trash/can,/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/maintenance/abandonedbar)
|
||||
"aEb" = (/obj/machinery/computer/pod{id_tags = list("syndicate_elite"); name = "Hull Door Control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
|
||||
"aEb" = (/obj/machinery/door_control{id = "syndicate_elite"; name = "Blast Doors"; pixel_x = 3; pixel_y = -28; range = 20; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
|
||||
"aEc" = (/obj/machinery/vending/boozeomat,/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
|
||||
"aEd" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
|
||||
"aEe" = (/obj/machinery/computer/shuttle/sst,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
|
||||
@@ -2177,7 +2177,7 @@
|
||||
"aPS" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump Engineering"; pixel_x = 0; pixel_y = 24; shock_proof = 1},/turf/simulated/floor/plating,/area/maintenance/electrical)
|
||||
"aPT" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plating,/area/maintenance/electrical)
|
||||
"aPU" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/pod_2)
|
||||
"aPV" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
|
||||
"aPV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/space,/area/space)
|
||||
"aPW" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/pod_2)
|
||||
"aPX" = (/obj/machinery/optable,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
|
||||
"aPY" = (/obj/machinery/door/airlock/public/glass{name = "Vacant Office"},/obj/machinery/door/firedoor,/turf/simulated/floor/wood,/area/security/vacantoffice)
|
||||
@@ -2231,7 +2231,7 @@
|
||||
"aQU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor/plating,/area/maintenance/electrical)
|
||||
"aQV" = (/turf/space,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "eva_airlock"; name = "exterior access button"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"},/turf/simulated/floor/plating/airless/catwalk,/area/maintenance/fpmaint)
|
||||
"aQW" = (/obj/structure/table,/obj/item/camera_assembly,/obj/item/camera_assembly,/obj/item/assembly/prox_sensor{pixel_x = -5; pixel_y = 5},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plating,/area/maintenance/electrical)
|
||||
"aQX" = (/obj/structure/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"aQX" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 11; id = "trade_dock"; name = "port bay 4 at Cyberiad"; width = 5},/turf/space,/area/space)
|
||||
"aQY" = (/obj/structure/chair/stool,/turf/simulated/floor/plating,/area/maintenance/electrical)
|
||||
"aQZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/warning_stripes/southeastcorner,/turf/simulated/floor/plasteel,/area/hallway/secondary/entry)
|
||||
"aRa" = (/obj/item/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Arrivals Escape Pods"; dir = 2},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry)
|
||||
@@ -7324,7 +7324,7 @@
|
||||
"cKR" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"cKS" = (/turf/simulated/floor/wood{tag = "icon-wood-broken3"; icon_state = "wood-broken3"},/area/maintenance/asmaint)
|
||||
"cKT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/effect/decal/warning_stripes/southeast,/turf/simulated/floor/plasteel,/area/toxins/xenobiology)
|
||||
"cKU" = (/obj/docking_port/mobile{dir = 8; dwidth = 4; height = 11; id = "trade_sol"; name = "sol trade shuttle"; roundstart_move = "trade_sol_base"; width = 9},/obj/machinery/door/airlock/shuttle/glass{id_tag = "s_docking_airlock"; req_one_access_txt = "0"},/obj/docking_port/stationary{dir = 8; dwidth = 4; height = 11; id = "trade_dock"; name = "port bay 4 at Cyberiad"; width = 9},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"cKU" = (/obj/machinery/camera{c_tag = "Engineering West"; dir = 4; network = list("SS13")},/obj/structure/dispenser,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 0; req_access_txt = "56"},/turf/simulated/floor/plasteel,/area/engine/engineering)
|
||||
"cKV" = (/obj/machinery/door/window/southright{name = "Containment Pen"; req_access_txt = "55"},/obj/effect/decal/warning_stripes/south,/turf/simulated/floor/plasteel,/area/toxins/xenobiology)
|
||||
"cKW" = (/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology)
|
||||
"cKX" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology)
|
||||
@@ -8456,10 +8456,7 @@
|
||||
"dgF" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/shuttle/constructionsite)
|
||||
"dgG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/storage)
|
||||
"dgH" = (/obj/machinery/hydroponics/soil,/obj/item/seeds/carrot,/obj/item/seeds/carrot,/obj/item/seeds/carrot,/turf/simulated/floor/grass,/area/security/permabrig)
|
||||
"dgI" = (/obj/effect/spawner/lootdrop/trade_sol/sec,/obj/structure/closet,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"dgJ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating/airless,/area/space)
|
||||
"dgK" = (/obj/effect/spawner/lootdrop/trade_sol/eng,/obj/structure/closet,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"dgL" = (/obj/machinery/flasher{id = "soltraderflash"; pixel_y = -28},/obj/structure/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"dgM" = (/obj/item/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 5},/turf/simulated/floor/plasteel,/area/atmos)
|
||||
"dgN" = (/obj/machinery/atmospherics/trinary/filter{density = 0; dir = 4; filter_type = 2; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor/plasteel,/area/atmos)
|
||||
"dgO" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; level = 2},/obj/machinery/atmospherics/pipe/simple/visible/yellow{level = 2},/turf/simulated/floor/plasteel,/area/atmos)
|
||||
@@ -8475,19 +8472,11 @@
|
||||
"dgY" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/obj/item/reagent_containers/food/snacks/donkpocket,/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"dgZ" = (/obj/item/c_tube,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"dha" = (/obj/structure/mopbucket,/obj/item/caution,/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"dhb" = (/obj/machinery/computer/shuttle/trade/sol,/obj/machinery/door_control{id = "soltrader_south"; name = "Trade Deposits Door"; normaldoorcontrol = 1; pixel_x = 24; pixel_y = 8; req_access_txt = "160"},/obj/machinery/flasher_button{id = "soltraderflash"; pixel_x = 24; pixel_y = -8},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"dhc" = (/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area/space)
|
||||
"dhd" = (/obj/machinery/computer/shuttle/engineering,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite)
|
||||
"dhe" = (/turf/simulated/shuttle/wall{icon_state = "swallc3"},/area/shuttle/trade/sol)
|
||||
"dhf" = (/obj/structure/closet/radiation,/turf/simulated/floor/plating,/area/storage/secure)
|
||||
"dhg" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "soltradeship_south"; name = "Security Doors"; opacity = 0},/obj/machinery/door/airlock/shuttle/glass{id_tag = "soltrader_south"; name = "trader shuttle airlock"; req_access_txt = "160"; security_level = 6},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"dhh" = (/obj/effect/spawner/lootdrop/trade_sol/largeitem,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"dhi" = (/obj/machinery/light/spot,/obj/effect/spawner/lootdrop/trade_sol/serv,/obj/structure/closet,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"dhj" = (/obj/machinery/door/airlock/atmos{name = "Turbine Access"; req_access_txt = "12;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/turbine)
|
||||
"dhk" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/toy/minimeteor,/obj/item/poster/random_contraband,/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"dhl" = (/obj/effect/spawner/lootdrop/trade_sol/vehicle,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
|
||||
"dhm" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/trade/sol)
|
||||
"dhn" = (/obj/machinery/camera{c_tag = "Engineering West"; dir = 4; network = list("SS13")},/obj/structure/dispenser,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering)
|
||||
"dho" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity North-West"; dir = 2; network = list("Singularity","SS13"); pixel_x = 20; pixel_y = 0},/obj/machinery/power/grounding_rod{anchored = 1},/turf/simulated/floor/plating/airless,/area/engine/engineering)
|
||||
"dhv" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity North-East"; dir = 2; network = list("Singularity","SS13")},/obj/machinery/power/grounding_rod{anchored = 1},/turf/simulated/floor/plating/airless,/area/engine/engineering)
|
||||
"dhx" = (/obj/machinery/light,/obj/machinery/atmospherics/binary/volume_pump/on{name = "Space Loop In"},/turf/simulated/floor/plasteel,/area/atmos)
|
||||
@@ -8526,6 +8515,8 @@
|
||||
"dis" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating,/area/aisat{name = "\improper AI Satellite Hallway"})
|
||||
"dit" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/turf/simulated/floor/plating,/area/atmos)
|
||||
"diu" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 6; level = 2},/obj/structure/lattice,/turf/space,/area/space)
|
||||
"dix" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/decal/snow/clean/edge{dir = 1},/turf/simulated/floor/plasteel,/area/engine/break_room)
|
||||
"diy" = (/obj/structure/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
|
||||
"diz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
|
||||
"diA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
|
||||
"diB" = (/obj/structure/chair,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
|
||||
@@ -8994,11 +8985,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomanianhankanjanlajJanmapGanpanoanranqantansapFanuanwanvanzanyanCanBanEanDanIanFanJanJanJanKaoJanLanNanManPanOanRanQanQanSanUanTalFanVaofajVajVanXanZanYaoaaaaaabaabajbaknajwakoajwajwajxajyaaaaaaaaaaaaamWaabaabamoaabaabaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomaocaobaoeaodaohaogaitapGaojaoiaonaokaopaooapFaoqaosaoraouaotaowaovaoxalWaozaoyaoBaoAaoDaoCaoJaoEaoGaoFaoFaoHaoLaoIaoIaoMaoPaoNalFaofaoQaiYaiYaiYaoTaoSaihaqIaqIaqIajbakyajwajwajwajwakzajyaaaaaaaaaaaaamWaaaaaaamUaaaaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfaoUaomaoValEaoXaoWanlajJaigapGaoZaoYapbapaapdapcapFapeapgapfaphamyapjapiapkapSapAaplapCapBapEapDapIapHapJapJapLapKapmaoRapMaoJapNaoJapOaoQapQaiYapVapUapXapWaihaZJaZMaZLajbapYaqaapZaqcaqbajbalIaqeaaaaaaaaaamWaabappannapqaabaabamWamWamWamWamWamWaqpamWamWamWamWamWamWamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabanGaabalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakBakBakBaslakWakZaomaomaomaomakUaqsapFapGapGapGaqtaquapGapFaqvalUaqwaqwalTaqxaqxapPapSapSaqyaqzapSapSapSanAaqAaqCaqBanxanAanAaqAapRanxaqDapTanxanAaqGaqGaqGaqGaqHaihaihaqIaucaqIaqIajbalsaqJaqKalsajbaabaaaaaaaaaaaaamWaaaappaoKapqaaaaaaaabaabaabaabaabaabaabaabaqLaabaabaabaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalwalvalvaabaabaaaapnaaaaabaabalvalvalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBapyaqraqMaqNaqraqOapzaqQaqPakWaqRaqSaqXaqVaqUaqXaqWariaqYarjaqXaqXaqXaqXarkaqXaqXaqXarlarnarmarparoarrarqarsarsarsartarsaruarwarvarxaqXaryaqWaqXarzarBarAarCaqXariaqXaqXarDarEaqVaqXarFarHarGarJarIajbaabaaaaaaaaaaaaamWaaaappaoKapqaaaaaaaabaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaabaaaaabaaaaaaapnaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBaqdarKaqdaqdaqdaqnaraarParOarRaqTarSarQasdascaseaseasfaseasgaseaseaseasiashasiasjasiasiassaskasnasmaspasoasoasoasoasqasoasoasoasrastasAasvasuasxaswaszasyasAasAasCasBasBasDasEasEasEasFasHasGasIamRamVaaaaaaaaaaaaaaaamWaabappaoKapqaaaaaaaabaqZaabaaaaaaaabaqZaabaabaaaaaaaqZaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaabarXarXarXarXarXaaaarbaaaarXarXarXarXarXaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBarcasYasXasZasYasYataatbalBakWaryatgatgatgatfatiathatkatjatmatlatnatjatpatoatratqatratsatuattatwatvatyatxatAatzatCatBatEatDatAatOatRatQaFLaFLaFLaFLaFLaFLaFLaxeatSatSatSatTatSatSatSarFatVatUatXatWajbaaaaaaaaaaaaaabamWaaaappaoKapqaabaabappannapqaabaabappannapqaabaabappannapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaarLarMarMarMarMarNasbarUasLasLasLasLasMaaaalwaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaakBakBakBakBakBakBakBatYauaatZakWaubaudapFaxTaufawKaugauhawKawKawKawKaujaukaucatdaulatdaucaunaumawHawHawHawHauAauoawVauEauEawXauEauFauEauEaFLauGauHaFLauHauIaFLauJauLauKauNauMauPauOauQajbajbajbajbajbajbaaaaaaaaaaaaaaaamWaaaappaoKapqaaaaaaappaoKapqaaaaaaappaoKapqaaaaaaappaoKapqaabaqpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsaprapuaptapwapraprapxapraprapvaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabanGaabalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakBakBakBaslakWakZaomaomaomaomakUaqsapFapGapGapGaqtaquapGapFaqvalUaqwaqwalTaqxaqxapPapSapSaqyaqzapSapSapSanAaqAaqCaqBanxanAanAaqAapRanxaqDapTanxanAaqGaqGaqGaqGaqHaihaihaqIaucaqIaqIajbalsaqJaqKalsajbaabaaaaaaaaaaaaamWaaaappaoKapqaaaaaaaabaabaabaabaabaabaabaabaqLaabaabaabaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfaqhaqiaqgaqkaqlaqlaqlaqmaqjaqoaaaaaaaaaalwalwalwalvalvaabaabaaaapnaaaaabaabalvalvalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBapyaqraqMaqNaqraqOapzaqQaqPakWaqRaqSaqXaqVaqUaqXaqWariaqYarjaqXaqXaqXaqXarkaqXaqXaqXarlarnarmarparoarrarqarsarsarsartarsaruarwarvarxaqXaryaqWaqXarzarBarAarCaqXariaqXaqXarDarEaqVaqXarFarHarGarJarIajbaabaaaaaaaaaaaaamWaaaappaoKapqaaaaaaaabaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardaqhareargaqlarharharharharharfaaaaaaaaaalwaaaaaaaabaaaaabaaaaaaapnaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBaqdarKaqdaqdaqdaqnaraarParOarRaqTarSarQasdascaseaseasfaseasgaseaseaseasiashasiasjasiasiassaskasnasmaspasoasoasoasoasqasoasoasoasrastasAasvasuasxaswaszasyasAasAasCasBasBasDasEasEasEasFasHasGasIamRamVaaaaaaaaaaaaaaaamWaabappaoKapqaaaaaaaabaqZaabaaaaaaaabaqZaabaabaaaaaaaqZaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarVaqharWarYarharharharharZasaaqoaaaaaaaaaalwaabarXarXarXarXarXaaaarbaaaarXarXarXarXarXaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBarcasYasXasZasYasYataatbalBakWaryatgatgatgatfatiathatkatjatmatlatnatjatpatoatratqatratsatuattatwatvatyatxatAatzatCatBatEatDatAatOatRatQaFLaFLaFLaFLaFLaFLaFLaxeatSatSatSatTatSatSatSarFatVatUatXatWajbaaaaaaaaaaaaaabamWaaaappaoKapqaabaabappannapqaabaabappannapqaabaabappannapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasJaprapraprapwapraprapxapraprasKaaaaaaaaaalwaaaarLarMarMarMarMarNasbarUasLasLasLasLasMaaaalwaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaakBakBakBakBakBakBakBatYauaatZakWaubaudapFaxTaufawKaugauhawKawKawKawKaujaukaucatdaulatdaucaunaumawHawHawHawHauAauoawVauEauEawXauEauFauEauEaFLauGauHaFLauHauIaFLauJauLauKauNauMauPauOauQajbajbajbajbajbajbaaaaaaaaaaaaaaaamWaaaappaoKapqaaaaaaappaoKapqaaaaaaappaoKapqaaaaaaappaoKapqaabaqpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaabatFatFatFatFatFaaaasbaaaatFatFatFatFatFaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBauRauTauSakWasNauVapGauXauWaucauYavaauZavcavbauZavdavfaveavhavgaviaveavjaAzavlavkavmavlavoavnavzavravBavAaAFavCaCyavDaFLauIavFavEavFauIaFLavGavHayVayVavIavKavJavLaHEaaaaabaaaaaaaaaaaaaaaaaaaaaaaaamWaaaappaoKapqaaaaaaappaoKapqaaaaaaappaoKapqaaaaaaappaoKapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaaaaabaaaaaaaaaasbaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasUasTasWasVaaaaaaawBawBaudaudaudaudasOavNaucavOauWaucavPavRavQavTavSavUavdavfavVavXavWavZavYavjaAzawbawaawdawcawfaweawgaCyawhavAaAFawiawnawjaFLawAawDawCawEawAaFLawFawGayVawJawIawLawGawMaHEaabaabaaaaaaaaaaaaaaaaaaaaaaaaamWaaaappaoKapqaabaabappaoKapqaabaabappaoKapqaabaabappaoKapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaabarXarXarXarXarXaaaasbaaaarXarXarXarXarXaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatIatKatLatJatIatMatNatPawOawNasQasRawSatHauVaucawTauWaucawUawYawWaxaawZawWavdavfaxbaxdaxcaxfavYavjaAzaxpaxgauraxpaxsaxraxvaxtavBaxwaxyaxxaxAaxzaxCaxBaxEaxDaxFavFaxGawGawGawGaHEaHEaxIaxHaHEaHEaabaaaaaaaaaaaaaaaaaaaaaaaaaaaamWaabappaoKapqaaaaaaappaoKapqaaaaaaappaoKapqaaaaaaappaoKapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -9008,9 +8999,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiazeazgazhaxiaaaaxkazfazjaziaxkalwaabarXarXarXarXarXaaaasbaaaarXarXarXarXarXaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauvaxoawzaxmatIatMatNazVauyawBaudaudaudaznazXazWazsazrawKazYazZawWaAcaAaawWaAdaAraxLaABaAtaATaxLaAqaBIaxpaAuaAvaxpaAwavnaxvaAyaACaAAaAEaADaAHasPawlaAIaAKaAJawlavqavqaIjaIqaydavqavqaxhaxhaxhdmoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqZazUaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaaaaaaamWaaaaAfaAfaAgaAgaAgaAgaAgaAgaAfaAfaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaAhazgazhaxiaaaaxkaAiaykaykaxkalwaaaarLarMarMarMarMarNasbarUasLasLasLasLasMaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatIaymawzawzayhauyayoaAMauCaAmaAnaAlaAnaApaApaANaApaAoaElaAOaAPawKaxSaARawKaBKaDhaAUaAVaxLaAXaAWaHraBaawHaBiayeawHaBraBpaBsaBsaBsaBsaBsawVaBuaBtawlaBvaBRaBvawlaBwavqavqavqavqavqaIsatGaupawkauqauqausaaaaaaaaaaaaaaaaaaaaaaabaabaabaqZawPawQaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaamWaAfaAfaBdaBcaBeaBgaBhaBfaBjaBeaAfaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaAhazgazhaxiaaaaxkaBkaykaBlaxkaabaBmatFatFatFatFatFaaaasbaaaatFatFatFatFatFaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatIazkazkazkatIatMaBAaBzaBBaAmaCaaAnaAnaBCaApaBDaBqaBoaElaBEaBFauZavcaBGauZaAdaxLaxLaBbaAZaBHaxLaxLazxavlaBLavmavlaBNaBMaBPaBOaBSaBQaBsaCcaCfaCeaZIaCgavqaSPavqavqavqavqavqavqavqavqavsavqavtavpavuavwaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabawRaabaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaAfaAfaAfaAfaBUaBgaBVaBgaBVaBXaBgaBgaBgaBWaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiazgazgazgaBYaaaaxkaBkaykaBlaxkalwaaaaaaaabaaaaabaaaaaaaxqaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAeaAkaAkaAkaAjaaaaaaaaaaaaaBnaAnaAnaAnaCiaCkaCjaCdaCbaElavPaCmaClavTaCnaCoavdaxLaEBaBJaEBaCpaEBaxLaAzazAaCrawdaCsateaCtaBsaCvaCxaCwaBsaCzaCBaCAaCCaZIaZIaCgavqavqaChawlbWpaIYbWpbWpatGavqaxNauqauqawmaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabayEaabaabaaaaaaaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaAfaCNaCOaCPaCMaCRaCQaCSaBgaBgazSaCVaBgaCWaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaCTazgazgaCXaaaaxkaCYaykaykaCZalwalwalwaabaabaabaabaDbaDaaDbaabaabaabaabalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBnaDdaDcaCEaCDaCGaCFaCHaDiaElauYaCIawWaCKaCJawWaDeaDfaEBaCqaFFaDgaEBaDkaDjaxpaDlaDmaxpaDoaDnaBsaDpaDraDqaBsaDsaDNaDNaDNaDNaDPaDPaDPaDPaDPaDPcXKcXHaJccYNatGatGatGatGaaaaaaaaaabpaabaabaabaaaaabaaaaabaabaDSaDKaDSaabaabaaaaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaAfaDUaDTaDWaDVaDYaDXaBgaBgaBgaAbaEaaBgaEcaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaEbazgaEeaxiaaaaxkaEfaykaykaxkaabaaaaabaaaaaaaabaaaaDbaEgaEdaaaaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEiaEiaEiaEiaEiaEiaEiaAmaElaElaElaDtaElaElaElaDuaAmaAxaAxaAxaAxaAxaAxaEBaEBaDvaCqaFFaDgaDvaDvaDvaEpaEpaEpaEpaDxaDwaBsaDyaDAaDzaBsaDsaDNaELaEMaEKaDPaENaDBaEOaEQaDPaJlcXHcXHcXHaJnaJmaJobWvaaaaaaaaaaabaabaaaaabaabaabaabaabaaaaDSaERaDSaaaaabaaaaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaAfaETaESaCPaEUaEWaEVaEXaBgaEZaALaFbaFaaAfaFdaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaCTazgazgaxiaaaaxkaBkaykaBlaxkalwaaaaaaaabaaaaabaaaaaaaxqaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAeaAkaAkaAkaAjaaaaaaaaaaaaaBnaAnaAnaAnaCiaCkaCjaCdaCbaElavPaCmaClavTaCnaCoavdaxLaEBaBJaEBaCpaEBaxLaAzazAaCrawdaCsateaCtaBsaCvaCxaCwaBsaCzaCBaCAaCCaZIaZIaCgavqavqaChawlbWpaIYbWpbWpatGavqaxNauqauqawmaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabayEaabaabaaaaaaaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaAfaCNaCOaCPaCMaCRaCQaCSaBgaBgazSaCVaBgaCWaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBYazgazgaCXaxiaaaaxkaCYaykaykaCZalwalwalwaabaabaabaabaDbaDaaDbaabaabaabaabalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBnaDdaDcaCEaCDaCGaCFaCHaDiaElauYaCIawWaCKaCJawWaDeaDfaEBaCqaFFaDgaEBaDkaDjaxpaDlaDmaxpaDoaDnaBsaDpaDraDqaBsaDsaDNaDNaDNaDNaDPaDPaDPaDPaDPaDPcXKcXHaJccYNatGatGatGatGaaaaaaaaaabpaabaabaabaaaaabaaaaabaabaDSaDKaDSaabaabaaaaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaAfaDUaDTaDWaDVaDYaDXaBgaBgaBgaAbaEaaBgaEcaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaEbazgaEeaxiaaaaxkaEfaykdiyaxkaabaaaaabaaaaaaaabaaaaDbaEgaEdaaaaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEiaEiaEiaEiaEiaEiaEiaAmaElaElaElaDtaElaElaElaDuaAmaAxaAxaAxaAxaAxaAxaEBaEBaDvaCqaFFaDgaDvaDvaDvaEpaEpaEpaEpaDxaDwaBsaDyaDAaDzaBsaDsaDNaELaEMaEKaDPaENaDBaEOaEQaDPaJlcXHcXHcXHaJnaJmaJobWvaaaaaaaaaaabaabaaaaabaabaabaabaabaaaaDSaERaDSaaaaabaaaaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaAfaETaESaCPaEUaEWaEVaEXaBgaEZaALaFbaFaaAfaFdaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFeaFfaFcaFfaFgaaaaFiaFhaykaFkaFiaabaaaaabaaaaaaaabaDbaDbaFjaFmaDbaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEiaFlaFoaDCaDDaFvaFwaFsaDFaDEaDDaDGaFvaFvaDIaDHaFBaFAaFyaFyaFyaFyaFyaFyaFyaDJaDLaGraDMaEjaDOavqavqavqavqavqaBsaDQaEkaEhaEnaEmaBsaEoaDNaFTaFUaFPaDPaFVaEqaFWaFYaDPaJEaJpaJFcXHcXHcXHcXHbWraaaaaaaabaabaaaaaaaaaaaaaaaaabaabaDSaDSaFZaDSaDSaabaaaaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaAfaGbaGaaCPaAfaCPaCPaGdaGcaAfaAfaAfaAfaAfaAfaaaaabaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaFeaGfaFgaaaaaaaGgaFiaGeaFiaGhaabaaaaabaaaaaaaabaGjaGiaGlaGkaGjaGnaGnaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGoaGmaEraGpaEtaEsaEuaEsaEvaEsaExaEwaGraGraEzaEyaGraGraGraGraGraGraGraGraGraECaEEaEDaEGaEFaEHaAQaASaEIaASaAQaBsaEJaFnaEPaFnaFnaBsaDsaDNaFpaGNaFqaDPaFraGRaGQaEQaDPaJGcXHaKycXHcXHbYecWGbWraaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaGTaGUaGSaGWaGTaabaaaaabaaaaaaaabaaaaaaaabaabaaaaaaaGXaAfaCPaAfaCPaGYaAYaHbaMzaGYaGYaGYaIEaGYajcaMraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaGnaGnaGnaGnaGnaGnaGnaGnaabaabaGjaHcaHaaGZaGjaHdaGnaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGoaHearTaHfaFuaFtaFxaHnaFzaHnaFCaHqaHnaHnaFEaFDaHnaHnaHnaHnaHnaHnaHnaFHaFJaFIaFKaHvaHxaEjaFMaAQaFNaASaFOaAQaBsaBsaBsaBsaBsaBsaBsaFQaDNaHCaFUaFRaDPaFSaHGaFWaHHaDPbZQbYeaKBcXHcXHcXHcXIbWraabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaGTaHKaHIaHJaGTaabaaaaabaaaaaaaabaaaaaaaGXaHNaGXaHNaGXaHbaGYaGYaGYaGYaGYaGYaGYaGYaGYaHOaGXaGYaJOaMraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -9018,15 +9009,15 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaIIaIGaIIaaaaaaaabaGnaIHaILaHSaHSaIJaHSaGnaIIaIIaGjaGjaIMaIKaIaaHSaGnaGnaIIaIIaIIaGnaGnaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaIbaIPaGAaGCaGBaGDaLAaGFaGEaGGaLAaGHaIlaIWaIZaGJaGIaHgaJaaJdaLZaJfaJeaJhaJgaJjaJiaJkaFFaFGaEjaGKavqavqavqavqavqavqavqavqavqavqavqavqaGLaGOaGMaHhaGPaDPaHiaHjaJyaJBaDPcWGbYeaMbaMaaODaODaODaODaODaODaODaaaaaaaaaaHNaJCaHNaaaaIFaGTaGTaJDaJHaGTaJIaGYaGYaGYaMzaJJaGYaJMaGXaGYaGYaGYaJKaMzaGYaMqaCLaCUaNmaMqaNpaNoaNqaMqaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJPaJSaJQaaaaJRaJVaJTaabaabaIIaHSaIIaaaaaaaabaGnaJXaJYaJZaJWaJUaKaaGnaKbaHSaKdaKcaKfaKeaKeaKeaKeaKeaKeaKeaKeaKgaGnaaaaKhaaaaaaaaaaaaaaaaaaaaaaaaaIbaKkaHkaKmaKnaHlaLAaHmaKraHoaLAaGHaIlaKtaHYaKvaGIaHgaKqaKsaKsaKsaKsaKsaJgaKwaJiaFyaFFaFGaEjaFMaLPaLPaLPaLPaLPaHpaKOaKOaKOaKOaKOaKOaKOaDNaDNaLVaDNaDPaDPaHsaDPaDPaDPaMhaMeaMjcYKaODaKQaKQaKQaKQaKQaODaaaaaaaaaaHNaKJaKMaaaaIFaKRaKTaKSaKWaGYaGYaGYaMzaGYaMzaKXaGYaGYaGXaGYaKVaKUaKXaIEaGYaMqaDZaOLaEYaMqaGVaHLaNkaMqaMraMraMraMraabaMraMraabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLdaLaaLbaLaaLdaLeaLfaLeaLdaabaIIaLgaLhaaaaaaaGnaGnaGnaGnaGnaLkaLiaLlaLjaLnaLmaLmaLoaLraLraLqaLpaGnaHSaGnaGnaGnaLsaGnaaaaabaaaaaaaaaaaaaaaaaaaabaabaIbaLuaLtaLwaLvaLxaLAaKraLyaHtaLAaGHaIlaLCaLEaHwaHuaHzaHyaHAaLHaKsaLIaLIaJgaKsaJiaFyaFFaLJaEjaHBaLPaHFaHDaLNaLPaMwaAGaMIaMHaMLaMJaIdaHZaIkaIgaIyaIvaIUaITaNcaNbaIXaKObWrbWraNUaKOaODaKQaKQaKQaKQaKQaODaabaabaKOaHNaMfaMgaHNaIFaMiaGYaMkaGYaHbaGYaGXaGXaMmaGXaGXaMnaMzaMzaKXaMoaMlaGYaGXaGYaPOaMqaNnaPTaPSaOJaDZaOKaMqaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsaptaprapuaprapraprapraprapuapvaaaaaaaMsaLaaMpaLaaMsaLeaMtaLeaMsaGnaIIaMuaEAaIIaIIaGnaHSaHSaHSaHSaHSaHSaHSaLkaLsaGnaGnaGnaGnaGnaMxaGnaGnaHSaMyaGnaMvaLsaGnaGnaGnaaaaaaaaaaaaaaaaMAaMAaMAaMAaMAaMAaMAaMAaMAaLAaItaMCaIuaLAaGHaIlaIxaJbaINaJvaHgaMMaIQaIOaMPaMOaMRaMQaMSaJiaFyaFFaFGaEjaFMaLPaISaIRaLNaLPaKuaMVaMVaMVaMVaMVaMVaMVaLQaKxaLRaOiaOiaOiaLSaOiaPAaOuaOAaOzaOBaJqaODaKQaKQaKQaKQaKQaODaKOaKOaKOaGYaNfaNgaJIaMzaMoaKXaMkaGYaNhaAYaNlaIEaGYaGYaGYaGYaNiaGYaGYaMoaNjaGYaMnaPRaPQaQSaQQaQUaQTaOMaQYaQWaMqaMraMraMraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfapxapwaqhaqgarharhaqiarhaqjapxaaaaaaaMsaONaNtaPPaMsaPUaNyaPWaNwaNxaHSaNzaNCaNAaMyaNBaHSaGnaGnaGnaGnaGnaGnaGnaLsaGnaByafOaBTaGnaNEaNFaNHaHSaNBaGnaNAaNIaKeaKgaIIaaaaaaaaaaaaaaaaQVaNJaNMaNLaNOaNNaNPaMAaiWaLAaJraNQaIVaLAaJsaIlaJuaJtaJwaLTaHgaNWaJzaJxaKiaJAaKlaKjaKoaJiaFyaFFaFGaEjaFMaLPaOjaKpaLNaLPaLUaMVaMNaMNaMNaMVaMVaMVaMVaMVaMTaOoaMUaMUaOsaMVaSQaMVaMVaRRaMVaPvaRVaKQaKQaKQaKQaKQaRVaTbaTdaTcaXiaTeaOCaGYaMzaOFaGYaOEaOGaOGaOGaOGaOHaOGaOIaGYaGYaGYaGYaGYaGYaGYaGYaMzaHQaPOaMqaRSaRuaOLaOLaEYaRZaMqaJNaJLaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardapxarharharharhaqkaqmaqlareapxaaaaaaaMsaOPaOQaORaMsaOPaOQaORaNwaKaaHSaOSaHSaHSaHSaHSaHSaGnaOTaOOaOVaOUaOWaGnaLsaGnafOaOXaByaOYaPaaOZaGnaPcaGnaGnaGnaGnaPcaLsaIIaaadmodmodmodmoaRYaNJaPeaPbaPfaPhaPiaPjaMAaLAaLAaLAaLAaLAaJsaIlaIlaIlaIlaIlaIlaKzaKAaIoaIoaIoaIoaIoaIoaIoaPraFFaPwaEjaFMaLPaOnaKpaLNaLPaKuaMNaMWaMWaMXaMNaMVaMVaMYaMVaNaaMZaNdaNdaNeaMVaSQaMVaMVaMVaMVaKCaODaKQaKQaKQaKQaKQaODaPLaPMaKOaGYaVJaMzaMzaMzaHPaHPaGXaGXaGXaMzaMzaMzaGXaPNaPKaGXaMzaMzaGXaMzaMzaGXaGXaRTaMqaTjaQRaTlaTkaTmaQRaTnaMqaKZaKYaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfapxarfargarharharWasaarZarhaqoaPVaSdaLdaMsaPZaQaaLdaMsaPZaQaaLdaGnaLkaGnaGnaGnaGnaGnaHSaGnaHSaQbaPXaHSaHSaGnaLsaGnaByaabaBZaGnaJYaOZaGnaQeaQcaGnaNAaKaaGnaLsaMAaMAaQgaQgaQgaQgaQgaQgaQgaQgaQgaPiaPiaPjaQhaQiaQjaQkaQlaQdaKEaKDaKFaKFaKFaKFaKFaKGaKIaKHaKFaKFaKFaKKaKKaKLaLzaKNaLBaEjaHBaLPaQzaKpaLNaLPaKuaMNaMWaNRaNSaMNaMVaMVaMVaMVaNTaMZaNdaNdaNeaMVaSQaMVaMVaMVaMVaKCaODaKQaKQaKQaKQaKQaODaQHaPMaKOaGYaVJaGYaQBaMzaQCaHOaQLaQJaHbaGXaOFaHbaGXaQKaGYaGXaQMaGYaGXaQOaQNaQPaOGaRWaMqaUgaQRaUiaUhaUiaQRaUjaMqaMzaMzaGXaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardapxarharharharharWasaaQXarhcKUaRbaoOaSbaMcaMdaMdaRaaMdaMdaMdaRdaRcaReaReaReaReaRfaGnaHSaGnaRhaRgaRiaHSaRjaPcaLsaGnaGnaGnaGnaGnaGnaPcaGnaHSaRiaLkaHSaHSaHSaRkaRmaRlaRnaRnaRnaRnaRoaRnaRnaRpaRqaRlaRsaRraRraRraRraRraRraRraRtaRwaRwaRwaRwaRxaRwaRwaLDaRwaRwaRxaRwaRwaRwaRwaRzaLFaLKaLGaLLaLPaRDaLMaLWaLOaNVaMNaNYaNXaOeaMNaMVaMVaMVaMVaMTaRMaOpaOpaRGaMVaVLaVKaMVaMVaMVaPvaRVaKQaKQaKQaKQaKQaRVaVMaYwaVObfQaZzbafbafbafbafbbYaOGaOGaOGaOGaOGaOGaOGaKSaGYaGYaGYaGYaMnaGYaGYaMkaGYaRXaUYaUYaMqaMqaMqaMqaMqaMqaUfaQIaOFaJMaGXaabafOaMraMraabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarVapxdgIdgKarharharWasadgLarhaqoaZPaSdaSdaMBaSfaMDaMEaSiaSjaQZaSaaSjaSeaScaSjaSjaSnaGnaHSaGnaSoaHSaHSaSpaSqaGnaNIaKgaHSaHSaHSaHSaHSaHSaPcaSsaHSaGnaNxaNxaGnaSraMAaSuaSwaSvaSvaSvaSxaSvaSvaSvaSyaSuaSzaSAaSAaSAaSAaSAaSAaSAaPiaRwaSBaSCaSEaSgaSkaShaSmaSlaSJaSDaSLaSCaSMaRwaSNaFFaSOaEjaMFaLPaSRaMGaSTaSSaOqaWHaOyaOraOraPkaPBbhiaPCbgsbhhbhibhibhibhibhibhjaMVaMVaMVaMVaThaODaKQaKQaKQaKQaKQaKOaKOaKOaKOaHbaMzaMzaIEaGXaGXbBOaMzaGXaTgaMzaGXaIEaGXaMkaQIaMzaGXaIEaGXaKXaUUaMkaGYaTiaGXaHOaHbaGYaGYaVTaVhaVUaVUaWZaGYaGYaGXaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardapxarharharharWdhbdheaqldhgapxaabaabaMsaSdaRUaSdaToaSfaSfaTpaSdaRUaSdaTqaTsaTraTtaGnaHSaPcaPcaGnaGnaGnaTuaTuaTuaIfaTuaTuaTuaTuaTuaHSaGnaGnaGnaGnaGnaGnaGnaSraKbaStaaaaabaaaaabaaaaabaaaaabaaaaSuaSzaSAaTwaTvaTyaTxaTAaSAaPiaRwaTzaTzaTCaTBaTEaTDaTFaTDaMKaTGaTIaTzaTzaRwatcaFFaTJaEjaMFaLPaOnaKpaLNaLPaPDbhkbhtbhpaPFaPEaQAbhzbitbisbiTbiubjkbjcbjXaYvbkKbkIaQEaOvaOwaKOaODaKQaKQaKQaKQaKQaKOaTXaUaaMzaGXaMzaLcaGYaGXaLcbBOaGXaTZaGYaGXaUbaGYaMzaUdaUcaGXaUeaGYaMzaIEaIEaMkaGYaXbaXaaXaaXaaXaaXaaXdaGYaGYaGYaXeaGYaGYaIFaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarVapxdhhdhldhiarharhaqiarharYapxaabaLdaLdaSdaOQaSdaUlaUkaUnaUmaSdaOQaSdaSdaLdaUoaUpaGnaHSaHSaHSaHSaHSaHSaTuaUuaUvaUqaUxaUsaUzaUuaTuaUwaUAaUyaUyaUyaUyaUyaUyaUBaNxaStaabaUEaUEaUEaUEaUEaUEaUEaabaSuaSzaSAaUFaUCaUHaUDaUFaSAaPiaRwaUJaUJaUJaUGaULaSCaUIaSCaULaUKaUJaUJaUJaRwaSNaFFaUMaEjaMFaLPaOjaKpaLNaLPaQFbuMaUQaUQaUQaUQaUQaUQaUQaNZaUQaUSaUSaUSaUSaUSaOaaGXaPGaPIaPIbJUaODaKQaKQaKQaKQaKQaKOaURaUaaMzaUTaGXaGYaGYaGXbJVbLCaMzaGYaGYaGXaGYaGYaMzaMkaAYaGXaGYaGYaMzaUWaGYaMkaGYaXgaQLbazbazbazbazbazaYPaYPaYPaQDaYPaYPaYPaYRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasJdhmaprapuaprapraprapraprapuasKaaaaaaaaaaSdaRUaSdaSdaSdaSdaSdaSdaRUaSdaUZaLdaUVaUXaVcaVcaVcaVcaVcaVcaVaaTuaUuaVeaUqaVfaVeaVeaUuaTuaVgaVbaViaViaViaViaViaViaViaViaVjaaaaUEaVkaVdaVmaVlaVnaUEaaaaSuaSzaSAaVpaVoaVraVqaUFaSAaPiaRwaVsaVsaTCaVtaVuaTDaTFaTDaVuaVvaVwaTzaTzaRwaSNaFFaSOaEjaObaLPaOdaOcaLNaLPaQGbuMaUQaVzaVAaVCaVCaUQaVBaOfaVDaUSbxyaVFaVHaUSaOgaGXaPGaPIaPHaPJaKOaKOaKOaKOaKOaKOaKOaVNbLGaMzaMzaGXaGXaMzaMzbLHaVPaMzaGXaHPaGXaGXaMzaMzaVRaVQaGXaGXaGXaQLaUWaGYaMkaGYaRXaGYbazaXjaXoaXkaYxaYPaYAaYzaYCaYBaYGaYFaYRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMsaLaaMpaLaaMsaLeaMtaLeaMsaGnaIIaMuaEAaIIaIIaGnaHSaHSaHSaHSaHSaHSaHSaLkaLsaGnaGnaGnaGnaGnaMxaGnaGnaHSaMyaGnaMvaLsaGnaGnaGnaaaaaaaaaaaaaaaaMAaMAaMAaMAaMAaMAaMAaMAaMAaLAaItaMCaIuaLAaGHaIlaIxaJbaINaJvaHgaMMaIQaIOaMPaMOaMRaMQaMSaJiaFyaFFaFGaEjaFMaLPaISaIRaLNaLPaKuaMVaMVaMVaMVaMVaMVaMVaLQaKxaLRaOiaOiaOiaLSaOiaPAaOuaOAaOzaOBaJqaODaKQaKQaKQaKQaKQaODaKOaKOaKOaGYaNfaNgaJIaMzaMoaKXaMkaGYaNhaAYaNlaIEaGYaGYaGYaGYaNiaGYaGYaMoaNjaGYaMnaPRaPQaQSaQQaQUaQTaOMaQYaQWaMqaMraMraMraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMsaONaNtaPPaMsaPUaNyaPWaNwaNxaHSaNzaNCaNAaMyaNBaHSaGnaGnaGnaGnaGnaGnaGnaLsaGnaByafOaBTaGnaNEaNFaNHaHSaNBaGnaNAaNIaKeaKgaIIaaaaaaaaaaaaaaaaQVaNJaNMaNLaNOaNNaNPaMAaiWaLAaJraNQaIVaLAaJsaIlaJuaJtaJwaLTaHgaNWaJzaJxaKiaJAaKlaKjaKoaJiaFyaFFaFGaEjaFMaLPaOjaKpaLNaLPaLUaMVaMNaMNaMNaMVaMVaMVaMVaMVaMTaOoaMUaMUaOsaMVaSQaMVaMVaRRaMVaPvaRVaKQaKQaKQaKQaKQaRVaTbaTdaTcaXiaTeaOCaGYaMzaOFaGYaOEaOGaOGaOGaOGaOHaOGaOIaGYaGYaGYaGYaGYaGYaGYaGYaMzaHQaPOaMqaRSaRuaOLaOLaEYaRZaMqaJNaJLaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMsaOPaOQaORaMsaOPaOQaORaNwaKaaHSaOSaHSaHSaHSaHSaHSaGnaOTaOOaOVaOUaOWaGnaLsaGnafOaOXaByaOYaPaaOZaGnaPcaGnaGnaGnaGnaPcaLsaIIaaadmodmodmodmoaRYaNJaPeaPbaPfaPhaPiaPjaMAaLAaLAaLAaLAaLAaJsaIlaIlaIlaIlaIlaIlaKzaKAaIoaIoaIoaIoaIoaIoaIoaPraFFaPwaEjaFMaLPaOnaKpaLNaLPaKuaMNaMWaMWaMXaMNaMVaMVaMYaMVaNaaMZaNdaNdaNeaMVaSQaMVaMVaMVaMVaKCaODaKQaKQaKQaKQaKQaODaPLaPMaKOaGYaVJaMzaMzaMzaHPaHPaGXaGXaGXaMzaMzaMzaGXaPNaPKaGXaMzaMzaGXaMzaMzaGXaGXaRTaMqaTjaQRaTlaTkaTmaQRaTnaMqaKZaKYaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPVaSdaSdaLdaMsaPZaQaaLdaMsaPZaQaaLdaGnaLkaGnaGnaGnaGnaGnaHSaGnaHSaQbaPXaHSaHSaGnaLsaGnaByaabaBZaGnaJYaOZaGnaQeaQcaGnaNAaKaaGnaLsaMAaMAaQgaQgaQgaQgaQgaQgaQgaQgaQgaPiaPiaPjaQhaQiaQjaQkaQlaQdaKEaKDaKFaKFaKFaKFaKFaKGaKIaKHaKFaKFaKFaKKaKKaKLaLzaKNaLBaEjaHBaLPaQzaKpaLNaLPaKuaMNaMWaNRaNSaMNaMVaMVaMVaMVaNTaMZaNdaNdaNeaMVaSQaMVaMVaMVaMVaKCaODaKQaKQaKQaKQaKQaODaQHaPMaKOaGYaVJaGYaQBaMzaQCaHOaQLaQJaHbaGXaOFaHbaGXaQKaGYaGXaQMaGYaGXaQOaQNaQPaOGaRWaMqaUgaQRaUiaUhaUiaQRaUjaMqaMzaMzaGXaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQXaRbaoOaSbaMcaMdaMdaRaaMdaMdaMdaRdaRcaReaReaReaReaRfaGnaHSaGnaRhaRgaRiaHSaRjaPcaLsaGnaGnaGnaGnaGnaGnaPcaGnaHSaRiaLkaHSaHSaHSaRkaRmaRlaRnaRnaRnaRnaRoaRnaRnaRpaRqaRlaRsaRraRraRraRraRraRraRraRtaRwaRwaRwaRwaRxaRwaRwaLDaRwaRwaRxaRwaRwaRwaRwaRzaLFaLKaLGaLLaLPaRDaLMaLWaLOaNVaMNaNYaNXaOeaMNaMVaMVaMVaMVaMTaRMaOpaOpaRGaMVaVLaVKaMVaMVaMVaPvaRVaKQaKQaKQaKQaKQaRVaVMaYwaVObfQaZzbafbafbafbafbbYaOGaOGaOGaOGaOGaOGaOGaKSaGYaGYaGYaGYaMnaGYaGYaMkaGYaRXaUYaUYaMqaMqaMqaMqaMqaMqaUfaQIaOFaJMaGXaabafOaMraMraabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZPaSdaSdaMBaSfaMDaMEaSiaSjaQZaSaaSjaSeaScaSjaSjaSnaGnaHSaGnaSoaHSaHSaSpaSqaGnaNIaKgaHSaHSaHSaHSaHSaHSaPcaSsaHSaGnaNxaNxaGnaSraMAaSuaSwaSvaSvaSvaSxaSvaSvaSvaSyaSuaSzaSAaSAaSAaSAaSAaSAaSAaPiaRwaSBaSCaSEaSgaSkaShaSmaSlaSJaSDaSLaSCaSMaRwaSNaFFaSOaEjaMFaLPaSRaMGaSTaSSaOqaWHaOyaOraOraPkaPBbhiaPCbgsbhhbhibhibhibhibhibhjaMVaMVaMVaMVaThaODaKQaKQaKQaKQaKQaKOaKOaKOaKOaHbaMzaMzaIEaGXaGXbBOaMzaGXaTgaMzaGXaIEaGXaMkaQIaMzaGXaIEaGXaKXaUUaMkaGYaTiaGXaHOaHbaGYaGYaVTaVhaVUaVUaWZaGYaGYaGXaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaMsaSdaRUaSdaToaSfaSfaTpaSdaRUaSdaTqaTsaTraTtaGnaHSaPcaPcaGnaGnaGnaTuaTuaTuaIfaTuaTuaTuaTuaTuaHSaGnaGnaGnaGnaGnaGnaGnaSraKbaStaaaaabaaaaabaaaaabaaaaabaaaaSuaSzaSAaTwaTvaTyaTxaTAaSAaPiaRwaTzaTzaTCaTBaTEaTDaTFaTDaMKaTGaTIaTzaTzaRwatcaFFaTJaEjaMFaLPaOnaKpaLNaLPaPDbhkbhtbhpaPFaPEaQAbhzbitbisbiTbiubjkbjcbjXaYvbkKbkIaQEaOvaOwaKOaODaKQaKQaKQaKQaKQaKOaTXaUaaMzaGXaMzaLcaGYaGXaLcbBOaGXaTZaGYaGXaUbaGYaMzaUdaUcaGXaUeaGYaMzaIEaIEaMkaGYaXbaXaaXaaXaaXaaXaaXdaGYaGYaGYaXeaGYaGYaIFaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaLdaLdaSdaOQaSdaUlaUkaUnaUmaSdaOQaSdaSdaLdaUoaUpaGnaHSaHSaHSaHSaHSaHSaTuaUuaUvaUqaUxaUsaUzaUuaTuaUwaUAaUyaUyaUyaUyaUyaUyaUBaNxaStaabaUEaUEaUEaUEaUEaUEaUEaabaSuaSzaSAaUFaUCaUHaUDaUFaSAaPiaRwaUJaUJaUJaUGaULaSCaUIaSCaULaUKaUJaUJaUJaRwaSNaFFaUMaEjaMFaLPaOjaKpaLNaLPaQFbuMaUQaUQaUQaUQaUQaUQaUQaNZaUQaUSaUSaUSaUSaUSaOaaGXaPGaPIaPIbJUaODaKQaKQaKQaKQaKQaKOaURaUaaMzaUTaGXaGYaGYaGXbJVbLCaMzaGYaGYaGXaGYaGYaMzaMkaAYaGXaGYaGYaMzaUWaGYaMkaGYaXgaQLbazbazbazbazbazaYPaYPaYPaQDaYPaYPaYPaYRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSdaRUaSdaSdaSdaSdaSdaSdaRUaSdaUZaLdaUVaUXaVcaVcaVcaVcaVcaVcaVaaTuaUuaVeaUqaVfaVeaVeaUuaTuaVgaVbaViaViaViaViaViaViaViaViaVjaaaaUEaVkaVdaVmaVlaVnaUEaaaaSuaSzaSAaVpaVoaVraVqaUFaSAaPiaRwaVsaVsaTCaVtaVuaTDaTFaTDaVuaVvaVwaTzaTzaRwaSNaFFaSOaEjaObaLPaOdaOcaLNaLPaQGbuMaUQaVzaVAaVCaVCaUQaVBaOfaVDaUSbxyaVFaVHaUSaOgaGXaPGaPIaPHaPJaKOaKOaKOaKOaKOaKOaKOaVNbLGaMzaMzaGXaGXaMzaMzbLHaVPaMzaGXaHPaGXaGXaMzaMzaVRaVQaGXaGXaGXaQLaUWaGYaMkaGYaRXaGYbazaXjaXoaXkaYxaYPaYAaYzaYCaYBaYGaYFaYRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVVaVSaVXaVSaVSaVYaVZaVSaVSaVXaWaaVWaLdaToaWbaVcaWdaWcaWfaWeaWhaWgaTuaUuaVeaUqaWjaVeaVeaUuaTuaWkaWlaWiaWnaWmaWoaWqaWraWpaWtaVjaabaUEaWuaWsaWwaWvaWxaUEaabaSuaSzaSAaWzaWAaWyaWCaWBaSAaPiaRwaSBaSCaWEaWDaULaSCaWFaSCaULaWGaSLaSCaSMaRwaSNaFFaWJaEjaMFaLPaISaOhaLNaLPaRvbuUaUQaWKaVEaVEaVEaWLaOlaOkaOmaUSaWQaWPaOxaOtaPgaGXaRPaRQaRQaRIaGXaJMaGXaGYaQIaHPaLcaWUaWXaWWaWYaGXaNhaGYaQIbBOaGYaGXaaaaGXaGYaGYaYEbbIaYIbbIaYKaYJaYJaYJaYJaYJbamaYObapbanbarbaqbatbasbawaYPbaAbayaYCbaBbaCbaCaYRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVVaWaaVSaXmaXraXsaXtaXuaXvaXwaXxaXyaXzaXpaXnaSdaToaXqaVcaXBaXAaXFaXGaXFaXCaTuaXIaVeaXDaXHaXEaXHaXJaXLaXKaXMaXQaXQaXQaXQaXQaXQaXNaXSaVjaaaaUEaXOaWsaXPaWvaXRaUEaaaaSuaSzaSAaXTaXXaXVaXUaYaaSAaPiaRwaXWaXWaTCaXYaVuaTDaXZaTDaVuaYbaTIaTzaTzaRwaYcaIraYhaEjaMFaLPaLPaLPaLPaLPaPlaRJaPnaPmaPoaUQaUQaUQaUQaUQaUQaUSaPpaZVaPqaUSaOgaGXaGXaGXaGXaGXaGXaGYaGXaGYaHPaHPaGXaGXaGXaYnaGXaGXaGXaGXaGYbBOaWVaHNaabaHNaGYaYsbdHaYuaYybaDbaEbaubaubaubauaGXbaFaGXbazbazbazbazbazbaIbazbazbazbaybcgaXcbaMaXhaYRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXpaYMaYLaYNaXzaYZaXsaYZaXsaYZaXsaYZaXzaYVaYTaSdaToaYWaVcaYYaYXaZfaZaaZhaZbaTuaZjaUraZcaZlaZmaZnaZdaTuaZeaZgaXQaXQaXQaXQaXQaXQaXNaZraVjaabaUEaZkaZiaZpaZoaZqaUEaabaSuaSzaSAaZsaZyaZtaZAaZuaSAaPiaRwaUJaUJaUJaYpaULaSCaUIaSCaULaZvaUJaUJaUJaRwaZxaZFaZGaEjaPtaPsaPsaPsaPsaPuaPxaPvaUQaPyaPzaUQaQmaQfaQnaUQaQoaUSaZDaZVaZEaUSaQpaZKaQqaZNaZNaZKaZXaZWaZWaZWaZWaZWaQxaZYaZWbaabacbabbaebadbagbMgbaibahbajbahbalbakaVJaGXbaubaubcmbaubavbaobaxaGXbcnaHObazbcqbcwbcubcAbcxbcCbcBbazbcFbdZbdYbegbedaXlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -9101,7 +9092,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcNFcSkcNMaaacNFcSkcNMaaacNFcSkcNMaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabcXucYtcYtcYucYAcYBcYBcYDcYCcYCcYEcYGcYFcVjcHhcVjcYHcVjcVjcVjcRRcYLcIvcIxcIwcIycYIcYJcYQcYRcYMcYMcYMcYXcYUcYZaZHcZacYSbqmcQPcYTcZbcYVcYWcZccSdcXTcZdcZgcZecZhcSncZicWZcWZcQZcPxcBQckKcExchfcyJcJqcyPcJscImcJucJtcJvcsLcJwcYjcAvcTQchfctrcIqciYbQXcpEbQXciYcJzcIrcepcZqcZscZrcxNcZtcZycZvcxNcZzcZBcZAcBRaabaabaaaaaaaaaaaaaaaaaaaaaaaabGHcFcbGGbGGbGHaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcNFcSkcNMaaacNFcSkcNMaabcNFcSkcNMaabaabaabaabaaaaabaaaaaaaabaabaaaaaaaaaaabaaaaaacXucYtcYtcYucZucZucZucZCcZwcZxcSUcJBcJAcJDcJCcJFcJEcJHcZFcZFcZLcZOcZNcVjcVjcVjcZPcZRcZQcZMcJIcNXcNVdacdabdcqdcqdcqdafbqmcQPcZUdagcZWcZXcZYcSdcZZdahdajdaidadcQZcQZcQZcQZcQZcPxcBQckKdaecsLcyJcJqchfcKvcKucKwcJtcKAcIjcKCcKBcKDcTQchfctrcIqcGLbQXcKEcKFciYcKGbQXcepcMkcJKcJKcxNcMkcJKcJKcxNcMkcJKcJKcBRaaaaabaabaaaaaaaaaaaaaaacuQcuQbGHdaucuQbGGbGHbGHbGHdoEdoEaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamhaabcNFcTRcNMaaacNFcTRcNMaaacNFcTRcNMaabalvaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabcXudaodapcZucZucZudaxdardardardardardardarcKHcKJcKIcKKdawdawdawdaFdaydaJdaAdaBdawdaydaKdaRcKLcNXcObdacdabddrdcsddZdaTdaUdaLdaMdaNcZcdaOdaPdaVdaYdaWcOkcXcdbacSndbcdbbdbbcQZcPxcBPckKchfcBNdaXcJqchfcKNcKMcJtcIjcJtcKScJtcJucJtcsLchfctrcIqciYbQXciYciYciYbQXbQXcepdbfcKZcJKcxNdbfcKZcJKcxNdbfcKZcJKcBRaaaaaaaabaabaaaaaaaaaaaacuQdbgbGGcFccuQdbhcuQdbibGHaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaalvaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabcXudbjcZucZucZucZucZudardbtdblcOqcOtcOrdardhndbqdbrcHhcVjcVjdbsdbBdbydbEdbCdbGdbFdbzcSUdbAcKLcNXcPgdacdbJdcqdetdcqdbKdbLcSddaMdaNdbNcSddaPdaVcXTcXUcPicYbdbIcTodbScLVdbWcQZcPxcBPckKchfdbMdbMcJqchfcLYcsLcLZcIjcMccMbcMecMdcJGcJvcyPctrcIqciYbQXbQXcMhciYbQXaqFcepdbRcJKcJKcxNdbRcJKcJKcxNdbRcJKcJKcBRaaaaaaaaaaabaabaaaaaaaaacuQbGGbGGcFccuQbGGbGGbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaalvaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabcXudbjcZucZucZucZucZudardbtdblcOqcOtcOrdarcKUdbqdbrcHhcVjcVjdbsdbBdbydbEdbCdbGdbFdbzcSUdbAcKLcNXcPgdacdbJdcqdetdcqdbKdbLcSddaMdaNdbNcSddaPdaVcXTcXUcPicYbdbIcTodbScLVdbWcQZcPxcBPckKchfdbMdbMcJqchfcLYcsLcLZcIjcMccMbcMecMdcJGcJvcyPctrcIqciYbQXbQXcMhciYbQXaqFcepdbRcJKcJKcxNdbRcJKcJKcxNdbRcJKcJKcBRaaaaaaaaaaabaabaaaaaaaaacuQbGGbGGcFccuQbGGbGGbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwamhalvalvalvalvalwalvalvalwdbTaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXudbUcZwcZucZucZudbVdardblcPkcMOcMTcMScMVcMUcMYcMWcMZcVjdcmdcldchcPlcPEcPDcPWcPFdcndcwdbrcHhcWecPXcZMcQcdcqdevdcqdctdcLcSddaMdaNcZccSddcvdaVcXTdcOcQecZedcScSndcTdbbdbbcQZcPxcBQckKcTUcuccABcJqchfchfcNdcNecDncNfcNfcNgchfchfchfchfctrcIqciYbQXcNhcKFciYcepcepcepcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRaaaaaaaaaaaaaabaabaaaaaabGHbGHbGHcFccuQdcJdcKbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcXucXucXudcUdcMdcMdcMdardcNcQjdcPdcPdcQdcWdawcNidcXcNkcNjcNjcNWcQVcQFcOaddbcOccQGcQVcOdcOfcOecOhcOgcOicQHdexdewdcqddmddscSddaMcSdddtcSddaPdaVcXTcXUddxcYbdbIcQZcQZcQZcQZcQZcPxcBQcOjcYlcuccTBcOScOPcOVcOPcOXcsLcsLcsLcsLczfchfcPacPecPbcPfcGLbQXcFvcepcepaaaaaaddFaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaabaaabGHcJQddBddKcuQddJddIbGGbZZaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddLcXucZucZucZudcMaabaabdarddGcQJdcPdcPcQUdarcRgcRwcRrcSvcStcSNcSxcSUcUBcQbddScVjcVccSUcVpcVqcVqcSvcSvcVucVrdcqdeydcqdeadehcSddaMcSdcZUdagdecdeidaYdejdekcXcdelcSndendemdemcQZcPxcBQcsLckKchfchfcPdchfchfcsLcQlcyJcyJcyJcsLcQucGvcQOcQXcQWcDocepcepcepcepaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaabaabbGHdbgcAScaccuQcuQcuQbGGbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
+1087
-1042
File diff suppressed because it is too large
Load Diff
+283
-282
File diff suppressed because it is too large
Load Diff
@@ -158,6 +158,8 @@
|
||||
// /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)
|
||||
#define COMSIG_OBJ_UPDATE_ICON "obj_update_icon" //called in /obj/update_icon()
|
||||
|
||||
|
||||
// /obj/item signals
|
||||
#define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#define SPECIAL_ROLE_SHADOWLING "Shadowling"
|
||||
#define SPECIAL_ROLE_SHADOWLING_THRALL "Shadowling Thrall"
|
||||
#define SPECIAL_ROLE_SLAUGHTER_DEMON "Slaughter Demon"
|
||||
#define SPECIAL_ROLE_SUPER "Super"
|
||||
#define SPECIAL_ROLE_SYNDICATE_DEATHSQUAD "Syndicate Commando"
|
||||
#define SPECIAL_ROLE_TRAITOR "Traitor"
|
||||
#define SPECIAL_ROLE_VAMPIRE "Vampire"
|
||||
|
||||
@@ -56,11 +56,11 @@
|
||||
|
||||
// Goon muts
|
||||
#define OBESITY 200 // Decreased metabolism
|
||||
#define TOXIC_FARTS 201 // Duh
|
||||
// 201 undefined
|
||||
#define STRONG 202 // (Nothing)
|
||||
#define SOBER 203 // Increased alcohol metabolism
|
||||
#define PSY_RESIST 204 // Block remoteview
|
||||
#define SUPER_FART 205 // Duh
|
||||
// 205 undefined
|
||||
#define EMPATH 206 //Read minds
|
||||
#define COMIC 207 //Comic Sans
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#define CLOSED_TURF_LAYER 2.05
|
||||
#define BULLET_HOLE_LAYER 2.06
|
||||
#define ABOVE_NORMAL_TURF_LAYER 2.08
|
||||
#define ABOVE_ICYOVERLAY_LAYER 2.11
|
||||
#define LATTICE_LAYER 2.2
|
||||
#define DISPOSAL_PIPE_LAYER 2.3
|
||||
#define GAS_PIPE_HIDDEN_LAYER 2.35
|
||||
|
||||
@@ -198,6 +198,7 @@
|
||||
#define TURF_WET_WATER 1
|
||||
#define TURF_WET_LUBE 2
|
||||
#define TURF_WET_ICE 3
|
||||
#define TURF_WET_PERMAFROST 4
|
||||
|
||||
#define APPEARANCE_UI_IGNORE_ALPHA RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
//Defaults
|
||||
#define MOVE_FORCE_DEFAULT 1000
|
||||
#define MOVE_RESIST_DEFAULT 1000
|
||||
#define PULL_FORCE_DEFAULT 1000
|
||||
|
||||
//Factors/modifiers
|
||||
#define MOVE_FORCE_PULL_RATIO 1 //Same move force to pull objects
|
||||
#define MOVE_FORCE_PUSH_RATIO 1 //Same move force to normally push
|
||||
#define MOVE_FORCE_FORCEPUSH_RATIO 2 //2x move force to forcefully push
|
||||
#define MOVE_FORCE_CRUSH_RATIO 3 //3x move force to do things like crush objects
|
||||
#define MOVE_FORCE_THROW_RATIO 1 //Same force throw as resist to throw objects
|
||||
#define MOVE_FORCE_OVERPOWERING MOVE_FORCE_DEFAULT * MOVE_FORCE_CRUSH_RATIO * 10
|
||||
#define MOVE_FORCE_EXTREMELY_STRONG MOVE_FORCE_DEFAULT * MOVE_FORCE_CRUSH_RATIO * 3
|
||||
#define MOVE_FORCE_VERY_STRONG (MOVE_FORCE_DEFAULT * MOVE_FORCE_CRUSH_RATIO) - 1
|
||||
#define MOVE_FORCE_STRONG MOVE_FORCE_DEFAULT * 2
|
||||
#define MOVE_FORCE_NORMAL MOVE_FORCE_DEFAULT
|
||||
#define MOVE_FORCE_WEAK MOVE_FORCE_DEFAULT / 2
|
||||
#define MOVE_FORCE_VERY_WEAK (MOVE_FORCE_DEFAULT / MOVE_FORCE_CRUSH_RATIO) + 1
|
||||
#define MOVE_FORCE_EXTREMELY_WEAK MOVE_FORCE_DEFAULT / (MOVE_FORCE_CRUSH_RATIO * 3)
|
||||
@@ -1495,7 +1495,7 @@ var/mob/dview/dview_mob = new
|
||||
invisibility = 101
|
||||
density = 0
|
||||
|
||||
anchored = 1
|
||||
move_resist = INFINITY
|
||||
simulated = 0
|
||||
|
||||
see_in_dark = 1e6
|
||||
|
||||
@@ -41,7 +41,6 @@ var/FATBLOCK = 0
|
||||
var/CHAVBLOCK = 0
|
||||
var/SWEDEBLOCK = 0
|
||||
var/SCRAMBLEBLOCK = 0
|
||||
var/TOXICFARTBLOCK = 0
|
||||
var/STRONGBLOCK = 0
|
||||
var/HORNSBLOCK = 0
|
||||
var/COMICBLOCK = 0
|
||||
@@ -55,7 +54,6 @@ var/CRYOBLOCK = 0
|
||||
var/EATBLOCK = 0
|
||||
var/JUMPBLOCK = 0
|
||||
var/EMPATHBLOCK = 0
|
||||
var/SUPERFARTBLOCK = 0
|
||||
var/IMMOLATEBLOCK = 0
|
||||
var/POLYMORPHBLOCK = 0
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ var/list/blobstart = list()
|
||||
var/list/ninjastart = list()
|
||||
var/list/carplist = list() //list of all carp-spawn landmarks
|
||||
var/list/avatarspawn = list()
|
||||
var/list/syndicateofficer = list()
|
||||
|
||||
//away missions
|
||||
var/list/awaydestinations = list() //a list of landmarks that the warpgate can take you to
|
||||
|
||||
@@ -78,4 +78,9 @@ GLOBAL_VAR_INIT(timezoneOffset, 0) // The difference betwen midnight (of the hos
|
||||
// However it'd be ok to use for accessing attack logs and such too, which are even laggier.
|
||||
var/fileaccess_timer = 0
|
||||
|
||||
GLOBAL_VAR_INIT(gametime_offset, 432000) // 12:00 in seconds
|
||||
GLOBAL_VAR_INIT(gametime_offset, 432000) // 12:00 in seconds
|
||||
|
||||
//printers shutdown if too much shit printed
|
||||
var/copier_items_printed = 0
|
||||
var/copier_max_items = 300
|
||||
var/copier_items_printed_logged = FALSE
|
||||
@@ -285,12 +285,12 @@
|
||||
/mob/proc/CtrlClickOn(var/atom/A)
|
||||
A.CtrlClick(src)
|
||||
return
|
||||
/atom/proc/CtrlClick(var/mob/user)
|
||||
return
|
||||
|
||||
/atom/movable/CtrlClick(var/mob/user)
|
||||
if(Adjacent(user))
|
||||
user.start_pulling(src)
|
||||
/atom/proc/CtrlClick(mob/user)
|
||||
SEND_SIGNAL(src, COMSIG_CLICK_CTRL, user)
|
||||
var/mob/living/ML = user
|
||||
if(istype(ML))
|
||||
ML.pulled(src)
|
||||
|
||||
/*
|
||||
Alt click
|
||||
|
||||
+13
-10
@@ -66,7 +66,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
var/max_elements
|
||||
var/pages = 1
|
||||
var/current_page = 1
|
||||
|
||||
|
||||
var/hudfix_method = TRUE //TRUE to change anchor to user, FALSE to shift by py_shift
|
||||
var/py_shift = 0
|
||||
var/entry_animation = TRUE
|
||||
@@ -74,9 +74,12 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
//If we swap to vis_contens inventory these will need a redo
|
||||
/datum/radial_menu/proc/check_screen_border(mob/user)
|
||||
var/atom/movable/AM = anchor
|
||||
if(!istype(AM) || !AM.screen_loc)
|
||||
if(!istype(AM))
|
||||
return
|
||||
if(AM in user.client.screen)
|
||||
var/mob/living/carbon/H
|
||||
if(ishuman(user))
|
||||
H = user
|
||||
if((AM in user.client.screen) || (H && (AM in H.internal_organs)))
|
||||
if(hudfix_method)
|
||||
anchor = user
|
||||
else
|
||||
@@ -84,7 +87,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
restrict_to_dir(NORTH) //I was going to parse screen loc here but that's more effort than it's worth.
|
||||
|
||||
//Sets defaults
|
||||
//These assume 45 deg min_angle
|
||||
//These assume 45 deg min_angle
|
||||
/datum/radial_menu/proc/restrict_to_dir(dir)
|
||||
switch(dir)
|
||||
if(NORTH)
|
||||
@@ -105,7 +108,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
zone = ending_angle - starting_angle
|
||||
else
|
||||
zone = 360 - starting_angle + ending_angle
|
||||
|
||||
|
||||
max_elements = round(zone / min_angle)
|
||||
var/paged = max_elements < choices.len
|
||||
if(elements.len < max_elements)
|
||||
@@ -172,7 +175,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
else
|
||||
E.pixel_y = py
|
||||
E.pixel_x = px
|
||||
|
||||
|
||||
//Visuals
|
||||
E.alpha = 255
|
||||
E.mouse_opacity = MOUSE_OPACITY_ICON
|
||||
@@ -192,7 +195,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
E.next_page = FALSE
|
||||
if(choices_icons[choice_id])
|
||||
E.add_overlay(choices_icons[choice_id])
|
||||
|
||||
|
||||
/datum/radial_menu/New()
|
||||
close_button = new
|
||||
close_button.parent = src
|
||||
@@ -230,7 +233,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
MA.layer = ABOVE_HUD_LAYER
|
||||
MA.appearance_flags |= RESET_TRANSFORM
|
||||
return MA
|
||||
|
||||
|
||||
|
||||
/datum/radial_menu/proc/next_page()
|
||||
if(pages > 1)
|
||||
@@ -268,7 +271,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
. = ..()
|
||||
|
||||
/*
|
||||
Presents radial menu to user anchored to anchor (or user if the anchor is currently in users screen)
|
||||
Presents radial menu to user anchored to anchor (or user if the anchor is currently in users screen)
|
||||
Choices should be a list where list keys are movables or text used for element names and return value
|
||||
and list values are movables/icons/images used for element icons
|
||||
*/
|
||||
@@ -297,4 +300,4 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
GLOB.radial_menus -= uniqueid
|
||||
return answer
|
||||
|
||||
#undef ANIM_SPEED
|
||||
#undef ANIM_SPEED
|
||||
|
||||
@@ -53,6 +53,7 @@ SUBSYSTEM_DEF(throwing)
|
||||
var/dist_y
|
||||
var/dx
|
||||
var/dy
|
||||
var/force = MOVE_FORCE_DEFAULT
|
||||
var/pure_diagonal
|
||||
var/diagonal_error
|
||||
var/datum/callback/callback
|
||||
|
||||
@@ -315,6 +315,17 @@ UI STUFF
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
|
||||
//Sends a message to the target safely. If the target left the server it won't throw a runtime. Also accepts lists of text
|
||||
/datum/controller/subsystem/tickets/proc/to_chat_safe(target, text)
|
||||
if(!target)
|
||||
return FALSE
|
||||
if(istype(text, /list))
|
||||
for(var/T in text)
|
||||
to_chat(target, T)
|
||||
else
|
||||
to_chat(target, text)
|
||||
return TRUE
|
||||
|
||||
/datum/controller/subsystem/tickets/Topic(href, href_list)
|
||||
|
||||
if(href_list["refresh"])
|
||||
@@ -345,14 +356,14 @@ UI STUFF
|
||||
var/indexNum = text2num(href_list["resolve"])
|
||||
if(SStickets.resolveTicket(indexNum))
|
||||
message_adminTicket("[usr.client] / ([usr]) resolved admin ticket number [indexNum]")
|
||||
to_chat(returnClient(indexNum), "<span class='adminticket'>Your admin ticket has now been resolved.</span>")
|
||||
to_chat_safe(returnClient(indexNum), "<span class='adminticket'>Your admin ticket has now been resolved.</span>")
|
||||
showUI(usr)
|
||||
|
||||
if(href_list["detailresolve"])
|
||||
var/indexNum = text2num(href_list["detailresolve"])
|
||||
if(SStickets.resolveTicket(indexNum))
|
||||
message_adminTicket("[usr.client] / ([usr]) resolved admin ticket number [indexNum]")
|
||||
to_chat(returnClient(indexNum), "<span class='adminticket'>Your admin ticket has now been resolved.</span>")
|
||||
to_chat_safe(returnClient(indexNum), "<span class='adminticket'>Your admin ticket has now been resolved.</span>")
|
||||
showDetailUI(usr, indexNum)
|
||||
|
||||
if(href_list["detailclose"])
|
||||
@@ -361,9 +372,11 @@ UI STUFF
|
||||
return
|
||||
if(SStickets.closeTicket(indexNum))
|
||||
message_adminTicket("[usr.client] / ([usr]) closed admin ticket number [indexNum]")
|
||||
to_chat(returnClient(indexNum), "<font color='red' size='4'><b>- AdminHelp Rejected! -</b></font>")
|
||||
to_chat(returnClient(indexNum), "<span class='boldmessage'>Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting. If you asked a question, please ensure it was clear what you were asking.</span>")
|
||||
to_chat(returnClient(indexNum), "<span class='adminticket'>Your ticket has now been closed.</span>")
|
||||
to_chat_safe(returnClient(indexNum), list(
|
||||
"<font color='red' size='4'><b>- AdminHelp Rejected! -</b></font>",
|
||||
"<span class='boldmessage'>Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting. If you asked a question, please ensure it was clear what you were asking.</span>",
|
||||
"<span class='adminticket'>Your ticket has now been closed.</span>"
|
||||
))
|
||||
showDetailUI(usr, indexNum)
|
||||
|
||||
if(href_list["detailreopen"])
|
||||
@@ -376,5 +389,5 @@ UI STUFF
|
||||
var/indexNum = text2num(href_list["assignadmin"])
|
||||
if(SStickets.assignAdminToTicket(usr.client, indexNum))
|
||||
message_adminTicket("[usr.client] / ([usr]) has taken ticket number [indexNum]")
|
||||
to_chat(returnClient(indexNum), "<span class='adminticket'>Your ticket is being handled by [usr.client].")
|
||||
to_chat_safe(returnClient(indexNum), "<span class='adminticket'>Your ticket is being handled by [usr.client].")
|
||||
showDetailUI(usr, indexNum)
|
||||
|
||||
+21
-4
@@ -44,12 +44,14 @@
|
||||
M.update_action_buttons()
|
||||
|
||||
/datum/action/proc/Remove(mob/M)
|
||||
owner = null
|
||||
if(!M)
|
||||
return
|
||||
if(M.client)
|
||||
M.client.screen -= button
|
||||
button.moved = FALSE //so the button appears in its normal position when given to another owner.
|
||||
M.actions -= src
|
||||
M.update_action_buttons()
|
||||
owner = null
|
||||
|
||||
/datum/action/proc/Trigger()
|
||||
if(!IsAvailable())
|
||||
@@ -102,20 +104,24 @@
|
||||
/datum/action/item_action
|
||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING|AB_CHECK_CONSCIOUS
|
||||
var/use_itemicon = TRUE
|
||||
/datum/action/item_action/New(Target)
|
||||
/datum/action/item_action/New(Target, custom_icon, custom_icon_state)
|
||||
..()
|
||||
var/obj/item/I = target
|
||||
I.actions += src
|
||||
if(custom_icon && custom_icon_state)
|
||||
use_itemicon = FALSE
|
||||
icon_icon = custom_icon
|
||||
button_icon_state = custom_icon_state
|
||||
|
||||
/datum/action/item_action/Destroy()
|
||||
var/obj/item/I = target
|
||||
I.actions -= src
|
||||
return ..()
|
||||
|
||||
/datum/action/item_action/Trigger()
|
||||
/datum/action/item_action/Trigger(attack_self = TRUE) //Maybe we don't want to click the thing itself
|
||||
if(!..())
|
||||
return 0
|
||||
if(target)
|
||||
if(target && attack_self)
|
||||
var/obj/item/I = target
|
||||
I.ui_action_click(owner, type)
|
||||
return 1
|
||||
@@ -313,6 +319,14 @@
|
||||
/datum/action/item_action/toggle_helmet
|
||||
name = "Toggle Helmet"
|
||||
|
||||
/datum/action/item_action/remove_tape
|
||||
name = "Remove Duct Tape"
|
||||
|
||||
/datum/action/item_action/remove_tape/Trigger(attack_self = FALSE)
|
||||
if(..())
|
||||
GET_COMPONENT_FROM(DT, /datum/component/ducttape, target)
|
||||
DT.remove_tape(target, usr)
|
||||
|
||||
/datum/action/item_action/toggle_jetpack
|
||||
name = "Toggle Jetpack"
|
||||
|
||||
@@ -443,6 +457,9 @@
|
||||
return 0
|
||||
var/obj/effect/proc_holder/spell/spell = target
|
||||
|
||||
if(spell.special_availability_check)
|
||||
return 1
|
||||
|
||||
if(owner)
|
||||
return spell.can_cast(owner)
|
||||
return 0
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
/datum/component/ducttape
|
||||
var/x_offset = 0
|
||||
var/y_offset = 0
|
||||
var/icon/tape_overlay = null
|
||||
|
||||
/datum/component/ducttape/Initialize(obj/item/I, mob/user, x, y)
|
||||
if(!istype(I)) //Something went wrong
|
||||
return
|
||||
x_offset = x
|
||||
y_offset = y
|
||||
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/add_tape_text)
|
||||
RegisterSignal(parent, COMSIG_OBJ_UPDATE_ICON, .proc/add_tape_overlay)
|
||||
RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/afterattack)
|
||||
RegisterSignal(parent, COMSIG_ITEM_PICKUP, .proc/pick_up)
|
||||
I.update_icon() //Do this first so the action button properly shows the icon
|
||||
var/datum/action/item_action/remove_tape/RT = new(I)
|
||||
if(I.loc == user)
|
||||
RT.Grant(user)
|
||||
|
||||
/datum/component/proc/add_tape_text(datum/source, mob/user)
|
||||
to_chat(user, "<span class='notice'>There's some sticky tape attached to [source].</span>")
|
||||
|
||||
/datum/component/ducttape/proc/add_tape_overlay(obj/item/O)
|
||||
tape_overlay = new('icons/obj/bureaucracy.dmi', "tape")
|
||||
tape_overlay.Shift(EAST, x_offset - 2)
|
||||
tape_overlay.Shift(NORTH, y_offset - 2)
|
||||
O.overlays += tape_overlay
|
||||
|
||||
/datum/component/ducttape/proc/remove_tape(obj/item/I, mob/user)
|
||||
to_chat(user, "<span class='notice'>You tear the tape off [I]!</span>")
|
||||
playsound(I, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
new /obj/item/trash/tapetrash(user.loc)
|
||||
I.update_icon()
|
||||
I.anchored = initial(I.anchored)
|
||||
for(var/datum/action/item_action/remove_tape/RT in I.actions)
|
||||
RT.Remove(user)
|
||||
RT.Destroy()
|
||||
I.overlays.Cut(tape_overlay)
|
||||
user.transfer_fingerprints_to(I)
|
||||
Destroy()
|
||||
|
||||
/datum/component/ducttape/proc/afterattack(obj/item/I, atom/target, mob/user, proximity, params)
|
||||
if(!proximity)
|
||||
return
|
||||
if(!isturf(target))
|
||||
return
|
||||
if(!user.unEquip(I))
|
||||
return
|
||||
var/turf/source_turf = get_turf(I)
|
||||
var/turf/target_turf = target
|
||||
var/list/clickparams = params2list(params)
|
||||
var/x_offset = text2num(clickparams["icon-x"]) - 16
|
||||
var/y_offset = text2num(clickparams["icon-y"]) - 16
|
||||
if(target_turf != get_turf(I)) //Trying to stick it on a wall, don't move it to the actual wall or you can move the item through it. Instead set the pixels as appropriate
|
||||
var/target_direction = get_dir(source_turf, target_turf)//The direction we clicked
|
||||
if(target_direction & EAST)
|
||||
x_offset += 32
|
||||
else if(target_direction & WEST)
|
||||
x_offset -= 32
|
||||
if(target_direction & NORTH)
|
||||
y_offset += 32
|
||||
else if(target_direction & SOUTH)
|
||||
y_offset -= 32
|
||||
to_chat(user, "<span class='notice'>You stick [I] to [target_turf].</span>")
|
||||
I.pixel_x = x_offset
|
||||
I.pixel_y = y_offset
|
||||
|
||||
/datum/component/ducttape/proc/pick_up(obj/item/I, mob/user)
|
||||
I.pixel_x = initial(I.pixel_x)
|
||||
I.pixel_y = initial(I.pixel_y)
|
||||
@@ -112,7 +112,7 @@
|
||||
else
|
||||
destturf = get_turf(destination)
|
||||
|
||||
if(!is_teleport_allowed(destturf.z))
|
||||
if(!is_teleport_allowed(destturf.z) && !ignore_area_flag)
|
||||
return 0
|
||||
// Only check the destination zlevel for is_teleport_allowed. Checking origin as well breaks ERT teleporters.
|
||||
|
||||
@@ -173,13 +173,14 @@
|
||||
|
||||
/datum/teleport/instant/science/setPrecision(aprecision)
|
||||
..()
|
||||
if(istype(teleatom, /obj/item/storage/backpack/holding))
|
||||
precision = rand(1,100)
|
||||
if(!is_admin_level(destination.z))
|
||||
if(istype(teleatom, /obj/item/storage/backpack/holding))
|
||||
precision = rand(1, 100)
|
||||
|
||||
var/list/bagholding = teleatom.search_contents_for(/obj/item/storage/backpack/holding)
|
||||
if(bagholding.len)
|
||||
precision = max(rand(1,100)*bagholding.len,100)
|
||||
if(istype(teleatom, /mob/living))
|
||||
var/mob/living/MM = teleatom
|
||||
to_chat(MM, "<span class='warning'>The bluespace interface on your bag of holding interferes with the teleport!</span>")
|
||||
var/list/bagholding = teleatom.search_contents_for(/obj/item/storage/backpack/holding)
|
||||
if(bagholding.len)
|
||||
precision = max(rand(1, 100)*bagholding.len, 100)
|
||||
if(istype(teleatom, /mob/living))
|
||||
var/mob/living/MM = teleatom
|
||||
to_chat(MM, "<span class='warning'>The bluespace interface on your bag of holding interferes with the teleport!</span>")
|
||||
return 1
|
||||
@@ -63,7 +63,7 @@
|
||||
var/obj/item/radio/R = H.l_ear
|
||||
if(istype(R))
|
||||
R.set_frequency(SYND_FREQ)
|
||||
|
||||
H.faction += "syndicate"
|
||||
|
||||
/datum/outfit/admin/syndicate_infiltrator
|
||||
name = "Syndicate Infiltrator"
|
||||
@@ -120,41 +120,6 @@
|
||||
return H.equip_syndicate_commando()
|
||||
|
||||
|
||||
/datum/outfit/admin/syndicate/officer
|
||||
name = "Syndicate Officer"
|
||||
|
||||
head = /obj/item/clothing/head/beret
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/havana
|
||||
belt = /obj/item/gun/projectile/automatic/pistol/deagle/camo
|
||||
l_ear = /obj/item/radio/headset/syndicate/alt
|
||||
l_pocket = /obj/item/pinpointer/advpinpointer
|
||||
r_pocket = null // stop them getting a radio uplink, they get an implant instead
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/engineer = 1,
|
||||
/obj/item/flashlight = 1,
|
||||
/obj/item/reagent_containers/food/pill/initropidril = 1,
|
||||
/obj/item/reagent_containers/food/snacks/syndidonkpocket = 1,
|
||||
/obj/item/ammo_box/magazine/m50 = 2,
|
||||
/obj/item/clothing/shoes/magboots/syndie/advance = 1,
|
||||
/obj/item/lighter/zippo/gonzofist = 1
|
||||
)
|
||||
implants = list(
|
||||
/obj/item/implant/dust
|
||||
)
|
||||
id_icon = "commander"
|
||||
id_access = "Syndicate Operative Leader"
|
||||
|
||||
/datum/outfit/admin/syndicate/officer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/implant/uplink/U = new /obj/item/implant/uplink(H)
|
||||
U.implant(H)
|
||||
U.hidden_uplink.uses = 500
|
||||
|
||||
|
||||
/datum/outfit/admin/syndicate/spy
|
||||
name = "Syndicate Spy"
|
||||
uniform = /obj/item/clothing/under/suit_jacket/really_black
|
||||
|
||||
@@ -100,6 +100,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
||||
var/action_icon = 'icons/mob/actions/actions.dmi'
|
||||
var/action_icon_state = "spell_default"
|
||||
var/action_background_icon_state = "bg_spell"
|
||||
var/special_availability_check = 0//Whether the spell needs to bypass the action button's IsAvailable()
|
||||
|
||||
var/sound = null //The sound the spell makes when it is cast
|
||||
|
||||
@@ -143,7 +144,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
||||
if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/wizard) && !istype(H.wear_suit, /obj/item/clothing/suit/space/eva/plasmaman/wizard))
|
||||
to_chat(user, "<span class='notice'>I don't feel strong enough without my robe.</span>")
|
||||
return 0
|
||||
if(!istype(H.shoes, /obj/item/clothing/shoes/sandal))
|
||||
if(!istype(H.shoes, /obj/item/clothing/shoes/sandal) && !istype(H.shoes, /obj/item/clothing/shoes/magboots/wizard))
|
||||
to_chat(user, "<span class='notice'>I don't feel strong enough without my sandals.</span>")
|
||||
return 0
|
||||
if(!istype(H.head, /obj/item/clothing/head/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/eva/plasmaman/wizard))
|
||||
@@ -172,7 +173,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
||||
switch(invocation_type)
|
||||
if("shout")
|
||||
if(!user.IsVocal())
|
||||
user.emote("makes frantic gestures!")
|
||||
user.custom_emote(1, "makes frantic gestures!")
|
||||
else
|
||||
if(prob(50))//Auto-mute? Fuck that noise
|
||||
user.say(invocation)
|
||||
@@ -458,11 +459,11 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
||||
var/clothcheck = locate(/obj/effect/proc_holder/spell/noclothes) in user.mob_spell_list
|
||||
var/clothcheck2 = user.mind && (locate(/obj/effect/proc_holder/spell/noclothes) in user.mind.spell_list)
|
||||
if(clothes_req && !clothcheck && !clothcheck2) //clothes check
|
||||
if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/wizard))
|
||||
if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/wizard) && !istype(H.wear_suit, /obj/item/clothing/suit/space/eva/plasmaman/wizard))
|
||||
return 0
|
||||
if(!istype(H.shoes, /obj/item/clothing/shoes/sandal))
|
||||
if(!istype(H.shoes, /obj/item/clothing/shoes/sandal) && !istype(H.shoes, /obj/item/clothing/shoes/magboots/wizard))
|
||||
return 0
|
||||
if(!istype(H.head, /obj/item/clothing/head/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/wizard))
|
||||
if(!istype(H.head, /obj/item/clothing/head/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/eva/plasmaman/wizard))
|
||||
return 0
|
||||
else
|
||||
if(clothes_req || human_req)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
cooldown_min = 30
|
||||
selection_type = "view"
|
||||
random_target = 1
|
||||
special_availability_check = 1
|
||||
var/start_time = 0
|
||||
var/ready = 0
|
||||
var/image/halo = null
|
||||
|
||||
@@ -3,16 +3,15 @@
|
||||
desc = "Summons a powerful shockwave around you that tears the appendix and limbs off of enemies."
|
||||
charge_max = 500
|
||||
clothes_req = 1
|
||||
invocation = "ARSE NATH!"
|
||||
invocation = "APPEN NATH!"
|
||||
invocation_type = "shout"
|
||||
max_targets = 0
|
||||
range = 7
|
||||
cooldown_min = 200
|
||||
selection_type = "view"
|
||||
action_icon_state = "superfart"
|
||||
action_icon_state = "lungpunch"
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/rathens/cast(list/targets, mob/user = usr)
|
||||
playsound(get_turf(user), 'sound/goonstation/effects/superfart.ogg', 25, 1)
|
||||
for(var/mob/living/carbon/human/H in targets)
|
||||
var/datum/effect_system/smoke_spread/s = new
|
||||
s.set_up(5, 0, H)
|
||||
|
||||
@@ -32,6 +32,43 @@
|
||||
amt_weakened = 3
|
||||
sound = 'sound/magic/MM_Hit.ogg'
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/projectile/honk_missile
|
||||
name = "Honk Missile"
|
||||
desc = "This spell fires several, slow moving, magic bikehorns at nearby targets."
|
||||
|
||||
school = "evocation"
|
||||
charge_max = 60
|
||||
clothes_req = 0
|
||||
invocation = "HONK GY AMA"
|
||||
invocation_type = "shout"
|
||||
range = 7
|
||||
cooldown_min = 60 //35 deciseconds reduction per rank
|
||||
|
||||
max_targets = 0
|
||||
|
||||
proj_icon = 'icons/obj/items.dmi'
|
||||
proj_icon_state = "bike_horn"
|
||||
proj_name = "A bike horn"
|
||||
proj_lingering = 1
|
||||
proj_type = "/obj/effect/proc_holder/spell/targeted/inflict_handler/honk_missile"
|
||||
|
||||
proj_lifespan = 20
|
||||
proj_step_delay = 5
|
||||
|
||||
proj_trail_icon = 'icons/obj/items.dmi'
|
||||
proj_trail = 1
|
||||
proj_trail_lifespan = 5
|
||||
proj_trail_icon_state = "bike_horn"
|
||||
|
||||
action_icon_state = "magicm"
|
||||
|
||||
sound = 'sound/items/bikehorn.ogg'
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/inflict_handler/honk_missile
|
||||
amt_weakened = 3
|
||||
sound = 'sound/items/bikehorn.ogg'
|
||||
|
||||
/obj/effect/proc_holder/spell/noclothes
|
||||
name = "No Clothes"
|
||||
desc = "This always-on spell allows you to cast magic without your garments."
|
||||
|
||||
@@ -934,7 +934,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
|
||||
|
||||
/datum/supply_packs/science/oil
|
||||
name = "Oil Tank Crate"
|
||||
contains = list(/obj/structure/reagent_dispensers/oil,
|
||||
contains = list(/obj/structure/reagent_dispensers/oil,
|
||||
/obj/item/reagent_containers/food/drinks/oilcan)
|
||||
cost = 10
|
||||
containertype = /obj/structure/largecrate
|
||||
@@ -1290,12 +1290,12 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
|
||||
|
||||
/datum/supply_packs/misc/lasertag
|
||||
name = "Laser Tag Crate"
|
||||
contains = list(/obj/item/gun/energy/laser/redtag,
|
||||
/obj/item/gun/energy/laser/redtag,
|
||||
/obj/item/gun/energy/laser/redtag,
|
||||
/obj/item/gun/energy/laser/bluetag,
|
||||
/obj/item/gun/energy/laser/bluetag,
|
||||
/obj/item/gun/energy/laser/bluetag,
|
||||
contains = list(/obj/item/gun/energy/laser/tag/red,
|
||||
/obj/item/gun/energy/laser/tag/red,
|
||||
/obj/item/gun/energy/laser/tag/red,
|
||||
/obj/item/gun/energy/laser/tag/blue,
|
||||
/obj/item/gun/energy/laser/tag/blue,
|
||||
/obj/item/gun/energy/laser/tag/blue,
|
||||
/obj/item/clothing/suit/redtag,
|
||||
/obj/item/clothing/suit/redtag,
|
||||
/obj/item/clothing/suit/redtag,
|
||||
@@ -1341,6 +1341,15 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
|
||||
cost = 15
|
||||
containername = "bureaucracy crate"
|
||||
|
||||
/datum/supply_packs/misc/tape
|
||||
name = "Sticky Tape Crate"
|
||||
contains = list(/obj/item/stack/tape_roll,
|
||||
/obj/item/stack/tape_roll,
|
||||
/obj/item/stack/tape_roll)
|
||||
cost = 10
|
||||
containername = "sticky tape crate"
|
||||
containertype = /obj/structure/closet/crate/tape
|
||||
|
||||
/datum/supply_packs/misc/toner
|
||||
name = "Toner Cartridges Crate"
|
||||
contains = list(/obj/item/toner,
|
||||
@@ -1711,6 +1720,14 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
|
||||
)
|
||||
containername = "hygiene station crate"
|
||||
|
||||
/datum/supply_packs/misc/snow_machine
|
||||
name = "Snow Machine Crate"
|
||||
cost = 20
|
||||
contains = list(
|
||||
/obj/machinery/snow_machine
|
||||
)
|
||||
special = TRUE
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////// Vending /////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
+94
-80
@@ -163,6 +163,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
/datum/uplink_item/jobspecific
|
||||
category = "Job Specific Tools"
|
||||
cant_discount = TRUE
|
||||
excludefrom = list(/datum/game_mode/nuclear) // Stops the job specific category appearing for nukies
|
||||
|
||||
//Clown
|
||||
/datum/uplink_item/jobspecific/clowngrenade
|
||||
@@ -530,15 +531,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
item = /obj/item/batterer
|
||||
cost = 5
|
||||
|
||||
/datum/uplink_item/dangerous/manhacks
|
||||
name = "Viscerator Delivery Grenade"
|
||||
desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred any non-operatives in the area."
|
||||
reference = "VDG"
|
||||
item = /obj/item/grenade/spawnergrenade/manhacks
|
||||
cost = 6
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
surplus = 35
|
||||
|
||||
/datum/uplink_item/ammo/bioterror
|
||||
name = "Box of Bioterror Syringes"
|
||||
desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor and broca system , making it impossible for them to move or speak while in their system."
|
||||
@@ -547,38 +539,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
cost = 5
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
|
||||
/datum/uplink_item/dangerous/saringrenades
|
||||
name = "Sarin Gas Grenades"
|
||||
desc = "A box of four (4) grenades filled with Sarin, a deadly neurotoxin. Use extreme caution when handling and be sure to vacate the premise after using; ensure communication is maintained with team to avoid accidental gassings."
|
||||
reference = "TGG"
|
||||
item = /obj/item/storage/box/syndie_kit/sarin
|
||||
cost = 12
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
surplus = 0
|
||||
|
||||
/datum/uplink_item/dangerous/atmosgrenades
|
||||
name = "Atmos Grenades"
|
||||
desc = "A box of two (2) grenades that wreak havoc with the atmosphere of the target area. Capable of engulfing a large area in lit plasma, or N2O. Deploy with extreme caution!"
|
||||
reference = "AGG"
|
||||
item = /obj/item/storage/box/syndie_kit/atmosgasgrenades
|
||||
cost = 11
|
||||
surplus = 0
|
||||
|
||||
/datum/uplink_item/dangerous/emp
|
||||
name = "EMP Grenades and Implanter Kit"
|
||||
desc = "A box that contains two EMP grenades and an EMP implant. Useful to disrupt communication, \
|
||||
security's energy weapons, and silicon lifeforms when you're in a tight spot."
|
||||
reference = "EMPK"
|
||||
item = /obj/item/storage/box/syndie_kit/emp
|
||||
cost = 2
|
||||
|
||||
/datum/uplink_item/dangerous/syndicate_minibomb
|
||||
name = "Syndicate Minibomb"
|
||||
desc = "The minibomb is a grenade with a five-second fuse."
|
||||
reference = "SMB"
|
||||
item = /obj/item/grenade/syndieminibomb
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/dangerous/gygax
|
||||
name = "Gygax Exosuit"
|
||||
desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent for hit-and-run style attacks. \
|
||||
@@ -882,13 +842,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
cost = 4
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
|
||||
/datum/uplink_item/stealthy_weapons/detomatix
|
||||
name = "Detomatix PDA Cartridge"
|
||||
desc = "When inserted into a personal digital assistant, this cartridge gives you five opportunities to detonate PDAs of crewmembers who have their message feature enabled. The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer. It has a chance to detonate your PDA."
|
||||
reference = "DEPC"
|
||||
item = /obj/item/cartridge/syndicate
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/stealthy_weapons/silencer
|
||||
name = "Universal Suppressor"
|
||||
desc = "Fitted for use on any small caliber weapon with a threaded barrel, this suppressor will silence the shots of the weapon for increased stealth and superior ambushing capability."
|
||||
@@ -897,14 +850,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
cost = 1
|
||||
surplus = 10
|
||||
|
||||
/datum/uplink_item/stealthy_weapons/pizza_bomb
|
||||
name = "Pizza Bomb"
|
||||
desc = "A pizza box with a bomb taped inside of it. The timer needs to be set by opening the box; afterwards, opening the box again will trigger the detonation."
|
||||
reference = "PB"
|
||||
item = /obj/item/pizza_bomb
|
||||
cost = 5
|
||||
surplus = 8
|
||||
|
||||
/datum/uplink_item/stealthy_weapons/dehy_carp
|
||||
name = "Dehydrated Space Carp"
|
||||
desc = "Just add water to make your very own hostile to everything space carp. It looks just like a plushie. The first person to squeeze it will be registered as its owner, who it will not attack. If no owner is registered, it'll just attack everyone."
|
||||
@@ -919,13 +864,105 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
item = /obj/item/clothing/glasses/hud/security/chameleon
|
||||
cost = 2
|
||||
|
||||
/datum/uplink_item/stealthy_weapons/chameleonflag
|
||||
// GRENADES AND EXPLOSIVES
|
||||
|
||||
/datum/uplink_item/explosives
|
||||
category = "Grenades and Explosives"
|
||||
|
||||
/datum/uplink_item/explosives/plastic_explosives
|
||||
name = "Composition C-4"
|
||||
desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls or connect an assembly to its wiring to make it remotely detonable. It has a modifiable timer with a minimum setting of 10 seconds."
|
||||
reference = "C4"
|
||||
item = /obj/item/grenade/plastic/c4
|
||||
cost = 1
|
||||
|
||||
/datum/uplink_item/explosives/breaching_charge
|
||||
name = "Composition X-4"
|
||||
desc = "X-4 is a shaped charge designed to be safe to the user while causing maximum damage to the occupants of the room beach breached. It has a modifiable timer with a minimum setting of 10 seconds."
|
||||
reference = "X4"
|
||||
item = /obj/item/grenade/plastic/x4
|
||||
cost = 2
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
|
||||
/datum/uplink_item/explosives/syndicate_bomb
|
||||
name = "Syndicate Bomb"
|
||||
desc = "The Syndicate Bomb has an adjustable timer with a minimum setting of 60 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \
|
||||
You can wrench the bomb down to prevent removal. The crew may attempt to defuse the bomb."
|
||||
reference = "SB"
|
||||
item = /obj/item/radio/beacon/syndicate/bomb
|
||||
cost = 11
|
||||
|
||||
/datum/uplink_item/explosives/syndicate_minibomb
|
||||
name = "Syndicate Minibomb"
|
||||
desc = "The minibomb is a grenade with a five-second fuse."
|
||||
reference = "SMB"
|
||||
item = /obj/item/grenade/syndieminibomb
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/explosives/detomatix
|
||||
name = "Detomatix PDA Cartridge"
|
||||
desc = "When inserted into a personal digital assistant, this cartridge gives you five opportunities to detonate PDAs of crewmembers who have their message feature enabled. The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer. It has a chance to detonate your PDA."
|
||||
reference = "DEPC"
|
||||
item = /obj/item/cartridge/syndicate
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/explosives/pizza_bomb
|
||||
name = "Pizza Bomb"
|
||||
desc = "A pizza box with a bomb taped inside of it. The timer needs to be set by opening the box; afterwards, opening the box again will trigger the detonation."
|
||||
reference = "PB"
|
||||
item = /obj/item/pizza_bomb
|
||||
cost = 5
|
||||
surplus = 8
|
||||
|
||||
/datum/uplink_item/explosives/chameleonflag
|
||||
name = "Chameleon Flag"
|
||||
desc = "A flag that can be disguised as any other known flag. There is a heat sensitive bomb loaded into the pole that will be detonated if the flag is lit on fire."
|
||||
reference = "CHFLAG"
|
||||
item = /obj/item/flag/chameleon
|
||||
cost = 7
|
||||
|
||||
/datum/uplink_item/explosives/grenadier
|
||||
name = "Grenadier's belt"
|
||||
desc = "A belt containing 25 lethally dangerous and destructive grenades."
|
||||
item = /obj/item/storage/belt/grenade/full
|
||||
cost = 30
|
||||
surplus = 0
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
|
||||
/datum/uplink_item/explosives/manhacks
|
||||
name = "Viscerator Delivery Grenade"
|
||||
desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred any non-operatives in the area."
|
||||
reference = "VDG"
|
||||
item = /obj/item/grenade/spawnergrenade/manhacks
|
||||
cost = 6
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
surplus = 35
|
||||
|
||||
/datum/uplink_item/explosives/saringrenades
|
||||
name = "Sarin Gas Grenades"
|
||||
desc = "A box of four (4) grenades filled with Sarin, a deadly neurotoxin. Use extreme caution when handling and be sure to vacate the premise after using; ensure communication is maintained with team to avoid accidental gassings."
|
||||
reference = "TGG"
|
||||
item = /obj/item/storage/box/syndie_kit/sarin
|
||||
cost = 12
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
surplus = 0
|
||||
|
||||
/datum/uplink_item/explosives/atmosgrenades
|
||||
name = "Atmos Grenades"
|
||||
desc = "A box of two (2) grenades that wreak havoc with the atmosphere of the target area. Capable of engulfing a large area in lit plasma, or N2O. Deploy with extreme caution!"
|
||||
reference = "AGG"
|
||||
item = /obj/item/storage/box/syndie_kit/atmosgasgrenades
|
||||
cost = 11
|
||||
surplus = 0
|
||||
|
||||
/datum/uplink_item/explosives/emp
|
||||
name = "EMP Grenades and Implanter Kit"
|
||||
desc = "A box that contains two EMP grenades and an EMP implant. Useful to disrupt communication, \
|
||||
security's energy weapons, and silicon lifeforms when you're in a tight spot."
|
||||
reference = "EMPK"
|
||||
item = /obj/item/storage/box/syndie_kit/emp
|
||||
cost = 2
|
||||
|
||||
// STEALTHY TOOLS
|
||||
|
||||
/datum/uplink_item/stealthy_tools
|
||||
@@ -1218,21 +1255,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
excludefrom = list()
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
|
||||
/datum/uplink_item/device_tools/plastic_explosives
|
||||
name = "Composition C-4"
|
||||
desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls or connect an assembly to its wiring to make it remotely detonable. It has a modifiable timer with a minimum setting of 10 seconds."
|
||||
reference = "C4"
|
||||
item = /obj/item/grenade/plastic/c4
|
||||
cost = 1
|
||||
|
||||
/datum/uplink_item/device_tools/breaching_charge
|
||||
name = "Composition X-4"
|
||||
desc = "X-4 is a shaped charge designed to be safe to the user while causing maximum damage to the occupants of the room beach breached. It has a modifiable timer with a minimum setting of 10 seconds."
|
||||
reference = "X4"
|
||||
item = /obj/item/grenade/plastic/x4
|
||||
cost = 2
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
|
||||
/datum/uplink_item/device_tools/powersink
|
||||
name = "Power Sink"
|
||||
desc = "When screwed to wiring attached to an electric grid, then activated, this large device places excessive load on the grid, causing a stationwide blackout. The sink cannot be carried because of its excessive size. Ordering this sends you a small beacon that will teleport the power sink to your location on activation."
|
||||
@@ -1260,14 +1282,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
excludefrom = list()
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
|
||||
/datum/uplink_item/device_tools/syndicate_bomb
|
||||
name = "Syndicate Bomb"
|
||||
desc = "The Syndicate Bomb has an adjustable timer with a minimum setting of 60 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \
|
||||
You can wrench the bomb down to prevent removal. The crew may attempt to defuse the bomb."
|
||||
reference = "SB"
|
||||
item = /obj/item/radio/beacon/syndicate/bomb
|
||||
cost = 11
|
||||
|
||||
/datum/uplink_item/device_tools/syndicate_detonator
|
||||
name = "Syndicate Detonator"
|
||||
desc = "The Syndicate Detonator is a companion device to the Syndicate Bomb. Simply press the included button and an encrypted radio frequency will instruct all live syndicate bombs to detonate. \
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
end_duration = 100
|
||||
end_message = "<span class='notice'>The air seems to be cooling off again.</span>"
|
||||
|
||||
var/pre_maint_all_access
|
||||
area_type = /area
|
||||
protected_areas = list(/area/maintenance, /area/turret_protected/ai_upload, /area/turret_protected/ai_upload_foyer,
|
||||
/area/turret_protected/ai, /area/storage/emergency, /area/storage/emergency2, /area/crew_quarters/sleep, /area/security/brig, /area/shuttle)
|
||||
@@ -26,7 +26,9 @@
|
||||
/datum/weather/rad_storm/telegraph()
|
||||
..()
|
||||
status_alarm(TRUE)
|
||||
make_maint_all_access()
|
||||
pre_maint_all_access = maint_all_access
|
||||
if(!maint_all_access)
|
||||
make_maint_all_access()
|
||||
|
||||
|
||||
/datum/weather/rad_storm/weather_act(mob/living/L)
|
||||
@@ -51,7 +53,8 @@
|
||||
return
|
||||
priority_announcement.Announce("The radiation threat has passed. Please return to your workplaces.", "Anomaly Alert")
|
||||
status_alarm(FALSE)
|
||||
revoke_maint_all_access()
|
||||
if(!pre_maint_all_access)
|
||||
revoke_maint_all_access()
|
||||
|
||||
/datum/weather/rad_storm/proc/status_alarm(active) //Makes the status displays show the radiation warning for those who missed the announcement.
|
||||
if(active)
|
||||
|
||||
@@ -530,7 +530,7 @@ var/list/ghostteleportlocs = list()
|
||||
//SYNDICATES
|
||||
|
||||
/area/syndicate_mothership
|
||||
name = "\improper Syndicate Mothership"
|
||||
name = "\improper Syndicate Forward Base"
|
||||
icon_state = "syndie-ship"
|
||||
requires_power = 0
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
var/detected_mech = FALSE
|
||||
var/detected_pod = FALSE
|
||||
var/detected_double_agent = FALSE
|
||||
var/mine_trigger_count = 0
|
||||
var/obj/machinery/computer/syndicate_depot/syndiecomms/comms_computer = null
|
||||
var/obj/structure/fusionreactor/reactor
|
||||
|
||||
@@ -81,8 +82,18 @@
|
||||
detected_mech = FALSE
|
||||
detected_pod = FALSE
|
||||
detected_double_agent = FALSE
|
||||
mine_trigger_count = 0
|
||||
updateicon()
|
||||
|
||||
if(!istype(reactor))
|
||||
for(var/obj/structure/fusionreactor/R in src)
|
||||
reactor = R
|
||||
R.has_overloaded = FALSE
|
||||
|
||||
for(var/obj/machinery/door/airlock/A in src)
|
||||
if(A.density && A.locked)
|
||||
spawn(0)
|
||||
A.unlock()
|
||||
|
||||
alert_log += "Alert level reset."
|
||||
|
||||
@@ -119,6 +130,12 @@
|
||||
if(on_peaceful)
|
||||
increase_alert("Vandals!")
|
||||
|
||||
/area/syndicate_depot/core/proc/mine_triggered(mob/living/M)
|
||||
if(mine_trigger_count)
|
||||
return TRUE
|
||||
mine_trigger_count++
|
||||
increase_alert("Intruder detected by sentry mine: [M]")
|
||||
|
||||
/area/syndicate_depot/core/proc/saw_mech(obj/mecha/E)
|
||||
if(detected_mech)
|
||||
return
|
||||
@@ -292,11 +309,11 @@
|
||||
for(var/obj/machinery/computer/syndicate_depot/C in src)
|
||||
C.security_lockout = FALSE
|
||||
|
||||
/area/syndicate_depot/core/proc/toggle_door_locks()
|
||||
/area/syndicate_depot/core/proc/set_emergency_access(var/openaccess)
|
||||
for(var/obj/machinery/door/airlock/A in src)
|
||||
A.emergency = !A.emergency
|
||||
if(A.locked)
|
||||
A.locked = !A.locked
|
||||
if(istype(A, /obj/machinery/door/airlock/hatch/syndicate/vault))
|
||||
continue
|
||||
A.emergency = !!openaccess
|
||||
A.update_icon()
|
||||
|
||||
/area/syndicate_depot/core/proc/toggle_falsewalls()
|
||||
@@ -315,9 +332,8 @@
|
||||
if(!M.ckey)
|
||||
continue
|
||||
var/turf/T = get_turf(M)
|
||||
if(T.loc != src)
|
||||
continue
|
||||
receivers |= M
|
||||
if(T && T.loc && T.loc == src)
|
||||
receivers |= M
|
||||
for(var/mob/R in receivers)
|
||||
to_chat(R, msg_text)
|
||||
R << sound('sound/misc/notice1.ogg')
|
||||
@@ -335,6 +351,8 @@
|
||||
if(!L.locked)
|
||||
L.locked = !L.locked
|
||||
L.update_icon()
|
||||
for(var/obj/machinery/door/airlock/hatch/syndicate/vault/A in src)
|
||||
A.lock()
|
||||
|
||||
/area/syndicate_depot/core/proc/shields_key_check()
|
||||
if(!shield_list.len)
|
||||
@@ -353,6 +371,8 @@
|
||||
if(L.locked)
|
||||
L.locked = !L.locked
|
||||
L.update_icon()
|
||||
for(var/obj/machinery/door/airlock/hatch/syndicate/vault/A in src)
|
||||
A.unlock()
|
||||
|
||||
/area/syndicate_depot/core/proc/despawn_guards()
|
||||
for(var/mob/thismob in list_getmobs(guard_list))
|
||||
@@ -363,7 +383,7 @@
|
||||
/area/syndicate_depot/core/proc/ghostlog(gmsg)
|
||||
if(istype(reactor))
|
||||
var/image/alert_overlay = image('icons/obj/flag.dmi', "syndiflag")
|
||||
notify_ghosts(gmsg, title = "Depot News", source = reactor, alert_overlay = alert_overlay, action = NOTIFY_JUMP)
|
||||
notify_ghosts(gmsg, title = "Depot News", source = reactor.loc, alert_overlay = alert_overlay, action = NOTIFY_JUMP)
|
||||
|
||||
/area/syndicate_depot/core/proc/declare_started()
|
||||
if(!run_started)
|
||||
|
||||
+2
-2
@@ -86,7 +86,7 @@
|
||||
if(opacity && isturf(loc))
|
||||
var/turf/T = loc
|
||||
T.has_opaque_atom = TRUE // No need to recalculate it in this case, it's guranteed to be on afterwards anyways.
|
||||
|
||||
|
||||
if(loc)
|
||||
loc.InitializedOn(src) // Used for poolcontroller / pool to improve performance greatly. However it also open up path to other usage of observer pattern on turfs.
|
||||
|
||||
@@ -324,7 +324,7 @@
|
||||
// Atoms that return TRUE prevent RPDs placing any kind of pipes on their turf.
|
||||
return FALSE
|
||||
|
||||
/atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked)
|
||||
/atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
|
||||
if(density && !has_gravity(AM)) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...).
|
||||
addtimer(CALLBACK(src, .proc/hitby_react, AM), 2)
|
||||
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
appearance_flags = TILE_BOUND
|
||||
var/last_move = null
|
||||
var/anchored = 0
|
||||
var/move_resist = MOVE_RESIST_DEFAULT
|
||||
var/move_force = MOVE_FORCE_DEFAULT
|
||||
var/pull_force = PULL_FORCE_DEFAULT
|
||||
// var/elevation = 2 - not used anywhere
|
||||
var/move_speed = 10
|
||||
var/l_move_time = 1
|
||||
@@ -13,6 +16,8 @@
|
||||
var/no_spin_thrown = 0
|
||||
var/moved_recently = 0
|
||||
var/mob/pulledby = null
|
||||
var/atom/movable/pulling
|
||||
var/canmove = 1
|
||||
|
||||
var/inertia_dir = 0
|
||||
var/atom/inertia_last_loc
|
||||
@@ -55,6 +60,70 @@
|
||||
pulledby = null
|
||||
return ..()
|
||||
|
||||
/atom/movable/proc/start_pulling(atom/movable/AM, state, force = move_force, supress_message = FALSE)
|
||||
if(QDELETED(AM))
|
||||
return FALSE
|
||||
if(!(AM.can_be_pulled(src, state, force)))
|
||||
return FALSE
|
||||
|
||||
// If we're pulling something then drop what we're currently pulling and pull this instead.
|
||||
if(pulling)
|
||||
if(state == 0)
|
||||
stop_pulling()
|
||||
return FALSE
|
||||
// Are we trying to pull something we are already pulling? Then enter grab cycle and end.
|
||||
if(AM == pulling)
|
||||
if(isliving(AM))
|
||||
var/mob/living/AMob = AM
|
||||
AMob.grabbedby(src)
|
||||
return TRUE
|
||||
stop_pulling()
|
||||
if(AM.pulledby)
|
||||
add_attack_logs(AM, AM.pulledby, "pulled from", ATKLOG_ALMOSTALL)
|
||||
AM.pulledby.stop_pulling() //an object can't be pulled by two mobs at once.
|
||||
pulling = AM
|
||||
AM.pulledby = src
|
||||
if(ismob(AM))
|
||||
var/mob/M = AM
|
||||
add_attack_logs(src, M, "passively grabbed", ATKLOG_ALMOSTALL)
|
||||
if(!supress_message)
|
||||
visible_message("<span class='warning'>[src] has grabbed [M] passively!</span>")
|
||||
return TRUE
|
||||
|
||||
/atom/movable/proc/stop_pulling()
|
||||
if(pulling)
|
||||
pulling.pulledby = null
|
||||
var/mob/living/ex_pulled = pulling
|
||||
pulling = null
|
||||
if(isliving(ex_pulled))
|
||||
var/mob/living/L = ex_pulled
|
||||
L.update_canmove()// mob gets up if it was lyng down in a chokehold
|
||||
|
||||
/atom/movable/proc/check_pulling()
|
||||
if(pulling)
|
||||
var/atom/movable/pullee = pulling
|
||||
if(pullee && get_dist(src, pullee) > 1)
|
||||
stop_pulling()
|
||||
return
|
||||
if(!isturf(loc))
|
||||
stop_pulling()
|
||||
return
|
||||
if(pullee && !isturf(pullee.loc) && pullee.loc != loc) //to be removed once all code that changes an object's loc uses forceMove().
|
||||
log_game("DEBUG:[src]'s pull on [pullee] wasn't broken despite [pullee] being in [pullee.loc]. Pull stopped manually.")
|
||||
stop_pulling()
|
||||
return
|
||||
if(pulling.anchored)
|
||||
stop_pulling()
|
||||
return
|
||||
|
||||
/atom/movable/proc/can_be_pulled(user, grab_state, force)
|
||||
if(src == user || !isturf(loc))
|
||||
return FALSE
|
||||
if(anchored || throwing)
|
||||
return FALSE
|
||||
if(force < (move_resist * MOVE_FORCE_PULL_RATIO))
|
||||
return FALSE
|
||||
return TRUE
|
||||
// Used in shuttle movement and AI eye stuff.
|
||||
// Primarily used to notify objects being moved by a shuttle/bluespace fuckup.
|
||||
/atom/movable/proc/setLoc(var/T, var/teleported=0)
|
||||
@@ -218,12 +287,12 @@
|
||||
if(!QDELETED(hit_atom))
|
||||
return hit_atom.hitby(src)
|
||||
|
||||
/atom/movable/hitby(atom/movable/AM, skipcatch, hitpush = 1, blocked)
|
||||
if(!anchored && hitpush)
|
||||
/atom/movable/hitby(atom/movable/AM, skipcatch, hitpush = 1, blocked, datum/thrownthing/throwingdatum)
|
||||
if(!anchored && hitpush && (!throwingdatum || (throwingdatum.force >= (move_resist * MOVE_FORCE_PUSH_RATIO))))
|
||||
step(src, AM.dir)
|
||||
..()
|
||||
|
||||
/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, var/datum/callback/callback)
|
||||
/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = INFINITY)
|
||||
if(!target || (flags & NODROP) || speed <= 0)
|
||||
return 0
|
||||
|
||||
@@ -330,6 +399,22 @@
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/atom/movable/proc/force_pushed(atom/movable/pusher, force = MOVE_FORCE_DEFAULT, direction)
|
||||
return FALSE
|
||||
|
||||
/atom/movable/proc/force_push(atom/movable/AM, force = move_force, direction, silent = FALSE)
|
||||
. = AM.force_pushed(src, force, direction)
|
||||
if(!silent && .)
|
||||
visible_message("<span class='warning'>[src] forcefully pushes against [AM]!</span>", "<span class='warning'>You forcefully push against [AM]!</span>")
|
||||
|
||||
/atom/movable/proc/move_crush(atom/movable/AM, force = move_force, direction, silent = FALSE)
|
||||
. = AM.move_crushed(src, force, direction)
|
||||
if(!silent && .)
|
||||
visible_message("<span class='danger'>[src] crushes past [AM]!</span>", "<span class='danger'>You crush [AM]!</span>")
|
||||
|
||||
/atom/movable/proc/move_crushed(atom/movable/pusher, force = MOVE_FORCE_DEFAULT, direction)
|
||||
return FALSE
|
||||
|
||||
/atom/movable/CanPass(atom/movable/mover, turf/target, height=1.5)
|
||||
if(buckled_mob == mover)
|
||||
return 1
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
message = replacetextEx(message,"bo","bjo")
|
||||
message = replacetextEx(message,"O",pick("Ö","Ø","O"))
|
||||
message = replacetextEx(message,"o",pick("ö","ø","o"))
|
||||
if(prob(30))
|
||||
if(prob(30) && !M.is_muzzled())
|
||||
message += " Bork[pick("",", bork",", bork, bork")]!"
|
||||
return message
|
||||
|
||||
@@ -182,18 +182,6 @@
|
||||
rearranged += cword
|
||||
return "[prefix][uppertext(jointext(rearranged," "))]!!"
|
||||
|
||||
// WAS: /datum/bioEffect/toxic_farts
|
||||
/datum/dna/gene/disability/toxic_farts
|
||||
name = "Toxic Farts"
|
||||
desc = "Causes the subject's digestion to create a significant amount of noxious gas."
|
||||
activation_message = "Your stomach grumbles unpleasantly."
|
||||
deactivation_message = "Your stomach stops acting up. Phew!"
|
||||
mutation = TOXIC_FARTS
|
||||
|
||||
/datum/dna/gene/disability/toxic_farts/New()
|
||||
..()
|
||||
block=TOXICFARTBLOCK
|
||||
|
||||
//////////////////
|
||||
// USELESS SHIT //
|
||||
//////////////////
|
||||
|
||||
@@ -615,54 +615,3 @@
|
||||
else if(prob(5) || M.mind.assigned_role=="Chaplain")
|
||||
to_chat(M, "<span class='warning'>You sense someone intruding upon your thoughts...</span>")
|
||||
return
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// WAS: /datum/bioEffect/superfart
|
||||
/datum/dna/gene/basic/grant_spell/superfart
|
||||
name = "High-Pressure Intestines"
|
||||
desc = "Vastly increases the gas capacity of the subject's digestive tract."
|
||||
activation_messages = list("You feel bloated and gassy.")
|
||||
deactivation_messages = list("You no longer feel gassy. What a relief!")
|
||||
instability = GENE_INSTABILITY_MINOR
|
||||
mutation = SUPER_FART
|
||||
spelltype = /obj/effect/proc_holder/spell/aoe_turf/superfart
|
||||
|
||||
/datum/dna/gene/basic/grant_spell/superfart/New()
|
||||
..()
|
||||
block = SUPERFARTBLOCK
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/superfart
|
||||
name = "Super Fart"
|
||||
desc = "Fart with the fury of 1000 burritos."
|
||||
panel = "Abilities"
|
||||
charge_max = 900
|
||||
invocation_type = "emote"
|
||||
range = 3
|
||||
clothes_req = 0
|
||||
selection_type = "view"
|
||||
action_icon_state = "superfart"
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/superfart/invocation(mob/user = usr)
|
||||
invocation = "<span class='warning'>[user] hunches down and grits [user.p_their()] teeth!</span>"
|
||||
invocation_emote_self = "<span class='warning'>You hunch down and grit your teeth!</span>"
|
||||
..(user)
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/superfart/cast(list/targets, mob/user)
|
||||
var/UT = get_turf(user)
|
||||
if(do_after(user, 30, target = user))
|
||||
var/fartsize = pick("tremendous","gigantic","colossal")
|
||||
playsound(UT, 'sound/goonstation/effects/superfart.ogg', 50, 0)
|
||||
user.visible_message("<span class='warning'><b>[user]</b> unleashes a [fartsize] fart!</span>", "<span class='warning'>You hear a [fartsize] fart.</span>")
|
||||
for(var/T in targets)
|
||||
for(var/mob/living/M in T)
|
||||
shake_camera(M, 10, 5)
|
||||
if(M == user)
|
||||
continue
|
||||
to_chat(M, "<span class='warning'>You are sent flying!</span>")
|
||||
M.Weaken(5)
|
||||
step_away(M, UT, 15)
|
||||
step_away(M, UT, 15)
|
||||
step_away(M, UT, 15)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You were interrupted and couldn't fart! Rude!</span>")
|
||||
|
||||
@@ -103,11 +103,13 @@
|
||||
..(M,connected,flags)
|
||||
M.pass_flags |= PASSTABLE
|
||||
M.resize = 0.8
|
||||
M.update_transform()
|
||||
|
||||
/datum/dna/gene/basic/midget/deactivate(var/mob/M, var/connected, var/flags)
|
||||
..()
|
||||
M.pass_flags &= ~PASSTABLE
|
||||
M.resize = 1.25
|
||||
M.update_transform()
|
||||
|
||||
// OLD HULK BEHAVIOR
|
||||
/datum/dna/gene/basic/hulk
|
||||
|
||||
@@ -36,3 +36,7 @@
|
||||
return
|
||||
if(DIZZY in M.mutations)
|
||||
M.Dizzy(300)
|
||||
|
||||
/datum/dna/gene/disability/dizzy/deactivate(mob/living/M, connected, flags)
|
||||
. = ..()
|
||||
M.SetDizzy(0)
|
||||
|
||||
@@ -11,7 +11,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
|
||||
name = "changeling"
|
||||
config_tag = "changeling"
|
||||
restricted_jobs = list("AI", "Cyborg")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer")
|
||||
protected_species = list("Machine")
|
||||
required_players = 15
|
||||
required_enemies = 1
|
||||
|
||||
@@ -39,7 +39,7 @@ var/global/list/all_cults = list()
|
||||
/datum/game_mode/cult
|
||||
name = "cult"
|
||||
config_tag = "cult"
|
||||
restricted_jobs = list("Chaplain","AI", "Cyborg", "Internal Affairs Agent", "Security Officer", "Warden", "Detective", "Security Pod Pilot", "Head of Security", "Captain", "Head of Personnel", "Blueshield", "Nanotrasen Representative", "Magistrate", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer")
|
||||
restricted_jobs = list("Chaplain","AI", "Cyborg", "Internal Affairs Agent", "Security Officer", "Warden", "Detective", "Security Pod Pilot", "Head of Security", "Captain", "Head of Personnel", "Blueshield", "Nanotrasen Representative", "Magistrate", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer")
|
||||
protected_jobs = list()
|
||||
required_players = 30
|
||||
required_enemies = 3
|
||||
|
||||
@@ -17,14 +17,23 @@
|
||||
cultist_commune(usr, input)
|
||||
return
|
||||
|
||||
|
||||
|
||||
/proc/cultist_commune(mob/living/user, message)
|
||||
if(!message)
|
||||
return
|
||||
user.whisper("O bidai nabora se[pick("'","`")]sma!")
|
||||
|
||||
if((user.disabilities & MUTE) || user.mind.miming) //Under vow of silence/mute?
|
||||
user.visible_message("[user] appears to whisper to themselves.","You begin to whisper to yourself.") //Make them do *something* abnormal.
|
||||
else
|
||||
user.whisper("O bidai nabora se[pick("'","`")]sma!") // Otherwise book club sayings.
|
||||
sleep(10)
|
||||
|
||||
if(!user)
|
||||
return
|
||||
user.whisper(message)
|
||||
|
||||
if(!((user.disabilities & MUTE) || user.mind.miming)) // If they aren't mute/miming, commence the whisperting
|
||||
user.whisper(message)
|
||||
var/my_message
|
||||
if(istype(user, /mob/living/simple_animal/slaughter/cult)) //Harbringers of the Slaughter
|
||||
my_message = "<span class='cultlarge'><b>Harbringer of the Slaughter:</b> [message]</span>"
|
||||
|
||||
@@ -311,7 +311,7 @@
|
||||
to_chat(S, "<span class='warning'>Destroying this machine while it is occupied would result in biological and sentient resources to be harmed. Aborting.</span>")
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
/mob/living/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
|
||||
S.DisperseTarget(src)
|
||||
|
||||
|
||||
@@ -161,8 +161,12 @@
|
||||
buckled = null
|
||||
cooldown = world.time + 30
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/proc/Communicate()
|
||||
var/input = stripped_input(src, "Please enter a message to tell your summoner.", "Guardian", "")
|
||||
/mob/living/simple_animal/hostile/guardian/proc/Communicate(message)
|
||||
var/input
|
||||
if(!message)
|
||||
input = stripped_input(src, "Please enter a message to tell your summoner.", "Guardian", "")
|
||||
else
|
||||
input = message
|
||||
if(!input) return
|
||||
|
||||
for(var/mob/M in GLOB.mob_list)
|
||||
@@ -173,6 +177,13 @@
|
||||
to_chat(M, "<span class='changeling'><i>Guardian Communication from <b>[src]</b> ([ghost_follow_link(src, ghost=M)]): [input]</i>")
|
||||
to_chat(src, "<span class='changeling'><i>[src]:</i> [input]</span>")
|
||||
|
||||
//override set to true if message should be passed through instead of going to host communication
|
||||
/mob/living/simple_animal/hostile/guardian/say(message, override = FALSE)
|
||||
if(adminseal || override)//if it's an admin-spawned guardian without a host it can still talk normally
|
||||
return ..(message)
|
||||
Communicate(message)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/proc/ToggleMode()
|
||||
to_chat(src, "<span class='danger'>You dont have another mode!</span>")
|
||||
|
||||
@@ -439,7 +450,7 @@
|
||||
<br>
|
||||
<b>Ranged</b>: Has two modes. Ranged: Extremely weak, highly spammable projectile attack. Scout: Can not attack, but can move through walls. Can lay surveillance snares in either mode.<br>
|
||||
<br>
|
||||
<b>Support</b>: Has two modes. Combat: Medium power attacks and damage resist. Healer: Attacks heal damage, but low damage resist and slow movemen. Can deploy a bluespace beacon and warp targets to it (including you) in either mode.<br>
|
||||
<b>Support</b>: Has two modes. Combat: Medium power attacks and damage resist. Healer: Attacks heal damage, but low damage resist and slow movement. Can deploy a bluespace beacon and warp targets to it (including you) in either mode.<br>
|
||||
<br>
|
||||
<b>Explosive</b>: High damage resist and medium power attack. Can turn any object into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered.<br>
|
||||
<br>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
if(length(battlecry) > 11)//no more then 11 letters in a battle cry.
|
||||
visible_message("<span class='danger'>[src] punches [target]!</span>")
|
||||
else
|
||||
say("[battlecry][battlecry][battlecry][battlecry][battlecry]")
|
||||
say("[battlecry][battlecry][battlecry][battlecry][battlecry]", TRUE)
|
||||
playsound(loc, attack_sound, 50, 1, 1)
|
||||
playsound(loc, attack_sound, 50, 1, 1)
|
||||
playsound(loc, attack_sound, 50, 1, 1)
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
wander = 0
|
||||
density = 0
|
||||
flying = 1
|
||||
anchored = 1
|
||||
move_resist = INFINITY
|
||||
mob_size = MOB_SIZE_TINY
|
||||
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
|
||||
speed = 1
|
||||
@@ -130,7 +130,7 @@
|
||||
else
|
||||
message_admins("Revenant was created but has no mind. Put a ghost inside, or a poll will be made in one minute.")
|
||||
addtimer(CALLBACK(src, .proc/setupOrDelete), 1 MINUTES)
|
||||
|
||||
|
||||
/mob/living/simple_animal/revenant/proc/setupOrDelete()
|
||||
if(mind)
|
||||
giveObjectivesandGoals()
|
||||
|
||||
@@ -154,7 +154,6 @@
|
||||
name = "odd blood"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "nothing"
|
||||
var/canmove = 1
|
||||
density = 0
|
||||
anchored = 1
|
||||
invisibility = 60
|
||||
|
||||
@@ -95,13 +95,11 @@
|
||||
name = "pile of viscera"
|
||||
desc = "A repulsive pile of guts and gore."
|
||||
|
||||
/mob/living/simple_animal/slaughter/death(gibbed)
|
||||
/mob/living/simple_animal/slaughter/Destroy()
|
||||
// Only execute the below if we successfully died
|
||||
. = ..()
|
||||
if(!.)
|
||||
return FALSE
|
||||
for(var/mob/living/M in consumed_mobs)
|
||||
release_consumed(M)
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_animal/slaughter/proc/release_consumed(mob/living/M)
|
||||
M.forceMove(get_turf(src))
|
||||
|
||||
@@ -242,9 +242,8 @@ proc/issyndicate(mob/living/M as mob)
|
||||
synd_mob.equip_or_collect(new /obj/item/clothing/gloves/combat(synd_mob), slot_gloves)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/card/id/syndicate(synd_mob), slot_wear_id)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/storage/backpack(synd_mob), slot_back)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/reagent_containers/food/pill/initropidril(synd_mob), slot_in_backpack)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/gun/projectile/automatic/pistol(synd_mob), slot_belt)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/storage/box/engineer(synd_mob.back), slot_in_backpack)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/storage/box/survival_syndi(synd_mob.back), slot_in_backpack)
|
||||
|
||||
var/obj/item/radio/uplink/U = new /obj/item/radio/uplink(synd_mob)
|
||||
U.hidden_uplink.uplink_owner="[synd_mob.key]"
|
||||
@@ -265,10 +264,21 @@ proc/issyndicate(mob/living/M as mob)
|
||||
switch(race)
|
||||
if("Vox" || "Vox Armalis")
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/syndicate(synd_mob), slot_wear_mask)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/tank/nitrogen(synd_mob), slot_l_hand)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/tank/emergency_oxygen/vox(synd_mob), slot_l_hand)
|
||||
synd_mob.internal = synd_mob.l_hand
|
||||
synd_mob.update_action_buttons_icon()
|
||||
|
||||
if("Plasmaman")
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/syndicate(synd_mob), slot_wear_mask)
|
||||
synd_mob.equip_to_slot(new /obj/item/clothing/suit/space/eva/plasmaman/nuclear(synd_mob), slot_wear_suit)
|
||||
synd_mob.equip_to_slot(new /obj/item/clothing/head/helmet/space/eva/plasmaman/nuclear(synd_mob), slot_head)
|
||||
synd_mob.equip_or_collect(new /obj/item/tank/plasma/plasmaman(synd_mob), slot_s_store)
|
||||
synd_mob.equip_or_collect(new /obj/item/plasmensuit_cartridge(synd_mob), slot_in_backpack)
|
||||
synd_mob.equip_or_collect(new /obj/item/plasmensuit_cartridge(synd_mob), slot_in_backpack)
|
||||
synd_mob.internal = synd_mob.get_item_by_slot(slot_s_store)
|
||||
synd_mob.update_action_buttons_icon()
|
||||
|
||||
synd_mob.rejuvenate() //fix any damage taken by naked vox/plasmamen/etc while round setups
|
||||
var/obj/item/implant/explosive/E = new/obj/item/implant/explosive(synd_mob)
|
||||
E.implant(synd_mob)
|
||||
synd_mob.faction |= "syndicate"
|
||||
|
||||
@@ -74,7 +74,6 @@
|
||||
CHAVBLOCK = getAssignedBlock("CHAV", numsToAssign)
|
||||
SWEDEBLOCK = getAssignedBlock("SWEDE", numsToAssign)
|
||||
SCRAMBLEBLOCK = getAssignedBlock("SCRAMBLE", numsToAssign)
|
||||
TOXICFARTBLOCK = getAssignedBlock("TOXICFART", numsToAssign, good=1)
|
||||
STRONGBLOCK = getAssignedBlock("STRONG", numsToAssign, good=1)
|
||||
HORNSBLOCK = getAssignedBlock("HORNS", numsToAssign)
|
||||
COMICBLOCK = getAssignedBlock("COMIC", numsToAssign)
|
||||
@@ -89,7 +88,6 @@
|
||||
JUMPBLOCK = getAssignedBlock("JUMP", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
IMMOLATEBLOCK = getAssignedBlock("IMMOLATE", numsToAssign)
|
||||
EMPATHBLOCK = getAssignedBlock("EMPATH", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
SUPERFARTBLOCK = getAssignedBlock("SUPERFART", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
POLYMORPHBLOCK = getAssignedBlock("POLYMORPH", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
|
||||
//
|
||||
|
||||
@@ -73,7 +73,7 @@ Made by Xhuis
|
||||
required_enemies = 2
|
||||
recommended_enemies = 2
|
||||
restricted_jobs = list("AI", "Cyborg")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer")
|
||||
|
||||
/datum/game_mode/shadowling/announce()
|
||||
to_chat(world, "<b>The current game mode is - Shadowling!</b>")
|
||||
|
||||
@@ -64,6 +64,9 @@
|
||||
/obj/effect/proc_holder/spell/aoe_turf/veil/proc/extinguishItem(var/obj/item/I) //WARNING NOT SUFFICIENT TO EXTINGUISH AN ITEM HELD BY A MOB
|
||||
if(istype(I, /obj/item/flashlight))
|
||||
var/obj/item/flashlight/F = I
|
||||
if(istype(F, /obj/item/flashlight/flare/glowstick))
|
||||
var/obj/item/flashlight/flare/glowstick/gstick = F
|
||||
gstick.fuel = 0
|
||||
if(F.on)
|
||||
if(is_type_in_list(I, blacklisted_lights))
|
||||
I.visible_message("<span class='danger'>[I] dims slightly before scattering the shadows around it.</span>")
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
name = "traitor"
|
||||
config_tag = "traitor"
|
||||
restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Internal Affairs Agent", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Internal Affairs Agent", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer")
|
||||
required_players = 0
|
||||
required_enemies = 1
|
||||
recommended_enemies = 4
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
name = "vampire"
|
||||
config_tag = "vampire"
|
||||
restricted_jobs = list("AI", "Cyborg")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Chaplain", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Chaplain", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer")
|
||||
protected_species = list("Machine")
|
||||
required_players = 15
|
||||
required_enemies = 1
|
||||
|
||||
@@ -134,12 +134,6 @@
|
||||
log_name = "RP"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/rathens
|
||||
name = "Rathen's Secret"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/rathens
|
||||
log_name = "RS"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/timestop
|
||||
name = "Time Stop"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/timestop
|
||||
@@ -359,7 +353,7 @@
|
||||
|
||||
/datum/spellbook_entry/item/armor
|
||||
name = "Mastercrafted Armor Set"
|
||||
desc = "An artefact suit of armor that allows you to cast spells while providing more protection against attacks and the void of space."
|
||||
desc = "An artefact suit of armor that allows you to cast spells while providing more protection against attacks and the void of space. Comes bundled with Boots of Gripping."
|
||||
item_path = /obj/item/clothing/suit/space/hardsuit/wizard
|
||||
log_name = "HS"
|
||||
category = "Defensive"
|
||||
@@ -367,7 +361,7 @@
|
||||
/datum/spellbook_entry/item/armor/Buy(var/mob/living/carbon/human/user,var/obj/item/spellbook/book)
|
||||
. = ..()
|
||||
if(.)
|
||||
new /obj/item/clothing/shoes/sandal(get_turf(user)) //In case they've lost them.
|
||||
new /obj/item/clothing/shoes/magboots/wizard(get_turf(user))
|
||||
new /obj/item/clothing/gloves/color/purple(get_turf(user))//To complete the outfit
|
||||
new /obj/item/clothing/head/helmet/space/hardsuit/wizard(get_turf(user))
|
||||
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
/var/const/access_syndicate = 150//General Syndicate Access
|
||||
/var/const/access_syndicate_leader = 151//Nuke Op Leader Access
|
||||
/var/const/access_vox = 152//Vox Access
|
||||
/var/const/access_syndicate_command = 153//Admin syndi officer
|
||||
|
||||
//Trade Stations
|
||||
var/const/access_trade_sol = 160
|
||||
@@ -234,6 +235,8 @@ var/const/access_trade_sol = 160
|
||||
return list(access_vox)
|
||||
if("Syndicate Commando")
|
||||
return list(access_syndicate, access_syndicate_leader)
|
||||
if("Syndicate Officer")
|
||||
return list(access_syndicate, access_syndicate_leader, access_syndicate_command)
|
||||
|
||||
/proc/get_all_accesses()
|
||||
return list(access_security, access_sec_doors, access_brig, access_armory, access_forensics_lockers, access_court,
|
||||
@@ -253,7 +256,7 @@ var/const/access_trade_sol = 160
|
||||
return list(access_cent_general, access_cent_living, access_cent_medical, access_cent_security, access_cent_storage, access_cent_shuttles, access_cent_telecomms, access_cent_teleporter, access_cent_specops, access_cent_specops_commander, access_cent_blackops, access_cent_thunder, access_cent_bridge, access_cent_commander)
|
||||
|
||||
/proc/get_all_syndicate_access()
|
||||
return list(access_syndicate, access_syndicate_leader, access_vox)
|
||||
return list(access_syndicate, access_syndicate_leader, access_vox, access_syndicate_command)
|
||||
|
||||
/proc/get_all_misc_access()
|
||||
return list(access_salvage_captain, access_trade_sol, access_crate_cash, access_away01)
|
||||
@@ -496,6 +499,8 @@ var/const/access_trade_sol = 160
|
||||
return "Syndicate Operative Leader"
|
||||
if(access_vox)
|
||||
return "Vox"
|
||||
if(access_syndicate_command)
|
||||
return "Syndicate Command"
|
||||
|
||||
/proc/get_all_jobs()
|
||||
var/list/all_jobs = list()
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
|
||||
var/admin_only = 0
|
||||
var/spawn_ert = 0
|
||||
var/syndicate_command = 0
|
||||
|
||||
var/outfit = null
|
||||
|
||||
@@ -168,8 +169,11 @@
|
||||
back = backpack //Department backpack
|
||||
|
||||
if(box)
|
||||
backpack_contents.Insert(1, box) // Box always takes a first slot in backpack
|
||||
backpack_contents[box] = 1
|
||||
var/spawnbox = box
|
||||
if(H.dna.species.speciesbox)
|
||||
spawnbox = H.dna.species.speciesbox
|
||||
backpack_contents.Insert(1, spawnbox) // Box always takes a first slot in backpack
|
||||
backpack_contents[spawnbox] = 1
|
||||
|
||||
if(allow_loadout && H.client && (H.client.prefs.gear && H.client.prefs.gear.len))
|
||||
for(var/gear in H.client.prefs.gear)
|
||||
|
||||
@@ -257,7 +257,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 0)
|
||||
suit = /obj/item/clothing/suit/storage/internalaffairs
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
l_ear = /obj/item/radio/headset/headset_sec/alt
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses/read_only
|
||||
id = /obj/item/card/id/security
|
||||
l_pocket = /obj/item/laser_pointer
|
||||
r_pocket = /obj/item/flash
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
feedback_set_details("religion_name","[new_religion]")
|
||||
|
||||
var/deity_name = "Space Jesus"
|
||||
var/new_deity = sanitize(copytext(input(H, "Who or what do you worship? Default is Space Jesus.", "Name change", deity_name),1,MAX_NAME_LEN))
|
||||
var/new_deity = sanitize(copytext(input(H, "Who or what do you worship? Default is Space Jesus.", "Name change", deity_name), 1, MAX_NAME_LEN))
|
||||
|
||||
if((length(new_deity) == 0) || (new_deity == "Space Jesus") )
|
||||
new_deity = deity_name
|
||||
@@ -91,9 +91,9 @@
|
||||
var/new_book_style = "Bible"
|
||||
|
||||
while(!accepted)
|
||||
if(!B)
|
||||
if(!B || !H.client)
|
||||
break // prevents possible runtime errors
|
||||
new_book_style = input(H,"Which bible style would you like?") in list("Bible", "Koran", "Scrapbook", "Creeper", "White Bible", "Holy Light", "PlainRed", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "the bible melts", "Necronomicon", "Greentext")
|
||||
new_book_style = input(H, "Which bible style would you like?") in list("Bible", "Koran", "Scrapbook", "Creeper", "White Bible", "Holy Light", "PlainRed", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "the bible melts", "Necronomicon", "Greentext")
|
||||
switch(new_book_style)
|
||||
if("Koran")
|
||||
B.icon_state = "koran"
|
||||
@@ -153,7 +153,9 @@
|
||||
|
||||
H.update_inv_l_hand() // so that it updates the bible's item_state in his hand
|
||||
|
||||
switch(input(H,"Look at your bible - is this what you want?") in list("Yes","No"))
|
||||
if(!B || !H.client)
|
||||
break // prevents possible runtime errors
|
||||
switch(input(H, "Look at your bible - is this what you want?") in list("Yes", "No"))
|
||||
if("Yes")
|
||||
accepted = 1
|
||||
if("No")
|
||||
@@ -166,7 +168,7 @@
|
||||
ticker.Bible_item_state = B.item_state
|
||||
ticker.Bible_name = B.name
|
||||
ticker.Bible_deity_name = B.deity_name
|
||||
feedback_set_details("religion_deity","[new_deity]")
|
||||
feedback_set_details("religion_book","[new_book_style]")
|
||||
feedback_set_details("religion_deity", "[new_deity]")
|
||||
feedback_set_details("religion_book", "[new_book_style]")
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
/datum/job/syndicateofficer
|
||||
title = "Syndicate Officer"
|
||||
flag = SYNDICATE
|
||||
department_flag = SYNDICATE
|
||||
total_positions = 5
|
||||
spawn_positions = 5
|
||||
supervisors = "the admins"
|
||||
selection_color = "#ff0000"
|
||||
access = list()
|
||||
minimal_access = list()
|
||||
admin_only = 1
|
||||
syndicate_command = 1
|
||||
outfit = /datum/outfit/job/syndicateofficer
|
||||
|
||||
/datum/job/syndicateofficer/get_access()
|
||||
return get_syndicate_access(title)
|
||||
|
||||
/datum/outfit/job/syndicateofficer
|
||||
name = "Syndicate Officer"
|
||||
jobtype = /datum/job/syndicateofficer
|
||||
|
||||
uniform = /obj/item/clothing/under/syndicate
|
||||
back = /obj/item/storage/backpack
|
||||
head = /obj/item/clothing/head/beret
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/havana
|
||||
belt = /obj/item/gun/projectile/automatic/pistol/deagle/camo
|
||||
l_ear = /obj/item/radio/headset/syndicate/alt/syndteam
|
||||
pda = /obj/item/pinpointer/advpinpointer
|
||||
id = /obj/item/card/id/syndicate/command
|
||||
box = /obj/item/storage/box/engineer
|
||||
backpack_contents = list(
|
||||
/obj/item/flashlight = 1,
|
||||
/obj/item/reagent_containers/food/pill/initropidril = 1,
|
||||
/obj/item/reagent_containers/food/snacks/syndidonkpocket = 1,
|
||||
/obj/item/ammo_box/magazine/m50 = 2,
|
||||
/obj/item/clothing/shoes/magboots/syndie/advance = 1,
|
||||
/obj/item/lighter/zippo/gonzofist = 1,
|
||||
/obj/item/storage/box/matches = 1
|
||||
)
|
||||
implants = list(
|
||||
/obj/item/implant/dust
|
||||
)
|
||||
|
||||
/datum/outfit/job/syndicateofficer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/implant/uplink/U = new /obj/item/implant/uplink(H)
|
||||
U.implant(H)
|
||||
U.hidden_uplink.uses = 500
|
||||
H.faction += "syndicate"
|
||||
var/datum/atom_hud/antag/opshud = huds[ANTAG_HUD_OPS]
|
||||
opshud.join_hud(H.mind.current)
|
||||
set_antag_hud(H.mind.current, "hudoperative")
|
||||
H.regenerate_icons()
|
||||
@@ -12,6 +12,7 @@ var/const/ATMOSTECH =(1<<7)
|
||||
var/const/AI =(1<<8)
|
||||
var/const/CYBORG =(1<<9)
|
||||
var/const/CENTCOM =(1<<10)
|
||||
var/const/SYNDICATE =(1<<11)
|
||||
|
||||
var/const/MEDSCI =(1<<1)
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
var/area_bypass = FALSE
|
||||
var/obj/item/radio/beacon/Beacon
|
||||
var/enabled = TRUE
|
||||
var/cc_beacon = FALSE //can be teleported to even if on zlevel2
|
||||
|
||||
/obj/machinery/bluespace_beacon/New()
|
||||
..()
|
||||
@@ -24,6 +25,7 @@
|
||||
Beacon.loc = T
|
||||
Beacon.syndicate = syndicate
|
||||
Beacon.area_bypass = area_bypass
|
||||
Beacon.cc_beacon = cc_beacon
|
||||
hide(T.intact)
|
||||
|
||||
/obj/machinery/bluespace_beacon/proc/destroy_beacon()
|
||||
@@ -78,3 +80,10 @@
|
||||
if(mycomputer)
|
||||
mycomputer.mybeacon = null
|
||||
return ..()
|
||||
|
||||
/obj/machinery/bluespace_beacon/syndicate/infiltrator //beacon guaranteed offline at roundstart for infiltrator base
|
||||
cc_beacon = TRUE
|
||||
|
||||
/obj/machinery/bluespace_beacon/syndicate/infiltrator/New()
|
||||
..()
|
||||
enabled = FALSE
|
||||
@@ -146,6 +146,7 @@
|
||||
|
||||
if(href_list["remove_tank"])
|
||||
if(holding)
|
||||
on = FALSE
|
||||
holding.loc = loc
|
||||
holding = null
|
||||
update_icon()
|
||||
|
||||
@@ -998,7 +998,7 @@
|
||||
to_chat(user, "<span class='warning'>You flip the switch on the underside of [src].</span>")
|
||||
active = 1
|
||||
visible_message("<span class='notice'>[src] softly beeps and whirs to life!</span>")
|
||||
playsound(src.loc, 'sound/machines/defib_SaftyOn.ogg', 25, 1)
|
||||
playsound(src.loc, 'sound/machines/defib_saftyOn.ogg', 25, 1)
|
||||
atom_say("This is ship ID #[rand(1,1000)] to Orion Port Authority. We're coming in for landing, over.")
|
||||
sleep(20)
|
||||
visible_message("<span class='warning'>[src] begins to vibrate...</span>")
|
||||
|
||||
@@ -4,10 +4,30 @@
|
||||
name = "computer frame"
|
||||
icon = 'icons/obj/stock_parts.dmi'
|
||||
icon_state = "0"
|
||||
max_integrity = 100
|
||||
var/state = 0
|
||||
var/obj/item/circuitboard/circuit = null
|
||||
var/base_mineral = /obj/item/stack/sheet/metal
|
||||
// weight = 1.0E8
|
||||
|
||||
/obj/structure/computerframe/deconstruct(disassembled = TRUE)
|
||||
drop_computer_parts()
|
||||
return ..() // will qdel the frame
|
||||
|
||||
/obj/structure/computerframe/obj_break(damage_flag)
|
||||
deconstruct()
|
||||
|
||||
/obj/structure/computerframe/proc/drop_computer_parts()
|
||||
new base_mineral(loc, 5)
|
||||
if(circuit)
|
||||
circuit.forceMove(loc)
|
||||
circuit = null
|
||||
if(state >= 3)
|
||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc )
|
||||
A.amount = 5
|
||||
if(state >= 4)
|
||||
new /obj/item/stack/sheet/glass(loc, 2)
|
||||
|
||||
/obj/item/circuitboard
|
||||
density = 0
|
||||
anchored = 0
|
||||
@@ -420,8 +440,7 @@
|
||||
if(do_after(user, 20 * WT.toolspeed, target = src))
|
||||
if(!src || !WT.isOn()) return
|
||||
to_chat(user, "<span class='notice'>You deconstruct the frame.</span>")
|
||||
new /obj/item/stack/sheet/metal(loc, 5)
|
||||
qdel(src)
|
||||
deconstruct(TRUE)
|
||||
if(1)
|
||||
if(istype(P, /obj/item/wrench))
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
@@ -525,6 +544,7 @@
|
||||
/obj/structure/computerframe/HONKputer
|
||||
name = "Bananium Computer-frame"
|
||||
icon = 'icons/obj/machines/HONKputer.dmi'
|
||||
base_mineral = /obj/item/stack/sheet/mineral/bananium
|
||||
|
||||
/obj/structure/computerframe/HONKputer/attackby(obj/item/P as obj, mob/user as mob, params)
|
||||
switch(state)
|
||||
@@ -544,8 +564,7 @@
|
||||
if(do_after(user, 20 * WT.toolspeed, target = src))
|
||||
if(!src || !WT.isOn()) return
|
||||
to_chat(user, "<span class='notice'>You deconstruct the frame.</span>")
|
||||
new /obj/item/stack/sheet/mineral/bananium(loc, 5)
|
||||
qdel(src)
|
||||
deconstruct(TRUE)
|
||||
if(1)
|
||||
if(istype(P, /obj/item/wrench))
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
|
||||
@@ -24,7 +24,8 @@ var/time_last_changed_position = 0
|
||||
var/list/blacklisted_full = list(
|
||||
/datum/job/ntnavyofficer,
|
||||
/datum/job/ntspecops,
|
||||
/datum/job/civilian
|
||||
/datum/job/civilian,
|
||||
/datum/job/syndicateofficer
|
||||
)
|
||||
// Jobs that appear in the list, and you can prioritize, but not open/close slots for
|
||||
var/list/blacklisted_partial = list(
|
||||
|
||||
@@ -125,6 +125,8 @@
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/doors
|
||||
name = "depot door control computer"
|
||||
req_access = list()
|
||||
var/pub_access = FALSE
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/doors/get_menu(mob/user)
|
||||
return {"<B>Syndicate Depot Door Control Computer</B><HR>
|
||||
@@ -136,8 +138,13 @@
|
||||
if(..())
|
||||
return
|
||||
if(depotarea)
|
||||
depotarea.toggle_door_locks(src)
|
||||
to_chat(user, "<span class='notice'>Door locks toggled.</span>")
|
||||
pub_access = !pub_access
|
||||
if(pub_access)
|
||||
depotarea.set_emergency_access(TRUE)
|
||||
to_chat(user, "<span class='notice'>Emergency Access enabled.</span>")
|
||||
else
|
||||
depotarea.set_emergency_access(FALSE)
|
||||
to_chat(user, "<span class='notice'>Emergency Access disabled.</span>")
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/doors/secondary(mob/user, subcommand)
|
||||
@@ -359,7 +366,6 @@
|
||||
. = ..()
|
||||
spawn(10)
|
||||
findbeacon()
|
||||
choosetarget()
|
||||
update_portal()
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/teleporter/Destroy()
|
||||
@@ -399,6 +405,25 @@
|
||||
else
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/teleporter/targeted/choosetarget()
|
||||
var/list/L = list()
|
||||
var/list/areaindex = list()
|
||||
|
||||
for(var/obj/item/radio/beacon/R in GLOB.beacons)
|
||||
var/turf/T = get_turf(R)
|
||||
if(!T)
|
||||
continue
|
||||
if(!is_teleport_allowed(T.z))
|
||||
continue
|
||||
var/tmpname = T.loc.name
|
||||
if(areaindex[tmpname])
|
||||
tmpname = "[tmpname] ([++areaindex[tmpname]])"
|
||||
else
|
||||
areaindex[tmpname] = 1
|
||||
L[tmpname] = R
|
||||
var/desc = input("Please select a location to lock in.", "Syndicate Teleporter") in L
|
||||
return(L[desc])
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/teleporter/proc/update_portal()
|
||||
if(portal_enabled && !myportal)
|
||||
var/turf/tele_target = choosetarget()
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
density = 1
|
||||
anchored = 1
|
||||
use_power = NO_POWER_USE
|
||||
max_integrity = 100
|
||||
var/obj/item/circuitboard/circuit = null
|
||||
var/list/components = null
|
||||
var/list/req_components = null
|
||||
@@ -15,6 +16,19 @@
|
||||
var/list/connected_parts = list()
|
||||
var/pattern_idx=0
|
||||
|
||||
/obj/machinery/constructable_frame/deconstruct(disassembled = TRUE)
|
||||
new /obj/item/stack/sheet/metal(src.loc, 5)
|
||||
if(state >= 3)
|
||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil(loc)
|
||||
A.amount = 5
|
||||
if(circuit)
|
||||
circuit.forceMove(loc)
|
||||
circuit = null
|
||||
return ..()
|
||||
|
||||
/obj/machinery/constructable_frame/obj_break(damage_flag)
|
||||
deconstruct()
|
||||
|
||||
// unfortunately, we have to instance the objects really quickly to get the names
|
||||
// fortunately, this is only called once when the board is added and the items are immediately GC'd
|
||||
// and none of the parts do much in their constructors
|
||||
@@ -89,8 +103,7 @@
|
||||
if(istype(P, /obj/item/wrench))
|
||||
playsound(src.loc, P.usesound, 75, 1)
|
||||
to_chat(user, "<span class='notice'>You dismantle the frame.</span>")
|
||||
new /obj/item/stack/sheet/metal(src.loc, 5)
|
||||
qdel(src)
|
||||
deconstruct(TRUE)
|
||||
if(2)
|
||||
if(istype(P, /obj/item/circuitboard))
|
||||
var/obj/item/circuitboard/B = P
|
||||
@@ -317,6 +330,16 @@ to destroy them and players will be able to make replacements.
|
||||
name = "circuit board (Freezer)"
|
||||
to_chat(user, "<span class='notice'>You set the board to cooling.</span>")
|
||||
|
||||
/obj/item/circuitboard/snow_machine
|
||||
name = "circuit board (snow machine)"
|
||||
build_path = /obj/machinery/snow_machine
|
||||
board_type = "machine"
|
||||
origin_tech = "programming=2;materials=2"
|
||||
frame_desc = "Requires 1 Matter Bin and 1 Micro Laser."
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1)
|
||||
|
||||
/obj/item/circuitboard/biogenerator
|
||||
name = "circuit board (Biogenerator)"
|
||||
build_path = /obj/machinery/biogenerator
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
selection = available[selected]
|
||||
updateUsrDialog()
|
||||
if("horn")
|
||||
deejay('sound/items/airhorn2.ogg')
|
||||
deejay('sound/items/Airhorn2.ogg')
|
||||
if("alert")
|
||||
deejay('sound/misc/notice1.ogg')
|
||||
if("siren")
|
||||
@@ -462,7 +462,7 @@
|
||||
if(!(M in rangers))
|
||||
rangers[M] = TRUE
|
||||
M.playsound_local(get_turf(M), null, 100, channel = CHANNEL_JUKEBOX, S = song_played)
|
||||
if(prob(5+(allowed(M) * 4)) && M.canmove)
|
||||
if(prob(5+(allowed(M) * 4)) && M.canmove && isliving(M))
|
||||
dance(M)
|
||||
for(var/mob/L in rangers)
|
||||
if(get_dist(src, L) > 10)
|
||||
|
||||
@@ -43,6 +43,7 @@ var/list/airlock_overlays = list()
|
||||
name = "airlock"
|
||||
icon = 'icons/obj/doors/airlocks/station/public.dmi'
|
||||
icon_state = "closed"
|
||||
anchored = 1
|
||||
max_integrity = 300
|
||||
integrity_failure = 70
|
||||
damage_deflection = AIRLOCK_DAMAGE_DEFLECTION_N
|
||||
|
||||
@@ -333,6 +333,17 @@
|
||||
name = "syndicate hatch"
|
||||
req_access_txt = "150"
|
||||
|
||||
/obj/machinery/door/airlock/hatch/syndicate/command
|
||||
name = "Command Center"
|
||||
req_access_txt = "153"
|
||||
explosion_block = 2
|
||||
normal_integrity = 1000
|
||||
security_level = 6
|
||||
|
||||
/obj/machinery/door/airlock/hatch/syndicate/command/emag_act(mob/user)
|
||||
to_chat(user, "<span class='notice'>The electronic systems in this door are far too advanced for your primitive hacking peripherals.</span>")
|
||||
return
|
||||
|
||||
/obj/machinery/door/airlock/hatch/syndicate/vault
|
||||
name = "syndicate vault hatch"
|
||||
req_access_txt = "151"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/machinery/door
|
||||
name = "door"
|
||||
desc = "It opens and closes."
|
||||
icon = 'icons/obj/doors/Doorint.dmi'
|
||||
icon = 'icons/obj/doors/doorint.dmi'
|
||||
icon_state = "door1"
|
||||
anchored = TRUE
|
||||
opacity = 1
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
else if(glass)
|
||||
user.visible_message("<span class='warning'>[user] bangs on \the [src].</span>",
|
||||
"<span class='warning'>You bang on \the [src].</span>")
|
||||
playsound(get_turf(src), 'sound/effects/Glassknock.ogg', 10, 1)
|
||||
playsound(get_turf(src), 'sound/effects/glassknock.ogg', 10, 1)
|
||||
|
||||
/obj/machinery/door/firedoor/attackby(obj/item/C, mob/user, params)
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -19,6 +19,15 @@
|
||||
density = FALSE
|
||||
opacity = 0
|
||||
|
||||
/obj/machinery/door/poddoor/impassable
|
||||
name = "reinforced blast door"
|
||||
desc = "A heavy duty blast door that opens mechanically. Looks even tougher than usual."
|
||||
resistance_flags = INDESTRUCTIBLE
|
||||
|
||||
/obj/machinery/door/poddoor/impassable/emag_act(mob/user)
|
||||
to_chat(user, "<span class='notice'>The electronic systems in this door are far too advanced for your primitive hacking peripherals.</span>")
|
||||
return
|
||||
|
||||
/obj/machinery/door/poddoor/Bumped(atom/AM)
|
||||
if(density)
|
||||
return
|
||||
|
||||
@@ -9,6 +9,9 @@ var/list/doppler_arrays = list()
|
||||
anchored = 1
|
||||
atom_say_verb = "states coldly"
|
||||
var/list/logged_explosions = list()
|
||||
var/explosion_target
|
||||
var/datum/tech/toxins/toxins_tech
|
||||
var/max_toxins_tech = 7
|
||||
|
||||
/datum/explosion_log
|
||||
var/logged_time
|
||||
@@ -26,6 +29,8 @@ var/list/doppler_arrays = list()
|
||||
/obj/machinery/doppler_array/New()
|
||||
..()
|
||||
doppler_arrays += src
|
||||
explosion_target = rand(8, 20)
|
||||
toxins_tech = new /datum/tech/toxins(src)
|
||||
|
||||
/obj/machinery/doppler_array/Destroy()
|
||||
doppler_arrays -= src
|
||||
@@ -46,6 +51,10 @@ var/list/doppler_arrays = list()
|
||||
power_change()
|
||||
to_chat(user, "<span class='notice'>You unfasten [src].</span>")
|
||||
playsound(loc, I.usesound, 50, 1)
|
||||
if(istype(I, /obj/item/disk/tech_disk))
|
||||
var/obj/item/disk/tech_disk/disk = I
|
||||
disk.load_tech(toxins_tech)
|
||||
to_chat(user, "<span class='notice'>You swipe the disk into [src].</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -142,6 +151,15 @@ var/list/doppler_arrays = list()
|
||||
messages += "Theoretical: Epicenter radius: [orig_dev_range]. Outer radius: [orig_heavy_range]. Shockwave radius: [orig_light_range]."
|
||||
logged_explosions.Insert(1, new /datum/explosion_log(station_time_timestamp(), "[x0],[y0]", "[devastation_range], [heavy_impact_range], [light_impact_range]", capped ? "[orig_dev_range], [orig_heavy_range], [orig_light_range]" : "n/a")) //Newer logs appear first
|
||||
messages += "Event successfully logged in internal database."
|
||||
var/miss_by = abs(explosion_target - orig_light_range)
|
||||
var/tmp_tech = max_toxins_tech - miss_by
|
||||
if(!miss_by)
|
||||
messages += "Explosion size matches target."
|
||||
else
|
||||
messages += "Target ([explosion_target]) missed by : [miss_by]."
|
||||
if(tmp_tech > toxins_tech.level)
|
||||
toxins_tech.level = tmp_tech
|
||||
messages += "Toxins technology level upgraded to [toxins_tech.level]. Swipe a technology disk to save data."
|
||||
for(var/message in messages)
|
||||
atom_say(message)
|
||||
|
||||
@@ -174,6 +192,8 @@ var/list/doppler_arrays = list()
|
||||
"actual_size_message" = E.actual_size_message,
|
||||
"theoretical_size_message" = E.theoretical_size_message,
|
||||
"unique_datum_id" = E.UID()))
|
||||
data["explosion_target"] = explosion_target
|
||||
data["toxins_tech"] = toxins_tech.level
|
||||
data["explosion_data"] = explosion_data
|
||||
data["printing"] = active_timers
|
||||
return data
|
||||
|
||||
@@ -206,8 +206,9 @@ var/list/holopads = list()
|
||||
if(A)
|
||||
LAZYADD(callnames[A], I)
|
||||
callnames -= get_area(src)
|
||||
var/list/sorted_callnames = sortAtom(callnames)
|
||||
dialling_input = TRUE
|
||||
var/result = input(usr, "Choose an area to call", "Holocall") as null|anything in callnames
|
||||
var/result = input(usr, "Choose an area to call", "Holocall") as null|anything in sorted_callnames
|
||||
dialling_input = FALSE
|
||||
if(QDELETED(usr) || !result || outgoing_call)
|
||||
return
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
var/code = 0 // frequency code, they should be different unless you have a group of magnets working together or something
|
||||
var/turf/center // the center of magnetic attraction
|
||||
var/on = 0
|
||||
var/pulling = 0
|
||||
var/magpulling = 0
|
||||
|
||||
// x, y modifiers to the center turf; (0, 0) is centered on the magnet, whereas (1, -1) is one tile right, one tile down
|
||||
var/center_x = 0
|
||||
@@ -154,10 +154,10 @@
|
||||
|
||||
|
||||
/obj/machinery/magnetic_module/proc/magnetic_process() // proc that actually does the pulling
|
||||
if(pulling) return
|
||||
if(magpulling) return
|
||||
while(on)
|
||||
|
||||
pulling = 1
|
||||
magpulling = 1
|
||||
center = locate(x+center_x, y+center_y, z)
|
||||
if(center)
|
||||
for(var/obj/M in orange(magnetic_field, center))
|
||||
@@ -171,7 +171,7 @@
|
||||
use_power(electricity_level * 5)
|
||||
sleep(13 - electricity_level)
|
||||
|
||||
pulling = 0
|
||||
magpulling = 0
|
||||
|
||||
/obj/machinery/magnetic_controller
|
||||
name = "Magnetic Control Console"
|
||||
|
||||
@@ -114,7 +114,8 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
||||
/datum/job/chaplain,
|
||||
/datum/job/ntnavyofficer,
|
||||
/datum/job/ntspecops,
|
||||
/datum/job/civilian)
|
||||
/datum/job/civilian,
|
||||
/datum/job/syndicateofficer)
|
||||
|
||||
var/static/REDACTED = "<b class='bad'>\[REDACTED\]</b>"
|
||||
light_range = 0
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
/obj/machinery/porta_turret/tag
|
||||
// Reasonable defaults, in case someone manually spawns us
|
||||
var/lasercolor = "r" //Something to do with lasertag turrets, blame Sieve for not adding a comment.
|
||||
installation = /obj/item/gun/energy/laser/redtag
|
||||
installation = /obj/item/gun/energy/laser/tag/red
|
||||
|
||||
/obj/machinery/porta_turret/tag/red
|
||||
|
||||
/obj/machinery/porta_turret/tag/blue
|
||||
lasercolor = "b"
|
||||
installation = /obj/item/gun/energy/laser/bluetag
|
||||
installation = /obj/item/gun/energy/laser/tag/blue
|
||||
|
||||
/obj/machinery/porta_turret/tag/New()
|
||||
..()
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
/obj/machinery/porta_turret/tag/weapon_setup(var/obj/item/gun/energy/E)
|
||||
switch(E.type)
|
||||
if(/obj/item/gun/energy/laser/bluetag)
|
||||
eprojectile = /obj/item/gun/energy/laser/bluetag
|
||||
if(/obj/item/gun/energy/laser/tag/blue)
|
||||
eprojectile = /obj/item/gun/energy/laser/tag/blue
|
||||
lasercolor = "b"
|
||||
req_access = list(access_maint_tunnels, access_theatre)
|
||||
check_arrest = 0
|
||||
@@ -30,8 +30,8 @@
|
||||
check_anomalies = 0
|
||||
shot_delay = 30
|
||||
|
||||
if(/obj/item/gun/energy/laser/redtag)
|
||||
eprojectile = /obj/item/gun/energy/laser/redtag
|
||||
if(/obj/item/gun/energy/laser/tag/red)
|
||||
eprojectile = /obj/item/gun/energy/laser/tag/red
|
||||
lasercolor = "r"
|
||||
req_access = list(access_maint_tunnels, access_theatre)
|
||||
check_arrest = 0
|
||||
@@ -81,13 +81,13 @@
|
||||
..()
|
||||
|
||||
if(lasercolor == "b" && disabled == 0)
|
||||
if(istype(Proj, /obj/item/gun/energy/laser/redtag))
|
||||
if(istype(Proj, /obj/item/gun/energy/laser/tag/red))
|
||||
disabled = 1
|
||||
qdel(Proj) // qdel
|
||||
sleep(100)
|
||||
disabled = 0
|
||||
if(lasercolor == "r" && disabled == 0)
|
||||
if(istype(Proj, /obj/item/gun/energy/laser/bluetag))
|
||||
if(istype(Proj, /obj/item/gun/energy/laser/tag/blue))
|
||||
disabled = 1
|
||||
qdel(Proj) // qdel
|
||||
sleep(100)
|
||||
@@ -105,10 +105,10 @@
|
||||
switch(lasercolor)
|
||||
if("b")
|
||||
target_suit = /obj/item/clothing/suit/redtag
|
||||
target_weapon = /obj/item/gun/energy/laser/redtag
|
||||
target_weapon = /obj/item/gun/energy/laser/tag/red
|
||||
if("r")
|
||||
target_suit = /obj/item/clothing/suit/bluetag
|
||||
target_weapon = /obj/item/gun/energy/laser/bluetag
|
||||
target_weapon = /obj/item/gun/energy/laser/tag/blue
|
||||
|
||||
|
||||
if(target_suit)//Lasertag turrets target the opposing team, how great is that? -Sieve
|
||||
|
||||
@@ -857,7 +857,7 @@ var/list/turret_icons
|
||||
gun_charge = E.power_supply.charge //the gun's charge is stored in gun_charge
|
||||
to_chat(user, "<span class='notice'>You add [I] to the turret.</span>")
|
||||
|
||||
if(istype(installation, /obj/item/gun/energy/laser/bluetag) || istype(installation, /obj/item/gun/energy/laser/redtag))
|
||||
if(istype(installation, /obj/item/gun/energy/laser/tag/blue) || istype(installation, /obj/item/gun/energy/laser/tag/red))
|
||||
target_type = /obj/machinery/porta_turret/tag
|
||||
else
|
||||
target_type = /obj/machinery/porta_turret
|
||||
|
||||
@@ -154,6 +154,7 @@
|
||||
|
||||
active = 1
|
||||
update_icon()
|
||||
anchored = 1
|
||||
|
||||
for(var/turf/target_tile in range(2, src))
|
||||
if(istype(target_tile,/turf/space) && !(locate(/obj/machinery/shield) in target_tile))
|
||||
@@ -166,6 +167,7 @@
|
||||
|
||||
active = 0
|
||||
update_icon()
|
||||
anchored = 0
|
||||
|
||||
for(var/obj/machinery/shield/shield_tile in deployed_shields)
|
||||
qdel(shield_tile)
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
/obj/machinery/snow_machine
|
||||
name = "snow machine"
|
||||
desc = "Just add water and you too can have your own winter wonderland! Carol singers not included."
|
||||
icon_state = "snow_machine_off"
|
||||
density = TRUE
|
||||
anchored = FALSE
|
||||
layer = OBJ_LAYER
|
||||
var/active = FALSE
|
||||
var/power_used_this_cycle = 0
|
||||
var/cooling_speed = 1
|
||||
var/power_efficiency = 1
|
||||
var/lower_temperature_limit = T0C - 10 //Set lower for a bigger freeze
|
||||
var/infinite_snow = FALSE //Set this to have it not use water
|
||||
|
||||
/obj/machinery/snow_machine/New()
|
||||
..()
|
||||
create_reagents(300) //Makes 100 snow tiles!
|
||||
reagents.add_reagent("water", 300) //But any reagent will do
|
||||
reagents.flags |= REAGENT_NOREACT //Because a) this doesn't need to process and b) this way we can use any reagents without needing to worry about explosions and shit
|
||||
container_type = REFILLABLE
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/snow_machine(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin(null)
|
||||
component_parts += new /obj/item/stock_parts/micro_laser(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/snow_machine/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>The internal reservoir indicates it is [infinite_snow ? "100" : round(reagents.total_volume / reagents.maximum_volume * 100)]% full.</span>")
|
||||
|
||||
/obj/machinery/snow_machine/RefreshParts()
|
||||
power_efficiency = 0
|
||||
cooling_speed = 0
|
||||
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
|
||||
cooling_speed += B.rating
|
||||
for(var/obj/item/stock_parts/micro_laser/L in component_parts)
|
||||
power_efficiency += L.rating
|
||||
|
||||
/obj/machinery/snow_machine/attack_hand(mob/user)
|
||||
if(!powered() || !anchored)
|
||||
return
|
||||
if(turn_on_or_off(!active))
|
||||
to_chat(user, "<span class='notice'>You [active ? "turn on" : "turn off"] [src].</span>")
|
||||
return ..()
|
||||
|
||||
/obj/machinery/snow_machine/attackby(obj/item/I, mob/user)
|
||||
if(isscrewdriver(I))
|
||||
if(default_deconstruction_screwdriver(user, "snow_machine_openpanel", "snow_machine_off", I))
|
||||
turn_on_or_off(FALSE)
|
||||
else if(iscrowbar(I))
|
||||
default_deconstruction_crowbar(I)
|
||||
else if(iswrench(I))
|
||||
var/obj/item/wrench/W = I
|
||||
anchored = !anchored
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "tighten" : "loosen"] [src]'s wheels.</span>")
|
||||
playsound(loc, W.usesound, 50, TRUE)
|
||||
turn_on_or_off(FALSE)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/snow_machine/process()
|
||||
if(power_used_this_cycle)
|
||||
power_used_this_cycle /= power_efficiency
|
||||
use_power(power_used_this_cycle)
|
||||
power_used_this_cycle = 0
|
||||
if(!active || !anchored)
|
||||
return
|
||||
if(!powered())
|
||||
return
|
||||
if(!reagents.has_reagent(reagents.get_master_reagent_id(), 3))
|
||||
return //This means you don't need to top it up constantly to keep the nice snowclouds going
|
||||
var/turf/T = get_turf(src)
|
||||
if(isspaceturf(T) || T.density) //If the snowmachine is on a dense tile or in space, then it shouldn't be able to produce any snow and so will turn off
|
||||
turn_on_or_off(FALSE, TRUE)
|
||||
return
|
||||
for(var/turf/TF in range(1, src))
|
||||
if(issimulatedturf(TF))
|
||||
var/turf/simulated/S = TF
|
||||
affect_turf_temperature(S, cooling_speed)
|
||||
if(prob(50))
|
||||
continue
|
||||
make_snowcloud(TF)
|
||||
|
||||
/obj/machinery/snow_machine/power_change()
|
||||
..()
|
||||
if(!powered())
|
||||
turn_on_or_off(FALSE, TRUE)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/snow_machine/update_icon()
|
||||
..()
|
||||
if(panel_open)
|
||||
icon_state = "snow_machine_openpanel"
|
||||
else
|
||||
icon_state = "snow_machine_[active ? "on" : "off"]"
|
||||
|
||||
/obj/machinery/snow_machine/proc/affect_turf_temperature(turf/T, modifier)
|
||||
if(!issimulatedturf(T) || T.density)
|
||||
return
|
||||
var/turf/simulated/S = T
|
||||
var/initial_temperature = S.air.temperature
|
||||
if(initial_temperature <= lower_temperature_limit) //Can we actually cool this?
|
||||
return
|
||||
var/old_thermal_energy = S.air.thermal_energy()
|
||||
var/amount_cooled = initial_temperature - modifier * 8000 / S.air.heat_capacity()
|
||||
S.air.temperature = max(amount_cooled, lower_temperature_limit)
|
||||
air_update_turf()
|
||||
var/new_thermal_energy = S.air.thermal_energy()
|
||||
power_used_this_cycle += (old_thermal_energy - new_thermal_energy) / 100
|
||||
|
||||
/obj/machinery/snow_machine/proc/make_snowcloud(turf/T)
|
||||
if(isspaceturf(T))
|
||||
return
|
||||
if(T.density)
|
||||
return
|
||||
if(issimulatedturf(T))
|
||||
var/turf/simulated/S = T
|
||||
if(S.air.temperature > T0C + 1)
|
||||
return
|
||||
if(locate(/obj/effect/snowcloud, T)) //Ice to see you
|
||||
return
|
||||
if(infinite_snow || !reagents.remove_reagent(reagents.get_master_reagent_id(), 3))
|
||||
new /obj/effect/snowcloud(T, src)
|
||||
power_used_this_cycle += 1000
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/snow_machine/proc/turn_on_or_off(activate, give_message = FALSE)
|
||||
active = activate ? TRUE : FALSE
|
||||
if(!active && give_message)
|
||||
visible_message("<span class='warning'>[src] switches off!</span>")
|
||||
playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
|
||||
update_icon()
|
||||
return TRUE
|
||||
@@ -12,6 +12,7 @@
|
||||
var/turf/target //Used for one-time-use teleport cards (such as clown planet coordinates.)
|
||||
//Setting this to 1 will set src.locked to null after a player enters the portal and will not allow hand-teles to open portals to that location.
|
||||
var/area_bypass = FALSE
|
||||
var/cc_beacon = FALSE
|
||||
|
||||
/obj/machinery/computer/teleporter/New()
|
||||
src.id = "[rand(1000, 9999)]"
|
||||
@@ -182,7 +183,7 @@
|
||||
var/turf/T = get_turf(R)
|
||||
if(!T)
|
||||
continue
|
||||
if(!is_teleport_allowed(T.z))
|
||||
if(!is_teleport_allowed(T.z) && !R.cc_beacon)
|
||||
continue
|
||||
if(R.syndicate == 1 && emagged == 0)
|
||||
continue
|
||||
@@ -217,6 +218,7 @@
|
||||
var/obj/item/radio/beacon/B = target
|
||||
if(B.area_bypass)
|
||||
area_bypass = TRUE
|
||||
cc_beacon = B.cc_beacon
|
||||
else
|
||||
var/list/L = list()
|
||||
var/list/areaindex = list()
|
||||
@@ -366,7 +368,9 @@
|
||||
visible_message("<span class='alert'>Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.</span>")
|
||||
return
|
||||
if(istype(M, /atom/movable))
|
||||
if(!calibrated && prob(25 - ((accurate) * 10))) //oh dear a problem
|
||||
if(!calibrated && com.cc_beacon)
|
||||
visible_message("<span class='alert'>Cannot lock on target. Please calibrate the teleporter before attempting long range teleportation.</span>")
|
||||
else if(!calibrated && prob(25 - ((accurate) * 10)) && !com.cc_beacon) //oh dear a problem
|
||||
. = do_teleport(M, locate(rand((2*TRANSITIONEDGE), world.maxx - (2*TRANSITIONEDGE)), rand((2*TRANSITIONEDGE), world.maxy - (2*TRANSITIONEDGE)), 3), 2, bypass_area_flag = com.area_bypass)
|
||||
else
|
||||
. = do_teleport(M, com.target, bypass_area_flag = com.area_bypass)
|
||||
|
||||
@@ -1196,7 +1196,7 @@
|
||||
/obj/item/clothing/head/cueball = 1,/obj/item/clothing/under/scratch = 1,
|
||||
/obj/item/clothing/under/victdress = 1, /obj/item/clothing/under/victdress/red = 1, /obj/item/clothing/suit/victcoat = 1, /obj/item/clothing/suit/victcoat/red = 1,
|
||||
/obj/item/clothing/under/victsuit = 1, /obj/item/clothing/under/victsuit/redblk = 1, /obj/item/clothing/under/victsuit/red = 1, /obj/item/clothing/suit/tailcoat = 1,
|
||||
/obj/item/clothing/suit/draculacoat = 1)
|
||||
/obj/item/clothing/suit/draculacoat = 1, /obj/item/clothing/head/zepelli = 1)
|
||||
contraband = list(/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/gun/magic/wand = 1, /obj/item/clothing/mask/balaclava=1, /obj/item/clothing/mask/horsehead = 2)
|
||||
premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/shield/riot/roman = 1)
|
||||
refill_canister = /obj/item/vending_refill/autodrobe
|
||||
@@ -1218,6 +1218,7 @@
|
||||
icon_state = "dinnerware"
|
||||
products = list(/obj/item/storage/bag/tray = 8,/obj/item/kitchen/utensil/fork = 6,
|
||||
/obj/item/kitchen/knife = 3,/obj/item/kitchen/rollingpin = 2,
|
||||
/obj/item/kitchen/sushimat = 3,
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass = 8, /obj/item/clothing/suit/chef/classic = 2,
|
||||
/obj/item/reagent_containers/food/condiment/pack/ketchup = 5,
|
||||
/obj/item/reagent_containers/food/condiment/pack/hotsauce = 5,
|
||||
|
||||
@@ -39,4 +39,44 @@
|
||||
|
||||
user.mind.add_antag_datum(/datum/antagonist/wishgranter)
|
||||
|
||||
to_chat(user, "You have a very bad feeling about this.")
|
||||
to_chat(user, "You have a very bad feeling about this.")
|
||||
|
||||
/obj/machinery/wish_granter/super
|
||||
name = "super wish granter"
|
||||
var/list/types = list()
|
||||
|
||||
/obj/machinery/wish_granter/super/attack_hand(mob/living/carbon/user)
|
||||
if(!ishuman(user))
|
||||
to_chat(user, "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's.")
|
||||
return
|
||||
else if(is_special_character(user) || jobban_isbanned(user, ROLE_TRAITOR) || jobban_isbanned(user, "Syndicate"))
|
||||
to_chat(user, "Something instinctual makes you pull away.")
|
||||
return
|
||||
else
|
||||
|
||||
to_chat(user, "Your touch makes the Wish Granter stir. Are you really sure you want to do this?")
|
||||
|
||||
for(var/supname in GLOB.all_superheroes)
|
||||
types += supname
|
||||
|
||||
var/wish
|
||||
if(types.len == 1)
|
||||
wish = pick(types)
|
||||
else
|
||||
wish = input("You want to become...","Wish") as null|anything in types
|
||||
|
||||
if(!src || !wish || user.stat == DEAD || (get_dist(src, user) > 4)) //another check after the input to check if someone already used it, closed it, or if they're dead, or if they ran off
|
||||
return
|
||||
|
||||
var/datum/superheroes/S = GLOB.all_superheroes[wish]
|
||||
if(S.activated)
|
||||
to_chat(user,"<span class='warning'>There can only be one! Pick something else!</span>")
|
||||
return
|
||||
|
||||
S.create(user)
|
||||
S.activated = TRUE //sets this superhero as taken so we don't have duplicates
|
||||
playsound(src.loc, 'sound/effects/bamf.ogg', 50, 1)
|
||||
visible_message("<span class='notice'>The wishgranter fades into mist..</span>")
|
||||
add_attack_logs(null, user, "Became [GLOB.all_superheroes[wish]]")
|
||||
notify_ghosts("[GLOB.all_superheroes[wish]] has appeared in [get_area(user)].", source = user)
|
||||
qdel(src)
|
||||
|
||||
@@ -346,7 +346,7 @@
|
||||
if(heavy_missile)
|
||||
M.heavy_missile = 1
|
||||
playsound(chassis, fire_sound, 50, 1)
|
||||
M.throw_at(target, missile_range, missile_speed)
|
||||
M.throw_at(target, missile_range, missile_speed, spin = FALSE)
|
||||
projectiles--
|
||||
log_message("Fired from [name], targeting [target].")
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -395,7 +395,7 @@
|
||||
set_ready_state(0)
|
||||
var/obj/item/grenade/flashbang/F = new projectile(chassis.loc)
|
||||
playsound(chassis, fire_sound, 50, 1)
|
||||
F.throw_at(target, missile_range, missile_speed, chassis)
|
||||
F.throw_at(target, missile_range, missile_speed)
|
||||
projectiles--
|
||||
log_message("Fired from [name], targeting [target].")
|
||||
spawn(det_time)
|
||||
@@ -441,7 +441,7 @@
|
||||
set_ready_state(0)
|
||||
var/obj/item/grown/bananapeel/B = new projectile(chassis.loc)
|
||||
playsound(chassis, fire_sound, 60, 1)
|
||||
B.throw_at(target, missile_range, missile_speed, chassis)
|
||||
B.throw_at(target, missile_range, missile_speed)
|
||||
projectiles--
|
||||
log_message("Bananed from [name], targeting [target]. HONK!")
|
||||
do_after_cooldown()
|
||||
@@ -471,7 +471,7 @@
|
||||
var/obj/item/assembly/mousetrap/M = new projectile(chassis.loc)
|
||||
M.secured = 1
|
||||
playsound(chassis, fire_sound, 60, 1)
|
||||
M.throw_at(target, missile_range, missile_speed, chassis)
|
||||
M.throw_at(target, missile_range, missile_speed)
|
||||
projectiles--
|
||||
log_message("Launched a mouse-trap from [name], targeting [target]. HONK!")
|
||||
do_after_cooldown()
|
||||
@@ -516,7 +516,7 @@
|
||||
energy_drain = 30
|
||||
origin_tech = "materials=3;plasmatech=4;engineering=3"
|
||||
projectile = /obj/item/projectile/plasma/adv/mech
|
||||
fire_sound = 'sound/weapons/laser.ogg'
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma/can_attach(obj/mecha/M as obj)
|
||||
if(istype(M, /obj/mecha/working))
|
||||
|
||||
@@ -51,6 +51,16 @@
|
||||
RefreshParts()
|
||||
update_recharge_turf()
|
||||
|
||||
/obj/machinery/mech_bay_recharge_port/upgraded/unsimulated/process()
|
||||
if(!recharging_mecha)
|
||||
recharging_mecha = locate(/obj/mecha) in recharging_turf
|
||||
if(recharging_mecha && recharging_mecha.cell)
|
||||
if(recharging_mecha.cell.charge < recharging_mecha.cell.maxcharge)
|
||||
var/delta = min(max_charge, recharging_mecha.cell.maxcharge - recharging_mecha.cell.charge)
|
||||
recharging_mecha.give_power(delta)
|
||||
if(recharging_mecha.loc != recharging_turf)
|
||||
recharging_mecha = null
|
||||
|
||||
/obj/machinery/mech_bay_recharge_port/RefreshParts()
|
||||
var/MC
|
||||
for(var/obj/item/stock_parts/capacitor/C in component_parts)
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
anchored = TRUE
|
||||
layer = TURF_DECAL_LAYER
|
||||
icon = 'icons/turf/snow.dmi'
|
||||
icon_state = "snow"
|
||||
|
||||
/obj/effect/decal/snow/clean/edge
|
||||
icon_state = "snow_corner"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
burn_state = LAVA_PROOF | FIRE_PROOF
|
||||
resistance_flags = INDESTRUCTIBLE
|
||||
anchored = 1
|
||||
can_be_hit = FALSE
|
||||
|
||||
/obj/effect/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
||||
|
||||
@@ -88,6 +88,10 @@
|
||||
emergencyresponseteamspawn += loc
|
||||
qdel(src)
|
||||
|
||||
if("Syndicate Officer")
|
||||
syndicateofficer += loc
|
||||
qdel(src)
|
||||
|
||||
GLOB.landmarks_list += src
|
||||
return 1
|
||||
|
||||
|
||||
@@ -53,6 +53,15 @@
|
||||
if(isliving(victim))
|
||||
victim.Weaken(stun_time)
|
||||
|
||||
/obj/effect/mine/depot
|
||||
name = "sentry mine"
|
||||
|
||||
/obj/effect/mine/depot/mineEffect(mob/living/victim)
|
||||
var/area/syndicate_depot/core/depotarea = areaMaster
|
||||
if(istype(depotarea))
|
||||
if(depotarea.mine_triggered(victim))
|
||||
explosion(loc, 1, 0, 0, 1) // devastate the tile you are on, but leave everything else untouched
|
||||
|
||||
/obj/effect/mine/dnascramble
|
||||
name = "Radiation Mine"
|
||||
var/radiation_amount
|
||||
|
||||
@@ -66,4 +66,5 @@
|
||||
desc = "A portal capable of bypassing bluespace interference."
|
||||
icon_state = "portal1"
|
||||
failchance = 0
|
||||
precision = 0
|
||||
ignore_tele_proof_area_setting = TRUE
|
||||
@@ -0,0 +1,140 @@
|
||||
/obj/effect/snowcloud
|
||||
name = "snow cloud"
|
||||
desc = "Let it snow, let it snow, let it snow!"
|
||||
icon_state = "snowcloud"
|
||||
layer = FLY_LAYER
|
||||
anchored = TRUE
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
var/obj/machinery/snow_machine/parent_machine
|
||||
|
||||
/obj/effect/snowcloud/New(turf, obj/machinery/snow_machine/SM)
|
||||
..()
|
||||
processing_objects.Add(src)
|
||||
if(SM && istype(SM))
|
||||
parent_machine = SM
|
||||
|
||||
/obj/effect/snowcloud/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/effect/snowcloud/process()
|
||||
if(QDELETED(parent_machine))
|
||||
parent_machine = null
|
||||
var/turf/T = get_turf(src)
|
||||
if(isspaceturf(T))
|
||||
qdel(src)
|
||||
return
|
||||
var/turf_hotness
|
||||
if(issimulatedturf(T))
|
||||
var/turf/simulated/S = T
|
||||
turf_hotness = S.air.temperature
|
||||
if(turf_hotness > T0C && prob(10 * (turf_hotness - T0C))) //Cloud disappears if it's too warm
|
||||
qdel(src)
|
||||
return
|
||||
if(!parent_machine || !parent_machine.active || parent_machine.stat & NOPOWER) //All reasons a cloud could dissipate
|
||||
if(prob(10))
|
||||
qdel(src)
|
||||
return
|
||||
try_to_snow()
|
||||
try_to_spread_cloud()
|
||||
parent_machine.affect_turf_temperature(T, 0.25 * parent_machine.cooling_speed)
|
||||
|
||||
/obj/effect/snowcloud/proc/try_to_snow()
|
||||
var/turf/T = get_turf(src)
|
||||
if(locate(/obj/effect/snow, T))
|
||||
return
|
||||
if(issimulatedturf(T))
|
||||
var/turf/simulated/S = T
|
||||
if(prob(75 + S.air.temperature - T0C)) //Colder turf = more chance of snow
|
||||
return
|
||||
new /obj/effect/snow(T)
|
||||
|
||||
/obj/effect/snowcloud/proc/try_to_spread_cloud()
|
||||
if(prob(95 - parent_machine.cooling_speed * 5)) //10 / 15 / 20 / 25% chance to spawn a new cloud
|
||||
return
|
||||
var/list/random_dirs = shuffle(cardinal)
|
||||
for(var/potential in random_dirs)
|
||||
var/turf/T = get_turf(get_step(src, potential))
|
||||
if(isspaceturf(T) || T.density)
|
||||
continue
|
||||
if(!T.CanAtmosPass(T))
|
||||
continue
|
||||
if(parent_machine.make_snowcloud(T))
|
||||
return
|
||||
|
||||
|
||||
//Snow stuff below
|
||||
|
||||
/obj/effect/snow
|
||||
desc = "Perfect for making snow angels, or throwing at other people!"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "snow"
|
||||
layer = ABOVE_ICYOVERLAY_LAYER
|
||||
anchored = TRUE
|
||||
|
||||
/obj/effect/snow/New()
|
||||
processing_objects.Add(src)
|
||||
icon_state = "snow[rand(1,6)]"
|
||||
..()
|
||||
|
||||
/obj/effect/snow/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/effect/snow/process()
|
||||
var/turf/T = get_turf(src)
|
||||
if(isspaceturf(T))
|
||||
qdel(src)
|
||||
return
|
||||
else if(issimulatedturf(T))
|
||||
var/turf/simulated/S = T
|
||||
if(S.air.temperature <= T0C)
|
||||
return
|
||||
if(prob(10 + S.air.temperature - T0C))
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/snow/attack_hand(mob/living/carbon/human/user)
|
||||
if(!istype(user)) //Nonhumans don't have the balls to fight in the snow
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
var/obj/item/snowball/SB = new(get_turf(user))
|
||||
user.put_in_hands(SB)
|
||||
to_chat(user, "<span class='notice'>You scoop up some snow and make \a [SB]!</span>")
|
||||
|
||||
/obj/effect/snow/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/shovel))
|
||||
var/obj/item/shovel/S = I
|
||||
user.visible_message("<span class='notice'>[user] is clearing away [src]...</span>", "<span class='notice'>You begin clearing away [src]...</span>", "<span class='warning'>You hear a wettish digging sound.</span>")
|
||||
playsound(loc, S.usesound, 50, TRUE)
|
||||
if(!do_after(user, 50 * S.toolspeed, target = src))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] clears away [src]!</span>", "<span class='notice'>You clear away [src]!</span>")
|
||||
qdel(src)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/effect/snow/fire_act()
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/snow/ex_act(severity)
|
||||
if(severity == 3 && prob(50))
|
||||
return
|
||||
qdel(src)
|
||||
|
||||
/obj/item/snowball
|
||||
name = "snowball"
|
||||
desc = "Get ready for a snowball fight!"
|
||||
force = 0
|
||||
throwforce = 10
|
||||
icon_state = "snowball"
|
||||
damtype = STAMINA
|
||||
|
||||
/obj/item/snowball/throw_impact(atom/target)
|
||||
..()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/snowball/fire_act()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/snowball/ex_act(severity)
|
||||
qdel(src)
|
||||
@@ -159,6 +159,7 @@
|
||||
/obj/effect/spawner/random_spawners/syndicate/trap/pizzabomb
|
||||
name = "50pc trap pizza"
|
||||
result = list(/obj/item/pizzabox/meat = 1,
|
||||
/obj/item/pizzabox/hawaiian = 1,
|
||||
/obj/item/pizza_bomb/autoarm = 1)
|
||||
|
||||
/obj/effect/spawner/random_spawners/syndicate/trap/medbot
|
||||
@@ -169,7 +170,7 @@
|
||||
/obj/effect/spawner/random_spawners/syndicate/trap/mine
|
||||
name = "50pc trap landmine"
|
||||
result = list(/datum/nothing = 1,
|
||||
/obj/effect/mine/explosive = 1)
|
||||
/obj/effect/mine/depot = 1)
|
||||
|
||||
/obj/effect/spawner/random_spawners/syndicate/trap/documents
|
||||
name = "66pc trapped documents"
|
||||
@@ -188,7 +189,6 @@
|
||||
// Loot schema: costumes, toys, useless gimmick items, trapped items
|
||||
result = list(/datum/nothing = 13,
|
||||
/obj/item/storage/toolbox/syndicate = 1,
|
||||
/obj/item/storage/toolbox/syndicate/trapped = 1,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 1,
|
||||
/obj/item/toy/cards/deck/syndicate = 1,
|
||||
/obj/item/storage/secure/briefcase/syndie = 1,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//TODO: Flash range does nothing currently
|
||||
|
||||
/proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1, ignorecap = 0, flame_range = 0 ,silent = 0, smoke = 1, cause = null)
|
||||
/proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1, ignorecap = 0, flame_range = 0 ,silent = 0, smoke = 1, cause = null, breach = TRUE)
|
||||
src = null //so we don't abort once src is deleted
|
||||
epicenter = get_turf(epicenter)
|
||||
|
||||
@@ -132,7 +132,10 @@
|
||||
if(AM && AM.simulated)
|
||||
AM.ex_act(dist)
|
||||
CHECK_TICK
|
||||
T.ex_act(dist)
|
||||
if(breach)
|
||||
T.ex_act(dist)
|
||||
else
|
||||
T.ex_act(3)
|
||||
|
||||
CHECK_TICK
|
||||
//--- THROW ITEMS AROUND ---
|
||||
|
||||
@@ -35,6 +35,8 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
|
||||
var/list/actions = list() //list of /datum/action's that this item has.
|
||||
var/list/actions_types = list() //list of paths of action datums to give to the item on New().
|
||||
var/list/action_icon = list() //list of icons-sheets for a given action to override the icon.
|
||||
var/list/action_icon_state = list() //list of icon states for a given action to override the icon_state.
|
||||
|
||||
var/list/materials = list()
|
||||
//Since any item can now be a piece of clothing, this has to be put here so all items share it.
|
||||
@@ -100,7 +102,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
/obj/item/New()
|
||||
..()
|
||||
for(var/path in actions_types)
|
||||
new path(src)
|
||||
new path(src, action_icon[path], action_icon_state[path])
|
||||
|
||||
if(!hitsound)
|
||||
if(damtype == "fire")
|
||||
@@ -206,6 +208,9 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
msg += "*--------*"
|
||||
to_chat(user, msg)
|
||||
|
||||
/obj/item/afterattack(atom/target, mob/user, proximity, params)
|
||||
SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, target, user, proximity, params)
|
||||
..()
|
||||
|
||||
/obj/item/attack_hand(mob/user as mob, pickupfireoverride = FALSE)
|
||||
if(!user) return 0
|
||||
@@ -252,6 +257,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
return 0
|
||||
|
||||
pickup(user)
|
||||
|
||||
add_fingerprint(user)
|
||||
user.put_in_active_hand(src)
|
||||
return 1
|
||||
@@ -306,6 +312,25 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
|
||||
else if(S.can_be_inserted(src))
|
||||
S.handle_item_insertion(src)
|
||||
else if(istype(I, /obj/item/stack/tape_roll))
|
||||
if(istype(src, /obj/item/storage)) //Don't tape the bag if we can put the duct tape inside it instead
|
||||
var/obj/item/storage/bag = src
|
||||
if(bag.can_be_inserted(I))
|
||||
return ..()
|
||||
var/obj/item/stack/tape_roll/TR = I
|
||||
var/list/clickparams = params2list(params)
|
||||
var/x_offset = text2num(clickparams["icon-x"])
|
||||
var/y_offset = text2num(clickparams["icon-y"])
|
||||
if(GetComponent(/datum/component/ducttape))
|
||||
to_chat(user, "<span class='notice'>[src] already has some tape attached!</span>")
|
||||
return
|
||||
if(TR.use(1))
|
||||
to_chat(user, "<span class='notice'>You apply some tape to [src].</span>")
|
||||
AddComponent(/datum/component/ducttape, src, user, x_offset, y_offset)
|
||||
anchored = TRUE
|
||||
user.transfer_fingerprints_to(src)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You don't have enough tape to do that!</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -329,7 +354,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
|
||||
// called just as an item is picked up (loc is not yet changed)
|
||||
/obj/item/proc/pickup(mob/user)
|
||||
return
|
||||
SEND_SIGNAL(src, COMSIG_ITEM_PICKUP, user)
|
||||
|
||||
// called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.
|
||||
/obj/item/proc/on_exit_storage(obj/item/storage/S as obj)
|
||||
@@ -507,10 +532,10 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
itempush = 0 // too light to push anything
|
||||
return A.hitby(src, 0, itempush)
|
||||
|
||||
/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback)
|
||||
/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force)
|
||||
thrownby = thrower
|
||||
callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own
|
||||
. = ..(target, range, speed, thrower, spin, diagonals_first, callback)
|
||||
. = ..(target, range, speed, thrower, spin, diagonals_first, callback, force)
|
||||
|
||||
/obj/item/proc/after_throw(datum/callback/callback)
|
||||
if(callback) //call the original callback
|
||||
@@ -569,4 +594,4 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
target.visible_message("<span class='danger'>[target.name] blocks [src] and twists [user]'s arm behind [user.p_their()] back!</span>",
|
||||
"<span class='userdanger'>You block the attack!</span>")
|
||||
user.Stun(2)
|
||||
return TRUE
|
||||
return TRUE
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
actions_types = list(/datum/action/item_action/toggle_light)
|
||||
var/on = FALSE
|
||||
var/brightness_on = 4 //luminosity when on
|
||||
var/togglesound = 'sound/weapons/empty.ogg'
|
||||
|
||||
/obj/item/flashlight/Initialize()
|
||||
. = ..()
|
||||
@@ -35,7 +36,7 @@
|
||||
|
||||
return 0
|
||||
on = !on
|
||||
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
|
||||
playsound(user, togglesound, 100, 1)
|
||||
update_brightness(user)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
@@ -153,22 +154,24 @@ obj/item/flashlight/lamp/bananalamp
|
||||
/obj/item/flashlight/flare
|
||||
name = "flare"
|
||||
desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'."
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
brightness_on = 8 // Made it brighter (from 7 to 8).
|
||||
light_color = "#ff0000" // changed colour to a more brighter red.
|
||||
brightness_on = 8
|
||||
light_color = "#ff0000"
|
||||
icon_state = "flare"
|
||||
item_state = "flare"
|
||||
togglesound = 'sound/goonstation/misc/matchstick_light.ogg'
|
||||
var/fuel = 0
|
||||
var/on_damage = 7
|
||||
var/produce_heat = 1500
|
||||
var/fuel_lower = 800
|
||||
var/fuel_upp = 1000
|
||||
|
||||
/obj/item/flashlight/flare/New()
|
||||
fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds.
|
||||
fuel = rand(fuel_lower, fuel_upp)
|
||||
..()
|
||||
|
||||
/obj/item/flashlight/flare/process()
|
||||
var/turf/pos = get_turf(src)
|
||||
if(pos)
|
||||
if(pos && produce_heat)
|
||||
pos.hotspot_expose(produce_heat, 5)
|
||||
fuel = max(fuel - 1, 0)
|
||||
if(!fuel || !on)
|
||||
@@ -177,6 +180,10 @@ obj/item/flashlight/lamp/bananalamp
|
||||
src.icon_state = "[initial(icon_state)]-empty"
|
||||
processing_objects -= src
|
||||
|
||||
/obj/item/flashlight/flare/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
..()
|
||||
|
||||
/obj/item/flashlight/flare/proc/turn_off()
|
||||
on = 0
|
||||
src.force = initial(src.force)
|
||||
@@ -207,11 +214,84 @@ obj/item/flashlight/lamp/bananalamp
|
||||
. = ..()
|
||||
// All good, turn it on.
|
||||
if(.)
|
||||
user.visible_message("<span class='notice'>[user] activates the flare.</span>", "<span class='notice'>You pull the cord on the flare, activating it!</span>")
|
||||
user.visible_message("<span class='notice'>[user] activates [src].</span>", "<span class='notice'>You activate [src].</span>")
|
||||
src.force = on_damage
|
||||
src.damtype = "fire"
|
||||
processing_objects += src
|
||||
|
||||
// GLOWSTICKS
|
||||
|
||||
/obj/item/flashlight/flare/glowstick
|
||||
name = "green glowstick"
|
||||
desc = "A military-grade glowstick."
|
||||
brightness_on = 4
|
||||
color = LIGHT_COLOR_GREEN
|
||||
icon_state = "glowstick"
|
||||
item_state = "glowstick"
|
||||
togglesound = 'sound/effects/bone_break_1.ogg'
|
||||
produce_heat = 0
|
||||
fuel_lower = 1600
|
||||
fuel_upp = 2000
|
||||
|
||||
/obj/item/flashlight/flare/glowstick/Initialize()
|
||||
light_color = color
|
||||
..()
|
||||
|
||||
/obj/item/flashlight/flare/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/flare/glowstick/red
|
||||
name = "red glowstick"
|
||||
color = LIGHT_COLOR_RED
|
||||
|
||||
/obj/item/flashlight/flare/glowstick/blue
|
||||
name = "blue glowstick"
|
||||
color = LIGHT_COLOR_BLUE
|
||||
|
||||
/obj/item/flashlight/flare/glowstick/orange
|
||||
name = "orange glowstick"
|
||||
color = LIGHT_COLOR_ORANGE
|
||||
|
||||
/obj/item/flashlight/flare/glowstick/yellow
|
||||
name = "yellow glowstick"
|
||||
color = LIGHT_COLOR_YELLOW
|
||||
|
||||
/obj/item/flashlight/flare/glowstick/pink
|
||||
name = "pink glowstick"
|
||||
color = LIGHT_COLOR_PINK
|
||||
|
||||
/obj/item/flashlight/flare/glowstick/emergency
|
||||
name = "emergency glowstick"
|
||||
desc = "A cheap looking, mass produced glowstick. You can practically feel it was made on a tight budget."
|
||||
color = LIGHT_COLOR_BLUE
|
||||
fuel_lower = 30
|
||||
fuel_upp = 90
|
||||
|
||||
/obj/item/flashlight/flare/glowstick/random
|
||||
name = "random colored glowstick"
|
||||
icon_state = "random_glowstick"
|
||||
color = null
|
||||
|
||||
/obj/item/flashlight/flare/glowstick/random/Initialize()
|
||||
..()
|
||||
var/T = pick(typesof(/obj/item/flashlight/flare/glowstick) - /obj/item/flashlight/flare/glowstick/random - /obj/item/flashlight/flare/glowstick/emergency)
|
||||
new T(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/item/flashlight/flare/torch
|
||||
name = "torch"
|
||||
desc = "A torch fashioned from some leaves and a log."
|
||||
@@ -301,101 +381,4 @@ obj/item/flashlight/lamp/bananalamp
|
||||
anchored = TRUE
|
||||
var/range = null
|
||||
unacidable = TRUE
|
||||
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
|
||||
burn_state = LAVA_PROOF
|
||||
@@ -102,4 +102,4 @@
|
||||
|
||||
/obj/item/pizza_bomb/autoarm
|
||||
timer_set = 1
|
||||
timer = 10
|
||||
timer = 30 // 3 seconds
|
||||
@@ -8,6 +8,7 @@
|
||||
var/emagged = 0
|
||||
var/syndicate = 0
|
||||
var/area_bypass = FALSE
|
||||
var/cc_beacon = FALSE //set if allowed to teleport to even if on zlevel2
|
||||
|
||||
/obj/item/radio/beacon/New()
|
||||
..()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
/obj/item/encryptionkey/
|
||||
/obj/item/encryptionkey
|
||||
name = "Standard Encryption Key"
|
||||
desc = "An encyption key for a radio headset. Contains cypherkeys."
|
||||
icon = 'icons/obj/radio.dmi'
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user