diff --git a/_maps/shuttles/pirate_psyker.dmm b/_maps/shuttles/hunter_psyker.dmm similarity index 83% rename from _maps/shuttles/pirate_psyker.dmm rename to _maps/shuttles/hunter_psyker.dmm index dd9a12fd356..bb05bbbac57 100644 --- a/_maps/shuttles/pirate_psyker.dmm +++ b/_maps/shuttles/hunter_psyker.dmm @@ -3,83 +3,74 @@ /obj/item/stack/spacecash/c1, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "am" = ( /obj/structure/closet/secure_closet/freezer/meat/open, /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/hypospray/medipen/gore, /obj/item/reagent_containers/hypospray/medipen/gore, /turf/open/floor/iron/freezer, -/area/shuttle/pirate) +/area/shuttle/hunter) "aV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, /obj/machinery/light/small/directional/east, /turf/open/floor/engine, -/area/shuttle/pirate) +/area/shuttle/hunter) "bx" = ( /obj/effect/decal/cleanable/dirt, /obj/item/broken_bottle, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron, -/area/shuttle/pirate) +/area/shuttle/hunter) "bK" = ( -/turf/closed/wall, -/area/shuttle/pirate) +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/iron/kitchen/small, +/area/shuttle/hunter) "bV" = ( -/obj/effect/turf_decal/tile/dark_blue/diagonal_centre, -/turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) +/obj/machinery/computer/monitor{ + dir = 1 + }, +/obj/effect/turf_decal/box/white, +/turf/open/floor/iron/dark/textured, +/area/shuttle/hunter) "bX" = ( /obj/item/reagent_containers/blood, /obj/machinery/light/directional/north, /turf/open/floor/engine, -/area/shuttle/pirate) -"ca" = ( -/obj/structure/lattice, -/obj/effect/forcefield/psychic{ - initial_duration = 0 - }, -/turf/template_noop, -/area/shuttle/pirate) +/area/shuttle/hunter) "cp" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron, -/area/shuttle/pirate) +/area/shuttle/hunter) "cM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "do" = ( /turf/open/floor/iron/stairs{ dir = 4 }, -/area/shuttle/pirate) +/area/shuttle/hunter) "dq" = ( -/obj/structure/rack, -/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka{ - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/shaker{ - pixel_x = 9; - pixel_y = 1 +/obj/effect/mob_spawn/ghost_role/human/fugitive/bounty/psyker/seer{ + dir = 8 }, /turf/open/floor/engine, -/area/shuttle/pirate) +/area/shuttle/hunter) "eq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, /obj/structure/bedsheetbin, /obj/machinery/light/dim/directional/south, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "eO" = ( /obj/machinery/light/cold/directional/west, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "eZ" = ( /obj/structure/toiletbong{ dir = 4 @@ -87,19 +78,19 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit/old, /turf/open/floor/iron/freezer, -/area/shuttle/pirate) +/area/shuttle/hunter) "gj" = ( /obj/structure/table/wood/fancy/blue, /obj/item/book/codex_gigas{ pixel_y = 2 }, /turf/open/floor/glass, -/area/shuttle/pirate) +/area/shuttle/hunter) "gl" = ( /obj/machinery/washing_machine, /obj/effect/turf_decal/box/white, /turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) "gA" = ( /obj/machinery/power/smes/engineering{ charge = 1e+006 @@ -107,7 +98,7 @@ /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "gE" = ( /obj/effect/turf_decal/tile/dark_blue/diagonal_edge, /obj/structure/table/reinforced/plasmarglass, @@ -131,14 +122,8 @@ }, /obj/item/ammo_box/c38/match, /turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) +/area/shuttle/hunter) "gW" = ( -/obj/docking_port/mobile/pirate{ - launch_status = 0; - movement_force = list("KNOCKDOWN"=0,"THROW"=0); - name = "Pirate Ship"; - port_direction = 2 - }, /obj/docking_port/stationary{ dwidth = 11; height = 16; @@ -146,47 +131,53 @@ shuttle_id = "pirate_home"; width = 17 }, +/obj/docking_port/mobile{ + movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); + name = "hunter shuttle"; + rechargeTime = 1800; + shuttle_id = "huntership" + }, /turf/open/floor/catwalk_floor, -/area/shuttle/pirate) +/area/shuttle/hunter) "gY" = ( /obj/structure/curtain/bounty, /turf/open/floor/grass, -/area/shuttle/pirate) +/area/shuttle/hunter) "ht" = ( /obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 }, /turf/open/floor/grass, -/area/shuttle/pirate) +/area/shuttle/hunter) "hE" = ( /obj/effect/turf_decal/tile/dark_blue/diagonal_centre, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) +/area/shuttle/hunter) "jl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "js" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/oil, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "jB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/stairs{ dir = 8 }, -/area/shuttle/pirate) +/area/shuttle/hunter) "ke" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/oil, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "kN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, @@ -210,63 +201,57 @@ /obj/item/reagent_containers/syringe/contraband, /obj/item/reagent_containers/syringe/contraband, /turf/open/floor/iron, -/area/shuttle/pirate) -"ld" = ( -/obj/machinery/power/shuttle_engine/propulsion/right{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) +/area/shuttle/hunter) "lu" = ( /turf/open/floor/iron/kitchen/small, -/area/shuttle/pirate) +/area/shuttle/hunter) "lD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/computer/slot_machine, /obj/effect/decal/cleanable/wrapping, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) -"me" = ( -/obj/machinery/computer/monitor{ - dir = 1 - }, -/obj/effect/turf_decal/box/white, -/turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) +"lI" = ( +/obj/effect/turf_decal/tile/dark_blue/diagonal_centre, +/turf/open/floor/iron/white/diagonal, +/area/shuttle/hunter) "mz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/etherealball, /turf/open/floor/engine, -/area/shuttle/pirate) +/area/shuttle/hunter) "mP" = ( /obj/effect/mapping_helpers/broken_floor, /obj/item/storage/pill_bottle, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "mR" = ( /turf/open/floor/iron/stairs/right, -/area/shuttle/pirate) +/area/shuttle/hunter) +"na" = ( +/turf/closed/wall, +/area/shuttle/hunter) "nc" = ( /obj/structure/cable, /obj/effect/decal/cleanable/fuel_pool, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "nk" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "no" = ( /obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 }, /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/floor/grass, -/area/shuttle/pirate) +/area/shuttle/hunter) "nq" = ( /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, -/area/shuttle/pirate) +/area/shuttle/hunter) "nB" = ( /obj/machinery/door/airlock/grunge{ name = "Intelligence Training Room" @@ -274,44 +259,38 @@ /obj/effect/mapping_helpers/airlock/cutaiwire, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, -/area/shuttle/pirate) -"oq" = ( -/turf/open/floor/catwalk_floor, -/area/shuttle/pirate) +/area/shuttle/hunter) "oL" = ( /obj/structure/lattice, /turf/template_noop, -/area/shuttle/pirate) +/area/shuttle/hunter) "oN" = ( /obj/structure/chair/comfy/black{ dir = 1 }, /turf/open/floor/glass, -/area/shuttle/pirate) +/area/shuttle/hunter) "pb" = ( /obj/structure/chair/office/light{ dir = 8 }, /turf/open/floor/iron/kitchen/small, -/area/shuttle/pirate) +/area/shuttle/hunter) "pf" = ( /obj/item/stack/sheet/mineral/plasma/thirty, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) +"pO" = ( +/turf/open/floor/catwalk_floor, +/area/shuttle/hunter) "qa" = ( /obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 }, /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/floor/grass, -/area/shuttle/pirate) -"qq" = ( -/obj/effect/turf_decal/tile/dark_blue/diagonal_centre, -/obj/machinery/light/cold/directional/south, -/obj/item/statuebust, -/turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) +/area/shuttle/hunter) "qz" = ( /obj/structure/curtain/cloth/fancy/mechanical{ icon_state = "bounty-open"; @@ -319,70 +298,70 @@ id = "fortune_tell" }, /turf/open/floor/glass, -/area/shuttle/pirate) +/area/shuttle/hunter) "rn" = ( /obj/machinery/door/airlock/grunge{ name = "Sanctuary In The Garden Of Mind" }, /obj/effect/mapping_helpers/airlock/cutaiwire, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "rF" = ( /obj/structure/chair/office/light, /turf/open/floor/iron/kitchen/small, -/area/shuttle/pirate) +/area/shuttle/hunter) "rS" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, -/area/shuttle/pirate) +/area/shuttle/hunter) "sn" = ( /obj/machinery/door/airlock/grunge{ name = "Fortune Telling" }, /obj/effect/mapping_helpers/airlock/cutaiwire, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "sB" = ( /obj/machinery/light/small/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "sW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "td" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/directional/east, /obj/structure/sign/warning/vacuum/external/directional/east, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "tH" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "tO" = ( /turf/open/floor/glass, -/area/shuttle/pirate) +/area/shuttle/hunter) "tT" = ( -/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/pirate/psyker{ +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter/psyker{ dir = 4 }, /obj/effect/turf_decal/box/white, /turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) "uy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "uH" = ( /obj/machinery/light/cold/directional/east, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "vu" = ( /obj/effect/mapping_helpers/airlock/cutaiwire, /obj/machinery/door/airlock/grunge{ @@ -390,7 +369,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron, -/area/shuttle/pirate) +/area/shuttle/hunter) "vw" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/door/poddoor/preopen{ @@ -398,17 +377,13 @@ name = "External Blast Door" }, /turf/open/floor/plating, -/area/shuttle/pirate) -"vT" = ( -/obj/effect/turf_decal/tile/dark_blue/diagonal_edge, -/turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) +/area/shuttle/hunter) "ws" = ( /obj/effect/turf_decal/tile/dark_blue/diagonal_edge, /obj/structure/table/reinforced/plasmarglass, /obj/item/storage/box/lethalshot{ - pixel_y = 4; - pixel_x = -2 + pixel_x = -2; + pixel_y = 4 }, /obj/item/storage/box/lethalshot{ pixel_y = 2 @@ -416,13 +391,11 @@ /obj/item/storage/box/lethalshot{ pixel_x = 2 }, +/obj/item/gun/ballistic/shotgun/lethal{ + pixel_y = 4 + }, /turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) -"wu" = ( -/obj/machinery/piratepad, -/obj/effect/turf_decal/box/white, -/turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) "xa" = ( /obj/structure/cable, /obj/machinery/power/terminal{ @@ -432,14 +405,14 @@ anchored = 1 }, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "xp" = ( /obj/machinery/power/shuttle_engine/heater{ dir = 4 }, /obj/structure/window/reinforced/plasma/spawner/directional/west, /turf/open/floor/plating/airless, -/area/shuttle/pirate) +/area/shuttle/hunter) "xs" = ( /obj/structure/table/wood/fancy/blue, /obj/structure/tank_holder{ @@ -458,7 +431,7 @@ pixel_y = 8 }, /turf/open/floor/glass, -/area/shuttle/pirate) +/area/shuttle/hunter) "xt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/maintenance_hatch{ @@ -466,25 +439,29 @@ }, /obj/effect/mapping_helpers/airlock/cutaiwire, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "yd" = ( /turf/template_noop, /area/template_noop) +"yg" = ( +/obj/effect/turf_decal/tile/dark_blue/diagonal_edge, +/turf/open/floor/iron/white/diagonal, +/area/shuttle/hunter) "yq" = ( /obj/machinery/power/shuttle_engine/propulsion/left{ dir = 4 }, /turf/open/floor/plating/airless, -/area/shuttle/pirate) +/area/shuttle/hunter) "ys" = ( /turf/open/floor/grass, -/area/shuttle/pirate) +/area/shuttle/hunter) "yO" = ( /obj/structure/displaycase/noalert{ start_showpiece_type = /obj/item/food/drug/moon_rock }, /turf/open/floor/iron/kitchen/small, -/area/shuttle/pirate) +/area/shuttle/hunter) "zi" = ( /obj/structure/railing{ dir = 5 @@ -492,46 +469,45 @@ /obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/fern, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "zm" = ( /obj/structure/table/wood/fancy/blue, /obj/item/trash/candle{ pixel_y = 7 }, /turf/open/floor/glass, -/area/shuttle/pirate) +/area/shuttle/hunter) "zq" = ( /obj/structure/table/wood/fancy/blue, /obj/item/toy/cards/deck/tarot{ pixel_y = 6 }, /turf/open/floor/glass, -/area/shuttle/pirate) +/area/shuttle/hunter) "zX" = ( /obj/structure/tank_dispenser/oxygen, /obj/machinery/light/small/directional/north, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "zY" = ( -/obj/machinery/shuttle_scrambler, /obj/effect/turf_decal/box/white, +/obj/machinery/fugitive_capture/psyker, /turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) "AF" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stack/spacecash/c1, /turf/open/floor/engine, -/area/shuttle/pirate) +/area/shuttle/hunter) "AH" = ( /obj/structure/rack, /obj/item/storage/toolbox/mechanical, /obj/item/storage/belt/utility, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "AZ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "BY" = ( /obj/structure/table/wood/fancy/blue, /obj/machinery/button/curtain{ @@ -540,7 +516,7 @@ pixel_y = 3 }, /turf/open/floor/glass, -/area/shuttle/pirate) +/area/shuttle/hunter) "BZ" = ( /obj/structure/rack, /obj/effect/decal/cleanable/dirt, @@ -553,14 +529,22 @@ pixel_y = 2 }, /obj/structure/sign/departments/security/directional/south, +/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = 9; + pixel_y = 1 + }, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ck" = ( /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "CW" = ( /turf/closed/wall/r_wall, -/area/shuttle/pirate) +/area/shuttle/hunter) "De" = ( /obj/structure/curtain/cloth/fancy/mechanical/start_closed{ icon_state = "bounty-closed"; @@ -569,7 +553,7 @@ }, /obj/structure/fans/tiny, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "Di" = ( /obj/machinery/door/airlock/external/glass/ruin{ id_tag = "psykerexternal" @@ -580,14 +564,14 @@ dir = 4 }, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "Dw" = ( /obj/effect/turf_decal/tile/dark_blue/diagonal_centre, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, /turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ea" = ( /obj/machinery/door/airlock/grunge{ name = "Gear Storage" @@ -595,26 +579,20 @@ /obj/effect/mapping_helpers/airlock/cutaiwire, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "En" = ( /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/syringe/contraband, /obj/machinery/light/broken/directional/east, /turf/open/floor/iron, -/area/shuttle/pirate) +/area/shuttle/hunter) "EM" = ( /obj/machinery/door/airlock/grunge{ name = "Gear Storage" }, /obj/effect/mapping_helpers/airlock/cutaiwire, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) -"Fk" = ( -/obj/machinery/power/shuttle_engine/propulsion{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) +/area/shuttle/hunter) "Gv" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, @@ -623,47 +601,47 @@ /obj/effect/decal/cleanable/cobweb, /obj/effect/mapping_helpers/apc/cut_AI_wire, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "GS" = ( -/obj/machinery/computer/shuttle/pirate{ +/obj/effect/turf_decal/box/white, +/obj/machinery/computer/shuttle/hunter{ dir = 4 }, -/obj/effect/turf_decal/box/white, /turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) "GT" = ( /obj/effect/turf_decal/tile/dark_blue/diagonal_edge, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) +/area/shuttle/hunter) "Hd" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "Hp" = ( /obj/structure/rack, /obj/item/paper/crumpled/fluff/fortune_teller, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "Hq" = ( /obj/structure/chair/comfy/carp, /turf/open/floor/glass, -/area/shuttle/pirate) +/area/shuttle/hunter) "HI" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "HO" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/bed/maint, /turf/open/floor/iron, -/area/shuttle/pirate) +/area/shuttle/hunter) "Id" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/stairs/left, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ih" = ( /obj/structure/rack, /obj/item/stack/spacecash/c10, @@ -675,27 +653,27 @@ /obj/item/stack/spacecash/c20, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ik" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "IE" = ( /obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/engine, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ja" = ( /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/syringe/contraband, /turf/open/floor/iron, -/area/shuttle/pirate) +/area/shuttle/hunter) "Jh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /obj/machinery/iv_drip, /turf/open/floor/iron, -/area/shuttle/pirate) +/area/shuttle/hunter) "Jz" = ( /obj/machinery/door/airlock/grunge{ name = "Freezer" @@ -703,13 +681,19 @@ /obj/effect/mapping_helpers/airlock/cutaiwire, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/freezer, -/area/shuttle/pirate) +/area/shuttle/hunter) "Kp" = ( /obj/structure/billboard/fortune_telling{ pixel_y = 16 }, /turf/open/floor/catwalk_floor, -/area/shuttle/pirate) +/area/shuttle/hunter) +"Lc" = ( +/obj/machinery/power/shuttle_engine/propulsion{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/hunter) "LI" = ( /obj/structure/rack, /obj/item/megaphone, @@ -718,63 +702,66 @@ /obj/effect/turf_decal/box/white, /obj/machinery/light/directional/east, /turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) -"LV" = ( -/turf/closed/wall/space, -/area/shuttle/pirate) +/area/shuttle/hunter) "Mc" = ( /obj/item/storage/pill_bottle, /obj/structure/closet/crate/bin, /obj/effect/decal/cleanable/plastic, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "Me" = ( /obj/structure/flora/bush/flowers_br/style_random, /turf/open/floor/grass, -/area/shuttle/pirate) +/area/shuttle/hunter) "Mk" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/freezer, -/area/shuttle/pirate) +/area/shuttle/hunter) "Nb" = ( -/obj/machinery/computer/piratepad_control{ - dir = 1 - }, -/obj/effect/turf_decal/box/white, /obj/machinery/light/directional/south, /turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ne" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, /turf/open/floor/iron/freezer, -/area/shuttle/pirate) +/area/shuttle/hunter) +"Nn" = ( +/turf/closed/wall/space, +/area/shuttle/hunter) +"Nw" = ( +/obj/structure/lattice, +/obj/effect/forcefield/psychic{ + initial_duration = 0 + }, +/turf/template_noop, +/area/shuttle/hunter) "NL" = ( /obj/machinery/suit_storage_unit/pirate, /obj/effect/turf_decal/box/white, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/departments/engineering/directional/south, /turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) "NO" = ( -/obj/effect/mob_spawn/ghost_role/human/pirate/psykers, +/obj/effect/mob_spawn/ghost_role/human/fugitive/psykers, /obj/machinery/light/floor, /obj/structure/curtain/bounty, /turf/open/floor/engine, -/area/shuttle/pirate) +/area/shuttle/hunter) "Oc" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/north, /obj/item/reagent_containers/syringe/contraband, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "ON" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/stairs{ dir = 4 }, -/area/shuttle/pirate) +/area/shuttle/hunter) "OS" = ( /obj/machinery/door/airlock/grunge{ name = "Fortune Telling" @@ -786,7 +773,7 @@ pixel_x = -24 }, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ph" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock/maintenance_hatch{ @@ -794,20 +781,26 @@ }, /obj/effect/mapping_helpers/airlock/cutaiwire, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "Pv" = ( /obj/machinery/suit_storage_unit/pirate, /obj/effect/turf_decal/box/white, /obj/structure/sign/warning/vacuum/external/directional/east, /turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) "Pz" = ( /obj/effect/forcefield/psychic{ initial_duration = 0 }, /obj/structure/lattice, /turf/template_noop, -/area/shuttle/pirate) +/area/shuttle/hunter) +"PA" = ( +/obj/machinery/power/shuttle_engine/propulsion/right{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/hunter) "PD" = ( /obj/structure/rack, /obj/item/clothing/shoes/laceup{ @@ -822,23 +815,23 @@ }, /obj/item/cane, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "PS" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "PT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit/old, /obj/structure/sign/departments/restroom/directional/west, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "QI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/freezer, -/area/shuttle/pirate) +/area/shuttle/hunter) "Rs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/airalarm/directional/west, @@ -846,47 +839,63 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/robot_debris/up, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) +"RA" = ( +/obj/effect/turf_decal/tile/dark_blue/diagonal_centre, +/obj/machinery/light/cold/directional/south, +/obj/item/statuebust, +/turf/open/floor/iron/white/diagonal, +/area/shuttle/hunter) "RZ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ss" = ( /obj/effect/decal/cleanable/glass, /turf/open/floor/engine, -/area/shuttle/pirate) +/area/shuttle/hunter) "SG" = ( /obj/effect/decal/cleanable/vomit/old, +/obj/item/stack/spacecash/c1{ + pixel_x = 5; + pixel_y = -4 + }, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "SI" = ( /obj/structure/rack, /obj/item/storage/toolbox/electrical, /obj/item/multitool, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "Te" = ( /obj/machinery/suit_storage_unit/pirate, /obj/effect/turf_decal/box/white, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) "Tj" = ( /obj/effect/decal/cleanable/vomit/old, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "Tl" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/garbage, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "Tw" = ( -/obj/machinery/loot_locator, -/obj/effect/turf_decal/box/white, +/obj/effect/turf_decal/arrows{ + dir = 4; + pixel_y = -4 + }, +/obj/effect/turf_decal/arrows{ + dir = 4; + pixel_y = 4 + }, /turf/open/floor/iron/dark/textured, -/area/shuttle/pirate) +/area/shuttle/hunter) "TL" = ( /obj/machinery/button/door/directional/east{ id = "psykerexternal"; @@ -896,7 +905,7 @@ }, /obj/effect/decal/cleanable/generic, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ui" = ( /obj/effect/turf_decal/tile/dark_blue/diagonal_edge, /obj/structure/table/reinforced/plasmarglass, @@ -905,17 +914,17 @@ }, /obj/item/gun/ballistic/revolver/c38, /turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) +/area/shuttle/hunter) "Vi" = ( /obj/effect/decal/cleanable/food/egg_smudge, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "Vw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron, -/area/shuttle/pirate) +/area/shuttle/hunter) "VF" = ( /obj/structure/fans/tiny, /obj/structure/curtain/cloth/fancy/mechanical/start_closed{ @@ -924,24 +933,24 @@ id = "fortune_tell" }, /turf/open/floor/carpet/black, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ww" = ( /obj/machinery/light/floor, /turf/open/floor/catwalk_floor, -/area/shuttle/pirate) +/area/shuttle/hunter) "Wy" = ( -/obj/effect/mob_spawn/ghost_role/human/pirate/psykers/captain, +/obj/effect/mob_spawn/ghost_role/human/fugitive/psykers/captain, /obj/machinery/light/floor, /obj/structure/curtain/bounty, /turf/open/floor/engine, -/area/shuttle/pirate) +/area/shuttle/hunter) "WL" = ( /obj/machinery/atmospherics/components/tank/air{ dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "WU" = ( /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/syringe/contraband, @@ -949,24 +958,18 @@ dir = 4 }, /turf/open/floor/iron, -/area/shuttle/pirate) +/area/shuttle/hunter) "Xa" = ( /obj/machinery/button/door/directional/west{ id = "psyker_bridge"; name = "Blast Door Control" }, /turf/open/floor/iron/kitchen/small, -/area/shuttle/pirate) -"Xc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/iron/kitchen/small, -/area/shuttle/pirate) +/area/shuttle/hunter) "Xk" = ( /obj/structure/closet/crate/cardboard, /turf/open/floor/iron/kitchen/small, -/area/shuttle/pirate) +/area/shuttle/hunter) "Xp" = ( /obj/structure/bouncy_castle{ name = "Mark" @@ -974,16 +977,16 @@ /obj/effect/gibspawner/human, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer, -/area/shuttle/pirate) +/area/shuttle/hunter) "XX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron/kitchen/small, -/area/shuttle/pirate) +/area/shuttle/hunter) "Yq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "Ys" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/dirt, @@ -991,7 +994,7 @@ name = "Office" }, /turf/open/floor/iron/grimy, -/area/shuttle/pirate) +/area/shuttle/hunter) "Zb" = ( /obj/machinery/door/airlock/external/glass/ruin{ id_tag = "psykerexternal" @@ -1002,20 +1005,27 @@ dir = 8 }, /turf/open/floor/plating, -/area/shuttle/pirate) +/area/shuttle/hunter) "ZC" = ( /obj/effect/turf_decal/tile/dark_blue/diagonal_centre, /obj/item/statuebust, /turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) +/area/shuttle/hunter) "ZW" = ( /obj/effect/turf_decal/tile/dark_blue/diagonal_edge, /obj/structure/table/reinforced/plasmarglass, -/obj/item/gun/ballistic/shotgun/lethal{ - pixel_y = 4 +/obj/item/binoculars{ + pixel_x = -1 + }, +/obj/item/knife/hunting{ + pixel_y = 3 + }, +/obj/item/megaphone, +/obj/item/clothing/glasses/thermal/monocle{ + pixel_y = 2 }, /turf/open/floor/iron/white/diagonal, -/area/shuttle/pirate) +/area/shuttle/hunter) (1,1,1) = {" yd @@ -1023,14 +1033,14 @@ yd yd yd yd -ca -ca -ca -ca -ca -ca -ca -ca +Nw +Nw +Nw +Nw +Nw +Nw +Nw +Nw yd yd yd @@ -1050,14 +1060,14 @@ yd yd yd yd -ca +Nw CW vw vw vw vw CW -ca +Nw yd yd yd @@ -1073,18 +1083,18 @@ yd "} (3,1,1) = {" yd -ca -ca -ca -ca -ca +Nw +Nw +Nw +Nw +Nw CW GS tT Xk yO CW -ca +Nw yd yd yd @@ -1100,7 +1110,7 @@ yd "} (4,1,1) = {" yd -ca +Nw yd CW vw @@ -1111,14 +1121,14 @@ lu rF Nb CW -ca -ca -ca -ca -ca -ca -ca -ca +Nw +Nw +Nw +Nw +Nw +Nw +Nw +Nw yd yd yd @@ -1127,16 +1137,16 @@ yd "} (5,1,1) = {" yd -ca +Nw yd CW Tw lu Xa -lu +bK XX -Xc -wu +rF +bV CW yd oL @@ -1145,7 +1155,7 @@ yd oL yd yd -ca +Nw yd yd yd @@ -1154,12 +1164,12 @@ yd "} (6,1,1) = {" yd -ca +Nw oL CW zY -rF -me +lu +lu LI XX CW @@ -1172,7 +1182,7 @@ CW CW CW yd -ca +Nw yd yd yd @@ -1181,7 +1191,7 @@ yd "} (7,1,1) = {" yd -ca +Nw yd CW CW @@ -1208,7 +1218,7 @@ yd "} (8,1,1) = {" yd -ca +Nw yd CW Tl @@ -1216,14 +1226,14 @@ AF kN mP Vw -bK +na Ne Mk QI CW -bV -vT -qq +lI +yg +RA CW yd Pz @@ -1235,7 +1245,7 @@ yd "} (9,1,1) = {" yd -ca +Nw oL CW bX @@ -1243,9 +1253,9 @@ rS SG WU ke -bK +na Jz -bK +na CW CW GT @@ -1262,7 +1272,7 @@ yd "} (10,1,1) = {" yd -ca +Nw yd CW Jh @@ -1276,8 +1286,8 @@ bx Ea Id hE -vT -qq +yg +RA CW oL Pz @@ -1288,8 +1298,8 @@ yd yd "} (11,1,1) = {" -ca -ca +Nw +Nw yd CW HO @@ -1302,8 +1312,8 @@ Ja Ss EM mR -vT -bV +yg +lI gE CW yd @@ -1315,16 +1325,16 @@ yd yd "} (12,1,1) = {" -ca +Nw CW CW CW -bK -bK -bK -bK +na +na +na +na nB -bK +na dq BZ CW @@ -1342,70 +1352,70 @@ yd yd "} (13,1,1) = {" -ca +Nw CW -LV -LV -LV -LV -LV -bK +Nn +Nn +Nn +Nn +Nn +na ON -bK -bK -bK -bK -LV -LV -LV -LV -LV +na +na +na +na +Nn +Nn +Nn +Nn +Nn CW CW CW CW -ca -ca +Nw +Nw oL "} (14,1,1) = {" -ca +Nw CW -LV +Nn NO qa nq -LV -bK +Nn +na ON -bK +na Ih Hp -bK -LV +na +Nn BY gj tO -LV -bK +Nn +na Ck eO VF -oq -oq -oq +pO +pO +pO "} (15,1,1) = {" -ca +Nw CW -LV +Nn Wy ht Me -LV -bK +Nn +na Hd -bK +na sB RZ OS @@ -1418,113 +1428,113 @@ sn Ck Ck De -oq -oq +pO +pO gW "} (16,1,1) = {" -ca +Nw CW -LV +Nn NO no ys -LV -bK +Nn +na jB -bK +na jl PD -bK -LV +na +Nn zm zq tO -LV -bK +Nn +na Ck uH De -oq -oq -oq +pO +pO +pO "} (17,1,1) = {" -ca +Nw CW -LV -LV -LV +Nn +Nn +Nn gY -LV -bK +Nn +na jB -bK +na Ys -bK -bK -LV -LV -LV -LV -LV +na +na +Nn +Nn +Nn +Nn +Nn CW CW CW CW -ca -ca +Nw +Nw oL "} (18,1,1) = {" -ca +Nw CW CW CW CW rn -bK -bK +na +na cM gl sW eq -bK -bK -bK -bK -bK -bK +na +na +na +na +na +na CW yd -ca -ca -ca +Nw +Nw +Nw yd yd "} (19,1,1) = {" -ca -ca -ca +Nw +Nw +Nw yd CW do zi -bK +na Tj cM uy Ik Te NL -bK +na Gv Rs WL CW Kp -ca +Nw yd yd yd @@ -1533,7 +1543,7 @@ yd (20,1,1) = {" yd yd -ca +Nw yd CW Oc @@ -1551,7 +1561,7 @@ nc gA CW Ww -ca +Nw yd yd yd @@ -1560,25 +1570,25 @@ yd (21,1,1) = {" yd yd -ca +Nw oL CW AH SI -bK +na Mc td Ik TL Ik Pv -bK +na zX pf xa CW -oq -ca +pO +Nw yd yd yd @@ -1587,7 +1597,7 @@ yd (22,1,1) = {" yd yd -ca +Nw yd CW xp @@ -1605,7 +1615,7 @@ xp xp CW yd -ca +Nw yd yd yd @@ -1614,25 +1624,25 @@ yd (23,1,1) = {" yd yd -ca -ca -ca -ld -Fk -ca -ca +Nw +Nw +Nw +PA +Lc +Nw +Nw CW HI CW HI CW -ca -ld -Fk +Nw +PA +Lc yq -ca -ca -ca +Nw +Nw +Nw yd yd yd @@ -1647,13 +1657,13 @@ yd yd yd yd -ca +Nw CW Zb CW Zb CW -ca +Nw yd yd yd @@ -1674,13 +1684,13 @@ yd yd yd yd -ca -ca -oq -oq -oq -ca -ca +Nw +Nw +pO +pO +pO +Nw +Nw yd yd yd diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 3f73cc328ed..4e3fe1927bc 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -325,3 +325,8 @@ GLOBAL_LIST_INIT(human_invader_antagonists, list( #define ANTAG_GROUP_SYNDICATE "Syndicate" #define ANTAG_GROUP_WIZARDS "Wizard Federation" #define ANTAG_GROUP_XENOS "Xenomorph Infestation" + +#define HUNTER_PACK_COPS "cop_hunters" +#define HUNTER_PACK_RUSSIAN "russian_hunters" +#define HUNTER_PACK_BOUNTY "bounty_hunters" +#define HUNTER_PACK_PSYKER "psyker_hunters" diff --git a/code/datums/id_trim/ruins.dm b/code/datums/id_trim/ruins.dm index 3103ea8317e..fec53a2a0c7 100644 --- a/code/datums/id_trim/ruins.dm +++ b/code/datums/id_trim/ruins.dm @@ -122,12 +122,6 @@ /datum/id_trim/pirate/captain/silverscale assignment = "Silver Scale VIP" -/datum/id_trim/pirate/psykers - assignment = "Psyker-gang Member" - -/datum/id_trim/pirate/captain/psykers - assignment = "Psyker-gang Leader" - //Trims for Dangerous Research, used in ``dangerous_research.dm`` /datum/id_trim/away/dangerous_research assignment = "Researcher" diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 3a940656a07..20e848510ae 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -785,10 +785,6 @@ suffix = "dutchman" name = "pirate ship (Flying Dutchman)" -/datum/map_template/shuttle/pirate/psykers - suffix = "psyker" - name = "pirate ship (Psyker-gang)" - /datum/map_template/shuttle/hunter/space_cop suffix = "space_cop" name = "Police Spacevan" @@ -801,6 +797,10 @@ suffix = "bounty" name = "Bounty Hunter Ship" +/datum/map_template/shuttle/hunter/psyker + suffix = "psyker" + name = "Psyker Fortune-Telling Ship" + /datum/map_template/shuttle/starfury port_id = "starfury" who_can_purchase = null diff --git a/code/modules/antagonists/fugitive/fugitive_outfits.dm b/code/modules/antagonists/fugitive/fugitive_outfits.dm index 364b0755c2f..10c2cc4579a 100644 --- a/code/modules/antagonists/fugitive/fugitive_outfits.dm +++ b/code/modules/antagonists/fugitive/fugitive_outfits.dm @@ -69,186 +69,6 @@ var/obj/item/organ/internal/eyes/robotic/glow/eyes = new() eyes.Insert(H, drop_if_replaced = FALSE) -/datum/outfit/spacepol - name = "Spacepol Officer" - uniform = /obj/item/clothing/under/rank/security/officer/spacepol - suit = /obj/item/clothing/suit/armor/vest/blueshirt - belt = /obj/item/gun/ballistic/automatic/pistol/m1911 - head = /obj/item/clothing/head/hats/warden/police - gloves = /obj/item/clothing/gloves/tackler/combat - shoes = /obj/item/clothing/shoes/jackboots - mask = /obj/item/clothing/mask/gas/sechailer/swat/spacepol - glasses = /obj/item/clothing/glasses/sunglasses - ears = /obj/item/radio/headset - l_pocket = /obj/item/ammo_box/magazine/m45 - r_pocket = /obj/item/restraints/handcuffs - id = /obj/item/card/id/advanced - -/datum/outfit/spacepol/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - if(visualsOnly) - return - var/obj/item/card/id/W = H.wear_id - W.assignment = "Police Officer" - W.registered_name = H.real_name - W.update_label() - W.update_icon() - -/datum/outfit/russian_hunter - name = "Russian Hunter" - id = /obj/item/card/id/advanced - uniform = /obj/item/clothing/under/costume/soviet - suit = /obj/item/clothing/suit/armor/bulletproof - suit_store = /obj/item/gun/ballistic/rifle/boltaction - back = /obj/item/storage/backpack - ears = /obj/item/radio/headset - glasses = /obj/item/clothing/glasses/sunglasses - gloves = /obj/item/clothing/gloves/tackler/combat - head = /obj/item/clothing/head/helmet/alt - shoes = /obj/item/clothing/shoes/russian - l_pocket = /obj/item/ammo_box/a762 - r_pocket = /obj/item/restraints/handcuffs/cable/zipties - -/datum/outfit/russian_hunter/pre_equip(mob/living/carbon/human/equip_to) - - // Let's give the Russians a bit of randomization for style. - var/static/list/alt_uniforms = list( - /obj/item/clothing/under/syndicate/soviet, - /obj/item/clothing/under/syndicate/combat, - /obj/item/clothing/under/syndicate/rus_army, - /obj/item/clothing/under/syndicate/camo, - ) - var/static/list/alt_suits = list( - /obj/item/clothing/suit/armor/vest/russian, - /obj/item/clothing/suit/armor/vest/russian_coat, - ) - var/static/list/alt_helmets = list( - /obj/item/clothing/head/costume/bearpelt, - /obj/item/clothing/head/costume/ushanka, - /obj/item/clothing/head/helmet/rus_helmet, - ) - - if(prob(80)) - uniform = pick(alt_uniforms) - if(prob(50)) - suit = pick(alt_suits) - if(prob(50)) - head = pick(alt_helmets) - -/datum/outfit/russian_hunter/post_equip(mob/living/carbon/human/equip_to, visualsOnly = FALSE) - if(visualsOnly) - return - - if(istype(equip_to.wear_id, /obj/item/card/id)) - var/obj/item/card/id/equipped_card = equip_to.wear_id - equipped_card.assignment = "Russian Bounty Hunter" - equipped_card.registered_name = equip_to.real_name - equipped_card.update_label() - equipped_card.update_icon() - - if(istype(equip_to.w_uniform, /obj/item/clothing/under)) - var/obj/item/clothing/under/uniform = equip_to.w_uniform - uniform.sensor_mode = NO_SENSORS - uniform.has_sensor = NO_SENSORS - -/datum/outfit/russian_hunter/leader - name = "Russian Hunter Leader" - head = /obj/item/clothing/head/costume/ushanka - shoes = /obj/item/clothing/shoes/combat - -/datum/outfit/russian_hunter/leader/pre_equip(mob/living/carbon/human/equip_to) - return // None of the RNG russian equipment stuff. - -/datum/outfit/bountyarmor - name = "Bounty Hunter - Armored" - uniform = /obj/item/clothing/under/rank/prisoner - back = /obj/item/storage/backpack - head = /obj/item/clothing/head/cowboy - suit = /obj/item/clothing/suit/space/hunter - belt = /obj/item/gun/ballistic/automatic/pistol/fire_mag - gloves = /obj/item/clothing/gloves/tackler/combat - shoes = /obj/item/clothing/shoes/jackboots - mask = /obj/item/clothing/mask/gas/hunter - glasses = /obj/item/clothing/glasses/sunglasses/gar - ears = /obj/item/radio/headset - r_pocket = /obj/item/restraints/handcuffs/cable - l_pocket = /obj/item/ammo_box/magazine/m9mm/fire - id = /obj/item/card/id/advanced/bountyhunter - l_hand = /obj/item/gun/ballistic/shotgun/automatic/dual_tube/bounty - - backpack_contents = list( - /obj/item/ammo_casing/shotgun/rubbershot = 4, - /obj/item/ammo_casing/shotgun/incendiary/no_trail = 4, - ) - -/datum/outfit/bountyarmor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - if(visualsOnly) - return - var/obj/item/card/id/W = H.wear_id - W.registered_name = H.real_name - W.update_label() - W.update_icon() - -/datum/outfit/bountyhook - name = "Bounty Hunter - Hook" - uniform = /obj/item/clothing/under/rank/prisoner - back = /obj/item/storage/backpack - head = /obj/item/clothing/head/costume/scarecrow_hat - gloves = /obj/item/clothing/gloves/botanic_leather - ears = /obj/item/radio/headset - shoes = /obj/item/clothing/shoes/jackboots - mask = /obj/item/clothing/mask/scarecrow - r_pocket = /obj/item/restraints/handcuffs/cable - id = /obj/item/card/id/advanced/bountyhunter - r_hand = /obj/item/gun/ballistic/shotgun/hook - - backpack_contents = list( - /obj/item/ammo_casing/shotgun/incapacitate = 6 - ) - -/datum/outfit/bountyhook/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - if(visualsOnly) - return - var/obj/item/card/id/W = H.wear_id - W.registered_name = H.real_name - W.update_label() - W.update_icon() - -/datum/outfit/bountysynth - name = "Bounty Hunter - Synth" - uniform = /obj/item/clothing/under/rank/prisoner - back = /obj/item/storage/backpack - suit = /obj/item/clothing/suit/armor/riot - shoes = /obj/item/clothing/shoes/jackboots - glasses = /obj/item/clothing/glasses/eyepatch - r_pocket = /obj/item/restraints/handcuffs/cable - ears = /obj/item/radio/headset - id = /obj/item/card/id/advanced/bountyhunter - r_hand = /obj/item/storage/medkit/regular - l_hand = /obj/item/pinpointer/shuttle - - backpack_contents = list( - /obj/item/bountytrap = 4 - ) - -//ids and ert code - -/obj/item/card/id/advanced/bountyhunter - assignment = "Bounty Hunter" - icon_state = "card_flame" //oh SHIT - trim = /datum/id_trim/bounty_hunter - -/datum/outfit/bountyarmor/ert - id = /obj/item/card/id/advanced/bountyhunter/ert - -/datum/outfit/bountyhook/ert - id = /obj/item/card/id/advanced/bountyhunter/ert - -/datum/outfit/bountysynth/ert - id = /obj/item/card/id/advanced/bountyhunter/ert - -/obj/item/card/id/advanced/bountyhunter/ert - trim = /datum/id_trim/centcom/bounty_hunter - /datum/outfit/invisible_man name = "Invisible Man" uniform = /obj/item/clothing/under/suit/black_really diff --git a/code/modules/antagonists/fugitive/fugitive_ship.dm b/code/modules/antagonists/fugitive/fugitive_ship.dm deleted file mode 100644 index 0f5d0de7370..00000000000 --- a/code/modules/antagonists/fugitive/fugitive_ship.dm +++ /dev/null @@ -1,63 +0,0 @@ -//works similar to the experiment machine (experiment.dm) except it just holds more and more prisoners - -/obj/machinery/fugitive_capture - name = "bluespace capture machine" - desc = "Much, MUCH bigger on the inside to transport prisoners safely." - icon = 'icons/obj/machines/research.dmi' - icon_state = "bluespace-prison" - density = TRUE - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //ha ha no getting out!! - -/obj/machinery/fugitive_capture/examine(mob/user) - . = ..() - . += span_notice("Add a prisoner by dragging them into the machine.") - -/obj/machinery/fugitive_capture/MouseDrop_T(mob/target, mob/user) - var/mob/living/fugitive_hunter = user - if(!isliving(fugitive_hunter)) - return - if(HAS_TRAIT(fugitive_hunter, TRAIT_UI_BLOCKED) || !Adjacent(fugitive_hunter) || !target.Adjacent(fugitive_hunter) || !ishuman(target)) - return - var/mob/living/carbon/human/fugitive = target - var/datum/antagonist/fugitive/fug_antag = fugitive.mind.has_antag_datum(/datum/antagonist/fugitive) - if(!fug_antag) - to_chat(fugitive_hunter, span_warning("This is not a wanted fugitive!")) - return - if(do_after(fugitive_hunter, 50, target = fugitive)) - add_prisoner(fugitive, fug_antag) - -/obj/machinery/fugitive_capture/proc/add_prisoner(mob/living/carbon/human/fugitive, datum/antagonist/fugitive/antag) - fugitive.forceMove(src) - antag.is_captured = TRUE - to_chat(fugitive, span_userdanger("You are thrown into a vast void of bluespace, and as you fall further into oblivion the comparatively small entrance to reality gets smaller and smaller until you cannot see it anymore. You have failed to avoid capture.")) - fugitive.ghostize(TRUE) //so they cannot suicide, round end stuff. - use_power(active_power_usage) - -/obj/machinery/computer/shuttle/hunter - name = "shuttle console" - shuttleId = "huntership" - possible_destinations = "huntership_home;huntership_custom;whiteship_home;syndicate_nw" - -/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter - name = "shuttle navigation computer" - desc = "Used to designate a precise transit location to travel to." - shuttleId = "huntership" - lock_override = CAMERA_LOCK_STATION - shuttlePortId = "huntership_custom" - see_hidden = FALSE - jump_to_ports = list("huntership_home" = 1, "whiteship_home" = 1, "syndicate_nw" = 1) - view_range = 4.5 - -/obj/structure/closet/crate/eva - name = "EVA crate" - -/obj/structure/closet/crate/eva/PopulateContents() - ..() - for(var/i in 1 to 3) - new /obj/item/clothing/suit/space/eva(src) - for(var/i in 1 to 3) - new /obj/item/clothing/head/helmet/space/eva(src) - for(var/i in 1 to 3) - new /obj/item/clothing/mask/breath(src) - for(var/i in 1 to 3) - new /obj/item/tank/internals/oxygen(src) diff --git a/code/modules/antagonists/fugitive/hunter.dm b/code/modules/antagonists/fugitive/hunters/hunter.dm similarity index 94% rename from code/modules/antagonists/fugitive/hunter.dm rename to code/modules/antagonists/fugitive/hunters/hunter.dm index 343b6ca63e3..8184bc79ad9 100644 --- a/code/modules/antagonists/fugitive/hunter.dm +++ b/code/modules/antagonists/fugitive/hunters/hunter.dm @@ -23,19 +23,23 @@ /datum/antagonist/fugitive_hunter/greet() switch(backstory) - if("space cop") + if(HUNTER_PACK_COPS) to_chat(owner, span_boldannounce("Justice has arrived. I am a member of the Spacepol!")) to_chat(owner, "The criminals should be on the station, we have special huds implanted to recognize them.") to_chat(owner, "As we have lost pretty much all power over these damned lawless megacorporations, it's a mystery if their security will cooperate with us.") - if("russian") + if(HUNTER_PACK_RUSSIAN) to_chat(owner, span_danger("Ay blyat. I am a space-russian smuggler! We were mid-flight when our cargo was beamed off our ship!")) to_chat(owner, span_danger("We were hailed by a man in a green uniform, promising the safe return of our goods in exchange for a favor:")) to_chat(owner, span_danger("There is a local station housing fugitives that the man is after, he wants them returned; dead or alive.")) to_chat(owner, span_danger("We will not be able to make ends meet without our cargo, so we must do as he says and capture them.")) - if("bounty hunters") + if(HUNTER_PACK_BOUNTY) to_chat(owner, span_danger("Time to clock in. I am a bounty hunter! We should be arriving at our mark's hideout shortly.")) to_chat(owner, span_danger("The briefing mentioned our destination was a research station. An unusual place for a target to try and lay low.")) to_chat(owner, span_danger("Our client promised us big bucks, and we intend to make good on our delivery. Let's hope this is an easy paycheck...")) + if(HUNTER_PACK_PSYKER) + to_chat(owner, span_danger("GOOD EVENING, WE ARE PSYKER HUNTE- NO, PSYKER SHIKARIS!")) + to_chat(owner, span_danger("A brainling hit us up on the holopad with an offer we could NOT pass up. We kidnap some fools for them, and in exchange we get a LIFETIME SUPPLY OF GORE.")) + to_chat(owner, span_danger("Our gore supply has been running thin as of late -- How could we say no? The binge MUST go on!")) to_chat(owner, span_boldannounce("You are not an antagonist in that you may kill whomever you please, but you can do anything to ensure the capture of the fugitives, even if that means going through the station.")) owner.announce_objectives() diff --git a/code/modules/antagonists/fugitive/hunters/hunter_gear.dm b/code/modules/antagonists/fugitive/hunters/hunter_gear.dm new file mode 100644 index 00000000000..596420ba8f4 --- /dev/null +++ b/code/modules/antagonists/fugitive/hunters/hunter_gear.dm @@ -0,0 +1,155 @@ +//works similar to the experiment machine (experiment.dm) except it just holds more and more prisoners + +/obj/machinery/fugitive_capture + name = "bluespace capture machine" + desc = "Much, MUCH bigger on the inside to transport prisoners safely." + icon = 'icons/obj/machines/research.dmi' + icon_state = "bluespace-prison" + density = TRUE + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //ha ha no getting out!! + +/obj/machinery/fugitive_capture/examine(mob/user) + . = ..() + . += span_notice("Add a prisoner by dragging them into the machine.") + +/obj/machinery/fugitive_capture/MouseDrop_T(mob/target, mob/user) + var/mob/living/fugitive_hunter = user + if(!isliving(fugitive_hunter)) + return + if(HAS_TRAIT(fugitive_hunter, TRAIT_UI_BLOCKED) || !Adjacent(fugitive_hunter) || !target.Adjacent(fugitive_hunter) || !ishuman(target)) + return + var/mob/living/carbon/human/fugitive = target + var/datum/antagonist/fugitive/fug_antag = fugitive.mind.has_antag_datum(/datum/antagonist/fugitive) + if(!fug_antag) + to_chat(fugitive_hunter, span_warning("This is not a wanted fugitive!")) + return + if(do_after(fugitive_hunter, 50, target = fugitive)) + add_prisoner(fugitive, fug_antag) + +/obj/machinery/fugitive_capture/proc/add_prisoner(mob/living/carbon/human/fugitive, datum/antagonist/fugitive/antag) + fugitive.forceMove(src) + antag.is_captured = TRUE + to_chat(fugitive, span_userdanger("You are thrown into a vast void of bluespace, and as you fall further into oblivion the comparatively small entrance to reality gets smaller and smaller until you cannot see it anymore. You have failed to avoid capture.")) + fugitive.ghostize(TRUE) //so they cannot suicide, round end stuff. + use_power(active_power_usage) + +/obj/machinery/computer/shuttle/hunter + name = "shuttle console" + shuttleId = "huntership" + possible_destinations = "huntership_home;huntership_custom;whiteship_home;syndicate_nw" + +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter + name = "shuttle navigation computer" + desc = "Used to designate a precise transit location to travel to." + shuttleId = "huntership" + lock_override = CAMERA_LOCK_STATION + shuttlePortId = "huntership_custom" + see_hidden = FALSE + jump_to_ports = list("huntership_home" = 1, "whiteship_home" = 1, "syndicate_nw" = 1) + view_range = 4.5 + +/obj/structure/closet/crate/eva + name = "EVA crate" + +/obj/structure/closet/crate/eva/PopulateContents() + ..() + for(var/i in 1 to 3) + new /obj/item/clothing/suit/space/eva(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/helmet/space/eva(src) + for(var/i in 1 to 3) + new /obj/item/clothing/mask/breath(src) + for(var/i in 1 to 3) + new /obj/item/tank/internals/oxygen(src) + +///Psyker-friendly shuttle gear! + +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter/psyker + name = "psyker navigation warper" + desc = "Uses amplified brainwaves to designate and map a precise transit location for the psyker shuttle." + icon_screen = "recharge_comp_on" + interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_SET_MACHINE //blind friendly + x_offset = 0 + y_offset = 11 + +/obj/machinery/fugitive_capture/psyker + name = "psyker recreation cell" + desc = "A repurposed recreation chamber frequently used by psykers, which soothes its user by bombarding them with loud noises and painful stimuli. Repurposed for the storage of prisoners, and should have no (lasting) side effects on non-psykers forced into it." + +/obj/machinery/fugitive_capture/psyker/process() //I have no fucking idea how to make click-dragging work for psykers so this one just sucks them in. + for(var/mob/living/carbon/human/potential_victim in range(1, get_turf(src))) + var/datum/antagonist/fugitive/fug_antag = potential_victim.mind.has_antag_datum(/datum/antagonist/fugitive) + if(fug_antag) + potential_victim.visible_message(span_alert("[potential_victim] is violently sucked into the [src]!")) + add_prisoner(potential_victim, fug_antag) + +/// Psyker gear +/obj/item/reagent_containers/hypospray/medipen/gore + name = "gore autoinjector" + desc = "A ghetto-looking autoinjector filled with gore, aka dirty kronkaine. You probably shouldn't take this while on the job, but it is a super-stimulant. Don't take two at once." + volume = 15 + amount_per_transfer_from_this = 15 + list_reagents = list(/datum/reagent/drug/kronkaine/gore = 15) + icon_state = "maintenance" + base_icon_state = "maintenance" + label_examine = FALSE + +//Captain's special mental recharge gear + +/obj/item/clothing/suit/armor/reactive/psykerboost + name = "reactive psykerboost armor" + desc = "An experimental suit of armor psykers use to push their mind further. Reacts to hostiles by powering up the wearer's psychic abilities." + cooldown_message = span_danger("The psykerboost armor's mental coils are still cooling down!") + emp_message = span_danger("The psykerboost armor's mental coils recalibrate for a moment with a soft whine.") + color = "#d6ad8b" + +/obj/item/clothing/suit/armor/reactive/psykerboost/cooldown_activation(mob/living/carbon/human/owner) + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread + sparks.set_up(1, 1, src) + sparks.start() + return ..() + +/obj/item/clothing/suit/armor/reactive/psykerboost/reactive_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + owner.visible_message(span_danger("[src] blocks [attack_text], psykerboosting [owner]'s mental powers!")) + for(var/datum/action/cooldown/spell/psychic_ability in owner.actions) + if(psychic_ability.school == SCHOOL_PSYCHIC) + psychic_ability.reset_spell_cooldown() + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration + return TRUE + +/obj/item/clothing/suit/armor/reactive/psykerboost/emp_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + owner.visible_message(span_danger("[src] blocks [attack_text], draining [owner]'s mental powers!")) + for(var/datum/action/cooldown/spell/psychic_ability in owner.actions) + if(psychic_ability.school == SCHOOL_PSYCHIC) + psychic_ability.StartCooldown() + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration + return TRUE + +/obj/structure/bouncy_castle + name = "bouncy castle" + desc = "And if you do drugs, you go to hell before you die. Please." + icon = 'icons/obj/bouncy_castle.dmi' + icon_state = "bouncy_castle" + anchored = TRUE + density = TRUE + +/obj/structure/bouncy_castle/Initialize(mapload, mob/gored) + . = ..() + if(gored) + name = gored.real_name + +/obj/structure/bouncy_castle/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src, 'sound/effects/attackblob.ogg', 50, TRUE) + else + playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + if(BURN) + playsound(src, 'sound/items/welder.ogg', 100, TRUE) + +/obj/item/paper/crumpled/fluff/fortune_teller + name = "scribbled note" + default_raw_text = "Remember! The customers love that gumball we have as a crystal ball. \ + Even if it's completely useless to us, resist the urge to chew it." + diff --git a/code/modules/antagonists/fugitive/hunters/hunter_outfits.dm b/code/modules/antagonists/fugitive/hunters/hunter_outfits.dm new file mode 100644 index 00000000000..a3cc239c203 --- /dev/null +++ b/code/modules/antagonists/fugitive/hunters/hunter_outfits.dm @@ -0,0 +1,227 @@ +/datum/outfit/spacepol + name = "Spacepol Officer" + uniform = /obj/item/clothing/under/rank/security/officer/spacepol + suit = /obj/item/clothing/suit/armor/vest/blueshirt + belt = /obj/item/gun/ballistic/automatic/pistol/m1911 + head = /obj/item/clothing/head/hats/warden/police + gloves = /obj/item/clothing/gloves/tackler/combat + shoes = /obj/item/clothing/shoes/jackboots + mask = /obj/item/clothing/mask/gas/sechailer/swat/spacepol + glasses = /obj/item/clothing/glasses/sunglasses + ears = /obj/item/radio/headset + l_pocket = /obj/item/ammo_box/magazine/m45 + r_pocket = /obj/item/restraints/handcuffs + id = /obj/item/card/id/advanced + +/datum/outfit/spacepol/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + var/obj/item/card/id/W = H.wear_id + W.assignment = "Police Officer" + W.registered_name = H.real_name + W.update_label() + W.update_icon() + +/datum/outfit/russian_hunter + name = "Russian Hunter" + id = /obj/item/card/id/advanced + uniform = /obj/item/clothing/under/costume/soviet + suit = /obj/item/clothing/suit/armor/bulletproof + suit_store = /obj/item/gun/ballistic/rifle/boltaction + back = /obj/item/storage/backpack + ears = /obj/item/radio/headset + glasses = /obj/item/clothing/glasses/sunglasses + gloves = /obj/item/clothing/gloves/tackler/combat + head = /obj/item/clothing/head/helmet/alt + shoes = /obj/item/clothing/shoes/russian + l_pocket = /obj/item/ammo_box/a762 + r_pocket = /obj/item/restraints/handcuffs/cable/zipties + +/datum/outfit/russian_hunter/pre_equip(mob/living/carbon/human/equip_to) + + // Let's give the Russians a bit of randomization for style. + var/static/list/alt_uniforms = list( + /obj/item/clothing/under/syndicate/soviet, + /obj/item/clothing/under/syndicate/combat, + /obj/item/clothing/under/syndicate/rus_army, + /obj/item/clothing/under/syndicate/camo, + ) + var/static/list/alt_suits = list( + /obj/item/clothing/suit/armor/vest/russian, + /obj/item/clothing/suit/armor/vest/russian_coat, + ) + var/static/list/alt_helmets = list( + /obj/item/clothing/head/costume/bearpelt, + /obj/item/clothing/head/costume/ushanka, + /obj/item/clothing/head/helmet/rus_helmet, + ) + + if(prob(80)) + uniform = pick(alt_uniforms) + if(prob(50)) + suit = pick(alt_suits) + if(prob(50)) + head = pick(alt_helmets) + +/datum/outfit/russian_hunter/post_equip(mob/living/carbon/human/equip_to, visualsOnly = FALSE) + if(visualsOnly) + return + + if(istype(equip_to.wear_id, /obj/item/card/id)) + var/obj/item/card/id/equipped_card = equip_to.wear_id + equipped_card.assignment = "Russian Bounty Hunter" + equipped_card.registered_name = equip_to.real_name + equipped_card.update_label() + equipped_card.update_icon() + + if(istype(equip_to.w_uniform, /obj/item/clothing/under)) + var/obj/item/clothing/under/uniform = equip_to.w_uniform + uniform.sensor_mode = NO_SENSORS + uniform.has_sensor = NO_SENSORS + +/datum/outfit/russian_hunter/leader + name = "Russian Hunter Leader" + head = /obj/item/clothing/head/costume/ushanka + shoes = /obj/item/clothing/shoes/combat + +/datum/outfit/russian_hunter/leader/pre_equip(mob/living/carbon/human/equip_to) + return // None of the RNG russian equipment stuff. + +/datum/outfit/bountyarmor + name = "Bounty Hunter - Armored" + uniform = /obj/item/clothing/under/rank/prisoner + back = /obj/item/storage/backpack + head = /obj/item/clothing/head/cowboy + suit = /obj/item/clothing/suit/space/hunter + belt = /obj/item/gun/ballistic/automatic/pistol/fire_mag + gloves = /obj/item/clothing/gloves/tackler/combat + shoes = /obj/item/clothing/shoes/jackboots + mask = /obj/item/clothing/mask/gas/hunter + glasses = /obj/item/clothing/glasses/sunglasses/gar + ears = /obj/item/radio/headset + r_pocket = /obj/item/restraints/handcuffs/cable + l_pocket = /obj/item/ammo_box/magazine/m9mm/fire + id = /obj/item/card/id/advanced/bountyhunter + l_hand = /obj/item/gun/ballistic/shotgun/automatic/dual_tube/bounty + + backpack_contents = list( + /obj/item/ammo_casing/shotgun/rubbershot = 4, + /obj/item/ammo_casing/shotgun/incendiary/no_trail = 4, + ) + +/datum/outfit/bountyarmor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + var/obj/item/card/id/W = H.wear_id + W.registered_name = H.real_name + W.update_label() + W.update_icon() + +/datum/outfit/bountyhook + name = "Bounty Hunter - Hook" + uniform = /obj/item/clothing/under/rank/prisoner + back = /obj/item/storage/backpack + head = /obj/item/clothing/head/costume/scarecrow_hat + gloves = /obj/item/clothing/gloves/botanic_leather + ears = /obj/item/radio/headset + shoes = /obj/item/clothing/shoes/jackboots + mask = /obj/item/clothing/mask/scarecrow + r_pocket = /obj/item/restraints/handcuffs/cable + id = /obj/item/card/id/advanced/bountyhunter + r_hand = /obj/item/gun/ballistic/shotgun/hook + + backpack_contents = list( + /obj/item/ammo_casing/shotgun/incapacitate = 6 + ) + +/datum/outfit/bountyhook/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + var/obj/item/card/id/W = H.wear_id + W.registered_name = H.real_name + W.update_label() + W.update_icon() + +/datum/outfit/bountysynth + name = "Bounty Hunter - Synth" + uniform = /obj/item/clothing/under/rank/prisoner + back = /obj/item/storage/backpack + suit = /obj/item/clothing/suit/armor/riot + shoes = /obj/item/clothing/shoes/jackboots + glasses = /obj/item/clothing/glasses/eyepatch + r_pocket = /obj/item/restraints/handcuffs/cable + ears = /obj/item/radio/headset + id = /obj/item/card/id/advanced/bountyhunter + r_hand = /obj/item/storage/medkit/regular + l_hand = /obj/item/pinpointer/shuttle + + backpack_contents = list( + /obj/item/bountytrap = 4 + ) + +/datum/id_trim/bounty_hunter/psykers + assignment = "Psyker-gang Shikari" + +/datum/id_trim/bounty_hunter/psykers/captain + assignment = "Psyker-gang Shikari Captain" + +/datum/id_trim/bounty_hunter/psykers/seer + assignment = "Psyker-gang Shikari Seer" + +/datum/outfit/psyker/captain + name = "Psyker-Shikari Leader" + + id_trim = /datum/id_trim/bounty_hunter/psykers/captain + suit = /obj/item/clothing/suit/armor/reactive/psykerboost + uniform = /obj/item/clothing/under/pants/camo + +/datum/outfit/psyker + name = "Psyker-Shikari Hunter" + glasses = null + head = null + ears = /obj/item/radio/headset/syndicate/alt/psyker + uniform = /obj/item/clothing/under/pants/track + gloves = /obj/item/clothing/gloves/fingerless + shoes = /obj/item/clothing/shoes/jackboots + suit = /obj/item/clothing/suit/armor/vest/blueshirt + l_pocket = /obj/item/reagent_containers/hypospray/medipen/gore + r_pocket = /obj/item/reagent_containers/hypospray/medipen/gore + id = /obj/item/card/id/advanced/bountyhunter + + id_trim = /datum/id_trim/bounty_hunter/psykers + +/datum/outfit/psyker/post_equip(mob/living/carbon/human/equipped) + . = ..() + equipped.psykerize() + +/datum/outfit/psyker_seer + name = "Psyker-Shikari Seer" + glasses = /obj/item/clothing/glasses/regular/thin + ears = /obj/item/radio/headset + uniform = /obj/item/clothing/under/pants/jeans + suit = /obj/item/clothing/suit/hazardvest + gloves = /obj/item/clothing/gloves/fingerless + shoes = /obj/item/clothing/shoes/sandal + l_pocket = /obj/item/restraints/handcuffs/cable/zipties + r_pocket = /obj/item/restraints/handcuffs/cable/zipties + + id_trim = /datum/id_trim/bounty_hunter/psykers/seer + +//ids and ert code + +/obj/item/card/id/advanced/bountyhunter + assignment = "Bounty Hunter" + icon_state = "card_flame" //oh SHIT + trim = /datum/id_trim/bounty_hunter + +/datum/outfit/bountyarmor/ert + id = /obj/item/card/id/advanced/bountyhunter/ert + +/datum/outfit/bountyhook/ert + id = /obj/item/card/id/advanced/bountyhunter/ert + +/datum/outfit/bountysynth/ert + id = /obj/item/card/id/advanced/bountyhunter/ert + +/obj/item/card/id/advanced/bountyhunter/ert + trim = /datum/id_trim/centcom/bounty_hunter diff --git a/code/modules/antagonists/pirate/pirate_gangs.dm b/code/modules/antagonists/pirate/pirate_gangs.dm index 5afce41b751..5f12a9b2c32 100644 --- a/code/modules/antagonists/pirate/pirate_gangs.dm +++ b/code/modules/antagonists/pirate/pirate_gangs.dm @@ -115,19 +115,3 @@ GLOBAL_LIST_INIT(heavy_pirate_gangs, init_pirate_gangs(is_heavy = TRUE)) response_received = "Thanks for the credits, landlubbers." response_too_late = "Too late to beg for mercy!" response_not_enough = "Trying to cheat us? You'll regret this!" - -///psychic gangster junkies who want some allowance to continue the gore-binge -/datum/pirate_gang/psykers - name = "Roving Psyker-gang" - - ship_template_id = "psyker" - ship_name_pool = "psyker_names" //just points to THE ONE AND ONLY - - threat_title = "Junkie tribute" - threat_content = "Hello, you psychically dormant pawn-pieces. It's the %SHIPNAME! Our funds are running a little low, and we're not going to be able to continue our gore-binge! %PAYOFF credits should do, wanna help us out?" - arrival_announcement = "We didn't blaze this far just to send some idle threats. Just you wait; we'll make you wish you were in a mental asylum." - possible_answers = list("Send some funds so they go away.","We're not funding these junkies.") - - response_received = "You guys aren't so bad for being dormants. The next gore-fest goes to you guys. Peace!" - response_too_late = "Oh, now you think we're worth the money. Pathetic dormants." - response_not_enough = "You really shouldn't have messed with us. You're in for a psychic nightmare." diff --git a/code/modules/antagonists/pirate/pirate_outfits.dm b/code/modules/antagonists/pirate/pirate_outfits.dm index dc2e5b3dea6..8afc8a0b764 100644 --- a/code/modules/antagonists/pirate/pirate_outfits.dm +++ b/code/modules/antagonists/pirate/pirate_outfits.dm @@ -68,29 +68,3 @@ head = /obj/item/clothing/head/costume/crown mask = /obj/item/clothing/mask/cigarette/cigar/havana l_pocket = /obj/item/lighter - -/datum/outfit/pirate/psyker - name = "Psyker-gang Member" - - glasses = null - head = null - ears = /obj/item/radio/headset/syndicate/alt/psyker - uniform = /obj/item/clothing/under/pants/track - gloves = /obj/item/clothing/gloves/fingerless - shoes = /obj/item/clothing/shoes/jackboots - suit = /obj/item/clothing/suit/armor/vest/blueshirt - l_pocket = /obj/item/reagent_containers/hypospray/medipen/gore - r_pocket = /obj/item/reagent_containers/hypospray/medipen/gore - - id_trim = /datum/id_trim/pirate/psykers - -/datum/outfit/pirate/psyker/post_equip(mob/living/carbon/human/equipped) - . = ..() - equipped.psykerize() - -/datum/outfit/pirate/psyker/captain - name = "Psyker-gang Leader" - - id_trim = /datum/id_trim/pirate/captain/psykers - suit = /obj/item/clothing/suit/armor/reactive/psykerboost - uniform = /obj/item/clothing/under/pants/camo diff --git a/code/modules/antagonists/pirate/pirate_roles.dm b/code/modules/antagonists/pirate/pirate_roles.dm index 8d1c32f0820..1544e4b8d93 100644 --- a/code/modules/antagonists/pirate/pirate_roles.dm +++ b/code/modules/antagonists/pirate/pirate_roles.dm @@ -94,19 +94,3 @@ /obj/effect/mob_spawn/ghost_role/human/pirate/silverscale/gunner rank = "Top-drawer" - -/obj/effect/mob_spawn/ghost_role/human/pirate/psykers - name = "mental energizer" - desc = "A cryo sleeper modified to keep the occupant mentally sharp. However that works..." - icon_state = "psykerpod" - prompt_name = "a psyker-ganger" - mob_species = /datum/species/human - outfit = /datum/outfit/pirate/psyker - rank = "Racketeer" - fluff_spawn = /obj/structure/showcase/machinery/oldpod/used/psyker - name_beginnings = "psyker_beginnings" - name_endings = "psyker_endings" - -/obj/effect/mob_spawn/ghost_role/human/pirate/psykers/captain - rank = "Allbrain" - outfit = /datum/outfit/pirate/psyker/captain diff --git a/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm b/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm index b38b67563a4..b48b8e2df9f 100644 --- a/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm +++ b/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm @@ -99,14 +99,6 @@ y_offset = 0 see_hidden = FALSE -/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/pirate/psyker - name = "psyker navigation warper" - desc = "Uses amplified brainwaves to designate and map a precise transit location for the psyker shuttle." - icon_screen = "recharge_comp_on" - interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_SET_MACHINE //blind friendly - x_offset = 0 - y_offset = 11 - /obj/docking_port/mobile/pirate name = "pirate shuttle" shuttle_id = "pirate" diff --git a/code/modules/antagonists/pirate/pirate_special_items.dm b/code/modules/antagonists/pirate/pirate_special_items.dm deleted file mode 100644 index 6fe47dab8dd..00000000000 --- a/code/modules/antagonists/pirate/pirate_special_items.dm +++ /dev/null @@ -1,68 +0,0 @@ -/obj/item/reagent_containers/hypospray/medipen/gore - name = "gore autoinjector" - desc = "A ghetto-looking autoinjector filled with gore, aka dirty kronkaine. You probably shouldn't take this while on the job, but it is a super-stimulant. Don't take two at once." - volume = 15 - amount_per_transfer_from_this = 15 - list_reagents = list(/datum/reagent/drug/kronkaine/gore = 15) - icon_state = "maintenance" - base_icon_state = "maintenance" - label_examine = FALSE - -//Captain's special mental recharge gear - -/obj/item/clothing/suit/armor/reactive/psykerboost - name = "reactive psykerboost armor" - desc = "An experimental suit of armor psykers use to push their mind further. Reacts to hostiles by powering up the wearer's psychic abilities." - cooldown_message = span_danger("The psykerboost armor's mental coils are still cooling down!") - emp_message = span_danger("The psykerboost armor's mental coils recalibrate for a moment with a soft whine.") - color = "#d6ad8b" - -/obj/item/clothing/suit/armor/reactive/psykerboost/cooldown_activation(mob/living/carbon/human/owner) - var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread - sparks.set_up(1, 1, src) - sparks.start() - return ..() - -/obj/item/clothing/suit/armor/reactive/psykerboost/reactive_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - owner.visible_message(span_danger("[src] blocks [attack_text], psykerboosting [owner]'s mental powers!")) - for(var/datum/action/cooldown/spell/psychic_ability in owner.actions) - if(psychic_ability.school == SCHOOL_PSYCHIC) - psychic_ability.reset_spell_cooldown() - reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration - return TRUE - -/obj/item/clothing/suit/armor/reactive/psykerboost/emp_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - owner.visible_message(span_danger("[src] blocks [attack_text], draining [owner]'s mental powers!")) - for(var/datum/action/cooldown/spell/psychic_ability in owner.actions) - if(psychic_ability.school == SCHOOL_PSYCHIC) - psychic_ability.StartCooldown() - reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration - return TRUE - -/obj/structure/bouncy_castle - name = "bouncy castle" - desc = "And if you do drugs, you go to hell before you die. Please." - icon = 'icons/obj/bouncy_castle.dmi' - icon_state = "bouncy_castle" - anchored = TRUE - density = TRUE - -/obj/structure/bouncy_castle/Initialize(mapload, mob/gored) - . = ..() - if(gored) - name = gored.real_name - -/obj/structure/bouncy_castle/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BRUTE) - if(damage_amount) - playsound(src, 'sound/effects/attackblob.ogg', 50, TRUE) - else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) - if(BURN) - playsound(src, 'sound/items/welder.ogg', 100, TRUE) - -/obj/item/paper/crumpled/fluff/fortune_teller - name = "scribbled note" - default_raw_text = "Remember! The customers love that gumball we have as a crystal ball. \ - Even if it's completely useless to us, resist the urge to chew it." diff --git a/code/modules/events/ghost_role/fugitive_event.dm b/code/modules/events/ghost_role/fugitive_event.dm index 24aa4798c79..54523bafde3 100644 --- a/code/modules/events/ghost_role/fugitive_event.dm +++ b/code/modules/events/ghost_role/fugitive_event.dm @@ -99,14 +99,18 @@ //security team gets called in after 10 minutes of prep to find the refugees /datum/round_event/ghost_role/fugitives/proc/spawn_hunters() - var/backstory = pick("space cop", "russian", "bounty hunter") + var/backstory = pick(HUNTER_PACK_COPS, HUNTER_PACK_RUSSIAN, HUNTER_PACK_BOUNTY, HUNTER_PACK_PSYKER) var/datum/map_template/shuttle/ship - if(backstory == "space cop") - ship = new /datum/map_template/shuttle/hunter/space_cop - else if (backstory == "russian") - ship = new /datum/map_template/shuttle/hunter/russian - else - ship = new /datum/map_template/shuttle/hunter/bounty + switch(backstory) + if(HUNTER_PACK_COPS) + ship = new /datum/map_template/shuttle/hunter/space_cop + if(HUNTER_PACK_RUSSIAN) + ship = new /datum/map_template/shuttle/hunter/russian + if(HUNTER_PACK_BOUNTY) + ship = new /datum/map_template/shuttle/hunter/bounty + if(HUNTER_PACK_PSYKER) + ship = new /datum/map_template/shuttle/hunter/psyker + var/x = rand(TRANSITIONEDGE,world.maxx - TRANSITIONEDGE - ship.width) var/y = rand(TRANSITIONEDGE,world.maxy - TRANSITIONEDGE - ship.height) var/z = SSmapping.empty_space.z_value diff --git a/code/modules/mob_spawn/ghost_roles/fugitive_hunter_roles.dm b/code/modules/mob_spawn/ghost_roles/fugitive_hunter_roles.dm index 32d0175dff2..a603f495114 100644 --- a/code/modules/mob_spawn/ghost_roles/fugitive_hunter_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/fugitive_hunter_roles.dm @@ -26,7 +26,7 @@ prompt_name = "a spacepol officer" you_are_text = "I am a member of the Spacepol!" flavour_text = "Justice has arrived. We must capture those fugitives lurking on that station!" - back_story = "space cop" + back_story = HUNTER_PACK_COPS outfit = /datum/outfit/spacepol icon = 'icons/obj/machines/sleeper.dmi' icon_state = "sleeper" @@ -41,7 +41,7 @@ you_are_text = "Ay blyat. I am a Space-Russian smuggler!" flavour_text = "We were mid-flight when our cargo was beamed off our ship! Must be on station somewhere? \ We must \"legally\" reaquire it by any means necessary - is our property, after all!" - back_story = "russian" + back_story = HUNTER_PACK_RUSSIAN outfit = /datum/outfit/russian_hunter /obj/effect/mob_spawn/ghost_role/human/fugitive/russian/leader @@ -54,11 +54,23 @@ prompt_name = "a bounty hunter" you_are_text = "I'm a bounty hunter." flavour_text = "We got a new bounty on some fugitives, dead or alive." - back_story = "bounty hunters" + back_story = HUNTER_PACK_BOUNTY desc = "A small sleeper typically used to make long distance travel a bit more bearable." icon = 'icons/obj/machines/sleeper.dmi' icon_state = "sleeper" +/obj/effect/mob_spawn/ghost_role/human/fugitive/psykers + name = "mental energizer" + desc = "A cryo sleeper modified to keep the occupant mentally sharp. However that works..." + icon_state = "psykerpod" + prompt_name = "a psyker-hunter" + mob_species = /datum/species/human + outfit = /datum/outfit/psyker + +/obj/effect/mob_spawn/ghost_role/human/fugitive/psykers/captain + prompt_name = "a psyker-hunter captain" + outfit = /datum/outfit/psyker/captain + /obj/effect/mob_spawn/ghost_role/human/fugitive/bounty/Destroy() var/obj/structure/fluff/empty_sleeper/S = new(drop_location()) S.setDir(dir) @@ -72,3 +84,31 @@ /obj/effect/mob_spawn/ghost_role/human/fugitive/bounty/synth outfit = /datum/outfit/bountysynth + +/obj/effect/mob_spawn/ghost_role/human/fugitive/bounty/psyker + name = "mental energizer" + desc = "A cryo sleeper modified to keep the occupant mentally sharp. However that works..." + icon_state = "psykerpod" + prompt_name = "a psyker" + you_are_text = "Ahahaha! I am a Psyker Shikari!" + flavour_text = "Man, waking up from a gorenap always BLOWS. Finding dealers in this sector of space is always difficult, but \ + we've recieved an offer that might set us up for life! Kidnap some fugitives and get FREE GORE!" + back_story = HUNTER_PACK_PSYKER + outfit = /datum/outfit/psyker + +/obj/effect/mob_spawn/ghost_role/human/fugitive/bounty/psyker/captain + prompt_name = "a psyker Captain" + back_story = HUNTER_PACK_PSYKER + outfit = /datum/outfit/psyker/captain + +/obj/effect/mob_spawn/ghost_role/human/fugitive/bounty/psyker/seer + name = "cryosleep pod" + desc = "A dingy, poorly maintained, but still run-of-the-mill cryo sleeper." + icon = 'icons/obj/machines/sleeper.dmi' + icon_state = "sleeper" + prompt_name = "a psyker seer" + you_are_text = "psyker seer" + flavour_text = "Oh great, the fortunte-tellers want my help with something again. They picked up up while I was space-hitchhiking, said they would take me anywhere \ + if I assisted them with my 'flesh-gaze'. They're a bunch of freaks, but at least they leave me be after I'm done helping them..." + back_story = HUNTER_PACK_PSYKER + outfit = /datum/outfit/psyker_seer diff --git a/tgstation.dme b/tgstation.dme index d3a98dc4a50..620b1b0a178 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2622,8 +2622,9 @@ #include "code\modules\antagonists\fugitive\fugitive.dm" #include "code\modules\antagonists\fugitive\fugitive_equipment.dm" #include "code\modules\antagonists\fugitive\fugitive_outfits.dm" -#include "code\modules\antagonists\fugitive\fugitive_ship.dm" -#include "code\modules\antagonists\fugitive\hunter.dm" +#include "code\modules\antagonists\fugitive\hunters\hunter.dm" +#include "code\modules\antagonists\fugitive\hunters\hunter_gear.dm" +#include "code\modules\antagonists\fugitive\hunters\hunter_outfits.dm" #include "code\modules\antagonists\greentext\greentext.dm" #include "code\modules\antagonists\heretic\cosmic_effect.dm" #include "code\modules\antagonists\heretic\heretic_antag.dm" @@ -2734,7 +2735,6 @@ #include "code\modules\antagonists\pirate\pirate_outfits.dm" #include "code\modules\antagonists\pirate\pirate_roles.dm" #include "code\modules\antagonists\pirate\pirate_shuttle_equipment.dm" -#include "code\modules\antagonists\pirate\pirate_special_items.dm" #include "code\modules\antagonists\pyro_slime\pyro_slime.dm" #include "code\modules\antagonists\revenant\haunted_item.dm" #include "code\modules\antagonists\revenant\revenant_abilities.dm"