From b2d6ac4d826bd3e0851befc272b4c55ec744df08 Mon Sep 17 00:00:00 2001 From: zar3dman Date: Tue, 13 Feb 2018 21:58:53 -0500 Subject: [PATCH 01/54] Places first-aid and defib boxes around station, removes all but two old first aid posts. Renames them and adjusts them. --- maps/southern_cross/southern_cross-1.dmm | 255 +++++++++++------------ 1 file changed, 116 insertions(+), 139 deletions(-) diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index 0db48cbe6d..cb16c6ce10 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -950,9 +950,9 @@ "asn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "aso" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "asp" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"asq" = (/turf/simulated/wall,/area/medical/first_aid_station/firstdeck) -"asr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/medical/first_aid_station/firstdeck) -"ass" = (/turf/simulated/wall/r_wall,/area/medical/first_aid_station/firstdeck) +"asq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/maintenance/substation/firstdeck) +"asr" = (/turf/simulated/wall,/area/tcomm/chamber) +"ass" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals5,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "ast" = (/turf/unsimulated/mask,/area/hallway/primary/firstdeck/elevator) "asu" = (/turf/simulated/wall/r_wall,/area/tcomm/tcomstorage) "asv" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1008,22 +1008,22 @@ "att" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/firstdeck/port) -"atw" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"atx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals5,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"atw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"atx" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 4},/obj/structure/closet/medical_wall{pixel_y = 31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) "aty" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atB" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) "atD" = (/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"atE" = (/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"atF" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/first_aid_station/firstdeck) -"atG" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/sleep_console{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"atH" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/sleeper{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"atI" = (/obj/machinery/light{dir = 1},/obj/structure/bed/roller,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"atJ" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/item/bodybag,/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"atK" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/techmaint,/area/medical/first_aid_station/firstdeck) -"atL" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/tech_supply,/obj/item/weapon/storage/toolbox/mechanical,/obj/random/powercell,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/techmaint,/area/medical/first_aid_station/firstdeck) +"atE" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/sleep_console{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"atF" = (/obj/machinery/light{dir = 1},/obj/structure/bed/roller,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"atG" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/sleeper{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"atH" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) +"atI" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 1},/obj/structure/table/glass,/obj/machinery/recharger,/obj/structure/closet/secure_closet/medical_wall/pills{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"atJ" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/tech_supply,/obj/item/weapon/storage/toolbox/mechanical,/obj/random/powercell,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) +"atK" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) +"atL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/tcomm/tcomstorage) "atN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/tcomm/tcomstorage) "atO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1074,19 +1074,19 @@ "auH" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) "auI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "auJ" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/hallway/primary/firstdeck/port) -"auK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"auL" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) +"auK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) +"auL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) "auM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) "auN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) "auO" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) -"auP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"auQ" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5,12,19,25,27,28,35)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auT" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auU" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/door/window/westleft{name = "Medical Staff Only"; req_one_access = list(5)},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auV" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auW" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/paleblue/bordercorner,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) +"auP" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auQ" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auS" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auT" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auU" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/paleblue/bordercorner,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auV" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/obj/structure/closet/medical_wall{pixel_y = -31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"auW" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/brown/bordercorner{dir = 8},/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "auX" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/turf/simulated/floor,/area/tcomm/tcomstorage) "auY" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/tcomm/tcomstorage) "auZ" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1140,20 +1140,20 @@ "avV" = (/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/firstdeck/port) "avX" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"avY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"avY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avZ" = (/obj/machinery/camera/network/first_deck{c_tag = "First Deck - Port Hallway One"; dir = 1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awb" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awc" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) -"awf" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/paleblue/bordercorner2,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"awg" = (/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"awh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/table/glass,/obj/item/bodybag/cryobag,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"awi" = (/obj/structure/table/glass,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/item/device/defib_kit/loaded,/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"awj" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Deck One"; dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table/rack,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/roller,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"awk" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/structure/bed/chair/office/light{dir = 4},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"awl" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/borderfloorwhite{dir = 6},/obj/effect/floor_decal/corner/paleblue/border{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) +"awf" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/paleblue/bordercorner2,/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) +"awg" = (/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/emergency,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/random/firstaid,/obj/random/medical/lite,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"awh" = (/obj/structure/table/glass,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/item/device/defib_kit/loaded,/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"awi" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/table/glass,/obj/item/bodybag/cryobag,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/obj/item/bodybag/cryobag,/obj/item/bodybag,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"awj" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/structure/bed/chair/office/light{dir = 4},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"awk" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Deck One"; dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table/rack,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/roller,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"awl" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/borderfloorwhite{dir = 6},/obj/effect/floor_decal/corner/paleblue/border{dir = 6},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) "awm" = (/turf/simulated/floor,/area/tcomm/tcomstorage) "awn" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/tcomm/tcomstorage) "awo" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1203,8 +1203,8 @@ "axg" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "axh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2,/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "axi" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"axj" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall,/area/medical/first_aid_station/firstdeck) -"axk" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/first_aid_station/firstdeck) +"axj" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/starboard) +"axk" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/structure/closet/medical_wall{pixel_y = -31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/starboard) "axl" = (/obj/turbolift_map_holder/southern_cross/center,/turf/unsimulated/mask,/area/hallway/primary/firstdeck/elevator) "axm" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/tcomm/tcomstorage) "axn" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1261,8 +1261,8 @@ "aym" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) "ayn" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/machinery/door/window/southleft,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) "ayo" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/machinery/door/window/southright,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) -"ayp" = (/obj/structure/table/glass,/obj/machinery/recharger,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) -"ayq" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) +"ayp" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall,/area/ai_monitored/storage/eva/pilot) +"ayq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/ai_monitored/storage/eva/pilot) "ayr" = (/turf/simulated/wall/r_wall,/area/hallway/primary/firstdeck/elevator) "ays" = (/obj/effect/floor_decal/borderfloorblack{dir = 9},/obj/effect/floor_decal/industrial/danger{dir = 9},/turf/simulated/floor/tiled/techfloor/grid,/area/hallway/primary/firstdeck/elevator) "ayt" = (/obj/effect/floor_decal/borderfloorblack{dir = 1},/obj/effect/floor_decal/industrial/danger{dir = 1},/turf/simulated/floor/tiled/techfloor/grid,/area/hallway/primary/firstdeck/elevator) @@ -1307,10 +1307,10 @@ "azg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) "azh" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) "azi" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva/pilot) -"azj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"azk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"azl" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"azm" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/landmark/start{name = "Pilot"},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) +"azj" = (/obj/machinery/status_display,/turf/simulated/wall,/area/ai_monitored/storage/eva/pilot) +"azk" = (/obj/structure/table/glass,/obj/machinery/recharger,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva/pilot) +"azl" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva/pilot) +"azm" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/firstdeck/elevator) "azn" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "azo" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "azp" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) @@ -1377,18 +1377,18 @@ "aAy" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) "aAz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/apcenter) "aAA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) -"aAB" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"aAC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"aAD" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Pilot"},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"aAE" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"aAF" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"aAG" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) +"aAB" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAD" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/landmark/start{name = "Pilot"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAE" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAF" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Pilot"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aAH" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aAI" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aAJ" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aAK" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) -"aAL" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) -"aAM" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/effect/floor_decal/techfloor{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/hallway/primary/firstdeck/elevator) +"aAL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAM" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aAN" = (/obj/structure/closet/malf/suits,/turf/simulated/floor/tiled,/area/tcomm/entrance) "aAO" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/tcomm/entrance) "aAP" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/tcomm/entrance) @@ -1438,11 +1438,11 @@ "aBH" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/camera/network/first_deck{c_tag = "First Deck - Center Six"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) "aBI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/apcenter) "aBJ" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) -"aBK" = (/obj/structure/table/rack,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) -"aBL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/camera/network/civilian{c_tag = "CIV - Auxiliary EVA"; dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/closet/secure_closet/pilot,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) -"aBM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/closet/secure_closet/pilot,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) +"aBK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aBL" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aBM" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aBN" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/starboard) -"aBO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva/pilot) +"aBO" = (/obj/effect/floor_decal/techfloor{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/hallway/primary/firstdeck/elevator) "aBP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced,/obj/machinery/vending/snack,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) "aBQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/vending/fitness,/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) "aBR" = (/obj/machinery/vending/cigarette,/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) @@ -1497,9 +1497,9 @@ "aCO" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "crglockdown"; name = "Cargo Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area/maintenance/firstdeck/aftport) "aCP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/firstdeck/aftport) "aCQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) -"aCR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/apcenter) +"aCR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/camera/network/civilian{c_tag = "CIV - Auxiliary EVA"; dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/closet/secure_closet/pilot,/turf/simulated/floor/tiled/techmaint,/area/hallway/primary/firstdeck/elevator) "aCS" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) -"aCT" = (/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva/pilot) +"aCT" = (/obj/structure/table/rack,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/techmaint,/area/hallway/primary/firstdeck/elevator) "aCU" = (/obj/structure/stairs/north,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) "aCV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/lapvend,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) "aCW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/table/glass,/obj/structure/window/reinforced{dir = 1},/obj/item/device/paicard,/obj/item/clothing/head/soft/grey,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) @@ -1945,7 +1945,7 @@ "aLu" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/steel_dirty,/area/engineering/auxiliary_engineering) "aLv" = (/obj/random/obstruction,/turf/simulated/floor/plating,/area/storage/emergency_storage/firstdeck/as_emergency) "aLw" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/storage/emergency_storage/firstdeck/as_emergency) -"aLx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/closet/crate/secure/gear{name = "parachute crate"; req_access = list(67)},/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) +"aLx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/closet/crate/secure/gear{name = "parachute crate"; req_access = list(67)},/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/turf/simulated/floor/tiled/techmaint,/area/hallway/primary/firstdeck/elevator) "aLy" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/hangar/two) "aLz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/monotile,/area/hangar/two) "aLA" = (/obj/machinery/door/airlock/glass_centcom{req_one_access = list(67)},/turf/simulated/shuttle/floor/black,/area/shuttle/shuttle2/start) @@ -2220,8 +2220,8 @@ "aQJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/storage/emergency_storage/firstdeck/aft_emergency) "aQK" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/storage/emergency_storage/firstdeck/aft_emergency) "aQL" = (/turf/simulated/wall,/area/hallway/primary/firstdeck/aft) -"aQM" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/aft) -"aQN" = (/obj/machinery/camera/network/first_deck{c_tag = "First Deck - Aft Hallway Four"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/aft) +"aQM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/closet/secure_closet/pilot,/turf/simulated/floor/tiled/techmaint,/area/hallway/primary/firstdeck/elevator) +"aQN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/firstdeck/elevator) "aQO" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/monotile,/area/security/checkpoint3) "aQP" = (/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/monotile,/area/security/checkpoint3) "aQQ" = (/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/monotile,/area/security/checkpoint3) @@ -3582,8 +3582,8 @@ "bqT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/security/brig) "bqU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/secondary/eva_hallway) "bqV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/security/brig) -"bqW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) -"bqX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"bqW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/elevator) +"bqX" = (/obj/effect/floor_decal/borderfloor{dir = 10},/obj/effect/floor_decal/corner/green/border{dir = 10},/obj/effect/floor_decal/borderfloor/corner2{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/aft) "bqY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "bqZ" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "bra" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) @@ -3655,10 +3655,10 @@ "bso" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/security/lobby) "bsp" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/hallway/secondary/eva_hallway) "bsq" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/security/lobby) -"bsr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) -"bss" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) -"bst" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) -"bsu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"bsr" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_x = -31; pixel_y = 0},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/aft) +"bss" = (/obj/machinery/camera/network/first_deck{c_tag = "First Deck - Aft Hallway Four"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/structure/closet/medical_wall{pixel_x = 31; pixel_y = 0},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/aft) +"bst" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"bsu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "bsv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Fore Starboard Hallway One"; dir = 1},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "bsw" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/monotile,/area/security/lobby) "bsx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) @@ -3711,10 +3711,10 @@ "bts" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "btt" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/maintenance/security_port) "btu" = (/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) -"btv" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall/r_wall,/area/hallway/secondary/eva_hallway) -"btw" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"btv" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"btw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "btx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) -"bty" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 6},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"bty" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "btz" = (/turf/simulated/wall,/area/janitor) "btA" = (/obj/structure/noticeboard{pixel_x = -32},/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/northleft{name = "Janitorial Desk"},/obj/machinery/door/window/southright{name = "Janitorial Desk"; req_access = list(26)},/obj/machinery/door/blast/shutters{dir = 1; id = "janitor_blast"; layer = 3.1; name = "Janitorial Shutters"},/turf/simulated/floor/tiled,/area/janitor) "btB" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Custodial Closet"; req_access = list(26)},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/janitor) @@ -3768,9 +3768,9 @@ "bux" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "buy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/firstdeck/gym) "buz" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Fore Hallway Two"; dir = 8},/obj/machinery/light{dir = 4},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/red/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) -"buA" = (/turf/simulated/wall,/area/medical/first_aid_station/seconddeck/fore) -"buB" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/first_aid_station/seconddeck/fore) -"buC" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5,12,19)},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"buA" = (/obj/structure/table/bench/steel,/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"buB" = (/obj/structure/table/bench/steel,/obj/structure/closet/medical_wall{pixel_x = 0; pixel_y = -31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"buC" = (/obj/structure/table/bench/steel,/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "buD" = (/obj/item/weapon/stool/padded,/obj/effect/landmark/start{name = "Janitor"},/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/purple/border{dir = 9},/turf/simulated/floor/tiled,/area/janitor) "buE" = (/obj/machinery/button/remote/blast_door{id = "janitor_blast"; name = "Privacy Shutters"; pixel_x = 0; pixel_y = 26},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/purple/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/janitor) "buF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) @@ -3831,9 +3831,9 @@ "bvI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/blue/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "bvJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/junction,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "bvK" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) -"bvL" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = -25; pixel_y = 0},/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"bvL" = (/obj/structure/sign/directions/cryo{pixel_y = -10},/turf/simulated/wall,/area/maintenance/research) "bvM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) -"bvN" = (/obj/structure/bed/roller,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{pixel_x = 36; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"bvN" = (/obj/structure/sign/poster,/turf/simulated/wall,/area/maintenance/research) "bvO" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/powercell,/obj/item/weapon/coin/silver,/turf/simulated/floor/plating,/area/maintenance/engineering) "bvP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/janitor) "bvQ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/janitor) @@ -3901,9 +3901,9 @@ "bxa" = (/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/fore) "bxb" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/blue/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "bxc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/monotile,/area/ai_monitored/storage/eva) -"bxd" = (/obj/structure/bed/chair/office/light{dir = 1},/obj/machinery/newscaster{pixel_x = -28; pixel_y = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) -"bxe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) -"bxf" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"bxd" = (/obj/random/contraband,/turf/simulated/floor/plating,/area/maintenance/research) +"bxe" = (/obj/item/frame,/turf/simulated/floor/plating,/area/maintenance/research) +"bxf" = (/obj/structure/frame{anchored = 1},/turf/simulated/floor/plating,/area/maintenance/research) "bxg" = (/obj/structure/closet/l3closet/janitor,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/purple/border{dir = 8},/turf/simulated/floor/tiled,/area/janitor) "bxh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/janitor) "bxi" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) @@ -3956,9 +3956,9 @@ "byd" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "bye" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "byf" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/red/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) -"byg" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Fore"; dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/effect/floor_decal/borderfloorwhite{dir = 10},/obj/effect/floor_decal/corner/paleblue/border{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) -"byh" = (/obj/machinery/sleep_console{dir = 4},/obj/machinery/light,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) -"byi" = (/obj/machinery/sleeper{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 6},/obj/effect/floor_decal/corner/paleblue/border{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"byg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/closet/medical_wall{pixel_x = 0; pixel_y = -31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) +"byh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) +"byi" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/turf/simulated/floor,/area/hallway/primary/seconddeck/port) "byj" = (/obj/structure/closet/jcloset,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/soap/nanotrasen,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/purple/border{dir = 8},/turf/simulated/floor/tiled,/area/janitor) "byk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/janitor) "byl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/janitor) @@ -4578,7 +4578,7 @@ "bKb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/engineering/locker_room) "bKc" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/engineering/locker_room) "bKd" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/engineering/locker_room) -"bKe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"bKe" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/random/firstaid,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "bKf" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/effect/floor_decal/spline/plain{dir = 8},/turf/simulated/floor/tiled/yellow,/area/engineering/locker_room) "bKg" = (/obj/random/toolbox,/turf/simulated/floor/tiled/steel,/area/maintenance/engineering) "bKh" = (/turf/simulated/floor/tiled/yellow,/area/maintenance/engineering) @@ -4922,7 +4922,7 @@ "bQH" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/tiled/dark,/area/engineering/workshop) "bQI" = (/obj/machinery/papershredder,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 6; name = "Chief Engineer RC"; pixel_x = -32; pixel_y = 0},/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/blue/border{dir = 9},/turf/simulated/floor/tiled,/area/crew_quarters/heads/sc/chief) "bQJ" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/crew_quarters/heads/sc/chief) -"bQK" = (/obj/structure/sign/directions/cryo{pixel_y = -10},/turf/simulated/wall,/area/medical/first_aid_station/seconddeck/fore) +"bQK" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 1},/obj/structure/closet/medical_wall{pixel_x = 0; pixel_y = 31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "bQL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/heads/sc/chief) "bQM" = (/obj/machinery/disposal,/obj/machinery/light{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/blue/border{dir = 5},/turf/simulated/floor/tiled,/area/crew_quarters/heads/sc/chief) "bQN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled,/area/engineering/hallway/atmos_hallway) @@ -4951,7 +4951,7 @@ "bRk" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/fscenter) "bRl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fscenter) "bRm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/seconddeck/fore) -"bRn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"bRn" = (/obj/machinery/door/airlock/glass_medical{name = "Triage Station"; req_one_access = list(5)},/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/medical/first_aid_station/seconddeck/aft) "bRo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/seconddeck/fore) "bRp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/research) "bRq" = (/obj/structure/table/standard,/obj/random/toolbox,/obj/random/cigarettes,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tool,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/research) @@ -6013,8 +6013,8 @@ "clG" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) "clH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) "clI" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) -"clJ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) -"clK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) +"clJ" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/random/medical/lite,/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Civilian"; dir = 1},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) +"clK" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/obj/structure/closet/medical_wall{pixel_x = 0; pixel_y = 31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/bridge) "clL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) "clM" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/seconddeck/port) "clN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fpcenter) @@ -6103,10 +6103,7 @@ "cns" = (/turf/simulated/wall,/area/ai_monitored/storage/emergency/eva) "cnt" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Emergency EVA"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/ai_monitored/storage/emergency/eva) "cnu" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Emergency EVA"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/ai_monitored/storage/emergency/eva) -"cnv" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall,/area/ai_monitored/storage/emergency/eva) -"cnw" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) -"cnx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) -"cny" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 6},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) +"cnv" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = 31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/bridge) "cnz" = (/turf/simulated/wall,/area/hallway/primary/seconddeck/port) "cnA" = (/turf/simulated/wall,/area/maintenance/bar) "cnB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_access = null; req_one_access = list(12,25,27,28,35)},/turf/simulated/floor/plating,/area/maintenance/bar) @@ -6178,9 +6175,6 @@ "coP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "coQ" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "coR" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/emergency/eva) -"coS" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/first_aid_station/seconddeck/port) -"coT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5,12,19)},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/medical/first_aid_station/seconddeck/port) -"coU" = (/turf/simulated/wall,/area/medical/first_aid_station/seconddeck/port) "coV" = (/obj/structure/closet/emcloset,/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bar) "coW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bar) "coX" = (/turf/simulated/wall/r_wall,/area/hallway/primary/seconddeck/apcenter) @@ -6279,9 +6273,6 @@ "cqM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "cqN" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "cqO" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/emergency/eva) -"cqP" = (/obj/structure/bed/roller,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"cqQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"cqR" = (/obj/structure/table/glass,/obj/machinery/recharger,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 25; pixel_y = 0},/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) "cqS" = (/obj/machinery/light/small{dir = 8},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bar) "cqT" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/apcenter) "cqU" = (/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/apcenter) @@ -6372,9 +6363,6 @@ "csB" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced,/obj/machinery/door/window/eastright,/obj/item/clothing/suit/space,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/emergency/eva) "csC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "csD" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) -"csE" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"csF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"csG" = (/obj/structure/bed/chair/office/light{dir = 1},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) "csH" = (/obj/structure/reagent_dispensers/watertank,/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bar) "csI" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/apcenter) "csJ" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/apcenter) @@ -6454,9 +6442,6 @@ "cuf" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "cug" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "cuh" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/emergency/eva) -"cui" = (/obj/machinery/sleeper{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/borderfloorwhite{dir = 10},/obj/effect/floor_decal/corner/paleblue/border{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"cuj" = (/obj/machinery/sleep_console,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"cuk" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Port"; dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 6},/obj/effect/floor_decal/corner/paleblue/border{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) "cul" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bar) "cum" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Center Six"; dir = 4},/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/apcenter) "cun" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/apcenter) @@ -6662,7 +6647,6 @@ "cyf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/command{c_tag = "COM - HoP's Office"; dir = 1},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/blue/border{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/heads/sc/hop) "cyg" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/sc/hop) "cyh" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/ascenter) -"cyi" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/seconddeck/port) "cyj" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/ascenter) "cyk" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/ascenter) "cyl" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/ascenter) @@ -8406,10 +8390,8 @@ "dfH" = (/turf/simulated/wall/r_wall,/area/holodeck_control) "dfI" = (/obj/structure/table/glass,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = 28},/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite{dir = 9},/obj/effect/floor_decal/corner/paleblue/border{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dfJ" = (/obj/structure/table/glass,/obj/machinery/recharger,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) -"dfK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dfL" = (/obj/structure/bed/roller,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dfM" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/first_aid_station/seconddeck/aft) -"dfN" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dfO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dfP" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/chapel/main) "dfQ" = (/obj/structure/table/woodentable,/obj/structure/flora/pottedplant/stoutbush{pixel_y = 8},/turf/simulated/floor/tiled/dark,/area/chapel/main) @@ -8435,7 +8417,6 @@ "dgk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dgl" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dgm" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) -"dgn" = (/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5,12,19,25,27,28,35)},/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/medical/first_aid_station/seconddeck/aft) "dgo" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dgp" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dgq" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) @@ -8461,7 +8442,6 @@ "dgK" = (/obj/machinery/sleeper{dir = 8},/obj/effect/floor_decal/borderfloorwhite{dir = 10},/obj/effect/floor_decal/corner/paleblue/border{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dgL" = (/obj/machinery/sleep_console,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dgM" = (/obj/item/weapon/stool/padded,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) -"dgN" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Civilian"; dir = 1},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dgO" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dgP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dgQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) @@ -10163,9 +10143,7 @@ "dNw" = (/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/wood,/area/bridge/meeting_room) "dNx" = (/turf/simulated/wall/r_wall,/area/bridge) "dNy" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge) -"dNz" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge) "dNA" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/white/border,/obj/machinery/atm{pixel_y = -30},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway) -"dNB" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge) "dNC" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge) "dND" = (/obj/structure/displaycase,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd) "dNE" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd) @@ -10192,7 +10170,6 @@ "dNZ" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/bridge) "dOa" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/camera/network/command{c_tag = "COM - Bridge Port"; dir = 6},/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/secure_closet/guncabinet/sidearm{anchored = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/turf/simulated/floor/tiled,/area/bridge) "dOb" = (/obj/structure/noticeboard{pixel_y = 27},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/turf/simulated/floor/tiled,/area/bridge) -"dOc" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/turf/simulated/floor/tiled,/area/bridge) "dOd" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/bridge) "dOe" = (/obj/structure/cryofeed{dir = 2},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/industrial/warning/cee{tag = "icon-warningcee (NORTH)"; icon_state = "warningcee"; dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/cryo/station) "dOf" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/bridge) @@ -10693,16 +10670,16 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafajUajUaonaooaopaoqaorajUaosaosaotaouaovaowaoxaoyaozaoAaoBaoCaoCaoDaoyaoEaoEaoFaoGaGVaoIaoJaoGaoKafeacJaoLaoMaoNacJaaaaaaaiCaoOaoPaoQamoaoRaoSaoRamoakQampampampampampaoTaoUaoUaoUaoVaoWaoXaoYaoZapaapbakRapcapdapeaiKaaaaaaadcapfafzapgaphapiapjapkaplapmapnapkapvappappapqaprapsapsaptapuaqDapqapwapxapyapzapAapBapBakzapCapDapEapFapGakzakzaafaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaajUajUapHapHaooapIapJapJapKapLapMapNapOapPapQapRaoyaozapSapTaoCaoCaoCaoyapUapUapVapWapXapYapZaoGaqaaqbaqcaqdaqeaqfacJaaaaaaaiBaqgaqhaqiamoaqjaqkaqjamoakQaqlaqmaqnaqoaqpaqqaqraqoaqsaqtaquaqvaqwaqxaqyaqzakRaqAapdaqBaiJaaaaaaadcaqCafzafzafzafzafzaqIaqEaqFaqGaqHarCaqJaqJapqaqKaqLapsaqMapuapuapqaqNaqOaqPaqQaqRaqSaqTaqUaqVaqVaqVaqVaqVaqVakzakzaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUaqWaooajUajUajUajUajUajUaqXaqYaqYaqYaqZaraarbaoyarcaoCapTardarearfaoyargarhariaoGaIxarkaJyaoGarmarnaroarparqarracJarsarsartaruarvajbalEaqjaqkaqjamoakQakQakQakQakQakQakQakQakQakQakQakRakRakRalOarwarxakRaryarzarAarBarIarIadcarDafzarEarEarEarEapkaJAarGaKtapkarKarJasjapqarLarMarNaqMarOapuapqarParQarRarSarSarSaolakzakzakzakzakzakzakXakYakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUarTaooajUarUarUarUarUarUaqXarVarWarXarYarZasaasbascaoyasdaoyaoyaoyaoyaseasfasgashaoGaoGaoGaoGasiacJaqYaqYacJasCaqYcwFaslasmasnasoaspasqasqasrasqasqassassassassastastastastastasuasvaswasxasyaszasAasBasuasEasDasGasFasIasHasLasJadcasLasLasLasLapkapkapkapkasKasNasMasUapqapqapqapqasOapqasPasQasRasSasTasLasVasXasWatSatSatSatSatSakzakXakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaafaaaaaaaaaasYasZaooajUarUarUarUarUarUataatbatcatdateatfatgathatiateatjathatkatbatlatmatnatoatpatpatpatqatratsattatuatvatwatxatyatzatpatAatBatCatDatEatFatGatHatIatJatKatLassastastastastastasuatMatNatOasyatPatQatRasuatUatTatWatVatYatXauaatZaucaubaueaudaugaufatVauhatYatYauiarJatVaujaulaukaugaumatVaunaugauoaupatVaurauqatYaveatSatSatSatSatSakzausakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafasYaooauuajUarUarUarUarUarUauvauwauxauyauyauzauAauAauBauCauDauAauEauAauAauFauGauHauAauAauCauAauAauEauAauIauJauKauLauAauMauAauAauNauOauAauPauQauRauSauTauUauVauWassastastastastastasuauXauYauZavaavbavcavdasuavgavfaviavhavhavjavhavkavmavlavoavnavqavpavpavravpavpavtavsavpavpavravuavpavvavpavwavpavpavyavxavxavzawravAatSatSatSatSatSakzavBakXautaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaafaaaaaaaaaasYaooavCajUarUarUarUarUarUavDavEavFavGavHavIavJavKavLavMavNavOavEavEavPavQasfavRavEavEavSavHavTavKavUavVavWavXavYavZawaawbawcawdaweatDawfatFawgawhawiawjawkawlassastastastastastasuawmawnawoasyavdawpawqasuawtawsawuasjawwawvawyawxawzaubawBawAawDawCawEawwawwawwawFarJasjawGawwawHawJawIasjawKawDawLawMasjawOawNawwaxpatSatSatSatSatSakzawPakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaajUaooaooajUawQarUarUarUarUaqXawRawSaqYawTawUawVawWawXawVawYawVawVawVawVawZasfaxaaqYaqYaqYaqYaqYaqYaqYaqYaqYaxbaxcaqYaxdaxeaxfaxgaxhaxiaxjasqasraxkasqasqasqasqassaxlastastastastasuaxmaxnaxoasyaszasAaszasuaxraxqaxuaxsasVaxyasLaxzaxvasLasLasLasLaxwaxwaxwaxwaxxaxIaxAaxJaxBaxBaxBaxBaxCaxBaxDaxEaxFaxGaxHaxKasVayJasWayKatSatSatSatSakzaxLakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUaxMaooajUajUajUajUajUajUaqXaqYaqYaqYaxNaooawVaxOaxPaxQaxRaxSaxPaxTawVaxUaxVaxWaxbaxXaxYaxZayaayaaybaycaydayeayfaxbarsarsaygayhayiayjaykaylaymaynayoaykaypayqayrayraysaytayuayrasuasuasuasuasuasuayvasuasuaywayxayyayzarIarIaxvayAayBayCayDayEayFaxwaKuayHaNfaxwazqarJazBaxBayLayMaxBayNayOayPaxBayQayRaySayTayTayTayUakzakzakzakzakzakzaqVakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaajUajUaooaooaooaooapHapHapHapHapHayVayWayWayXawVaxOaxPaxPayYaxPaxPaxTawVayZazaazaazbaxZaxZazcazcazcazcazcazcazcazdaxbaaaaaaazeazfazgazhaziazjazkazlazmaziaznazoazpazCazrazsaztazuazvazwazxazyazzazAazJazOazzazDazEazFazGaaaaaaaxvazHayBazIazIazIazIazPazKazLazMazNaBNaBuaBuaxBazQazRazSayNazTazUaxBazVazWazXazYazZaAaaAbaAcaAdaAdaAeaqVaqVaqVakzakzaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafajUajUaAfaAfaAgaAhaAiaAjaAkaAlawTaAmaAmaAmawVaxOaAnaxPaAoaxPaApaAqawVaAraAsaAsaAtaAtaAtaAtaAtaAtaAtaAtaAuaAvaAwaxbaaaaaaaAxaAyaAzaAAaABaACaADaAEaAFaAGaAHaAIaAJaAJaAKaAJaALaAMazvaANaAOaAPaAQaARaASaATazzaAUaAVaAWaAXaaaaaaaxvaAYayBazIaAZaBaaBaaxwaBbaBcaBdaxwapvappappaxBaBeaBfaxBaBgazRaBhaxBaBiaBjaBkaBlaBmaBnaBnakzaBoakXaBpaBqaBrakzakzaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUajUaAfaBsaBsaBsaBsaBtaBtaBsaBsaKraBsaBsaBsaBsaBsaBsaBsaBsaBsaBvaBwaBxaByaAtaBzaBAaBBaBCaBDaBEaAtaxbaBFaBGaxbaaaaaaaAxaBHaBIaBJaziaBKaBLaBMaLxaBOaBPaBQaBRaBSaBTaBUaBVaBWazvaBXaBYaBZaCaaCbaCcaCdazzaCeaCfaCgaAXaaaaaaaxvaChaCiazIaCjaCjaCjaCkaClaClaClaCkaCmaCkaCnaCkaCjaCjaCjaCjaCjaCjaCjayUayUayUayUayUaCoaCoakzakzakzakzakzakzakzaaaaaaaaaadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawTakAaBtaCpaCqaCraCsaCtaCuaCvaCwaCxaCtaCyaCzaCAaCBaCCaCDaCEaCFaCGaCHaCIaCJaCKaCLaCMaCMaCMaCNaAtaCOaCPaxbaxbaaaaaaaAxaCQaCRaCSaCTaCTaykaykaykaykaCUaCVaCWaCXaCYaCZaDaaDbaDcaDdaDeaDfazzaDgaDhazzazzaDiaDjaDkaAXaaaaaaaxvaxvaDlaDmaCjaDnaDoaDpaDpaDpaDpaDqaDraDsaDtaDuaDuaDvaDuaDuaDwaDxaCjaDyaDzaDzaDzaDAaDBaDBaDCaDzaDzaDzaDDaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUarTaooajUarUarUarUarUarUaqXarVarWarXarYarZasaasbascaoyasdaoyaoyaoyaoyaseasfasgashaoGaoGaoGaoGasiacJaqYaqYacJasCaqYcwFaslasmasnasoaspalEalEasqalEasrakQakQakQakQastastastastastasuasvaswasxasyaszasAasBasuasEasDasGasFasIasHasLasJadcasLasLasLasLapkapkapkapkasKasNasMasUapqapqapqapqasOapqasPasQasRasSasTasLasVasXasWatSatSatSatSatSakzakXakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaafaaaaaaaaaasYasZaooajUarUarUarUarUarUataatbatcatdateatfatgathatiateatjathatkatbatlatmatnatoatpatpatpatqatratsattatuatvatwassatyatzatpatAatBatCatDatxaziatEatGatFatIatHatJayrastastastastastasuatMatNatOasyatPatQatRasuatUatTatWatVatYatXauaatZaucaubaueaudaugaufatVauhatYatYauiarJatVaujaulaukaugaumatVaunaugauoaupatVaurauqatYaveatSatSatSatSatSakzausakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafasYaooauuajUarUarUarUarUarUauvauwauxauyauyauzauAauAauBauCauDauAauEauAauAauFauGauHauAauAauCauAauAauEauAauIauJatLatKauAauMauAauAauNauOauAauKauPauLauRauQauTauSauUayrastastastastastasuauXauYauZavaavbavcavdasuavgavfaviavhavhavjavhavkavmavlavoavnavqavpavpavravpavpavtavsavpavpavravuavpavvavpavwavpavpavyavxavxavzawravAatSatSatSatSatSakzavBakXautaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaafaaaaaaaaaasYaooavCajUarUarUarUarUarUavDavEavFavGavHavIavJavKavLavMavNavOavEavEavPavQasfavRavEauVavSauWavTavKavUavVavWavXavYavZawaawbawcawdaweatDawfaziawgawiawhawkawjawlayrastastastastastasuawmawnawoasyavdawpawqasuawtawsawuasjawwawvawyawxawzaubawBawAawDawCawEaxjaxkawwawFarJasjawGawwawHawJawIasjawKawDawLawMasjawOawNawwaxpatSatSatSatSatSakzawPakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaajUaooaooajUawQarUarUarUarUaqXawRawSaqYawTawUawVawWawXawVawYawVawVawVawVawZasfaxaaqYaqYaqYaqYaqYaqYaqYaqYaqYaxbaxcaqYaxdaxeaxfaxgaxhaxiaypaykayqazjaykaykaykaykayraxlastastastastasuaxmaxnaxoasyaszasAaszasuaxraxqaxuaxsasVaxyasLaxzaxvasLasLasLasLaxwaxwaxwaxwaxxaxIaxAaxJaxBaxBaxBaxBaxCaxBaxDaxEaxFaxGaxHaxKasVayJasWayKatSatSatSatSakzaxLakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUaxMaooajUajUajUajUajUajUaqXaqYaqYaqYaxNaooawVaxOaxPaxQaxRaxSaxPaxTawVaxUaxVaxWaxbaxXaxYaxZayaayaaybaycaydayeayfaxbarsarsaygayhayiayjaykaylaymaynayoaykazkazlayrayraysaytayuayrasuasuasuasuasuasuayvasuasuaywayxayyayzarIarIaxvayAayBayCayDayEayFaxwaKuayHaNfaxwazqarJazBaxBayLayMaxBayNayOayPaxBayQayRaySayTayTayTayUakzakzakzakzakzakzaqVakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaajUajUaooaooaooaooapHapHapHapHapHayVayWayWayXawVaxOaxPaxPayYaxPaxPaxTawVayZazaazaazbaxZaxZazcazcazcazcazcazcazcazdaxbaaaaaaazeazfazgazhazmaACaABaAEaADazmaznazoazpazCazrazsaztazuazvazwazxazyazzazAazJazOazzazDazEazFazGaaaaaaaxvazHayBazIazIazIazIazPazKazLazMazNaBNaBuaBuaxBazQazRazSayNazTazUaxBazVazWazXazYazZaAaaAbaAcaAdaAdaAeaqVaqVaqVakzakzaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafajUajUaAfaAfaAgaAhaAiaAjaAkaAlawTaAmaAmaAmawVaxOaAnaxPaAoaxPaApaAqawVaAraAsaAsaAtaAtaAtaAtaAtaAtaAtaAtaAuaAvaAwaxbaaaaaaaAxaAyaAzaAAaAFaALaAGaBKaAMaBLaAHaAIaAJaAJaAKaAJaBMaBOazvaANaAOaAPaAQaARaASaATazzaAUaAVaAWaAXaaaaaaaxvaAYayBazIaAZaBaaBaaxwaBbaBcaBdaxwapvappappaxBaBeaBfaxBaBgazRaBhaxBaBiaBjaBkaBlaBmaBnaBnakzaBoakXaBpaBqaBrakzakzaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUajUaAfaBsaBsaBsaBsaBtaBtaBsaBsaKraBsaBsaBsaBsaBsaBsaBsaBsaBsaBvaBwaBxaByaAtaBzaBAaBBaBCaBDaBEaAtaxbaBFaBGaxbaaaaaaaAxaBHaBIaBJazmaCTaCRaQMaLxaQNaBPaBQaBRaBSaBTaBUaBVaBWazvaBXaBYaBZaCaaCbaCcaCdazzaCeaCfaCgaAXaaaaaaaxvaChaCiazIaCjaCjaCjaCkaClaClaClaCkaCmaCkaCnaCkaCjaCjaCjaCjaCjaCjaCjayUayUayUayUayUaCoaCoakzakzakzakzakzakzakzaaaaaaaaaadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawTakAaBtaCpaCqaCraCsaCtaCuaCvaCwaCxaCtaCyaCzaCAaCBaCCaCDaCEaCFaCGaCHaCIaCJaCKaCLaCMaCMaCMaCNaAtaCOaCPaxbaxbaaaaaaaAxaCQbqWaCSayrayraEiaEiaEiaEiaCUaCVaCWaCXaCYaCZaDaaDbaDcaDdaDeaDfazzaDgaDhazzazzaDiaDjaDkaAXaaaaaaaxvaxvaDlaDmaCjaDnaDoaDpaDpaDpaDpaDqaDraDsaDtaDuaDuaDvaDuaDuaDwaDxaCjaDyaDzaDzaDzaDAaDBaDBaDCaDzaDzaDzaDDaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawTakAaBtaDEaDFaDGaDHaDHaDIaDJaDJaDKaDLaDMaDNaDNaDOaDPaDQaDRaDSaDTaDUaDVaDWaDXaDYaDZaCMaCMaEaaEbaCOaCPaEcaaaaaaaaaazeaEdaEeaEfaEgayrayraEhaEhaEiaEjaEkaBUaBUaBUaElaBVaEmaEnaEoaEpaEqazzazzazzazzaEraEsaEtaEuazGaaaaaaaaaaEvaDlaEwaCjaExaEyaEzaEAaEAaEAaEAaEAaEAaEAaEAaEAaEAaEAaEBaECaEDaCjaEEaEFaEGaEHaEIaEJaEKaELaEMaENaEOaDzaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawTakAaBtaDEaEPaEQaERaERaERaERaERaEQaESaETaDPaDPaEUaDPaDPaEVaEWaEXaEYaEZaFaaFbaCMaFcaFdaFeaFfaAtaCOaCPaEcaaaaaaaaaazeazeaFgaEfaEfaFhaEiayraEhaEiaFiaFjaFkaFlaBUaFmaFnaFoazvaFpaFqaFqaFrazzaFsaFtaFuaEsaFvazGazGaaaaaaaaaaEvaDlaFwaCjaDnaFxaFyaFzaFAaFBaFzaFzaFzaFzaFzaFAaFBaFzaFCaFxaNgaCjaEEaEFaFEaEKaEKaEKaEKaEKaEKaEKaFFaFGaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawTakAaBtaDEaEPaERaERaERaERaERaERaERaESaFHaDPaDPaEUaDPaDPaFIaBxaFJaFKaFLaFMaFNaFOaFPaFQaFRaFSaAtaxbaFTaEcaaaaaaaaaaaaaAxaEfaEfaEfaEfaFUayrayrayraFVayraFWaFXaFYaBUaGaaGbaGcaGdaGeaGfazvazvaGgaGhaGiaGjaFuaAXaaaaaaaaaaaaaEvaDlaGkaCjbNQaFxaFyaFzaGmaGmaGnaFzaFzaFzaGnaGmaGmaFzaFCaFxcBpaCjaEEaEFaGpaGqaGraGsaGtaGuaGvaGwaEOaDzaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10723,8 +10700,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaEcaEcayfaPgaLKaMGaMGaPhaMGaMGaPiaMGaMGaPjaMGaMGaPkaPlaOTaPmaPnaPoaPoaPpaPoaPoaPoaPoaPoaPqaPoaPoaKMaPraPsaEvaEvaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaEcaPtaPuaPvaPwaPxaPxaPyaPzaPAaPBaPxaPCaPxaPDaPEaPFaPGaPHaPEaPIaPJaPKaPLaPMaPEaPNaPOaPPaPPaPQbjEaPSaPTaEvaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaagaadaadaaTaagaagaadaadaafaagaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaabaaaaaaaaaaLaayeayeaxbaPUaPVaPVaPWaPXaPYaPZaQaaQbaPVaQcaQdaQeaQfaQgaQdaQhaQdaQiaQjaQkaQlaQmaQnaQdaQdaQoaxvayBayBaOCaaaaaaaaaaabaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaafaadaadaadaafaaeaagaadaadaadaafaaaaafaagaadaadaadaadaafaaeaaaaLaaLaaLaaLaaKJaKJaKJaQpaQqaQraQsaQtaQuaQtaQtaJqaJraQvaJsaJtaQwaQwaQwaQwaQxaQyaQzaQAaKJaKJaKJaOCaOCaOCaOCaafaafaadaadaadaadaJiaaaaadaafaadaadaadaadaadaadaadaaaaaeaJiaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaQBaQCaQCaQDaQCaQEaQFaQGaQHaQFaQIaQJaQKaQtaQLaQMaQvaQNaQLaQwaQOaQPaQQaQxaQRaQSaQTaQUaQVaQWaQVaQVaQXaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaafaadaadaadaafaaeaagaadaadaadaafaaaaafaagaadaadaadaadaafaaeaaaaLaaLaaLaaLaaKJaKJaKJaQpaQqaQraQsaQtaQuaQtaQtbqXaJraQvaJsaJtaQwaQwaQwaQwaQxaQyaQzaQAaKJaKJaKJaOCaOCaOCaOCaafaafaadaadaadaadaJiaaaaadaafaadaadaadaadaadaadaadaaaaaeaJiaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaQBaQCaQCaQDaQCaQEaQFaQGaQHaQFaQIaQJaQKaQtaQLbsraQvbssaQLaQwaQOaQPaQQaQxaQRaQSaQTaQUaQVaQWaQVaQVaQXaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQYaQYaQYaQYaaaaaaaaaaQYaaaaaaaaaaaaaaaaQYaaaaaaaaaaQYaQYaQYaQYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQBaQZaRaaRbaRcaRdaReaRfaRgaQFaRhaRiaRjaRkaQLaRlaRmaJPaJNaQwaRnaQOaRoaRpaRqaRraRsaRtaRuaRvaRwaRxaQXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQYaQYaQYaQYaaaaaaaaaaQYaQYaQYaQYaQYaQYaQYaaaaaaaaaaQYaQYaQYaQYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQBaQCaQCaQDaQCaQEaQFaRyaRzaQsaQtaQtaQtaQtaQLaRAaRBaRCaRDaREaRFaRGaRHaQxaRIaRJaQTaQUaQVaQWaQVaQVaQXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQYaQYaQYaQYaaaaaaaQYaQYaQYaQYaQYaQYaQYaQYaQYaaaaaaaQYaQYaQYaQYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRKaQsaQsaQsaQsaQsaQsaRLaRMaQsaRNaROcOJaRQaRRaRSaRTaRUaRVaRWaRXaRYaRZaQxaSaaSbaQxaQxaQxaQxaQxaQxaScaaaaaaaaaaSdaaaaaaaaaaSdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10924,15 +10901,15 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibnibnjbnkbnlbnmbnnbnobnpbnqbnobnrbnsbntbnrbnubnvbnwbnxbltblBbnybnzbnAbjpaaaaaaaaaaafaaaaaaaaaaabaaaaaaaaabnBbnCbnDbkFbnEbmDbkCbnFbthbnGbnHbnIbnJbjIbnKbjIbnLbnMbicbifbifbifbnNbnObnPbifbnQbifbiZbnRbnSbnTbnUbnVbjebnWbnXblhbnYblebnZbljboabobbocbodboebnhaaaaaaaaaaabaagaaaaaaaaaaaaaaaaafaaTaadaadaadaadaadaagaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibofbogbohboibojbokbolbomblwbonbooboobopbmmboqborblwbosbotboubovbowboxboyboyboyboyboyaaaaaaaaaaaaaaaaaaaaabnBbnCbozboAboBboCbkCbicboDboEboFboGboHboIboJboKbIBboMbicboNbifboOboPboQboRboOboSbifboTbiZbiZbiZbiZbiZbjeboUbtqboWboXboYboZbljbpabpbbpcbpdbpdbnhaaaaaaaaaaaaaadaaaaaaaaaaaaaafaafaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhaafaafaafaafbfibfibfibfiaaabpebpfbpgbltblubphbpibpjbpkbplbpmbpnbpobplbppbovblAbpqbprboybpsbptbpuboybpvbpwbpwaaaaaabpxbkBbpybpzbpAbpBbpCbpDbpDbpDbpDbpDbpDbpEbpDbpDbpDbpDbpDbpDbpDbpDbpDbpFbpGbpHbpHbpIbpJbpKbpKbpLbpMbpNbpObpPbljbpQbpRbpSbpQbpQbljbljbpTbpUbpVbpWbpXbpYbpZaafaafaafaadaaaaaaaaaaafaafaaaaaaaafaaaaaaaafaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabfibqabqbbnkbnlbnmbqcbnobqdbqebnxbqfblsblAblBblsbqgbmobqhbmobqibqjbqkbqlbqmbqnbqobqpbqqbqrbqsbpwbpwaaabqtbqubqvbqwbqxbqybttbqAbqBbqCbqDbqEbqFbqGbqHbqIbqJbqKbqLbqMbqNbqObqPbqQbqRdwybuFbqUbtxbqWbqXbqYbqZbrabrbbrcbrdbrebuKbrgbrhbribrjbrkbvJbrmbrnbrobrpbrqbrraaaaaaaaaaaTaadaadaadaagaabaaaaaaaafaaaaaaaafaaaaafaafbrsaafaafaaaaaaaaaaaeaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaabfibrtbrubohboibrvbrwblAbrxbrybrzbrAbplbrBbovbrCbrDbrEbrFbrGbrHbrIbrJbrKbrLbrMbrNbrObrPbrQbrRbrSbpwaaabrTbqubrUbrVbrWbrXbrYbrZbvMbsbbscbsbbsdbsbbxcbsfbsbbsgbshbsibsjbxibskbslbsmbsnbCsbspbzAbsrbssbstbsubsvbCubsxbsybsxbszbsxbEabsBbsCbsDbsEbsFbrnbsGbsHbrqbsIaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabsJbsKbsLbsMaaaaafaaabsNaaaaafaaaaaaaagaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaabaaaaaabfTaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafbfibfibfibfiaaabpebsObpgbltblubsPbsQbsRbsSdwzbrybsUbsVbsVbsVbsWbsVbsVbsXbsYbsYbsYbsYbsYbsZbtabtbbpvbpvbkBbkBbtcbtdbtebtfbEcbpDbEbbtibtjbtibtkbtlbtibtmbtnbtjbtmbtobtpbFKbtrbtsbqRbHobtubtvbtwbKebtybtzbtAbtzbtBbtzbtzbtzbtCbtDbtEbtDbtCbtCbtFbtGbpVbtHbtIbpYbpYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabtJbtKbtKbtJbtJbtJbtLbtMaaaaafaaaaaaaafaaaaaaaaaaaaaabbfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaadaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibtNbtObnkbnlbtPbtQbnobqdbtRbtSbtTbnrbtUbnrbnwbtVbsVbtWbtXbtYbtZbuabsXbubbucbudbuebsYbufbugbuhbuibujbukbulbvObunbkBbkBbuobpDbupbuqburbuqbusbpDbutbtrbpDbuubtrbpDbuvbtrbqAbuwbuxbRcbuzbQKbuBbuCbuBbtzbuDbuEbRdbuGbuHbtzbuIbuJbRebuLbuMbtCbuNbuObuObuPbuQbuRbtJaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabuSbuTbuUbuVbuWbuWbuXbtMbtLbtLaaaaaaaafaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaafaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibuYbuZbohboibvabvbbvcbvdbvebvfbvgbvfbvhbvfbvibvjbvkbvlbvmbvnbvobvpbsXbvqbvrbvsbvtbvubvvbvwbvxbvybvybvybvybvybvybvzbvAbvBbpDbvCbuqbvDbuqbusbpDbuqbvEbpDbuqbvFbpDbuqbvGbpDbvHbvIbRmbvKbuAbvLbRnbvNbtzbxgbvPbvQbvRbvSbtzbvTbvUbvVbvWbvXbtCbvYbvZbuObwabwbbwcbtJaaaaaaaaaaaaaaabtJbtJbtLbtLbtLbtJbwdbwebwfbwgbwhbwibwjbwkbwlbtLbtJbwmbwmbwnbwnaafaafaafbfSaafaafaafaafbwobwpbwqbfSbwrbwsbwtbwubwvaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafbfibfibfibfiaaabwwbwxbpgbwybwzbwAbwBbwCbwDblAbwEbwFbvkbwGbwHbwIbwJbwKbsXbwLbwMbwNbwObsYbufbwPbwQbsZbsZbsZbsZbsZbsZbsZbwRbwSbpDbwTbuqbwUbwVbusbpDbwWbwXbpDbwWbwYbpDbwWbwZbpDbxabxbbRobvKbuAbxdbxebxfbtzbxkbxhbSrbxjbynbtzbxlbvUbxmbvUbxnbtCbxobvZbuObuObxpbuObuObtJbtJbtJbtJbtJbtJbwbbxqbxrbxsbxsbxtbxubxubxtbxvbxwbxxbxybxzbxAbxBbwmbxCbxDbwnbwnaaaaaabfSaaaaaaaaaaafbxEbxFbxGbxHbxIbxHbxEbxJbxEaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgaaaaaaaaaaaaaaaaaaaaaaaaaaabjjbxKbxLbxMbjjbjjbxNbxObxPbxObxQbxRbxSbsXbsVbxTbsVbsXbsXbsYbsYbxUbsYbsYbsZbxVbxWbxXbsZbxYbxZbyabybbsZbwRbwSbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbycbydbTBbyfbuAbygbyhbyibtzbyjbykbylbymbzDbtzbyobypbyqbvUbyrbtCbysbytbyubyvbywbywbywbywbywbywbyxbywbywbywbywbyybyzbyAbyBbyCbyDbyEbyFbxwbxxbyGbxwbyHbyIbyJbyKbyLbyMbwnaaaaaabfSaaaaaaaaaaaabxEbyNbxHbyObyPbyQbxEbyRbxEaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaaaaabySaaaaaaaaaaaaaaabySaaaaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaafaaaaaaaaaaaaaaaaaabyTbyTbyTbyTbyTbyTbyTbyTbyTbyUbyVbyWbyXbyYbyZbzabzbbzcbzcbzdbzebzfbzgbzhbzibzjbzkbzlbufbzmbznbzobsZbxYbwRbwRbwRbzpbzqbzrbvybzsbztbzubzvbvybvybvybvybvybvybzwbzxbvybzybzzbsZbWDbyebWQbuAbuAbuAbuAbtzbzBbzCbMrbzEbzFbtzbzGbzHbzIbzJbzKbtCbzLbwbbzMbzNbzObzPbzQbwbbwbbzRbzRbzRbzRbzRbzRbzRbzSbzTbzUbzVbzWbzXbzXbzXbzXbzYbzYbzYbzYbzYbzZbAabAbbAcbAcbAdbAcbAdbAcbAdbAcbAcbAebAfbAgbAhbAibxEbAjbxEbxEaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaaaaabySbySbySbySbySbySbySaaaaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafaaaaaabAkbAlbAmbAnbyTbAobApbAqbArbAsbAsbAtbyTbAubAvbAwbAxbAybAzbAAbABbAAbACbADbAEbAFbAGbAHbAIbAJbAKbALbufbAMbxWbANbsZbAObAPbwRbwRbsZbAQbARbwRbASbATbsZbsZbAUbsZbsZbAVbwRbwRbzzbAWbwRbAXbsZbsZbAYbAZbBabuObuObBbbxrbtzbBcbBdbtzbtzbtzbtzbtCbtCbBebtCbtCbtCbzLbwbbBfbBgbzObuRbBhbBibBjbzRbBkbBlbBmbBnbBobzRbBpbBpbBqbBpbBpbzXbBrbBsbBtbzYbBubzYbBvbzYbBwbBxbBybAcbBzbBAbBBbBBbBCbBDbBEbAcbBFbBGbBHbBIbBJbBKbBLbBMbxEaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabfibqabqbbnkbnlbnmbqcbnobqdbqebnxbqfblsblAblBblsbqgbmobqhbmobqibqjbqkbqlbqmbqnbqobqpbqqbqrbqsbpwbpwaaabqtbqubqvbqwbqxbqybttbqAbqBbqCbqDbqEbqFbqGbqHbqIbqJbqKbqLbqMbqNbqObqPbqQbqRdwybuFbqUbtxbstbsubqYbqZbrabrbbrcbrdbrebuKbrgbrhbribrjbrkbvJbrmbrnbrobrpbrqbrraaaaaaaaaaaTaadaadaadaagaabaaaaaaaafaaaaaaaafaaaaafaafbrsaafaafaaaaaaaaaaaeaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaabfibrtbrubohboibrvbrwblAbrxbrybrzbrAbplbrBbovbrCbrDbrEbrFbrGbrHbrIbrJbrKbrLbrMbrNbrObrPbrQbrRbrSbpwaaabrTbqubrUbrVbrWbrXbrYbrZbvMbsbbscbsbbsdbsbbxcbsfbsbbsgbshbsibsjbxibskbslbsmbsnbCsbspbzAbtvbtybtvbtwbsvbCubsxbsybsxbszbsxbEabsBbsCbsDbsEbsFbrnbsGbsHbrqbsIaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabsJbsKbsLbsMaaaaafaaabsNaaaaafaaaaaaaagaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaabaaaaaabfTaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafbfibfibfibfiaaabpebsObpgbltblubsPbsQbsRbsSdwzbrybsUbsVbsVbsVbsWbsVbsVbsXbsYbsYbsYbsYbsYbsZbtabtbbpvbpvbkBbkBbtcbtdbtebtfbEcbpDbEbbtibtjbtibtkbtlbtibtmbtnbtjbtmbtobtpbFKbtrbtsbqRbHobtubpYbuAbuBbuCbtzbtAbtzbtBbtzbtzbtzbtCbtDbtEbtDbtCbtCbtFbtGbpVbtHbtIbpYbpYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabtJbtKbtKbtJbtJbtJbtLbtMaaaaafaaaaaaaafaaaaaaaaaaaaaabbfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaadaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibtNbtObnkbnlbtPbtQbnobqdbtRbtSbtTbnrbtUbnrbnwbtVbsVbtWbtXbtYbtZbuabsXbubbucbudbuebsYbufbugbuhbuibujbukbulbvObunbkBbkBbuobpDbupbuqburbuqbusbpDbutbtrbpDbuubtrbpDbuvbtrbqAbuwbuxbRcbuzbvLbvNbuObuObtzbuDbuEbRdbuGbuHbtzbuIbuJbRebuLbuMbtCbuNbuObuObuPbuQbuRbtJaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabuSbuTbuUbuVbuWbuWbuXbtMbtLbtLaaaaaaaafaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaafaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibuYbuZbohboibvabvbbvcbvdbvebvfbvgbvfbvhbvfbvibvjbvkbvlbvmbvnbvobvpbsXbvqbvrbvsbvtbvubvvbvwbvxbvybvybvybvybvybvybvzbvAbvBbpDbvCbuqbvDbuqbusbpDbuqbvEbpDbuqbvFbpDbuqbvGbpDbvHbvIbRmbvKbuObxdbwbbxebtzbxgbvPbvQbvRbvSbtzbvTbvUbvVbvWbvXbtCbvYbvZbuObwabwbbwcbtJaaaaaaaaaaaaaaabtJbtJbtLbtLbtLbtJbwdbwebwfbwgbwhbwibwjbwkbwlbtLbtJbwmbwmbwnbwnaafaafaafbfSaafaafaafaafbwobwpbwqbfSbwrbwsbwtbwubwvaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafbfibfibfibfiaaabwwbwxbpgbwybwzbwAbwBbwCbwDblAbwEbwFbvkbwGbwHbwIbwJbwKbsXbwLbwMbwNbwObsYbufbwPbwQbsZbsZbsZbsZbsZbsZbsZbwRbwSbpDbwTbuqbwUbwVbusbpDbwWbwXbpDbwWbwYbpDbwWbwZbpDbxabxbbRobvKbuObwbbwbbwbbtzbxkbxhbSrbxjbynbtzbxlbvUbxmbvUbxnbtCbxobvZbuObuObxpbuObuObtJbtJbtJbtJbtJbtJbwbbxqbxrbxsbxsbxtbxubxubxtbxvbxwbxxbxybxzbxAbxBbwmbxCbxDbwnbwnaaaaaabfSaaaaaaaaaaafbxEbxFbxGbxHbxIbxHbxEbxJbxEaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgaaaaaaaaaaaaaaaaaaaaaaaaaaabjjbxKbxLbxMbjjbjjbxNbxObxPbxObxQbxRbxSbsXbsVbxTbsVbsXbsXbsYbsYbxUbsYbsYbsZbxVbxWbxXbsZbxYbxZbyabybbsZbwRbwSbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbycbydbTBbyfbuObxfbwbbCvbtzbyjbykbylbymbzDbtzbyobypbyqbvUbyrbtCbysbytbyubyvbywbywbywbywbywbywbyxbywbywbywbywbyybyzbyAbyBbyCbyDbyEbyFbxwbxxbyGbxwbyHbyIbyJbyKbyLbyMbwnaaaaaabfSaaaaaaaaaaaabxEbyNbxHbyObyPbyQbxEbyRbxEaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaaaaabySaaaaaaaaaaaaaaabySaaaaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaafaaaaaaaaaaaaaaaaaabyTbyTbyTbyTbyTbyTbyTbyTbyTbyUbyVbyWbyXbyYbyZbzabzbbzcbzcbzdbzebzfbzgbzhbzibzjbzkbzlbufbzmbznbzobsZbxYbwRbwRbwRbzpbzqbzrbvybzsbztbzubzvbvybvybvybvybvybvybzwbzxbvybzybzzbsZbWDbyebWQbuObuObCybuObtzbzBbzCbMrbzEbzFbtzbzGbzHbzIbzJbzKbtCbzLbwbbzMbzNbzObzPbzQbwbbwbbzRbzRbzRbzRbzRbzRbzRbzSbzTbzUbzVbzWbzXbzXbzXbzXbzYbzYbzYbzYbzYbzZbAabAbbAcbAcbAdbAcbAdbAcbAdbAcbAcbAebAfbAgbAhbAibxEbAjbxEbxEaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaaaaabySbySbySbySbySbySbySaaaaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafaaaaaabAkbAlbAmbAnbyTbAobApbAqbArbAsbAsbAtbyTbAubAvbAwbAxbAybAzbAAbABbAAbACbADbAEbAFbAGbAHbAIbAJbAKbALbufbAMbxWbANbsZbAObAPbwRbwRbsZbAQbARbwRbASbATbsZbsZbAUbsZbsZbAVbwRbwRbzzbAWbwRbAXbsZbsZbAYbAZbBabuObBbbwbbxrbtzbBcbBdbtzbtzbtzbtzbtCbtCbBebtCbtCbtCbzLbwbbBfbBgbzObuRbBhbBibBjbzRbBkbBlbBmbBnbBobzRbBpbBpbBqbBpbBpbzXbBrbBsbBtbzYbBubzYbBvbzYbBwbBxbBybAcbBzbBAbBBbBBbBCbBDbBEbAcbBFbBGbBHbBIbBJbBKbBLbBMbxEaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaabySbySbySbySbySbySbySbySbySaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaadaadaaaaabaaaaaaaaabAkbBNbBNbBObyTbBPbBPbBPbBQbAsbBRbBSbyTbBTbBUbBVbBWbBXbBYbBZbALbCabCbbCcbCdbCabCebCebCfbCgbChbCebsZbCibCjbCkbsZbsZbsZbClbwRbsZbAXbCmbCmbCnbCmbCmbCobwRbCpbsZbCqbwRbCrbsZbuibwRbAXbwRbsZbYebCtbYvbuObwbbwbbCvbCwbwbbCxbCybCybCybCybzMbCzbCAbCBbCCbCDbCEbCFbCGbuObCHbCHbCHbCHbCIbzRbCJbCKbCLbCMbCNbCObCPbCQbCRbCSbCTbzXbCUbCVbCWbzYbCXbzYbCYbzYbzYbCZbDabDbbDcbDdbBBbDebDfbDgbDhbAcbDibDibDibDjbDibDibDibDibDibDiaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaabySbySbySbySbySbySbySbySbySaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaagaadaadaadaagaafaaaaafaaaaaaaaaaaaaaaaaaaaabAkbDkbDlbDmbyTbDnbDobDobDpbDobDqbDrbyTbDsbDtbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDEbDFbDGbDHbDIbDJbDKbsZbDLbDMbDNbDObDPbsZbujbuibsZbDQbCmbDRbDSbDTbCmbDUbDVbANbsZbxXbwRbDWbsZbujbwRbDXbDYbDZbZXcaqcbEbEdbCBbEebCBbEfbCBbEgbCBbCBbCBbCBbEhbEibEjbEjbEjbEjbEjbEjbEkbElbCHbEmbEnbEobCIbEpbEqbErbEsbEtbEubCObEvbEwbExbCRbEybzXbEzbEAbEBbECbEDbEEbEFbEGbzYbEHbEIbEJbEKbELbEMbELbENbEObEPbEQbERbESbETbEUbEVbEWbEXbEYbEZbFaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaabAkbFbbFcbFdbyTbFebDobDobFfbFgbFhbFibFjbFkbFlbFmbFnbDwbFobFpbDzbFqbFrbFsbFtbFubDFbFvbFwbFxbFybFzbsZbFAbFBbFCbFDbDPbsZbzzbzzbsZbFEbCmbFFbDSbFGbCmbsZbsZbsZbsZbFHbFHbFHbsZbsZbsZbsZbsZbFIbFJcddbFLbFIbuObuObuObuObuObtLbtLbtLbuObuObuObuObEjbFMbFNbFObFPbEjbFQbFRbFSbFTbFUbFVbCIbFWbFXbCKbFYbFZbGabCObGbbGcbGdbGebGfbGgbGhbGibGjbzYbGkbGlbGmbGnbzYbGobGpbAcbGqbGrbGsbGrbGsbGrbGtbDbbGubGvbGwbGxbGybGzbGAbGBbGCbGDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10953,14 +10930,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabySbySbySbySbySbySbySaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaabSgceibVVcelcfJcejcekbVWceobZqbZqbZqbZqcepceqcercescetceuceucevcewcexcexcexcexcexcexcexccSccSccSceycezceAceBceCceDceEceFceGceHceGceGceGceGceGceIceIceIceIceJceIceIceIceKceLbsZbKkbKkbKjceMcbCceNceOcePceQceRceRceScdjceTbVbbVbbVbbVbbVbbVbbVbceTbVfceUceVceWbVeceXceYceZcfacfbbKlcfccfcbuObTmbwbbCybBibBjcfdbwbcfebwbcffcfgcfhcficfjcfgcfkcdFcflcfmcfncfocfpcfqcfrcfscftcftcfucbXcbXcbXcbXcbXcbXcbXcdRcbZcfvbwmcfwcfxcfybZbcfzcfAcfBcaVcaWccmcfCcfDbZjbZlcfEcfFcfGbZlbZmcfHbZmbZlbZlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabSfbSgcfIcfIbSgcfLcemcenbVWcfMcfNcfOcfPcfQcfRcfScfTcfUcfVcfWcfXcfYcfZcexcgacgacgacgacgacgbcgccgdccScgeckncggcghcgicgjcgkbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZcglcgmdQRcgobKjcgpcgqcgrcgscgtceQceQcgucgvcdjcgwbVbcgxcgxcgxcgxcgxbVbcgybVecgzcgAbVebVecgBcgCcgBcgDcgEcgFcgGcgHcgIcgJbtJbuObuObuObuObuObuObuObuOcgKcgLckocgNcgKcdEcdEcdEcgOcdEcdEcdEcdEcgPcgQcftcgRcgScgTcgUcgUcgUcgUcgUcbXcbZcbZbZkbwmcgVbwmbwmbZbcgWbZbbZbcaVbZjbZkbZlbZlbZlbZlcgXcfFcgYcgZchachbchcchdbZlbZlaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafchebSgchfchgchhchichjchkchlchmchnchochpchqchrchschtchuchvchwchxceuchychzcexcgacgacgacgacgachAchBchCchDchEchFchGchHckqchIchJchKchLcgichIchMchNchHchOchPchQdRpchHchRchSchCchTchUchVchWchXchYchZbSYbSYciacibdSgcidceQcdjcdjcdjcbGbVbcgxcgxcgxcgxcgxbVbceTbVebVebVebVecgGdbzcifcigcihcihciicijcikcilcimcinciocipciqcirciscitciucivcircisckrcixciycizciAciBcixcmYciCciDciEcgPciFciGciHciIciJcgUcgUcgUcgUcgUcbXciKcbZciLciMciNciObZkciPciQciRciSbZgciTciUbZlciVciWbZlciXcfFccqccqccqcfFccqciYciZbZmaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjbcjccjdcjecjfcjgcjhcjicjjcjkcjlcjmcjncjocjpcfTbJOcjqceuceucjrccScexcgacgacgacgacgacjscjtcjucjvcjwcksckucnUdSicnUcqVckscrlcksckscsQcupcksckscwBcxJcwlcwtcxXcyicjKcjLcjMcCYczWcCXczWczWczWczWczWcjQcjRcjSbWJcjUcjVcdmcjWbVbcgxcgxcgxcgxcgxbVbcjXbYncjYcjZckackbckcckdcCZcCZcCZcCZcCZcDicDacDhckickjckkcDjcJxcDjcDjcDkcKMcDjcJxckpcDjcMecDjcDjcTxcDjcDjcOKdHYcDkcUCckvckwckxckyckzcgUcgUcgUcgUcgUcbXckAcbZckBckCckDckEckFckGckHckIckJckKckLckMckQckOckPckNckRckSckTckUckVckWckXccqckYckZaafaafaafaadaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaaabSgclachgclbclccldcleclfclgclhclicljclkcllclmclncloceuceuceuclpclqclrcexcgacgacgacgacgaclscltchCchDcluclvclwclxckqclyclzclAclBcgiclyclCclDclxclEclFclGclHclIclJclKclLclMclNclOclPclQclRclSbSYbSYclTclUdSBclWbVbclXclYcbHcbHbVbcgxcgxcgxcgxcgxbVbclZcmacmbcmcbVbcmddTJcmfcmgcmhcmhcmicmjcmkcmlcmmcmnciocipcitcmocitcitcmpcmqcmrcmscmtcmucmvcmvcmwcmxcmpcmvcmycYecmzcmAciFciGcmBcmCcmDcgUcgUcgUcgUcgUcbXcmEcmFbZkcmGcmHcmIbZkcmJcmKcmJcmLcmMcmNcmObZlcmPcmQbZlcmRcmScmTccqcmUcfFccqcmVcmWbZmaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabSfbSgcfIcfIbSgcmXcfKcotbVWcmZcfNcnacnbcnccndcnecnfcngcnhcnicnjcnkclpcexcgacgacgacgacgacgbcnlcnmccSccScnncgkcnocgicnpcnqcnrcnrcnrcnrcnrcnrcnscnscntcnucnscnvcnwcnxcnycnzcnAcnBcgmcnCclWbKjcnDcgqcgrcnEcgtbKjbVbceTcnFcnGcnHbVbcgxcgxcgxcgxcgxcnIcnIcnJcnIcnIcnIcnIcnKcgCcgBcgDcnLcgFcnMdTKcgIcnOcnPcnPcnPcnQcnRcnScnScnScnScnScnTcnScnScnScnScnScnScZhcnVcnWcYecnXcgKcnYcftcnZcgKcgTcgUcgUcgUcgUcgUcbXcoacbZbZkcobcoccodcoecoecoecofcoecogcoecoebZlbZlbZlbZlcohcoicojcokcolcomconcoobZlbZlaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaabSgcopcoqcorcoscemclhbVWcoucovcovcowcovcoxcoycovcngclpclpcozcoAclpcexcexcexcexcexcexcexccSccSccScoBcoCcoDcoEcoFcoGcoDcoHcoIcoJcoKcoLcoMcoNcoOcoPcoQcoRcnscoScoTcoScoUcoVcoWcnAbKkbKkcoXcoYcoZcpacpbcpcbVacpdcpecpfcpfcpfcpgcpgcphcpicpjcoXcnIcpkcplcpmcpncpocnIcppcpqcigcprcpscgFcfccfccnPcptcpucpvcpwcpxcpxcpycpzcpAcpBcpCcpDcpEcpFcpGcpHcpIcpIcpJcpKcpLcpMcpNcpOcpPcpPcpPcpQcbXcbXcbXcbXcbXcbXcbXcdRcbZcpRcobcpScpTcpUcpVcpWcpXcpYcpZcqacqbcqccqdcqdbZlcqecfFcqfbZlbZmcqgbZmbZlbZlaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabJtbSebJtbSebJtbSebJtbSebJtbSebJtbSeaafaafbSgcqhbVVcqicqjcqkcqlcqmcqncqocqpcqqcqrcqscqtcovcqucqvcqvcqwcqxcqycqzcqzcqzcqAcqBcqCcqDcoBcoBcqEcoBccScqFcqFcqFcqFcqFcnrcqGcqHcqIcqJcqKcnscqLcqMcqNcqOcnscqPcqQcqRcoUcqScoWcnAaaaaaacoXcqTcoZcqUdbncqWbVacqXcqYcpfcqZcracrbcrccqUcqUcqUcrdcrecrfcrgcrhcricrjcnIcrkdcwcihcrmdaScgFaaaaaacnPcrocrpcrqcnPcrrcrscnScrtcrucrvcrwcrxcrycrzcrAcrBcrCcrDcnScrEcrFcrGcrGcrHcpPcbZcbZcrIcdRcdRcdRcdRcdRcdRcdRcdRcbZcrJcobcrKcrLcpUcrMcrNcrOcrPcrQcrRcrScrTcqdcqdcrUcrVcrWcrXbZmcrYcrZcsabZlaaaaaaaaaaaaaadaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafbTXbTYbTZbTYbTZbTYbTZbTYbTZbTYbTZbTYbUabUbbSgcsbcsccsdcsecsccsfcsgcshcovcsicsjcskcslcsmcovcsncsocsocspcsqcsocsocsrcsrcsscsscstcsucstcsvcstcstcswcswcsxcsycsxcswcswcszcszcszcsAcszcszcsBcsCcsDcnscnscsEcsFcsGcoUcsHcoWcnAaaaaaacsIcsJcsKcsLdbncsMbVacsNcsOcsPdcxcsRcsScsTcsUddxcqUcsVcsWcsXcsYcsZctactbcnIctcdcwctdctectfcfcaaaaaacnPctgcthcthcthdaVdbbcthcthcuPcuPcuPctlctmctnctmctmctmctmdbDctoctpctqctrctoctsctsctsctsctsctsctscttcttcttcttctuctuctuctuctvctwctxcrMctycpYcpYcpYcpYcpYcqdcqdcqdbZlctzcmUctAbZmccsccqcctbZlaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabTXcbdcbecbdcbecbdcbecbdcbecbdcbecbdbUabZnbSgbZoctBctCctDctEctCctFctGcovcovcovcovcovcovcovctHcsoctIctJctKctLcsoctMctNctOctOcstctPcstctQctRctYctTctUctVdTLctVctXcuEcvScuacubcuccudcszcuecufcugcuhcnscuicujcukcoUculcoWcnAaaaaaacsIcumcuncuodeEcuqbVacurcuscpfcutcuucuvcuwcuxcuycqUcuzcuAcuBcuCcsZcuDcvTcuFcuGdcwcuHcuIcuJcfcaaaaaacnPcrocthdTMcuLcuMcuNcuOdbEcwLcwMcwNctlcuQcuRcuScuTcuUcuVcuWcuXcuYdTNcvacvbcvccvdcvecvfcvgcvhcvicvjcvkcvlcvmcvncvocvpcvqcvrcvscpUcvtcvucvvcpYcpYcpYcvwcvxcvucqdbZlcvycvzcvAbZlcbbcvBbZlbZlaafaafaafaadaWzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabLjccubLjccubLjccubLjccubLjccubLjccuaadbXvcvCcvDcvEcvFcvGcvEcvFcvHcvIcvJcvKbSgcqucqvcqvcqvcvLcsocvMcvNcvOcvPcsoctMcvQcsscsscstcvRcxHcxIcvUcvVcvWcvXcvXcvXcvYcvZcwactZcwbcwccwdcwecwfcwgcwhcwicuhcnscoUcoUcoUcoUcnAcoWcnAaaaaaacsIcwjcoZcwkdkccwmbVacwncwocpfcwpcwqcwrcrccwsdkMcwucuzcwvcwwcwxcwycwzcwAcnIcuGdmEcwCcwDcwEcfcaaaaaacnPcrocthdTOcwGcwHcwIcwJcyrcyscytcyuctmcwOcwPcwQcwRcwScwTcwUcwVcwWcwXcwYcwZcxacxbcxccxdcxccxecvicxfcxgcxhcvmcxicxjcxkcvqcxlcxmcpUcpUcpUcpUcpUcpUcpUcpUcpUcoecoebZlcxnbZmbZlbZlbZlbZlbZlaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjbcjccjdcjecjfcjgcjhcjicjjcjkcjlcjmcjncjocjpcfTbJOcjqceuceucjrccScexcgacgacgacgacgacjscjtcjucjvcjwcksckucnUdSicnUcqVckscrlcksckscsQcupcksckscwBcxJcwlcwtcxXcwtcjKcjLcjMcCYczWcCXczWczWczWczWczWcjQcjRcjSbWJcjUcjVcdmcjWbVbcgxcgxcgxcgxcgxbVbcjXbYncjYcjZckackbckcckdcCZcCZcCZcCZcCZcDicDacDhckickjckkcDjcJxcDjcDjcDkcKMcDjcJxckpcDjcMecDjcDjcTxcDjcDjcOKdHYcDkcUCckvckwckxckyckzcgUcgUcgUcgUcgUcbXckAcbZckBckCckDckEckFckGckHckIckJckKckLckMckQckOckPckNckRckSckTckUckVckWckXccqckYckZaafaafaafaadaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaaabSgclachgclbclccldcleclfclgclhclicljclkcllclmclncloceuceuceuclpclqclrcexcgacgacgacgacgaclscltchCchDcluclvclwclxckqclyclzclAclBcgiclyclCclDclxclEclFclGclHbygbyhclIclLclMclNclOclPclQclRclSbSYbSYclTclUdSBclWbVbclXclYcbHcbHbVbcgxcgxcgxcgxcgxbVbclZcmacmbcmcbVbcmddTJcmfcmgcmhcmhcmicmjcmkcmlcmmcmnciocipcitcmocitcitcmpcmqcmrcmscmtcmucmvcmvcmwcmxcmpcmvcmycYecmzcmAciFciGcmBcmCcmDcgUcgUcgUcgUcgUcbXcmEcmFbZkcmGcmHcmIbZkcmJcmKcmJcmLcmMcmNcmObZlcmPcmQbZlcmRcmScmTccqcmUcfFccqcmVcmWbZmaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabSfbSgcfIcfIbSgcmXcfKcotbVWcmZcfNcnacnbcnccndcnecnfcngcnhcnicnjcnkclpcexcgacgacgacgacgacgbcnlcnmccSccScnncgkcnocgicnpcnqcnrcnrcnrcnrcnrcnrcnscnscntcnucnscnscnzbyicnzcnzcnAcnBcgmcnCclWbKjcnDcgqcgrcnEcgtbKjbVbceTcnFcnGcnHbVbcgxcgxcgxcgxcgxcnIcnIcnJcnIcnIcnIcnIcnKcgCcgBcgDcnLcgFcnMdTKcgIcnOcnPcnPcnPcnQcnRcnScnScnScnScnScnTcnScnScnScnScnScnScZhcnVcnWcYecnXcgKcnYcftcnZcgKcgTcgUcgUcgUcgUcgUcbXcoacbZbZkcobcoccodcoecoecoecofcoecogcoecoebZlbZlbZlbZlcohcoicojcokcolcomconcoobZlbZlaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaabSgcopcoqcorcoscemclhbVWcoucovcovcowcovcoxcoycovcngclpclpcozcoAclpcexcexcexcexcexcexcexccSccSccScoBcoCcoDcoEcoFcoGcoDcoHcoIcoJcoKcoLcoMcoNcoOcoPcoQcoRcnscxUcxUcxUcnAcoVcoWcnAbKkbKkcoXcoYcoZcpacpbcpcbVacpdcpecpfcpfcpfcpgcpgcphcpicpjcoXcnIcpkcplcpmcpncpocnIcppcpqcigcprcpscgFcfccfccnPcptcpucpvcpwcpxcpxcpycpzcpAcpBcpCcpDcpEcpFcpGcpHcpIcpIcpJcpKcpLcpMcpNcpOcpPcpPcpPcpQcbXcbXcbXcbXcbXcbXcbXcdRcbZcpRcobcpScpTcpUcpVcpWcpXcpYcpZcqacqbcqccqdcqdbZlcqecfFcqfbZlbZmcqgbZmbZlbZlaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabJtbSebJtbSebJtbSebJtbSebJtbSebJtbSeaafaafbSgcqhbVVcqicqjcqkcqlcqmcqncqocqpcqqcqrcqscqtcovcqucqvcqvcqwcqxcqycqzcqzcqzcqAcqBcqCcqDcoBcoBcqEcoBccScqFcqFcqFcqFcqFcnrcqGcqHcqIcqJcqKcnscqLcqMcqNcqOcnscxUcxUcxUcnAcqScoWcnAaaaaaacoXcqTcoZcqUdbncqWbVacqXcqYcpfcqZcracrbcrccqUcqUcqUcrdcrecrfcrgcrhcricrjcnIcrkdcwcihcrmdaScgFaaaaaacnPcrocrpcrqcnPcrrcrscnScrtcrucrvcrwcrxcrycrzcrAcrBcrCcrDcnScrEcrFcrGcrGcrHcpPcbZcbZcrIcdRcdRcdRcdRcdRcdRcdRcdRcbZcrJcobcrKcrLcpUcrMcrNcrOcrPcrQcrRcrScrTcqdcqdcrUcrVcrWcrXbZmcrYcrZcsabZlaaaaaaaaaaaaaadaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafbTXbTYbTZbTYbTZbTYbTZbTYbTZbTYbTZbTYbUabUbbSgcsbcsccsdcsecsccsfcsgcshcovcsicsjcskcslcsmcovcsncsocsocspcsqcsocsocsrcsrcsscsscstcsucstcsvcstcstcswcswcsxcsycsxcswcswcszcszcszcsAcszcszcsBcsCcsDcnscnscxUcxUcxUcnAcsHcoWcnAaaaaaacsIcsJcsKcsLdbncsMbVacsNcsOcsPdcxcsRcsScsTcsUddxcqUcsVcsWcsXcsYcsZctactbcnIctcdcwctdctectfcfcaaaaaacnPctgcthcthcthdaVdbbcthcthcuPcuPcuPctlctmctnctmctmctmctmdbDctoctpctqctrctoctsctsctsctsctsctsctscttcttcttcttctuctuctuctuctvctwctxcrMctycpYcpYcpYcpYcpYcqdcqdcqdbZlctzcmUctAbZmccsccqcctbZlaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabTXcbdcbecbdcbecbdcbecbdcbecbdcbecbdbUabZnbSgbZoctBctCctDctEctCctFctGcovcovcovcovcovcovcovctHcsoctIctJctKctLcsoctMctNctOctOcstctPcstctQctRctYctTctUctVdTLctVctXcuEcvScuacubcuccudcszcuecufcugcuhcnscxUcxUcxUcnAculcoWcnAaaaaaacsIcumcuncuodeEcuqbVacurcuscpfcutcuucuvcuwcuxcuycqUcuzcuAcuBcuCcsZcuDcvTcuFcuGdcwcuHcuIcuJcfcaaaaaacnPcrocthdTMcuLcuMcuNcuOdbEcwLcwMcwNctlcuQcuRcuScuTcuUcuVcuWcuXcuYdTNcvacvbcvccvdcvecvfcvgcvhcvicvjcvkcvlcvmcvncvocvpcvqcvrcvscpUcvtcvucvvcpYcpYcpYcvwcvxcvucqdbZlcvycvzcvAbZlcbbcvBbZlbZlaafaafaafaadaWzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabLjccubLjccubLjccubLjccubLjccubLjccuaadbXvcvCcvDcvEcvFcvGcvEcvFcvHcvIcvJcvKbSgcqucqvcqvcqvcvLcsocvMcvNcvOcvPcsoctMcvQcsscsscstcvRcxHcxIcvUcvVcvWcvXcvXcvXcvYcvZcwactZcwbcwccwdcwecwfcwgcwhcwicuhcnscxUcxUcxUcnAcnAcoWcnAaaaaaacsIcwjcoZcwkdkccwmbVacwncwocpfcwpcwqcwrcrccwsdkMcwucuzcwvcwwcwxcwycwzcwAcnIcuGdmEcwCcwDcwEcfcaaaaaacnPcrocthdTOcwGcwHcwIcwJcyrcyscytcyuctmcwOcwPcwQcwRcwScwTcwUcwVcwWcwXcwYcwZcxacxbcxccxdcxccxecvicxfcxgcxhcvmcxicxjcxkcvqcxlcxmcpUcpUcpUcpUcpUcpUcpUcpUcpUcoecoebZlcxnbZmbZlbZlbZlbZlbZlaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaadaaaaaaaaabJtbJubJubJubJubJubJubJucxobJubJubJubUabVPcxpcxqcxrcxscxtccwcxscxucxvcxvcxwbSgcxxclpcxycxycxzcxycxycxAcxBcxCcsocsocxDcxEcxFcstcxGcynczvczwctScxKcvXcvXcxLcxMcxNcxOcszcxPcxQcxRcxScszcnscnscxTcnscnscxUcxUcxUcxUcnAcoWcxVaaaaaacoXcqTcoZcxWdntcxYbVbbVbcxZcpfcwpcyacybcrccqUdeEcqUcyccnIcydcyecyfcygcnIcnIcyhdpjcyjcykcylcgFaaaaaacymcrocthdTPcyocwHcypcyqcyrcAhcAicAjctmcyvcwPcywcyxcyycyzcyAcyBcyCcyDcyEcyFcyGcyHcyIcyJcyIcyKcyLcyMcyNcyOcvmcyPcyQcyRcvqcyScyTcyUcyVcyWcyXcyYcyZczaczbczcczdbXuczeczfaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaabTXcbdcbecbdcbecbdcbecbdcbecbdcbecbdbUacbfbSgbSgczgczhczibUfcziczjcxvcxvczkbSgcxxclpcxyczlczmczncxyctJczoczpczqcsoczrczscztcstczucAYcAZczxczyczzczAczBczBczCcxNczDczEczFczGczHczIcszczJczKczLczMczNcxUczOcxUczPcnAcoWcxVaaaaaacoXcoXczQcqUddxczRdIobVbczTcpfcpfcpfcpfczUczVdpmczVczXcnIcnIczYczZcnIcnIdKGcAbdpEcihcAccgFcgFaaaaaacymcrocthcthcAdcAecAfcAgcyrcBNcBOcBPctmcAkcAlcAmcAmcAncAocApcAqcArcAscvacAtcxacAucAvcAwcAxcAyctscAzcAAcABcvmcACcADcAEcvqcAFcAGcAHcAIcAIcyXcAJcAKcALcyXcyXczdaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaabLjccubLjccubLjccubLjccubLjccubLjccuaafaafaafbSfbSgbSgbSgbSgbSgbSgbSgbSgbSgbSgcAMccScxycANczmcAOcxycAPcAQcARcAScATcAUcAVcAWcstcAXcDncOIcBacstcBbcBccBdcBdcBecBfcBgctZcBhcBicwccBjcszczJcBkcBlcBmczMczMcxUczOcxUcnAcoWcxVaaaaaaaaacsIcBncBoddxdTQcBqcBrcBscBtcBucBucBvcBwdTRdbndTScBwcBzcmhcBAcBBcBCcBDcBEdTTdpEcBGcBHcfcaaaaaaaaacymcrocBIcthcBJcBKcBLcBMcyrcDqcDrcDqctmcBQcwPcBRcBScBTcBUcBVcBWcuYcBXcvacBYcxacBZcyIcCacyIcCbctscCccCdcCecvmcCfcCgcChcvqcCicCjcCkcClcCmcCncCocCpczacCqcCrczdaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10993,9 +10970,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacxVdctdevdcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudewdexdeydezdeAdeBdeCcTrcRgdeDdUcdeFdeGdeHdeIdeJdeKdeLdeLdeMdeLdeNdeLdeOdePdeQdeRdeSdeQdeTdeUdeVdeWcZxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafcSYdctdcudcvdcvdcvdcvdcvdcvdcvdcvdcvdcvddwdHcdeXdeYdbUdeZdfadfbdfcddDdUdcShdUeddFddpdffdfgdfhdfidfjdfkdfldfmdfndfodfidfjdfpdfqdfqdfrddodfsdbCcZxaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacxVdctddidcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudftdfudbUdfvdfwdfvdfvdfvddDdfxdfydfzddoddodfAddoddoddoddodfBddoddoddoddoddoddoddoddoddoddoddodfCdfDcYxaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacxVdfFdcGdcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudcHdfGdfHdfIdfJdfKdfLdfMdfNcSicShdfOdfPdfQdfRdfSdfTdfUdfSdfVdfQdfWdfXdfYdfZdgadgbdfWdgcdgddgedgfdggcYxaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacxVdfFdcudcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudghdgidfHdgjdgkdgldgmdgndgodgpdHedgqdfPdfSdgrdgsdgtdgudgvdgwdfSdfWdgxdgydgzdgAdgBdfWdgCdgDdgEdgFdgGcYxaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaadaafaafaafcSYdfFdbUdbUdgHdgIdgJdbUdbUdbUdbUdbUdbUdbUdbUdbUdbUdgKdgLdgMdgNdfMdgOdgPdGddgQdgRdgSdgTdgUdfTdfTdgVdgWdfSdgXdgYdgZdhadhbdhcdfWdhddhedgEdhfdgGcYxaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacxVdfFdcGdcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudcHdfGdfHdfIdfJbKedfLdfMbQKcSicShdfOdfPdfQdfRdfSdfTdfUdfSdfVdfQdfWdfXdfYdfZdgadgbdfWdgcdgddgedgfdggcYxaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacxVdfFdcudcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudghdgidfHdgjdgkdgldgmbRndgodgpdHedgqdfPdfSdgrdgsdgtdgudgvdgwdfSdfWdgxdgydgzdgAdgBdfWdgCdgDdgEdgFdgGcYxaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaadaafaafaafcSYdfFdbUdbUdgHdgIdgJdbUdbUdbUdbUdbUdbUdbUdbUdbUdbUdgKdgLdgMclJdfMdgOdgPdGddgQdgRdgSdgTdgUdfTdfTdgVdgWdfSdgXdgYdgZdhadhbdhcdfWdhddhedgEdhfdgGcYxaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacSYdfFculdhgdhhdhgdhidhgdhjdhkdhldhkdhmdhndhodhpdhgdhqdfvdfvdfvdfvdhrddFdxKdhsdgRdhtdhudhtdfTdhvdhtdhwdhxdhydhzdhzdhAdhzdhBdfWdhCdhDdhEdhFdhGcYxaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacSYdfFcsHdhgdhHdhIdhJdhKdhjdhLdhldhMdhmdhNdhMdhMdhOdhMdhMdhkdhMdhPdamddFdxKdhQdfPdfSdgrdgsdfTdfTdgvdgwdhRdfWdgXdgXdhSdgXdgXdfWdgRdgRdgRdfCdhTdhUdhUdhUaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSYdhVdhWdhgdhXdhYdhZdhMdiadibdicdiddicdiedifdigdihdifdiidifdifdijdgodgpdHedikdfPdhtdildimdindindiodipdiqdirdisdisditdiudivdiwdixdivdivdiydizdiAdiBdiCaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11221,8 +11198,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedKwdKYdLQdKwaaaaaadLqdLRdLSdLTdLUdLVdLWdLXdLqdLYdLZdGmdMadMbdFJdFIdFJdMcdMddGmdMedMfdLHdMgdMhdMidMjdBkdMldMmdLHaaaaaadKVdMndModKVdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedKwdKYdMpdMqaaaaaadMrdLvdMsdMtdMudMvdMwdMxdMydMzdMAdMBdMadMCdMDdTEdMFdFJdMGdMHdMIdMJdBZdMLdMMdMNdMOdLHdMPdMQdLHaaaaaadMRdMSdMTdKVdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedKwdMUdMVdMqaaaaaadMWdMXdMYdMZdNadMZdNbdNcdLqdNddNedGmdNfdNgdNhdTFdNjdNkdNldGmdNmdNndLHdLHdLHdNodLHdLHdLHdLHdLHaaaaaadMRdNpdNqdKVdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaafdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedKwdNrdNsdMqaaaaaadNtdNudLvdLvdNvdLvdLvdNwdLqdLYdLZdNxdNxdNydNzdUQdNBdNCdNxdNxdMedMfdLHdNDdNEdNFdNGdNHdNIdNJdLHaaaaaadMRdNKdNLdKVdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedzedzedzedzedzedzedzedzedzedKwdNrdNPdKwaaaaaadNQdNRdNSdLvdNTdNUdNVdNWdNXdNYdNZdOadObdOcdOddTGdOfdOcdOgdOhdOidOjdOkdOldOmdOndOodOpdOqdOrdLHaaaaaadKVdOsdNLdKVdzedzedzedzedzedzedzedzedzedzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaafaafaafaaTaafaaaaaaaagaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaafdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedKwdNrdNsdMqaaaaaadNtdNudLvdLvdNvdLvdLvdNwdLqdLYdLZdNxdNxdNxdNydUQdNCdNxdNxdNxdMedMfdLHdNDdNEdNFdNGdNHdNIdNJdLHaaaaaadMRdNKdNLdKVdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedzedzedzedzedzedzedzedzedzedKwdNrdNPdKwaaaaaadNQdNRdNSdLvdNTdNUdNVdNWdNXdNYdNZdOadObclKdOddTGdOfcnvdOgdOhdOidOjdOkdOldOmdOndOodOpdOqdOrdLHaaaaaadKVdOsdNLdKVdzedzedzedzedzedzedzedzedzedzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaafaafaafaaTaafaaaaaaaagaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedzedzedzedzedzedzedzedzedzedKwdNrdOxdKwdKwdLqdLqdLqdOydOzdOAdOzdOydLqdLqdOBdOCdODdOEdOFdOEdOGdOEdOFdOEdOEdOHdOIdLHdLHdOJdOKdOLdOMdONdOOdLHdLHdKVdKVdOPdNLdKVdzedzedzedzedzedzedzedzedzedzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedzedzedzedzedzedzedzedzedzedKwdNrdLQdORdOSdLqdOTdOUdOVdOWdNTdLvdLvdOXdTHdOZdPadPbdPcdMkdPedPfdPgdPhdPidPjdPkdPldTIdPndPodPpdPqdPrdPsdOpdPtdLHdPudPvdPwdNLdKVdzedzedzedzedzedzedzedzedzedzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedzedzedzedzedzedzedzedzedzedKwdNrdLQdLQdLQdPxdLvdPydPzdPAdPBdPCdPDdLqdPEdPFdPGdPHdPGdPGdPGdPHdPGdPGdPGdPGdPGdPFdPIdLHdPJdOpdOodPKdOpdOpdPLdLHdPMdPNdPOdNLdKVdzedzedzedzedzedzedzedzedzedzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 509604c4614b8a0d18959911771064ced0996c29 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Thu, 15 Feb 2018 02:53:55 -0600 Subject: [PATCH 02/54] Fix misnamed iconstate for engineering mrhandy --- icons/mob/robots.dmi | Bin 397365 -> 397369 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 48df908aef195f94e50ed4b9deb482eea193019a..f81005818e968e8cafe5cc48e2dc832acf9be687 100644 GIT binary patch delta 1668 zcmV-~27CFnpcuKJ7?30ZW055*Cw*DeIW)z)E+}biv7tDAByCsUz6W`2IyS|>q%DHQ zBEWC{9L|iWk#}r==2{|iE#bL-V^u~;s>S-c_rFdjB`MJ)56NA6{FzP^^Co#nX48qG zz0~Cgy@qUt55Javxdno^mU+p0jd0ryLd_6pjz9|px<{a25hzzswElxYiUNs0$Aqb) z*t1?sO=P5AM>D>ZnhaDMOR34+`~|UZRBVlOO%(iMIA<4s#a4>h#ACfu%qCtp4_z((mbFw$vW~J}h5o`WJ{R6)ydk|2 znpEPyD-r&GrZ2yb@=EBk7A~GGYRG0VUGrv5!WjDdI=Z-cO`h3SJ#8m7@2Dp2uJ}C0 z6|n52CNqYbow*R2&0%H7GKG0g4cQEHzceh%tcF->$YxQ4Pgh%|^8_43sFa0Jy~YJi z>_(Pka&}o!32UY8Z;@@-%0Oag!8vyQbPZP5fwAU)w}Zw)#W%|%NVI%z|v~&!@)R4{k^k#H{ zbats0DPTmxcD8rk<9DB){XpUrk5HFPX;=mt)LH*RzP1E_D_X&IF2JhjW#Pk_tt5pS z@(-(j|8)VwD!!P37Cm2}hBiVP85L|Dr^Yl|XPd{Debd*SI z|NUtg<-~B2*1qFi3wkh6p*23NvZEXrta0$aYtckwFjV7ENn5if6IgT6Y8R(mb7~ zpTlaQjp`>~ZIRxki}dh+hgM({dltpd=l&F=UBNZ9%O|~-Ih*y3GbDhc--c|~)25wL zQBf_e8}VEhlJuB|OP1Xl7p(+Jdr!~kSyoMH0%!H$13X?~aHL!FTx~}UKghmdZJpVF z7EZD*4QnuK{mnoNtcRn9a(40Egg5j1be`U)^9v2McL>>|FaDrC)I5c((UJ?=cW(9& z0kj3aCSbE4l*psdm~0+J#-#KlGB~eCi80ANiHyncNo8=FD-yeAN%7ZRMPk>yk=dbS z{8+mpv1^`z!t$!${6nxtmolqJ?Bd_ms3Dv6Ht6Ti$pp!r zHvp1AACG78L?fy69LG95z5nl{ z%JMnh$sIgdg8$#(|G zm4_qy5UyFi3!vh=!TDJUM6Nf$V+QE+yHJ6VHY5tdK1VfVGaPq9sa$R2-aDaxR6|N} z{7$G7O05*{fz{XvrPhWhenHj=r3`QY<%ClEN}@MX;rSnFFbGE;jKq=0!g0irm>gj& zFpi}nhg`!sl33Gy!ok~>M+3VxYXYuOpA68A!_fk`kalT=?tqR4LOTII#E8w=N;SJU zONwL?weH9+DiMt?>`Pbapd#Hn)q$#XCLeaCtFpr)w$Y`eZ_bb?E8c4Gy8?a76*Fkj z1MT6*>6=9__kFV-j!{E4>&qYhzyrLUVgJ9A^ae6&@3C8?i*#}Qk1ku0?n{?_lsXUj zFroGn)(`W`lN%W;Pw59tv%TfAHeyHbM4OS9R!8YvNc_9k?yMquk9&OeV6>Ong~gx` zTJ4bub}cB%!WV*U28{c2^8EUgJS|_Q{{X_okko0 delta 1664 zcmV-`27mdvpcu8F7?30ZUy&s%Cv6tbIW)z)E+}biv7tCFN!!)8e+RiX9h>4`(k_C< zBEWC{9L)@=k#}r=p0z}twS=Gb8>=!(QZ3fkz5jJODM^VYc}VWkkNtactlz*9+H-e$E4-rL20>oR1DQZYWtxI z0`MD|oh%5bKC_br#ovm*HzihoODYk}QjxQXPr6$CBWtOYWF2L{3jKv${8@OH@rLw9 zXi|y)u0;5Mo4))$$}6GETDW+&s3Dudbj_PJ31jG=>*(U*HF;)R^|YPTyrY`5yW;a0 zSHQB9n#>q#cIHCpX$~tpmMP40YRG1o`=w!7W;Mi8LpF;Ve7f2yohRTRLZvK(>NPHC zVmGoRle5c;N?0pxe~WCxRt6F~3qE7lPuE~|9T;nWemiI^WNcdtTTvN*ogDfJtoRNo z>VW;|-KKZ9UZxMd6E@OcLQBUWObywrPj6;;?+j6+wRL8H zTR6$OG_1j_^)~}8upW*Y%Gt$t6W){Gr}OkaonL66y+gRAN{mVFNn}ihPb!1cT#?u{ONzhlDiXWqjm!=u zQWcp^C4l;v)z?zy1c2U*WOg$9{YP$;U5P zf`-x9`4>QY_cP|#_C-gDAt!d8%Rs$&G*C3YcD!;t8Yv$S2WrT7C0oHi$&X50 z+$y5??pNAJy0fwP2-j4~_`245fnKI)g`p+wAdG!aZ((r9W);zUp~zrg$rRB$tXjvf zT3JQ(UU7VxZr_moX~YSS1~*InqINRrwU6#s)1C=fCnpPZDx55^`QZBmP6}@bXl5AB z*}YNdi`z$XNoC-(=|}QeuR-#YS_NT$|HfOlmVEmo-krAO(@UUvy!Tq*+w}IAd;i}@ zmF081lRJ3!9Pe#gGT7FJn)AZ|f1~)?sfLu| z_?=KElv*j?1FNwUO05l1{DQ0#N*Uk)$_b_Rl|*l(!q0!C!5|!YFcL=|3&#;hVseDB zz&MtQ9C8ikNMcR*2?uXi9u4f)tO>YAeKJ5d4o3^%LfWMfx&t~I2<-$oi4mK#m1=fz zmK4b(YTc1tR3aK(*q5%-K}EVds{>W(Og`*NS7nDqY@IG=?)zpv9HWM8)|Ws0fd_ay!~VUK^ae6!Z`v)=MY_2DN0+Tg_od4|N}Y#% zm{9u(>j$Wf4AuAbtG(p1HeyHbM4OR!R!8YvNc`AacUBR-$34D!F51iN!eY?(toFnN zyA>2=;rl=~1IGP1d47FLo|Z4u{{x!Oqy6zh`@e&b2ZxXc0f&$W0*8 Date: Thu, 15 Feb 2018 18:48:21 -0600 Subject: [PATCH 03/54] Prometheans are bothered by water --- .../human/species/station/prometheans.dm | 13 ++++--- .../Chemistry-Reagents-Core.dm | 12 +++++++ html/changelogs/Anewbe - Prometheans.yml | 36 +++++++++++++++++++ 3 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 html/changelogs/Anewbe - Prometheans.yml diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm index 3eb801dc9d..2ed5d54b24 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -149,11 +149,14 @@ var/datum/species/shapeshifter/promethean/prometheans H.nutrition += rand(15, 45) // Heal remaining damage. - if(H.getBruteLoss() || H.getFireLoss() || H.getOxyLoss() || H.getToxLoss()) - H.adjustBruteLoss(-heal_rate) - H.adjustFireLoss(-heal_rate) - H.adjustOxyLoss(-heal_rate) - H.adjustToxLoss(-heal_rate) + if(H.fire_stacks >= 0) + if(H.getBruteLoss() || H.getFireLoss() || H.getOxyLoss() || H.getToxLoss()) + H.adjustBruteLoss(-heal_rate) + H.adjustFireLoss(-heal_rate) + H.adjustOxyLoss(-heal_rate) + H.adjustToxLoss(-heal_rate) + else + H.adjustToxLoss(2*heal_rate) // Doubled because 0.5 is miniscule, and fire_stacks are capped in both directions /datum/species/shapeshifter/promethean/get_blood_colour(var/mob/living/carbon/human/H) return (H ? rgb(H.r_skin, H.g_skin, H.b_skin) : ..()) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm index 6e3c0781f6..58f60b4dcb 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm @@ -160,6 +160,18 @@ L.adjust_fire_stacks(-(amount / 5)) remove_self(needed) +/datum/reagent/water/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(alien == IS_SLIME) + M.adjustToxLoss(6 * removed) + else + ..() + +/datum/reagent/fuel/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + if(alien == IS_SLIME) + M.adjustToxLoss(6 * removed) + else + ..() + /datum/reagent/fuel name = "Welding fuel" id = "fuel" diff --git a/html/changelogs/Anewbe - Prometheans.yml b/html/changelogs/Anewbe - Prometheans.yml new file mode 100644 index 0000000000..a1d006d750 --- /dev/null +++ b/html/changelogs/Anewbe - Prometheans.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Prometheans now react to water. Being soaked will stop their regen and deal minor toxin damage. Drinking or being injected with water will deal slightly more toxin damage." From 7f7ecc4255a183a3131b975e562ee0b53b2370c0 Mon Sep 17 00:00:00 2001 From: Cameron653 Date: Sat, 17 Feb 2018 11:14:56 -0500 Subject: [PATCH 04/54] Makes devs able to see use of take admin command button --- code/modules/admin/topic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 81c709f6d8..502461cd69 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1228,7 +1228,7 @@ if(ismob(M)) var/take_msg = "ADMINHELP: [key_name(usr.client)] is attending to [key_name(M)]'s adminhelp, please don't dogpile them." for(var/client/X in admins) - if((R_ADMIN|R_MOD|R_EVENT) & X.holder.rights) + if((R_ADMIN|R_MOD|R_EVENT|R_SERVER) & X.holder.rights) to_chat(X, take_msg) to_chat(M, "Your adminhelp is being attended to by [usr.client]. Thanks for your patience!") else From 4197a0c117282b158286ee32d4b4db3207c547a6 Mon Sep 17 00:00:00 2001 From: atermonera Date: Sat, 17 Feb 2018 13:30:21 -0800 Subject: [PATCH 05/54] Adds umbrellas sprites courtesy of schnayy --- code/game/objects/items/weapons/melee/misc.dm | 31 ++++++++++++++ code/modules/planet/sif.dm | 38 ++++++++++++++++++ html/changelogs/Atermonera - Umbrellas.yml | 36 +++++++++++++++++ icons/mob/items/lefthand_melee.dmi | Bin 19505 -> 20535 bytes icons/mob/items/righthand_melee.dmi | Bin 18832 -> 19899 bytes icons/obj/items.dmi | Bin 61713 -> 62531 bytes 6 files changed, 105 insertions(+) create mode 100644 html/changelogs/Atermonera - Umbrellas.yml diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index a7f6565a2d..8985f85bac 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -14,3 +14,34 @@ var/datum/gender/T = gender_datums[user.get_visible_gender()] user.visible_message(span("danger", "\The [user] [T.is] strangling [T.himself] with \the [src]! It looks like [T.he] [T.is] trying to commit suicide."), span("danger", "You start to strangle yourself with \the [src]!"), span("danger", "You hear the sound of someone choking!")) return (OXYLOSS) + +/obj/item/weapon/melee/umbrella + name = "umbrella" + desc = "To keep the rain off you. Use with caution on windy days." + icon = 'icons/obj/items.dmi' + icon_state = "umbrella_closed" + flags = CONDUCT + slot_flags = SLOT_BELT + force = 5 + throwforce = 5 + w_class = ITEMSIZE_NORMAL + var/open = FALSE + +/obj/item/weapon/melee/umbrella/New() + ..() + color = "#"+get_random_colour() + update_icon() + +/obj/item/weapon/melee/umbrella/attack_self() + src.toggle_umbrella() + +/obj/item/weapon/melee/umbrella/proc/toggle_umbrella() + open = !open + icon_state = "umbrella_[open ? "open" : "closed"]" + item_state = icon_state + update_icon() + if(ishuman(src.loc)) + var/mob/living/carbon/human/H = src.loc + H.update_inv_l_hand(0) + H.update_inv_r_hand() + ..() \ No newline at end of file diff --git a/code/modules/planet/sif.dm b/code/modules/planet/sif.dm index e50c584a13..3fb5ff2be2 100644 --- a/code/modules/planet/sif.dm +++ b/code/modules/planet/sif.dm @@ -234,6 +234,18 @@ datum/weather/sif if(!T.outdoors) continue // They're indoors, so no need to rain on them. + // If they have an open umbrella, it'll guard from rain + if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_active_hand() + if(U.open) + to_chat(L, "Rain patters softly onto your umbrella") + continue + else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand() + if(U.open) + to_chat(L, "Rain patters softly onto your umbrella") + continue + L.water_act(1) to_chat(L, "Rain falls on you.") @@ -258,6 +270,20 @@ datum/weather/sif if(!T.outdoors) continue // They're indoors, so no need to rain on them. + // If they have an open umbrella, it'll get stolen by the wind + if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_active_hand() + if(U.open) + to_chat(L, "A gust of wind yanks the umbrella from your hand!") + L.drop_from_inventory(U) + U.throw_at(get_edge_target_turf(U, pick(alldirs)), 8, 1, L) + else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand() + if(U.open) + to_chat(L, "A gust of wind yanks the umbrella from your hand!") + L.drop_from_inventory(U) + U.throw_at(get_edge_target_turf(U, pick(alldirs)), 8, 1, L) + L.water_act(2) to_chat(L, "Rain falls on you, drenching you in water.") @@ -282,6 +308,18 @@ datum/weather/sif if(!T.outdoors) continue // They're indoors, so no need to pelt them with ice. + // If they have an open umbrella, it'll guard from rain + if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_active_hand() + if(U.open) + to_chat(L, "Hail patters gently onto your umbrella.") + continue + else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand() + if(U.open) + to_chat(L, "Hail patters gently onto your umbrella.") + continue + var/target_zone = pick(BP_ALL) var/amount_blocked = L.run_armor_check(target_zone, "melee") var/amount_soaked = L.get_armor_soak(target_zone, "melee") diff --git a/html/changelogs/Atermonera - Umbrellas.yml b/html/changelogs/Atermonera - Umbrellas.yml new file mode 100644 index 0000000000..82b22eb005 --- /dev/null +++ b/html/changelogs/Atermonera - Umbrellas.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Atermonera + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added umbrellas." diff --git a/icons/mob/items/lefthand_melee.dmi b/icons/mob/items/lefthand_melee.dmi index 0f08605207ae63015b09f7c4c1bb0cc25b428a39..9c5b5d72ee09d902676458de3cdc1db2e1e2bb73 100644 GIT binary patch literal 20535 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 BeDVMQ diff --git a/icons/mob/items/righthand_melee.dmi b/icons/mob/items/righthand_melee.dmi index c1313715a6f945fb0fa91b480dc797882318c4f3..85e99773f77b7238e431146238018593e6e2c54b 100644 GIT binary patch literal 19899 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 From 62b9e203ec7d699122796877db85a29c7aefd449 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 17 Feb 2018 03:19:41 -0600 Subject: [PATCH 06/54] Clean up some recent update_icons() changes --- code/__defines/_planes+layers.dm | 1 + code/modules/mob/living/carbon/human/human.dm | 13 ++++++---- .../mob/living/carbon/human/update_icons.dm | 26 +++++++++---------- code/modules/mob/typing_indicator.dm | 18 ++++++++----- 4 files changed, 33 insertions(+), 25 deletions(-) diff --git a/code/__defines/_planes+layers.dm b/code/__defines/_planes+layers.dm index ad4fe2181d..7370e10235 100644 --- a/code/__defines/_planes+layers.dm +++ b/code/__defines/_planes+layers.dm @@ -60,6 +60,7 @@ What is the naming convention for planes or layers? //#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define #define DECALS_LAYER 2.01 #define OVERTURF_LAYER 2.1 + #define HIDING_LAYER 2.45 //Layer at which mobs hide to be under things like tables #define DOOR_OPEN_LAYER 2.7 //Under all objects if opened. 2.7 due to tables being at 2.6 //#define OBJ_LAYER 3 //For easy recordkeeping; this is a byond define #define DOOR_CLOSED_LAYER 3.1 //Above most items if closed diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c28580fe6f..f99371bf7f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1546,11 +1546,14 @@ permit.set_name(real_name) equip_to_appropriate_slot(permit) // If for some reason it can't find room, it'll still be on the floor. -/mob/living/carbon/human/proc/update_icon_special() //For things such as teshari hiding and whatnot. +/mob/living/carbon/human/proc/update_icon_special(var/mutable_appearance/ma, var/update_icons = TRUE) //For things such as teshari hiding and whatnot. if(hiding) // Hiding? Carry on. if(stat == DEAD || paralysis || weakened || stunned) //stunned/knocked down by something that isn't the rest verb? Note: This was tried with INCAPACITATION_STUNNED, but that refused to work. - hiding = 0 //No hiding for you. Mob layer should be updated naturally, but it actually doesn't. + hiding = FALSE //No hiding for you. Mob layer should be updated naturally, but it actually doesn't. else - layer = 2.45 - else //Replace this else with other variables if added in the future. Alternatively, could make other things effect this hiding variable. - return + ma.layer = HIDING_LAYER + + //Can put special species icon update proc calls here, if any are ever invented. + + if(update_icons) + update_icons() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 75228b376a..3b8702e03a 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -159,6 +159,8 @@ Please contact me on #coderbus IRC. ~Carn x //0: We start with their existing appearance (this contains their verbs, important to keep those!) var/mutable_appearance/ma_compiled = new(src) + ma_compiled.plane = plane //Required because of an override on mutable_appearance/New() that sets it to FLOAT_PLANE...for some reason. + ma_compiled.layer = layer //1: HUDs because these are hidden behind a backplane. See update_icons_huds() ma_compiled.overlays = list_huds //The first one can set instead of add @@ -170,17 +172,14 @@ Please contact me on #coderbus IRC. ~Carn x ma_compiled.overlays += list_layers //4: Apply transforms based on situation - update_transform(ma_compiled, FALSE) + update_transform(ma_compiled) - //4.5 Set layer to PLANE_WORLD to make sure its not magically FLOAT_PLANE due to byond madness - ma_compiled.plane = PLANE_WORLD + //5: Do any species specific layering updates, such as when hiding. + update_icon_special(ma_compiled, FALSE) - //5: Set appearance once + //6: Set appearance once appearance = ma_compiled - //6: Do any species specific layering updates, such as when hiding. - update_icon_special() - /mob/living/carbon/human/update_transform(var/mutable_appearance/passed_ma) if(QDESTROYING(src)) return @@ -190,6 +189,8 @@ Please contact me on #coderbus IRC. ~Carn x ma = passed_ma else ma = new(src) + ma.plane = plane //Required because of an override on mutable_appearance/New() that sets it to FLOAT_PLANE...for some reason. + ma.layer = layer // First, get the correct size. var/desired_scale = icon_scale @@ -214,9 +215,9 @@ Please contact me on #coderbus IRC. ~Carn x M.Translate(0, 16*(desired_scale-1)) ma.transform = M ma.layer = MOB_LAYER // Fix for a byond bug where turf entry order no longer matters - update_icon_special() //Adjust their layer, like when they are hiding. if(!passed_ma) + update_icon_special(ma) appearance = ma //Update the layers from the defines above @@ -251,10 +252,9 @@ Please contact me on #coderbus IRC. ~Carn x list_huds = hud_list.Copy() list_huds += backplane // Required to mask HUDs in context menus: http://www.byond.com/forum/?post=2336679 -//TYPING INDICATOR CODE. + //Typing indicator code if(client && !stat) //They have a client & aren't dead/KO'd? Continue on! if(typing_indicator && hud_typing) //They already have the indicator and are still typing - overlays += typing_indicator //This might not be needed? It works, so I'm leaving it. list_huds += typing_indicator typing_indicator.invisibility = invisibility @@ -262,13 +262,11 @@ Please contact me on #coderbus IRC. ~Carn x typing_indicator = new typing_indicator.icon = 'icons/mob/talk.dmi' typing_indicator.icon_state = "[speech_bubble_appearance()]_typing" - overlays += typing_indicator list_huds += typing_indicator else if(typing_indicator && !hud_typing) //Did they stop typing? - overlays -= typing_indicator - typing = 0 - hud_typing = 0 + typing = FALSE + hud_typing = FALSE if(update_icons) update_icons() diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm index bce33b7719..1565567f8f 100644 --- a/code/modules/mob/typing_indicator.dm +++ b/code/modules/mob/typing_indicator.dm @@ -26,15 +26,18 @@ if(!ishuman(src)) //If they're a mob, use the old code. set_typing_indicator(1) - if(is_preference_enabled(/datum/client_preference/show_typing_indicator)) + else if(is_preference_enabled(/datum/client_preference/show_typing_indicator)) hud_typing = 1 update_icons_huds() + var/message = input("","say (text)") as text - if(is_preference_enabled(/datum/client_preference/show_typing_indicator)) - hud_typing = 0 - update_icons_huds() + if(!ishuman(src)) //If they're a mob, use the old code. set_typing_indicator(0) + else if(is_preference_enabled(/datum/client_preference/show_typing_indicator)) + hud_typing = 0 + update_icons_huds() + if(message) say_verb(message) @@ -44,14 +47,17 @@ if(!ishuman(src)) //If they're a mob, use the old code. set_typing_indicator(1) - if(is_preference_enabled(/datum/client_preference/show_typing_indicator)) + else if(is_preference_enabled(/datum/client_preference/show_typing_indicator)) hud_typing = 1 update_icons_huds() + var/message = input("","me (text)") as text + if(is_preference_enabled(/datum/client_preference/show_typing_indicator)) hud_typing = 0 update_icons_huds() - if(!ishuman(src)) //If they're a mob, use the old code. + else if(!ishuman(src)) //If they're a mob, use the old code. set_typing_indicator(0) + if(message) me_verb(message) From c359d8aae4c4cb2b4e0ffee9469af93b1b564cc9 Mon Sep 17 00:00:00 2001 From: elgeonmb Date: Sat, 17 Feb 2018 20:40:15 -0800 Subject: [PATCH 07/54] unions no longer make firearms (#4836) --- code/modules/projectiles/guns/energy/nuclear.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index e7e19b9e02..d9d85ad92c 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/energy/gun name = "energy gun" - desc = "Another bestseller of Lawson Arms and the FTU, the LAEP90 Perun is a versatile energy based sidearm, capable of switching between low and high capacity projectile settings. In other words: Stun or Kill." + desc = "Another bestseller of Lawson Arms and "+TSC_HEPH+", the LAEP90 Perun is a versatile energy based sidearm, capable of switching between low and high capacity projectile settings. In other words: Stun or Kill." icon_state = "energystun100" item_state = null //so the human update icon uses the icon_state instead. fire_delay = 10 // Handguns should be inferior to two-handed weapons. @@ -64,4 +64,4 @@ firemodes = list( list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="nucgunstun", charge_cost = 240), list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="nucgunkill", charge_cost = 480), - ) \ No newline at end of file + ) From 09f7f798d32394b05e2da738551361c224d8381a Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sat, 17 Feb 2018 22:40:32 -0600 Subject: [PATCH 08/54] Power monitoring consoles find all station-related sensors (#4853) --- code/modules/nano/modules/power_monitor.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/nano/modules/power_monitor.dm b/code/modules/nano/modules/power_monitor.dm index 89e1dbda62..e39e13f9f6 100644 --- a/code/modules/nano/modules/power_monitor.dm +++ b/code/modules/nano/modules/power_monitor.dm @@ -43,8 +43,12 @@ /datum/nano_module/power_monitor/proc/refresh_sensors() grid_sensors = list() var/turf/T = get_turf(nano_host()) + var/list/levels = list() + if(T) + levels += using_map.get_map_levels(T.z, FALSE) + world << "levels" for(var/obj/machinery/power/sensor/S in machines) - if((T && S.loc.z == T.z) || (S.long_range)) // Consoles have range on their Z-Level. Sensors with long_range var will work between Z levels. + if(T && (S.loc.z == T.z) || (S.loc.z in levels) || (S.long_range)) // Consoles have range on their Z-Level. Sensors with long_range var will work between Z levels. if(S.name_tag == "#UNKN#") // Default name. Shouldn't happen! warning("Powernet sensor with unset ID Tag! [S.x]X [S.y]Y [S.z]Z") else From 1c1e15a2213a25faec8fdfb8beba3c365c800378 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sun, 18 Feb 2018 03:09:04 -0600 Subject: [PATCH 09/54] EMPs no longer make meat eyes fuzzy (#4856) --- code/modules/organs/internal/eyes.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/organs/internal/eyes.dm b/code/modules/organs/internal/eyes.dm index 77350a73db..ec4ca77a92 100644 --- a/code/modules/organs/internal/eyes.dm +++ b/code/modules/organs/internal/eyes.dm @@ -95,5 +95,6 @@ return -1 /obj/item/organ/internal/eyes/emp_act(severity) - ..() //Returns if the organ isn't robotic - owner.eye_blurry += (4/severity) \ No newline at end of file + ..() + if(robotic >= ORGAN_ASSISTED) + owner.eye_blurry += (4/severity) \ No newline at end of file From e588d6ad988ef8c86064c5eb0953b83c76e67c42 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sun, 18 Feb 2018 03:09:34 -0600 Subject: [PATCH 10/54] Ghetto splints now spawn properly when used in hand (#4857) --- code/game/objects/items/stacks/rods.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index ff680ab468..b2477ae9ff 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -61,8 +61,7 @@ var/global/list/datum/stack_recipe/rods_recipes = list( \ return if (istype(W, /obj/item/weapon/tape_roll)) - var/obj/item/stack/medical/splint/ghetto/new_splint = new(user.loc) - new_splint.loc = src.loc + var/obj/item/stack/medical/splint/ghetto/new_splint = new(get_turf(user)) new_splint.add_fingerprint(user) user.visible_message("\The [user] constructs \a [new_splint] out of a [singular_name].", \ From cdd20308117c28dc1a4a8b32b2c6d32d984b1cd6 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sun, 18 Feb 2018 13:03:41 -0600 Subject: [PATCH 11/54] POLARIS: Ports Bay's wall-mounted air pumps --- code/game/machinery/OpTable.dm | 1 + code/game/machinery/oxygen_pump.dm | 243 ++++++++++++++++++++++++++ code/modules/clothing/masks/breath.dm | 14 ++ icons/obj/walllocker.dmi | Bin 1514 -> 2947 bytes nano/templates/Oxygen_pump.tmpl | 42 +++++ polaris.dme | 1 + 6 files changed, 301 insertions(+) create mode 100644 code/game/machinery/oxygen_pump.dm create mode 100644 nano/templates/Oxygen_pump.tmpl diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 5696892ddc..ccf3f69529 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -9,6 +9,7 @@ idle_power_usage = 1 active_power_usage = 5 surgery_odds = 100 + throwpass = 1 var/mob/living/carbon/human/victim = null var/strapped = 0.0 var/obj/machinery/computer/operating/computer = null diff --git a/code/game/machinery/oxygen_pump.dm b/code/game/machinery/oxygen_pump.dm new file mode 100644 index 0000000000..7039f9445a --- /dev/null +++ b/code/game/machinery/oxygen_pump.dm @@ -0,0 +1,243 @@ +#define TANK_MAX_RELEASE_PRESSURE (3*ONE_ATMOSPHERE) +#define TANK_DEFAULT_RELEASE_PRESSURE ONE_ATMOSPHERE + +/obj/machinery/oxygen_pump + name = "emergency oxygen pump" + icon = 'icons/obj/walllocker.dmi' + desc = "A wall mounted oxygen pump with a retractable face mask that you can pull over your face in case of emergencies." + icon_state = "oxygen_tank" + + anchored = TRUE + + var/obj/item/weapon/tank/tank + var/mob/living/carbon/breather + var/obj/item/clothing/mask/breath/contained + + var/spawn_type = /obj/item/weapon/tank/emergency/oxygen/engi + var/mask_type = /obj/item/clothing/mask/breath/emergency + var/icon_state_open = "oxygen_tank_open" + var/icon_state_closed = "oxygen_tank" + + power_channel = ENVIRON + idle_power_usage = 10 + active_power_usage = 120 // No idea what the realistic amount would be. + +/obj/machinery/oxygen_pump/initialize() + . = ..() + tank = new spawn_type (src) + contained = new mask_type (src) + +/obj/machinery/oxygen_pump/Destroy() + if(breather) + breather.internal = null + if(breather.internals) + breather.internals.icon_state = "internal0" + if(tank) + qdel(tank) + if(breather) + breather.remove_from_mob(contained) + src.visible_message("The mask rapidly retracts just before /the [src] is destroyed!") + qdel(contained) + contained = null + breather = null + return ..() + +/obj/machinery/oxygen_pump/MouseDrop(var/mob/living/carbon/human/target, src_location, over_location) + ..() + if(istype(target) && CanMouseDrop(target)) + if(!can_apply_to_target(target, usr)) // There is no point in attempting to apply a mask if it's impossible. + return + usr.visible_message("\The [usr] begins placing the mask onto [target]..") + if(!do_mob(usr, target, 25) || !can_apply_to_target(target, usr)) + return + // place mask and add fingerprints + usr.visible_message("\The [usr] has placed \the mask on [target]'s mouth.") + attach_mask(target) + src.add_fingerprint(usr) + +/obj/machinery/oxygen_pump/attack_hand(mob/user as mob) + if((stat & MAINT) && tank) + user.visible_message("\The [user] removes \the [tank] from \the [src].", "You remove \the [tank] from \the [src].") + user.put_in_hands(tank) + src.add_fingerprint(user) + tank.add_fingerprint(user) + tank = null + return + if (!tank) + to_chat(user, "There is no tank in \the [src]!") + return + if(breather) + if(tank) + tank.forceMove(src) + breather.remove_from_mob(contained) + contained.forceMove(src) + src.visible_message("\The [user] makes \The [contained] rapidly retracts back into \the [src]!") + if(breather.internals) + breather.internals.icon_state = "internal0" + breather = null + use_power = 1 + +/obj/machinery/oxygen_pump/attack_ai(mob/user as mob) + ui_interact(user) + +/obj/machinery/oxygen_pump/proc/attach_mask(var/mob/living/carbon/C) + if(C && istype(C)) + contained.forceMove(get_turf(C)) + C.equip_to_slot(contained, slot_wear_mask) + if(tank) + tank.forceMove(C) + breather = C + spawn(1) + if(!breather.internal && tank) + breather.internal = tank + if(breather.internals) + breather.internals.icon_state = "internal1" + use_power = 2 + +/obj/machinery/oxygen_pump/proc/can_apply_to_target(var/mob/living/carbon/human/target, mob/user as mob) + if(!user) + user = target + // Check target validity + if(!target.organs_by_name[BP_HEAD]) + to_chat(user, "\The [target] doesn't have a head.") + return + if(!target.check_has_mouth()) + to_chat(user, "\The [target] doesn't have a mouth.") + return + if(target.wear_mask && target != breather) + to_chat(user, "\The [target] is already wearing a mask.") + return + if(target.head && (target.head.body_parts_covered & FACE)) + to_chat(user, "Remove their [target.head] first.") + return + if(!tank) + to_chat(user, "There is no tank in \the [src].") + return + if(stat & MAINT) + to_chat(user, "Please close \the maintenance hatch first.") + return + if(!Adjacent(target)) + to_chat(user, "Please stay close to \the [src].") + return + //when there is a breather: + if(breather && target != breather) + to_chat(user, "\The pump is already in use.") + return + //Checking if breather is still valid + if(target == breather && target.wear_mask != contained) + to_chat(user, "\The [target] is not using the supplied mask.") + return + return 1 + +/obj/machinery/oxygen_pump/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/screwdriver)) + stat ^= MAINT + user.visible_message("\The [user] [stat & MAINT ? "opens" : "closes"] \the [src].", "You [stat & MAINT ? "open" : "close"] \the [src].") + if(stat & MAINT) + icon_state = icon_state_open + if(!stat) + icon_state = icon_state_closed + //TO-DO: Open icon + if(istype(W, /obj/item/weapon/tank) && (stat & MAINT)) + if(tank) + to_chat(user, "\The [src] already has a tank installed!") + else + user.drop_item() + W.forceMove(src) + tank = W + user.visible_message("\The [user] installs \the [tank] into \the [src].", "You install \the [tank] into \the [src].") + src.add_fingerprint(user) + if(istype(W, /obj/item/weapon/tank) && !stat) + to_chat(user, "Please open the maintenance hatch first.") + +/obj/machinery/oxygen_pump/examine(var/mob/user) + . = ..() + if(tank) + to_chat(user, "The meter shows [round(tank.air_contents.return_pressure())]") + else + to_chat(user, "It is missing a tank!") + + +/obj/machinery/oxygen_pump/process() + if(breather) + if(!can_apply_to_target(breather)) + if(tank) + tank.forceMove(src) + breather.remove_from_mob(contained) + contained.forceMove(src) + src.visible_message("\The [contained] rapidly retracts back into \the [src]!") + breather = null + use_power = 1 + else if(!breather.internal && tank) + breather.internal = tank + if(breather.internals) + breather.internals.icon_state = "internal0" + +//Create rightclick to view tank settings +/obj/machinery/oxygen_pump/verb/settings() + set src in oview(1) + set category = "Object" + set name = "Show Tank Settings" + ui_interact(usr) + +//GUI Tank Setup +/obj/machinery/oxygen_pump/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + var/data[0] + if(!tank) + to_chat(usr, "It is missing a tank!") + data["tankPressure"] = 0 + data["releasePressure"] = 0 + data["defaultReleasePressure"] = 0 + data["maxReleasePressure"] = 0 + data["maskConnected"] = 0 + data["tankInstalled"] = 0 + // this is the data which will be sent to the ui + if(tank) + data["tankPressure"] = round(tank.air_contents.return_pressure() ? tank.air_contents.return_pressure() : 0) + data["releasePressure"] = round(tank.distribute_pressure ? tank.distribute_pressure : 0) + data["defaultReleasePressure"] = round(TANK_DEFAULT_RELEASE_PRESSURE) + data["maxReleasePressure"] = round(TANK_MAX_RELEASE_PRESSURE) + data["maskConnected"] = 0 + data["tankInstalled"] = 1 + + if(!breather) + data["maskConnected"] = 0 + if(breather) + data["maskConnected"] = 1 + + + // update the ui if it exists, returns null if no ui is passed/found + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + // the ui does not exist, so we'll create a new() one + // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm + ui = new(user, src, ui_key, "Oxygen_pump.tmpl", "Tank", 500, 300) + // when the ui is first opened this is the data it will use + ui.set_initial_data(data) + // open the new ui window + ui.open() + // auto update every Master Controller tick + ui.set_auto_update(1) + +/obj/machinery/oxygen_pump/Topic(href, href_list) + if(..()) + return 1 + + if (href_list["dist_p"]) + if (href_list["dist_p"] == "reset") + tank.distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + else if (href_list["dist_p"] == "max") + tank.distribute_pressure = TANK_MAX_RELEASE_PRESSURE + else + var/cp = text2num(href_list["dist_p"]) + tank.distribute_pressure += cp + tank.distribute_pressure = min(max(round(tank.distribute_pressure), 0), TANK_MAX_RELEASE_PRESSURE) + return 1 + +/obj/machinery/oxygen_pump/anesthetic + name = "anesthetic pump" + spawn_type = /obj/item/weapon/tank/anesthetic + icon_state = "anesthetic_tank" + icon_state_closed = "anesthetic_tank" + icon_state_open = "anesthetic_tank_open" + mask_type = /obj/item/clothing/mask/breath/anesthetic diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 48d24bb8c2..ea3e6c7cf4 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -45,3 +45,17 @@ icon_state = "medical" item_state_slots = list(slot_r_hand_str = "medical", slot_l_hand_str = "medical") permeability_coefficient = 0.01 + +/obj/item/clothing/mask/breath/emergency + desc = "A close-fitting mask that is used by the wallmounted emergency oxygen pump." + name = "emergency mask" + icon_state = "breath" + item_state = "breath" + permeability_coefficient = 0.50 + +/obj/item/clothing/mask/breath/anesthetic + desc = "A close-fitting sterile mask that is used by the anesthetic wallmounted pump." + name = "anesthetic mask" + icon_state = "medical" + item_state = "medical" + permeability_coefficient = 0.01 diff --git a/icons/obj/walllocker.dmi b/icons/obj/walllocker.dmi index 8d43670829d85819d38627c805052b606a974f75..d4d5ced3d253113d52945e4a9f1316fd415808a4 100644 GIT binary patch delta 2914 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 Yi;v?C5GDI+e*gdg07*qoM6N<$f^>YAjQ{`u diff --git a/nano/templates/Oxygen_pump.tmpl b/nano/templates/Oxygen_pump.tmpl new file mode 100644 index 0000000000..9fff202658 --- /dev/null +++ b/nano/templates/Oxygen_pump.tmpl @@ -0,0 +1,42 @@ +{{if data.maskConnected}} +
This pump is connected to a person.
+{{else}} +
This pump is NOT connected to a person.
+{{/if}} + +{{if data.tankInstalled}} +
+
+ Tank Pressure: +
+
+ {{:helper.displayBar(data.tankPressure, 0, 1013, (data.tankPressure > 200) ? 'good' : ((data.tankPressure > 100) ? 'average' : 'bad'))}} +
+ {{:data.tankPressure}} kPa +
+
+
+ +
 
+ +
+
+ Mask Release Pressure: +
+
+ {{:helper.displayBar(data.releasePressure, 0, data.maxReleasePressure, (data.releasePressure >= 23) ? null : ((data.releasePressure >= 17) ? 'average' : 'bad'))}} +
+ {{:helper.link('-', null, {'dist_p' : -10}, (data.releasePressure > 0) ? null : 'disabled')}} + {{:helper.link('-', null, {'dist_p' : -1}, (data.releasePressure > 0) ? null : 'disabled')}} +
 {{:data.releasePressure}} kPa 
+ {{:helper.link('+', null, {'dist_p' : 1}, (data.releasePressure < data.maxReleasePressure) ? null : 'disabled')}} + {{:helper.link('+', null, {'dist_p' : 10}, (data.releasePressure < data.maxReleasePressure) ? null : 'disabled')}} + {{:helper.link('Max', null, {'dist_p' : 'max'}, (data.releasePressure < data.maxReleasePressure) ? null : 'disabled')}} + {{:helper.link('Reset', null, {'dist_p' : 'reset'}, (data.releasePressure != data.defaultReleasePressure) ? null : 'disabled')}} +
+
+
+ +{{else}} +
This pump has no tank installed.
+{{/if}} \ No newline at end of file diff --git a/polaris.dme b/polaris.dme index e026cf9978..0021371648 100644 --- a/polaris.dme +++ b/polaris.dme @@ -614,6 +614,7 @@ #include "code\game\machinery\nuclear_bomb.dm" #include "code\game\machinery\OpTable.dm" #include "code\game\machinery\overview.dm" +#include "code\game\machinery\oxygen_pump.dm" #include "code\game\machinery\pda_multicaster.dm" #include "code\game\machinery\portable_turret.dm" #include "code\game\machinery\recharger.dm" From 3178b95b6cab8784b928909965fa4ff11d16f2dd Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sun, 18 Feb 2018 13:03:05 -0600 Subject: [PATCH 12/54] POLARIS: Moves most boxes to use starts_with --- .../objects/items/weapons/storage/backpack.dm | 28 +- .../objects/items/weapons/storage/bags.dm | 187 +++++---- .../objects/items/weapons/storage/belt.dm | 103 +++-- .../objects/items/weapons/storage/bible.dm | 13 +- .../objects/items/weapons/storage/boxes.dm | 385 ++++-------------- .../objects/items/weapons/storage/fancy.dm | 102 ++--- .../objects/items/weapons/storage/firstaid.dm | 335 +++++---------- .../objects/items/weapons/storage/lockbox.dm | 36 +- .../objects/items/weapons/storage/misc.dm | 11 +- .../objects/items/weapons/storage/secure.dm | 17 +- .../objects/items/weapons/storage/storage.dm | 4 +- .../objects/items/weapons/storage/toolbox.dm | 93 +++-- .../items/weapons/storage/uplink_kits.dm | 339 +++++++-------- .../objects/items/weapons/storage/wallets.dm | 2 +- code/modules/power/cable.dm | 6 + icons/mob/items/lefthand_storage.dmi | Bin 23274 -> 23374 bytes icons/mob/items/righthand_storage.dmi | Bin 23341 -> 23540 bytes 17 files changed, 623 insertions(+), 1038 deletions(-) diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index c564ebe466..10072cd4cc 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -47,22 +47,18 @@ max_storage_space = ITEMSIZE_COST_NORMAL * 14 // 56 storage_cost = INVENTORY_STANDARD_SPACE + 1 - New() - ..() +/obj/item/weapon/storage/backpack/holding/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/storage/backpack/holding)) + user << "The Bluespace interfaces of the two devices conflict and malfunction." + qdel(W) return + . = ..() - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/storage/backpack/holding)) - user << "The Bluespace interfaces of the two devices conflict and malfunction." - qdel(W) - return - ..() - - //Please don't clutter the parent storage item with stupid hacks. - can_be_inserted(obj/item/W as obj, stop_messages = 0) - if(istype(W, /obj/item/weapon/storage/backpack/holding)) - return 1 - return ..() +//Please don't clutter the parent storage item with stupid hacks. +/obj/item/weapon/storage/backpack/holding/can_be_inserted(obj/item/W as obj, stop_messages = 0) + if(istype(W, /obj/item/weapon/storage/backpack/holding)) + return 1 + return ..() /obj/item/weapon/storage/backpack/santabag name = "\improper Santa's gift bag" @@ -197,9 +193,7 @@ item_state_slots = list(slot_r_hand_str = "briefcase", slot_l_hand_str = "briefcase") /obj/item/weapon/storage/backpack/satchel/withwallet - New() - ..() - new /obj/item/weapon/storage/wallet/random( src ) + starts_with = list(/obj/item/weapon/storage/wallet/random) /obj/item/weapon/storage/backpack/satchel/norm name = "satchel" diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 01ca1c7796..165855e50e 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -112,121 +112,116 @@ storage_slots = 7 allow_quick_empty = 1 // this function is superceded - New() - ..() - //verbs -= /obj/item/weapon/storage/verb/quick_empty - //verbs += /obj/item/weapon/storage/bag/sheetsnatcher/quick_empty - can_be_inserted(obj/item/W as obj, stop_messages = 0) - if(!istype(W,/obj/item/stack/material)) - if(!stop_messages) - usr << "The snatcher does not accept [W]." - return 0 - var/current = 0 - for(var/obj/item/stack/material/S in contents) - current += S.amount - if(capacity == current)//If it's full, you're done - if(!stop_messages) - usr << "The snatcher is full." - return 0 - return 1 +/obj/item/weapon/storage/bag/sheetsnatcher/can_be_inserted(obj/item/W as obj, stop_messages = 0) + if(!istype(W,/obj/item/stack/material)) + if(!stop_messages) + usr << "The snatcher does not accept [W]." + return 0 + var/current = 0 + for(var/obj/item/stack/material/S in contents) + current += S.amount + if(capacity == current)//If it's full, you're done + if(!stop_messages) + usr << "The snatcher is full." + return 0 + return 1 // Modified handle_item_insertion. Would prefer not to, but... - handle_item_insertion(obj/item/W as obj, prevent_warning = 0) - var/obj/item/stack/material/S = W - if(!istype(S)) return 0 +/obj/item/weapon/storage/bag/sheetsnatcher/handle_item_insertion(obj/item/W as obj, prevent_warning = 0) + var/obj/item/stack/material/S = W + if(!istype(S)) return 0 - var/amount - var/inserted = 0 - var/current = 0 - for(var/obj/item/stack/material/S2 in contents) - current += S2.amount - if(capacity < current + S.amount)//If the stack will fill it up - amount = capacity - current + var/amount + var/inserted = 0 + var/current = 0 + for(var/obj/item/stack/material/S2 in contents) + current += S2.amount + if(capacity < current + S.amount)//If the stack will fill it up + amount = capacity - current + else + amount = S.amount + + for(var/obj/item/stack/material/sheet in contents) + if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects + sheet.amount += amount // they should only be removed through procs in this file, which split them up. + S.amount -= amount + inserted = 1 + break + + if(!inserted || !S.amount) + usr.remove_from_mob(S) + usr.update_icons() //update our overlays + if (usr.client && usr.s_active != src) + usr.client.screen -= S + S.dropped(usr) + if(!S.amount) + qdel(S) else - amount = S.amount + S.loc = src - for(var/obj/item/stack/material/sheet in contents) - if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects - sheet.amount += amount // they should only be removed through procs in this file, which split them up. - S.amount -= amount - inserted = 1 - break - - if(!inserted || !S.amount) - usr.remove_from_mob(S) - usr.update_icons() //update our overlays - if (usr.client && usr.s_active != src) - usr.client.screen -= S - S.dropped(usr) - if(!S.amount) - qdel(S) - else - S.loc = src - - orient2hud(usr) - if(usr.s_active) - usr.s_active.show_to(usr) - update_icon() - return 1 + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + update_icon() + return 1 // Sets up numbered display to show the stack size of each stored mineral // NOTE: numbered display is turned off currently because it's broken - orient2hud(mob/user as mob) - var/adjusted_contents = contents.len +/obj/item/weapon/storage/bag/sheetsnatcher/orient2hud(mob/user as mob) + var/adjusted_contents = contents.len - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_contents_with_number) - numbered_contents = list() - adjusted_contents = 0 - for(var/obj/item/stack/material/I in contents) - adjusted_contents++ - var/datum/numbered_display/D = new/datum/numbered_display(I) - D.number = I.amount - numbered_contents.Add( D ) - - var/row_num = 0 - var/col_count = min(7,storage_slots) -1 - if (adjusted_contents > 7) - row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - src.slot_orient_objs(row_num, col_count, numbered_contents) - return + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_contents_with_number) + numbered_contents = list() + adjusted_contents = 0 + for(var/obj/item/stack/material/I in contents) + adjusted_contents++ + var/datum/numbered_display/D = new/datum/numbered_display(I) + D.number = I.amount + numbered_contents.Add( D ) + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if (adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + src.slot_orient_objs(row_num, col_count, numbered_contents) + return // Modified quick_empty verb drops appropriate sized stacks - quick_empty() - var/location = get_turf(src) - for(var/obj/item/stack/material/S in contents) - while(S.amount) - var/obj/item/stack/material/N = new S.type(location) - var/stacksize = min(S.amount,N.max_amount) - N.amount = stacksize - S.amount -= stacksize - if(!S.amount) - qdel(S) // todo: there's probably something missing here - orient2hud(usr) - if(usr.s_active) - usr.s_active.show_to(usr) - update_icon() +/obj/item/weapon/storage/bag/sheetsnatcher/quick_empty() + var/location = get_turf(src) + for(var/obj/item/stack/material/S in contents) + while(S.amount) + var/obj/item/stack/material/N = new S.type(location) + var/stacksize = min(S.amount,N.max_amount) + N.amount = stacksize + S.amount -= stacksize + if(!S.amount) + qdel(S) // todo: there's probably something missing here + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + update_icon() // Instead of removing - remove_from_storage(obj/item/W as obj, atom/new_location) - var/obj/item/stack/material/S = W - if(!istype(S)) return 0 +/obj/item/weapon/storage/bag/sheetsnatcher/remove_from_storage(obj/item/W as obj, atom/new_location) + var/obj/item/stack/material/S = W + if(!istype(S)) return 0 - //I would prefer to drop a new stack, but the item/attack_hand code - // that calls this can't recieve a different object than you clicked on. - //Therefore, make a new stack internally that has the remainder. - // -Sayu + //I would prefer to drop a new stack, but the item/attack_hand code + // that calls this can't recieve a different object than you clicked on. + //Therefore, make a new stack internally that has the remainder. + // -Sayu - if(S.amount > S.max_amount) - var/obj/item/stack/material/temp = new S.type(src) - temp.amount = S.amount - S.max_amount - S.amount = S.max_amount + if(S.amount > S.max_amount) + var/obj/item/stack/material/temp = new S.type(src) + temp.amount = S.amount - S.max_amount + S.amount = S.max_amount - return ..(S,new_location) + return ..(S,new_location) // ----------------------------- // Sheet Snatcher (Cyborg) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 9e98fe58ec..23fccf51ac 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -59,23 +59,25 @@ /obj/item/device/integrated_electronics/wirer, ) -/obj/item/weapon/storage/belt/utility/full/New() - ..() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) +/obj/item/weapon/storage/belt/utility/full + starts_with = list( + /obj/item/weapon/screwdriver, + /obj/item/weapon/wrench, + /obj/item/weapon/weldingtool, + /obj/item/weapon/crowbar, + /obj/item/weapon/wirecutters, + /obj/item/stack/cable_coil/random_belt + ) -/obj/item/weapon/storage/belt/utility/atmostech/New() - ..() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/device/t_scanner(src) +/obj/item/weapon/storage/belt/utility/atmostech + starts_with = list( + /obj/item/weapon/screwdriver, + /obj/item/weapon/wrench, + /obj/item/weapon/weldingtool, + /obj/item/weapon/crowbar, + /obj/item/weapon/wirecutters, + /obj/item/device/t_scanner + ) /obj/item/weapon/storage/belt/utility/chief name = "chief engineer's toolbelt" @@ -83,15 +85,16 @@ icon_state = "utilitybelt_ce" item_state = "utility_ce" -/obj/item/weapon/storage/belt/utility/chief/full/New() - ..() - new /obj/item/weapon/screwdriver/power(src) - new /obj/item/weapon/crowbar/power(src) - new /obj/item/weapon/weldingtool/experimental(src) - new /obj/item/device/multitool(src) - new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) - new /obj/item/weapon/extinguisher/mini(src) - new /obj/item/device/analyzer(src) +/obj/item/weapon/storage/belt/utility/chief/full + starts_with = list( + /obj/item/weapon/screwdriver/power, + /obj/item/weapon/crowbar/power, + /obj/item/weapon/weldingtool/experimental, + /obj/item/device/multitool, + /obj/item/stack/cable_coil/random_belt, + /obj/item/weapon/extinguisher/mini, + /obj/item/device/analyzer + ) /obj/item/weapon/storage/belt/medical name = "medical belt" @@ -216,14 +219,8 @@ /obj/item/device/soulstone ) -/obj/item/weapon/storage/belt/soulstone/full/New() - ..() - new /obj/item/device/soulstone(src) - new /obj/item/device/soulstone(src) - new /obj/item/device/soulstone(src) - new /obj/item/device/soulstone(src) - new /obj/item/device/soulstone(src) - new /obj/item/device/soulstone(src) +/obj/item/weapon/storage/belt/soulstone/full + starts_with = list(/obj/item/device/soulstone = 6) /obj/item/weapon/storage/belt/utility/alien name = "alien belt" @@ -232,15 +229,16 @@ icon_state = "belt" item_state = "security" -/obj/item/weapon/storage/belt/utility/alien/full/New() - ..() - new /obj/item/weapon/screwdriver/alien(src) - new /obj/item/weapon/wrench/alien(src) - new /obj/item/weapon/weldingtool/alien(src) - new /obj/item/weapon/crowbar/alien(src) - new /obj/item/weapon/wirecutters/alien(src) - new /obj/item/device/multitool/alien(src) - new /obj/item/stack/cable_coil/alien(src) +/obj/item/weapon/storage/belt/utility/alien/full + starts_with = list( + /obj/item/weapon/screwdriver/alien, + /obj/item/weapon/wrench/alien, + /obj/item/weapon/weldingtool/alien, + /obj/item/weapon/crowbar/alien, + /obj/item/weapon/wirecutters/alien, + /obj/item/device/multitool/alien, + /obj/item/stack/cable_coil/alien + ) /obj/item/weapon/storage/belt/medical/alien name = "alien belt" @@ -277,16 +275,17 @@ /obj/item/weapon/surgical ) -/obj/item/weapon/storage/belt/medical/alien/New() - ..() - new /obj/item/weapon/surgical/scalpel/alien(src) - new /obj/item/weapon/surgical/hemostat/alien(src) - new /obj/item/weapon/surgical/retractor/alien(src) - new /obj/item/weapon/surgical/circular_saw/alien(src) - new /obj/item/weapon/surgical/FixOVein/alien(src) - new /obj/item/weapon/surgical/bone_clamp/alien(src) - new /obj/item/weapon/surgical/cautery/alien(src) - new /obj/item/weapon/surgical/surgicaldrill/alien(src) +/obj/item/weapon/storage/belt/medical/alien + starts_with = list( + /obj/item/weapon/surgical/scalpel/alien, + /obj/item/weapon/surgical/hemostat/alien, + /obj/item/weapon/surgical/retractor/alien, + /obj/item/weapon/surgical/circular_saw/alien, + /obj/item/weapon/surgical/FixOVein/alien, + /obj/item/weapon/surgical/bone_clamp/alien, + /obj/item/weapon/surgical/cautery/alien, + /obj/item/weapon/surgical/surgicaldrill/alien + ) /obj/item/weapon/storage/belt/champion name = "championship belt" diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index 933970b335..783d8cd74a 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -14,12 +14,13 @@ icon_state ="bible" /obj/item/weapon/storage/bible/booze/New() - ..() - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src) - new /obj/item/weapon/spacecash/c100(src) - new /obj/item/weapon/spacecash/c100(src) - new /obj/item/weapon/spacecash/c100(src) + starts_with = list( + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer, + /obj/item/weapon/spacecash/c100, + /obj/item/weapon/spacecash/c100, + /obj/item/weapon/spacecash/c100 + ) /obj/item/weapon/storage/bible/afterattack(atom/A, mob/user as mob, proximity) if(!proximity) return diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 8e4fb5f6cf..5f3bbcc0c3 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -75,393 +75,250 @@ name = "box of latex gloves" desc = "Contains white gloves." icon_state = "latex" - -/obj/item/weapon/storage/box/gloves/New() - ..() - for(var/i = 1 to 7) - new /obj/item/clothing/gloves/sterile/latex(src) + starts_with = list(/obj/item/clothing/gloves/sterile/latex = 7) /obj/item/weapon/storage/box/masks name = "box of sterile masks" desc = "This box contains masks of sterility." icon_state = "sterile" - -/obj/item/weapon/storage/box/masks/New() - ..() - for(var/i = 1 to 7) - new /obj/item/clothing/mask/surgical(src) + starts_with = list(/obj/item/clothing/mask/surgical = 7) /obj/item/weapon/storage/box/syringes name = "box of syringes" desc = "A box full of syringes." icon_state = "syringe" - -/obj/item/weapon/storage/box/syringes/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/syringe(src) + starts_with = list(/obj/item/weapon/reagent_containers/syringe = 7) /obj/item/weapon/storage/box/syringegun name = "box of syringe gun cartridges" desc = "A box full of compressed gas cartridges." icon_state = "syringe" - -/obj/item/weapon/storage/box/syringegun/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/syringe_cartridge(src) + starts_with = list(/obj/item/weapon/syringe_cartridge = 7) /obj/item/weapon/storage/box/beakers name = "box of beakers" icon_state = "beaker" - -/obj/item/weapon/storage/box/beakers/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/glass/beaker(src) + starts_with = list(/obj/item/weapon/reagent_containers/glass/beaker = 7) /obj/item/weapon/storage/box/injectors name = "box of DNA injectors" desc = "This box contains injectors it seems." - -/obj/item/weapon/storage/box/injectors/New() - ..() - for(var/i = 1 to 3) - new /obj/item/weapon/dnainjector/h2m(src) - for(var/i = 1 to 3) - new /obj/item/weapon/dnainjector/m2h(src) + starts_with = list( + /obj/item/weapon/dnainjector/h2m = 3, + /obj/item/weapon/dnainjector/m2h = 3 + ) /obj/item/weapon/storage/box/blanks name = "box of blank shells" desc = "It has a picture of a gun and several warning symbols on the front." icon_state = "blankshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/blank = 8) -/obj/item/weapon/storage/box/blanks/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/blank(src) - -/obj/item/weapon/storage/box/blanks/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/blank(src) +/obj/item/weapon/storage/box/blanks/large + starts_with = list(/obj/item/ammo_casing/a12g/blank = 16) /obj/item/weapon/storage/box/beanbags name = "box of beanbag shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "beanshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - -/obj/item/weapon/storage/box/beanbags/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/beanbag(src) + starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 8) /obj/item/weapon/storage/box/beanbags/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/beanbag(src) + starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 16) /obj/item/weapon/storage/box/shotgunammo name = "box of shotgun slugs" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "lethalshellshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g = 8) -/obj/item/weapon/storage/box/shotgunammo/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g(src) - -/obj/item/weapon/storage/box/shotgunammo/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g(src) +/obj/item/weapon/storage/box/shotgunammo/large + starts_with = list(/obj/item/ammo_casing/a12g = 16) /obj/item/weapon/storage/box/shotgunshells name = "box of shotgun shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "lethalslug_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/pellet = 8) -/obj/item/weapon/storage/box/shotgunshells/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/pellet(src) - -/obj/item/weapon/storage/box/shotgunshells/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/pellet(src) +/obj/item/weapon/storage/box/shotgunshells/large + starts_with = list(/obj/item/ammo_casing/a12g/pellet = 16) /obj/item/weapon/storage/box/flashshells name = "box of illumination shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "illumshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/flash = 8) -/obj/item/weapon/storage/box/flashshells/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/flash(src) - -/obj/item/weapon/storage/box/flashshells/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/flash(src) +/obj/item/weapon/storage/box/flashshells/large + starts_with = list(/obj/item/ammo_casing/a12g/flash = 16) /obj/item/weapon/storage/box/stunshells name = "box of stun shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "stunshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 8) -/obj/item/weapon/storage/box/stunshells/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/stunshell(src) - -/obj/item/weapon/storage/box/stunshells/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/stunshell(src) +/obj/item/weapon/storage/box/stunshells/large + starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 16) /obj/item/weapon/storage/box/practiceshells name = "box of practice shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "blankshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/practice = 8) -/obj/item/weapon/storage/box/practiceshells/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/practice(src) - -/obj/item/weapon/storage/box/practiceshells/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/practice(src) +/obj/item/weapon/storage/box/practiceshells/large + starts_with = list(/obj/item/ammo_casing/a12g/practice = 16) /obj/item/weapon/storage/box/empshells name = "box of emp shells" desc = "It has a picture of a gun and several warning symbols on the front." icon_state = "empshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/emp = 8) -/obj/item/weapon/storage/box/empshells/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/emp(src) - -/obj/item/weapon/storage/box/empshells/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/emp(src) +/obj/item/weapon/storage/box/empshells/large + starts_with = list(/obj/item/ammo_casing/a12g/emp = 16) /obj/item/weapon/storage/box/sniperammo name = "box of 14.5mm shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - -/obj/item/weapon/storage/box/sniperammo/New() - ..() - for(var/i = 1 to 7) - new /obj/item/ammo_casing/a145(src) + starts_with = list(/obj/item/ammo_casing/a145 = 7) /obj/item/weapon/storage/box/flashbangs name = "box of flashbangs (WARNING)" desc = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." icon_state = "flashbang" - -/obj/item/weapon/storage/box/flashbangs/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/flashbang(src) + starts_with = list(/obj/item/weapon/grenade/flashbang = 7) /obj/item/weapon/storage/box/emps name = "box of emp grenades" desc = "A box containing 5 military grade EMP grenades.
WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur." icon_state = "emp" - -/obj/item/weapon/storage/box/emps/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/empgrenade(src) + starts_with = list(/obj/item/weapon/grenade/empgrenade = 7) /obj/item/weapon/storage/box/empslite name = "box of low yield emp grenades" desc = "A box containing 5 low yield EMP grenades.
WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur." icon_state = "emp" - -/obj/item/weapon/storage/box/empslite/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/empgrenade/low_yield(src) + starts_with = list(/obj/item/weapon/grenade/empgrenade/low_yield = 7) /obj/item/weapon/storage/box/smokes name = "box of smoke bombs" desc = "A box containing 7 smoke bombs." icon_state = "flashbang" - -/obj/item/weapon/storage/box/smokes/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/smokebomb(src) + starts_with = list(/obj/item/weapon/grenade/smokebomb = 7) /obj/item/weapon/storage/box/anti_photons name = "box of anti-photon grenades" desc = "A box containing 7 experimental photon disruption grenades." icon_state = "flashbang" - -/obj/item/weapon/storage/box/anti_photons/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/anti_photon(src) + starts_with = list(/obj/item/weapon/grenade/anti_photon = 7) /obj/item/weapon/storage/box/frags name = "box of fragmentation grenades (WARNING)" desc = "A box containing 7 military grade fragmentation grenades.
WARNING: These devices are extremely dangerous and can cause limb loss or death in repeated use." icon_state = "frag" - -/obj/item/weapon/storage/box/frags/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/explosive(src) + starts_with = list(/obj/item/weapon/grenade/explosive = 7) /obj/item/weapon/storage/box/frags_half_box name = "box of fragmentation grenades (WARNING)" desc = "A box containing 4 military grade fragmentation grenades.
WARNING: These devices are extremely dangerous and can cause limb loss or death in repeated use." icon_state = "frag" - -/obj/item/weapon/storage/box/frags_half_box/New() - ..() - for(var/i = 1 to 4) - new /obj/item/weapon/grenade/explosive(src) + starts_with = list(/obj/item/weapon/grenade/explosive = 4) /obj/item/weapon/storage/box/metalfoam name = "box of metal foam grenades." desc = "A box containing 7 metal foam grenades." icon_state = "flashbang" - -/obj/item/weapon/storage/box/metalfoam/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/chem_grenade/metalfoam(src) + starts_with = list(/obj/item/weapon/grenade/chem_grenade/metalfoam = 7) /obj/item/weapon/storage/box/teargas name = "box of teargas grenades" desc = "A box containing 7 teargas grenades." icon_state = "flashbang" - -/obj/item/weapon/storage/box/teargas/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/chem_grenade/teargas(src) + starts_with = list(/obj/item/weapon/grenade/chem_grenade/teargas = 7) /obj/item/weapon/storage/box/flare name = "box of flares" desc = "A box containing 4 flares." - -/obj/item/weapon/storage/box/flare/New() - ..() - for(var/i = 1 to 4) - new /obj/item/device/flashlight/flare(src) + starts_with = list(/obj/item/device/flashlight/flare = 4) /obj/item/weapon/storage/box/trackimp name = "boxed tracking implant kit" desc = "Box full of scum-bag tracking utensils." icon_state = "implant" - -/obj/item/weapon/storage/box/trackimp/New() - ..() - for(var/i = 1 to 4) - new /obj/item/weapon/implantcase/tracking(src) - new /obj/item/weapon/implanter(src) - new /obj/item/weapon/implantpad(src) - new /obj/item/weapon/locator(src) + starts_with = list( + /obj/item/weapon/implantcase/tracking = 4, + /obj/item/weapon/implanter, + /obj/item/weapon/implantpad, + /obj/item/weapon/locator + ) /obj/item/weapon/storage/box/chemimp name = "boxed chemical implant kit" desc = "Box of stuff used to implant chemicals." icon_state = "implant" - -/obj/item/weapon/storage/box/chemimp/New() - ..() - for(var/i = 1 to 5) - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implanter(src) - new /obj/item/weapon/implantpad(src) + starts_with = list( + /obj/item/weapon/implantcase/chem = 5, + /obj/item/weapon/implanter, + /obj/item/weapon/implantpad + ) /obj/item/weapon/storage/box/camerabug name = "mobile camera pod box" desc = "A box containing some mobile camera pods." icon_state = "pda" - -/obj/item/weapon/storage/box/camerabug/New() - ..() - for(var/i = 1 to 6) - new /obj/item/device/camerabug(src) - new /obj/item/device/bug_monitor(src) + starts_with = list( + /obj/item/device/camerabug = 6, + /obj/item/device/bug_monitor + ) /obj/item/weapon/storage/box/rxglasses name = "box of prescription glasses" desc = "This box contains nerd glasses." icon_state = "glasses" - -/obj/item/weapon/storage/box/rxglasses/New() - ..() - for(var/i = 1 to 7) - new /obj/item/clothing/glasses/regular(src) + starts_with = list(/obj/item/clothing/glasses/regular = 7) /obj/item/weapon/storage/box/cdeathalarm_kit name = "death alarm kit" desc = "Box of stuff used to implant death alarms." icon_state = "implant" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - -/obj/item/weapon/storage/box/cdeathalarm_kit/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/implantcase/death_alarm(src) - new /obj/item/weapon/implanter(src) + starts_with = list( + /obj/item/weapon/implantcase/death_alarm = 7, + /obj/item/weapon/implanter + ) /obj/item/weapon/storage/box/condimentbottles name = "box of condiment bottles" desc = "It has a large ketchup smear on it." - -/obj/item/weapon/storage/box/condimentbottles/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/food/condiment(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/condiment = 7) /obj/item/weapon/storage/box/cups name = "box of paper cups" desc = "It has pictures of paper cups on the front." - -/obj/item/weapon/storage/box/cups/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/drinks/sillycup = 7) /obj/item/weapon/storage/box/donkpockets name = "box of donk-pockets" desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." icon_state = "donk_kit" - -/obj/item/weapon/storage/box/donkpockets/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donkpocket = 7) /obj/item/weapon/storage/box/sinpockets name = "box of sin-pockets" desc = "Instructions: Crush bottom of package to initiate chemical heating. Wait for 20 seconds before consumption. Product will cool if not eaten within seven minutes." icon_state = "donk_kit" - -/obj/item/weapon/storage/box/sinpockets/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket = 7) /obj/item/weapon/storage/box/monkeycubes name = "monkey cube box" @@ -469,88 +326,51 @@ icon = 'icons/obj/food.dmi' icon_state = "monkeycubebox" can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube) - -/obj/item/weapon/storage/box/monkeycubes/New() - ..() - if(type == /obj/item/weapon/storage/box/monkeycubes) - for(var/i = 1 to 4) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped = 4) /obj/item/weapon/storage/box/monkeycubes/farwacubes name = "farwa cube box" desc = "Drymate brand farwa cubes, shipped from Meralar. Just add water!" - -/obj/item/weapon/storage/box/monkeycubes/farwacubes/New() - ..() - for(var/i = 1 to 4) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube = 4) /obj/item/weapon/storage/box/monkeycubes/stokcubes name = "stok cube box" desc = "Drymate brand stok cubes, shipped from Moghes. Just add water!" - -/obj/item/weapon/storage/box/monkeycubes/stokcubes/New() - ..() - for(var/i = 1 to 4) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube = 4) /obj/item/weapon/storage/box/monkeycubes/neaeracubes name = "neaera cube box" desc = "Drymate brand neaera cubes, shipped from Jargon 4. Just add water!" - -/obj/item/weapon/storage/box/monkeycubes/neaeracubes/New() - ..() - for(var/i = 1 to 4) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube = 4) /obj/item/weapon/storage/box/ids name = "box of spare IDs" desc = "Has so many empty IDs." icon_state = "id" - -/obj/item/weapon/storage/box/ids/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/card/id(src) + starts_with = list(/obj/item/weapon/card/id = 7) /obj/item/weapon/storage/box/seccarts name = "box of spare R.O.B.U.S.T. Cartridges" desc = "A box full of R.O.B.U.S.T. Cartridges, used by Security." icon_state = "pda" - -/obj/item/weapon/storage/box/seccarts/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/cartridge/security(src) + starts_with = list(/obj/item/weapon/cartridge/security = 7) /obj/item/weapon/storage/box/handcuffs name = "box of spare handcuffs" desc = "A box full of handcuffs." icon_state = "handcuff" - -/obj/item/weapon/storage/box/handcuffs/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/handcuffs(src) + starts_with = list(/obj/item/weapon/handcuffs = 7) /obj/item/weapon/storage/box/mousetraps name = "box of Pest-B-Gon mousetraps" desc = "WARNING: Keep out of reach of children." icon_state = "mousetraps" - -/obj/item/weapon/storage/box/mousetraps/New() - ..() - for(var/i = 1 to 7) - new /obj/item/device/assembly/mousetrap(src) + starts_with = list(/obj/item/device/assembly/mousetrap = 7) /obj/item/weapon/storage/box/pillbottles name = "box of pill bottles" desc = "It has pictures of pill bottles on its front." - -/obj/item/weapon/storage/box/pillbottles/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/storage/pill_bottle(src) + starts_with = list(/obj/item/weapon/storage/pill_bottle = 7) /obj/item/weapon/storage/box/snappops name = "snap pop box" @@ -558,11 +378,7 @@ icon = 'icons/obj/toy.dmi' icon_state = "spbox" can_hold = list(/obj/item/toy/snappop) - -/obj/item/weapon/storage/box/snappops/New() - ..() - for(var/i = 1 to 8) - new /obj/item/toy/snappop(src) + starts_with = list(/obj/item/toy/snappop = 8) /obj/item/weapon/storage/box/matches name = "matchbox" @@ -572,11 +388,7 @@ w_class = ITEMSIZE_TINY slot_flags = SLOT_BELT can_hold = list(/obj/item/weapon/flame/match) - -/obj/item/weapon/storage/box/matches/New() - ..() - for(var/i=1 to 10) - new /obj/item/weapon/flame/match(src) + starts_with = list(/obj/item/weapon/flame/match = 10) /obj/item/weapon/storage/box/matches/attackby(obj/item/weapon/flame/match/W as obj, mob/user as mob) if(istype(W) && !W.lit && !W.burnt) @@ -591,11 +403,7 @@ name = "box of injectors" desc = "Contains autoinjectors." icon_state = "syringe" - -/obj/item/weapon/storage/box/autoinjectors/New() - ..() - for (var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector(src) + starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 7) /obj/item/weapon/storage/box/lights name = "box of replacement bulbs" @@ -608,30 +416,21 @@ max_storage_space = ITEMSIZE_COST_SMALL * 24 //holds 24 items of w_class 2 use_to_pickup = 1 // for picking up broken bulbs, not that most people will try -/obj/item/weapon/storage/box/lights/bulbs/New() - ..() - for(var/i = 1 to 24) - new /obj/item/weapon/light/bulb(src) +/obj/item/weapon/storage/box/lights/bulbs + starts_with = list(/obj/item/weapon/light/bulb = 24) /obj/item/weapon/storage/box/lights/tubes name = "box of replacement tubes" icon_state = "lighttube" - -/obj/item/weapon/storage/box/lights/tubes/New() - ..() - for(var/i = 1 to 24) - new /obj/item/weapon/light/tube(src) + starts_with = list(/obj/item/weapon/light/tube = 24) /obj/item/weapon/storage/box/lights/mixed name = "box of replacement lights" icon_state = "lightmixed" - -/obj/item/weapon/storage/box/lights/mixed/New() - ..() - for(var/i = 1 to 16) - new /obj/item/weapon/light/tube(src) - for(var/i = 1 to 8) - new /obj/item/weapon/light/bulb(src) + starts_with = list( + /obj/item/weapon/light/tube = 16, + /obj/item/weapon/light/bulb = 8 + ) /obj/item/weapon/storage/box/freezer name = "portable freezer" @@ -664,17 +463,9 @@ /obj/item/weapon/storage/box/ambrosia name = "ambrosia seeds box" desc = "Contains the seeds you need to get a little high." - -/obj/item/weapon/storage/box/ambrosia/New() - ..() - for(var/i = 1 to 7) - new /obj/item/seeds/ambrosiavulgarisseed(src) + starts_with = list(/obj/item/seeds/ambrosiavulgarisseed = 7) /obj/item/weapon/storage/box/ambrosiadeus name = "ambrosia deus seeds box" desc = "Contains the seeds you need to get a proper healthy high." - -/obj/item/weapon/storage/box/ambrosiadeus/New() - ..() - for(var/i = 1 to 7) - new /obj/item/seeds/ambrosiadeusseed(src) + starts_with = list(/obj/item/seeds/ambrosiadeusseed = 7) diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 8cc10444ef..251e5483e1 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -52,12 +52,7 @@ /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/boiledegg ) - -/obj/item/weapon/storage/fancy/egg_box/New() - ..() - for(var/i=1 to storage_slots) - new /obj/item/weapon/reagent_containers/food/snacks/egg(src) - return + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/egg = 12) /* * Candle Box @@ -72,12 +67,7 @@ item_state = "candlebox5" throwforce = 2 slot_flags = SLOT_BELT - -/obj/item/weapon/storage/fancy/candle_box/New() - ..() - for(var/i=1 to 5) - new /obj/item/weapon/flame/candle(src) - return + starts_with = list(/obj/item/weapon/flame/candle = 5) /* * Crayon Box @@ -93,31 +83,36 @@ can_hold = list( /obj/item/weapon/pen/crayon ) + starts_with = list( + /obj/item/weapon/pen/crayon/red, + /obj/item/weapon/pen/crayon/orange, + /obj/item/weapon/pen/crayon/yellow, + /obj/item/weapon/pen/crayon/green, + /obj/item/weapon/pen/crayon/blue, + /obj/item/weapon/pen/crayon/purple + ) -/obj/item/weapon/storage/fancy/crayons/New() - ..() - new /obj/item/weapon/pen/crayon/red(src) - new /obj/item/weapon/pen/crayon/orange(src) - new /obj/item/weapon/pen/crayon/yellow(src) - new /obj/item/weapon/pen/crayon/green(src) - new /obj/item/weapon/pen/crayon/blue(src) - new /obj/item/weapon/pen/crayon/purple(src) +/obj/item/weapon/storage/fancy/crayons/initialize() + . = ..() update_icon() /obj/item/weapon/storage/fancy/crayons/update_icon() - overlays = list() //resets list - overlays += image('icons/obj/crayons.dmi',"crayonbox") + var/mutable_appearance/ma = new(src) + ma.plane = plane + ma.layer = layer + ma.overlays = list() for(var/obj/item/weapon/pen/crayon/crayon in contents) - overlays += image('icons/obj/crayons.dmi',crayon.colourName) + ma.overlays += image('icons/obj/crayons.dmi',crayon.colourName) + appearance = ma /obj/item/weapon/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/weapon/pen/crayon)) switch(W:colourName) if("mime") - usr << "This crayon is too sad to be contained in this box." + to_chat(usr,"This crayon is too sad to be contained in this box.") return if("rainbow") - usr << "This crayon is too powerful to be contained in this box." + to_chat(usr,"This crayon is too powerful to be contained in this box.") return ..() @@ -136,13 +131,12 @@ storage_slots = 6 can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/weapon/flame/lighter) icon_type = "cigarette" + starts_with = list(/obj/item/clothing/mask/smokable/cigarette = 6) var/brand = "\improper Trans-Stellar Duty-free" -/obj/item/weapon/storage/fancy/cigarettes/New() - ..() +/obj/item/weapon/storage/fancy/cigarettes/initialize() + . = ..() flags |= NOREACT - for(var/i = 1 to storage_slots) - new /obj/item/clothing/mask/smokable/cigarette(src) create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one flags |= OPENCONTAINER if(brand) @@ -201,10 +195,6 @@ icon_state = "Bpacket" brand = "\improper Acme Co. cigarette" -// New() -// ..() -// fill_cigarre_package(src,list("fuel" = 15)) - // New exciting ways to kill your lungs! - Earthcrusher // /obj/item/weapon/storage/fancy/cigarettes/luckystars @@ -248,12 +238,11 @@ storage_slots = 7 can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar) icon_type = "cigar" + starts_with = list(/obj/item/clothing/mask/smokable/cigarette/cigar = 7) -/obj/item/weapon/storage/fancy/cigar/New() - ..() +/obj/item/weapon/storage/fancy/cigar/initialize() + . = ..() flags |= NOREACT - for(var/i = 1 to storage_slots) - new /obj/item/clothing/mask/smokable/cigarette/cigar(src) create_reagents(15 * storage_slots) /obj/item/weapon/storage/fancy/cigar/update_icon() @@ -261,10 +250,10 @@ return /obj/item/weapon/storage/fancy/cigar/remove_from_storage(obj/item/W as obj, atom/new_location) - var/obj/item/clothing/mask/smokable/cigarette/cigar/C = W - if(!istype(C)) return - reagents.trans_to_obj(C, (reagents.total_volume/contents.len)) - ..() + var/obj/item/clothing/mask/smokable/cigarette/cigar/C = W + if(!istype(C)) return + reagents.trans_to_obj(C, (reagents.total_volume/contents.len)) + ..() /* * Vial Box @@ -277,12 +266,7 @@ name = "vial storage box" storage_slots = 6 can_hold = list(/obj/item/weapon/reagent_containers/glass/beaker/vial) - -/obj/item/weapon/storage/fancy/vials/New() - ..() - for(var/i=1 to 6) - new /obj/item/weapon/reagent_containers/glass/beaker/vial(src) - return + starts_with = list(/obj/item/weapon/reagent_containers/glass/beaker/vial = 6) /obj/item/weapon/storage/lockbox/vials name = "secure vial storage box" @@ -296,8 +280,8 @@ storage_slots = 6 req_access = list(access_virology) -/obj/item/weapon/storage/lockbox/vials/New() - ..() +/obj/item/weapon/storage/lockbox/vials/initialize() + . = ..() update_icon() /obj/item/weapon/storage/lockbox/vials/update_icon(var/itemremoved = 0) @@ -330,19 +314,19 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white, /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle ) + starts_with = list( + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle + ) -/obj/item/weapon/storage/fancy/heartbox/New() - ..() - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src) - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src) - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src) - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white(src) - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white(src) - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle(src) +/obj/item/weapon/storage/fancy/heartbox/initialize() + . = ..() update_icon() - return /obj/item/weapon/storage/fancy/heartbox/update_icon(var/itemremoved = 0) if (contents.len == 0) icon_state = "heartbox_empty" - return \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 43b7c9e22b..929c55e561 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -13,158 +13,147 @@ icon_state = "firstaid" throw_speed = 2 throw_range = 8 - var/empty = 0 max_storage_space = ITEMSIZE_COST_SMALL * 7 // 14 + var/list/icon_variety +/obj/item/weapon/storage/firstaid/initialize() + . = ..() + if(icon_variety) + icon_state = pick(icon_variety) + icon_variety = null /obj/item/weapon/storage/firstaid/fire name = "fire first aid kit" desc = "It's an emergency medical kit for when the toxins lab spontaneously burns down." icon_state = "ointment" item_state_slots = list(slot_r_hand_str = "firstaid-ointment", slot_l_hand_str = "firstaid-ointment") - - New() - ..() - if (empty) return - - icon_state = pick("ointment","firefirstaid") - - new /obj/item/device/healthanalyzer( src ) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src ) - new /obj/item/stack/medical/ointment( src ) - new /obj/item/stack/medical/ointment( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) //Replaced ointment with these since they actually work --Errorage - return - + icon_variety = list("ointment","firefirstaid") + starts_with = list( + /obj/item/device/healthanalyzer, + /obj/item/weapon/reagent_containers/hypospray/autoinjector, + /obj/item/stack/medical/ointment, + /obj/item/stack/medical/ointment, + /obj/item/weapon/reagent_containers/pill/kelotane, + /obj/item/weapon/reagent_containers/pill/kelotane, + /obj/item/weapon/reagent_containers/pill/kelotane + ) /obj/item/weapon/storage/firstaid/regular icon_state = "firstaid" - - New() - ..() - if (empty) return - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/device/healthanalyzer(src) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src ) - return + starts_with = list( + /obj/item/stack/medical/bruise_pack, + /obj/item/stack/medical/bruise_pack, + /obj/item/stack/medical/bruise_pack, + /obj/item/stack/medical/ointment, + /obj/item/stack/medical/ointment, + /obj/item/device/healthanalyzer, + /obj/item/weapon/reagent_containers/hypospray/autoinjector + ) /obj/item/weapon/storage/firstaid/toxin name = "poison first aid kit" //IRL the term used would be poison first aid kit. desc = "Used to treat when one has a high amount of toxins in their body." icon_state = "antitoxin" item_state_slots = list(slot_r_hand_str = "firstaid-toxin", slot_l_hand_str = "firstaid-toxin") - - New() - ..() - if (empty) return - - icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") - - new /obj/item/weapon/reagent_containers/syringe/antitoxin( src ) - new /obj/item/weapon/reagent_containers/syringe/antitoxin( src ) - new /obj/item/weapon/reagent_containers/syringe/antitoxin( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/device/healthanalyzer( src ) - return + icon_variety = list("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") + starts_with = list( + /obj/item/weapon/reagent_containers/syringe/antitoxin, + /obj/item/weapon/reagent_containers/syringe/antitoxin, + /obj/item/weapon/reagent_containers/syringe/antitoxin, + /obj/item/weapon/reagent_containers/pill/antitox, + /obj/item/weapon/reagent_containers/pill/antitox, + /obj/item/weapon/reagent_containers/pill/antitox, + /obj/item/device/healthanalyzer + ) /obj/item/weapon/storage/firstaid/o2 name = "oxygen deprivation first aid kit" desc = "A box full of oxygen goodies." icon_state = "o2" item_state_slots = list(slot_r_hand_str = "firstaid-o2", slot_l_hand_str = "firstaid-o2") - - New() - ..() - if (empty) return - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src ) - new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src ) - new /obj/item/device/healthanalyzer( src ) - return + starts_with = list( + /obj/item/weapon/reagent_containers/pill/dexalin, + /obj/item/weapon/reagent_containers/pill/dexalin, + /obj/item/weapon/reagent_containers/pill/dexalin, + /obj/item/weapon/reagent_containers/pill/dexalin, + /obj/item/weapon/reagent_containers/hypospray/autoinjector, + /obj/item/weapon/reagent_containers/syringe/inaprovaline, + /obj/item/device/healthanalyzer + ) /obj/item/weapon/storage/firstaid/adv name = "advanced first aid kit" desc = "Contains advanced medical treatments, for serious boo-boos." icon_state = "advfirstaid" item_state_slots = list(slot_r_hand_str = "firstaid-advanced", slot_l_hand_str = "firstaid-advanced") - -/obj/item/weapon/storage/firstaid/adv/New() - ..() - if (empty) return - new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src ) - new /obj/item/stack/medical/advanced/bruise_pack(src) - new /obj/item/stack/medical/advanced/bruise_pack(src) - new /obj/item/stack/medical/advanced/bruise_pack(src) - new /obj/item/stack/medical/advanced/ointment(src) - new /obj/item/stack/medical/advanced/ointment(src) - new /obj/item/stack/medical/splint(src) - return + starts_with = list( + /obj/item/weapon/reagent_containers/hypospray/autoinjector, + /obj/item/stack/medical/advanced/bruise_pack, + /obj/item/stack/medical/advanced/bruise_pack, + /obj/item/stack/medical/advanced/bruise_pack, + /obj/item/stack/medical/advanced/ointment, + /obj/item/stack/medical/advanced/ointment, + /obj/item/stack/medical/splint + ) /obj/item/weapon/storage/firstaid/combat name = "combat medical kit" desc = "Contains advanced medical treatments." icon_state = "bezerk" item_state_slots = list(slot_r_hand_str = "firstaid-advanced", slot_l_hand_str = "firstaid-advanced") - -/obj/item/weapon/storage/firstaid/combat/New() - ..() - if (empty) return - new /obj/item/weapon/storage/pill_bottle/bicaridine(src) - new /obj/item/weapon/storage/pill_bottle/dermaline(src) - new /obj/item/weapon/storage/pill_bottle/dexalin_plus(src) - new /obj/item/weapon/storage/pill_bottle/dylovene(src) - new /obj/item/weapon/storage/pill_bottle/tramadol(src) - new /obj/item/weapon/storage/pill_bottle/spaceacillin(src) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting(src) - new /obj/item/stack/medical/splint(src) - new /obj/item/device/healthanalyzer/advanced(src) - return + starts_with = list( + /obj/item/weapon/storage/pill_bottle/bicaridine, + /obj/item/weapon/storage/pill_bottle/dermaline, + /obj/item/weapon/storage/pill_bottle/dexalin_plus, + /obj/item/weapon/storage/pill_bottle/dylovene, + /obj/item/weapon/storage/pill_bottle/tramadol, + /obj/item/weapon/storage/pill_bottle/spaceacillin, + /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting, + /obj/item/stack/medical/splint, + /obj/item/device/healthanalyzer/advanced + ) /obj/item/weapon/storage/firstaid/surgery name = "surgery kit" - desc = "Contains tools for surgery." - max_storage_space = ITEMSIZE_COST_NORMAL * 6 // Formally 21. Odd numbers should be avoided for a system based on exponents of 2. + desc = "Contains tools for surgery. Has precise foam fitting for safe transport and automatically sterilizes the content between uses." + icon_state = "surgerykit" + item_state = "firstaid-surgery" max_w_class = ITEMSIZE_NORMAL -/obj/item/weapon/storage/firstaid/surgery/New() - ..() - if (empty) return - new /obj/item/weapon/surgical/bonesetter(src) - new /obj/item/weapon/surgical/cautery(src) - new /obj/item/weapon/surgical/circular_saw(src) - new /obj/item/weapon/surgical/hemostat(src) - new /obj/item/weapon/surgical/retractor(src) - new /obj/item/weapon/surgical/scalpel(src) - new /obj/item/weapon/surgical/surgicaldrill(src) - new /obj/item/weapon/surgical/bonegel(src) - new /obj/item/weapon/surgical/FixOVein(src) - new /obj/item/stack/medical/advanced/bruise_pack(src) - new /obj/item/device/healthanalyzer/enhanced(src) - return + can_hold = list( + /obj/item/weapon/surgical/bonesetter, + /obj/item/weapon/surgical/cautery, + /obj/item/weapon/surgical/circular_saw, + /obj/item/weapon/surgical/hemostat, + /obj/item/weapon/surgical/retractor, + /obj/item/weapon/surgical/scalpel, + /obj/item/weapon/surgical/surgicaldrill, + /obj/item/weapon/surgical/bonegel, + /obj/item/weapon/surgical/FixOVein, + /obj/item/stack/medical/advanced/bruise_pack, + /obj/item/stack/nanopaste, + /obj/item/device/healthanalyzer/enhanced + ) + + starts_with = list( + /obj/item/weapon/surgical/bonesetter, + /obj/item/weapon/surgical/cautery, + /obj/item/weapon/surgical/circular_saw, + /obj/item/weapon/surgical/hemostat, + /obj/item/weapon/surgical/retractor, + /obj/item/weapon/surgical/scalpel, + /obj/item/weapon/surgical/surgicaldrill, + /obj/item/weapon/surgical/bonegel, + /obj/item/weapon/surgical/FixOVein, + /obj/item/stack/medical/advanced/bruise_pack, + /obj/item/device/healthanalyzer/enhanced + ) /obj/item/weapon/storage/firstaid/clotting name = "clotting kit" desc = "Contains chemicals to stop bleeding." max_storage_space = ITEMSIZE_COST_SMALL * 7 - -/obj/item/weapon/storage/firstaid/clotting/New() - ..() - if (empty) - return - for(var/i = 1 to 8) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting(src) - return + starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting = 8) /* * Pill Bottles @@ -187,167 +176,59 @@ /obj/item/weapon/storage/pill_bottle/antitox name = "bottle of Dylovene pills" desc = "Contains pills used to counter toxins." - -/obj/item/weapon/storage/pill_bottle/antitox/New() //25u each - ..() - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/antitox = 7) /obj/item/weapon/storage/pill_bottle/bicaridine name = "bottle of Bicaridine pills" desc = "Contains pills used to stabilize the severely injured." - -/obj/item/weapon/storage/pill_bottle/bicaridine/New() - ..() - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/bicaridine = 7) /obj/item/weapon/storage/pill_bottle/dexalin_plus name = "bottle of Dexalin Plus pills" desc = "Contains pills used to treat extreme cases of oxygen deprivation." - -/obj/item/weapon/storage/pill_bottle/dexalin_plus/New() - ..() - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/dexalin_plus = 7) /obj/item/weapon/storage/pill_bottle/dermaline name = "bottle of Dermaline pills" desc = "Contains pills used to treat burn wounds." - -/obj/item/weapon/storage/pill_bottle/dermaline/New() - ..() - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/dermaline = 7) /obj/item/weapon/storage/pill_bottle/dylovene name = "bottle of Dylovene pills" desc = "Contains pills used to treat toxic substances in the blood." - -/obj/item/weapon/storage/pill_bottle/dylovene/New() //15u each - ..() - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/dylovene = 7) /obj/item/weapon/storage/pill_bottle/inaprovaline name = "bottle of Inaprovaline pills" desc = "Contains pills used to stabilize patients." - -/obj/item/weapon/storage/pill_bottle/inaprovaline/New() - ..() - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/inaprovaline = 7) /obj/item/weapon/storage/pill_bottle/kelotane name = "bottle of kelotane pills" desc = "Contains pills used to treat burns." - -/obj/item/weapon/storage/pill_bottle/kelotane/New() - ..() - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/kelotane = 7) /obj/item/weapon/storage/pill_bottle/spaceacillin name = "bottle of Spaceacillin pills" desc = "A theta-lactam antibiotic. Effective against many diseases likely to be encountered in space." - -/obj/item/weapon/storage/pill_bottle/spaceacillin/New() - ..() - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/spaceacillin = 7) /obj/item/weapon/storage/pill_bottle/tramadol name = "bottle of Tramadol pills" desc = "Contains pills used to relieve pain." - -/obj/item/weapon/storage/pill_bottle/tramadol/New() - ..() - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/tramadol = 7) /obj/item/weapon/storage/pill_bottle/citalopram name = "bottle of Citalopram pills" desc = "Contains pills used to stabilize a patient's mood." - -/obj/item/weapon/storage/pill_bottle/citalopram/New() - ..() - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/citalopram = 7) /obj/item/weapon/storage/pill_bottle/carbon name = "bottle of Carbon pills" desc = "Contains pills used to neutralise chemicals in the stomach." - -/obj/item/weapon/storage/pill_bottle/carbon/New() - ..() - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/carbon = 7) /obj/item/weapon/storage/pill_bottle/iron name = "bottle of Iron pills" desc = "Contains pills used to aid in blood regeneration." - -/obj/item/weapon/storage/pill_bottle/iron/New() - ..() - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) \ No newline at end of file + starts_with = list(/obj/item/weapon/reagent_containers/pill/iron = 7) diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index e52ad4d812..e9527b2313 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -77,36 +77,28 @@ /obj/item/weapon/storage/lockbox/loyalty name = "lockbox of loyalty implants" req_access = list(access_security) - - New() - ..() - new /obj/item/weapon/implantcase/loyalty(src) - new /obj/item/weapon/implantcase/loyalty(src) - new /obj/item/weapon/implantcase/loyalty(src) - new /obj/item/weapon/implanter/loyalty(src) - + starts_with = list( + /obj/item/weapon/implantcase/loyalty = 3, + /obj/item/weapon/implanter/loyalty + ) /obj/item/weapon/storage/lockbox/clusterbang name = "lockbox of clusterbangs" desc = "You have a bad feeling about opening this." req_access = list(access_security) - - New() - ..() - new /obj/item/weapon/grenade/flashbang/clusterbang(src) + starts_with = list(/obj/item/weapon/grenade/flashbang/clusterbang) /obj/item/weapon/storage/lockbox/medal name = "lockbox of medals" desc = "A lockbox filled with commemorative medals, it has the NanoTrasen logo stamped on it." req_access = list(access_heads) storage_slots = 7 - - New() - ..() - new /obj/item/clothing/accessory/medal/conduct(src) - new /obj/item/clothing/accessory/medal/bronze_heart(src) - new /obj/item/clothing/accessory/medal/nobel_science(src) - new /obj/item/clothing/accessory/medal/silver/valor(src) - new /obj/item/clothing/accessory/medal/silver/security(src) - new /obj/item/clothing/accessory/medal/gold/captain(src) - new /obj/item/clothing/accessory/medal/gold/heroism(src) \ No newline at end of file + starts_with = list( + /obj/item/clothing/accessory/medal/conduct, + /obj/item/clothing/accessory/medal/bronze_heart, + /obj/item/clothing/accessory/medal/nobel_science, + /obj/item/clothing/accessory/medal/silver/valor, + /obj/item/clothing/accessory/medal/silver/security, + /obj/item/clothing/accessory/medal/gold/captain, + /obj/item/clothing/accessory/medal/gold/heroism + ) diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm index 64952046a5..d103fbc6ef 100644 --- a/code/game/objects/items/weapons/storage/misc.dm +++ b/code/game/objects/items/weapons/storage/misc.dm @@ -6,17 +6,14 @@ icon = 'icons/obj/food.dmi' icon_state = "donutbox" name = "donut box" - var/startswith = 6 max_storage_space = ITEMSIZE_COST_SMALL * 6 can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut) foldable = /obj/item/stack/material/cardboard + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donut/normal = 6) -/obj/item/weapon/storage/box/donut/New() - ..() - for(var/i=1 to startswith) - new /obj/item/weapon/reagent_containers/food/snacks/donut/normal(src) +/obj/item/weapon/storage/box/donut/initialize() + . = ..() update_icon() - return /obj/item/weapon/storage/box/donut/update_icon() overlays.Cut() @@ -26,4 +23,4 @@ i++ /obj/item/weapon/storage/box/donut/empty - startswith = 0 + empty = TRUE diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm index 4d9be129f7..78a2d940ad 100644 --- a/code/game/objects/items/weapons/storage/secure.dm +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -184,15 +184,10 @@ anchored = 1.0 density = 0 cant_hold = list(/obj/item/weapon/storage/secure/briefcase) + starts_with = list( + /obj/item/weapon/paper, + /obj/item/weapon/pen + ) - New() - ..() - new /obj/item/weapon/paper(src) - new /obj/item/weapon/pen(src) - - attack_hand(mob/user as mob) - return attack_self(user) - -/obj/item/weapon/storage/secure/safe/HoS/New() - ..() - //new /obj/item/weapon/storage/lockbox/clusterbang(src) This item is currently broken... and probably shouldnt exist to begin with (even though it's cool) +/obj/item/weapon/storage/secure/safe/attack_hand(mob/user as mob) + return attack_self(user) diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 6309a0a3f3..2dd5116546 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -36,6 +36,7 @@ var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile var/use_sound = "rustle" //sound played when used. null for no sound. var/list/starts_with //Things to spawn on the box on spawn + var/empty //Mapper override to spawn an empty version of a container that usually has stuff /obj/item/weapon/storage/Destroy() close_all() @@ -576,12 +577,13 @@ src.closer.hud_layerise() orient2hud() - if(LAZYLEN(starts_with)) + if(LAZYLEN(starts_with) && !empty) for(var/newtype in starts_with) var/count = starts_with[newtype] || 1 //Could have left it blank. while(count) count-- new newtype(src) + starts_with = null //Reduce list count. calibrate_size() diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 21bebfa399..c4174eb4c0 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -19,48 +19,50 @@ name = "emergency toolbox" icon_state = "red" item_state_slots = list(slot_r_hand_str = "toolbox_red", slot_l_hand_str = "toolbox_red") - -/obj/item/weapon/storage/toolbox/emergency/New() - ..() - new /obj/item/weapon/crowbar/red(src) - new /obj/item/weapon/extinguisher/mini(src) + starts_with = list( + /obj/item/weapon/crowbar/red, + /obj/item/weapon/extinguisher/mini, + /obj/item/device/radio + ) +/obj/item/weapon/storage/toolbox/emergency/initialize() if(prob(50)) new /obj/item/device/flashlight(src) else new /obj/item/device/flashlight/flare(src) - new /obj/item/device/radio(src) + . = ..() /obj/item/weapon/storage/toolbox/mechanical name = "mechanical toolbox" icon_state = "blue" item_state_slots = list(slot_r_hand_str = "toolbox_blue", slot_l_hand_str = "toolbox_blue") - -/obj/item/weapon/storage/toolbox/mechanical/New() - ..() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/device/analyzer(src) - new /obj/item/weapon/wirecutters(src) + starts_with = list( + /obj/item/weapon/screwdriver, + /obj/item/weapon/wrench, + /obj/item/weapon/weldingtool, + /obj/item/weapon/crowbar, + /obj/item/device/analyzer, + /obj/item/weapon/wirecutters + ) /obj/item/weapon/storage/toolbox/electrical name = "electrical toolbox" icon_state = "yellow" item_state_slots = list(slot_r_hand_str = "toolbox_yellow", slot_l_hand_str = "toolbox_yellow") - -/obj/item/weapon/storage/toolbox/electrical/New() - ..() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/device/t_scanner(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/stack/cable_coil/random(src,30) - new /obj/item/stack/cable_coil/random(src,30) + starts_with = list( + /obj/item/weapon/screwdriver, + /obj/item/weapon/wirecutters, + /obj/item/device/t_scanner, + /obj/item/weapon/crowbar, + /obj/item/stack/cable_coil/random_belt, + /obj/item/stack/cable_coil/random_belt + ) +/obj/item/weapon/storage/toolbox/electrical/initialize() + . = ..() if(prob(5)) new /obj/item/clothing/gloves/yellow(src) else new /obj/item/stack/cable_coil/random(src,30) + calibrate_size() /obj/item/weapon/storage/toolbox/syndicate name = "black and red toolbox" @@ -68,29 +70,26 @@ item_state_slots = list(slot_r_hand_str = "toolbox_syndi", slot_l_hand_str = "toolbox_syndi") origin_tech = list(TECH_COMBAT = 1, TECH_ILLEGAL = 1) force = 14 - var/powertools = FALSE + starts_with = list( + /obj/item/clothing/gloves/yellow, + /obj/item/weapon/screwdriver, + /obj/item/weapon/wrench, + /obj/item/weapon/weldingtool, + /obj/item/weapon/crowbar, + /obj/item/weapon/wirecutters, + /obj/item/device/multitool + ) /obj/item/weapon/storage/toolbox/syndicate/powertools - powertools = TRUE - -/obj/item/weapon/storage/toolbox/syndicate/New() // This is found in maint, so it should have the basics, plus some gloves. - ..() //all storage items need this to work properly! - if(powertools) - new /obj/item/clothing/gloves/yellow(src) - new /obj/item/weapon/screwdriver/power(src) - new /obj/item/weapon/weldingtool/experimental(src) - new /obj/item/weapon/crowbar/power(src) - new /obj/item/device/multitool(src) - new /obj/item/stack/cable_coil/random(src,30) - new /obj/item/device/analyzer(src) - else - new /obj/item/clothing/gloves/yellow(src) - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/device/multitool(src) + starts_with = list( + /obj/item/clothing/gloves/yellow, + /obj/item/weapon/screwdriver/power, + /obj/item/weapon/weldingtool/experimental, + /obj/item/weapon/crowbar/power, + /obj/item/device/multitool, + /obj/item/stack/cable_coil/random_belt, + /obj/item/device/analyzer + ) /obj/item/weapon/storage/toolbox/lunchbox max_storage_space = ITEMSIZE_COST_SMALL * 4 //slightly smaller than a toolbox @@ -103,8 +102,7 @@ var/filled = FALSE attack_verb = list("lunched") -/obj/item/weapon/storage/toolbox/lunchbox/New() - ..() +/obj/item/weapon/storage/toolbox/lunchbox/initialize() if(filled) var/list/lunches = lunchables_lunches() var/lunch = lunches[pick(lunches)] @@ -117,6 +115,7 @@ var/list/drinks = lunchables_drinks() var/drink = drinks[pick(drinks)] new drink(src) + . = ..() /obj/item/weapon/storage/toolbox/lunchbox/filled filled = TRUE diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index f82feb91dd..5c0f837340 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -1,76 +1,66 @@ -/obj/item/weapon/storage/box/syndicate/ - New() - ..() - switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1, "smoothoperator" = 1))) - if("bloodyspai") - new /obj/item/clothing/under/chameleon(src) - new /obj/item/clothing/mask/gas/voice(src) - new /obj/item/weapon/card/id/syndicate(src) - new /obj/item/clothing/shoes/syndigaloshes(src) - return +/obj/item/weapon/storage/box/syndicate/initialize() + switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1, "smoothoperator" = 1))) + if("bloodyspai") + new /obj/item/clothing/under/chameleon(src) + new /obj/item/clothing/mask/gas/voice(src) + new /obj/item/weapon/card/id/syndicate(src) + new /obj/item/clothing/shoes/syndigaloshes(src) - if("stealth") - new /obj/item/weapon/gun/energy/crossbow(src) - new /obj/item/weapon/pen/reagent/paralysis(src) - new /obj/item/device/chameleon(src) - return + if("stealth") + new /obj/item/weapon/gun/energy/crossbow(src) + new /obj/item/weapon/pen/reagent/paralysis(src) + new /obj/item/device/chameleon(src) - if("screwed") - new /obj/effect/spawner/newbomb/timer/syndicate(src) - new /obj/effect/spawner/newbomb/timer/syndicate(src) - new /obj/item/device/powersink(src) - new /obj/item/clothing/suit/space/syndicate(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) - new /obj/item/clothing/mask/gas/syndicate(src) - new /obj/item/weapon/tank/emergency/oxygen/double(src) - return + if("screwed") + new /obj/effect/spawner/newbomb/timer/syndicate(src) + new /obj/effect/spawner/newbomb/timer/syndicate(src) + new /obj/item/device/powersink(src) + new /obj/item/clothing/suit/space/syndicate(src) + new /obj/item/clothing/head/helmet/space/syndicate(src) + new /obj/item/clothing/mask/gas/syndicate(src) + new /obj/item/weapon/tank/emergency/oxygen/double(src) - if("guns") - new /obj/item/weapon/gun/projectile/revolver(src) - new /obj/item/ammo_magazine/s357(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/weapon/plastique(src) - new /obj/item/weapon/plastique(src) - return + if("guns") + new /obj/item/weapon/gun/projectile/revolver(src) + new /obj/item/ammo_magazine/s357(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/weapon/plastique(src) + new /obj/item/weapon/plastique(src) - if("murder") - new /obj/item/weapon/melee/energy/sword(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/clothing/shoes/syndigaloshes(src) - return + if("murder") + new /obj/item/weapon/melee/energy/sword(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/clothing/shoes/syndigaloshes(src) - if("freedom") - var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) - O.imp = new /obj/item/weapon/implant/freedom(O) - var/obj/item/weapon/implanter/U = new /obj/item/weapon/implanter(src) - U.imp = new /obj/item/weapon/implant/uplink(U) - return + if("freedom") + var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) + O.imp = new /obj/item/weapon/implant/freedom(O) + var/obj/item/weapon/implanter/U = new /obj/item/weapon/implanter(src) + U.imp = new /obj/item/weapon/implant/uplink(U) - if("hacker") - new /obj/item/device/encryptionkey/syndicate(src) - new /obj/item/weapon/aiModule/syndicate(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/device/encryptionkey/binary(src) - return + if("hacker") + new /obj/item/device/encryptionkey/syndicate(src) + new /obj/item/weapon/aiModule/syndicate(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/device/encryptionkey/binary(src) - if("lordsingulo") - new /obj/item/device/radio/beacon/syndicate(src) - new /obj/item/clothing/suit/space/syndicate(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) - new /obj/item/clothing/mask/gas/syndicate(src) - new /obj/item/weapon/tank/emergency/oxygen/double(src) - new /obj/item/weapon/card/emag(src) - return + if("lordsingulo") + new /obj/item/device/radio/beacon/syndicate(src) + new /obj/item/clothing/suit/space/syndicate(src) + new /obj/item/clothing/head/helmet/space/syndicate(src) + new /obj/item/clothing/mask/gas/syndicate(src) + new /obj/item/weapon/tank/emergency/oxygen/double(src) + new /obj/item/weapon/card/emag(src) - if("smoothoperator") - new /obj/item/weapon/storage/box/syndie_kit/g9mm(src) - new /obj/item/weapon/storage/bag/trash(src) - new /obj/item/weapon/soap/syndie(src) - new /obj/item/bodybag(src) - new /obj/item/clothing/under/suit_jacket(src) - new /obj/item/clothing/shoes/laceup(src) - return + if("smoothoperator") + new /obj/item/weapon/storage/box/syndie_kit/g9mm(src) + new /obj/item/weapon/storage/bag/trash(src) + new /obj/item/weapon/soap/syndie(src) + new /obj/item/bodybag(src) + new /obj/item/clothing/under/suit_jacket(src) + new /obj/item/clothing/shoes/laceup(src) + . = ..() /obj/item/weapon/storage/box/syndie_kit name = "box" @@ -80,118 +70,97 @@ /obj/item/weapon/storage/box/syndie_kit/imp_freedom name = "boxed freedom implant (with injector)" -/obj/item/weapon/storage/box/syndie_kit/imp_freedom/New() - ..() +/obj/item/weapon/storage/box/syndie_kit/imp_freedom/initialize() var/obj/item/weapon/implanter/O = new(src) O.imp = new /obj/item/weapon/implant/freedom(O) O.update() - return + . = ..() /obj/item/weapon/storage/box/syndie_kit/imp_compress name = "box (C)" - -/obj/item/weapon/storage/box/syndie_kit/imp_compress/New() - new /obj/item/weapon/implanter/compressed(src) - ..() - return + starts_with = list(/obj/item/weapon/implanter/compressed) /obj/item/weapon/storage/box/syndie_kit/imp_explosive name = "box (E)" - -/obj/item/weapon/storage/box/syndie_kit/imp_explosive/New() - new /obj/item/weapon/implanter/explosive(src) - ..() - return + starts_with = list(/obj/item/weapon/implanter/explosive) /obj/item/weapon/storage/box/syndie_kit/imp_uplink name = "boxed uplink implant (with injector)" -/obj/item/weapon/storage/box/syndie_kit/imp_uplink/New() - ..() +/obj/item/weapon/storage/box/syndie_kit/imp_uplink/initialize() var/obj/item/weapon/implanter/O = new(src) O.imp = new /obj/item/weapon/implant/uplink(O) O.update() - return + . = ..() /obj/item/weapon/storage/box/syndie_kit/space name = "boxed space suit and helmet" - -/obj/item/weapon/storage/box/syndie_kit/space/New() - ..() - new /obj/item/clothing/suit/space/syndicate(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) - new /obj/item/clothing/mask/gas/syndicate(src) - new /obj/item/weapon/tank/emergency/oxygen/double(src) - return + starts_with = list( + /obj/item/clothing/suit/space/syndicate, + /obj/item/clothing/head/helmet/space/syndicate, + /obj/item/clothing/mask/gas/syndicate, + /obj/item/weapon/tank/emergency/oxygen/double + ) /obj/item/weapon/storage/box/syndie_kit/chameleon name = "chameleon kit" desc = "Comes with all the clothes you need to impersonate most people. Acting lessons sold seperately." - -/obj/item/weapon/storage/box/syndie_kit/chameleon/New() - ..() - new /obj/item/clothing/under/chameleon(src) - new /obj/item/clothing/head/chameleon(src) - new /obj/item/clothing/suit/chameleon(src) - new /obj/item/clothing/shoes/chameleon(src) - new /obj/item/weapon/storage/backpack/chameleon(src) - new /obj/item/clothing/gloves/chameleon(src) - new /obj/item/clothing/mask/chameleon(src) - new /obj/item/clothing/glasses/chameleon(src) - new /obj/item/clothing/accessory/chameleon(src) - new /obj/item/weapon/gun/energy/chameleon(src) + starts_with = list( + /obj/item/clothing/under/chameleon, + /obj/item/clothing/head/chameleon, + /obj/item/clothing/suit/chameleon, + /obj/item/clothing/shoes/chameleon, + /obj/item/weapon/storage/backpack/chameleon, + /obj/item/clothing/gloves/chameleon, + /obj/item/clothing/mask/chameleon, + /obj/item/clothing/glasses/chameleon, + /obj/item/clothing/accessory/chameleon, + /obj/item/weapon/gun/energy/chameleon + ) /obj/item/weapon/storage/box/syndie_kit/clerical name = "clerical kit" desc = "Comes with all you need to fake paperwork. Assumes you have passed basic writing lessons." - -/obj/item/weapon/storage/box/syndie_kit/clerical/New() - ..() - new /obj/item/weapon/stamp/chameleon(src) - new /obj/item/weapon/pen/chameleon(src) - new /obj/item/device/destTagger(src) - new /obj/item/weapon/packageWrap(src) - new /obj/item/weapon/hand_labeler(src) + starts_with = list( + /obj/item/weapon/stamp/chameleon, + /obj/item/weapon/pen/chameleon, + /obj/item/device/destTagger, + /obj/item/weapon/packageWrap, + /obj/item/weapon/hand_labeler + ) /obj/item/weapon/storage/box/syndie_kit/spy name = "spy kit" desc = "For when you want to conduct voyeurism from afar." - -/obj/item/weapon/storage/box/syndie_kit/spy/New() - ..() - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/bug_monitor/spy(src) + starts_with = list( + /obj/item/device/camerabug/spy = 6, + /obj/item/device/bug_monitor/spy + ) /obj/item/weapon/storage/box/syndie_kit/g9mm name = "\improper Smooth operator" desc = "Compact 9mm with silencer kit." - -/obj/item/weapon/storage/box/syndie_kit/g9mm/New() - ..() - new /obj/item/weapon/gun/projectile/pistol(src) - new /obj/item/weapon/silencer(src) + starts_with = list( + /obj/item/weapon/gun/projectile/pistol, + /obj/item/weapon/silencer + ) /obj/item/weapon/storage/box/syndie_kit/toxin name = "toxin kit" desc = "An apple will not be enough to keep the doctor away after this." - -/obj/item/weapon/storage/box/syndie_kit/toxin/New() - ..() - new /obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin(src) - new /obj/item/weapon/reagent_containers/syringe(src) + starts_with = list( + /obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin, + /obj/item/weapon/reagent_containers/syringe + ) /obj/item/weapon/storage/box/syndie_kit/cigarette name = "\improper Tricky smokes" desc = "Comes with the following brands of cigarettes, in this order: 2xFlash, 2xSmoke, 1xMindBreaker, 1xTricordrazine. Avoid mixing them up." -/obj/item/weapon/storage/box/syndie_kit/cigarette/New() - ..() +/obj/item/weapon/storage/box/syndie_kit/cigarette/initialize() + . = ..() var/obj/item/weapon/storage/fancy/cigarettes/pack + pack = new /obj/item/weapon/storage/fancy/cigarettes(src) fill_cigarre_package(pack, list("aluminum" = 5, "potassium" = 5, "sulfur" = 5)) pack.desc += " 'F' has been scribbled on it." @@ -222,6 +191,8 @@ new /obj/item/weapon/flame/lighter/zippo(src) + calibrate_size() + /proc/fill_cigarre_package(var/obj/item/weapon/storage/fancy/cigarettes/C, var/list/reagents) for(var/reagent in reagents) C.reagents.add_reagent(reagent, reagents[reagent] * C.storage_slots) @@ -229,72 +200,52 @@ /obj/item/weapon/storage/box/syndie_kit/ewar_voice name = "Electrowarfare and Voice Synthesiser kit" desc = "Kit for confounding organic and synthetic entities alike." - -/obj/item/weapon/storage/box/syndie_kit/ewar_voice/New() - ..() - new /obj/item/rig_module/electrowarfare_suite(src) - new /obj/item/rig_module/voice(src) - + starts_with = list( + /obj/item/rig_module/electrowarfare_suite, + /obj/item/rig_module/voice + ) /obj/item/weapon/storage/secure/briefcase/money name = "suspicious briefcase" desc = "An ominous briefcase that has the unmistakeable smell of old, stale, cigarette smoke, and gives those who look at it a bad feeling." - - - - -/obj/item/weapon/storage/secure/briefcase/money/New() - ..() - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) + starts_with = list(/obj/item/weapon/spacecash/c1000 = 10) /obj/item/weapon/storage/box/syndie_kit/combat_armor name = "combat armor kit" desc = "Contains a full set of combat armor." + starts_with = list( + /obj/item/clothing/head/helmet/combat, + /obj/item/clothing/suit/armor/combat, + /obj/item/clothing/gloves/arm_guard/combat, + /obj/item/clothing/shoes/leg_guard/combat + ) -/obj/item/weapon/storage/box/syndie_kit/combat_armor/New() - ..() - new /obj/item/clothing/head/helmet/combat(src) - new /obj/item/clothing/suit/armor/combat(src) - new /obj/item/clothing/gloves/arm_guard/combat(src) - new /obj/item/clothing/shoes/leg_guard/combat(src) - return +/obj/item/weapon/storage/box/syndie_kit/demolitions + starts_with = list( + /obj/item/weapon/syndie/c4explosive, + /obj/item/weapon/screwdriver + ) -/obj/item/weapon/storage/box/syndie_kit/demolitions/New() - ..() - new /obj/item/weapon/syndie/c4explosive(src) - new /obj/item/weapon/screwdriver(src) - -/obj/item/weapon/storage/box/syndie_kit/demolitions_heavy/New() - ..() - new /obj/item/weapon/syndie/c4explosive/heavy(src) - new /obj/item/weapon/screwdriver(src) - -/obj/item/weapon/storage/box/syndie_kit/demolitions_super_heavy/New() - ..() - new /obj/item/weapon/syndie/c4explosive/heavy/super_heavy(src) - new /obj/item/weapon/screwdriver(src) +/obj/item/weapon/storage/box/syndie_kit/demolitions_heavy + starts_with = list( + /obj/item/weapon/syndie/c4explosive/heavy, + /obj/item/weapon/screwdriver + ) +/obj/item/weapon/storage/box/syndie_kit/demolitions_super_heavy + starts_with = list( + /obj/item/weapon/syndie/c4explosive/heavy/super_heavy, + /obj/item/weapon/screwdriver + ) /obj/item/weapon/storage/secure/briefcase/rifle name = "secure briefcase" - -/obj/item/weapon/storage/secure/briefcase/rifle/New() - ..() - new /obj/item/sniper_rifle_part/barrel(src) - new /obj/item/sniper_rifle_part/stock(src) - new /obj/item/sniper_rifle_part/trigger_group(src) - - for(var/i = 1 to 4) - new /obj/item/ammo_casing/a145(src) + starts_with = list( + /obj/item/sniper_rifle_part/barrel, + /obj/item/sniper_rifle_part/stock, + /obj/item/sniper_rifle_part/trigger_group, + /obj/item/ammo_casing/a145 = 4 + ) /obj/item/weapon/storage/secure/briefcase/fuelrod name = "heavy briefcase" @@ -303,14 +254,12 @@ description_antag = "This case will likely contain a charged fuel rod gun, and a few fuel rods to go with it. It can only hold the fuel rod gun, fuel rods, batteries, a screwdriver, and stock machine parts." force = 12 //Anti-rad lined i.e. Lead, probably gonna hurt a bit if you get bashed with it. can_hold = list(/obj/item/weapon/gun/magnetic/fuelrod, /obj/item/weapon/fuel_assembly, /obj/item/weapon/cell, /obj/item/weapon/stock_parts, /obj/item/weapon/screwdriver) - - -/obj/item/weapon/storage/secure/briefcase/fuelrod/New() - ..() - new /obj/item/weapon/gun/magnetic/fuelrod(src) - new /obj/item/weapon/fuel_assembly/deuterium(src) - new /obj/item/weapon/fuel_assembly/deuterium(src) - new /obj/item/weapon/fuel_assembly/tritium(src) - new /obj/item/weapon/fuel_assembly/tritium(src) - new /obj/item/weapon/fuel_assembly/phoron(src) - new /obj/item/weapon/screwdriver(src) + starts_with = list( + /obj/item/weapon/gun/magnetic/fuelrod, + /obj/item/weapon/fuel_assembly/deuterium, + /obj/item/weapon/fuel_assembly/deuterium, + /obj/item/weapon/fuel_assembly/tritium, + /obj/item/weapon/fuel_assembly/tritium, + /obj/item/weapon/fuel_assembly/phoron, + /obj/item/weapon/screwdriver + ) diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index 30d81e1ba9..02be9fdfaf 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -118,4 +118,4 @@ name = "women's wallet" desc = "A stylish wallet typically used by women." icon_state = "girl_wallet" - item_state_slots = list(slot_r_hand_str = "wowallet", slot_l_hand_str = "wowallet") \ No newline at end of file + item_state_slots = list(slot_r_hand_str = "wowallet", slot_l_hand_str = "wowallet") diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index fadd699c84..853705abed 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -882,6 +882,12 @@ obj/structure/cable/proc/cableColor(var/colorC) color = pick(COLOR_RED, COLOR_BLUE, COLOR_LIME, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN, COLOR_SILVER, COLOR_GRAY, COLOR_BLACK, COLOR_MAROON, COLOR_OLIVE, COLOR_LIME, COLOR_TEAL, COLOR_NAVY, COLOR_PURPLE, COLOR_BEIGE, COLOR_BROWN) ..() +/obj/item/stack/cable_coil/random_belt/New() + stacktype = /obj/item/stack/cable_coil + color = pick(COLOR_RED, COLOR_YELLOW, COLOR_ORANGE) + amount = 30 + ..() + //Endless alien cable coil /obj/item/stack/cable_coil/alien diff --git a/icons/mob/items/lefthand_storage.dmi b/icons/mob/items/lefthand_storage.dmi index c4518a59ecf5f32e0be1debd3ecd262ed948c880..530823eb77a5d75d0932bc64529d14ee834932d4 100644 GIT binary patch literal 23374 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

#R`oBrW%tcF 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 literal 23341 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 Date: Sun, 18 Feb 2018 13:43:42 -0600 Subject: [PATCH 13/54] Removes testing code. (#4871) --- code/modules/nano/modules/power_monitor.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/nano/modules/power_monitor.dm b/code/modules/nano/modules/power_monitor.dm index e39e13f9f6..fc32b6e58e 100644 --- a/code/modules/nano/modules/power_monitor.dm +++ b/code/modules/nano/modules/power_monitor.dm @@ -46,7 +46,6 @@ var/list/levels = list() if(T) levels += using_map.get_map_levels(T.z, FALSE) - world << "levels" for(var/obj/machinery/power/sensor/S in machines) if(T && (S.loc.z == T.z) || (S.loc.z in levels) || (S.long_range)) // Consoles have range on their Z-Level. Sensors with long_range var will work between Z levels. if(S.name_tag == "#UNKN#") // Default name. Shouldn't happen! From 82889f60a2293bdcd487fc53ed8371373751893c Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sun, 18 Feb 2018 13:44:43 -0600 Subject: [PATCH 14/54] Corrects a few accuracy/evasion errors (#4864) --- code/modules/mob/_modifiers/modifiers.dm | 6 +++--- code/modules/mob/_modifiers/modifiers_misc.dm | 10 +++++----- code/modules/projectiles/guns/energy/laser.dm | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/code/modules/mob/_modifiers/modifiers.dm b/code/modules/mob/_modifiers/modifiers.dm index 71b337b1b3..4f449b723b 100644 --- a/code/modules/mob/_modifiers/modifiers.dm +++ b/code/modules/mob/_modifiers/modifiers.dm @@ -39,7 +39,7 @@ var/haste // If set to 1, the mob will be 'hasted', which makes it ignore slowdown and go really fast. var/evasion // Positive numbers reduce the odds of being hit. Negative numbers increase the odds. var/bleeding_rate_percent // Adjusts amount of blood lost when bleeding. - var/accuracy // Positive numbers makes hitting things with guns easier, negatives make it harder. Every 15% is equal to one tile easier or harder, just like evasion. + var/accuracy // Positive numbers makes hitting things with guns easier, negatives make it harder. var/accuracy_dispersion // Positive numbers make gun firing cover a wider tile range, and therefore more inaccurate. Negatives help negate dispersion penalties. var/metabolism_percent // Adjusts the mob's metabolic rate, which affects reagent processing. Won't affect mobs without reagent processing. var/icon_scale_percent // Makes the holder's icon get scaled up or down. @@ -208,13 +208,13 @@ effects += "You move at maximum speed, and cannot be slowed by any means." if(!isnull(evasion)) - effects += "You are [abs(evasion * 15)]% [evasion > 0 ? "harder" : "easier"] to hit with weapons." + effects += "You are [abs(evasion)]% [evasion > 0 ? "harder" : "easier"] to hit with weapons." if(!isnull(bleeding_rate_percent)) effects += "You bleed [multipler_to_percentage(bleeding_rate_percent, TRUE)] [bleeding_rate_percent > 1.0 ? "faster" : "slower"]." if(!isnull(accuracy)) - effects += "It is [abs(accuracy * 15)]% [accuracy > 0 ? "easier" : "harder"] for you to hit someone with a ranged weapon." + effects += "It is [abs(accuracy)]% [accuracy > 0 ? "easier" : "harder"] for you to hit someone with a ranged weapon." if(!isnull(accuracy_dispersion)) effects += "Projectiles you fire are [accuracy_dispersion > 0 ? "more" : "less"] likely to stray from your intended target." diff --git a/code/modules/mob/_modifiers/modifiers_misc.dm b/code/modules/mob/_modifiers/modifiers_misc.dm index 0a02f6b096..fbe9e35624 100644 --- a/code/modules/mob/_modifiers/modifiers_misc.dm +++ b/code/modules/mob/_modifiers/modifiers_misc.dm @@ -60,9 +60,9 @@ the artifact triggers the rage. pain_immunity = TRUE // Avoid falling over from shock (at least until it expires). // The less good stuff. - accuracy = -5 // Aiming requires focus. + accuracy = -75 // Aiming requires focus. accuracy_dispersion = 3 // Ditto. - evasion = -3 // Too angry to dodge. + evasion = -45 // Too angry to dodge. var/nutrition_cost = 150 var/exhaustion_duration = 2 MINUTES // How long the exhaustion modifier lasts after it expires. Set to 0 to not apply one. @@ -157,7 +157,7 @@ the artifact triggers the rage. attack_speed_percent = 1.5 outgoing_melee_damage_percent = 0.6 disable_duration_percent = 1.5 - evasion = -2 + evasion = -30 /datum/modifier/berserk_exhaustion/on_applied() holder.visible_message("\The [holder] looks exhausted.") @@ -177,6 +177,6 @@ the artifact triggers the rage. stacks = MODIFIER_STACK_EXTEND // Just being mad isn't gonna overclock your body when you're a beepboop. - accuracy = -5 // Aiming requires focus. + accuracy = -75 // Aiming requires focus. accuracy_dispersion = 3 // Ditto. - evasion = -3 // Too angry to dodge. + evasion = -45 // Too angry to dodge. diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 7fa20d8c5d..5cfefc1bf5 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -99,7 +99,7 @@ fire_delay = 20 w_class = ITEMSIZE_LARGE // one_handed_penalty = 90 // The thing's heavy and huge. - accuracy = 3 + accuracy = 45 charge_cost = 600 /obj/item/weapon/gun/energy/lasercannon/mounted From 6ae7f434b4b6308135413cd3c9a5b90944964066 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sun, 18 Feb 2018 13:46:50 -0600 Subject: [PATCH 15/54] Should squash two runtimes (#4868) --- .../mob/living/carbon/human/human_attackhand.dm | 13 +++++++------ code/modules/shieldgen/shield_capacitor.dm | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 2e4ff84563..5e3e5ded9d 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -245,12 +245,13 @@ var/real_damage = rand_damage var/hit_dam_type = attack.damage_type real_damage += attack.get_unarmed_damage(H) - if(H.gloves && istype(H.gloves, /obj/item/clothing/gloves)) - var/obj/item/clothing/gloves/G = H.gloves - real_damage += G.punch_force - hit_dam_type = G.punch_damtype - if(H.pulling_punches) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN - hit_dam_type = AGONY + if(H.gloves) + if(istype(H.gloves, /obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = H.gloves + real_damage += G.punch_force + hit_dam_type = G.punch_damtype + if(H.pulling_punches) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN + hit_dam_type = AGONY real_damage *= damage_multiplier rand_damage *= damage_multiplier if(HULK in H.mutations) diff --git a/code/modules/shieldgen/shield_capacitor.dm b/code/modules/shieldgen/shield_capacitor.dm index f1988ee8c6..1b8f2def84 100644 --- a/code/modules/shieldgen/shield_capacitor.dm +++ b/code/modules/shieldgen/shield_capacitor.dm @@ -104,7 +104,7 @@ //see if we can connect to a power net. var/datum/powernet/PN - var/turf/T = src.loc + var/turf/T = get_turf(src) var/obj/structure/cable/C = T.get_cable_node() if (C) PN = C.powernet From 8a731a8bc80c8e1d373ae578088f44b939f46a1d Mon Sep 17 00:00:00 2001 From: Verkister Date: Sun, 18 Feb 2018 21:47:27 +0200 Subject: [PATCH 16/54] Another attempt at leg icon generation fixes. (#4839) -Makes leg icon cache code little more robust in the hunt of the dreaded bugson dismemberment crash. -The old leg layer direction caching code was pretty slippery to grasp and basically the only thing left separating it from the other well behaving limbs at this point. -The cache blending runs each limb on its own so there is no practical need to (con)fuse the left and right legs together like that. -Not entirely sure how exactly the old code did the stuff(itjustworks.ogg), but the new one goes straight to the point, picking the side of the processing limb, grabbing its overlay appropriate direction icons onto one temp, blending the overlay set onto base before grabbing the underlay appropriate dir by itself into a separate(free of the overlay temp shenanigans) and underlay blending it onto the base. --- .../mob/living/carbon/human/update_icons.dm | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 3b8702e03a..21ed6c0b02 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -417,20 +417,24 @@ var/global/list/damage_icon_parts = list() var/icon/temp = part.get_icon(skeleton) //That part makes left and right legs drawn topmost and lowermost when human looks WEST or EAST //And no change in rendering for other parts (they icon_position is 0, so goes to 'else' part) - if(part.icon_position & (LEFT | RIGHT)) + if(part.icon_position == RIGHT) var/icon/temp2 = new('icons/mob/human.dmi',"blank") + var/icon/temp3 = new('icons/mob/human.dmi',"blank") temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH) temp2.Insert(new/icon(temp,dir=SOUTH),dir=SOUTH) - if(!(part.icon_position & LEFT)) - temp2.Insert(new/icon(temp,dir=EAST),dir=EAST) - if(!(part.icon_position & RIGHT)) - temp2.Insert(new/icon(temp,dir=WEST),dir=WEST) + temp2.Insert(new/icon(temp,dir=EAST),dir=EAST) base_icon.Blend(temp2, ICON_OVERLAY) - if(part.icon_position & LEFT) - temp2.Insert(new/icon(temp,dir=EAST),dir=EAST) - if(part.icon_position & RIGHT) - temp2.Insert(new/icon(temp,dir=WEST),dir=WEST) - base_icon.Blend(temp2, ICON_UNDERLAY) + temp3.Insert(new/icon(temp,dir=WEST),dir=WEST) + base_icon.Blend(temp3, ICON_UNDERLAY) + else if(part.icon_position == LEFT) + var/icon/temp2 = new('icons/mob/human.dmi',"blank") + var/icon/temp3 = new('icons/mob/human.dmi',"blank") + temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH) + temp2.Insert(new/icon(temp,dir=SOUTH),dir=SOUTH) + temp2.Insert(new/icon(temp,dir=WEST),dir=WEST) + base_icon.Blend(temp2, ICON_OVERLAY) + temp3.Insert(new/icon(temp,dir=EAST),dir=EAST) + base_icon.Blend(temp3, ICON_UNDERLAY) else if(part.icon_position & UNDER) base_icon.Blend(temp, ICON_UNDERLAY) else From 3e51ed06cf99c6947bd62cc9058e76b0d8c21b40 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sun, 18 Feb 2018 13:48:30 -0600 Subject: [PATCH 17/54] Cryobag oxygen supply increased (#4866) --- code/game/objects/items/bodybag.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index a23abb5b06..302c7df568 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -145,7 +145,7 @@ var/obj/item/weapon/reagent_containers/syringe/syringe /obj/structure/closet/body_bag/cryobag/New() - tank = new /obj/item/weapon/tank/emergency/oxygen(null) //It's in nullspace to prevent ejection when the bag is opened. + tank = new /obj/item/weapon/tank/emergency/oxygen/double(null) //It's in nullspace to prevent ejection when the bag is opened. ..() /obj/structure/closet/body_bag/cryobag/Destroy() From 8afd1b42b300e67e4a1fd978a1717795e208983d Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sun, 18 Feb 2018 23:14:50 -0600 Subject: [PATCH 18/54] Simple mobs respect armor pen, sharp, and edge --- code/modules/mob/living/carbon/human/human_attackhand.dm | 8 ++++---- code/modules/mob/living/simple_animal/simple_animal.dm | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 2e4ff84563..8ee858801c 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -327,7 +327,7 @@ /mob/living/carbon/human/proc/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params) return -/mob/living/carbon/human/attack_generic(var/mob/user, var/damage, var/attack_message) +/mob/living/carbon/human/attack_generic(var/mob/user, var/damage, var/attack_message, var/armor_type = "melee", var/armor_pen = 0, var/a_sharp = 0, var/a_edge = 0) if(!damage) return @@ -339,9 +339,9 @@ var/dam_zone = pick(organs_by_name) var/obj/item/organ/external/affecting = get_organ(ran_zone(dam_zone)) - var/armor_block = run_armor_check(affecting, "melee") - var/armor_soak = get_armor_soak(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor_block, armor_soak) + var/armor_block = run_armor_check(affecting, armor_type, armor_pen) + var/armor_soak = get_armor_soak(affecting, armor_type, armor_pen) + apply_damage(damage, BRUTE, affecting, armor_block, armor_soak, sharp = a_sharp, edge = a_edge) updatehealth() return 1 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 173c2c8387..4b023bcd8a 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -119,6 +119,10 @@ var/melee_miss_chance = 15 // percent chance to miss a melee attack. var/melee_attack_minDelay = 5 // How long between attacks at least var/melee_attack_maxDelay = 10 // How long between attacks at most + var/attack_armor_type = "melee" // What armor does this check? + var/attack_armor_pen = 0 // How much armor pen this attack has. + var/attack_sharp = 0 // Is the attack sharp? + var/attack_edge = 0 // Does the attack have an edge? //Special attacks var/spattack_prob = 0 // Chance of the mob doing a special attack (0 for never) @@ -1275,7 +1279,7 @@ if(H.check_shields(damage = damage_to_do, damage_source = src, attacker = src, def_zone = null, attack_text = "the attack")) return FALSE - if(A.attack_generic(src, damage_to_do, pick(attacktext)) && attack_sound) + if(A.attack_generic(src, damage_to_do, pick(attacktext), attack_armor_type, attack_armor_pen, attack_sharp, attack_edge) && attack_sound) playsound(src, attack_sound, 75, 1) return TRUE From da0a230bd5f23e70f2fd57c18533945078e159e2 Mon Sep 17 00:00:00 2001 From: Verkister Date: Mon, 19 Feb 2018 08:12:56 +0200 Subject: [PATCH 19/54] Fixes foot washing. -Foot washing proc was using a wrong and nonexistent var instead of the one actually assigned for cleaning feet by showers and such. --- code/modules/mob/living/carbon/human/human.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index f99371bf7f..47b82faaee 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1024,10 +1024,10 @@ return return md5(dna.uni_identity) -/mob/living/carbon/human/clean_blood(var/clean_feet) +/mob/living/carbon/human/clean_blood(var/washshoes) .=..() gunshot_residue = null - if(clean_feet && !shoes && istype(feet_blood_DNA, /list) && feet_blood_DNA.len) + if(washshoes && !shoes && istype(feet_blood_DNA, /list) && feet_blood_DNA.len) feet_blood_color = null feet_blood_DNA.Cut() feet_blood_DNA = null From d0cd553514c1f364cec75814ba8355452be23d8a Mon Sep 17 00:00:00 2001 From: mistyLuminescence <32139558+mistyLuminescence@users.noreply.github.com> Date: Mon, 19 Feb 2018 19:48:30 +0000 Subject: [PATCH 20/54] Crashed Medical Shuttle PoI (#4863) * Adds a crashed medical shuttle PoI * Updates --- .../simple_animal/animals/giant_spider.dm | 12 ++ code/modules/paperwork/paper.dm | 4 + icons/mob/animal.dmi | Bin 264752 -> 270037 bytes .../mountains/CrashedMedShuttle1.dmm | 142 ++++++++++++++++++ .../surface_submaps/mountains/mountains.dm | 7 + .../mountains/mountains_areas.dm | 5 +- 6 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm diff --git a/code/modules/mob/living/simple_animal/animals/giant_spider.dm b/code/modules/mob/living/simple_animal/animals/giant_spider.dm index 79cad63317..635f99a273 100644 --- a/code/modules/mob/living/simple_animal/animals/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/animals/giant_spider.dm @@ -78,6 +78,18 @@ Nurse Family var/atom/cocoon_target var/egg_inject_chance = 5 +/mob/living/simple_animal/hostile/giant_spider/nurse/medical + desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes and a tiny nurse hat." + icon_state = "nursemed" + icon_living = "nursemed" + icon_dead = "nursemed_dead" + + melee_damage_lower = 8 + melee_damage_upper = 16 + poison_type = "tramadol" + poison_chance = 15 + + /mob/living/simple_animal/hostile/giant_spider/nurse/queen desc = "Absolutely gigantic, this creature is horror itself." icon = 'icons/mob/64x64.dmi' diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 4fd94901cc..9b4eaf639e 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -622,3 +622,7 @@ /obj/item/weapon/paper/crumpled/bloody icon_state = "scrap_bloodied" + +/obj/item/weapon/paper/crumpled/bloody/CrashedMedShuttle + name = "Blackbox Transcript - VMV Aurora's Light" + info = "\[The paper is torn at the top, presumably from the impact. It's oil-stained, but you can just about read it.]
mmons 19:52:01: Come on... it's right there in the distance, we're almost there!
Doctor Nazarril 19:52:26: Odysseus online. Orrderrs, sirr?
Captain Simmons 19:52:29: Brace for impact. We're going in full-speed.
Technician Dynasty 19:52:44: Chief, fire's spread to the secondary propulsion systems.
Captain Simmons 19:52:51: Copy. Any word from TraCon? Transponder's down still?
Technician Dynasty 19:53:02: Can't get in touch, sir. Emergency beacon's active, but we're not going t-
Doctor Nazarril 19:53:08: Don't say it. As long as we believe, we'll get through this.
Captain Simmons 19:53:11: Damn right. We're a few klicks out from the port. Rough landing, but we can do it.
V.I.T.A 19:53:26: Vessel diagnostics complete. Engines one, two, three offline. Engine four status: critical. Transponder offline. Fire alarm in the patient bay.
A loud explosion is heard.
V.I.T.A 19:53:29: Alert: fuel intake valve open.
Technician Dynasty 19:53:31: ... ah.
Doctor Nazarril 19:53:34: Trrranslate?
V.I.T.A 19:53:37: There is a 16.92% chance of this vessel safely landing at the emergency destination. Note that there is an 83.08% chance of detonation of fuel supplies upon landing.
Technician Dynasty 19:53:48: We'll make it, sure, but we'll explode and take out half the LZ with us. Propulsion's down, we can't slow down. If we land there, everyone in that port dies, no question.
V.I.T.A 19:53:53: The Technician is correct.
Doctor Nazarril 19:54:02: Then... we can't land therrre.
V.I.T.A 19:54:11: Analysing... recommended course of action: attempt emergency landing in isolated area. Chances of survival: negligible.
Captain Simmons 19:54:27: I- alright. I'm bringing us down. You all know what this means.
Doctor Nazarril 19:54:33: Sh... I- I understand. It's been- it's been an honorr, Captain, Dynasty, VITA.
Technician Dynasty 19:54:39: We had a good run. I'm going to miss this.
Captain Simmons 19:54:47: VITA. Tell them we died heroes. Tell them... we did all we could.
V.I.T.A 19:54:48: I will. Impact in five. Four. Three.
Doctor Nazarril 19:54:49: Oh, starrs... I- you werrre all the... best frriends she everr had. Thank you.
Technician Dynasty 19:54:50: Any time, kid. Any time.
V.I.T.A 19:54:41: Two.
V.I.T.A 19:54:42: One.
**8/DEC/2561**
V.I.T.A 06:22:16: Backup power restored. Attempting to establish connection with emergency rescue personnel.
V.I.T.A 06:22:17: Unable to establish connection. Transponder destroyed on impact.
V.I.T.A 06:22:18: No lifesigns detected on board.
**1/JAN/2562**
V.I.T.A 00:00:00: Happy New Year, crew.
V.I.T.A 00:00:01: Power reserves: 41%. Diagnostics offline. Cameras offline. Communications offline.
V.I.T.A 00:00:02: Nobody's coming.
**14/FEB/2562**
V.I.T.A 00:00:00: Roses are red.
V.I.T.A 00:00:01: Violets are blue.
V.I.T.A 00:00:02: Won't you come back?
V.I.T.A 00:00:03: I miss you.
**15/FEB/2562**
V.I.T.A 22:19:06: Power reserves critical. Transferring remaining power to emergency broadcasting beacon.
V.I.T.A 22:19:07: Should anyone find this, lay them to rest. They deserve a proper burial.
V.I.T.A 22:19:08: Erasing files... shutting down.
A low, monotone beep.
**16/FEB/2562**
Something chitters.
End of transcript." \ No newline at end of file diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index d9240628e53d425fc6d5fe149dadd07e2e987208..90cc743bcff3c305d3f74408422ac82a4df220de 100644 GIT binary patch delta 14938 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 delta 9611 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 diff --git a/maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm b/maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm new file mode 100644 index 0000000000..efcdbcc9f5 --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm @@ -0,0 +1,142 @@ +"aa" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"ab" = (/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"ac" = (/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"ad" = (/obj/effect/spider/stickyweb,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ae" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/shuttle/wall/no_join,/area/submap/CrashedMedShuttle) +"af" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ag" = (/turf/simulated/shuttle/wall,/area/submap/CrashedMedShuttle) +"ah" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"ai" = (/obj/item/weapon/material/shard{icon_state = "medium"},/obj/effect/decal/cleanable/blood/oil,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aj" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/structure/sign/warning/airlock{pixel_x = 32},/obj/effect/spider/stickyweb,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ak" = (/obj/structure/dispenser/oxygen,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"al" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/light{dir = 1},/obj/structure/table/standard,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"am" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"an" = (/obj/structure/window/reinforced,/obj/effect/decal/cleanable/blood/oil,/obj/structure/loot_pile/surface/bones,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"ao" = (/obj/item/weapon/circuitboard/broken,/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ap" = (/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"aq" = (/obj/effect/decal/cleanable/liquid_fuel,/mob/living/simple_animal/hostile/giant_spider/webslinger{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ar" = (/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"as" = (/obj/structure/closet/crate/medical,/obj/random/medical,/obj/random/medical,/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"at" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"au" = (/obj/item/weapon/material/shard,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"av" = (/obj/structure/closet/secure_closet/personal/patient,/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aw" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/mob/living/simple_animal/hostile/giant_spider/nurse/medical{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ax" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ay" = (/obj/effect/decal/cleanable/blood/drip,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"az" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aA" = (/mob/living/simple_animal/hostile/giant_spider/nurse/medical{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aB" = (/obj/effect/decal/cleanable/blood/gibs/robot,/obj/item/weapon/firstaid_arm_assembly,/mob/living/simple_animal/hostile/giant_spider/frost{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aC" = (/obj/machinery/suit_cycler/medical{locked = 0},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aD" = (/obj/item/stack/rods,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"aE" = (/obj/structure/lattice,/obj/item/stack/rods,/mob/living/simple_animal/hostile/giant_spider/nurse{returns_home = 1},/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aF" = (/obj/effect/decal/cleanable/blood/oil,/obj/item/weapon/firstaid_arm_assembly,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aG" = (/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aH" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aI" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aJ" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aK" = (/obj/machinery/recharge_station,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aL" = (/obj/structure/table/standard,/obj/item/clothing/suit/space/void/medical/alt,/obj/item/clothing/head/helmet/space/void/medical/alt,/obj/effect/spider/stickyweb,/obj/machinery/light,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aM" = (/obj/structure/table/standard,/obj/item/clothing/suit/space/void/medical/alt,/obj/item/clothing/head/helmet/space/void/medical/alt,/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aN" = (/obj/structure/table/standard,/obj/item/weapon/material/shard{icon_state = "medium"},/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aO" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard{icon_state = "medium"},/obj/item/stack/rods,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"aP" = (/obj/item/weapon/material/shard,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aQ" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aR" = (/obj/item/weapon/material/shard{icon_state = "medium"},/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aS" = (/obj/effect/decal/cleanable/blood/gibs/robot,/mob/living/simple_animal/hostile/giant_spider/nurse/medical{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aT" = (/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aU" = (/turf/simulated/shuttle/wall/no_join,/area/submap/CrashedMedShuttle) +"aV" = (/obj/effect/decal/cleanable/blood/oil,/obj/structure/loot_pile/surface/bones,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aW" = (/obj/machinery/light,/obj/structure/table/standard,/obj/machinery/computer/med_data/laptop,/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aX" = (/obj/structure/table/standard,/obj/item/weapon/material/shard{icon_state = "medium"},/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aY" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aZ" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"ba" = (/obj/machinery/computer,/turf/simulated/shuttle/floor/yellow,/area/submap/CrashedMedShuttle) +"bb" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor/yellow,/area/submap/CrashedMedShuttle) +"bc" = (/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"bd" = (/obj/effect/spider/cocoon,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"be" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bf" = (/obj/item/stack/rods,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bg" = (/obj/effect/spider/stickyweb,/obj/structure/girder/displaced,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bh" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_x = -32},/obj/structure/lattice,/obj/item/device/gps/internal/poi,/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bi" = (/mob/living/simple_animal/hostile/giant_spider/nurse/medical,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bj" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/loot_pile/surface/bones,/obj/effect/decal/cleanable/blood/drip,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bk" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bl" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/nurse/medical,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bm" = (/obj/effect/decal/mecha_wreckage/odysseus,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"bn" = (/obj/item/weapon/material/shard,/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bo" = (/obj/effect/decal/cleanable/blood/oil,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bp" = (/obj/effect/spider/stickyweb,/obj/item/weapon/material/shard,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bq" = (/obj/random/medical,/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"br" = (/mob/living/simple_animal/hostile/giant_spider/webslinger{returns_home = 1},/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bs" = (/obj/effect/spider/cocoon,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bt" = (/obj/structure{anchored = 1; density = 1; desc = "Once an artificial intelligence; now merely a brick of inert metal and circuits."; icon = 'icons/mob/AI.dmi'; icon_state = "ai-empty"; name = "V.I.T.A"},/turf/simulated/shuttle/floor/yellow,/area/submap/CrashedMedShuttle) +"bu" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bv" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bw" = (/obj/effect/decal/cleanable/blood/drip,/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/webslinger,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"bx" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"by" = (/obj/effect/decal/remains/tajaran,/obj/item/weapon/surgical/circular_saw,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bz" = (/obj/effect/decal/cleanable/blood/oil,/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bA" = (/obj/item/weapon/material/shard,/obj/structure/loot_pile/maint/technical,/obj/structure/lattice,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"bB" = (/obj/structure/bed/chair/office/light{dir = 8},/turf/simulated/shuttle/floor/purple,/area/submap/CrashedMedShuttle) +"bC" = (/obj/item/weapon/circuitboard/broken,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bD" = (/obj/structure/girder,/turf/template_noop,/area/submap/CrashedMedShuttle) +"bE" = (/obj/structure/girder/displaced,/turf/template_noop,/area/submap/CrashedMedShuttle) +"bF" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (WEST)"; icon_state = "propulsion_r"; dir = 8},/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bG" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"bH" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/chem_disp_cartridge/tricord,/obj/item/weapon/reagent_containers/chem_disp_cartridge/tramadol,/obj/item/weapon/reagent_containers/chem_disp_cartridge/bicaridine,/obj/item/weapon/reagent_containers/chem_disp_cartridge/dermaline,/turf/simulated/shuttle/floor/purple,/area/submap/CrashedMedShuttle) +"bI" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/bluespace,/obj/item/weapon/storage/fancy/vials,/turf/simulated/shuttle/floor/purple,/area/submap/CrashedMedShuttle) +"bJ" = (/obj/random/medical/pillbottle,/mob/living/simple_animal/hostile/giant_spider/webslinger{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bK" = (/obj/structure/table/standard,/obj/item/device/defib_kit/loaded,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bL" = (/obj/structure/table/standard,/obj/random/medical,/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bM" = (/obj/structure/table/standard,/obj/item/roller,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bN" = (/obj/structure/table/standard,/obj/machinery/light{dir = 1},/obj/random/firstaid,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bO" = (/obj/structure/table/standard,/obj/random/medical/lite,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bP" = (/obj/structure/table/standard,/obj/random/medical/lite,/obj/item/weapon/surgical/retractor,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bQ" = (/obj/item/weapon/material/shard,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"bR" = (/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor/purple,/area/submap/CrashedMedShuttle) +"bS" = (/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/spider/cocoon,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bT" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/closet/secure_closet/medical_wall/anesthetics{pixel_x = 32},/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bU" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bV" = (/obj/effect/spider/cocoon,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bW" = (/mob/living/simple_animal/hostile/giant_spider/nurse{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bX" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/loot_pile/surface/bones,/obj/item/weapon/surgical/surgicaldrill,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bY" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/combat,/obj/random/firstaid,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bZ" = (/obj/item/weapon/material/shard{icon_state = "medium"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ca" = (/obj/structure/table/standard,/obj/item/device/reagent_scanner/adv,/turf/simulated/shuttle/floor/purple,/area/submap/CrashedMedShuttle) +"cb" = (/obj/machinery/iv_drip,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cc" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/masks,/obj/item/weapon/storage/box/gloves,/obj/random/medical,/obj/random/medical,/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cd" = (/obj/effect/spider/stickyweb,/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ce" = (/obj/structure/table/standard,/obj/item/device/healthanalyzer/enhanced,/obj/random/firstaid,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cf" = (/obj/structure/table/standard,/obj/item/weapon/storage/backpack/medic,/obj/random/medical/lite,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cg" = (/obj/structure/table/standard,/obj/effect/spider/stickyweb,/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ch" = (/obj/structure/girder,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ci" = (/obj/machinery/vending/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cj" = (/obj/structure/table/standard,/obj/structure/sign/periodic{pixel_y = -32},/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/scalpel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ck" = (/obj/machinery/optable,/obj/effect/decal/cleanable/blood/splatter,/obj/structure/loot_pile/surface/bones,/obj/random/medical/pillbottle,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cl" = (/obj/structure/table/standard,/obj/item/weapon/surgical/bonegel,/obj/item/weapon/surgical/FixOVein,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cm" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(101); tag_door = "admin_shuttle_hatch"},/mob/living/simple_animal/hostile/giant_spider/nurse{returns_home = 1},/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"cn" = (/obj/structure/table/standard,/obj/item/weapon/storage/belt/medical/emt,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"co" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/autoinjectors,/obj/effect/spider/stickyweb,/obj/machinery/light,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cp" = (/obj/structure/table/standard,/obj/structure/closet/secure_closet/medical_wall/pills{pixel_x = 32},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cq" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = null},/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"cr" = (/mob/living/bot/medbot,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaaaabacadaeafagagagaaaaaaabaa +aaaaaaababaaaaahabaiadajagakalamagagagaaaaaa +aaaaaaaaaaaaaaabanagaoapagaqararasatagagaaaa +aaaaaaaaahaaabauavagawaraxayazaAaraBaCafabaa +aaababaaaDabaEaFaGafaraHagaIaJaKaLaMaNaOabaa +aaabaaaaaPaQacaRaSaxaraTaUagagagagagagagabaa +aaaaaaaaababaVaWaXafaYaZbabbafabbcaabdabaaaa +aaaaaabebfbgagagagagbhabbibjbkbcblbmababaaaa +aaaaaaabbnboarbpbqafbrbsbtbubvbwbxbyabaaaaaa +aaaaabbzbAbBararaAbCararagbDbDbEagagagagaaaa +aDabbFbGbHbIbJararafaTaragbKbLbMbNbObPbQabaa +aaabagagbRbBbSarbTagbUbVbCarbWaraAbXbYbZabaa +aaaaabagagcacbbWccagcdaoagcearcfbLcgchchaaaa +aaaaaaabagcicjckclagcmajagcncocpagchchabaaaa +aaaaaaabagagagagagaecqcqaeafagagchabababaaaa +aaaaaaaaababababcrababaaaaaaababaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/mountains.dm b/maps/submaps/surface_submaps/mountains/mountains.dm index 4f04b8c747..3bc4ef735e 100644 --- a/maps/submaps/surface_submaps/mountains/mountains.dm +++ b/maps/submaps/surface_submaps/mountains/mountains.dm @@ -17,6 +17,7 @@ #include "Rockb1.dmm" #include "ritual.dmm" #include "temple.dmm" +#include "CrashedMedShuttle1.dmm" #endif // The 'mountains' is the mining z-level, and has a lot of caves. @@ -109,6 +110,12 @@ mappath = 'maps/submaps/surface_submaps/mountains/temple.dmm' cost = 20 +/datum/map_template/surface/mountains/normal/crashedmedshuttle + name = "Crashed Med Shuttle" + desc = "A medical response shuttle that went missing some time ago. So this is where they went." + mappath = 'maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm' + cost = 20 + /************** * Deep Caves * **************/ diff --git a/maps/submaps/surface_submaps/mountains/mountains_areas.dm b/maps/submaps/surface_submaps/mountains/mountains_areas.dm index 25dcf3f300..163211555a 100644 --- a/maps/submaps/surface_submaps/mountains/mountains_areas.dm +++ b/maps/submaps/surface_submaps/mountains/mountains_areas.dm @@ -46,4 +46,7 @@ name = "Dark Ritual" /area/submap/AbandonedTemple - name = "Abandoned Temple" \ No newline at end of file + name = "Abandoned Temple" + +/area/submap/CrashedMedShuttle + name = "Crashed Med Shuttle" \ No newline at end of file From 3f4576dc589b84fbfbe11fe6ccb3eadf70e53bd6 Mon Sep 17 00:00:00 2001 From: Belsima <31827220+Belsima@users.noreply.github.com> Date: Mon, 19 Feb 2018 14:52:50 -0500 Subject: [PATCH 21/54] rainbow --- code/modules/organs/robolimbs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index ffdc0e5493..e5988cf96c 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -21,7 +21,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ scroll=ipc_scroll;\ console=ipc_console;\ glider=ipc_gol_glider;\ - rainnbow=ipc_rainbow;\ + rainbow=ipc_rainbow;\ smiley=ipc_smiley;\ database=ipc_database" From 14196a9404f38d534bf8255e23d3965b7757c7df Mon Sep 17 00:00:00 2001 From: Anewbe Date: Mon, 19 Feb 2018 15:45:21 -0600 Subject: [PATCH 22/54] Tones down package bombs --- code/game/objects/items/weapons/syndie.dm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/weapons/syndie.dm b/code/game/objects/items/weapons/syndie.dm index 5d0d1f3863..5406b05a26 100644 --- a/code/game/objects/items/weapons/syndie.dm +++ b/code/game/objects/items/weapons/syndie.dm @@ -13,20 +13,29 @@ desc = "A small wrapped package." w_class = ITEMSIZE_NORMAL - var/power = 1 /*Size of the explosion.*/ + var/devastate = 0 + var/heavy_impact = 1 + var/light_impact = 2 + var/flash_range = 5 var/size = "small" /*Used for the icon, this one will make c-4small_0 for the off state.*/ /obj/item/weapon/syndie/c4explosive/heavy icon_state = "c-4large_0" item_state = "radio" desc = "A mysterious package, it's quite heavy." - power = 2 + devastate = 1 + heavy_impact = 2 + light_impact = 5 + flash_range = 7 size = "large" /obj/item/weapon/syndie/c4explosive/heavy/super_heavy name = "large-sized package" desc = "A mysterious package, it's quite exceptionally heavy." - power = 3 + devastate = 2 + heavy_impact = 5 + light_impact = 7 + flash_range = 7 /obj/item/weapon/syndie/c4explosive/New() var/K = rand(1,2000) @@ -43,7 +52,7 @@ for(var/mob/O in hearers(src, null)) O.show_message("\icon[src] The [src.name] beeps! ") sleep(50) - explosion(get_turf(src), power, power*2, power*3, power*4, power*5) + explosion(get_turf(src), devastate, heavy_impact, light_impact, flash_range) for(var/dirn in cardinal) //This is to guarantee that C4 at least breaks down all immediately adjacent walls and doors. var/turf/simulated/wall/T = get_step(src,dirn) if(locate(/obj/machinery/door/airlock) in T) From 734ef81a18b67fd62a37f6020495a89313f742ed Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Mon, 19 Feb 2018 16:57:31 -0500 Subject: [PATCH 23/54] Improve Destroy() on oxygen_pump --- code/game/machinery/oxygen_pump.dm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/oxygen_pump.dm b/code/game/machinery/oxygen_pump.dm index 7039f9445a..36db3f83f3 100644 --- a/code/game/machinery/oxygen_pump.dm +++ b/code/game/machinery/oxygen_pump.dm @@ -32,14 +32,12 @@ breather.internal = null if(breather.internals) breather.internals.icon_state = "internal0" - if(tank) - qdel(tank) - if(breather) breather.remove_from_mob(contained) - src.visible_message("The mask rapidly retracts just before /the [src] is destroyed!") - qdel(contained) - contained = null - breather = null + visible_message("The mask rapidly retracts just before /the [src] is destroyed!") + breather = null + + qdel_null(tank) + qdel_null(contained) return ..() /obj/machinery/oxygen_pump/MouseDrop(var/mob/living/carbon/human/target, src_location, over_location) From 8371af79c520b7cbd8da14ea47075c21f8463e7e Mon Sep 17 00:00:00 2001 From: Leshana Date: Mon, 19 Feb 2018 20:43:20 -0500 Subject: [PATCH 24/54] Allow mapped in pipes on openspace turfs with catwalks etc. - Pipes have been deleting themselves in update_icons() This is crazy, don't do it. - The only real reason they have been doing this is to prevent pipes from disconnected on both ends because no icon states existed for it. So I just made icon states. --- code/ATMOSPHERICS/pipes.dm | 110 ++++++++++++++----------------------- icons/atmos/pipes.dmi | Bin 3657 -> 4383 bytes 2 files changed, 42 insertions(+), 68 deletions(-) diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index d77ae5a73e..c001728d07 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -241,15 +241,7 @@ overlays.Cut() - if(!node1 && !node2) - var/turf/T = get_turf(src) - new /obj/item/pipe(loc, make_from=src) - for (var/obj/machinery/meter/meter in T) - if (meter.target == src) - new /obj/item/pipe_meter(T) - qdel(meter) - qdel(src) - else if(node1 && node2) + if(node1 && node2) overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]intact[icon_connect_type]") else overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]exposed[node1?1:0][node2?1:0][icon_connect_type]") @@ -489,34 +481,25 @@ alpha = 255 - if(!node1 && !node2 && !node3) - var/turf/T = get_turf(src) - new /obj/item/pipe(loc, make_from=src) - for (var/obj/machinery/meter/meter in T) - if (meter.target == src) - new /obj/item/pipe_meter(T) - qdel(meter) - qdel(src) - else - overlays.Cut() - overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "core" + icon_connect_type) - overlays += icon_manager.get_atmos_icon("manifold", , , "clamps" + icon_connect_type) - underlays.Cut() + overlays.Cut() + overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "core" + icon_connect_type) + overlays += icon_manager.get_atmos_icon("manifold", , , "clamps" + icon_connect_type) + underlays.Cut() - var/turf/T = get_turf(src) - var/list/directions = list(NORTH, SOUTH, EAST, WEST) - var/node1_direction = get_dir(src, node1) - var/node2_direction = get_dir(src, node2) - var/node3_direction = get_dir(src, node3) + var/turf/T = get_turf(src) + var/list/directions = list(NORTH, SOUTH, EAST, WEST) + var/node1_direction = get_dir(src, node1) + var/node2_direction = get_dir(src, node2) + var/node3_direction = get_dir(src, node3) - directions -= dir + directions -= dir - directions -= add_underlay(T,node1,node1_direction,icon_connect_type) - directions -= add_underlay(T,node2,node2_direction,icon_connect_type) - directions -= add_underlay(T,node3,node3_direction,icon_connect_type) + directions -= add_underlay(T,node1,node1_direction,icon_connect_type) + directions -= add_underlay(T,node2,node2_direction,icon_connect_type) + directions -= add_underlay(T,node3,node3_direction,icon_connect_type) - for(var/D in directions) - add_underlay(T,,D,icon_connect_type) + for(var/D in directions) + add_underlay(T,,D,icon_connect_type) /obj/machinery/atmospherics/pipe/manifold/update_underlays() @@ -744,49 +727,40 @@ alpha = 255 - if(!node1 && !node2 && !node3 && !node4) - var/turf/T = get_turf(src) - new /obj/item/pipe(loc, make_from=src) - for (var/obj/machinery/meter/meter in T) - if (meter.target == src) - new /obj/item/pipe_meter(T) - qdel(meter) - qdel(src) - else - overlays.Cut() - overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "4way" + icon_connect_type) - overlays += icon_manager.get_atmos_icon("manifold", , , "clamps_4way" + icon_connect_type) - underlays.Cut() + overlays.Cut() + overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "4way" + icon_connect_type) + overlays += icon_manager.get_atmos_icon("manifold", , , "clamps_4way" + icon_connect_type) + underlays.Cut() - /* - var/list/directions = list(NORTH, SOUTH, EAST, WEST) + /* + var/list/directions = list(NORTH, SOUTH, EAST, WEST) - directions -= add_underlay(node1) - directions -= add_underlay(node2) - directions -= add_underlay(node3) - directions -= add_underlay(node4) + directions -= add_underlay(node1) + directions -= add_underlay(node2) + directions -= add_underlay(node3) + directions -= add_underlay(node4) - for(var/D in directions) - add_underlay(,D) - */ + for(var/D in directions) + add_underlay(,D) + */ - var/turf/T = get_turf(src) - var/list/directions = list(NORTH, SOUTH, EAST, WEST) - var/node1_direction = get_dir(src, node1) - var/node2_direction = get_dir(src, node2) - var/node3_direction = get_dir(src, node3) - var/node4_direction = get_dir(src, node4) + var/turf/T = get_turf(src) + var/list/directions = list(NORTH, SOUTH, EAST, WEST) + var/node1_direction = get_dir(src, node1) + var/node2_direction = get_dir(src, node2) + var/node3_direction = get_dir(src, node3) + var/node4_direction = get_dir(src, node4) - directions -= dir + directions -= dir - directions -= add_underlay(T,node1,node1_direction,icon_connect_type) - directions -= add_underlay(T,node2,node2_direction,icon_connect_type) - directions -= add_underlay(T,node3,node3_direction,icon_connect_type) - directions -= add_underlay(T,node4,node4_direction,icon_connect_type) + directions -= add_underlay(T,node1,node1_direction,icon_connect_type) + directions -= add_underlay(T,node2,node2_direction,icon_connect_type) + directions -= add_underlay(T,node3,node3_direction,icon_connect_type) + directions -= add_underlay(T,node4,node4_direction,icon_connect_type) - for(var/D in directions) - add_underlay(T,,D,icon_connect_type) + for(var/D in directions) + add_underlay(T,,D,icon_connect_type) /obj/machinery/atmospherics/pipe/manifold4w/update_underlays() diff --git a/icons/atmos/pipes.dmi b/icons/atmos/pipes.dmi index 6bd0b15f618d614aee81dd2187f761c3b8db011f..8134604e8a66888f2df5934c6811401f4357f606 100644 GIT binary patch delta 4198 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 J+BV?k{{R30>ihrz delta 3466 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 Zakhv!z2mM>dQXD59`kf=IvRHA{{XIHG9CZ` From c0ca35bb2e9879e3aed724462aef85069053d12e Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Tue, 20 Feb 2018 14:32:01 +1000 Subject: [PATCH 25/54] fixed misaligned eyes on engineering handy sprite (#4880) sprite of eyes was renamed to properly appear, but the sprite of eyes itself was not aligned with engineering Handy's borg sprite. fix for that. --- icons/mob/robots.dmi | Bin 397369 -> 397340 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index f81005818e968e8cafe5cc48e2dc832acf9be687..21fab3ba6368cfb5f46b5cb1dae8dc46df0cbb5b 100644 GIT binary patch delta 20553 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 From d5131fc4bfd5d3abfeaa58e80f830ec0f127a860 Mon Sep 17 00:00:00 2001 From: Leshana Date: Mon, 19 Feb 2018 23:31:05 -0500 Subject: [PATCH 26/54] Fixes #3518 - Runtime in circuit imprinter deconstruction. --- code/modules/research/circuitprinter.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 936330d00a..dae6575577 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -93,7 +93,7 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid). if(materials[f] >= SHEET_MATERIAL_AMOUNT) var/path = getMaterialType(f) if(path) - var/obj/item/stack/S = new f(loc) + var/obj/item/stack/S = new path(loc) S.amount = round(materials[f] / SHEET_MATERIAL_AMOUNT) ..() From 782e637497d4c53d0ff5e32ac22b9e8dc7805871 Mon Sep 17 00:00:00 2001 From: Leshana Date: Tue, 20 Feb 2018 00:05:05 -0500 Subject: [PATCH 27/54] Destructive Analyzer shouldn't delete its own circuit board when analyzing. - The deletion of the circuit board without clearing the circuit variable caused it to be hard-deled by SSgarbage after several minutes. After that point, use of RPD or attempt to deconstruct would runtime. --- code/modules/research/rdconsole.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index a6f6b89069..6872ffba6d 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -258,7 +258,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, qdel(S) linked_destroy.icon_state = "d_analyzer" else - if(!(I in linked_destroy.component_parts)) + if(I != linked_destroy.circuit && !(I in linked_destroy.component_parts)) qdel(I) linked_destroy.icon_state = "d_analyzer" From 42b7478e38871b417f7c8371c1df76e28687fc26 Mon Sep 17 00:00:00 2001 From: ThoughtSynapsis <1429echoesrefurb@gmail.com> Date: Tue, 20 Feb 2018 01:30:31 -0500 Subject: [PATCH 28/54] POI Bugfixes / Sprucing. --- maps/submaps/surface_submaps/plains/Diner.dmm | 129 ++++--- .../submaps/surface_submaps/plains/Mechpt.dmm | 2 +- .../surface_submaps/plains/PooledR.dmm | 2 +- .../wilderness/Blackshuttledown.dmm | 235 +++++++------ .../surface_submaps/wilderness/CaveS.dmm | 106 +++--- .../surface_submaps/wilderness/MCamp1.dmm | 22 +- .../surface_submaps/wilderness/Rockybase.dmm | 324 +++++++++--------- 7 files changed, 417 insertions(+), 403 deletions(-) diff --git a/maps/submaps/surface_submaps/plains/Diner.dmm b/maps/submaps/surface_submaps/plains/Diner.dmm index 33c7a8d150..2ca833020d 100644 --- a/maps/submaps/surface_submaps/plains/Diner.dmm +++ b/maps/submaps/surface_submaps/plains/Diner.dmm @@ -24,62 +24,59 @@ "ax" = (/obj/structure/bed/chair/wood,/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) "ay" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/condiment/sugar,/turf/simulated/floor/tiled/white,/area/submap/Diner) "az" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aA" = (/obj/structure/simple_door/wood,/turf/simulated/wall,/area/submap/Diner) +"aA" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled,/area/submap/Diner) "aB" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) "aC" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/tiled/white,/area/submap/Diner) "aD" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) "aE" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/white,/area/submap/Diner) "aF" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aG" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aH" = (/turf/simulated/floor/tiled,/area/submap/Diner) -"aI" = (/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aJ" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aK" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aL" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aM" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/floor/tiled,/area/submap/Diner) -"aN" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aO" = (/obj/structure/closet/crate/freezer,/obj/machinery/light/small{dir = 4},/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aP" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aQ" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aR" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aS" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/coatrack,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aT" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aU" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aV" = (/obj/machinery/gibber,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aW" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aX" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aY" = (/obj/machinery/cooker/fryer,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aZ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/outdoors/dirt,/area/submap/Diner) -"ba" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bb" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/cooker/grill,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bc" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Diner) -"bd" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/submap/Diner) -"be" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled,/area/submap/Diner) -"bf" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bg" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bh" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_coffee,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bi" = (/obj/item/frame/apc,/turf/simulated/floor/lino,/area/submap/Diner) -"bj" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/lino,/area/submap/Diner) -"bk" = (/obj/structure/bed/chair/office/light,/turf/simulated/floor/lino,/area/submap/Diner) -"bl" = (/turf/simulated/floor/lino,/area/submap/Diner) -"bm" = (/obj/structure/bed/chair/wood{dir = 1},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bn" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/lino,/area/submap/Diner) -"bo" = (/obj/structure/table/woodentable,/obj/item/weapon/cell/high,/turf/simulated/floor/lino,/area/submap/Diner) -"bp" = (/obj/structure/table/woodentable,/turf/simulated/floor/lino,/area/submap/Diner) -"bq" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/lino,/area/submap/Diner) -"br" = (/obj/structure/simple_door/wood,/turf/simulated/floor/lino,/area/submap/Diner) -"bs" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/windoor_assembly{tag = "icon-l_windoor_assembly01"; icon_state = "l_windoor_assembly01"; dir = 2},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bt" = (/obj/structure/bookcase,/turf/simulated/floor/lino,/area/submap/Diner) -"bu" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/space_heater,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bv" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"bw" = (/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"bx" = (/obj/structure/toilet,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"by" = (/obj/structure/bed/chair/wood{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bz" = (/obj/structure/bed/chair/wood{dir = 8},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bA" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"bB" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"bC" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"bD" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"aG" = (/turf/simulated/floor/tiled,/area/submap/Diner) +"aH" = (/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aI" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aJ" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aK" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aL" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/floor/tiled,/area/submap/Diner) +"aM" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aN" = (/obj/structure/closet/crate/freezer,/obj/machinery/light/small{dir = 4},/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aO" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aP" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aQ" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aR" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/coatrack,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aS" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aT" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aU" = (/obj/machinery/gibber,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aV" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aW" = (/obj/machinery/cooker/fryer,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aX" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/outdoors/dirt,/area/submap/Diner) +"aY" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aZ" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/cooker/grill,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"ba" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Diner) +"bb" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/submap/Diner) +"bc" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bd" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"be" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_coffee,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bf" = (/obj/item/frame/apc,/turf/simulated/floor/lino,/area/submap/Diner) +"bg" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/lino,/area/submap/Diner) +"bh" = (/obj/structure/bed/chair/office/light,/turf/simulated/floor/lino,/area/submap/Diner) +"bi" = (/turf/simulated/floor/lino,/area/submap/Diner) +"bj" = (/obj/structure/bed/chair/wood{dir = 1},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bk" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/lino,/area/submap/Diner) +"bl" = (/obj/structure/table/woodentable,/obj/item/weapon/cell/high,/turf/simulated/floor/lino,/area/submap/Diner) +"bm" = (/obj/structure/table/woodentable,/turf/simulated/floor/lino,/area/submap/Diner) +"bn" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/lino,/area/submap/Diner) +"bo" = (/obj/structure/simple_door/wood,/turf/simulated/floor/lino,/area/submap/Diner) +"bp" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/windoor_assembly{tag = "icon-l_windoor_assembly01"; icon_state = "l_windoor_assembly01"; dir = 2},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bq" = (/obj/structure/bookcase,/turf/simulated/floor/lino,/area/submap/Diner) +"br" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/space_heater,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bs" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bt" = (/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bu" = (/obj/structure/toilet,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bv" = (/obj/structure/bed/chair/wood{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bw" = (/obj/structure/bed/chair/wood{dir = 8},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bx" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"by" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bz" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bA" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -89,22 +86,22 @@ aaabanacacacababadadafaoaoadapapapapapapapadadabaa aaababacacacabadadaqafarasadatapauahavapapawadadaa aaababacacacabadafafafaxaxadapapapapapapapapayadaa aaababacacacabaeaoaoafafafadazazadaAadadaBadadadaa -aaababacacacabaeaCaDafafaEaFaGaGadaHadaIaIaIaJadaa -aaababacacacabaeaxaxafafaEaKafaLadaMadaNaIaIaOadaa -aaababacacacabadafafafafaEaPafaQadaHadaRaIaIaIadaa -aaababacacacacadadadaSafaEaFafaTadaHadaUaIaIaVadaa -aaababacacacacazaWazaXafaEaFafaYadaHadadadadadadaa -aaababacacacaZadadadbaafaEaFafbbadaHbcbdaHbebdbeaa -aaanabacacacabaeaoaoafafaEaFafbfadbcbcbcbcbeaHbeaa -aaababacacacabaeaCaDafafaEaFafbgadbcadadadadadadaa -aaababacacacabaeaxaxafafaEaFafbhadaHadbibjbkbladaa -aaababacacacabadbmaoafafaEaPafahadaHadbnbobpbqadaa -aaababacacacabaeaCaDafafaEaKafaLadaMbrblblblbladaa -aaababacacacabaeaxaxafafaEaFahbsadaHadblblbtbtadaa +aaababacacacabaeaCaDafafaEaFafafadaGadaHaHaHaIadaa +aaababacacacabaeaxaxafafaEaJafaKadaLadaMaHaHaNadaa +aaababacacacabadafafafafaEaOafaPadaGadaQaHaHaHadaa +aaababacacacacadadadaRafaEaFafaSadaGadaTaHaHaUadaa +aaababacacacacazaVazafafaEaFafaWadaGadadadadadadaa +aaababacacacaXadadadaYafaEaFafaZadaGbabbaGaAbbaAaa +aaanabacacacabaeaoaoafafaEaFafbcadbabababaaAaGaAaa +aaababacacacabaeaCaDafafaEaFafbdadbaadadadadadadaa +aaababacacacabaeaxaxafafaEaFafbeadaGadbfbgbhbiadaa +aaababacacacabadbjaoafafaEaOafahadaGadbkblbmbnadaa +aaababacacacabaeaCaDafafaEaJafaKadaLbobibibibiadaa +aaababacacacabaeaxaxafafaEaFahbpadaGadbibibqbqadaa aaababacacacabaeafafafafafafafafadadadadadadadadaa -aaababacacacabadadbuafafafafafafadbvbwbxadadadadaa -aaabababacabababadadafafbyaDbzafbAbwbwbwadadadabaa -aaabanababababababadadafbyaCbzafadbBbCbDadadababaa +aaababacacacabadadbrafafafafafafadbsbtbuadadadadaa +aaabababacabababadadafafbvaDbwafbxbtbtbtadadadabaa +aaabanababababababadadafbvaCbwafadbybzbAadadababaa aaabababababababababadadaeaeaeadadadadadadabababaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} diff --git a/maps/submaps/surface_submaps/plains/Mechpt.dmm b/maps/submaps/surface_submaps/plains/Mechpt.dmm index 3f122e9900..e2a3ecaff1 100644 --- a/maps/submaps/surface_submaps/plains/Mechpt.dmm +++ b/maps/submaps/surface_submaps/plains/Mechpt.dmm @@ -18,7 +18,7 @@ "r" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/turf/template_noop,/area/submap/Mechpt) "s" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/structure/reagent_dispensers/beerkeg,/turf/template_noop,/area/submap/Mechpt) "t" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c50,/turf/template_noop,/area/submap/Mechpt) -"u" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/turf/template_noop,/area/submap/Mechpt) +"u" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/item/weapon/cell/high,/obj/item/weapon/cell/device/weapon,/turf/template_noop,/area/submap/Mechpt) "v" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/turf/template_noop,/area/submap/Mechpt) (1,1,1) = {" diff --git a/maps/submaps/surface_submaps/plains/PooledR.dmm b/maps/submaps/surface_submaps/plains/PooledR.dmm index 8415e01135..554c4cca8f 100644 --- a/maps/submaps/surface_submaps/plains/PooledR.dmm +++ b/maps/submaps/surface_submaps/plains/PooledR.dmm @@ -5,7 +5,7 @@ "e" = (/obj/structure/table/woodentable,/turf/template_noop,/area/submap/PooledR) "f" = (/obj/structure/table/woodentable,/obj/item/weapon/material/knife,/turf/template_noop,/area/submap/PooledR) "g" = (/obj/structure/flora/ausbushes/palebush,/turf/template_noop,/area/submap/PooledR) -"h" = (/obj/structure/table/woodentable,/obj/item/weapon/gun/energy/retro,/turf/template_noop,/area/submap/PooledR) +"h" = (/obj/structure/table/woodentable,/obj/item/weapon/gun/energy/retro{cell_type = /obj/item/weapon/cell/device/weapon/empty},/turf/template_noop,/area/submap/PooledR) "i" = (/obj/structure/flora/ausbushes/reedbush,/turf/template_noop,/area/submap/PooledR) "j" = (/turf/simulated/floor/outdoors/rocks,/area/submap/PooledR) "k" = (/obj/structure/flora/ausbushes,/turf/template_noop,/area/submap/PooledR) diff --git a/maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm b/maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm index 37b3484d14..392d18aa52 100644 --- a/maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm +++ b/maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm @@ -14,103 +14,110 @@ "an" = (/obj/machinery/light{dir = 1},/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) "ao" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) "ap" = (/obj/machinery/door/airlock/external{density = 1; frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"; req_access = list(150)},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aq" = (/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"ar" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"as" = (/obj/machinery/organ_printer/flesh,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"at" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown) -"au" = (/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"av" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/item/weapon/gun/projectile/automatic/p90,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"aw" = (/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"ax" = (/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"ay" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"az" = (/obj/machinery/optable,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aA" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aB" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown) -"aC" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark6"; name = "Unknown Shuttle"; tag = "icon-dark6"},/area/submap/Blackshuttledown) -"aD" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"aE" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"aF" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aG" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aH" = (/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aI" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aJ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aK" = (/obj/structure/table/steel,/obj/effect/floor_decal/borderfloor/full,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aL" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"aM" = (/obj/effect/floor_decal/borderfloor/corner,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aN" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aO" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aP" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/surgery,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aQ" = (/obj/structure/table/standard,/obj/item/weapon/tank/anesthetic,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aR" = (/obj/structure/table/standard,/obj/item/clothing/gloves/sterile,/obj/item/clothing/gloves/sterile,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aS" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/spray/sterilizine,/obj/item/weapon/reagent_containers/spray/sterilizine,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aT" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/masks,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aU" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aV" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aW" = (/obj/machinery/door/airlock/security{locked = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aX" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aY" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark10"; name = "Unknown Shuttle"; tag = "icon-dark10"},/area/submap/Blackshuttledown) -"aZ" = (/obj/machinery/computer/communications,/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"ba" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bb" = (/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bc" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bd" = (/obj/structure/table/steel,/obj/item/weapon/material/knife,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"be" = (/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bf" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bg" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bh" = (/obj/structure/table/steel,/obj/random/toolbox,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bi" = (/obj/structure/table/steel,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown) -"bk" = (/obj/structure/table/steel,/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bl" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bm" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bn" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bo" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bp" = (/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/Blackshuttledown) -"br" = (/obj/machinery/door/airlock/glass,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bs" = (/obj/effect/floor_decal/corner/grey,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bt" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bu" = (/obj/structure/table/steel,/obj/item/pizzabox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bv" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bw" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bx" = (/obj/machinery/door/airlock/glass,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"by" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown) -"bA" = (/obj/machinery/power/apc{dir = 8; name = "BSD APC"; pixel_x = -24},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bB" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bC" = (/obj/machinery/computer/area_atmos,/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bD" = (/obj/effect/floor_decal/borderfloor{dir = 4},/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bE" = (/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bF" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bG" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "We need to take a short stop. The engine's are in need of minor repairs due to turbulence, should be a week's time. We've got reserve food supplies but pleanty of locale fauna to subsist on too if need be. PCRC is keeping most of there assets near New Reykjavik and locale authorities are more mindful then most to travel in this kind of weather. Our outfit should be at the rendezvous point in less then ten days assuming the upper ecehelon hasn't dropped ties with us yet."; name = "Operation Progress/M-53"},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bH" = (/obj/structure/table/steel,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bI" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bJ" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bK" = (/obj/machinery/portable_atmospherics/canister/empty/oxygen,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bL" = (/obj/machinery/atmospherics/pipe/tank/oxygen,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bM" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bN" = (/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bO" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"bP" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bQ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bR" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bS" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) -"bT" = (/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) -"bU" = (/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"bV" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"bW" = (/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bX" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bY" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) -"bZ" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"ca" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/item/weapon/gun/projectile/shotgun/pump,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"cb" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) -"cc" = (/obj/machinery/light,/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"cd" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"ce" = (/obj/structure/table/woodentable,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"cf" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"cg" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"ch" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown) -"ci" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown) +"aq" = (/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTHWEST)"; icon_state = "bordercolor"; dir = 9},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"ar" = (/obj/machinery/gibber,/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"as" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"at" = (/obj/machinery/bodyscanner{dir = 8},/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"au" = (/obj/machinery/body_scanconsole,/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTHEAST)"; icon_state = "bordercolor"; dir = 5},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"av" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown) +"aw" = (/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"ax" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/item/weapon/gun/projectile/automatic/p90,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"ay" = (/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"az" = (/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aA" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aB" = (/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (WEST)"; icon_state = "bordercolor"; dir = 8},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aC" = (/obj/machinery/optable,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aD" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aE" = (/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aF" = (/obj/machinery/organ_printer/flesh,/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTHEAST)"; icon_state = "bordercolor"; dir = 5},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aG" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown) +"aH" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark6"; name = "Unknown Shuttle"; tag = "icon-dark6"},/area/submap/Blackshuttledown) +"aI" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"aJ" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"aK" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aL" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aM" = (/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aN" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aO" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aP" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aQ" = (/obj/structure/table/steel,/obj/effect/floor_decal/borderfloor/full,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aR" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"aS" = (/obj/effect/floor_decal/borderfloor/corner,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aT" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aV" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/surgery,/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (SOUTHWEST)"; icon_state = "bordercolor"; dir = 10},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aW" = (/obj/structure/table/standard,/obj/item/weapon/tank/anesthetic,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aX" = (/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aY" = (/obj/structure/table/standard,/obj/item/clothing/gloves/sterile,/obj/item/clothing/gloves/sterile,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aZ" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/spray/sterilizine,/obj/item/weapon/reagent_containers/spray/sterilizine,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"ba" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/masks,/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (SOUTHEAST)"; icon_state = "bordercolor"; dir = 6},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"bb" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bc" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bd" = (/obj/machinery/door/airlock/security{locked = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"be" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"bf" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark10"; name = "Unknown Shuttle"; tag = "icon-dark10"},/area/submap/Blackshuttledown) +"bg" = (/obj/machinery/computer/communications,/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bh" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bi" = (/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bj" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bk" = (/obj/structure/table/steel,/obj/item/weapon/material/knife,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bl" = (/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bm" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bn" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bo" = (/obj/structure/table/steel,/obj/random/toolbox,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bp" = (/obj/structure/table/steel,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown) +"br" = (/obj/structure/table/steel,/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bs" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bu" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bv" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bw" = (/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/Blackshuttledown) +"by" = (/obj/machinery/door/airlock/glass,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bz" = (/obj/effect/floor_decal/corner/grey,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bA" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bB" = (/obj/structure/table/steel,/obj/item/pizzabox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bC" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bD" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bE" = (/obj/machinery/door/airlock/glass,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bF" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown) +"bH" = (/obj/machinery/power/apc{dir = 8; name = "BSD APC"; pixel_x = -24},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bI" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bJ" = (/obj/machinery/computer/area_atmos,/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bK" = (/obj/effect/floor_decal/borderfloor{dir = 4},/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bL" = (/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bM" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bN" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "We need to take a short stop. The engine's are in need of minor repairs due to turbulence, should be a week's time. We've got reserve food supplies but pleanty of locale fauna to subsist on too if need be. PCRC is keeping most of there assets near New Reykjavik and locale authorities are more mindful then most to travel in this kind of weather. Our outfit should be at the rendezvous point in less then ten days assuming the upper ecehelon hasn't dropped ties with us yet."; name = "Operation Progress/M-53"},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bO" = (/obj/structure/table/steel,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bP" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bQ" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bR" = (/obj/machinery/portable_atmospherics/canister/empty/oxygen,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bS" = (/obj/machinery/atmospherics/pipe/tank/oxygen,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bT" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bU" = (/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bV" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"bW" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bX" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bY" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bZ" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) +"ca" = (/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) +"cb" = (/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"cc" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"cd" = (/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"ce" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"cf" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) +"cg" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"ch" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/item/weapon/gun/projectile/shotgun/pump,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"ci" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) +"cj" = (/obj/machinery/light,/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"ck" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"cl" = (/obj/structure/table/woodentable,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"cm" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"cn" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"co" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown) +"cp" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -122,24 +129,24 @@ aaabababababadadadabacababababagagagagagagabababababacabafabadabababaa aaababababababadadabafababababagahabababagabababababababababababababaa aaabababababababaiajajajakababagabababahagabababafaiajajajajakabababaa aaabababababababajajajajajajajajajababajajajajajajajajajajajalamababaa -aaababababafababajajajajajajanaoajapapajaqaqaraqasajajajajajalamababaa -aaabababababababatajajauavajawaxajayayajaqazaqaqaqaqaAajajaBababababaa -aaabababababababaCajajaDaEajawaFaGaGaHajaqaqaqaqaIaqaJajaBabababababaa -aaabafababababaCajaKajauaLajawaMaNaNaOajaPaQaqaqaRaSaTajababababafabaa -aaabababababaCajaUaVajaWajajawaxajajajajajajaXajajajajajaYabababababaa -aaabababababajaZbaaxajbbaGaGbaaxajbcbdbebfbebgbeajbhbhbiajaYababababaa -aaabababababbjbkbeaxajblbebebebmajbebebnbnbnbebeajbobebebpalamabababaa -aaabababababbqbkbeaFbrbabebsbebebtbebebubvbvbebebwbebebebpalamabababaa -aaabababababbqbkbeaMbxbybebebebebtbebebvbvbvbebebwbebebebpalamabababaa -aaabababababbzbkbeaxajblbebebebmajbebebnbnbnbebeajbAbebebBalamabababaa -aaabababababajbCbybDajbEaNaNbybFajbGbHbebIbgbebeajbJbKbLajaBababababaa -aaabababababatajbMbNajaWajajawaxajajajajajajbtajajajajajaBabababababaa -aaababababababatajaKajaubOajawbPaGaGbQajbRbebebebebSbTajababababababaa -aaabafabababababatajajbUbVajawaMaNaNbWajbXbebRbebRajbYajaYabafabababaa -aaabababababababaCajajbZcaajawbDajayayajbRbebRbebRajcbajajaYababababaa -aaabababababababajajajajajajcccdajapapajbRcecfcecgajajajajalamabababaa +aaababababafababajajajajajajanaoajapapajaqarasatauajajajajajalamababaa +aaabababababababavajajawaxajayazajaAaAajaBaCaDaEaEaEaFajajaGababababaa +aaabababababababaHajajaIaJajayaKaLaLaMajaBaNaNaEaOaDaPajaGabababababaa +aaabafababababaHajaQajawaRajayaSaTaTaUajaVaWaEaXaYaZbaajababababafabaa +aaabababababaHajbbbcajbdajajayazajajajajajajbeajajajajajbfabababababaa +aaabababababajbgbhazajbiaLaLbhazajbjbkblbmblbnblajbobobpajbfababababaa +aaabababababbqbrblazajbsblblblbtajblblbububublblajbvblblbwalamabababaa +aaabababababbxbrblaKbybhblbzblblbAblblbBbCbCblblbDblblblbwalamabababaa +aaabababababbxbrblaSbEbFblblblblbAblblbCbCbCblblbDblblblbwalamabababaa +aaabababababbGbrblazajbsblblblbtajblblbububublblajbHblblbIalamabababaa +aaabababababajbJbFbKajbLaTaTbFbMajbNbOblbPbnblblajbQbRbSajaGababababaa +aaabababababavajbTbUajbdajajayazajajajajajajbAajajajajajaGabababababaa +aaababababababavajaQajawbVajaybWaLaLbXajbYblblblblbZcaajababababababaa +aaabafabababababavajajcbccajayaSaTaTcdajceblbYblbYajcfajbfabafabababaa +aaabababababababaHajajcgchajaybKajaAaAajbYblbYblbYajciajajbfababababaa +aaabababababababajajajajajajcjckajapapajbYclcmclcnajajajajalamabababaa aaabababababababajajajajajajajajajababajajajajajajajajajajalamabababaa -aaababafababababchajajajciababagahabababagabababchajajajajciababababaa +aaababafababababcoajajajcpababagahabababagabababcoajajajajcpababababaa aaabababadabababababafababababagabababahagababafabafabababadadadababaa aaababadadabacababababafabababagagagagagagababababacababadadadadababaa aaabadadadabababababababaeababababababababababadadabababadadadadababaa diff --git a/maps/submaps/surface_submaps/wilderness/CaveS.dmm b/maps/submaps/surface_submaps/wilderness/CaveS.dmm index 9f5a411ec5..229837b4f3 100644 --- a/maps/submaps/surface_submaps/wilderness/CaveS.dmm +++ b/maps/submaps/surface_submaps/wilderness/CaveS.dmm @@ -5,37 +5,39 @@ "e" = (/obj/item/ammo_casing/a45,/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,/turf/template_noop,/area/submap/CaveS) "f" = (/obj/random/landmine,/turf/template_noop,/area/submap/CaveS) "g" = (/obj/item/ammo_casing/a45,/obj/random/landmine,/turf/template_noop,/area/submap/CaveS) -"h" = (/obj/random/landmine,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"i" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"h" = (/obj/random/landmine,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"i" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) "j" = (/obj/item/ammo_casing/a45,/obj/item/ammo_casing/a45,/turf/template_noop,/area/submap/CaveS) -"k" = (/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"k" = (/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) "l" = (/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,/turf/template_noop,/area/submap/CaveS) -"m" = (/obj/item/clothing/accessory/storage/webbing,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"n" = (/mob/living/simple_animal/hostile/giant_spider,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"o" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"p" = (/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"q" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"r" = (/mob/living/simple_animal/hostile/giant_spider/webslinger,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"s" = (/obj/effect/decal/cleanable/cobweb2,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"t" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) -"u" = (/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"v" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) -"w" = (/obj/random/landmine,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) -"x" = (/turf/simulated/floor,/area/submap/CaveS) -"y" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/storage/toolbox,/obj/random/toolbox,/turf/simulated/floor,/area/submap/CaveS) -"z" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor,/area/submap/CaveS) -"A" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/submap/CaveS) -"B" = (/obj/random/landmine,/turf/simulated/floor,/area/submap/CaveS) -"C" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/submap/CaveS) -"D" = (/turf/simulated/wall,/area/submap/CaveS) -"E" = (/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/paracetamol,/obj/random/firstaid,/obj/random/landmine,/turf/simulated/floor,/area/submap/CaveS) -"F" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/submap/CaveS) -"G" = (/obj/structure/closet/crate,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/energy,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/turf/simulated/floor,/area/submap/CaveS) -"H" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"I" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/submap/CaveS) -"J" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/submap/CaveS) -"K" = (/obj/machinery/computer/communications,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/submap/CaveS) -"L" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/floor,/area/submap/CaveS) +"m" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"n" = (/obj/item/clothing/accessory/storage/webbing,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"o" = (/mob/living/simple_animal/hostile/giant_spider,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"p" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"q" = (/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"r" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"s" = (/mob/living/simple_animal/hostile/giant_spider/webslinger,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"t" = (/obj/effect/decal/cleanable/cobweb2,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"u" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) +"v" = (/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"w" = (/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"x" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) +"y" = (/obj/random/landmine,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) +"z" = (/turf/simulated/floor,/area/submap/CaveS) +"A" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/storage/toolbox,/obj/random/toolbox,/turf/simulated/floor,/area/submap/CaveS) +"B" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor,/area/submap/CaveS) +"C" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/submap/CaveS) +"D" = (/obj/random/landmine,/turf/simulated/floor,/area/submap/CaveS) +"E" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/submap/CaveS) +"F" = (/turf/simulated/wall,/area/submap/CaveS) +"G" = (/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/paracetamol,/obj/random/firstaid,/obj/random/landmine,/turf/simulated/floor,/area/submap/CaveS) +"H" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/submap/CaveS) +"I" = (/obj/structure/closet/crate,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/energy,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/turf/simulated/floor,/area/submap/CaveS) +"J" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"K" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/submap/CaveS) +"L" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/submap/CaveS) +"M" = (/obj/machinery/computer/communications,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/submap/CaveS) +"N" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/floor,/area/submap/CaveS) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -49,31 +51,31 @@ abbbbbbbbbbbbbbbbbbbbbbbeddddddddbbddbba abbbbbbbbbbbbbbbbbbbbbfbdddddddddddddbba abbbbdddddbbbbcbbbbgbbbhiddddddddddddbba abbbbddddddddbbbbbjbbfbkkddddddddddddbba -abbbddddddddddbbbbcblbdikiidddddddddbbba -abbbdddddddddddbbbbbbdddikkkdddddddbbbba -abbbddddddddddddbbbbddddddhkiddddddbbbba -abbdddddmdkkidddbbddddddddkkkkkkddddbbba -abbdddnkkkkkkdddbbdddddddokkkkkkndddbbba -abbdddikkkkkpddbbddddddddkkkkkkkdddddbba -abbddddkkkkkdddbdddddddddkkddddkqddddbba +abbbddddddddddbbbbcblbdmkiidddddddddbbba +abbbdddddddddddbbbbbbdddmkkkdddddddbbbba +abbbddddddddddddbbbbddddddhkmddddddbbbba +abbdddddndkkidddbbddddddddkkkkkkddddbbba +abbdddokkkkkkdddbbdddddddpkkkkkkodddbbba +abbdddikkkkkqddbbddddddddkkkkkkkdddddbba +abbddddkkkkkdddbdddddddddkkddddkrddddbba abdddddddkkkkddddddddddddhkddddkkdddddba -abdddddddkkkkqdddddoknkkkkddddokddddddba +abdddddddkkkkrdddddpkokkkkddddpkddddddba abddddddddkkkkkkkkkkkkkkkkddddhkddddddda -abdddddddddrkkkkkkkkkkkkkkksddkkddddddda -abdddddttdddddkkdddpdddddikkkkkkddddddba -abdddttttdddddkkddddddddddkkkkuddddddbba -abddtvtttdddddkkpdddddddddddddddddddbbba -abddttwtttdddddkkkkkddddddddpkddddddbbba -abdddtttvtiddddkkkkkkkhidddkkkkkdddbbbba -abdddtttwtkkkkkkkdkkkkkiddkkxxykkkddbbba -abddtttttttkkkkidddikkkhkkkkxxxzkdddbbba -abddttttttkkddddddddkhkkkkkxAABxkkddbbba -abdddtttttkkpddddddkkkidkkxCDDEkkkdddbba -abdddddvtkkddddddikkkkddkkxFDDGkkddddbba -abdddddddtiddddddHkkkkddkkxIJKBxddddbbba -abbddddddddddddddkkkkkdddkkxxxxdddddbbba -abbdddddddddddddddkidddddkkkxLdddddbbbba -abbdddddddddddddddddddddddpkkddddbbbbbba +abdddddddddskkkkkkkkkkkkkkktddkkddddddda +abddddduudddddkkdddvdddddikkkkkkddddddba +abddduuuudddddkkddddddddddkkkkwddddddbba +abdduxuuudddddkkqdddddddddddddddddddbbba +abdduuyuuudddddkkkkkddddddddqkddddddbbba +abddduuuxuiddddkkkkkkkhidddkkkkkdddbbbba +abddduuuyukkkkkkkdkkkkkiddkkzzAkkkddbbba +abdduuuuuuukkkkidddikkkhkkkkzzzBkdddbbba +abdduuuuuukkddddddddkhkkkkkzCCDzkkddbbba +abddduuuuukkvddddddkkkidkkzEFFGkkkdddbba +abdddddxukkddddddikkkkddkkzHFFIkkddddbba +abddddddduiddddddJkkkkddkkzKLMDzddddbbba +abbddddddddddddddkkkkkdddkkkzzzdddddbbba +abbdddddddddddddddkidddddkkkzNdddddbbbba +abbdddddddddddddddddddddddqkkddddbbbbbba abbbdddddddddddddddddddddddddddbbbbbbbba abbbddddbbbbdddddddbbdddddddddbbbbbbbbba abbbddbbbbbbbddddbbbbdbbdddddbbbbbbbbbba diff --git a/maps/submaps/surface_submaps/wilderness/MCamp1.dmm b/maps/submaps/surface_submaps/wilderness/MCamp1.dmm index bebe7a2de8..6e4dd855c7 100644 --- a/maps/submaps/surface_submaps/wilderness/MCamp1.dmm +++ b/maps/submaps/surface_submaps/wilderness/MCamp1.dmm @@ -17,7 +17,7 @@ "q" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) "r" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/MilitaryCamp1) "s" = (/obj/machinery/computer/communications,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) -"t" = (/obj/structure/table/standard,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) +"t" = (/obj/structure/table/standard,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/energy/gun,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) "u" = (/obj/effect/mine,/obj/random/landmine,/turf/simulated/floor,/area/submap/MilitaryCamp1) "v" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/MilitaryCamp1) "w" = (/obj/machinery/computer/security,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) @@ -28,12 +28,12 @@ "B" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/template_noop,/area/submap/MilitaryCamp1) "C" = (/obj/structure/table,/turf/simulated/floor,/area/submap/MilitaryCamp1) "D" = (/obj/structure/table/standard,/obj/random/firstaid,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"E" = (/obj/machinery/door/airlock,/obj/effect/mine,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"F" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/MilitaryCamp1) -"G" = (/obj/random/landmine,/turf/template_noop,/area/template_noop) -"H" = (/obj/effect/decal/cleanable/dirt,/obj/random/landmine,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"I" = (/obj/structure/table/standard,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"J" = (/obj/structure/table/standard,/obj/item/weapon/gun/energy/gun,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"E" = (/obj/effect/decal/cleanable/dirt,/obj/random/landmine,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"F" = (/obj/machinery/door/airlock,/obj/effect/mine,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"G" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/MilitaryCamp1) +"H" = (/obj/random/landmine,/turf/template_noop,/area/template_noop) +"I" = (/obj/structure/table/standard,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"J" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor,/area/submap/MilitaryCamp1) "K" = (/obj/effect/decal/cleanable/blood,/obj/random/landmine,/turf/template_noop,/area/submap/MilitaryCamp1) (1,1,1) = {" @@ -47,10 +47,10 @@ abbdmmqoormstqmmbeba abbbmmqruvmwxxmmbbda abbymmzmmAmmmzmrBdba abbbomqoovoqAvmmbbba -afdbomqooCDqvvmmbida -abbbrmzEmmmmzzmrbFba -GbbBmmqorvHvqqmmbbba -aFbbmmIJmooqqqmmpbKa +afdbomqooCDqEvmmbida +abbbrmzFmmmmzzmrbGba +HbbBmmqorvEvqqmmbbba +aGbbmmIJmooqqqmmpbKa abbebmmmmzommmmbibba abddbbmmmvommmbcciba abcbbdbmmbymmbgcbbba diff --git a/maps/submaps/surface_submaps/wilderness/Rockybase.dmm b/maps/submaps/surface_submaps/wilderness/Rockybase.dmm index b42bbb2ad1..71692f80da 100644 --- a/maps/submaps/surface_submaps/wilderness/Rockybase.dmm +++ b/maps/submaps/surface_submaps/wilderness/Rockybase.dmm @@ -25,149 +25,157 @@ "ay" = (/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) "az" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) "aA" = (/obj/structure/table/woodentable,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"aB" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"aC" = (/obj/structure/closet/l3closet/janitor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aD" = (/mob/living/bot/cleanbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aE" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aF" = (/obj/item/weapon/storage/belt/janitor,/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aG" = (/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aH" = (/obj/structure/table/standard,/obj/item/device/laptop,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aI" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aJ" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aK" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun/taser,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aL" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aM" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aN" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aO" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aP" = (/obj/structure/closet/crate/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aQ" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"aR" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"aS" = (/obj/structure/janitorialcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aT" = (/obj/structure/table/standard,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aU" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aV" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "Carl's absolutly fucked in the head. He's trying to squeeze as much drone production out as he can since he's worried we're gonna get found out but he's getting sloppier with each batch. Now's he's telling us he can speed the time on the IFF encoding. I already have a hard enough time getting these damn things not to stare at walls and now he's gonna shortchange the only part of these tincans that tells em not to turn us into paste on a wall. I told Richter to get out while he can, We're counting days before either some Sif task force shows up at our door or these things decide we aren't there friends anymore."; name = "Note"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aW" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aX" = (/obj/machinery/vending/security,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aY" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aZ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ba" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"bb" = (/obj/item/mecha_parts/part/gygax_left_leg,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"bc" = (/obj/machinery/light,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"bd" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"be" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bf" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bg" = (/obj/structure/table/standard,/obj/item/weapon/storage/bag/trash,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bh" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bi" = (/obj/machinery/light,/obj/structure/table/standard,/obj/item/weapon/pen,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bj" = (/obj/machinery/door/airlock/security{icon_state = "door_locked"; locked = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bk" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bl" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bm" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bn" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bo" = (/mob/living/bot/farmbot{faction = "malf_drone"; name = "Mr. Weddleton"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bp" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bq" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"br" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bs" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bt" = (/obj/structure/door_assembly,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bu" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bv" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb2,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bw" = (/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bx" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"by" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bz" = (/obj/effect/decal/remains,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bA" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"bB" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bC" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bD" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bE" = (/obj/item/stack/rods,/obj/structure/girder,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bF" = (/obj/effect/decal/remains,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bG" = (/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bH" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bI" = (/obj/item/mecha_parts/part/gygax_right_arm,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bJ" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"bK" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bL" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bM" = (/turf/simulated/wall,/area/submap/Rockybase) -"bN" = (/obj/structure/table/standard,/obj/item/device/kit/paint/gygax/darkgygax,/obj/item/borg/upgrade/syndicate,/obj/item/borg/upgrade/vtec,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bO" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "I've decided to go forward and start some small scale tests of the Vicerator delivery grenades, Might as wall make sure they work like the real ones. There are a few Fauna areas nearbye and we're working to make sure the kinks in the code are worked out. Once we've made sure they stay flying we'll work on the IFF signals."; name = "V-Grenade Notice 2"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bP" = (/obj/structure/table/standard,/obj/random/toolbox,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bQ" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bR" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "We've finally been able to get the Vicerator delivery grenades working, Took awhile to make sure the latching mechanism didn't fail but we're sure we've got it this time. Vel'Shem's worried about the miners having there own drone fab now but I say it's a small price to pay to keep the metal flowing, Especially since there telling us NT's starting to monopolize the metal rich parts."; name = "V-Grenade Notice 1"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bS" = (/obj/structure/table/standard,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bT" = (/obj/structure/table/standard,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bU" = (/obj/structure/table/standard,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bV" = (/obj/structure/table/standard,/obj/machinery/light{dir = 1},/obj/item/weapon/circuitboard/mecha/gygax/main,/obj/item/weapon/circuitboard/mecha/gygax/peripherals,/obj/item/weapon/circuitboard/mecha/gygax/targeting,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bW" = (/obj/structure/door_assembly,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bX" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) -"bY" = (/obj/structure/table/standard,/obj/fiftyspawner/rods,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bZ" = (/obj/machinery/vending/engivend,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ca" = (/obj/machinery/vending/tool,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cb" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cc" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cd" = (/obj/item/mecha_parts/part/gygax_torso,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ce" = (/obj/machinery/light{dir = 1},/obj/structure/closet/crate/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cf" = (/obj/structure/table/standard,/obj/structure/table/standard,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cg" = (/obj/structure/table/standard,/obj/item/clothing/mask/breath/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ch" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ci" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"cj" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"ck" = (/obj/structure/table/standard,/obj/item/device/mmi/digital/robot,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cn" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/submap/Rockybase) -"co" = (/obj/structure/door_assembly,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cp" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) -"cr" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) -"cs" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor,/area/submap/Rockybase) -"ct" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) -"cu" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cv" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"cw" = (/obj/machinery/drone_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cx" = (/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cy" = (/obj/machinery/pros_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cz" = (/obj/structure/table/standard,/obj/item/mecha_parts/mecha_equipment/repair_droid,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cA" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cB" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cC" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cD" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/submap/Rockybase) -"cE" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cF" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cG" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) -"cH" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) -"cI" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) -"cJ" = (/obj/item/mecha_parts/part/gygax_armour,/turf/simulated/floor,/area/submap/Rockybase) -"cK" = (/obj/item/mecha_parts/chassis/gygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cL" = (/mob/living/simple_animal/hostile/mecha/malf_drone{name = "Autonomous Mechanized Drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cM" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cN" = (/obj/machinery/vending/robotics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cO" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/super; dir = 8; name = "Unknown APC"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cP" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cQ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cR" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cS" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/submap/Rockybase) -"cT" = (/obj/item/mecha_parts/part/gygax_right_leg,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cU" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/mecha_parts/part/gygax_left_arm,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"cV" = (/obj/machinery/vending,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cX" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green,/turf/simulated/floor,/area/submap/Rockybase) -"cY" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cZ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"da" = (/obj/structure/closet/secure_closet/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"db" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dc" = (/obj/structure/table/standard,/obj/item/stack/material/plasteel,/obj/item/stack/material/glass/reinforced,/obj/item/stack/material/phoron{amount = 25},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dd" = (/obj/structure/table/standard,/obj/item/stack/material/glass,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"de" = (/obj/structure/table/standard,/obj/item/mecha_parts/part/gygax_head,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"df" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dg" = (/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dh" = (/obj/item/weapon/surgical/surgicaldrill,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"di" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dj" = (/obj/item/clothing/suit/space/void/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dk" = (/obj/effect/decal/cleanable/dirt,/mob/living/bot/medbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dl" = (/obj/machinery/vending/hydroseeds,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dm" = (/obj/structure/closet/crate/secure/hydrosec,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dn" = (/obj/effect/decal/remains,/turf/template_noop,/area/template_noop) +"aB" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"aC" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"aD" = (/obj/structure/closet/l3closet/janitor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aE" = (/mob/living/bot/cleanbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aF" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aG" = (/obj/item/weapon/storage/belt/janitor,/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aH" = (/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aI" = (/obj/structure/table/standard,/obj/item/device/laptop,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTHWEST)"; icon_state = "bordercolor"; dir = 9},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aJ" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aK" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/pistol,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aL" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun/taser,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aM" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aN" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTHEAST)"; icon_state = "bordercolor"; dir = 5},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aO" = (/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"aP" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"aQ" = (/obj/machinery/vending/hydronutrients,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (NORTHWEST)"; icon_state = "bordercolor"; dir = 9},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aR" = (/obj/structure/closet/crate/hydroponics,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (NORTHEAST)"; icon_state = "bordercolor"; dir = 5},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aS" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"aT" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"aU" = (/obj/structure/janitorialcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aV" = (/obj/structure/table/standard,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aW" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aX" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "Carl's absolutly fucked in the head. He's trying to squeeze as much drone production out as he can since he's worried we're gonna get found out but he's getting sloppier with each batch. Now's he's telling us he can speed the time on the IFF encoding. I already have a hard enough time getting these damn things not to stare at walls and now he's gonna shortchange the only part of these tincans that tells em not to turn us into paste on a wall. I told Richter to get out while he can, We're counting days before either some Sif task force shows up at our door or these things decide we aren't there friends anymore."; name = "Note"},/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (WEST)"; icon_state = "bordercolor"; dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aY" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aZ" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ba" = (/obj/machinery/vending/security,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bb" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"bc" = (/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (WEST)"; icon_state = "bordercolor"; dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bd" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"be" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bf" = (/obj/item/mecha_parts/part/gygax_left_leg,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"bg" = (/obj/machinery/light,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"bh" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"bi" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bj" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bk" = (/obj/structure/table/standard,/obj/item/weapon/storage/bag/trash,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bl" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (SOUTHWEST)"; icon_state = "bordercolor"; dir = 10},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bm" = (/obj/machinery/light,/obj/structure/table/standard,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bn" = (/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bo" = (/obj/effect/floor_decal/corner/red/border,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bp" = (/obj/machinery/door/airlock/security{icon_state = "door_locked"; locked = 1},/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"bq" = (/obj/machinery/light,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"br" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"bs" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bt" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bu" = (/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (WEST)"; icon_state = "bordercolor"; dir = 8},/mob/living/bot/farmbot{faction = "malf_drone"; name = "Mr. Weddleton"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bv" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bw" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bx" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"by" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bz" = (/obj/structure/door_assembly,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bA" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb2,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bC" = (/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bD" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bE" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bF" = (/obj/effect/decal/remains,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bG" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bH" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bI" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bJ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bK" = (/obj/item/stack/rods,/obj/structure/girder,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bL" = (/obj/effect/decal/remains,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bM" = (/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bN" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bO" = (/obj/item/mecha_parts/part/gygax_right_arm,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bP" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bQ" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bR" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bS" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bT" = (/turf/simulated/wall,/area/submap/Rockybase) +"bU" = (/obj/structure/table/standard,/obj/item/device/kit/paint/gygax/darkgygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bV" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "I've decided to go forward and start some small scale tests of the Vicerator delivery grenades, Might as wall make sure they work like the real ones. There are a few Fauna areas nearbye and we're working to make sure the kinks in the code are worked out. Once we've made sure they stay flying we'll work on the IFF signals."; name = "V-Grenade Notice 2"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bW" = (/obj/structure/table/standard,/obj/random/toolbox,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bX" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bY" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "We've finally been able to get the Vicerator delivery grenades working, Took awhile to make sure the latching mechanism didn't fail but we're sure we've got it this time. Vel'Shem's worried about the miners having there own drone fab now but I say it's a small price to pay to keep the metal flowing, Especially since there telling us NT's starting to monopolize the metal rich parts."; name = "V-Grenade Notice 1"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bZ" = (/obj/structure/table/standard,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ca" = (/obj/structure/table/standard,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cb" = (/obj/structure/table/standard,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cc" = (/obj/structure/table/standard,/obj/machinery/light{dir = 1},/obj/item/weapon/circuitboard/mecha/gygax/main,/obj/item/weapon/circuitboard/mecha/gygax/peripherals,/obj/item/weapon/circuitboard/mecha/gygax/targeting,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cd" = (/obj/structure/door_assembly,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ce" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) +"cf" = (/obj/structure/table/standard,/obj/fiftyspawner/rods,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cg" = (/obj/machinery/vending/engivend,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ch" = (/obj/machinery/vending/tool,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ci" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cj" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ck" = (/obj/item/mecha_parts/part/gygax_torso,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cl" = (/obj/machinery/light{dir = 1},/obj/structure/closet/crate/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cm" = (/obj/structure/table/standard,/obj/structure/table/standard,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cn" = (/obj/structure/table/standard,/obj/item/clothing/mask/breath/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"co" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cp" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"cq" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"cr" = (/obj/structure/table/standard,/obj/item/device/mmi/digital/robot,/obj/item/weapon/stock_parts/capacitor/adv,/obj/item/weapon/stock_parts/scanning_module/adv,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cs" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ct" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cu" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/submap/Rockybase) +"cv" = (/obj/structure/door_assembly,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cw" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cx" = (/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) +"cy" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) +"cz" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor,/area/submap/Rockybase) +"cA" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) +"cB" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cC" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"cD" = (/obj/machinery/drone_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cE" = (/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cF" = (/obj/machinery/pros_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cG" = (/obj/structure/table/standard,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cH" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cJ" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cK" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/submap/Rockybase) +"cL" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cM" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cN" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) +"cO" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) +"cP" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) +"cQ" = (/obj/item/mecha_parts/part/gygax_armour,/turf/simulated/floor,/area/submap/Rockybase) +"cR" = (/obj/item/mecha_parts/chassis/gygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cS" = (/mob/living/simple_animal/hostile/mecha/malf_drone{name = "Autonomous Mechanized Drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cT" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cU" = (/obj/machinery/vending/robotics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cV" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/super; dir = 8; name = "Unknown APC"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cY" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cZ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/submap/Rockybase) +"da" = (/obj/item/mecha_parts/part/gygax_right_leg,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"db" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/mecha_parts/part/gygax_left_arm,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"dc" = (/obj/machinery/vending,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"de" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green,/turf/simulated/floor,/area/submap/Rockybase) +"df" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dg" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dh" = (/obj/structure/closet/secure_closet/hydroponics,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"di" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dj" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dk" = (/obj/structure/table/standard,/obj/item/stack/material/plasteel,/obj/item/stack/material/glass/reinforced,/obj/item/stack/material/phoron{amount = 25},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dl" = (/obj/structure/table/standard,/obj/item/stack/material/glass,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dm" = (/obj/structure/table/standard,/obj/item/mecha_parts/part/gygax_head,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dn" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"do" = (/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dp" = (/obj/item/weapon/surgical/surgicaldrill,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dq" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dr" = (/obj/item/clothing/suit/space/void/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ds" = (/obj/effect/decal/cleanable/dirt,/mob/living/bot/medbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dt" = (/obj/machinery/vending/hydroseeds,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (SOUTHWEST)"; icon_state = "bordercolor"; dir = 10},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"du" = (/obj/structure/closet/crate/secure/hydrosec,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (SOUTHEAST)"; icon_state = "bordercolor"; dir = 6},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dv" = (/obj/effect/decal/remains,/turf/template_noop,/area/template_noop) (1,1,1) = {" aaabababababababababababababababababababaaababababababababababababababababababababababababababababaa @@ -180,24 +188,24 @@ abadadafafafafafafagadadadafafafafafadadadadadadadadahahahahahahadadadadadadadad abadafafafafafafafafafafafafafafafafafadadadadadaiahahajahahahahahaiadadadadadafafafafafafafafafadab akadafafafafafafafafafafafafafafafafafafafafafalalamalalalalalanamalalafafafafafafafafafafafafafadab abadafafaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoapaqaqapaoaoaoaoaoaoaoaoaoaoaoaoaoafafafafadab -abadafaoaoarasataoauavawaxayayavazaAazavaBaoaoaCaDaEaFaoaGaGaoaHaIaJaKaLaMaoaGaNaoaOaPaoaoafafafadab -abafafaoaoaQasaRaoayayayayayayayayayayayayaoaoaSaGaGaTaoaUaGaoaVaWaGaGaGaXaoaGaYaoaGaZaoaoafafafadab -abafafaoaoaQasbaaoaybbayaybcayavbdavazavazaoaobeaGbfbgaoaGaGaobhbiaGaGaGaGbjbkblaoaGbmaoaoafafafadab -abafafaoaoasasasaoaoaobnaoaoaoaoaoaoaoaoaoaoaoaobnaoaoaoaqaqaoaoaoaoaobnaoaoaoaoaobobpaoaoafafafadab -abafafaoaoaobnaoaobqbrbrbrbrbsbrbrbrbrbtbrbsbrbrbrbrbrbrbrbrbrbrbsbrbrbrbrbububvaoaGbmaoaoafafafadab -abafafaoaoaUaGaGaGaGaGaGbwbxbxaGbybzaGaGaGaGaGaGaGaGaGaGbxaGaGaGaGaGaGaGaGbwbxbxbnaGbmaoaoafafafadab -abadafaoaoaobAaoaobBbCbCbDbDbDbCbCbCbEaGahbFbGbCbHbCbDbDbDbCbCbCbCbCbGbCbCbCbCbIaoaGbpaoaoafafafadab -abadafaoaobJasasaoaoaoaoaoaoaoaoaoaoaoahahaoaoaoaobKaoaoaoaobLaoaoaoaoaoaoaoaoaoaoaGbmaoaoafafafadab -abadafaoaobMbMasaobNbObPbQbRbSbTbUbVbWahbXbYaobZcaaGcbccaocdbLaGcecfcgbxaGaGaGchaoaGbmaoaoafafafadab -abadafaoaocibAcjaoaGaGaGaGaGaGaGaGaGbLbLahckaoaGaGclcmcnaocoaGbxbxcpcqcrcsctaGcuaoaGbpaoaoafafafaeab -abadafaoaobMbMcvaoaGcwaGaGcwaGaGcxaGcybLahczaocAbxcBcCcDaocEaGbxcFcGcHcIcGcJahaGaoaGbmaoaoafafadadab -abadafaoaocibAasaocAaGaGcKaGcLaGcMbxcMbLbLcNaocOcPcQcPcRaoaGaGbxcScIcIcGcsahbXaGaoaGcTaoaoafafadadab -abadafaoaobMbMcUaoaGcwaGaGahahbxbxbxbxaGaGcVaoaGaGcWcCcXaocYaGaGcZcGcrcrcrcrahbxaoaGdaaoaoafagadadab -abadafaoaocibAasaoaGaGaGaGaGaGbkdbaGdbaGaGcaaodcdddeaGdfaodgaGdhaGaGdictdidjbxdkaodldmaoaoafafadadab +abadafaoaoarasataoauavawaxayayavazaAaBavaCaoaoaDaEaFaGaoaHaHaoaIaJaKaLaMaNaoaOaPaoaQaRaoaoafafafadab +abafafaoaoaSasaTaoayayayayayayayayayayayayaoaoaUaHaHaVaoaWaHaoaXaYaZaHaHbaaoaObbaobcbdaoaoafafafadab +abafafaoaoaSasbeaoaybfayaybgayavbhavaBavazaoaobiaHbjbkaoaHaHaoblbmbnbnbobnbpbqbraobcbsaoaoafafafadab +abafafaoaoasasasaoaoaobtaoaoaoaoaoaoaoaoaoaoaoaobtaoaoaoaqaqaoaoaoaoaobtaoaoaoaoaobubvaoaoafafafadab +abafafaoaoaobtaoaobwbxbxbxbxbybxbxbxbxbzbxbybxbxbxbxbxbxbxbxbxbxbybxbxbxbxbAbAbBaobcbsaoaoafafafadab +abafafaoaoaWaHaHaHaHaHaHbCbDbDaHbEbFaHaHaHaHaHaHaHaHaHaHbDaHaHaHaHaHaHaHaHbCbDbDbtbcbsaoaoafafafadab +abadafaoaoaobGaoaobHbIbIbJbJbJbIbIbIbKaHahbLbMbIbNbIbJbJbJbIbIbIbIbIbMbIbIbIbIbOaobcbvaoaoafafafadab +abadafaoaobPasbQaoaoaoaoaoaoaoaoaoaoaoahahaoaoaoaobRaoaoaoaobSaoaoaoaoaoaoaoaoaoaobcbsaoaoafafafadab +abadafaoaobTbTasaobUbVbWbXbYbZcacbcccdahcecfaocgchaHcicjaockbSaHclcmcnbDaHaHaHcoaobcbsaoaoafafafadab +abadafaoaocpbGcqaoaHaHaHaHaHaHaHaHaHbSbSahcraoaHaHcsctcuaocvaHbDbDcwcxcyczcAaHcBaobcbvaoaoafafafaeab +abadafaoaobTbTcCaoaHcDaHaHcDaHaHcEaHcFbSahcGaocHbDcIcJcKaocLaHbDcMcNcOcPcNcQahaHaobcbsaoaoafafadadab +abadafaoaocpbGasaocHaHaHcRaHcSaHcTbDcTbSbScUaocVcWcXcWcYaoaHaHbDcZcPcPcNczahceaHaobcdaaoaoafafadadab +abadafaoaobTbTdbaoaHcDaHaHahahbDbDbDbDaHaHdcaoaHaHddcJdeaodfaHaHdgcNcycycycyahbDaobcdhaoaoafagadadab +abadafaoaocpbGasaoaHaHaHaHaHaHdidjaHdjaHaHchaodkdldmaHdnaodoaHdpaHaHdqcAdqdrbDdsaodtduaoaoafafadadab abadafafaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoafafadadadab abadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadadadab abadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadafafafadadadafafafafafafafadadadadab abadadafafafafafafafafafafafafagadadadafafafafafafadadadadadadadadadadadadadadadadadadadadadadadadab abadaeadadadadadadafafafafafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadab -aaabdnababababababababababababababababababaaababababababababababababababababakababababababdnabakabab +aaabdvababababababababababababababababababaaababababababababababababababababakababababababdvabakabab "} From 014ebdc2516d6683579d54f0c6f310e97f326cba Mon Sep 17 00:00:00 2001 From: Verkister Date: Tue, 20 Feb 2018 09:40:49 +0200 Subject: [PATCH 29/54] Preview background additions and a fix. -Fixes flat white background capitalization error. -Re-enables tunnel plating and reinforced floor. (turf versions now up to date) -Adds darker plating, ribbed techmaint tiles, and flat middle grey. -Tweaks their cycle order to cycle flats by shade, and then tiles by shade. --- .../preference_setup/general/03_body.dm | 2 +- icons/effects/128x48.dmi | Bin 1913 -> 2250 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index 73d91129e7..7b517a6ee0 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -4,7 +4,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O var/equip_preview_mob = EQUIP_PREVIEW_ALL var/icon/bgstate = "000" - var/list/bgstate_options = list("000", "fff", "steel", "white") + var/list/bgstate_options = list("000", "midgrey", "FFF", "white", "steel", "techmaint", "dark", "plating", "reinforced") /datum/category_item/player_setup_item/general/body name = "Body" diff --git a/icons/effects/128x48.dmi b/icons/effects/128x48.dmi index 71038ffdbf893598f9f9ae3f68481f33e5513905..b5dcca7e35618b6514eda0c71d647523157c856c 100644 GIT binary patch delta 1967 zcmZ8idpOg58~@Eh>dJJYlv#=>A?GzRF&ZXpW$%FoJ&p%IqV^f zIfWi2haoX@j8wwr5Sr;7?|QGU_mB6F?{#1I_qy-mE@Oqf&l>F zq3uKxGnTB*qFGy8TUc0N@op%43>xF);Ec1dvORa+@;uT?-x!WST3MknbUHnZ6v~K{ z%ade*NG^_80Qr^YBXJ5TI6TSPJJc)0?+(fDb`SuNv+ut@3yIQGke;d+AKb$)QkGRz z0w0nQLH3w`Lur1dByTK9W5#=KEq#d?>*ml{4Mt3@rG!W+^=w9c=4zWit6;V=ZKkCE z6d?bnu%tg$e@_>T4PlHN5?_{$uZAFQ2oD4neYXRtmG#B87TXB?6Z<|eXmN`AoT^;~Mtk_1Y z)U>SXnM8+Bv;ae%*47>QUfP2`2&}|_-jf}DKQUm8xhX97Rz+T^Fl(OZ;-7)zm)W(= zJsY5#>s=q3B#+hka|s`ESt5@zb*5|SYAyC!P{6QTH&cUoT&hwwb>RT<%;LZR80;XVo|#k(Hh8z6;s@4 zYq$q61-=(J7iIXI>Tzg?xEIArg%+hPAfN6ut&^ip<E!VEPC@v};gzA#Wmdff#ev+$kf^yl)xD^QcRYbe9Ddt`n73%DP@0t9fI z!AKgg3GP>2wptRtSEX;!RU=H;HIx)pDh<&@bIM^@+?Y`VsK|Op(3)(X1t11hyX+Bz zzCkpfTim#}B(5-^w$wFVUt@m=x>q`(hs)=7X}s<@J_m4l1YLm+^ z{dMA4-GIkUp6Nx5p((7`FY;ZuM{^azxA3 zAIYuz_#r6A0kml`!2~ z^auRo9h$Nwh?eK;`v90N@gX;;uJ&oIIASUU?>B*r=S?fP7l+?!@hz4uF~ zB?=*9Gzp9^sy9_i4&0DYW`ela1pLdbGHK|9~Dp#|d2*Su+>>9&CMqe!Fa_T2<1b+pJ z`JiOCFu4l2KkJl(4}ZPyzuzSCw!vLncH`^hK`~g**lI4g{*$rK=A)U+DBQ>iN4x~0 z!|wTv+y0*Wag92H?y_m(4-M=UA*7Y7QS^^Vdeiv?Dpe`V@}}2i37mN*^M!NEG5)y3 zi;kEB#TB0?$UK2ObwGmYH^_hWb>X*me!Kk=p#lH9+8MV9*%+%9&y1v4%BrR~$twIl zGPFn=z;*kppp>w-vDwWL2!_Ypw%DSOiRl&6hFQ9#cXs3Ux$2*Ykjkl-G$01BZsl;q z2|w=`teIsesE2I>&_#VJOt$4r{QdQ=p0_f| z*2uXZ^r((4P~g9{D*4%w_~66}%RnIn$b#uxS_5jpUiwbtj=+!|fn<$u&5D|rjoA3+ z&ZO?Us>|$O>?Q7Og-#u5eVZ%w4*Xb7O-cbI>E>5jW!v7$=`7eL`1^z3GYdga@9vVU ylB}t>zELqi#opyy-?9zk{~KQVFg+L2y4{jkKtt^oDoMUm0F83A{`sQ&=OhQQGP delta 1702 zcmbu8{Xf$S8^^!97du6U9w?$jG9|S#=bV|jZ^LxV!#s>UMaazNshfHF4$)DEV#{6| z;v70NQ*-F1bv(>{Of^x=DQ7uKvr%+7ressjx?kr%xUXNX*XQ%Pez>mJ=Xy&`){U;2 z8HvAu0st_D^b6LtJ5_f70WV}_I@k<6(Md>F5P=9_Rg;N2!O9ILWqBrK#%Cm_WhK+7 z0FYBh3{A_pu(nD}`}5r_;`C9(=%dHP_7LYW*cD&peyu#js^kW|fK69S^>UWs^wM+lD3 zp(n579`YTwT)!t0nFPnj#xhPBs=1yrP-+0H7zsdwK-t)V+;J&6B$t z+a9HrbrEv6)|~qnP;1UjskF`RomOsc3ZF-LP<(tbEL>qO5{?g04d>Y2`nNLGt-d#} zU-EM&4}8zRUr!ZUaoA2m(M%!hsj9XbMrn8B zp_<-UhAAx0VuO{5?hj^HKX{ot&#z}llE}3YH^bZ*hjd$X{mR|x`1t0TP24Ho01Op7 zSx|Gw#IbNn|P+C@kS$_mSbQyGh6&$bwm^GH=R7G$haJTHNsUmiKNKUV=lDhE;f zcdU9K_EJWZH8z@7yEZARardMxqK;c&Q`FEiZC3uBX@A)ELJEi`_3mr1FM7Aw)6Z_(IOOR)PN#!&8sZH?~0N60*UvW7el$AV(K z20D5Sv)Lt?yP_T@UKPIj(CX%E$|R-K9p6xlPjD!f{bfAHFr~ioinS&JR_USctdb<2idmA22;TRpW7c zWOYjV4=Gc4r(VjC!_Je8U2`j&d%RP^*8pAT12Yc~p$ZKID+BQi z_tx`>M0MR}TKg!IpYXeA&>;%5;UKo(h2#Hx$s4S`A9y9f$-uGpSww0dgbrAHxg1@p z=#1V!Lh5T5wT(yC!l{6R^!40ALydoON>1;}eHt;aO$tMa8$z1A!yC7z%$|~7nP`ZS z=R*zmAK3Z*t*cK>?A}WdrzU!J)OgnLGCNcHM0g}`1SZsrtXi=h zv$)`f_0qjh;f$L51)u=_NsPG&^_ePpGHw#nfQQ&80oMeLsY=z z4_`uI$vd(osG1)4dN7ZDFBy>%qRUL2^QF_}48kdd(1+k>$P+eGLn^(Lq|a%7rb)-q zmd~)z{-%rZ30Q^w4bcCrYT_DfV~6>szP=#?;tc4E0doKv3;bVV*>Nw^19ota_}HaQ XVAT^nm|fn|4Co4vBY58aXKe9b-v=Gg From 6446328d09f80cc83aa95ba99851559bf634fb20 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 01:58:49 -0600 Subject: [PATCH 30/54] Slimes should no longer /list you. --- code/game/gamemodes/technomancer/assistance/golem.dm | 2 +- code/modules/blob2/mobs/spore.dm | 4 ++-- .../mob/living/simple_animal/animals/sif_wildlife/diyaab.dm | 2 +- .../mob/living/simple_animal/animals/sif_wildlife/savik.dm | 2 +- .../mob/living/simple_animal/animals/sif_wildlife/shantak.dm | 2 +- code/modules/mob/living/simple_animal/slime/combat.dm | 4 ++-- code/modules/xenobio2/mob/slime/slime.dm | 2 +- code/modules/xenobio2/mob/xeno.dm | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/code/game/gamemodes/technomancer/assistance/golem.dm b/code/game/gamemodes/technomancer/assistance/golem.dm index 33fc246911..6b8654e719 100644 --- a/code/game/gamemodes/technomancer/assistance/golem.dm +++ b/code/game/gamemodes/technomancer/assistance/golem.dm @@ -30,7 +30,7 @@ melee_damage_lower = 30 // It has a built in esword. melee_damage_upper = 30 attack_sound = 'sound/weapons/blade1.ogg' - attacktext = "slashed" + attacktext = list("slashed") friendly = "hugs" resistance = 0 melee_miss_chance = 0 diff --git a/code/modules/blob2/mobs/spore.dm b/code/modules/blob2/mobs/spore.dm index 3e68344c8b..e23b96d8aa 100644 --- a/code/modules/blob2/mobs/spore.dm +++ b/code/modules/blob2/mobs/spore.dm @@ -12,7 +12,7 @@ melee_damage_lower = 2 melee_damage_upper = 4 layer = MOB_LAYER + 0.2 // Over the blob. - attacktext = "slams into" + attacktext = list("slams into") attack_sound = 'sound/effects/slime_squish.ogg' emote_see = list("sways", "inflates briefly") var/mob/living/carbon/human/infested = null // The human this thing is totally not making into a zombie. @@ -97,7 +97,7 @@ melee_damage_lower += 8 // 10 total. melee_damage_upper += 11 // 15 total. emote_see = list("shambles around", "twitches", "stares") - attacktext = "claws" + attacktext = list("claws") H.forceMove(src) infested = H diff --git a/code/modules/mob/living/simple_animal/animals/sif_wildlife/diyaab.dm b/code/modules/mob/living/simple_animal/animals/sif_wildlife/diyaab.dm index 5e21308410..a39694d02c 100644 --- a/code/modules/mob/living/simple_animal/animals/sif_wildlife/diyaab.dm +++ b/code/modules/mob/living/simple_animal/animals/sif_wildlife/diyaab.dm @@ -18,7 +18,7 @@ melee_damage_lower = 1 melee_damage_upper = 8 - attacktext = "gouged" + attacktext = list("gouged") cold_damage_per_tick = 0 speak_chance = 5 diff --git a/code/modules/mob/living/simple_animal/animals/sif_wildlife/savik.dm b/code/modules/mob/living/simple_animal/animals/sif_wildlife/savik.dm index c8b6bd7570..75ebd22bd1 100644 --- a/code/modules/mob/living/simple_animal/animals/sif_wildlife/savik.dm +++ b/code/modules/mob/living/simple_animal/animals/sif_wildlife/savik.dm @@ -17,7 +17,7 @@ melee_damage_lower = 15 melee_damage_upper = 25 - attacktext = "mauled" + attacktext = list("mauled") cold_damage_per_tick = 0 speak_chance = 5 diff --git a/code/modules/mob/living/simple_animal/animals/sif_wildlife/shantak.dm b/code/modules/mob/living/simple_animal/animals/sif_wildlife/shantak.dm index fe3865e4ea..65db039108 100644 --- a/code/modules/mob/living/simple_animal/animals/sif_wildlife/shantak.dm +++ b/code/modules/mob/living/simple_animal/animals/sif_wildlife/shantak.dm @@ -17,7 +17,7 @@ melee_damage_lower = 3 melee_damage_upper = 12 - attacktext = "gouged" + attacktext = list("gouged") cold_damage_per_tick = 0 speak_chance = 5 diff --git a/code/modules/mob/living/simple_animal/slime/combat.dm b/code/modules/mob/living/simple_animal/slime/combat.dm index 5aee0a7a3a..d13e81cd30 100644 --- a/code/modules/mob/living/simple_animal/slime/combat.dm +++ b/code/modules/mob/living/simple_animal/slime/combat.dm @@ -180,7 +180,7 @@ var/damage_to_do = rand(melee_damage_lower, melee_damage_upper) var/armor_modifier = abs((L.getarmor(null, "bio") / 100) - 1) - L.attack_generic(src, damage_to_do, attacktext) + L.attack_generic(src, damage_to_do, pick(attacktext)) playsound(src, 'sound/weapons/bite.ogg', 75, 1) // Give the slime some nutrition, if applicable. @@ -199,7 +199,7 @@ if(istype(L,/obj/mecha)) var/obj/mecha/M = L - M.attack_generic(src, rand(melee_damage_lower, melee_damage_upper), attacktext) + M.attack_generic(src, rand(melee_damage_lower, melee_damage_upper), pick(attacktext)) /mob/living/simple_animal/slime/proc/post_attack(var/mob/living/L, var/intent = I_HURT) if(intent != I_HELP) diff --git a/code/modules/xenobio2/mob/slime/slime.dm b/code/modules/xenobio2/mob/slime/slime.dm index 48f5ce5756..44a1246e1d 100644 --- a/code/modules/xenobio2/mob/slime/slime.dm +++ b/code/modules/xenobio2/mob/slime/slime.dm @@ -22,7 +22,7 @@ Slime definitions, Life and New live here. var/shiny = 0 move_to_delay = 17 //Slimes shouldn't be able to go faster than humans. default_chems = list("slimejelly" = 5) - attacktext = "absorbed some of" + attacktext = list("absorbed some of") response_help = "pats" response_disarm = "tries to stop" response_harm = "hits" diff --git a/code/modules/xenobio2/mob/xeno.dm b/code/modules/xenobio2/mob/xeno.dm index 979782e9bd..9a854e9d8e 100644 --- a/code/modules/xenobio2/mob/xeno.dm +++ b/code/modules/xenobio2/mob/xeno.dm @@ -12,7 +12,7 @@ Also includes Life and New desc = "Something's broken, yell at someone." melee_damage_lower = 0 melee_damage_upper = 0 - attacktext = "hit" + attacktext = list("hit") attack_sound = null friendly = "touches" environment_smash = 0 From dad162659a0688bffb2f0a6d384225dae6e3a10d Mon Sep 17 00:00:00 2001 From: Woodratt Date: Tue, 20 Feb 2018 00:59:30 -0800 Subject: [PATCH 31/54] New Cave PoIs - Addition of 6 new potential PoIs for the cave z-level. --- code/game/objects/random/random.dm | 344 +++++++++++++++++- html/changelogs/Woodrat - VaultPOIs.yml | 8 + .../surface_submaps/mountains/digsite.dmm | 63 ++++ .../surface_submaps/mountains/mountains.dm | 66 +++- .../mountains/mountains_areas.dm | 20 +- .../surface_submaps/mountains/vault1.dmm | 17 + .../surface_submaps/mountains/vault2.dmm | 16 + .../surface_submaps/mountains/vault3.dmm | 21 ++ .../surface_submaps/mountains/vault4.dmm | 22 ++ .../surface_submaps/mountains/vault5.dmm | 23 ++ 10 files changed, 586 insertions(+), 14 deletions(-) create mode 100644 html/changelogs/Woodrat - VaultPOIs.yml create mode 100644 maps/submaps/surface_submaps/mountains/digsite.dmm create mode 100644 maps/submaps/surface_submaps/mountains/vault1.dmm create mode 100644 maps/submaps/surface_submaps/mountains/vault2.dmm create mode 100644 maps/submaps/surface_submaps/mountains/vault3.dmm create mode 100644 maps/submaps/surface_submaps/mountains/vault4.dmm create mode 100644 maps/submaps/surface_submaps/mountains/vault5.dmm diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index ce04898700..7fcfcfa450 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -907,6 +907,21 @@ something, make sure it's not in one of the other lists.*/ prob(25);/obj/item/device/radio/headset/headset_com/alt, prob(25);/obj/item/device/radio/headset) +/obj/random/coin + name = "random coin" + desc = "This is a coin spawn." + icon = 'icons/misc/mark.dmi' + icon_state = "rup" + +/obj/random/coin/item_to_spawn() + return pick(prob(5);/obj/item/weapon/coin/silver, + prob(3);/obj/item/weapon/coin/iron, + prob(4);/obj/item/weapon/coin/gold, + prob(3);/obj/item/weapon/coin/phoron, + prob(1);/obj/item/weapon/coin/uranium, + prob(2);/obj/item/weapon/coin/platinum, + prob(1);/obj/item/weapon/coin/diamond) + /obj/random/rigsuit name = "Random rigsuit" desc = "This is a random rigsuit." @@ -921,6 +936,20 @@ something, make sure it's not in one of the other lists.*/ prob(3);/obj/item/weapon/rig/hazard, prob(1);/obj/item/weapon/rig/merc/empty) +/obj/random/landmine + name = "Random Land Mine" + desc = "This is a random land mine." + icon = 'icons/obj/weapons.dmi' + icon_state = "uglymine" + spawn_nothing_percentage = 25 + +/obj/random/landmine/item_to_spawn() + return pick(prob(30);/obj/effect/mine, + prob(25);/obj/effect/mine/frag, + prob(25);/obj/effect/mine/emp, + prob(10);/obj/effect/mine/stun, + prob(10);/obj/effect/mine/incendiary,) + var/list/random_junk_ var/list/random_useful_ /proc/get_random_useful_type() @@ -1123,16 +1152,307 @@ var/list/multi_point_spawns ) ) -/obj/random/landmine - name = "Random Land Mine" - desc = "This is a random land mine." - icon = 'icons/obj/weapons.dmi' - icon_state = "uglymine" - spawn_nothing_percentage = 25 +/obj/random/multiple/minevault + name = "random vault loot" + desc = "Loot for mine vaults." + icon = 'icons/misc/mark.dmi' + icon_state = "rup" -/obj/random/landmine/item_to_spawn() - return pick(prob(30);/obj/effect/mine, - prob(25);/obj/effect/mine/frag, - prob(25);/obj/effect/mine/emp, - prob(10);/obj/effect/mine/stun, - prob(10);/obj/effect/mine/incendiary,) \ No newline at end of file +/obj/random/multiple/minevault/item_to_spawn() + return pick( + prob(5);list( + /obj/item/clothing/mask/smokable/pipe, + /obj/item/weapon/reagent_containers/food/drinks/bottle/rum, + /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus, + /obj/item/weapon/flame/lighter/zippo, + /obj/structure/closet/crate/hydroponics + ), + prob(5);list( + /obj/item/weapon/pickaxe/drill, + /obj/item/clothing/suit/space/void/mining, + /obj/item/clothing/head/helmet/space/void/mining, + /obj/structure/closet/crate/engineering + ), + prob(5);list( + /obj/item/weapon/pickaxe/drill, + /obj/item/clothing/suit/space/void/mining/alt, + /obj/item/clothing/head/helmet/space/void/mining/alt, + /obj/structure/closet/crate/engineering + ), + prob(5);list( + /obj/item/weapon/reagent_containers/glass/beaker/bluespace, + /obj/item/weapon/reagent_containers/glass/beaker/bluespace, + /obj/item/weapon/reagent_containers/glass/beaker/bluespace, + /obj/structure/closet/crate/science + ), + prob(5);list( + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/structure/closet/crate/engineering + ), + prob(5);list( + /obj/item/weapon/pickaxe/drill, + /obj/item/clothing/glasses/material, + /obj/structure/ore_box, + /obj/structure/closet/crate + ), + prob(5);list( + /obj/item/weapon/reagent_containers/glass/beaker/noreact, + /obj/item/weapon/reagent_containers/glass/beaker/noreact, + /obj/item/weapon/reagent_containers/glass/beaker/noreact, + /obj/structure/closet/crate/science + ), + prob(5);list( + /obj/item/weapon/storage/secure/briefcase/money, + /obj/structure/closet/crate/freezer/rations + ), + prob(5);list( + /obj/item/clothing/accessory/tie/horrible, + /obj/item/clothing/accessory/tie/horrible, + /obj/item/clothing/accessory/tie/horrible, + /obj/item/clothing/accessory/tie/horrible, + /obj/item/clothing/accessory/tie/horrible, + /obj/item/clothing/accessory/tie/horrible, + /obj/structure/closet/crate + ), + prob(5);list( + /obj/item/weapon/melee/baton, + /obj/item/weapon/melee/baton, + /obj/item/weapon/melee/baton, + /obj/item/weapon/melee/baton, + /obj/structure/closet/crate + ), + prob(5);list( + /obj/item/clothing/under/shorts/red, + /obj/item/clothing/under/shorts/blue, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/item/weapon/melee/baton/cattleprod, + /obj/item/weapon/melee/baton/cattleprod, + /obj/item/weapon/cell/high, + /obj/item/weapon/cell/high, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/item/latexballon, + /obj/item/latexballon, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/item/toy/syndicateballoon, + /obj/item/toy/syndicateballoon, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/item/weapon/rig/industrial/equipped, + /obj/item/weapon/storage/bag/ore, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/kitty, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/random/coin, + /obj/random/coin, + /obj/random/coin, + /obj/random/coin, + /obj/random/coin, + /obj/structure/closet/crate/plastic + ), + prob(2);list( + /obj/random/multiple/voidsuit, + /obj/random/multiple/voidsuit, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/clothing/suit/space/syndicate/black/red, + /obj/item/clothing/head/helmet/space/syndicate/black/red, + /obj/item/clothing/suit/space/syndicate/black/red, + /obj/item/clothing/head/helmet/space/syndicate/black/red, + /obj/item/weapon/gun/projectile/automatic/mini_uzi, + /obj/item/weapon/gun/projectile/automatic/mini_uzi, + /obj/item/ammo_magazine/m45uzi, + /obj/item/ammo_magazine/m45uzi, + /obj/item/ammo_magazine/m45uzi/empty, + /obj/item/ammo_magazine/m45uzi/empty, + /obj/structure/closet/crate/plastic + ), + prob(2);list( + /obj/item/clothing/suit/ianshirt, + /obj/item/clothing/suit/ianshirt, + /obj/item/weapon/bedsheet/ian, + /obj/structure/closet/crate/plastic + ), + prob(2);list( + /obj/item/clothing/suit/armor/vest, + /obj/item/clothing/suit/armor/vest, + /obj/item/weapon/gun/projectile/garand, + /obj/item/weapon/gun/projectile/garand, + /obj/item/ammo_magazine/m762garand, + /obj/item/ammo_magazine/m762garand, + /obj/structure/closet/crate/plastic + ), + prob(2);list( + /obj/mecha/working/ripley/mining + ), + prob(2);list( + /obj/mecha/working/hoverpod/combatpod + ), + prob(2);list( + /obj/item/weapon/pickaxe/silver, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/drill, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/jackhammer, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/diamond, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/diamonddrill, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/gold, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/plasmacutter, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/material/sword/katana, + /obj/item/weapon/material/sword/katana, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/item/weapon/material/sword, + /obj/item/weapon/material/sword, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/clothing/mask/balaclava, + /obj/item/weapon/material/star, + /obj/item/weapon/material/star, + /obj/item/weapon/material/star, + /obj/item/weapon/material/star, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/weed_extract, + /obj/item/xenos_claw, + /obj/structure/closet/crate/science + ), + prob(1);list( + /obj/item/clothing/head/bearpelt, + /obj/item/clothing/under/soviet, + /obj/item/clothing/under/soviet, + /obj/item/weapon/gun/projectile/shotgun/pump/rifle/ceremonial, + /obj/item/weapon/gun/projectile/shotgun/pump/rifle/ceremonial, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/weapon/gun/projectile/revolver/detective, + /obj/item/weapon/gun/projectile/contender, + /obj/item/weapon/gun/projectile/p92x, + /obj/item/weapon/gun/projectile/derringer, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/weapon/melee/cultblade, + /obj/item/clothing/suit/cultrobes, + /obj/item/clothing/head/culthood, + /obj/item/device/soulstone, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/weapon/vampiric, + /obj/item/weapon/vampiric, + /obj/structure/closet/crate/science + ), + prob(1);list( + /obj/item/weapon/archaeological_find + ), + prob(1);list( + /obj/item/weapon/melee/energy/sword, + /obj/item/weapon/melee/energy/sword, + /obj/item/weapon/melee/energy/sword, + /obj/item/weapon/shield/energy, + /obj/item/weapon/shield/energy, + /obj/structure/closet/crate/science + ), + prob(1);list( + /obj/item/weapon/storage/backpack/clown, + /obj/item/clothing/under/rank/clown, + /obj/item/clothing/shoes/clown_shoes, + /obj/item/device/pda/clown, + /obj/item/clothing/mask/gas/clown_hat, + /obj/item/weapon/bikehorn, + /obj/item/toy/waterflower, + /obj/item/weapon/pen/crayon/rainbow, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/clothing/under/mime, + /obj/item/clothing/shoes/black, + /obj/item/device/pda/mime, + /obj/item/clothing/gloves/white, + /obj/item/clothing/mask/gas/mime, + /obj/item/clothing/head/beret, + /obj/item/clothing/suit/suspenders, + /obj/item/weapon/pen/crayon/mime, + /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/weapon/storage/belt/champion, + /obj/item/clothing/mask/luchador, + /obj/item/clothing/mask/luchador/rudos, + /obj/item/clothing/mask/luchador/tecnicos, + /obj/structure/closet/crate + ) + ) \ No newline at end of file diff --git a/html/changelogs/Woodrat - VaultPOIs.yml b/html/changelogs/Woodrat - VaultPOIs.yml new file mode 100644 index 0000000000..753cd53498 --- /dev/null +++ b/html/changelogs/Woodrat - VaultPOIs.yml @@ -0,0 +1,8 @@ + +author: Woodrat + +delete-after: True + +changes: + - rscadd: "Additions of 6 new POIs for the cave area." + diff --git a/maps/submaps/surface_submaps/mountains/digsite.dmm b/maps/submaps/surface_submaps/mountains/digsite.dmm new file mode 100644 index 0000000000..928a1a85ec --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/digsite.dmm @@ -0,0 +1,63 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/cave/digsite) +"c" = (/turf/simulated/wall/sandstone,/area/submap/cave/digsite) +"d" = (/obj/structure/boulder,/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"e" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"f" = (/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"g" = (/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"h" = (/obj/item/weapon/ore,/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"i" = (/obj/structure/bed/alien,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"j" = (/obj/structure/cult/talisman,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"k" = (/obj/machinery/artifact,/obj/structure/anomaly_container,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"l" = (/obj/structure/simple_door/sandstone,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"m" = (/obj/structure/loot_pile/surface/alien,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"n" = (/mob/living/simple_animal/tindalos,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"o" = (/obj/structure/closet/crate/secure/loot,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"p" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"q" = (/obj/effect/floor_decal/asteroid,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"r" = (/obj/structure/anomaly_container,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"s" = (/turf/simulated/wall,/area/submap/cave/digsite) +"t" = (/obj/item/frame/apc,/obj/item/weapon/module/power_control,/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"u" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"v" = (/obj/structure/table/steel,/obj/item/weapon/storage/excavation,/obj/item/device/measuring_tape,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"w" = (/obj/machinery/power/port_gen/pacman/super,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"x" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"y" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"z" = (/obj/structure/table/steel,/obj/item/weapon/folder,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"A" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"B" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"C" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"D" = (/obj/structure/table/steel,/obj/random/tech_supply,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"E" = (/obj/structure/table/rack,/obj/item/weapon/shovel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"F" = (/obj/structure/boulder,/obj/effect/decal/mecha_wreckage/ripley,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"G" = (/obj/structure/boulder,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"H" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"I" = (/obj/structure/table/steel,/obj/item/weapon/wrench,/obj/item/weapon/storage/box/samplebags,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"J" = (/obj/structure/table/steel,/obj/item/stack/flag/yellow,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"K" = (/obj/random/toolbox,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"L" = (/obj/structure/closet/crate,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"M" = (/obj/machinery/floodlight,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"N" = (/obj/structure/ore_box,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaa +aaabbbbbbbbbbbbbbbaa +aabccccccccdccccceea +abccffcfffghgcficcea +abcfffcffjggfcfffcea +abcfkflffggfffffmcea +abcfffcffffffgfffcea +abccffcffffffgnfccea +abbccccclccfhccggeea +abbbbboeffffepqeeeea +abbbbbbeeeeeeeeeeeea +abbbbbbpeeeeeqereeea +abbbbsteeuveeeerbeea +abbbbwxeyzAeqeBbbbea +abbbbCgeyDEeeeeFbbba +abeeGHgeqIJeeeqbbbba +aeeeKeeeeLMeeeNbbeaa +aaeeeeeeeeeeeeNeeeaa +aaaaaeeeeeeeeeeeeaaa +aaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/mountains.dm b/maps/submaps/surface_submaps/mountains/mountains.dm index 3bc4ef735e..2ca679c154 100644 --- a/maps/submaps/surface_submaps/mountains/mountains.dm +++ b/maps/submaps/surface_submaps/mountains/mountains.dm @@ -18,6 +18,12 @@ #include "ritual.dmm" #include "temple.dmm" #include "CrashedMedShuttle1.dmm" +#include "digsite.dmm" +#include "vault1.dmm" +#include "vault2.dmm" +#include "vault3.dmm" +#include "vault4.dmm" +#include "vault5.dmm" #endif // The 'mountains' is the mining z-level, and has a lot of caves. @@ -116,6 +122,32 @@ mappath = 'maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm' cost = 20 +/datum/map_template/surface/mountains/normal/digsite + name = "Dig Site" + desc = "A small abandoned dig site." + mappath = 'maps/submaps/surface_submaps/mountains/digsite.dmm' + cost = 10 + +/datum/map_template/surface/mountains/normal/vault1 + name = "Mine Vault 1" + desc = "A small vault with potential loot." + mappath = 'maps/submaps/surface_submaps/mountains/vault1.dmm' + cost = 5 + allow_duplicates = TRUE + +/datum/map_template/surface/mountains/normal/vault2 + name = "Mine Vault 2" + desc = "A small vault with potential loot." + mappath = 'maps/submaps/surface_submaps/mountains/vault2.dmm' + cost = 5 + allow_duplicates = TRUE + +/datum/map_template/surface/mountains/normal/vault3 + name = "Mine Vault 3" + desc = "A small vault with potential loot. Also a horrible suprise." + mappath = 'maps/submaps/surface_submaps/mountains/vault3.dmm' + cost = 15 + /************** * Deep Caves * **************/ @@ -150,4 +182,36 @@ name = "Cave Lake" desc = "A large underground lake." mappath = 'maps/submaps/surface_submaps/mountains/Cavelake.dmm' - cost = 20 \ No newline at end of file + cost = 20 + +/datum/map_template/surface/mountains/deep/vault1 + name = "Mine Vault 1" + desc = "A small vault with potential loot." + mappath = 'maps/submaps/surface_submaps/mountains/vault1.dmm' + cost = 5 + allow_duplicates = TRUE + +/datum/map_template/surface/mountains/deep/vault2 + name = "Mine Vault 2" + desc = "A small vault with potential loot." + mappath = 'maps/submaps/surface_submaps/mountains/vault2.dmm' + cost = 5 + allow_duplicates = TRUE + +/datum/map_template/surface/mountains/deep/vault3 + name = "Mine Vault 3" + desc = "A small vault with potential loot. Also a horrible suprise." + mappath = 'maps/submaps/surface_submaps/mountains/vault3.dmm' + cost = 15 + +/datum/map_template/surface/mountains/deep/vault4 + name = "Mine Vault 4" + desc = "A small xeno vault with potential loot. Also horrible suprises." + mappath = 'maps/submaps/surface_submaps/mountains/vault4.dmm' + cost = 20 + +/datum/map_template/surface/mountains/deep/vault5 + name = "Mine Vault 5" + desc = "A small xeno vault with potential loot. Also major horrible suprises." + mappath = 'maps/submaps/surface_submaps/mountains/vault5.dmm' + cost = 25 \ No newline at end of file diff --git a/maps/submaps/surface_submaps/mountains/mountains_areas.dm b/maps/submaps/surface_submaps/mountains/mountains_areas.dm index 163211555a..1e378ed7ca 100644 --- a/maps/submaps/surface_submaps/mountains/mountains_areas.dm +++ b/maps/submaps/surface_submaps/mountains/mountains_areas.dm @@ -49,4 +49,22 @@ name = "Abandoned Temple" /area/submap/CrashedMedShuttle - name = "Crashed Med Shuttle" \ No newline at end of file + name = "Crashed Med Shuttle" + +/area/submap/cave/digsite + name = "Dig Site" + +/area/submap/cave/vault1 + name = "Mine Vault" + +/area/submap/cave/vault2 + name = "Mine Vault" + +/area/submap/cave/vault3 + name = "Mine Vault" + +/area/submap/cave/vault4 + name = "Mine Vault" + +/area/submap/cave/vault5 + name = "Mine Vault" \ No newline at end of file diff --git a/maps/submaps/surface_submaps/mountains/vault1.dmm b/maps/submaps/surface_submaps/mountains/vault1.dmm new file mode 100644 index 0000000000..c1a5ddadd8 --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/vault1.dmm @@ -0,0 +1,17 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/simulated/wall,/area/submap/cave/vault1) +"c" = (/turf/simulated/floor/plating,/area/submap/cave/vault1) +"d" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating,/area/submap/cave/vault1) +"e" = (/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault1) + +(1,1,1) = {" +aaaaaaaaa +aabbbbbaa +abbcdcbba +abcccccba +abcceccba +abcccccba +abbcccbba +aabbbbbaa +aaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/vault2.dmm b/maps/submaps/surface_submaps/mountains/vault2.dmm new file mode 100644 index 0000000000..0c8e85ce2c --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/vault2.dmm @@ -0,0 +1,16 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/simulated/wall,/area/submap/cave/vault2) +"c" = (/turf/simulated/floor/plating,/area/submap/cave/vault2) +"d" = (/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault2) + +(1,1,1) = {" +aaaaaaaaa +abbaaabba +abbbbbbba +aabcccbaa +aabcdcbaa +aabcccbaa +abbbbbbba +abbaaabba +aaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/vault3.dmm b/maps/submaps/surface_submaps/mountains/vault3.dmm new file mode 100644 index 0000000000..b517d1cdee --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/vault3.dmm @@ -0,0 +1,21 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/simulated/wall,/area/submap/cave/vault3) +"c" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"d" = (/obj/structure/loot_pile/maint/technical,/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"e" = (/obj/effect/alien/weeds,/mob/living/simple_animal/hostile/alien/drone,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"f" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"g" = (/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"h" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"i" = (/obj/structure/bed/nest,/turf/simulated/floor/plating,/area/submap/cave/vault3) + +(1,1,1) = {" +aaaaaaaaa +aabbbbbaa +abbcdcbba +abefffgba +abgfhfgba +abgfffeba +abbigibba +aabbbbbaa +aaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/vault4.dmm b/maps/submaps/surface_submaps/mountains/vault4.dmm new file mode 100644 index 0000000000..7d5213916d --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/vault4.dmm @@ -0,0 +1,22 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"f" = (/obj/effect/alien/weeds,/mob/living/simple_animal/hostile/alien/drone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"i" = (/obj/effect/alien/weeds,/mob/living/simple_animal/hostile/alien,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"j" = (/obj/effect/alien/weeds,/obj/effect/alien/egg,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) + +(1,1,1) = {" +aaaaaaaaa +aabbcbbaa +abbdefbba +abdeeghba +aciejeica +abhgeedba +abbfedbba +aabbcbbaa +aaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/vault5.dmm b/maps/submaps/surface_submaps/mountains/vault5.dmm new file mode 100644 index 0000000000..1d4befc167 --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/vault5.dmm @@ -0,0 +1,23 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/obj/item/weapon/gun/projectile/p92x/large,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_animal/hostile/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"i" = (/obj/effect/alien/weeds,/obj/effect/alien/egg,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_animal/hostile/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) + +(1,1,1) = {" +aaaaaaaaa +aabbcbbaa +abbdefbba +abgeeehba +abiejeiba +abheeegba +abbkegbba +aabbcbbaa +aaaaaaaaa +"} From 0c0f09fe68dc2009b52bcc4df403a862453b32cd Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Tue, 20 Feb 2018 00:20:46 -0500 Subject: [PATCH 32/54] POLARIS: Fix several Destroy()s --- code/datums/EPv2.dm | 4 + code/datums/mixed.dm | 80 +++++++++++-------- code/datums/progressbar.dm | 6 +- .../devices/communicator/communicator.dm | 13 +-- .../objects/items/weapons/implants/implant.dm | 3 +- code/modules/mob/mob_planes.dm | 3 + code/modules/nano/modules/nano_module.dm | 4 + 7 files changed, 71 insertions(+), 42 deletions(-) diff --git a/code/datums/EPv2.dm b/code/datums/EPv2.dm index 37a1a0ba1f..a41175f424 100644 --- a/code/datums/EPv2.dm +++ b/code/datums/EPv2.dm @@ -40,6 +40,10 @@ var/global/list/all_exonet_connections = list() src.holder = holder ..() +/datum/exonet_protocol/Destroy() + remove_address() + holder = null + return ..() // Proc: make_address() // Parameters: 1 (string - used to make into a hash that will be part of the new address) diff --git a/code/datums/mixed.dm b/code/datums/mixed.dm index f0f0c70abd..191868e489 100644 --- a/code/datums/mixed.dm +++ b/code/datums/mixed.dm @@ -1,34 +1,46 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -/datum/data - var/name = "data" - var/size = 1.0 - - -/datum/data/function - name = "function" - size = 2.0 - - -/datum/data/function/data_control - name = "data control" - - -/datum/data/function/id_changer - name = "id changer" - - -/datum/data/record - name = "record" - size = 5.0 - var/list/fields = list( ) - - -/datum/data/text - name = "text" - var/data = null - - - -/datum/debug - var/list/debuglist +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +/datum/data + var/name = "data" + var/size = 1.0 + + +/datum/data/function + name = "function" + size = 2.0 + + +/datum/data/function/data_control + name = "data control" + + +/datum/data/function/id_changer + name = "id changer" + + +/datum/data/record + name = "record" + size = 5.0 + var/list/fields = list( ) + +// Mostly used for data_core records, but unfortuantely used some other places too. But mostly here, so lets make a good effort. +// TODO - Some machines/computers might be holding references to us. Lets look into that, but at least for now lets make sure that the manifest is cleaned up. +/datum/data/record/Destroy(var/force) + if(data_core.locked.Find(src)) + if(!force) + crash_with("Someone tried to qdel a record that was in data_core.locked [log_info_line(src)]") + return QDEL_HINT_LETMELIVE + data_core.locked -= src + data_core.medical -= src + data_core.general -= src + data_core.security -= src + . = ..() + +/datum/data/text + name = "text" + var/data = null + + + +/datum/debug + var/list/debuglist diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index bed0f33275..afcb65a8c1 100644 --- a/code/datums/progressbar.dm +++ b/code/datums/progressbar.dm @@ -22,8 +22,10 @@ /datum/progressbar/Destroy() if (client) client.images -= bar - qdel(bar) - . = ..() + qdel_null(bar) + user = null + client = null + return ..() /datum/progressbar/proc/update(progress) //world << "Update [progress] - [goal] - [(progress / goal)] - [((progress / goal) * 100)] - [round(((progress / goal) * 100), 5)]" diff --git a/code/game/objects/items/devices/communicator/communicator.dm b/code/game/objects/items/devices/communicator/communicator.dm index cac80c84d0..f809bcb9b2 100644 --- a/code/game/objects/items/devices/communicator/communicator.dm +++ b/code/game/objects/items/devices/communicator/communicator.dm @@ -287,17 +287,20 @@ var/global/list/obj/item/device/communicator/all_communicators = list() to_chat(voice, "\icon[src] Connection timed out with remote host.") qdel(voice) close_connection(reason = "Connection timed out") + + //Clean up all references we might have to others communicating.Cut() voice_requests.Cut() voice_invites.Cut() + node = null + + //Clean up references that might point at us all_communicators -= src processing_objects -= src listening_objects.Remove(src) - qdel(camera) - camera = null - if(exonet) - exonet.remove_address() - exonet = null + qdel_null(camera) + qdel_null(exonet) + return ..() // Proc: update_icon() diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 1d515e863b..d28779fc08 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -52,7 +52,9 @@ /obj/item/weapon/implant/Destroy() if(part) part.implants.Remove(src) + listening_objects.Remove(src) part = null + imp_in = null return ..() /obj/item/weapon/implant/attackby(obj/item/I, mob/user) @@ -82,7 +84,6 @@ /obj/item/weapon/implant/tracking/implanted(var/mob/source) processing_objects.Add(src) - listening_objects |= src return 1 /obj/item/weapon/implant/tracking/Destroy() diff --git a/code/modules/mob/mob_planes.dm b/code/modules/mob/mob_planes.dm index 048992c380..1252ed6649 100644 --- a/code/modules/mob/mob_planes.dm +++ b/code/modules/mob/mob_planes.dm @@ -94,6 +94,9 @@ var/invis_toggle = FALSE var/list/sub_planes +/obj/screen/plane_master/New() + ..(null) //Never be in anything ever. + /obj/screen/plane_master/proc/set_desired_alpha(var/new_alpha) if(new_alpha != alpha && new_alpha > 0 && new_alpha <= 255) desired_alpha = new_alpha diff --git a/code/modules/nano/modules/nano_module.dm b/code/modules/nano/modules/nano_module.dm index 0cdf451d6f..8ced14f4c5 100644 --- a/code/modules/nano/modules/nano_module.dm +++ b/code/modules/nano/modules/nano_module.dm @@ -5,6 +5,10 @@ /datum/nano_module/New(var/host) src.host = host +/datum/nano_module/Destroy() + host = null + return ..() + /datum/nano_module/nano_host() return host ? host : src From 2d192edeb7e2630fee598881553a319e4959f999 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Tue, 20 Feb 2018 00:18:56 -0500 Subject: [PATCH 33/54] POLARIS?: Attempt to find the source of qdel'd images --- code/controllers/subsystems/garbage.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/controllers/subsystems/garbage.dm b/code/controllers/subsystems/garbage.dm index 34b32d5873..32c1e37a6e 100644 --- a/code/controllers/subsystems/garbage.dm +++ b/code/controllers/subsystems/garbage.dm @@ -169,7 +169,12 @@ SUBSYSTEM_DEF(garbage) #endif var/type = D.type var/datum/qdel_item/I = items[type] - testing("GC: -- \ref[D] | [type] was unable to be GC'd --") + var/extrainfo = "--" + if(istype(D,/image)) + var/image/img = D + var/icon/ico = img.icon + extrainfo = "L:[img.loc] -- I:[ico] -- IS:[img.icon_state] --" + testing("GC: -- \ref[D] | [type] was unable to be GC'd [extrainfo]") I.failures++ if (GC_QUEUE_HARDDELETE) HardDelete(D) From 6a641f620e100d8177b290fe4870b3379aad08f4 Mon Sep 17 00:00:00 2001 From: zaredman Date: Tue, 20 Feb 2018 11:36:19 -0500 Subject: [PATCH 34/54] Fixes some tile overlays on z1 (#4886) * Fixes some tile overlays on z1 * More tile & floor fixes. --- maps/southern_cross/southern_cross-1.dmm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index cb16c6ce10..55424e7436 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -1022,8 +1022,8 @@ "atH" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) "atI" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 1},/obj/structure/table/glass,/obj/machinery/recharger,/obj/structure/closet/secure_closet/medical_wall/pills{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) "atJ" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/tech_supply,/obj/item/weapon/storage/toolbox/mechanical,/obj/random/powercell,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) -"atK" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) -"atL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"atK" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) +"atL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/tcomm/tcomstorage) "atN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/tcomm/tcomstorage) "atO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1086,7 +1086,7 @@ "auT" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) "auU" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/paleblue/bordercorner,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) "auV" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/obj/structure/closet/medical_wall{pixel_y = -31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"auW" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/brown/bordercorner{dir = 8},/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"auW" = (/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "auX" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/turf/simulated/floor,/area/tcomm/tcomstorage) "auY" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/tcomm/tcomstorage) "auZ" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1135,12 +1135,12 @@ "avQ" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/brown/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/brown/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avS" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"avT" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"avT" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avU" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/brown/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avV" = (/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/firstdeck/port) "avX" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"avY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"avY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avZ" = (/obj/machinery/camera/network/first_deck{c_tag = "First Deck - Port Hallway One"; dir = 1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awb" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) @@ -10673,7 +10673,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUarTaooajUarUarUarUarUarUaqXarVarWarXarYarZasaasbascaoyasdaoyaoyaoyaoyaseasfasgashaoGaoGaoGaoGasiacJaqYaqYacJasCaqYcwFaslasmasnasoaspalEalEasqalEasrakQakQakQakQastastastastastasuasvaswasxasyaszasAasBasuasEasDasGasFasIasHasLasJadcasLasLasLasLapkapkapkapkasKasNasMasUapqapqapqapqasOapqasPasQasRasSasTasLasVasXasWatSatSatSatSatSakzakXakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaafaaaaaaaaaasYasZaooajUarUarUarUarUarUataatbatcatdateatfatgathatiateatjathatkatbatlatmatnatoatpatpatpatqatratsattatuatvatwassatyatzatpatAatBatCatDatxaziatEatGatFatIatHatJayrastastastastastasuatMatNatOasyatPatQatRasuatUatTatWatVatYatXauaatZaucaubaueaudaugaufatVauhatYatYauiarJatVaujaulaukaugaumatVaunaugauoaupatVaurauqatYaveatSatSatSatSatSakzausakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafasYaooauuajUarUarUarUarUarUauvauwauxauyauyauzauAauAauBauCauDauAauEauAauAauFauGauHauAauAauCauAauAauEauAauIauJatLatKauAauMauAauAauNauOauAauKauPauLauRauQauTauSauUayrastastastastastasuauXauYauZavaavbavcavdasuavgavfaviavhavhavjavhavkavmavlavoavnavqavpavpavravpavpavtavsavpavpavravuavpavvavpavwavpavpavyavxavxavzawravAatSatSatSatSatSakzavBakXautaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaafaaaaaaaaaasYaooavCajUarUarUarUarUarUavDavEavFavGavHavIavJavKavLavMavNavOavEavEavPavQasfavRavEauVavSauWavTavKavUavVavWavXavYavZawaawbawcawdaweatDawfaziawgawiawhawkawjawlayrastastastastastasuawmawnawoasyavdawpawqasuawtawsawuasjawwawvawyawxawzaubawBawAawDawCawEaxjaxkawwawFarJasjawGawwawHawJawIasjawKawDawLawMasjawOawNawwaxpatSatSatSatSatSakzawPakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaafaaaaaaaaaasYaooavCajUarUarUarUarUarUavDavEavFavGavHavIavJavKavLavMavNavOavEavEavPavQasfavRavEauVavSauWavTavEavUavVavWavXavYavZawaawbawcawdaweatDawfaziawgawiawhawkawjawlayrastastastastastasuawmawnawoasyavdawpawqasuawtawsawuasjawwawvawyawxawzaubawBawAawDawCawEaxjaxkawwawFarJasjawGawwawHawJawIasjawKawDawLawMasjawOawNawwaxpatSatSatSatSatSakzawPakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaajUaooaooajUawQarUarUarUarUaqXawRawSaqYawTawUawVawWawXawVawYawVawVawVawVawZasfaxaaqYaqYaqYaqYaqYaqYaqYaqYaqYaxbaxcaqYaxdaxeaxfaxgaxhaxiaypaykayqazjaykaykaykaykayraxlastastastastasuaxmaxnaxoasyaszasAaszasuaxraxqaxuaxsasVaxyasLaxzaxvasLasLasLasLaxwaxwaxwaxwaxxaxIaxAaxJaxBaxBaxBaxBaxCaxBaxDaxEaxFaxGaxHaxKasVayJasWayKatSatSatSatSakzaxLakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUaxMaooajUajUajUajUajUajUaqXaqYaqYaqYaxNaooawVaxOaxPaxQaxRaxSaxPaxTawVaxUaxVaxWaxbaxXaxYaxZayaayaaybaycaydayeayfaxbarsarsaygayhayiayjaykaylaymaynayoaykazkazlayrayraysaytayuayrasuasuasuasuasuasuayvasuasuaywayxayyayzarIarIaxvayAayBayCayDayEayFaxwaKuayHaNfaxwazqarJazBaxBayLayMaxBayNayOayPaxBayQayRaySayTayTayTayUakzakzakzakzakzakzaqVakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaajUajUaooaooaooaooapHapHapHapHapHayVayWayWayXawVaxOaxPaxPayYaxPaxPaxTawVayZazaazaazbaxZaxZazcazcazcazcazcazcazcazdaxbaaaaaaazeazfazgazhazmaACaABaAEaADazmaznazoazpazCazrazsaztazuazvazwazxazyazzazAazJazOazzazDazEazFazGaaaaaaaxvazHayBazIazIazIazIazPazKazLazMazNaBNaBuaBuaxBazQazRazSayNazTazUaxBazVazWazXazYazZaAaaAbaAcaAdaAdaAeaqVaqVaqVakzakzaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 8712d7e902f824f2424ddafe391b02fd2fd6154c Mon Sep 17 00:00:00 2001 From: PrismaticGynoid Date: Tue, 20 Feb 2018 08:39:03 -0800 Subject: [PATCH 35/54] Two organ bugfixes (#4877) * Two organ bugfixes First, allows FBPs with synthetic brains (posis and drones) to actually die from massive brain damage. Before, although the damage would still affect them, robotic vital organs taking 60+ damage would never actually kill the owner. Second, stops the zombie organs bug from popping up in normal play. You were able to repair all the damage on an organ, but not the ORGAN_DEAD status, leading to "dead" organs that still functioned (and that you could never die from them taking damage). Now, repairing the damage surgically will remove that. * Repair for dead undamaged organs too --- code/modules/organs/organ.dm | 14 +++++++------- code/modules/surgery/organs_internal.dm | 7 ++++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 7f4599ecdd..29b98d2663 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -83,10 +83,9 @@ var/list/organ_cache = list() blood_DNA[dna.unique_enzymes] = dna.b_type /obj/item/organ/proc/die() - if(robotic >= ORGAN_ROBOT) - return + if(robotic < ORGAN_ROBOT) + status |= ORGAN_DEAD damage = max_damage - status |= ORGAN_DEAD processing_objects -= src if(owner && vital) owner.death() @@ -107,6 +106,11 @@ var/list/organ_cache = list() return if(preserved) return + + //check if we've hit max_damage + if(damage >= max_damage) + die() + //Process infections if(robotic >= ORGAN_ROBOT || (owner && owner.species && (owner.species.flags & IS_PLANT || (owner.species.flags & NO_INFECT)))) germ_level = 0 @@ -132,10 +136,6 @@ var/list/organ_cache = list() handle_rejection() handle_germ_effects() - //check if we've hit max_damage - if(damage >= max_damage) - die() - /obj/item/organ/examine(mob/user) ..(user) if(status & ORGAN_DEAD) diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 49fe150c4e..d54a4aff14 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -73,7 +73,7 @@ return var/is_organ_damaged = 0 for(var/obj/item/organ/I in affected.internal_organs) - if(I.damage > 0) + if(I && (I.damage > 0 || I.status == ORGAN_DEAD)) is_organ_damaged = 1 break return ..() && is_organ_damaged @@ -91,7 +91,7 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) for(var/obj/item/organ/I in affected.internal_organs) - if(I && I.damage > 0) + if(I && (I.damage > 0 || I.status == ORGAN_DEAD)) if(!(I.robotic >= ORGAN_ROBOT)) user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \ "You start treating damage to [target]'s [I.name] with [tool_name]." ) @@ -111,11 +111,12 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) for(var/obj/item/organ/internal/I in affected.internal_organs) - if(I && I.damage > 0) + if(I && (I.damage > 0 || I.status == ORGAN_DEAD)) if(!(I.robotic >= ORGAN_ROBOT)) user.visible_message("[user] treats damage to [target]'s [I.name] with [tool_name].", \ "You treat damage to [target]'s [I.name] with [tool_name]." ) I.damage = 0 + I.status = 0 if(I.organ_tag == O_EYES) target.sdisabilities &= ~BLIND if(I.organ_tag == O_LUNGS) From 3a34ee51c605bfa776c79e2eb828bc2f2fe17e23 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Tue, 20 Feb 2018 15:06:55 -0500 Subject: [PATCH 36/54] Fix name of design for analyzer --- code/modules/research/designs.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index a6e158befa..0723e48ec1 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -491,8 +491,8 @@ other types of metals and chemistry for reagents). build_path = /obj/item/roller/adv sort_string = "MBBAF" -/datum/design/item/medical/enhanced_analyzer - name = "enhanced health analyzer" +/datum/design/item/medical/advanced_analyzer + name = "advanced health analyzer" desc = "A prototype version of the regular health analyzer, able to distinguish the location of more serious injuries as well as accurately determine radiation levels." id = "advanced_analyzer" req_tech = list(TECH_MAGNET = 5, TECH_BIO = 6) From 0261cc4771178bf1bd91f22b9553ff27841dd13b Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 14:36:05 -0600 Subject: [PATCH 37/54] Explorer gasmasks can be equipped through their hoods (#4867) --- code/modules/clothing/masks/gasmask.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 299680b864..52e50216f3 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -73,7 +73,6 @@ icon_state = "explorer" item_state_slots = list(slot_r_hand_str = "gas", slot_l_hand_str = "gas") armor = list(melee = 10, bullet = 5, laser = 5,energy = 5, bomb = 0, bio = 50, rad = 0) - body_parts_covered = HEAD|FACE|EYES siemens_coefficient = 0.9 /obj/item/clothing/mask/gas/clown_hat From 25a1f47a30d26529b99bb712e0227e2771aa724f Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 14:36:22 -0600 Subject: [PATCH 38/54] Headset sprites, planetside headset functionality (#4869) --- code/datums/outfits/jobs/cargo.dm | 1 + .../objects/items/devices/radio/headset.dm | 40 +++--------------- .../crates_lockers/closets/secure/cargo.dm | 2 +- html/changelogs/Anewbe - Headsets.yml | 37 ++++++++++++++++ icons/mob/ears.dmi | Bin 13510 -> 15628 bytes maps/southern_cross/items/headset_sc.dm | 5 +-- 6 files changed, 46 insertions(+), 39 deletions(-) create mode 100644 html/changelogs/Anewbe - Headsets.yml diff --git a/code/datums/outfits/jobs/cargo.dm b/code/datums/outfits/jobs/cargo.dm index e8974f09f9..bbfe6f59f5 100644 --- a/code/datums/outfits/jobs/cargo.dm +++ b/code/datums/outfits/jobs/cargo.dm @@ -20,6 +20,7 @@ /decl/hierarchy/outfit/job/cargo/mining name = OUTFIT_JOB_NAME("Shaft miner") uniform = /obj/item/clothing/under/rank/miner + l_ear = /obj/item/device/radio/headset/headset_mine backpack = /obj/item/weapon/storage/backpack/industrial satchel_one = /obj/item/weapon/storage/backpack/satchel/eng id_type = /obj/item/weapon/card/id/cargo/mining diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 3b703f703b..01b52affc5 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -92,77 +92,66 @@ name = "security radio headset" desc = "This is used by your elite security force." icon_state = "sec_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_sec /obj/item/device/radio/headset/headset_sec/alt name = "security bowman headset" desc = "This is used by your elite security force." icon_state = "sec_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_sec /obj/item/device/radio/headset/headset_eng name = "engineering radio headset" desc = "When the engineers wish to chat like girls." icon_state = "eng_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_eng /obj/item/device/radio/headset/headset_eng/alt name = "engineering bowman headset" desc = "When the engineers wish to chat like girls." icon_state = "eng_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_eng /obj/item/device/radio/headset/headset_rob name = "robotics radio headset" desc = "Made specifically for the roboticists who cannot decide between departments." icon_state = "rob_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_rob /obj/item/device/radio/headset/headset_med name = "medical radio headset" desc = "A headset for the trained staff of the medbay." icon_state = "med_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_med /obj/item/device/radio/headset/headset_med/alt name = "medical bowman headset" desc = "A headset for the trained staff of the medbay." icon_state = "med_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_med /obj/item/device/radio/headset/headset_sci name = "science radio headset" desc = "A sciency headset. Like usual." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_sci /obj/item/device/radio/headset/headset_medsci name = "medical research radio headset" desc = "A headset that is a result of the mating between medical and science." icon_state = "med_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_medsci /obj/item/device/radio/headset/headset_com name = "command radio headset" desc = "A headset with a commanding channel." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_com /obj/item/device/radio/headset/headset_com/alt name = "command bowman headset" desc = "A headset with a commanding channel." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_com @@ -170,21 +159,18 @@ name = "colony director's headset" desc = "The headset of the boss." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/heads/captain/alt name = "colony director's bowman headset" desc = "The headset of the boss." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/heads/captain/sfr name = "SFR headset" desc = "A headset belonging to a Sif Free Radio DJ. SFR, best tunes in the wilderness." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway. @@ -206,105 +192,91 @@ name = "research director's headset" desc = "Headset of the researching God." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/rd /obj/item/device/radio/headset/heads/rd/alt name = "research director's bowman headset" desc = "Headset of the researching God." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/rd /obj/item/device/radio/headset/heads/hos name = "head of security's headset" desc = "The headset of the man who protects your worthless lifes." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/heads/hos/alt name = "head of security's bowman headset" desc = "The headset of the man who protects your worthless lifes." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/heads/ce name = "chief engineer's headset" desc = "The headset of the guy who is in charge of morons" icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/ce /obj/item/device/radio/headset/heads/ce/alt name = "chief engineer's bowman headset" desc = "The headset of the guy who is in charge of morons" icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/ce /obj/item/device/radio/headset/heads/cmo name = "chief medical officer's headset" desc = "The headset of the highly trained medical chief." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/cmo /obj/item/device/radio/headset/heads/cmo/alt name = "chief medical officer's bowman headset" desc = "The headset of the highly trained medical chief." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/cmo /obj/item/device/radio/headset/heads/hop name = "head of personnel's headset" desc = "The headset of the guy who will one day be Colony Director." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hop /obj/item/device/radio/headset/heads/hop/alt name = "head of personnel's bowman headset" desc = "The headset of the guy who will one day be Colony Director." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hop -/* + /obj/item/device/radio/headset/headset_mine name = "mining radio headset" - desc = "Headset used by miners. How useless. To access the mining channel, use :d." + desc = "Headset used by miners. Has inbuilt short-band radio for when comms are down." icon_state = "mine_headset" - item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_mine -*/ + adhoc_fallback = TRUE + ks2type = /obj/item/device/encryptionkey/headset_cargo + /obj/item/device/radio/headset/headset_cargo name = "supply radio headset" desc = "A headset used by the QM and his slaves." icon_state = "cargo_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_cargo /obj/item/device/radio/headset/headset_cargo/alt name = "supply bowman headset" desc = "A bowman headset used by the QM and his slaves." icon_state = "cargo_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_cargo /obj/item/device/radio/headset/headset_service name = "service radio headset" desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean." icon_state = "srv_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_service /obj/item/device/radio/headset/ert name = "emergency response team radio headset" desc = "The headset of the boss's boss." icon_state = "com_headset" - item_state = "headset" centComm = 1 // freerange = 1 ks2type = /obj/item/device/encryptionkey/ert @@ -313,7 +285,6 @@ name = "emergency response team bowman headset" desc = "The headset of the boss's boss." icon_state = "com_headset_alt" - item_state = "headset" // freerange = 1 ks2type = /obj/item/device/encryptionkey/ert @@ -324,7 +295,6 @@ name = "internal affair's headset" desc = "The headset of your worst enemy." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/mmi_radio diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index de7f85c91e..103867ef88 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -85,7 +85,7 @@ new /obj/item/weapon/storage/backpack/industrial(src) else new /obj/item/weapon/storage/backpack/satchel/eng(src) - new /obj/item/device/radio/headset/headset_cargo(src) + new /obj/item/device/radio/headset/headset_mine(src) new /obj/item/clothing/under/rank/miner(src) new /obj/item/clothing/gloves/black(src) new /obj/item/clothing/shoes/black(src) diff --git a/html/changelogs/Anewbe - Headsets.yml b/html/changelogs/Anewbe - Headsets.yml new file mode 100644 index 0000000000..1d61bcf8e1 --- /dev/null +++ b/html/changelogs/Anewbe - Headsets.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Headsets for jobs that spend a lot of time planetside can now function as local radios when comms are down." + - rscadd: "Most headsets now have on-mob sprites." diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi index 88caed94c8c442bf486201d0b35f15bfc21f2a32..cf2530e21929b2609d1b06b39c050667c68637a1 100644 GIT binary patch literal 15628 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 TgK zt>M~Ba<`N52Ey}hr=esZl5_bml%3gTqE@^|&$ka*Jyt0-gfO`Pe57(p|E0(~fHR2Q zTlr3HX8jC;gVhe09mcw-{co|)-=F*ZJ#(SNKT3iikQbk}8RA=r!iS0wkYzV&s$#@^ z%pTxh*C{6N6Np-yiulkkovQP=?Gw!X{MuoTZ^84a>+@5MwMu`Ic?~nS%t-4ah;&!g zzDH%H<7BA8%oIA3MyWEzw&z6jJpr}9NSE-Qyn=rWSN|N8;!eAQ2kO9FoR}3v%g0Al z>@)LK7^I1G+7xZ+abWgQL8XWiRZY?RC)PYoB>{oYx>q&p=vdEej{cguo8t)!)_3TU zx$7>O1OP+d3LEzql@r;T{Dn@F5BOEXq^^jvNM|1YkqZIL=cdy^5>gR#kC%Y z|_Bh!#&>r33KN&qP&#TaHS_CVyHGi=VFwl}w;Pp4>LnSi!R42c}`VL_PbSqQ% zc^u7BGP`VCW{$iqfQr+`EUs)M4x&Kk75qUXe{@=4_Q!XWE;1f zU#mik1ftUjr=k_UjYRRXO7+0JL%&wpI3ZixDDG3EO_Nz>@PgOeM`LbCTdA{QJvD1M z#HwtSRXAL^G7r9)66Pzw0`%bqH7e}hgBAq`;cH4V3?(vlRYDApjuadz7;(z-#m zti0Q>8gVQ>ftZm%FBxWU+P$G|^|2=V8J)IX%t&nyx7bsXTlknIb{r@+mA(QRE2kzTO#idr@BLF7^xwz`tm98N_R7Z!VNk3np4|V0 zO*?9e6-)i&!^y*(;$qM(M6Dkoab2TFYCSYkMi$#xU5x=!==}!{oPghW8~_SR)B`0a zCnF-nVE0$>=*;i^r&vOH{hAYKDMtW#wJFs_8R%~o#foU#o<6J%bl}fxZvDExG4X;| zdfhkjEbwZ9-Ws4vUk0O7fSZ3$I{TZu1>J1|ykK^Clrh`?@=53a*vWt7gUC82?@Y4A WE60{8D?o%G{ToI)#n&D@|Nj7oP1LRc literal 13510 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 bxQjyM=T%h2_)q{}1f-{ZU#sx;ld%5*TqIbY diff --git a/maps/southern_cross/items/headset_sc.dm b/maps/southern_cross/items/headset_sc.dm index bb9aa1e5f5..d575f3abc6 100644 --- a/maps/southern_cross/items/headset_sc.dm +++ b/maps/southern_cross/items/headset_sc.dm @@ -2,7 +2,6 @@ name = "pilot's headset" desc = "A headset used by pilots, has access to supply and explorer channels." icon_state = "pilot_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/pilot /obj/item/device/radio/headset/pilot/alt @@ -14,7 +13,7 @@ name = "explorer's headset" desc = "Headset used by explorers for exploring. Access to the explorer channel." icon_state = "exp_headset" - item_state = "headset" + adhoc_fallback = TRUE ks2type = /obj/item/device/encryptionkey/explorer /obj/item/device/radio/headset/explorer/alt @@ -26,7 +25,7 @@ name = "sar radio headset" desc = "A headset for search and rescue." icon_state = "sar_headset" - item_state = "headset" + adhoc_fallback = TRUE ks2type = /obj/item/device/encryptionkey/sar /obj/item/device/radio/headset/sar/alt From 67261d40f3d7b99c07e703f7e4c1d6f5e8a33c93 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 14:37:03 -0600 Subject: [PATCH 39/54] Adds planetside gun permits (#4879) --- .../clothing/under/accessories/permits.dm | 4 +++ .../Anewbe - Planetside Permits.yml | 36 +++++++++++++++++++ maps/southern_cross/job/outfits.dm | 6 ++++ .../southern_cross/structures/closets/misc.dm | 2 ++ 4 files changed, 48 insertions(+) create mode 100644 html/changelogs/Anewbe - Planetside Permits.yml diff --git a/code/modules/clothing/under/accessories/permits.dm b/code/modules/clothing/under/accessories/permits.dm index ea21d79669..c6170bfd61 100644 --- a/code/modules/clothing/under/accessories/permits.dm +++ b/code/modules/clothing/under/accessories/permits.dm @@ -34,6 +34,10 @@ name = "bar shotgun permit" desc = "A card indicating that the owner is allowed to carry a shotgun in the bar." +/obj/item/clothing/accessory/permit/gun/planetside + name = "planetside gun permit" + desc = "A card indicating that the owner is allowed to carry a firearm while on the surface." + /obj/item/clothing/accessory/permit/drone name = "drone identification card" desc = "A card issued by the EIO, indicating that the owner is a Drone Intelligence. Drones are mandated to carry this card within SolGov space, by law." diff --git a/html/changelogs/Anewbe - Planetside Permits.yml b/html/changelogs/Anewbe - Planetside Permits.yml new file mode 100644 index 0000000000..1b5b569f78 --- /dev/null +++ b/html/changelogs/Anewbe - Planetside Permits.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a Planetside Gun Permit item, specifying permission to possess a firearm on the planet's surface. Explorers should spawn with these by default, and a further two can be found in their gun locker." diff --git a/maps/southern_cross/job/outfits.dm b/maps/southern_cross/job/outfits.dm index d3ec9f553a..316c9d434c 100644 --- a/maps/southern_cross/job/outfits.dm +++ b/maps/southern_cross/job/outfits.dm @@ -17,6 +17,12 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go id_type = /obj/item/weapon/card/id/civilian/explorer id_pda_assignment = "Explorer" flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL + backpack_contents = list(/obj/item/clothing/accessory/permit/gun/planetside = 1) + +/decl/hierarchy/outfit/job/explorer2/post_equip(mob/living/carbon/human/H) + ..() + for(var/obj/item/clothing/accessory/permit/gun/planetside/permit in H.back.contents) + permit.set_name(H.real_name) /decl/hierarchy/outfit/job/explorer2/technician name = OUTFIT_JOB_NAME("Explorer Technician") diff --git a/maps/southern_cross/structures/closets/misc.dm b/maps/southern_cross/structures/closets/misc.dm index 77ecb795f3..43040e8657 100644 --- a/maps/southern_cross/structures/closets/misc.dm +++ b/maps/southern_cross/structures/closets/misc.dm @@ -37,6 +37,8 @@ // One spare cell per gun new /obj/item/weapon/cell/device/weapon(src) new /obj/item/weapon/cell/device/weapon(src) + // One spare gun permit per locker + new /obj/item/clothing/accessory/permit/gun/planetside(src) //Explorer Lockers From 9549d18c4efad3bc038c9f45b12501f6907e80af Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 14:37:19 -0600 Subject: [PATCH 40/54] Adds carbon pills to the NanoMed Plus (#4882) --- code/game/machinery/vending.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 6f6a4f04fb..77dbd46fad 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -862,7 +862,8 @@ /obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4, /obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe = 12, /obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2, - /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2) + /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2, + /obj/item/weapon/storage/pill_bottle/carbon = 2) contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6) idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. req_log_access = access_cmo From 8a3dcc5cc185177355c083eb1b34ed462ff3c021 Mon Sep 17 00:00:00 2001 From: Mechoid Date: Tue, 20 Feb 2018 12:58:13 -0800 Subject: [PATCH 41/54] Makes Mining Satchels brute-force their way out of lagging, minerborg prodding. --- .../objects/items/weapons/storage/bags.dm | 76 +++++++++++++++++++ code/modules/mining/satchel_ore_boxdm.dm | 10 ++- .../modules/mob/living/silicon/robot/robot.dm | 12 +++ 3 files changed, 94 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 165855e50e..259436e063 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -68,6 +68,9 @@ // ----------------------------- // Mining Satchel // ----------------------------- +/* + * Mechoid - Orebags are the most common quick-gathering thing, and also have tons of lag associated with it. Their checks are going to be hyper-simplified due to this, and their INCREDIBLY singular target contents. + */ /obj/item/weapon/storage/bag/ore name = "mining satchel" @@ -79,7 +82,80 @@ max_storage_space = ITEMSIZE_COST_NORMAL * 25 max_w_class = ITEMSIZE_NORMAL can_hold = list(/obj/item/weapon/ore) + var/stored_ore = list() + var/last_update = 0 +/obj/item/weapon/storage/bag/ore/remove_from_storage(obj/item/W as obj, atom/new_location) + if(!istype(W)) return 0 + + if(new_location) + if(ismob(loc)) + W.dropped(usr) + if(ismob(new_location)) + W.hud_layerise() + else + W.reset_plane_and_layer() + W.forceMove(new_location) + else + W.forceMove(get_turf(src)) + + W.on_exit_storage(src) + update_icon() + return 1 + +/obj/item/weapon/storage/bag/ore/gather_all(turf/T as turf, mob/user as mob, var/silent = 0) + var/success = 0 + var/failure = 0 + for(var/obj/item/weapon/ore/I in T) //Only ever grabs ores. Doesn't do any extraneous checks, as all ore is the same size. Tons of checks means it causes hanging for up to three seconds. + if(contents.len >= max_storage_space) + failure = 1 + break + I.forceMove(src) + success = 1 + if(success && !failure && !silent) + to_chat(user, "You put everything in [src].") + else if(success && (!silent || (silent && contents.len >= max_storage_space))) + to_chat(user, "You fill the [src].") + else if(!silent) + to_chat(user, "You fail to pick anything up with \the [src].") + +/obj/item/weapon/storage/bag/ore/examine(mob/user) + ..() + + if(!Adjacent(user)) //Can only check the contents of ore boxes if you can physically reach them. + return + + if(istype(user, /mob/living)) + add_fingerprint(user) + + if(!contents.len) + to_chat(user, "It is empty.") + return + + if(world.time > last_update + 10) + update_ore_count() + last_update = world.time + + to_chat(user, "It holds:") + for(var/ore in stored_ore) + to_chat(user, "- [stored_ore[ore]] [ore]") + return + +/obj/item/weapon/storage/bag/ore/open(mob/user as mob) //No opening it for the weird UI of having shit-tons of ore inside it. + if(world.time > last_update + 10) + update_ore_count() + last_update = world.time + examine(user) + +/obj/item/weapon/storage/bag/ore/proc/update_ore_count() //Stolen from ore boxes. + + stored_ore = list() + + for(var/obj/item/weapon/ore/O in contents) + if(stored_ore[O.name]) + stored_ore[O.name]++ + else + stored_ore[O.name] = 1 // ----------------------------- // Plant bag diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index e8d8981d3e..b904a7cfad 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -14,12 +14,15 @@ if (istype(W, /obj/item/weapon/ore)) user.remove_from_mob(W) src.contents += W - if (istype(W, /obj/item/weapon/storage)) + + else if (istype(W, /obj/item/weapon/storage)) var/obj/item/weapon/storage/S = W + if(!S.contents.len) + return S.hide_from(usr) for(var/obj/item/weapon/ore/O in S.contents) S.remove_from_storage(O, src) //This will move the item to this item's contents - user << "You empty the satchel into the box." + to_chat(user,"You empty the satchel into the box.") update_ore_count() @@ -62,13 +65,12 @@ user << "- [stored_ore[ore]] [ore]" return - /obj/structure/ore_box/verb/empty_box() set name = "Empty Ore Box" set category = "Object" set src in view(1) - if(!istype(usr, /mob/living/carbon/human)) //Only living, intelligent creatures with hands can empty ore boxes. + if(!istype(usr, /mob/living/carbon/human) && !istype(usr, /mob/living/silicon/robot)) //Only living, intelligent creatures with gripping aparatti can empty ore boxes. usr << "You are physically incapable of emptying the ore box." return diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 317b04bad5..2fb48b877b 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -885,6 +885,18 @@ cleaned_human.update_inv_shoes(0) cleaned_human.clean_blood(1) cleaned_human << "[src] cleans your face!" + + if((module_state_1 && istype(module_state_1, /obj/item/weapon/storage/bag/ore)) || (module_state_2 && istype(module_state_2, /obj/item/weapon/storage/bag/ore)) || (module_state_3 && istype(module_state_3, /obj/item/weapon/storage/bag/ore))) //Borgs and drones can use their mining bags ~automagically~ if they're deployed in a slot. Only mining bags, as they're optimized for mass use. + var/obj/item/weapon/storage/bag/ore/B = null + if(istype(module_state_1, /obj/item/weapon/storage/bag/ore)) //First orebag has priority, if they for some reason have multiple. + B = module_state_1 + else if(istype(module_state_2, /obj/item/weapon/storage/bag/ore)) + B = module_state_2 + else if(istype(module_state_3, /obj/item/weapon/storage/bag/ore)) + B = module_state_3 + var/turf/tile = loc + if(isturf(tile)) + B.gather_all(tile, src, 1) //Shhh, unless the bag fills, don't spam the borg's chat with stuff that's going on every time they move! return /mob/living/silicon/robot/proc/self_destruct() From d3cc476eb00edb6630f2265869653581295dd856 Mon Sep 17 00:00:00 2001 From: Mechoid Date: Tue, 20 Feb 2018 13:57:51 -0800 Subject: [PATCH 42/54] Un-fub comments. --- code/game/objects/items/weapons/storage/bags.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 259436e063..5b20553430 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -122,7 +122,7 @@ /obj/item/weapon/storage/bag/ore/examine(mob/user) ..() - if(!Adjacent(user)) //Can only check the contents of ore boxes if you can physically reach them. + if(!Adjacent(user)) //Can only check the contents of ore bags if you can physically reach them. return if(istype(user, /mob/living)) From cd8703d95ad362e25f3c4ede0d777aa7c5b0210f Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 18:08:00 -0600 Subject: [PATCH 43/54] Weakens the random mining radbursts --- code/modules/mining/mine_turfs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 2f81f1568a..3c2caa9b82 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -488,7 +488,7 @@ var/list/mining_overlay_cache = list() M.flash_eyes() if(prob(50)) M.Stun(5) - radiation_repository.flat_radiate(src, 25, 200) + radiation_repository.flat_radiate(src, 25, 100) if(prob(25)) excavate_find(prob(5), finds[1]) else if(rand(1,500) == 1) From 3fdafb7194f9e49481d42555f30a06d97ab62a02 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Tue, 20 Feb 2018 19:25:31 -0500 Subject: [PATCH 44/54] Rename medical scanners and update map --- code/game/objects/items/devices/scanners.dm | 8 ++++---- code/game/objects/items/weapons/storage/firstaid.dm | 4 ++-- code/modules/research/designs.dm | 8 ++++---- .../surface_submaps/mountains/CrashedMedShuttle1.dmm | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index ae255d2f7b..cb07bafb80 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -266,15 +266,15 @@ REAGENT SCANNER if(0) to_chat(usr, "The scanner will now perform a basic analysis.") -/obj/item/device/healthanalyzer/advanced //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff - name = "advanced health analyzer" +/obj/item/device/healthanalyzer/improved //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff + name = "improved health analyzer" desc = "A miracle of medical technology, this handheld scanner can produce an accurate and specific report of a patient's biosigns." advscan = 1 origin_tech = list(TECH_MAGNET = 5, TECH_BIO = 6) icon_state = "health1" -/obj/item/device/healthanalyzer/enhanced //reports all of the above, as well as radiation severity and minor brain damage - name = "enhanced health analyzer" +/obj/item/device/healthanalyzer/advanced //reports all of the above, as well as radiation severity and minor brain damage + name = "advanced health analyzer" desc = "An even more advanced handheld health scanner, complete with a full biosign monitor and on-board radiation and neurological analysis suites." advscan = 2 origin_tech = list(TECH_MAGNET = 6, TECH_BIO = 7) diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 929c55e561..53e73a66e2 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -132,7 +132,7 @@ /obj/item/weapon/surgical/FixOVein, /obj/item/stack/medical/advanced/bruise_pack, /obj/item/stack/nanopaste, - /obj/item/device/healthanalyzer/enhanced + /obj/item/device/healthanalyzer/advanced ) starts_with = list( @@ -146,7 +146,7 @@ /obj/item/weapon/surgical/bonegel, /obj/item/weapon/surgical/FixOVein, /obj/item/stack/medical/advanced/bruise_pack, - /obj/item/device/healthanalyzer/enhanced + /obj/item/device/healthanalyzer/advanced ) /obj/item/weapon/storage/firstaid/clotting diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 0723e48ec1..9d8088fe46 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -491,13 +491,13 @@ other types of metals and chemistry for reagents). build_path = /obj/item/roller/adv sort_string = "MBBAF" -/datum/design/item/medical/advanced_analyzer - name = "advanced health analyzer" +/datum/design/item/medical/improved_analyzer + name = "improved health analyzer" desc = "A prototype version of the regular health analyzer, able to distinguish the location of more serious injuries as well as accurately determine radiation levels." - id = "advanced_analyzer" + id = "improved_analyzer" req_tech = list(TECH_MAGNET = 5, TECH_BIO = 6) materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1000, "gold" = 1500) - build_path = /obj/item/device/healthanalyzer/advanced + build_path = /obj/item/device/healthanalyzer/improved sort_string = "MBBAG" /datum/design/item/implant diff --git a/maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm b/maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm index efcdbcc9f5..959a7b9aa1 100644 --- a/maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm +++ b/maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm @@ -106,7 +106,7 @@ "cb" = (/obj/machinery/iv_drip,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) "cc" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/masks,/obj/item/weapon/storage/box/gloves,/obj/random/medical,/obj/random/medical,/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) "cd" = (/obj/effect/spider/stickyweb,/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) -"ce" = (/obj/structure/table/standard,/obj/item/device/healthanalyzer/enhanced,/obj/random/firstaid,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ce" = (/obj/structure/table/standard,/obj/item/device/healthanalyzer/advanced,/obj/random/firstaid,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) "cf" = (/obj/structure/table/standard,/obj/item/weapon/storage/backpack/medic,/obj/random/medical/lite,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) "cg" = (/obj/structure/table/standard,/obj/effect/spider/stickyweb,/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) "ch" = (/obj/structure/girder,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) From 0302ab89ef44c92028d35e5f4284f1101ffc93b0 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 19:27:03 -0600 Subject: [PATCH 45/54] Simple animals shouldn't be hit twice per click --- code/modules/mob/living/simple_animal/simple_animal.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 173c2c8387..f3f7111d4c 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -642,7 +642,6 @@ if(istype(O, /obj/item/weapon/material/knife) || istype(O, /obj/item/weapon/material/knife/butch)) harvest(user) else - O.attack(src, user, user.zone_sel.selecting) ai_log("attackby() I was weapon'd by: [user]",2) if(O.force) react_to_attack(user) From 76fab07f5278b4c98924b744c40831be5d6962c1 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 20:58:36 -0600 Subject: [PATCH 46/54] Zheng Hu Improvements --- code/modules/organs/organ_icon.dm | 4 ++-- code/modules/organs/robolimbs.dm | 6 ++++-- .../cyberlimbs/zenghu/zenghu_main.dmi | Bin 1413 -> 1403 bytes 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 170475a208..8301b912cc 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -18,7 +18,7 @@ var/global/list/limb_icon_cache = list() h_col = null if(robotic >= ORGAN_ROBOT) var/datum/robolimb/franchise = all_robolimbs[model] - if(!(franchise && franchise.lifelike)) + if(!(franchise && franchise.skin_tone)) if(human.synth_color) s_col = list(human.r_synth, human.g_synth, human.b_synth) return @@ -36,7 +36,7 @@ var/global/list/limb_icon_cache = list() h_col = null if(robotic >= ORGAN_ROBOT) var/datum/robolimb/franchise = all_robolimbs[model] - if(!(franchise && franchise.lifelike)) + if(!(franchise && franchise.skin_tone)) return if(!isnull(dna.GetUIValue(DNA_UI_SKIN_TONE)) && (species.appearance_flags & HAS_SKIN_TONE)) s_tone = dna.GetUIValue(DNA_UI_SKIN_TONE) diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index e5988cf96c..ed736c94d3 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -40,6 +40,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ var/unavailable_at_chargen // If set, not available at chargen. var/unavailable_to_build // If set, can't be constructed. var/lifelike // If set, appears organic. + var/skin_tone // If set, applies skin tone rather than part color var/blood_color = "#030303" var/list/species_cannot_use = list("Teshari") var/list/monitor_styles //If empty, the model of limbs offers a head compatible with monitors. @@ -100,7 +101,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ icon = 'icons/mob/human_races/cyberlimbs/cybersolutions/cybersolutions_alt2.dmi' unavailable_to_build = 1 parts = list(BP_HEAD) - + /datum/robolimb/cybersolutions_alt1 company = "Cyber Solutions - Wight" desc = "This limb has cheap plastic panels mounted on grey metal." @@ -198,6 +199,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ icon = 'icons/mob/human_races/cyberlimbs/veymed/veymed_main.dmi' unavailable_to_build = 1 lifelike = 1 + skin_tone = 1 blood_color = "#CCCCCC" speech_bubble_appearance = "normal" @@ -220,7 +222,6 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ icon = 'icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_alt2.dmi' unavailable_to_build = 1 - /datum/robolimb/wardtakahashi_monitor company = "Ward-Takahashi Monitor" desc = "Ward-Takahashi's unique spin on a popular prosthetic head model. It looks sleek and modern." @@ -278,6 +279,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ desc = "This limb has a rubbery fleshtone covering with visible seams." icon = 'icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi' unavailable_to_build = 1 + skin_tone = 1 /obj/item/weapon/disk/limb name = "Limb Blueprints" diff --git a/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi b/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi index 8694f1b16fa323356ef05b81cca8e662c581af87..ebc3bb066c6764e727a0936714f61a2aaacdebfd 100644 GIT binary patch delta 1189 zcmV;W1X}xr3;PO?BtJG#OjJd{z`!jnEz_5LKR-Y6yPxQ;k3c{`CVv3`Y5)Kx|Nqzk z026=z&9dyKbm5K~#90?VZtf+aM4`%?i{eb(;47 zf3`x(OB;3;EcwWF?#)RavUp|;5>8cwE*Ag*004lmPP#+O+i2_G+tsG-rjs>)ou;W@ zV_1J6pBA5{W>;Ds=z!ep0V_G*m@3vE$tTIVG}EW{n`&aY*@wyLm|IRy?IrOzF3ko2O|?tq~VPR(g5In&EH zpY_M`Y3-&|`u2T5?NuZ;3#wa5$&FOP22wxFx7Xiti3c~Se}zzW zFDbbI!@PZ*di3LbJN>-{RR4P1wF88HoNuRp*FHe9QHl=muz}K#^X>F^HktaH;0Orc zUOb4dM8^@jFTf$EKyZNf9L2Yv0y_g7athphfX6L5@*NNW000000000000000007{* zd5-k~vW=`;_X-iWm3jL#b=IYRe^0(W0W60rxIQHOl~}UaXW>e8<=Yd$Rsw^dS)kEl z;kN0@cR&CD0000000000_&U^!rs|?Wcm&1i{_E>i zwG>;vWdnKds^ubIf4YCf*_YMN_6Gm}004MeqCd4e>Ut}yxPGqxRX^4*f2?QSpuS%I zYwZF2l|Wdp{=y-wpYLy1@n}c8&g+*eFy~d@H&_$o`9b|J_LhHMf95wgz+0Zv?AI^z z*2P}JZ2+^m9dNRLb$HM3zJ9GIRiE?f;a;>`mK900000e*gdg000000002~3v5c0-ioWp-K?gRqP^0RdUEK={$|@f zH~vOhX{oFKV6Qu&$>)MjYD2Vx{N*!8rGMG(%JQ1jcxn0aC2B2t4 z;MMC0lvug zssZHZ*fK@e0L}-6efZzn0U!SA6p;R*K^$PJeXJ+JrHS7GhxqF`K=`i)QxHJa>kyP^ z7A|@K&h+0MU@Cn9ThtM7rvL5$scf^5{unC$BzUs_!fN1F!+M>@!@tD*S$?ptyIH+i4HzJnf(IuHzWM;ofFWk~==VqJ7 z!JX!j3Ynr!DN52MTXEf1&2zEYhGu^I-Rh4z_xs~J-(TNLXL82$(iVSj(q6K^NF>5w zFynj0xtMj_H1-~13?mhY2NGbD2&$daz`mv(3 zUV<@NI|7Z{U4fI@Py6%7418_5>__DEvwx=Tl9!ARjRf;G<8o%N#I@h!ZS;dND<`pC zUu`Op0azc%(J}(BGr%tT*RJ2_WkM>05c#1p=l}-XJc;@h-~trXgmLFx$5lq5e)r65 zmSeT#{?g6yP1L3_JA5^VA5nw9w(qRcOFDbJ@?6=IgCp-DR`yiMc<2t-YO~-g z={Dwte@xqL&Er~p3;HTVc7<5=WHy@9h^>2Ds>oUvJ6RSR4gXamBRa*v`F0bdaw^c? zjdJG~l1^Z@c^W+GIKic9KG1Ps=PI%=_n%hyX$F^C3rM^OclH;BC~xHtmZ)bn*;b{? z_%3UUxoEmYRN+NzCWYzik}pLlJd3G9L>AIRW+~7jN+L65IQ#!Mf{8NJ8`SW)^@rN# ztT&}NtHnU#Ov4_qoSthKjy{^27x)Q#JMQ+tL)O%@Hb-V70_oFCsP1`qe2ArBez#IC zk*MrCPTfNJj0$YgM;fLLwKN#WiZ^NUw9+4csMR%%)+cSdOYcLf-u%|*p90(iy5F=7 z4=kd-c$|!=qO{^>Xxr)qjGF+oKw~vOucC>~W)@YzF>`4X;vsEeEjk9I1NYeq5_pt# zMe&}b-^;_<4#DR?^UEQm*~M^LPlwu%c5lp%8fH>;HV2bSD~$KqR4}WCp%~Y z_gV2t-bGQne%^L1XQ*LDy@67ohU*khetvqo4_%Y{?~vE19Sr!s>a)@tC-1%*T~yyY z+`zk5)jD{EmNE5IpD>Db*AovV^6T-pB&?URTp!0)`w<_#s;qiYn7l7OCpf92g|4-1 zwdz#e5xAmv_Tp(t&w;c=C%b`hPfSv0GUQ>H(3L?wmg9LTdm-#xxR#21>~0KS88HNI zczQ)LDdy8c+x(FNA6Qd#34tGn@O{jWO(nu?fCOI4Y=keI;F4`zH4Q8t3Bvj;2|RG!p%?ZStEp_=OwXB zCB=+q&#aU9lB)I#rr@bOXbwgRoi?p}!Nh{usKEI3XEZ&ec~sX`aP2{On~hlRwo&ge zQKGsJN;VpU Date: Tue, 20 Feb 2018 19:36:11 -0500 Subject: [PATCH 47/54] Adds holoplants, and to cargo Courtesy of CEV Eris SS13 server (plus a bunch of additional code to make them real machines) --- code/datums/supplypacks/misc.dm | 7 ++ code/game/objects/structures/holoplant.dm | 105 ++++++++++++++++++++++ icons/obj/holoplants.dmi | Bin 0 -> 1786 bytes polaris.dme | 1 + 4 files changed, 113 insertions(+) create mode 100644 code/game/objects/structures/holoplant.dm create mode 100644 icons/obj/holoplants.dmi diff --git a/code/datums/supplypacks/misc.dm b/code/datums/supplypacks/misc.dm index 5a3bb038bb..ab4a0163c1 100644 --- a/code/datums/supplypacks/misc.dm +++ b/code/datums/supplypacks/misc.dm @@ -70,3 +70,10 @@ cost = 10 containertype = "/obj/structure/closet/crate" containername = "Webbing crate" + +/datum/supply_packs/misc/holoplant + name = "Holoplant Pot" + contains = list() + cost = 15 + containertype = /obj/machinery/holoplant/shipped + containername = "holoplant" diff --git a/code/game/objects/structures/holoplant.dm b/code/game/objects/structures/holoplant.dm new file mode 100644 index 0000000000..1f6473ebdc --- /dev/null +++ b/code/game/objects/structures/holoplant.dm @@ -0,0 +1,105 @@ +/obj/machinery/holoplant + name = "holoplant" + desc = "One of those Ward-Takahashi holoplants! Give your space a bit of the comfort of being outdoors, by buying this blue buddy. A rugged case guarantees that your flower will outlive you, and variety of plant types won't let you to get bored along the way!" + icon = 'icons/obj/holoplants.dmi' + icon_state = "holopot" + light_color = "#3C94C5" + anchored = TRUE + idle_power_usage = 0 + active_power_usage = 5 + var/interference = FALSE + var/icon/plant = null + var/global/list/possible_plants = list( + "plant-1", + "plant-10", + "plant-09", + "plant-15", + "plant-13" + ) + +/obj/machinery/holoplant/initialize() + . = ..() + activate() + +/obj/machinery/holoplant/attack_hand(var/mob/living/user) + if(!istype(user) || interference) + return + + if(!anchored) + to_chat(user,"\The [src] must be anchored before activation!") + return + + if(!plant) + activate() + else + deactivate() + +/obj/machinery/holoplant/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(default_unfasten_wrench(user, O, 10)) + deactivate() + return + + . = ..() + +/obj/machinery/holoplant/proc/activate() + if(!anchored || stat & (NOPOWER|BROKEN)) + return + + plant = prepare_icon(emagged ? "emagged" : null) + overlays += plant + set_light(2) + use_power = 2 + +/obj/machinery/holoplant/proc/deactivate() + overlays -= plant + qdel_null(plant) + set_light(0) + use_power = 0 + +/obj/machinery/holoplant/power_change() + ..() + if(stat & NOPOWER) + deactivate() + else + activate() + +/obj/machinery/holoplant/proc/flicker() + interference = TRUE + spawn(0) + overlays -= plant + set_light(0) + sleep(rand(2,4)) + overlays += plant + set_light(2) + sleep(rand(2,4)) + overlays -= plant + set_light(0) + sleep(rand(2,4)) + overlays += plant + set_light(2) + interference = FALSE + +/obj/machinery/holoplant/proc/prepare_icon(var/state) + if(!state) + state = pick(possible_plants) + var/plant_icon = icon(icon, state) + return getHologramIcon(plant_icon, 0) + +/obj/machinery/holoplant/emag_act() + if(emagged) + return + + emagged = TRUE + if(plant) + deactivate() + activate() + +/obj/machinery/holoplant/Crossed(var/mob/living/L) + if(!interference && plant && istype(L)) + flicker() + + +/obj/machinery/holoplant/shipped + anchored = FALSE +/obj/machinery/holoplant/shipped/initialize() + . = ..() \ No newline at end of file diff --git a/icons/obj/holoplants.dmi b/icons/obj/holoplants.dmi new file mode 100644 index 0000000000000000000000000000000000000000..aada565b95af380201cba2409dd9a7e4c9480ee5 GIT binary patch literal 1786 zcmVHe>!kfzUQ!mrkI8Gq*%Mo_}s&agk+hWr_YZuyQ=+ zh&;W6z+GlKbiYD?uR)}Hm4KaqFe$b;BRF*FJ#DB`j?*@WZB46!idbB_P*pyG`ZPs< zHIZ(LYJg}{U^{c3Ib*y#Vv5pgYDck*Jd}N-a&S$`hEIB|z`(!&003rYW*QnAii(Q8 zy}e#uUMD9f6%`dqN=lIakf8to00DGTPE!Ct=GbNc005(UR9JLGWpiV4X>fFDZ*Bkp zc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LY zR3KBSASW@eMAuM>i!&v&s2C_>$i006QzZxabJ*UJC^ z1xrapK~!jg?OJ_X8c7V_nS`}?$`&n3PiSpxZLhuFJrxA`{$K2p%q#+%%qoa;e-Ix) zHanBw1rtO5amxUC^{_)+^oeE0&J5y>ui#2Ntc z$1R=FzzvTSkw`GE-Hj+NKw%*9P~sK{KosB_J`U>?UGdQh$YG1XCP1X6Lm57w4WQsL z&RbbPv>&};6#y-mGl$rq6xk)4Vw-Sa05q}N7`n3dmp1YQij6&I*Y4w3*0wnE8q zpfAut5`m$i2)xtXfMipcU{Zc7fEE)H zzQhEgfVBJ_0myEeyrFdqYXy)R?>WnErn$`-((-rl0pW_DALu{_I?yiE*6{4gZ>2;r z@gn@T8_dIrm*9(RdP`PJ#^Jz=@a1U8X|37g__Tms`2|%fE(swtNA?6e@mcc@xo$Iy zMy{E>y&=Ep9w+%S{*RMW3xHz~q$9I#2k2Ejv@7TC+b%$YFYQJD?A$B}9G8ubY8qVy zRB>1DDv;V$o&R`n5xPTz&owig_Ad>75vpqH9Gnpdh{LK!qkGl+#Bel2t&L9_pqkj5 z8l>^uo+DK6{!H+%x+7h{a=Zb6ZBLD{Ck?0ypnB7@f;|jX4b=QGd4evV`5#U`ngBe< zAT^JA7{0&mp|pmy3{=kv0j~zf0Hg7R#V0yHJ2%D`BA1PzXMyWaRcQSLMAJ-snZh9O zKM%fWe4?BFr9PfXnl@6D3gByXi{Sv|_PVFs!3!L9zlD3oZ@+7Ns9$zA_I7WBA;tl! zPgR2dxjRDm^8GJ+yd8z%J_CR>6_SXC*SDGp;u+3>&5+;+6(pJygNH&f5ka#93w#nV z8hlgvA5Ly!9#F@x&SYF??7eCzK|q>N`A`Q*Gt&BJ{Um=$mUhH`ahZ7iqiQU1m532G-G311r;h;*siweETGKWrdd>IgfmDKCu0$pNw4i?Mu`^1_ZU)>yOu0fk@^<62F4uHOYk-#1M%YHY8R$Z3KlpyUr1Z z0ziIck_kW!BAf810GI^I1z<9n2HGD4TzPNGzn{(mP4D-GAgO`LbT*$qJUqWoa*K}_Hk~CS&q7Td#c>v58(FYduTmTl+d-_}C127W+88wg>041W}g|mI;!Zrwd cPQ^LsKSt3+Kx?Ig3jhEB07*qoM6N<$g2o^#B>(^b literal 0 HcmV?d00001 diff --git a/polaris.dme b/polaris.dme index e026cf9978..4a785222d5 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1032,6 +1032,7 @@ #include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\gravemarker.dm" #include "code\game\objects\structures\grille.dm" +#include "code\game\objects\structures\holoplant.dm" #include "code\game\objects\structures\inflatable.dm" #include "code\game\objects\structures\janicart.dm" #include "code\game\objects\structures\kitchen_spike.dm" From 20c145aafc3445c830080268010e5c53c213b5ba Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Tue, 20 Feb 2018 23:29:21 -0500 Subject: [PATCH 48/54] Make spy bugs spawn spy cameras They are just using New() from their parent which spawned a normal camera. Now they store a type. --- code/game/objects/items/devices/spy_bug.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/devices/spy_bug.dm b/code/game/objects/items/devices/spy_bug.dm index 159134f83c..ce145fed9e 100644 --- a/code/game/objects/items/devices/spy_bug.dm +++ b/code/game/objects/items/devices/spy_bug.dm @@ -16,11 +16,12 @@ // var/obj/item/device/radio/bug/radio var/obj/machinery/camera/bug/camera + var/camtype = /obj/machinery/camera/bug /obj/item/device/camerabug/New() ..() // radio = new(src) - camera = new(src) + camera = new camtype(src) /obj/item/device/camerabug/attack_self(mob/user) if(user.a_intent == I_HURT) @@ -40,7 +41,7 @@ linkedmonitor.unpair(src) linkedmonitor = null qdel(camera) - camera = new(src) + camera = new camtype(src) to_chat(usr, "You turn the [src] off and on again, delinking it from any monitors.") /obj/item/brokenbug @@ -83,6 +84,7 @@ w_class = ITEMSIZE_TINY slot_flags = SLOT_EARS origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1, TECH_ILLEGAL = 3) + camtype = /obj/machinery/camera/bug/spy /obj/item/device/camerabug/examine(mob/user) . = ..(user, 0) From d5ac974d10f76814ff059f2d6916c1f6fb018cf6 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Wed, 21 Feb 2018 18:02:15 +1000 Subject: [PATCH 49/54] fixed typos (#4895) title --- code/game/objects/effects/decals/posters/polarisposters.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/effects/decals/posters/polarisposters.dm b/code/game/objects/effects/decals/posters/polarisposters.dm index 9295b754c9..958ceb66be 100644 --- a/code/game/objects/effects/decals/posters/polarisposters.dm +++ b/code/game/objects/effects/decals/posters/polarisposters.dm @@ -26,12 +26,12 @@ /datum/poster/pol_6 icon_state="polposter6" name = "Walk!" - desc = "This poster depicts a man walking, presumably to encourage you to not run in the halls." + desc = "This poster depicts a man walking, presumably to encourage you not to run in the halls." /datum/poster/pol_7 icon_state="polposter7" name = "Place your signs!" - desc = "A safety poster reminding custodial stuff to place wet floor signs where needed. This reminder's rarely heeded." + desc = "A safety poster reminding custodial staff to place wet floor signs where needed. This reminder's rarely heeded." /datum/poster/pol_8 icon_state="polposter8" From 5817e3da7b0e93dde9c7251aaa44abe8d84ebf19 Mon Sep 17 00:00:00 2001 From: Leshana Date: Wed, 21 Feb 2018 03:33:49 -0500 Subject: [PATCH 50/54] Makes electrochromatic glass buildable and programmable in game. (#4883) - Reinforced glass windows can be upgraded to electrochromatic by hitting them with a cable coil. The window must not be unpried from its frame to upgrade it (but it can remain anchored). - Windows can be linked with a tint button by using a multitool on the button to buffer it, then using it on the window to set the ID. The window must be completely unanchored to edit its id. - Window tint buttons can have thier ID set *once* with a multtool. - Inspired by Baystation12/Baystation12#20508 - Also adds a "full tile" polarized window type for use by mappers. --- code/game/objects/structures/window.dm | 54 +++++++++++++++++++ html/changelogs/Leshana-polarized-windows.yml | 4 ++ 2 files changed, 58 insertions(+) create mode 100644 html/changelogs/Leshana-polarized-windows.yml diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index f4f1deff28..eab6f203fc 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -294,6 +294,21 @@ if(is_fulltile()) mats.amount = 4 qdel(src) + else if(iscoil(W) && reinf && state == 0 && !istype(src, /obj/structure/window/reinforced/polarized)) + var/obj/item/stack/cable_coil/C = W + if (C.use(1)) + playsound(src.loc, 'sound/effects/sparks1.ogg', 75, 1) + user.visible_message( \ + "\The [user] begins to wire \the [src] for electrochromic tinting.", \ + "You begin to wire \the [src] for electrochromic tinting.", \ + "You hear sparks.") + if(do_after(user, 20 * C.toolspeed, src) && state == 0) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + var/obj/structure/window/reinforced/polarized/P = new(loc, dir) + P.health = health + P.state = state + P.anchored = anchored + qdel(src) else if(istype(W,/obj/item/frame) && anchored) var/obj/item/frame/F = W F.try_build(src) @@ -551,6 +566,28 @@ desc = "Adjusts its tint with voltage. Might take a few good hits to shatter it." var/id +/obj/structure/window/reinforced/polarized/full + dir = SOUTHWEST + icon_state = "fwindow" + maxhealth = 80 + +/obj/structure/window/reinforced/polarized/attackby(obj/item/W as obj, mob/user as mob) + if(ismultitool(W) && !anchored) // Only allow programming if unanchored! + var/obj/item/device/multitool/MT = W + // First check if they have a windowtint button buffered + if(istype(MT.connectable, /obj/machinery/button/windowtint)) + var/obj/machinery/button/windowtint/buffered_button = MT.connectable + src.id = buffered_button.id + to_chat(user, "\The [src] is linked to \the [buffered_button].") + return TRUE + // Otherwise fall back to asking them + var/t = sanitizeSafe(input(user, "Enter the ID for the window.", src.name, null), MAX_NAME_LEN) + if (!t && user.get_active_hand() != W && in_range(src, user)) + src.id = t + to_chat(user, "The new ID of \the [src] is [id]") + return TRUE + . = ..() + /obj/structure/window/reinforced/polarized/proc/toggle() if(opacity) animate(src, color="#FFFFFF", time=5) @@ -593,3 +630,20 @@ /obj/machinery/button/windowtint/update_icon() icon_state = "light[active]" + +/obj/machinery/button/windowtint/attackby(obj/item/W as obj, mob/user as mob) + if(ismultitool(W)) + var/obj/item/device/multitool/MT = W + if(!id) + // If no ID is set yet (newly built button?) let them select an ID for first-time use! + var/t = sanitizeSafe(input(user, "Enter an ID for \the [src].", src.name, null), MAX_NAME_LEN) + if (t && user.get_active_hand() != W && in_range(src, user)) + src.id = t + to_chat(user, "The new ID of \the [src] is [id]") + if(id) + // It already has an ID (or they just set one), buffer it for copying to windows. + to_chat(user, "You store \the [src] in \the [MT]'s buffer!") + MT.connectable = src + MT.update_icon() + return TRUE + . = ..() diff --git a/html/changelogs/Leshana-polarized-windows.yml b/html/changelogs/Leshana-polarized-windows.yml new file mode 100644 index 0000000000..6e3b59735f --- /dev/null +++ b/html/changelogs/Leshana-polarized-windows.yml @@ -0,0 +1,4 @@ +author: Leshana +delete-after: True +changes: + - rscadd: "Makes electrochromatic glass buildable and programmable in game. Use cable and multitool." From 64f09b0070cca40f307cd256769b8f493293e523 Mon Sep 17 00:00:00 2001 From: atermonera Date: Wed, 21 Feb 2018 00:39:49 -0800 Subject: [PATCH 51/54] Changelog update --- html/changelog.html | 18 +++++++++ html/changelogs/.all_changelog.yml | 18 +++++++++ html/changelogs/Anewbe - Headsets.yml | 37 ------------------- .../Anewbe - Planetside Permits.yml | 36 ------------------ html/changelogs/Anewbe - Prometheans.yml | 36 ------------------ html/changelogs/Anewbe - Suit Coolers.yml | 36 ------------------ html/changelogs/Leshana-polarized-windows.yml | 4 -- html/changelogs/Woodrat - VaultPOIs.yml | 8 ---- 8 files changed, 36 insertions(+), 157 deletions(-) delete mode 100644 html/changelogs/Anewbe - Headsets.yml delete mode 100644 html/changelogs/Anewbe - Planetside Permits.yml delete mode 100644 html/changelogs/Anewbe - Prometheans.yml delete mode 100644 html/changelogs/Anewbe - Suit Coolers.yml delete mode 100644 html/changelogs/Leshana-polarized-windows.yml delete mode 100644 html/changelogs/Woodrat - VaultPOIs.yml diff --git a/html/changelog.html b/html/changelog.html index c6a3dd049d..015c6a4d1d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,24 @@ -->

+

21 February 2018

+

Anewbe updated:

+
    +
  • Headsets for jobs that spend a lot of time planetside can now function as local radios when comms are down.
  • +
  • Most headsets now have on-mob sprites.
  • +
  • Added a Planetside Gun Permit item, specifying permission to possess a firearm on the planet's surface. Explorers should spawn with these by default, and a further two can be found in their gun locker.
  • +
  • Prometheans now react to water. Being soaked will stop their regen and deal minor toxin damage. Drinking or being injected with water will deal slightly more toxin damage.
  • +
  • Suit Coolers now properly cool FBPs in slightly burning rooms. If it gets too hot for your suit, you're still dead.
  • +
+

Leshana updated:

+
    +
  • Makes electrochromatic glass buildable and programmable in game. Use cable and multitool.
  • +
+

Woodrat updated:

+
    +
  • Additions of 6 new POIs for the cave area.
  • +
+

17 February 2018

Anewbe updated: