diff --git a/_maps/map_files/cyberiad/z6.dmm b/_maps/map_files/cyberiad/z6.dmm index dea55a1ced0..b0f0d3bc2fc 100644 --- a/_maps/map_files/cyberiad/z6.dmm +++ b/_maps/map_files/cyberiad/z6.dmm @@ -744,9 +744,9 @@ "op" = (/obj/structure/table,/obj/item/wrench,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) "oq" = (/obj/structure/table,/obj/item/folder/syndicate/yellow,/obj/item/pen,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) "or" = (/obj/structure/cable,/obj/machinery/power/terminal,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) -"os" = (/obj/effect/spawner/random_spawners/syndicate/layout/door/vault,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) -"ot" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall/r_wall,/area/syndicate_depot) -"ou" = (/obj/structure/sign/poster/contraband/energy_swords,/turf/simulated/wall/r_wall,/area/syndicate_depot) +"os" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) +"ot" = (/obj/effect/landmark{dir = 6; name = "syndi_depot_shield"},/turf/simulated/wall/r_wall,/area/syndicate_depot) +"ou" = (/obj/effect/spawner/random_spawners/syndicate/layout/door/vault,/obj/effect/landmark{dir = 4; name = "syndi_depot_shield"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) "ov" = (/obj/effect/spawner/random_spawners/syndicate/mob,/turf/simulated/floor/mineral/plasma,/area/syndicate_depot) "ow" = (/obj/machinery/light/small{tag = "icon-bulb1 (EAST)"; icon_state = "bulb1"; dir = 4},/turf/simulated/floor/mineral/silver,/area/syndicate_depot) "ox" = (/obj/structure/sign/poster/official/state_laws,/turf/simulated/wall/r_wall,/area/syndicate_depot) @@ -762,12 +762,12 @@ "oH" = (/obj/machinery/atmospherics/unary/passive_vent/high_volume{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) "oI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) "oJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) -"oK" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/spawner/random_spawners/syndicate/layout/door/vault,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) +"oK" = (/obj/effect/landmark{dir = 4; name = "syndi_depot_shield"},/turf/simulated/wall/r_wall,/area/syndicate_depot) "oL" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) -"oM" = (/obj/machinery/porta_turret/syndicate/grenade,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) +"oM" = (/obj/structure/sign/poster/contraband/energy_swords,/obj/effect/landmark{dir = 4; name = "syndi_depot_shield"},/turf/simulated/wall/r_wall,/area/syndicate_depot) "oN" = (/obj/effect/decal/warning_stripes/north,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) "oO" = (/obj/effect/decal/warning_stripes/north,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) -"oP" = (/obj/structure/sign/poster/contraband/revolver,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/syndicate_depot) +"oP" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/landmark{dir = 4; name = "syndi_depot_shield"},/turf/simulated/wall/r_wall,/area/syndicate_depot) "oQ" = (/obj/machinery/atmospherics/unary/passive_vent/high_volume{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) "oR" = (/obj/effect/spawner/random_spawners/syndicate/turret,/mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) "oS" = (/obj/structure/mirror{pixel_x = -32},/turf/simulated/floor/mineral/plasma,/area/syndicate_depot) @@ -779,7 +779,7 @@ "oY" = (/obj/machinery/light{dir = 1; on = 1},/turf/simulated/floor/plating/airless/asteroid,/area/syndicate_depot/outer) "oZ" = (/obj/structure/sign/poster/official/obey,/turf/simulated/wall/r_wall,/area/syndicate_depot) "pa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/wall/r_wall,/area/syndicate_depot) -"pb" = (/obj/structure/sign/poster/contraband/syndicate_pistol,/turf/simulated/wall/r_wall,/area/syndicate_depot) +"pb" = (/obj/effect/landmark{dir = 10; name = "syndi_depot_shield"},/turf/simulated/wall/r_wall,/area/syndicate_depot) "pc" = (/mob/living/silicon/decoy/syndicate/depot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) "pd" = (/turf/simulated/mineral,/area/syndicate_depot) "pe" = (/obj/machinery/door_control{active_power_usage = 0; id = "syndi_depot_rear"; idle_power_usage = 0; name = "mysterious button"; normaldoorcontrol = 0; use_power = 0},/obj/structure/sign/poster/contraband/syndicate_recruitment,/turf/simulated/wall,/area/syndicate_depot) @@ -806,6 +806,14 @@ "pz" = (/obj/machinery/navbeacon/invisible{codes_txt = "patrol;next_patrol=SDNE"; invisibility = 100; location = "SDSE"},/turf/simulated/floor/plating/airless/asteroid,/area/syndicate_depot/outer) "pA" = (/turf/space,/area/syndicate_depot/outer) "pB" = (/obj/machinery/door_control{active_power_usage = 0; id = "syndi_depot_rear"; idle_power_usage = 0; name = "mysterious button"; normaldoorcontrol = 0; pixel_x = 24; use_power = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) +"pC" = (/obj/effect/landmark{name = "syndi_depot_shield"},/turf/simulated/wall/r_wall,/area/syndicate_depot) +"pD" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/spawner/random_spawners/syndicate/layout/door/vault,/obj/effect/landmark{name = "syndi_depot_shield"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) +"pE" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss/armory,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) +"pF" = (/obj/structure/sign/poster/contraband/revolver,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/landmark{name = "syndi_depot_shield"},/turf/simulated/wall/r_wall,/area/syndicate_depot) +"pG" = (/obj/effect/spawner/random_spawners/syndicate/layout/door/vault,/obj/effect/landmark{name = "syndi_depot_shield"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot) +"pH" = (/obj/effect/landmark{dir = 5; name = "syndi_depot_shield"},/turf/simulated/wall/r_wall,/area/syndicate_depot) +"pI" = (/obj/structure/sign/poster/contraband/syndicate_pistol,/obj/effect/landmark{dir = 4; name = "syndi_depot_shield"},/turf/simulated/wall/r_wall,/area/syndicate_depot) +"pJ" = (/obj/effect/landmark{dir = 9; name = "syndi_depot_shield"},/turf/simulated/wall/r_wall,/area/syndicate_depot) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -1026,13 +1034,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQmFmFaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQmFmgnnnqmFnrazaznsnsntaznunvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlRlRlTlTmknwmAmAmAmAmkmNnxnmmknymAmAmkmknzmkmkmCmkmkmkmAmAnxmNmklTlTlRlRlRlQlQaaaaaaaaaaaaaaaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlQlQmHazazazazaznAaznunBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalRlRlTlTmknCmAmAmAnDmkmAmAmAmCmAmAmAmCmAmAmBmvmAmAmAmCmAmAmAmAmklTlTlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlQnEnFnGaznHnAaznAaznAnunBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaaaaaaaalRlRlTnenInJmAmAmAmAmCnlmAmAmkmBmAmAmknKmAmAmAmAmAnLmkmZmsnMmAmkmllTlTlRlRlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQnNaznOazmpaznrazazaznAnunBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlRlRlTlTmknPmBmAmAmBmknQmCmkmkmknRmkmkmAnSnTnUnVmAnWmkmkmkmknXmkmelTlRlRlRlQbBlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQnYnnnZazoaazazobnsnsaznuocaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlRlTlTmemkmkmkmCmkmkmkodmAmvmsoeofogmkmAohnToinVmAojokolomonoomklTlTlRlRlRmFmFmFbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlQlQnYnnnnmmmmnnnnnnnnmJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlRlRlTlTmwmEmDmAmAopmkoqmAmAmAmAormkmkosotoumkmkmCmkmkokmkovowmklTlTlRlRlTmFbBmFmFaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlRlRlTlTmkmkoxnlmAmAmCmAmBmAnKmAoymkozoAoBoCoDmkmAmAmvmAmkoEoFmklTlTlRlRmdmFlQmFmFaaaabBlQmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQaalQlQlQlQlQmFmFlQlQlQlQlQlQlQlQlQlQlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalRlRlTlTnemkmNmAmAnDoGmAmAmAoHoIoJoKoLoMoNoOoOoPoLoQoRmAmkoSoTmkmllTlRlRlTmFlQlQmFaaaaaamFmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQmFmFmFlQlQlQlQlQlQlQlQlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalRlRlTlTlTmkmkmkmCmkmkoUnToVmAoWoXmkmAmAohmAmAosmAmAmAmAmknXmkmklTlTlRlRlTlQlQlQmFmFaalQbBlQmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQaaaaaaaamFmFlQmFlQlQmFmFmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlRlRlTlTmelToYmkmAnlmkoZmkmkmCpamkmkmkpbotosmkmknTnTmApcmkmAmBmklTlTpdpepflQmFmFmFmFbBlQaalQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQnNaznOazmpaznrazazaznAnunBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlRlRlTlTmknPmBmAmAmBmknQmCmkmkmknRmkmkmAnSnTososmAnWmkmkmkmknXmkmelTlRlRlRlQbBlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQnYnnnZazoaazazobnsnsaznuocaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlRlTlTmemkmkmkmCmkmkmkodmAmvmsoeofogmkmAohnToinUmAojokolomonoomklTlTlRlRlRmFmFmFbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlQlQnYnnnnmmmmnnnnnnnnmJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlRlRlTlTmwmEmDmAmAopmkoqmAmAmAmAorotoKouoPoMoKpbmCmkmkokmkovowmklTlTlRlRlTmFbBmFmFaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlRlRlTlTmkmkoxnlmAmAmCmAmBmAnKmAoypCozoAoBoCoDpCmAmAmvmAmkoEoFmklTlTlRlRmdmFlQmFmFaaaabBlQmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQaalQlQlQlQlQmFmFlQlQlQlQlQlQlQlQlQlQlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalRlRlTlTnemkmNmAmAnDoGmAmAmAoHoIoJpDoLpEoNoOoOpFoLoQoRmAmkoSoTmkmllTlRlRlTmFlQlQmFaaaaaamFmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQmFmFmFlQlQlQlQlQlQlQlQlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalRlRlTlTlTmkmkmkmCmkmkoUnToVmAoWoXpCmAmAohmAmApGmAmAmAmAmknXmkmklTlTlRlRlTlQlQlQmFmFaalQbBlQmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQaaaaaaaamFmFlQmFlQlQmFmFmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlRlRlTlTmelToYmkmAnlmkoZmkmkmCpamkpHoKpIoPouoKpJnTnTmApcmkmAmBmklTlTpdpepflQmFmFmFmFbBlQaalQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaamFlQlQlQlQlQlQmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlRlRlTlTlTlTlTmkmAmAmvmAmAmkmApgmkoUnTnTphmApimkmkmkmCmkmkpjpBmkmDmkpdpkplbBmFbBlQmFlQmFmFlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlRlRlRlRlRlTlTmkmknmpmnVmAmCmAoWmCmAmAmApnmAmAmCmAmvmApomCmAmAmDngpppqprpflQmFlQmFmFmFlQmFlQlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlTlTmkmkmkmkmkmkpsoWmkmAmAmAnKmAmAmkmBmAmAmAmMmAmAmkmDmkpdpdptlQmFmFmFlQmFlQmFbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index ad5f9483a8f..7014edddc2d 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -561,7 +561,8 @@ var/list/ghostteleportlocs = list() var/peace_betrayed = FALSE var/detected_mech = FALSE var/obj/structure/fusionreactor/reactor - + var/hostiles_seen_dead = list() + var/list/deployed_shields = list() /area/syndicate_depot/updateicon() if(destroyed) @@ -605,7 +606,6 @@ var/list/ghostteleportlocs = list() activate_self_destruct(reason, FALSE, null) updateicon() - /area/syndicate_depot/proc/locker_looted() something_looted = TRUE if(on_peaceful) @@ -781,11 +781,26 @@ var/list/ghostteleportlocs = list() to_chat(R, msg_text) R << sound('sound/misc/notice1.ogg') +/area/syndicate_depot/proc/shields_up() + if(deployed_shields.len) + return + for(var/obj/effect/landmark/L in landmarks_list) + if(L.name == "syndi_depot_shield") + var/obj/machinery/shieldwall/syndicate/S = new /obj/machinery/shieldwall/syndicate(L.loc) + S.dir = L.dir + deployed_shields += S + +/area/syndicate_depot/proc/shields_down() + for(var/obj/machinery/shieldwall/syndicate/S in deployed_shields) + qdel(S) + deployed_shields = list() + /area/syndicate_depot/outer name = "Suspicious Asteroid" icon_state = "green" + //EXTRA /area/asteroid // -- TLE diff --git a/code/game/machinery/computer/depot.dm b/code/game/machinery/computer/depot.dm index ebd0637b3dd..050da5b717a 100644 --- a/code/game/machinery/computer/depot.dm +++ b/code/game/machinery/computer/depot.dm @@ -155,9 +155,12 @@ req_access = list() /obj/machinery/computer/syndicate_depot/selfdestruct/get_menu(var/mob/user) - return {"Syndicate Depot Fusion Reactor Control
+ var menutext = {"Syndicate Depot Fusion Reactor Control


Disable Containment Field
"} + if(check_rights(R_ADMIN, 0, user)) + menutext += {"(ADMIN) Defense Shield: [depotarea.deployed_shields.len ? "ON" : "OFF"] ([depotarea.deployed_shields.len ? "Disable" : "Enable"])
"} + return menutext /obj/machinery/computer/syndicate_depot/selfdestruct/primary(var/mob/user) if(..()) @@ -170,6 +173,18 @@ depotarea.activate_self_destruct("Fusion reactor containment field disengaged. All hands, evacuate. All hands, evacuate!", TRUE, user) +/obj/machinery/computer/syndicate_depot/selfdestruct/secondary(var/mob/user) + if(..()) + return + if(!check_rights(R_ADMIN, 0, user)) + return + if(!istype(depotarea)) + return + if(depotarea.deployed_shields.len) + depotarea.shields_down() + else + depotarea.shields_up() + // Syndicate comms computer, used to activate visitor mode, and message syndicate. Traitor-only use. diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 5a8d04fa034..82d5939bf57 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -337,6 +337,7 @@ name = "syndicate vault hatch" req_access_txt = "151" assemblytype = /obj/structure/door_assembly/door_assembly_highsecurity + security_level = 6 hackProof = 1 aiControlDisabled = 1 diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 6ef4d064ac7..721eb01a7bd 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -607,3 +607,17 @@ return prob(10) else return !src.density + +/obj/machinery/shieldwall/syndicate/CanPass(atom/movable/mover, turf/target, height=0) + if(isliving(mover)) + var/mob/living/M = mover + if("syndicate" in M.faction) + return 1 + return ..(mover, target, height) + +/obj/machinery/shieldwall/syndicate/CanAStarPass(ID, to_dir, caller) + if(isliving(caller)) + var/mob/living/M = caller + if("syndicate" in M.faction) + return 1 + return ..(ID, to_dir, caller) diff --git a/code/game/objects/effects/spawners/random_spawners.dm b/code/game/objects/effects/spawners/random_spawners.dm index 26ea7e1fcd2..dcbeab2e7fc 100644 --- a/code/game/objects/effects/spawners/random_spawners.dm +++ b/code/game/objects/effects/spawners/random_spawners.dm @@ -276,7 +276,7 @@ /obj/effect/spawner/random_spawners/syndicate/loot/level4 name = "armory loot" icon_state = "4" - spawn_nothing_percentage = 30 + spawn_nothing_percentage = 0 // Loot schema: high-power weapons (m90, esword, ebow, revolver), devices that negate depot challenges (thermal glasses, chameleon device), explosives result = list( /obj/item/clothing/glasses/thermal = 1, diff --git a/code/game/objects/structures/depot.dm b/code/game/objects/structures/depot.dm index 4b7a9271fba..2167d565ae7 100644 --- a/code/game/objects/structures/depot.dm +++ b/code/game/objects/structures/depot.dm @@ -70,6 +70,7 @@ if(!depotarea.used_self_destruct) depotarea.used_self_destruct = TRUE // Silences all further alerts from this point onwards. depotarea.updateicon() + depotarea.shields_down() /obj/effect/overload/process() if(cycles < max_cycles) @@ -91,3 +92,4 @@ explosion(get_turf(src), 25, 35, 45, 55, 1, 1, 60, 0, 0) processing_objects.Remove(src) qdel(src) + diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 93109b5f343..1767e003534 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -41,6 +41,8 @@ loot = list(/obj/effect/landmark/mobcorpse/syndicatesoldier, /obj/item/melee/energy/sword/saber/red, /obj/item/shield/energy) /mob/living/simple_animal/hostile/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob, params) + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) if(O.force) if(prob(80)) var/damage = O.force @@ -70,33 +72,62 @@ /mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss name = "Syndicate Officer" + force_threshold = 6 // Prevents people using punches to bypass eshield + robust_searching = 1 // Together with stat_attack, ensures dionae/etc that regen are killed properly + stat_attack = 1 var/area/syndicate_depot/depotarea var/raised_alert = FALSE var/seen_enemy = FALSE var/aggro_cycles = 0 + var/seen_revived_enemy = FALSE + var/scan_cycles = 0 + var/shield_key = FALSE /mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss/New() ..() name = "[name] [pick(last_names)]" depotarea = areaMaster + if(prob(30)) + shield_key = TRUE /mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss/Aggro() - seen_enemy = TRUE + if(!seen_enemy) + seen_enemy = TRUE + playsound(loc, 'sound/weapons/saberon.ogg', 35, 1) ..() - if(target && istype(target, /obj/mecha)) - mech_alert() + if(target) + if(istype(target, /obj/mecha)) + mech_alert() + if(istype(depotarea) && target in depotarea.hostiles_seen_dead) + seen_revived_enemy = TRUE + depotarea.hostiles_seen_dead -= target + raise_alert("[name] reports intruder [target] has returned from death!") /mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss/handle_automated_action() if(seen_enemy) aggro_cycles++ if(!raised_alert && aggro_cycles >= 60) raise_alert("[name] has reported contact with hostile forces.") + if(scan_cycles >= 30 && depotarea) + scan_cycles = 0 + for(var/mob/living/body in hearers(vision_range, targets_from)) + if(body.stat != DEAD) + continue + if(body in depotarea.hostiles_seen_dead) + continue + if(faction_check(body)) + continue + say("Target [body]... terminated.") + depotarea.hostiles_seen_dead += body + pointed(body) + else + scan_cycles++ ..() /mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss/proc/raise_alert(var/reason) - if(depotarea && !raised_alert && !depotarea.used_self_destruct) - say("Intruder!") + if(istype(depotarea) && (!raised_alert || seen_revived_enemy) && !depotarea.used_self_destruct) raised_alert = TRUE + say("Intruder!") depotarea.increase_alert(reason) /mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss/proc/mech_alert() @@ -105,9 +136,32 @@ /mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss/death() raise_alert("[name] has died.") + if(shield_key && depotarea) + depotarea.shields_down() return ..() +/mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss/CanPass(atom/movable/mover, turf/target, height=0) + if(isliving(mover)) + var/mob/living/blocker = mover + if(faction_check(blocker)) + return 1 + return ..(mover, target, height) + + +/mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss/armory + name = "Syndicate Armory Officer" + icon_state = "syndicatemeleespace" + icon_living = "syndicatemeleespace" + maxHealth = 250 + health = 250 + +/mob/living/simple_animal/hostile/syndicate/melee/autogib/depotboss/armory/New() + . = ..() + spawn(100) + if(depotarea) + depotarea.shields_up() + /mob/living/simple_animal/hostile/syndicate/melee/space atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0