From d56274a4ab75124ea7e6687da9f845c331139767 Mon Sep 17 00:00:00 2001 From: ikarrus Date: Sat, 16 Aug 2014 00:40:37 -0600 Subject: [PATCH 1/8] Adds Deathsquad to Quick-Create Antagonist Menu -Pressing this button will spawn up to 5 death commandos on centcom with a customizable objective -Added a shuttle console to the ferry that, rather than moving the shuttle, will send a request to admins instead -Deathsquaddies get an energy shield -Deathsquad beret will no longer hide head, face, and hair --- _maps/map_files/tgstation.2.1.3.dmm | 14 ++- code/_globalvars/lists/mapping.dm | 1 + .../game/machinery/computer/buildandrepair.dm | 6 + code/game/objects/effects/landmarks.dm | 4 + code/modules/admin/topic.dm | 15 ++- code/modules/admin/verbs/debug.dm | 105 +++++++++--------- code/modules/admin/verbs/one_click_antag.dm | 96 +++++++++------- .../clothing/spacesuits/miscellaneous.dm | 1 + code/modules/shuttle/shuttle.dm | 25 ++++- 9 files changed, 157 insertions(+), 110 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index e22be902f75..8483ed5e38b 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -6920,7 +6920,7 @@ "cDd" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/transport1/centcom) "cDe" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "cDf" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry) -"cDg" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"cDg" = (/obj/effect/landmark{name = "Deathsquad"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) "cDh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "cDi" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) "cDj" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/transport1/centcom) @@ -8884,12 +8884,14 @@ "doR" = (/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "doS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; id_tag = "releaseatmo"; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "doT" = (/obj/machinery/atmospherics/unary/vent_scrubber{id_tag = "releaseatmo"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) +"doU" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) "doV" = (/obj/machinery/light/small{dir = 8},/obj/item/weapon/wrench,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/security/prison) "doW" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/security/prison) "doX" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/engineering) "doY" = (/obj/structure/window/reinforced,/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/prison) "doZ" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/security/armory) "dpa" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Prison Hallway West"; network = list("SS13","Prison")},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) +"dpb" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "dpd" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/closet/secure_closet/hos,/turf/simulated/floor/carpet,/area/security/hos) "dpe" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/wall,/area/security/prison) "dpf" = (/obj/structure/stool/bed,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) @@ -9559,11 +9561,11 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcBocBLcBMcBMcBocBNcBOcAncBPcBPcBPcBPcBOcBQcAlcAOcAOcAOcAOcBRcBScBRcBTcBJcBUcBUcBwcBVcBWcBXcATcBxcBAahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcBocBocBocBocBocBocBocBocBocBocBocBocBocBocBocBocBYcBocBocBQcBZcAncCacCbcCccBPcBZcBQcAlcBFcBHcCdcBFcBGcBGcBHcCecBkcBkcBkcCfcBXcBXcBXcATcBxcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcBocCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcChcCicCjcCkcBocBQcBZcClcAncAncAncCmcBZcBQcAlcCncCocCocCpcBRcBScBRcCqcATcCrcATcATcATcATcATcATcCscAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcBocCgcCtcCucCvcCtcCucCucCucCwcCucCucCxcCycCzcCicCjcCkcBocBQcBZcAycAncAncAncAzcCAcBQcAlcCncCocCocCpcBFcBGcBHcAQcBWcATcCBcCCcATcCBcCCcATcCDcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlcBocCtcCFcCGcCHcCIcCJcCJcCJcCJcCJcCJcCKcCLcCMcCicCjcCkcBocBQcCAcAycAncAncAncAtcAjcAXcAlcCNcCocCocCpcAlahlahlcCOcBWcATcCBcCCcATcCBcCCcATcCDcCOahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcCPcCPcCQcCPcCPcCPcCRcCScCPcCPcCPcCRcCPcCPcCPcCPcCPcCPcCRcCPcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocCwcCGcCTcCGcCUcCGcCGcCGcCGcCGcCGcCUcCVcCWcCicCjcCXcBocCYcBocAscAncAncAncAncAncAncCocCocCocCocCpcCZahlahlcDacBWcATcCBcCCcATcCBcCCcATcCDcDaahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCQcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCRcCPcCPcCPcCPcCPcCRcCPcCPcCPcCPcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocDbcDccCGcDdcCIcDecDecDecDecDecDecCKcCLcDfcCicCjcCjcDgcCjcCjcAncAncAncAncAncAncAncCocCocCocCocCpcAlahlahlcDhcBWcATcCBcCCcATcCBcCCcATcCDcDhahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcDicCPcCPcCPcCPcCPcCQcCPcCPcCScCRcCPcCPcCRcCPcCPcCRcCScCPcCRcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocCgcDbcCucDjcDbcCucCucCucCwcCucCucDkcCycCzcCicCjcDlcBocCYcBocClcAncAncAncCmcAjcAXcAlcDmcCocCocCpcBFcBGcBHcAQcBWcATcCBcCCcATcCBcCCcATcCDcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcBocCgcCtcCucCvcCtcCucCucCucCwcCucCucCxcCycCzcCicDgcCkcBocBQcBZcAycAncAncAncAzcCAcBQcAlcCncCocCocCpcBFcBGcBHcAQcBWcATcCBcCCcATcCBcCCcATcCDcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlcBocCtcCFdpbcCHcCIcCJcCJcCJcCJcCJcCJcCKcCLcCMcCicDgcCkcBocBQcCAcAycAncAncAncAtcAjcAXcAlcCNcCocCocCpcAlahlahlcCOcBWcATcCBcCCcATcCBcCCcATcCDcCOahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcCPcCPcCQcCPcCPcCPcCRcCScCPcCPcCPcCRcCPcCPcCPcCPcCPcCPcCRcCPcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocCwcCGcCTcCGcCUcCGcCGcCGcCGcCGcCGcCUcCVcCWcCicDgcCXcBocCYcBocAscAncAncAncAncAncAncCocCocCocCocCpcCZahlahlcDacBWcATcCBcCCcATcCBcCCcATcCDcDaahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCQcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCRcCPcCPcCPcCPcCPcCRcCPcCPcCPcCPcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocDbcDccCGcDdcCIcDecDecDecDecDecDecCKcCLcDfcCicDgcCjdoUcCjcCjcAncAncAncAncAncAncAncCocCocCocCocCpcAlahlahlcDhcBWcATcCBcCCcATcCBcCCcATcCDcDhahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcDicCPcCPcCPcCPcCPcCQcCPcCPcCScCRcCPcCPcCRcCPcCPcCRcCScCPcCRcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocCgcDbcCucDjcDbcCucCucCucCwcCucCucDkcCycCzcCicDgcDlcBocCYcBocClcAncAncAncCmcAjcAXcAlcDmcCocCocCpcBFcBGcBHcAQcBWcATcCBcCCcATcCBcCCcATcCDcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCQcCPcCPcCRcCScCPcCPcCRcCPcCScCEahlahlahlahlahlahlahlahlahlahlahlcBocCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcDncCicCjcCkcBocBQcBOcAwcAncAncAncAxcBOcBQcAlcCncCocCocCpcBRcBScBRcCqcATcDocATcATcATcATcATcATcCscAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCQcCPcCPcCPcCPcCPcCScCPcCRcCScCPcCRcCPcCEahlahlahlahlahlahlahlahlahlahlahlcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDqcDpcDpcBQcBZcAwcAncAncAncAxcBZcBQcAlcBFcBHcDrcBFcBGcBGcBHcCecBkcBkcDscBkcDtcBAcDucABcADcDvahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcDwcDwcDwcDwcDwcDwcDwcCPcCPcCPcCPcCPcCPcCPcCRcCPcCPcDicCScCPcCPcCPcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcBQcCAcAwcAncAncAncAxcCAcBQcAlcCocCocCocCpcBRcBScBRcCqcDxcDxcDxcDycAQcBycBxcBxcDzcBAahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index ca4c3bb6d91..2d26a49903f 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -38,6 +38,7 @@ var/list/prisonsecuritywarp = list() //prison security goes to these var/list/prisonwarped = list() //list of players already warped var/list/blobstart = list() var/list/secequipment = list() +var/list/deathsquadspawn = list() var/list/global_activeturfs //away missions diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index cd1ea3b5ce8..fc4c18c537f 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -205,6 +205,12 @@ /obj/item/weapon/circuitboard/labor_shuttle/one_way name = "circuit Board (Prisoner Shuttle Console)" build_path = /obj/machinery/computer/shuttle/labor/one_way +/obj/item/weapon/circuitboard/ferry + name = "circuit Board (Transport Ferry)" + build_path = /obj/machinery/computer/shuttle/ferry +/obj/item/weapon/circuitboard/ferry/request + name = "circuit Board (Transport Ferry Console)" + build_path = /obj/machinery/computer/shuttle/ferry/request /obj/item/weapon/circuitboard/mining_shuttle name = "circuit Board (Mining Shuttle)" build_path = /obj/machinery/computer/shuttle/mining diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 377d7777b0f..94915cfa2cc 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -59,6 +59,10 @@ secequipment += loc qdel(src) return + if("Deathsquad") + deathsquadspawn += loc + qdel(src) + return if("xeno_spawn") xeno_spawn += loc qdel(src) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index e0375d13081..635ad5ad25a 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -42,7 +42,7 @@ message_admins("[key_name(usr)] created a nuke team.") log_admin("[key_name(usr)] created a nuke team.") if(!src.makeNukeTeam()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunatly there were not enough candidates available" if("8") message_admins("[key_name(usr)] spawned a ninja.") log_admin("[key_name(usr)] spawned a ninja.") @@ -51,13 +51,12 @@ message_admins("[key_name(usr)] started an alien infestation.") log_admin("[key_name(usr)] started an alien infestation.") src.makeAliens() -/* DEATH SQUADS if("10") message_admins("[key_name(usr)] created a death squad.") log_admin("[key_name(usr)] created a death squad.") if(!src.makeDeathsquad()) - usr << "\red Unfortunatly there were no candidates available" -*/ + usr << "\red Unfortunatly there were not enough candidates available" + else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"]) var/adminckey = href_list["dbsearchadmin"] var/playerckey = href_list["dbsearchckey"] @@ -1387,6 +1386,14 @@ message_admins("[src.owner] replied to [key_name(H)]'s Syndicate message with: \"[input]\"") H << "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. [input]. Message ends.\"" + else if(href_list["movecentcomferry"]) + if(!check_rights(R_FUN)) return + + var/datum/shuttle_manager/s = shuttles["ferry"] + if(istype(s)) s.move_shuttle(0) + message_admins("[key_name_admin(usr)] moved the centcom ferry", 1) + log_admin("[key_name(usr)] moved the centcom ferry") + else if(href_list["jumpto"]) if(!isobserver(usr) && !check_rights(R_ADMIN)) return diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 2372f653b6f..758d7c9fc9b 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -636,7 +636,6 @@ var/global/list/g_fancy_list_of_safe_types = null "assassin", "mobster", "death commando", -// "syndicate commando", "centcom official", "centcom commander", "special ops officer", @@ -777,13 +776,6 @@ var/global/list/g_fancy_list_of_safe_types = null M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/pirate(M), slot_r_hand) -/* - if ("soviet soldier") - M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(M), slot_head) -*/ - if("tunnel clown")//Tunnel clowns rule! M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes) @@ -860,54 +852,9 @@ var/global/list/g_fancy_list_of_safe_types = null W.update_label(M.real_name) M.equip_to_slot_or_del(W, slot_wear_id) // DEATH SQUADS - if("death commando")//Was looking to add this for a while. + if("death commando") + equip_deathsquad(M) - var/obj/item/device/radio/R = new /obj/item/device/radio/headset(M) - R.set_frequency(1441) - M.equip_to_slot_or_del(R, slot_ears) - - M.equip_to_slot_or_del(new /obj/item/clothing/under/color/green(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/deathsquad(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat(M), slot_wear_mask) - M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal(M), slot_glasses) - - M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(M), slot_back) - M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack) - - M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_in_backpack) - M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(M), slot_in_backpack) - M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/flashbangs(M), slot_in_backpack) - M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack) - - M.equip_to_slot_or_del(new /obj/item/weapon/plastique(M), slot_in_backpack) - - M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(M), slot_l_store) - M.equip_to_slot_or_del(new /obj/item/weapon/grenade/flashbang(M), slot_r_store) - M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen(M), slot_s_store) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_belt) - - M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle(M), slot_r_hand) - - - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M)//Here you go Deuryn - L.imp_in = M - L.implanted = 1 - - var/obj/item/weapon/card/id/W = new(M) - W.icon_state = "centcom" - W.access = get_all_accesses()//They get full station access. - W.access += get_centcom_access("Death Commando")//Let's add their alloted Centcom access. - W.assignment = "Death Commando" - W.registered_name = M.real_name - W.update_label(M.real_name) - M.equip_to_slot_or_del(W, slot_wear_id) -/* - if("syndicate commando") - M.equip_syndicate_commando() -*/ if("centcom official") M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes) @@ -1142,3 +1089,51 @@ var/global/list/g_fancy_list_of_safe_types = null dat += "[path] - [garbage.logging[path]] times
" usr << browse(dat, "window=dellog") + +/proc/equip_deathsquad(var/mob/living/carbon/human/M, var/officer) + var/obj/item/device/radio/R = new /obj/item/device/radio/headset(M) + R.set_frequency(1441) + M.equip_to_slot_or_del(R, slot_ears) + + if(officer) + M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head) + else + M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad(M), slot_head) + + M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/deathsquad(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/under/color/green(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat(M), slot_wear_mask) + M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal(M), slot_glasses) + + M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(M), slot_back) + M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack) + + M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_in_backpack) + M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(M), slot_in_backpack) + M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/flashbangs(M), slot_in_backpack) + M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack) + + M.equip_to_slot_or_del(new /obj/item/weapon/plastique(M), slot_in_backpack) + + M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(M), slot_l_store) + M.equip_to_slot_or_del(new /obj/item/weapon/shield/energy(M), slot_r_store) + M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen(M), slot_s_store) + M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_belt) + + M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle(M), slot_r_hand) + + + var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M)//Here you go Deuryn + L.imp_in = M + L.implanted = 1 + + var/obj/item/weapon/card/id/W = new(M) + W.icon_state = "centcom" + W.access = get_all_accesses()//They get full station access. + W.access += get_centcom_access("Death Commando")//Let's add their alloted Centcom access. + W.assignment = "Death Commando" + W.registered_name = M.real_name + W.update_label(M.real_name) + M.equip_to_slot_or_del(W, slot_wear_id) \ No newline at end of file diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index c225d332a23..6ab0e827f81 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -10,7 +10,7 @@ client/proc/one_click_antag() /datum/admins/proc/one_click_antag() - var/dat = {"One-click Antagonist
+ var/dat = {"Quick-Create Antagonist
Make Traitors
Make Changelings
Make Revs
@@ -18,6 +18,7 @@ client/proc/one_click_antag() Make Malf AI
Make Wizard (Requires Ghosts)
Make Nuke Team (Requires Ghosts)
+ Make Deathsquad (Requires Ghosts)
"} /* These dont work just yet Ninja, aliens and deathsquad I have not looked into yet @@ -26,7 +27,6 @@ client/proc/one_click_antag() Make Space Ninja (Requires Ghosts)
Make Aliens (Requires Ghosts)
- Make Deathsquad (Syndicate) (Requires Ghosts)
"} */ usr << browse(dat, "window=oneclickantag;size=400x400") @@ -317,21 +317,16 @@ client/proc/one_click_antag() new /datum/round_event/ninja() return 1 -/* DEATH SQUADS +// DEATH SQUADS /datum/admins/proc/makeDeathsquad() var/list/mob/dead/observer/candidates = list() - var/mob/dead/observer/theghost = null var/time_passed = world.time - var/input = "Purify the station." - if(prob(10)) - input = "Save Runtime and any other cute things on the station." - - var/syndicate_leader_selected = 0 //when the leader is chosen. The last person spawned. + var/mission = input("Assign a mission to the deathsquad", "Assign Mission", "Leave no witnesses.") //Generates a list of commandos from active ghosts. Then the user picks which characters to respawn as the commandos. for(var/mob/dead/observer/G in player_list) spawn(0) - switch(alert(G,"Do you wish to be considered for an elite syndicate strike team being sent in?","Please answer in 30 seconds!","Yes","No")) + switch(alert(G,"Do you wish to be considered for an elite Nanotrasen strike team being sent in?","Please answer in 30 seconds!","Yes","No")) if("Yes") if((world.time-time_passed)>300)//If more than 30 game seconds passed. return @@ -346,45 +341,60 @@ client/proc/one_click_antag() if(!G.key) candidates.Remove(G) - if(candidates.len) - var/numagents = 6 - //Spawns commandos and equips them. - for (var/obj/effect/landmark/L in /area/syndicate_mothership/elite_squad) - if(numagents<=0) - break - if (L.name == "Syndicate-Commando") - syndicate_leader_selected = numagents == 1?1:0 + if(candidates.len >= 3) //Minimum 3 to be considered a squad + //Pick the lucky players + var/numagents = 5 //How many commandos to spawn + while(numagents && !deathsquadspawn.len && !candidates.len) + var/spawnloc = deathsquadspawn[1] + var/mob/dead/observer/chosen_candidate = pick(candidates) + candidates -= chosen_candidate + if(!chosen_candidate.key) + continue - var/mob/living/carbon/human/new_syndicate_commando = create_syndicate_death_commando(L, syndicate_leader_selected) + //Spawn and equip the commando + var/mob/living/carbon/human/Commando = new(spawnloc) + chosen_candidate.client.prefs.copy_to(Commando) + ready_dna(Commando) + switch(numagents) + if(1) + Commando.real_name = "Officer Alpha" + if(2) + Commando.real_name = "Trooper Beta" + if(3) + Commando.real_name = "Trooper Charlie" + if(4) + Commando.real_name = "Trooper Delta" + if(5) + Commando.real_name = "Trooper Echo" + equip_deathsquad(Commando,"[numagents==1?1:0]") + Commando.key = chosen_candidate.key + //Assign the mission + var/datum/objective/missionobj = new + missionobj.owner = Commando.mind + missionobj.explanation_text = mission + Commando.mind.objectives += missionobj - while((!theghost || !theghost.client) && candidates.len) - theghost = pick(candidates) - candidates.Remove(theghost) + //Greet the commando + Commando << "You are the [numagents==1?"Deathsquad Officer":"Death Commando"]." + var/missiondesc = "Your squad is being sent on a mission to [station_name()] by Nanotrasen's Security Division." + if(numagents == 1) //If Squad Leader + missiondesc += " Lead your squad to ensure the completion of the mission. Board the shuttle when your team is ready." + else + missiondesc += " Follow orders given to you by your squad leader." + missiondesc += "
Your Mission: [mission]" + Commando << missiondesc - if(!theghost) - qdel(new_syndicate_commando) - break + //Logging and cleanup + if(numagents == 1) + message_admins("The deathsquad has spawned with [key_name_admin(Commando)] as squad leader.") + log_game("[key_name(Commando)] has been selected as a Death Commando") + deathsquadspawn -= spawnloc + numagents-- - new_syndicate_commando.key = theghost.key - new_syndicate_commando.internal = new_syndicate_commando.s_store - new_syndicate_commando.internals.icon_state = "internal1" + return 1 - //So they don't forget their code or mission. - - - new_syndicate_commando << "\blue You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"LEADER"] in the service of the Syndicate. \nYour current mission is: \red [input]" - - numagents-- - if(numagents >= 6) - return 0 - - for (var/obj/effect/landmark/L in /area/shuttle/syndicate_elite) - if (L.name == "Syndicate-Commando-Bomb") - new /obj/effect/spawner/newbomb/timer/syndicate(L.loc) - - return 1 -*/ + return /datum/admins/proc/makeBody(var/mob/dead/observer/G_found) // Uses stripped down and bastardized code from respawn character if(!G_found || !G_found.key) return diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 3fb21d3f0e1..d75d2938540 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -40,6 +40,7 @@ name = "officer's beret" desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space." icon_state = "beret_badge" + flags = STOPSPRESSUREDMAGE flags_inv = 0 /obj/item/clothing/suit/space/deathsquad/officer diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 1002d63f30b..a76e0702e1b 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -92,7 +92,28 @@ datum/shuttle_manager/proc/move_shuttle(var/override_delay) if (istype(I, /obj/item/weapon/card/emag)) src.req_access = list() emagged = 1 - usr << "You fried the consoles ID checking system. It's now available to everyone!" + usr << "You fried the consoles ID checking system." else ..() - return \ No newline at end of file + return + +/obj/machinery/computer/shuttle/ferry + name = "transport ferry console" + circuit = /obj/item/weapon/circuitboard/ferry + id = "ferry" + +/obj/machinery/computer/shuttle/ferry/request + name = "ferry console" + circuit = /obj/item/weapon/circuitboard/ferry/request + var/cooldown //prevents spamming admins + +/obj/machinery/computer/shuttle/ferry/request/Topic(href, href_list) + if(href_list["move"]) + if(cooldown) + return + cooldown = 1 + usr << "Docking locks are engaged. Sending request to leave..." + var/datum/shuttle_manager/s = shuttles["ferry"] + admins << "FERRY: [key_name(usr)] (?) (Move) is requesting to move the transport ferry to [s.location == /area/shuttle/transport1/centcom ? "the station" : "Centcom"]." + spawn(100) + cooldown = 0 \ No newline at end of file From 67a18271f23e6793046383b2eb387982bb894227 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Sat, 16 Aug 2014 00:46:24 -0600 Subject: [PATCH 2/8] Update one_click_antag.dm --- code/modules/admin/verbs/one_click_antag.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 6ab0e827f81..5936da4f5d6 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -344,7 +344,7 @@ client/proc/one_click_antag() if(candidates.len >= 3) //Minimum 3 to be considered a squad //Pick the lucky players var/numagents = 5 //How many commandos to spawn - while(numagents && !deathsquadspawn.len && !candidates.len) + while(numagents && deathsquadspawn.len && candidates.len) var/spawnloc = deathsquadspawn[1] var/mob/dead/observer/chosen_candidate = pick(candidates) candidates -= chosen_candidate From 9d4d755174b06139dfb7a00e54f4150f9f065f8e Mon Sep 17 00:00:00 2001 From: ikarrus Date: Sat, 16 Aug 2014 10:50:52 -0600 Subject: [PATCH 3/8] Made deathsquads traitors to aid in tracking, admin tools, and end-round reporting --- code/modules/admin/verbs/one_click_antag.dm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 5936da4f5d6..7a97af075c1 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -343,7 +343,7 @@ client/proc/one_click_antag() if(candidates.len >= 3) //Minimum 3 to be considered a squad //Pick the lucky players - var/numagents = 5 //How many commandos to spawn + var/numagents = min(5,candidates.len) //How many commandos to spawn while(numagents && deathsquadspawn.len && candidates.len) var/spawnloc = deathsquadspawn[1] var/mob/dead/observer/chosen_candidate = pick(candidates) @@ -366,13 +366,20 @@ client/proc/one_click_antag() Commando.real_name = "Trooper Delta" if(5) Commando.real_name = "Trooper Echo" - equip_deathsquad(Commando,"[numagents==1?1:0]") + if(numagents == 1) //If Squad Leader + equip_deathsquad(Commando, 1) + else + equip_deathsquad(Commando) Commando.key = chosen_candidate.key + Commando.mind.assigned_role = "Death Commando" - //Assign the mission + //Assign antag status and the mission + ticker.mode.traitors += Commando.mind + Commando.mind.special_role = "deathsquad" var/datum/objective/missionobj = new missionobj.owner = Commando.mind missionobj.explanation_text = mission + missionobj.completed = 1 Commando.mind.objectives += missionobj //Greet the commando From 4271b6a8594e1f186c52d2d55870d97bd0da970d Mon Sep 17 00:00:00 2001 From: ikarrus Date: Mon, 18 Aug 2014 22:29:32 -0600 Subject: [PATCH 4/8] Removing duplicate href code --- code/modules/admin/topic.dm | 8 -------- code/modules/shuttle/shuttle.dm | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 635ad5ad25a..55a5c5a14e5 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1386,14 +1386,6 @@ message_admins("[src.owner] replied to [key_name(H)]'s Syndicate message with: \"[input]\"") H << "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. [input]. Message ends.\"" - else if(href_list["movecentcomferry"]) - if(!check_rights(R_FUN)) return - - var/datum/shuttle_manager/s = shuttles["ferry"] - if(istype(s)) s.move_shuttle(0) - message_admins("[key_name_admin(usr)] moved the centcom ferry", 1) - log_admin("[key_name(usr)] moved the centcom ferry") - else if(href_list["jumpto"]) if(!isobserver(usr) && !check_rights(R_ADMIN)) return diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index a76e0702e1b..7ab751c1b46 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -114,6 +114,6 @@ datum/shuttle_manager/proc/move_shuttle(var/override_delay) cooldown = 1 usr << "Docking locks are engaged. Sending request to leave..." var/datum/shuttle_manager/s = shuttles["ferry"] - admins << "FERRY: [key_name(usr)] (?) (Move) is requesting to move the transport ferry to [s.location == /area/shuttle/transport1/centcom ? "the station" : "Centcom"]." + admins << "FERRY: [key_name(usr)] (?) (Move) is requesting to move the transport ferry to [s.location == /area/shuttle/transport1/centcom ? "the station" : "Centcom"]." spawn(100) cooldown = 0 \ No newline at end of file From f17200bc7f3ad5545a522b303440f47cc9e316c7 Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Thu, 21 Aug 2014 00:56:17 +1000 Subject: [PATCH 5/8] Makes welderbombs use fueltank's ex_act --- code/game/objects/items/weapons/tools.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 6449a0ee712..e1add22af0c 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -222,9 +222,7 @@ message_admins("[key_name_admin(user)] triggered a fueltank explosion.") log_game("[key_name(user)] triggered a fueltank explosion.") user << "That was stupid of you." - explosion(O.loc, -1, 0, 2, flame_range = 2) - if(O) - qdel(O) + O.ex_act() return if(welding) From f5c3d0b9cff5acdabe9a1ac0211dfd6c3d1bdce6 Mon Sep 17 00:00:00 2001 From: Firecage Date: Thu, 21 Aug 2014 16:07:14 +0200 Subject: [PATCH 6/8] Fix for 1 use freedom implant --- code/game/objects/items/weapons/implants/implantfreedom.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/implants/implantfreedom.dm b/code/game/objects/items/weapons/implants/implantfreedom.dm index 879faa9f2bd..fdf63866f6b 100644 --- a/code/game/objects/items/weapons/implants/implantfreedom.dm +++ b/code/game/objects/items/weapons/implants/implantfreedom.dm @@ -5,7 +5,7 @@ desc = "Use this to escape from those evil Red Shirts." item_color = "r" var/activation_emote = "chuckle" - var/uses = 1.0 + var/uses = 4.0 /obj/item/weapon/implant/freedom/New() From 747e35c1c8d0f0839561e9a80c2ec80b9f2aafaf Mon Sep 17 00:00:00 2001 From: ChuckTheSheep Date: Thu, 21 Aug 2014 20:47:58 -0400 Subject: [PATCH 7/8] SearchFix - Fixes #4497 --- code/modules/mob/living/carbon/alien/humanoid/humanoid.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 2 +- code/modules/mob/living/living.dm | 4 ++-- code/modules/mob/mob.dm | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index c5c99d24fd7..2c29857b305 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -345,7 +345,7 @@ In all, this is a lot like the monkey code. /N /mob/living/carbon/alien/humanoid/Topic(href, href_list) ..() //strip panel - if(canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) if(href_list["pouches"]) visible_message("[usr] tries to empty [src]'s pouches.", \ "[usr] tries to empty [src]'s pouches.") diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 238ea92e612..888c59eeaa0 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -420,7 +420,7 @@ /mob/living/carbon/Topic(href, href_list) ..() //strip panel - if(canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) if(href_list["internal"]) var/slot = text2num(href_list["internal"]) var/obj/item/ITEM = get_item_by_slot(slot) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 7a5624ce031..6b17f10d385 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -403,7 +403,7 @@ /mob/living/carbon/human/Topic(href, href_list) - if(canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) if(href_list["item"]) var/slot = text2num(href_list["item"]) if(slot in check_obscured_slots()) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index f76998bda0c..698e02cd4a3 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -611,7 +611,7 @@ // The src mob is trying to strip an item from someone // Override if a certain type of mob should be behave differently when stripping items (can't, for example) -/mob/living/stripPanelUnequip(mob/who, obj/item/what, where) +/mob/living/stripPanelUnequip(obj/item/what, mob/who, where) if(what.flags & NODROP) src << "You can't remove \the [what.name], it appears to be stuck!" return @@ -625,7 +625,7 @@ // The src mob is trying to place an item on someone // Override if a certain mob should be behave differently when placing items (can't, for example) -/mob/living/stripPanelEquip(mob/who, obj/item/what, where) +/mob/living/stripPanelEquip(obj/item/what, mob/who, where) what = src.get_active_hand() if(what && (what.flags & NODROP)) src << "You can't put \the [what.name] on [who], it's stuck to your hand!" diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index f244a464ea6..239a6b42aa7 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -485,15 +485,15 @@ var/list/slot_equipment_priority = list( \ if(machine && in_range(src, usr)) show_inv(machine) - if(canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) if(href_list["item"]) var/slot = text2num(href_list["item"]) var/obj/item/what = get_item_by_slot(slot) if(what) - usr.stripPanelUnequip(src,what,slot) + usr.stripPanelUnequip(what,src,slot) else - usr.stripPanelEquip(src,what,slot) + usr.stripPanelEquip(what,src,slot) if(usr.machine == src) if(Adjacent(usr)) From 44571300950a9871a47a758965ddef54fc1bf121 Mon Sep 17 00:00:00 2001 From: ikarrus Date: Thu, 21 Aug 2014 20:02:23 -0600 Subject: [PATCH 8/8] Redo Map Changes --- _maps/map_files/tgstation.2.1.3.dmm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index 1686714b1ad..c8b02ad7a05 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -6920,7 +6920,7 @@ "cDd" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/transport1/centcom) "cDe" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "cDf" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry) -"cDg" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"cDg" = (/obj/effect/landmark{name = "Deathsquad"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) "cDh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "cDi" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) "cDj" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/transport1/centcom) @@ -8892,12 +8892,14 @@ "doZ" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/security/armory) "dpa" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Prison Hallway West"; network = list("SS13","Prison")},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "dpb" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/mineral/labor_points_checker,/turf/simulated/wall,/area/mine/laborcamp) +"dpc" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "dpd" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/closet/secure_closet/hos,/turf/simulated/floor/carpet,/area/security/hos) "dpe" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/wall,/area/security/prison) "dpf" = (/obj/structure/stool/bed,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "dpg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/prison) "dph" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "dpi" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/prison) +"dpj" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) "dpk" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/carpet,/area/security/hos) "dpl" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/plating,/area/security/prison) "dpm" = (/obj/machinery/door/poddoor/preopen{auto_close = 0; density = 1; icon_state = "closed"; id = "transvent"; name = "prisoner release blast door"},/turf/simulated/floor/plating,/area/security/prison) @@ -9561,11 +9563,11 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcBocBLcBMcBMcBocBNcBOcAncBPcBPcBPcBPcBOcBQcAlcAOcAOcAOcAOcBRcBScBRcBTcBJcBUcBUcBwcBVcBWcBXcATcBxcBAahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcBocBocBocBocBocBocBocBocBocBocBocBocBocBocBocBocBYcBocBocBQcBZcAncCacCbcCccBPcBZcBQcAlcBFcBHcCdcBFcBGcBGcBHcCecBkcBkcBkcCfcBXcBXcBXcATcBxcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcBocCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcChcCicCjcCkcBocBQcBZcClcAncAncAncCmcBZcBQcAlcCncCocCocCpcBRcBScBRcCqcATcCrcATcATcATcATcATcATcCscAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcBocCgcCtcCucCvcCtcCucCucCucCwcCucCucCxcCycCzcCicCjcCkcBocBQcBZcAycAncAncAncAzcCAcBQcAlcCncCocCocCpcBFcBGcBHcAQcBWcATcCBcCCcATcCBcCCcATcCDcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlcBocCtcCFcCGcCHcCIcCJcCJcCJcCJcCJcCJcCKcCLcCMcCicCjcCkcBocBQcCAcAycAncAncAncAtcAjcAXcAlcCNcCocCocCpcAlahlahlcCOcBWcATcCBcCCcATcCBcCCcATcCDcCOahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcCPcCPcCQcCPcCPcCPcCRcCScCPcCPcCPcCRcCPcCPcCPcCPcCPcCPcCRcCPcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocCwcCGcCTcCGcCUcCGcCGcCGcCGcCGcCGcCUcCVcCWcCicCjcCXcBocCYcBocAscAncAncAncAncAncAncCocCocCocCocCpcCZahlahlcDacBWcATcCBcCCcATcCBcCCcATcCDcDaahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCQcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCRcCPcCPcCPcCPcCPcCRcCPcCPcCPcCPcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocDbcDccCGcDdcCIcDecDecDecDecDecDecCKcCLcDfcCicCjcCjcDgcCjcCjcAncAncAncAncAncAncAncCocCocCocCocCpcAlahlahlcDhcBWcATcCBcCCcATcCBcCCcATcCDcDhahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcDicCPcCPcCPcCPcCPcCQcCPcCPcCScCRcCPcCPcCRcCPcCPcCRcCScCPcCRcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocCgcDbcCucDjcDbcCucCucCucCwcCucCucDkcCycCzcCicCjcDlcBocCYcBocClcAncAncAncCmcAjcAXcAlcDmcCocCocCpcBFcBGcBHcAQcBWcATcCBcCCcATcCBcCCcATcCDcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcBocCgcCtcCucCvcCtcCucCucCucCwcCucCucCxcCycCzcCicDgcCkcBocBQcBZcAycAncAncAncAzcCAcBQcAlcCncCocCocCpcBFcBGcBHcAQcBWcATcCBcCCcATcCBcCCcATcCDcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlcBocCtcCFdpccCHcCIcCJcCJcCJcCJcCJcCJcCKcCLcCMcCicDgcCkcBocBQcCAcAycAncAncAncAtcAjcAXcAlcCNcCocCocCpcAlahlahlcCOcBWcATcCBcCCcATcCBcCCcATcCDcCOahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcCPcCPcCQcCPcCPcCPcCRcCScCPcCPcCPcCRcCPcCPcCPcCPcCPcCPcCRcCPcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocCwcCGcCTcCGcCUcCGcCGcCGcCGcCGcCGcCUcCVcCWcCicDgcCXcBocCYcBocAscAncAncAncAncAncAncCocCocCocCocCpcCZahlahlcDacBWcATcCBcCCcATcCBcCCcATcCDcDaahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCQcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCRcCPcCPcCPcCPcCPcCRcCPcCPcCPcCPcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocDbcDccCGcDdcCIcDecDecDecDecDecDecCKcCLcDfcCicDgcCjdpjcCjcCjcAncAncAncAncAncAncAncCocCocCocCocCpcAlahlahlcDhcBWcATcCBcCCcATcCBcCCcATcCDcDhahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcDicCPcCPcCPcCPcCPcCQcCPcCPcCScCRcCPcCPcCRcCPcCPcCRcCScCPcCRcCPcCEahlahlahlahlahlahlahlahlahlahlahlcBocCgcDbcCucDjcDbcCucCucCucCwcCucCucDkcCycCzcCicDgcDlcBocCYcBocClcAncAncAncCmcAjcAXcAlcDmcCocCocCpcBFcBGcBHcAQcBWcATcCBcCCcATcCBcCCcATcCDcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCQcCPcCPcCRcCScCPcCPcCRcCPcCScCEahlahlahlahlahlahlahlahlahlahlahlcBocCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcCgcDncCicCjcCkcBocBQcBOcAwcAncAncAncAxcBOcBQcAlcCncCocCocCpcBRcBScBRcCqcATcDocATcATcATcATcATcATcCscAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCPcCQcCPcCPcCPcCPcCPcCScCPcCRcCScCPcCRcCPcCEahlahlahlahlahlahlahlahlahlahlahlcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDpcDqcDpcDpcBQcBZcAwcAncAncAncAxcBZcBQcAlcBFcBHcDrcBFcBGcBGcBHcCecBkcBkcDscBkcDtcBAcDucABcADcDvahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcDwcDwcDwcDwcDwcDwcDwcCPcCPcCPcCPcCPcCPcCPcCRcCPcCPcDicCScCPcCPcCPcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcBQcCAcAwcAncAncAncAxcCAcBQcAlcCocCocCocCpcBRcBScBRcCqcDxcDxcDxcDycAQcBycBxcBxcDzcBAahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl