From 9b3153cabc66a3e648ac74757d278cd87c86e01a Mon Sep 17 00:00:00 2001 From: Kyep Date: Sat, 4 Mar 2017 03:39:42 -0800 Subject: [PATCH] Terror Spiders 5 - Fixes & Tweaks II Fixes: - Spiders can no longer get stuck in vents, because they coccooned a mob on top of a pipe, and it broke the pipe. Similarly, spiders can no longer coccoon anchored objects of any kind. Fixes bug #6221 properly. - Spiders will no longer ignore mechs and space pods. This was leading to people cheesing the away mission with a ripley and a mech-mounted drill. - Prince, Queen, etc in away missions no longer stand still like statues. Grays still stay on their vents. - White spider in away mission can no longer infect people in a way that makes it possible to transfer spiderlings to the main station. - White spider eggs no exist for two minutes longer than they should after hatching from someone. - Signs in the away mission no longer contain the text 'improper'. - Spiderlings that hatch in the away mission with an opened queen lair no longer get stuck. - Two misplaced lights in the away mission have been fixed. - Queen nests in the away mission which live for a very long time can no longer depressurize their area by smashing walls. Updates: - Webs spun by white spiders will infect humans who are silly enough to walk into them. Hardsuits protect against this. - Spiders will now be quicker to open doors. This should stop them getting hung up on doors they can open. - Empress has been tweaked to have an 'erase brood' ability (wipes infestation, for adminbus), and her spit does BURN instead of TOX. --- .../map_files/RandomZLevels/terrorspiders.dmm | 53 +++++++++---------- .../hostile/terror_spiders/actions.dm | 35 +++++++++--- .../hostile/terror_spiders/empress.dm | 14 ++++- .../hostile/terror_spiders/queen.dm | 5 +- .../hostile/terror_spiders/terror_ai.dm | 25 ++++----- .../hostile/terror_spiders/terror_spiders.dm | 2 +- .../hostile/terror_spiders/white.dm | 7 +-- code/modules/surgery/organs/parasites.dm | 8 +-- 8 files changed, 92 insertions(+), 57 deletions(-) diff --git a/_maps/map_files/RandomZLevels/terrorspiders.dmm b/_maps/map_files/RandomZLevels/terrorspiders.dmm index e48faab9187..9a1ab47780d 100644 --- a/_maps/map_files/RandomZLevels/terrorspiders.dmm +++ b/_maps/map_files/RandomZLevels/terrorspiders.dmm @@ -54,7 +54,7 @@ "bb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera{c_tag = "Arrivals"; dir = 8; network = list("UO71")},/turf/simulated/floor/plasteel{dir = 4; heat_capacity = 1e+006; icon_state = "neutral"},/area/awaymission/UO71/plaza) "bc" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaymission/UO71/plaza) "bd" = (/obj/structure/closet/secure_closet{desc = "It's a secure locker for personnel. The first card swiped gains control."; icon_broken = "cabinetdetective_broken"; icon_closed = "cabinetdetective"; icon_locked = "cabinetdetective_locked"; icon_off = "cabinetdetective_broken"; icon_opened = "cabinetdetective_open"; icon_state = "cabinetdetective"; locked = 0; name = "personal closet"; req_access_txt = "271"},/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaymission/UO71/plaza) -"be" = (/obj/machinery/light/small{dir = 1},/obj/structure/table/woodentable,/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaymission/UO71/plaza) +"be" = (/obj/machinery/light/small{dir = 1},/obj/structure/table/woodentable,/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/item/weapon/gun/energy/laser/awaymission_aeg,/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaymission/UO71/plaza) "bf" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaymission/UO71/plaza) "bg" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaymission/UO71/plaza) "bh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; level = 1},/turf/simulated/floor/plasteel{dir = 4; heat_capacity = 1e+006; icon_state = "neutralcorner"},/area/awaymission/UO71/plaza) @@ -522,7 +522,7 @@ "kb" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "vault"},/area/awaymission/UO71/gateway) "kc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/spider/terrorweb,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "white"},/area/awaymission/UO71/gateway) "kd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/spider/cocoon{icon_state = "cocoon_large1"},/obj/effect/spider/terrorweb,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "white"},/area/awaymission/UO71/gateway) -"ke" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'DANGER - LETHAL BIOHAZARDS WITHIN'"; name = "\improper CONTAINMENT AREA"},/turf/simulated/wall,/area/awaymission/UO71/science) +"ke" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'DANGER - LETHAL BIOHAZARDS WITHIN'"; name = "CONTAINMENT AREA"},/turf/simulated/wall,/area/awaymission/UO71/science) "kf" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9},/area/awaymission/UO71/science) "kg" = (/turf/simulated/floor/plasteel{tag = "icon-whitepurple (NORTHEAST)"; icon_state = "whitepurple"; dir = 5},/area/awaymission/UO71/science) "kh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/rust,/area/awaymission/UO71/science) @@ -531,7 +531,7 @@ "kk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "whitepurple"},/area/awaymission/UO71/science) "kl" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/twohanded/required/kirbyplants{layer = 5},/obj/machinery/light/small{tag = "icon-bulb1 (EAST)"; icon_state = "bulb1"; dir = 4},/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "whitepurplecorner"},/area/awaymission/UO71/science) "km" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/awaymission/UO71/science) -"kn" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'DANGER - LETHAL BIOHAZARDS WITHIN'"; name = "\improper CONTAINMENT AREA"},/turf/simulated/wall/r_wall,/area/awaymission/UO71/science) +"kn" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'DANGER - LETHAL BIOHAZARDS WITHIN'"; name = "CONTAINMENT AREA"},/turf/simulated/wall/r_wall,/area/awaymission/UO71/science) "ko" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/paper/terrorspiders5,/turf/simulated/floor/plasteel{tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9},/area/awaymission/UO71/science) "kp" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/plasteel{tag = "icon-whitepurple (NORTHEAST)"; icon_state = "whitepurple"; dir = 5},/area/awaymission/UO71/science) "kq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaymission/UO71/centralhall) @@ -1055,7 +1055,7 @@ "uo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Research Maintenance"; req_access_txt = "271"},/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg2"; tag = "icon-platingdmg2"},/area/awaymission/UO71/medical) "up" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{burnt = 1; heat_capacity = 1e+006; icon_state = "panelscorched"; tag = "icon-panelscorched"},/area/awaymission/UO71/science) "uq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaymission/UO71/science) -"ur" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser/awaymission_aeg,/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaymission/UO71/bridge) +"ur" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/sign/securearea{desc = "A warning sign which reads 'DANGER - LETHAL BIOHAZARDS WITHIN'"; name = "CONTAINMENT AREA"},/turf/simulated/wall/rust,/area/awaymission/UO71/mining) "us" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/wall,/area/awaymission/UO71/science) "ut" = (/turf/simulated/wall,/area/awaymission/UO71/outside) "uu" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; icon_state = "weld"; on = 1; pressure_checks = 1; welded = 1},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaymission/UO71/bridge) @@ -1101,7 +1101,7 @@ "vi" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating{dir = 8; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaymission/UO71/science) "vj" = (/obj/machinery/atmospherics/binary/valve{dir = 2},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaymission/UO71/science) "vk" = (/obj/machinery/atmospherics/binary/valve{dir = 2},/turf/simulated/floor/plating{dir = 4; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaymission/UO71/science) -"vl" = (/obj/structure/table/woodentable,/obj/item/weapon/paper/terrorspiders3,/obj/item/weapon/pen/edagger,/obj/item/stack/telecrystal{amount = 10},/obj/item/device/chameleon,/obj/item/weapon/reagent_containers/glass/bottle/traitor,/obj/item/borg/upgrade/syndicate,/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaymission/UO71/loot) +"vl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'DANGER - LETHAL BIOHAZARDS WITHIN'"; name = "CONTAINMENT AREA"},/turf/simulated/wall/rust,/area/awaymission/UO71/mining) "vm" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaymission/UO71/medical) "vn" = (/obj/machinery/optable,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaymission/UO71/medical) "vo" = (/obj/machinery/computer/operating,/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaymission/UO71/medical) @@ -1127,6 +1127,7 @@ "vI" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating{dir = 10; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaymission/UO71/science) "vJ" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating{heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaymission/UO71/science) "vK" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating{dir = 6; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaymission/UO71/science) +"vL" = (/obj/structure/table/woodentable,/obj/item/weapon/paper/terrorspiders3,/obj/item/weapon/pen/edagger,/obj/item/stack/telecrystal{amount = 10},/obj/item/device/chameleon,/obj/item/weapon/reagent_containers/glass/bottle/traitor,/obj/item/borg/upgrade/syndicate,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaymission/UO71/loot) "vM" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "white"},/area/awaymission/UO71/medical) "vN" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaymission/UO71/medical) "vO" = (/obj/structure/sign/deathsposal,/turf/simulated/wall/rust,/area/awaymission/UO71/medical) @@ -1256,6 +1257,7 @@ "yi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaymission/UO71/mining) "yj" = (/obj/structure/grille,/obj/structure/window/full/reinforced,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaymission/UO71/mining) "yk" = (/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/mining) +"yl" = (/mob/living/simple_animal/hostile/poison/terror_spider/green{wander = 0},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/queen) "ym" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plating{dir = 5; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaymission/UO71/mining) "yn" = (/obj/machinery/mineral/processing_unit_console{machinedir = 8},/turf/simulated/wall/rust,/area/awaymission/UO71/mining) "yo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/camera{c_tag = "Mining"; dir = 4; network = list("UO71")},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/mining) @@ -1263,6 +1265,7 @@ "yq" = (/obj/structure/grille,/obj/structure/window/full/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaymission/UO71/mining) "yr" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/mining) "ys" = (/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaymission/UO71/mining) +"yt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/queen) "yu" = (/obj/machinery/conveyor{dir = 2; id = "UO71_mining"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating{dir = 4; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaymission/UO71/mining) "yv" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaymission/UO71/mining) "yw" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 7; tag = "icon-manifold-b-f (WEST)"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaymission/UO71/mining) @@ -1292,8 +1295,6 @@ "yU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/mining) "yV" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/mining) "yW" = (/obj/machinery/alarm/monitor{dir = 4; frequency = 1439; locked = 0; pixel_x = -23; pixel_y = 0; req_access = null},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/mining) -"yX" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'DANGER - LETHAL BIOHAZARDS WITHIN'"; name = "\improper CONTAINMENT AREA"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/rust,/area/awaymission/UO71/mining) -"yY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'DANGER - LETHAL BIOHAZARDS WITHIN'"; name = "\improper CONTAINMENT AREA"},/turf/simulated/wall/rust,/area/awaymission/UO71/mining) "yZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/rust,/area/awaymission/UO71/mining) "za" = (/obj/structure/sign/biohazard,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/rust,/area/awaymission/UO71/mining) "zb" = (/obj/structure/sign/biohazard,/turf/simulated/wall/rust,/area/awaymission/UO71/mining) @@ -1310,7 +1311,6 @@ "zm" = (/obj/structure/dresser,/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaymission/UO71/loot) "zn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/queen) "zo" = (/obj/structure/stool/bed/chair/wood/normal,/obj/item/clothing/shoes/syndigaloshes,/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaymission/UO71/loot) -"zp" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaymission/UO71/loot) "zq" = (/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaymission/UO71/loot) "zr" = (/obj/effect/glowshroom/single,/turf/simulated/floor/plating/airless/asteroid,/area/awaymission/UO71/outside) "zt" = (/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaymission/UO71/loot) @@ -1325,7 +1325,6 @@ "zC" = (/obj/effect/spider/cocoon{icon_state = "cocoon_large1"},/obj/effect/spider/terrorweb,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/queen) "zD" = (/turf/simulated/floor/plating/airless/asteroid,/area/awaymission/UO71/queen) "zE" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "271"},/turf/simulated/wall/rust,/area/awaymission/UO71/queen) -"zF" = (/mob/living/simple_animal/hostile/poison/terror_spider/green,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/queen) "zG" = (/obj/machinery/door/poddoor{id_tag = "UO71_Caves"; name = "Caves Lockdown Door"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/queen) "zH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 7; tag = "icon-manifold-b-f (WEST)"},/obj/effect/spider/terrorweb,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/queen) "zI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/queen) @@ -1335,8 +1334,6 @@ "zM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/mineral/random/labormineral,/area/awaymission/UO71/queen) "zN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 7; tag = "icon-manifold-b-f (WEST)"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/queen) "zO" = (/obj/structure/table,/obj/machinery/light,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "floorgrime"},/area/awaymission/UO71/queen) -"zP" = (/turf/simulated/wall/mineral/wood,/area/awaymission/UO71/queen) -"zQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/mineral/wood,/area/awaymission/UO71/queen) "zR" = (/obj/machinery/door/poddoor{id_tag = "UO71_Queen"; name = "Caves Lockdown Door"},/turf/simulated/floor/wood,/area/awaymission/UO71/queen) "zS" = (/turf/simulated/floor/wood,/area/awaymission/UO71/queen) "zT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/awaymission/UO71/queen) @@ -1431,7 +1428,7 @@ aaaaaaaaaaaaaaabababababababababababababababababababfOfOfOfOfOfOfOfOfNpwpxfOpypz aaaaaaaaaaaaaaabababababababababababababababababababababababababababfNpRjifOfOfOpSfOpTpUpTpTpVpWpXpYpZqaoakmfbfbfbqbqcqdqefeqfqgqhqiqjfeqkqlqmqnfeqofehFmFfbababababababababnTnTnpnpnTababababnpqpqpqqqpqpnpqrqsnpnpnpabababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababfOqtkhquqvmrqwqxpTqyqzpTpVqAqBqCqDqaoamRfbfbfbqEfbqFqFfbqGqHfbqIqJfbfbfbqKqLfeqMfbhFmFfbababababababababnTqNqOqOnpnTnTnTnpnpqPqQqRqSqTqUqVqWqXqYnpabababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababfOqZjirarbrcrdrepTqyqypTrhriqCqCrjqarkrlrmrmrmrnrmrorpferqmzfbrrrsfbrtruqmrvfbrwfbrxryfbfbfbfbfefbfbfbfbnprzrArBrCnTrDrErFrGrHrIrJrKrLrLrMrNrOqYnpnpnTnTababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabababababababababababababababababababababababababababfNrPkhqurQmrrRrSpTrgrUpTpVrVrWrXrYqarZmRsaurrTsdsesfrpfefefefefbfefbfefesgfbfbshfesisjskslsmsnsoslspsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsHsIsIsJsKsLsMnTababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababababababababfNrPkhqurQmrrRrSpTrgrUpTpVrVrWrXrYqarZmRsasbrTsdsesfrpfefefefefbfefbfefesgfbfbshfesisjskslsmsnsoslspsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsHsIsIsJsKsLsMnTababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababfNqZkhfOfOfOfNfNpTpTsNpTpVsOsPsQsRqaoamRsarprpsSsarpsTfbabababababfbsUsVqmsWferwfejMsXnQsYsZsYtasYtbtctdtetftftgthtitjtktlsBtmtntotptqtrtstttutvtwtxtynpababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababfNtztAnEtBnFnFtCtDAitDtDtEtFtGtHtItItKkmsasasatLsatMtMsasasasaababfbtNqmqmsWferwfbtOtPfefbfbfbfefbfbfbfbnptQtRtStTnptUtVtWtXtYtZtuuaubucrBrBuduenpnpnTnTababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababfOufugolomomuhuiujuqukujulumunuoupujisusutsarpuuuvrprpuvuwsbsaababfefeuxuyfefeqMfbuzuAfbababababababababnTuBuCuDnpnpuEuFuGnpuHuIuJuKuLuMuNuOuPuQnTabababababababababababababaaaaaaaaaaaaaa @@ -1457,47 +1454,47 @@ aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababab aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababwuwuyUyTyVwuabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababwvyWyTyTwuabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababwuyLyTyTwuabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababwuyXyTyYwuabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababwuuryTvlwuabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababwuyZyTwuwuabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababwuyZyTwuwuabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababwuzayTzbwuabababababababababababababababababababababababababababababababababababababababababababababababab zczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczdzdzdzezfzdzdzdzdzdzdzdzdzczczczczczczczczczczczczcpTpTpTpTpTzczczczczczczczczczczczczczczczczczczczczczczczc aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababzgzgzhzizjzhzhzgzgzgzgzgzgabababababababababababababpTzkzlzmpTabababababababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababzgzgzhznzjzjzhzgzgzgzgzgzgabababababababababababababpTzozpzqpTababababababzruWabababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWabababababzgzgzhznzjzjzhzgzgzgzgzgzgabababababababababababababpTvlztztpTababzruWuWuWuWzrabababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababzgzgzhznzjzjzhzgzgzgzgzgzgabababababababababababababpTzoztzqpTababababababzruWabababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWabababababzgzgzhznzjzjzhzgzgzgzgzgzgabababababababababababababpTvLztztpTababzruWuWuWuWzrabababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWabababuWuWuWababababzgzgzhznzjzuzhzgzgzgzgzgzgabababababababababababababpTpTzvpTpTabuWuWuWuWuWuWuWabababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWababzgzgzhznzwzjzhzgzgzgzgzgzgababababababababababababuWuWuWuWabababuWuWabuWuWuWuWabababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababuWzruWuWuWababababababababababuWuWuWabzgzgzhznzjzxzhzgzgzgzgzgzgabuWuWuWuWuWuWabababababuWababababuWzruWabzruWuWuWuWabababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababuWababababababababababababababababababababababababababuWuWuWuWababababababababababababuWuWuWzyzyzyzzzAzyzyzyzyzgzgzgzguWuWabababuWuWuWabababuWuWuWuWuWuWuWuWuWabuWuWuWuWuWabababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababuWuWabababababababababababababababababababababababababuWuWuWababababababababababababababuWuWzyzyzyzzzjzBzCzxzyzyzyzgzDuWabababababuWababababuWabababuWuWuWabuWuWuWuWuWuWuWabababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaababababababababababababababababababababuWuWabababababababababababababababababababababababuWuWzrabababababababababababababababuWuWzEzFzGznzwzjzjzxzxzyzyzgzDuWababuWabuWuWabababababababuWuWuWababababuWuWuWuWuWuWababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababababababuWuWabababababababababababababababababababababababuWuWzrabababababababababababababababuWuWzEylzGznzwzjzjzxzxzyzyzgzDuWababuWabuWuWabababababababuWuWuWababababuWuWuWuWuWuWababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababuWuWuWababababababababababababababababababababuWuWuWabababababababababababababababababuWzyzyzyzHzIzJzjzxzKzyzyzgzguWababuWabuWabababababababuWuWuWababababababuWuWuWuWzrababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababuWuWuWababababababababuWuWuWuWuWabababababuWuWuWabababababababababababababababababababzyzyzyzLzxzjzjzwzxzyzyzyzyuWababuWuWuWababuWababababuWuWabababababababuWuWuWuWuWababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababuWuWababababababuWuWuWuWuWuWuWuWabababuWuWzrabababababababababababababababababababzyzyzyzMzxzxzjzjzjzjzyzyzyuWababuWuWabababuWababababuWuWabababababababzruWuWuWuWababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababuWuWuWuWuWuWuWuWababababababuWuWuWabuWuWababababababababababababababababababababzyzyzyzMzxzCzjzjzjzjzyzyzyuWabababababababuWuWababuWuWababababababababuWuWuWuWuWababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabababababababababababababababababababababababababababuWuWuWabababababababababababuWuWuWuWababababababababababababababababababababzyzyzyzMzxzxzjzjzjzjzGzFzEuWuWuWabababababuWuWababuWuWabababababababababuWuWuWabababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababababababababuWuWuWabababababababababababuWuWuWuWababababababababababababababababababababzyzyzyzMzxzxzjzjzjzjzGylzEuWuWuWabababababuWuWababuWuWabababababababababuWuWuWabababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababuWuWuWabababababababababababababababuWuWababababababababababababababababababababzyzyzgzMzxzjzjzwzxzgzyzyzyuWuWuWuWuWuWababuWuWababuWuWabababababuWuWuWuWuWuWababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababuWuWababababababababababababababababababuWababababababababababababababababababababzyzyzgzLzxzjzjzjzxzgzgzyzyabuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWabababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababuWuWuWuWababababababababababababuWzruWababababuWuWuWabababababababababuWababababababababzyzyzgzLzwzjzjzjzxzxzgzyzyabuWuWuWuWuWuWuWuWuWuWababababababababababuWuWuWabababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabababababababababababababababababababababuWabababababababababababababuWuWuWuWuWuWzrababababuWuWuWuWabababababuWuWababuWabababababzyzyzgzNzIzJzOzjzxzxzgzyzyababuWuWuWuWuWuWuWuWababababababababababuWuWuWuWabababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababuWabababababababababababababuWuWuWuWuWuWzrababababuWuWuWuWabababababuWuWababuWabababababzyzyzgzNzIytzOzjzxzxzgzyzyababuWuWuWuWuWuWuWuWababababababababababuWuWuWuWabababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababzruWuWuWuWuWuWuWababababababuWuWuWababababuWababuWabababababzyzyzyznzjzxzgzjzCzjzgzgzyabababuWuWuWuWuWuWuWabababuWuWuWuWabababuWabuWuWabababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWababababababuWababababuWababuWuWababababzyzyzyznzjzjzgzjzxzxzgzgzyababuWuWuWuWababuWuWabababuWabababababuWuWuWuWababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWzruWuWuWuWabababuWuWuWababababuWababuWuWabababuWzyzyzyznzCzgzgzgzxzxzgzgzyababuWuWababababuWuWuWababuWababababuWuWuWuWabababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababuWuWzruWuWuWabuWuWuWzruWuWuWuWuWababababababuWababuWuWabuWuWuWzEzjzGznzxzgzgzgzgzxzgzyzyabuWuWuWuWuWabababuWuWababuWuWabababuWuWuWuWabababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWzyzyzyznzxzjzgzgzjzjzyzyzyuWuWuWababuWuWababuWuWuWababuWababuWuWuWuWuWabababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWababababzyzyzgznzjzxzgzjzxzwzGzjzEuWuWababababuWabababuWuWababuWuWabuWuWuWuWuWabababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWabababzyzgzgznzjzwzjzjzjzjzyzyzyabuWababuWabuWuWababuWuWabababuWuWuWuWuWuWuWabababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWabababuWuWuWuWabababzyzgzgzNzIzJzBzwzjzjzyzyzyabuWuWuWuWababuWababuWuWuWababuWuWuWuWuWuWababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWabababzyzgzgznzjzwzBzjzjzjzyzyzyabuWababuWabuWuWababuWuWabababuWuWuWuWuWuWuWabababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWabababuWuWuWuWabababzyzgzgzNzIzJzjzwzjzjzyzyzyabuWuWuWuWababuWababuWuWuWababuWuWuWuWuWuWababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWabababababuWuWuWababzyzgzgzMzjzjzjzjzjzgzyzyzyabababababababuWabababuWuWabuWuWuWabuWuWuWababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWabababababababuWuWuWabzyzyzyzMzgzjzjzjzgzgzyzyzyababababababuWuWababababuWuWuWuWabuWuWuWabababababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWabababababababababuWuWabzgzPzPzQzPzRzRzRzPzPzPzPzgababuWuWuWuWuWabababuWuWuWuWabuWuWuWuWababababababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWabababababababababababuWuWuWzgzPzSzTzUzSzSzSzVzWzSzPzgabababababababababuWuWuWuWuWuWuWabababababababababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWabababababababababababababuWuWzgzPzSzXzYzSzSzSzZzYAazPzgabababababababuWuWuWuWuWuWababababababababababababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababuWuWabababababababababababababababuWabzgzPzSAbzYzSzSzSzSAczSzPzgabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababuWuWuWabababababababababababababababababzgzPAdzSzSzSAezSzSzSzSzPzgabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababuWuWuWabababababababababababababababababzgzPzSzSzSzSzSzSzSzSzSzPzgabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababuWuWabababababababababababababababababababzgzPzZAfAgzSzSzSAhzSzSzPzgabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababzgzPzPzPzPzPzPzPzPzPzPzPzgabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWabababababababababuWuWabzgzdzdzezdzRzRzRzdzdzdzdzgababuWuWuWuWuWabababuWuWuWuWabuWuWuWuWababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWabababababababababababuWuWuWzgzdzSzTzUzSzSzSzVzWzSzdzgabababababababababuWuWuWuWuWuWuWabababababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWabababababababababababababuWuWzgzdzSzXzYzSzSzSzZzYAazdzgabababababababuWuWuWuWuWuWababababababababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababuWuWabababababababababababababababuWabzgzdzSAbzYzSzSzSzSAczSzdzgabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababuWuWuWabababababababababababababababababzgzdAdzSzSzSAezSzSzSzSzdzgabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababuWuWuWabababababababababababababababababzgzdzSzSzSzSzSzSzSzSzSzdzgabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababuWuWabababababababababababababababababababzgzdzZAfAgzSzSzSAhzSzSzdzgabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababzgzdzdzdzdzdzdzdzdzdzdzdzgabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm index 9547fa23b61..cb67f8a0289 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm @@ -90,6 +90,17 @@ var/mob/living/simple_animal/hostile/poison/terror_spider/queen/user = owner user.QueenFakeLings() +// ---------- EMPRESS + +/datum/action/innate/terrorspider/queen/empress/empresserase + name = "Erase Brood" + icon_icon = 'icons/effects/blood.dmi' + button_icon_state = "mgibbl1" + +/datum/action/innate/terrorspider/queen/empress/empresserase/Activate() + var/mob/living/simple_animal/hostile/poison/terror_spider/queen/empress/user = owner + user.EraseBrood() + // ---------- WEB /mob/living/simple_animal/hostile/poison/terror_spider/proc/Web(var/thick = 0) @@ -109,6 +120,10 @@ W.creator_ckey = ckey if(thick) W.opacity = 1 + W.name = "thick terror web" + if(web_infects) + W.infectious = 1 + W.name = "sharp terror web" /obj/effect/spider/terrorweb name = "terror web" @@ -119,6 +134,7 @@ health = 20 // two welders, or one laser shot (15 for the normal spider webs) icon_state = "stickyweb1" var/creator_ckey = null + var/infectious = 0 /obj/effect/spider/terrorweb/New() ..() @@ -146,8 +162,14 @@ M.Weaken(4) // 8 seconds. DeCloakNearby() if(iscarbon(mover)) + var/mob/living/carbon/C = mover + if(!IsTSInfected(C) && infectious) + var/inject_target = pick("chest","head") + if(C.can_inject(null, 0, inject_target, 0)) + to_chat(C, "[src] slices into you!") + new /obj/item/organ/internal/body_egg/terror_eggs(C) spawn(70) - if(mover.loc == loc) + if(C.loc == loc) qdel(src) return 1 else @@ -198,11 +220,12 @@ C.pixel_x = cocoon_target.pixel_x C.pixel_y = cocoon_target.pixel_y for(var/obj/O in C.loc) - if(istype(O, /obj/item)) - O.loc = C - else if(istype(O, /obj/machinery) || istype(O, /obj/structure)) - O.loc = C - large_cocoon = 1 + if(!O.anchored) + if(istype(O, /obj/item)) + O.loc = C + else if(istype(O, /obj/machinery) || istype(O, /obj/structure)) + O.loc = C + large_cocoon = 1 for(var/mob/living/L in C.loc) if(istype(L, /mob/living/simple_animal/hostile/poison/terror_spider)) continue diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress.dm index 637af3b1e9a..750ba694a1b 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress.dm @@ -24,9 +24,16 @@ rapid = 1 canlay = 1000 spider_tier = TS_TIER_5 + projectiletype = /obj/item/projectile/terrorqueenspit/empress var/datum/action/innate/terrorspider/queen/empress/empresslings/empresslings_action + var/datum/action/innate/terrorspider/queen/empress/empresserase/empresserase_action atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) +/mob/living/simple_animal/hostile/poison/terror_spider/queen/empress/New() + ..() + empresserase_action = new() + empresserase_action.Grant(src) + /mob/living/simple_animal/hostile/poison/terror_spider/queen/empress/handle_automated_action() return @@ -88,5 +95,10 @@ qdel(T) for(var/obj/effect/spider/spiderling/terror_spiderling/T in ts_spiderling_list) T.stillborn = 1 - to_chat(src, "Brood will die off shortly.") + to_chat(src, "All Terror Spiders, except yourself, will die off shortly.") + +/obj/item/projectile/terrorqueenspit/empress + damage_type = BURN + damage = 30 + bonus_tox = 0 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm index e4a6a5da3cd..e259b6ed7ba 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm @@ -30,7 +30,7 @@ var/lastnestsetup = 0 var/neststep = 0 var/hasnested = 0 - var/spider_max_per_nest = 20 // above this, queen stops spawning more, and declares war. + var/spider_max_per_nest = 25 // above this, AI queens become stable var/canlay = 4 // main counter for egg-laying ability! # = num uses, incremented at intervals var/eggslaid = 0 var/spider_can_fakelings = 3 // spawns defective spiderlings that don't grow up, used to freak out crew, atmosphere @@ -344,6 +344,7 @@ damage = 0 icon_state = "toxin" damage_type = TOX + var/bonus_tox = 30 /obj/item/projectile/terrorqueenspit/on_hit(mob/living/carbon/target) if(ismob(target)) @@ -352,4 +353,4 @@ if(L.can_inject(null, 0, "chest", 0)) L.reagents.add_reagent("terror_queen_toxin", 15) if(!isterrorspider(L)) - L.adjustToxLoss(30) \ No newline at end of file + L.adjustToxLoss(bonus_tox) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_ai.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_ai.dm index a8d3300f163..a9ed8dff9a4 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_ai.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_ai.dm @@ -21,7 +21,7 @@ continue if(iscarbon(H)) var/mob/living/carbon/C = H - if(IsInfected(C)) // only target the infected if they're attacking us. Even then, lowest priority. + if(IsTSInfected(C)) // only target the infected if they're attacking us. Even then, lowest priority. if(C in enemies) targets3 += C continue @@ -65,15 +65,13 @@ targets2 += H else targets3 += H - if(health < maxHealth) - // if we're hurt, and ONLY if we're hurt, do the additional check for mechs/space pods. Save processing time. - for(var/obj/mecha/M in view(src, vision_range)) - if(get_dist(M, src) <= 2) - targets2 += M - else - targets3 += M - for(var/obj/spacepod/S in view(src, vision_range)) - targets3 += S + for(var/obj/mecha/M in view(src, vision_range)) + if(get_dist(M, src) <= 2) + targets2 += M + else + targets3 += M + for(var/obj/spacepod/S in view(src, vision_range)) + targets3 += S if(targets1.len) return targets1 if(targets2.len) @@ -140,7 +138,10 @@ last_spins_webs = world.time var/obj/effect/spider/terrorweb/T = locate() in get_turf(src) if(!T) - new /obj/effect/spider/terrorweb(get_turf(src)) + var/obj/effect/spider/terrorweb/W = new /obj/effect/spider/terrorweb(loc) + if(web_infects) + W.infectious = 1 + W.name = "sharp terror web" visible_message("[src] puts up some spider webs.") else if(ai_ventcrawls && world.time > (last_ventcrawl_time + my_ventcrawl_freq)) if(prob(idle_ventcrawl_chance)) @@ -211,7 +212,7 @@ if(m2 == mylocation) chasecycles++ ClearObstacle(get_turf(mygoal)) - if(chasecycles >= 2) + if(chasecycles >= 1) chasecycles = 0 if(spider_opens_doors) var/tgt_dir = get_dir(src,mygoal) diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm index 67681de8240..9134715aac3 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm @@ -130,6 +130,7 @@ var/global/list/ts_spiderling_list = list() var/spider_myqueen = null var/mylocation = null var/chasecycles = 0 + var/web_infects = 0 var/datum/action/innate/terrorspider/web/web_action var/datum/action/innate/terrorspider/wrap/wrap_action @@ -263,7 +264,6 @@ var/global/list/ts_spiderling_list = list() // these are static spiders, specifically for the UO71 away mission, make them stay in place ai_ventcrawls = 0 spider_placed = 1 - wander = 0 else ts_count_alive_station++ // after 30 seconds, assuming nobody took control of it yet, offer it to ghosts. diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm index a85e0ebb42e..0eced254544 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm @@ -22,6 +22,7 @@ move_to_delay = 4 spider_tier = TS_TIER_2 loot = list(/obj/item/clothing/accessory/medal) + web_infects = 1 /mob/living/simple_animal/hostile/poison/terror_spider/white/LoseTarget() @@ -42,8 +43,8 @@ return var/inject_target = pick("chest","head") L.attack_animal(src) - if(L.stunned || L.paralysis || L.can_inject(null,0,inject_target,0)) - if(!IsInfected(L)) + if(L.stunned || L.paralysis || L.can_inject(null, 0, inject_target, 0)) + if(!IsTSInfected(L)) visible_message("[src] buries its long fangs deep into the [inject_target] of [L]!") new /obj/item/organ/internal/body_egg/terror_eggs(L) if(!ckey) @@ -54,7 +55,7 @@ L.Weaken(5) L.Stun(5) -/mob/living/simple_animal/hostile/poison/terror_spider/proc/IsInfected(mob/living/carbon/C) // Terror AI requires this +/proc/IsTSInfected(mob/living/carbon/C) // Terror AI requires this if(C.get_int_organ(/obj/item/organ/internal/body_egg)) return 1 return 0 \ No newline at end of file diff --git a/code/modules/surgery/organs/parasites.dm b/code/modules/surgery/organs/parasites.dm index 71ecdc41139..414a48cf5ab 100644 --- a/code/modules/surgery/organs/parasites.dm +++ b/code/modules/surgery/organs/parasites.dm @@ -60,8 +60,8 @@ // the spider eggs secrete stimulants to keep their host alive until they hatch switch(current_cycle) if(1) // immediately - to_chat(owner,"Your spider bite wound hurts horribly! ") - if(istype(get_area(owner), /area/awaycontent) || istype(get_area(owner), /area/awaymission)) + to_chat(owner,"Your wound hurts horribly! ") + if(is_away_level(owner.z)) awaymission_infection = 1 if(15) // 30s... enough time for the nerve agent to kick in, the pain to be blocked, and healing to begin to_chat(owner,"The pain has faded, and stopped bleeding, though the skin around it has turned black.") @@ -76,7 +76,7 @@ if(110) // 3m40s... to_chat(owner,"The black flesh splits open completely, revealing a cluster of small black oval shapes inside you, shapes that seem to be moving!") if(120) // 4m... - if(awaymission_infection && is_away_level(owner.z)) + if(awaymission_infection && !is_away_level(owner.z)) // we started in the awaymission, we ended on the station. // To prevent someone bringing an infection back, we're going to trigger an alternate, equally-bad result here. // Actually, let's make it slightly worse... just to discourage people from bringing back infections. @@ -108,7 +108,7 @@ owner.gib() else owner.adjustToxLoss(rand(100,180)) // normal case, range: 100-180, average 140, almost crit (150). - if(190) // 6m 30s + if(130) // 4m 20s to_chat(owner,"The spiderlings are gone. Your wound, though, looks worse than ever. Remnants of tiny spider eggs, and dead spiders, inside your flesh. Disgusting.") qdel(src)