diff --git a/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm b/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm index c0ff28b6275..a3b8db53bf2 100644 --- a/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm +++ b/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm @@ -1,4 +1,3 @@ - /area/awaymission/UO71 name = "UO71" icon_state = "away" @@ -81,103 +80,103 @@ /obj/item/weapon/paper/terrorspiders1 name = "paper - 'Sealed Facility'" - info = {"SEALED FACILITY
\ -
\ - This facility is sealed shut by order of Commander Marquez. Do not enter.
\ - Terror spiders live here. We believe they are a weapon developed by the syndicate.
\ - Any surviving personnel are to evacuate immediately via the gateway.
\ + info = {"SEALED FACILITY
+
+ This facility is sealed shut by order of Commander Marquez. Do not enter.
+ Terror spiders live here. We believe they are a weapon developed by the syndicate.
+ Any surviving personnel are to evacuate immediately via the gateway.
"} /obj/item/weapon/paper/terrorspiders2 name = "paper - 'The Trio of Terror'" - info = {"Status Report on the 'Terrors'
\ -
\ - All the spiders are deadly. We know this much already. Within an hour of their appearance, they have killed several staff.
\ - Three, however, bear particular mention, as they appear to be leading the spider hivemind.
\ -
\ - The Mother is held in containment 1. Advise leaving her alone.
\ - It is likely that the hundreds of tiny spiders swarming over her back would come to her defense if she was threatened.
\ -
\ - The Prince is held in containment 2. He appears very aggressive, incredibly fast, strong, and durable. Extreme force and agility would be required to neutralize him.
\ - It is likely the appearance of the prince was related to our initial aggression against the Queen. These things can THINK.
\ -
\ - The Queen cannot be contained. She lives in the old bar, south of mining. She continues to breed dangerous spiders at an alarming rate.
\ - Many of her offspring are already roaming the compound, traveling through the vents. Contact with the team sent to subdue her has been lost.
\ -
\ -
\ - Based on the situation, Commander, I advise immediate evacuation through the gateway.
\ - -Research Director Simons
\ + info = {"Status Report on the 'Terrors'
+
+ All the spiders are deadly. We know this much already. Within an hour of their appearance, they have killed several staff.
+ Three, however, bear particular mention, as they appear to be leading the spider hivemind.
+
+ The Mother is held in containment 1. Advise leaving her alone.
+ It is likely that the hundreds of tiny spiders swarming over her back would come to her defense if she was threatened.
+
+ The Prince is held in containment 2. He appears very aggressive, incredibly fast, strong, and durable. Extreme force and agility would be required to neutralize him.
+ It is likely the appearance of the prince was related to our initial aggression against the Queen. These things can THINK.
+
+ The Queen cannot be contained. She lives in the old bar, south of mining. She continues to breed dangerous spiders at an alarming rate.
+ Many of her offspring are already roaming the compound, traveling through the vents. Contact with the team sent to subdue her has been lost.
+
+
+ Based on the situation, Commander, I advise immediate evacuation through the gateway.
+ -Research Director Simons
"} /obj/item/weapon/paper/terrorspiders3 name = "paper - 'Final Report'" - info = {"FROM: Field Agent 0738
\ - TO: Syndicate #873589
\ - SUBJECT: Mission Success
\ -
\ - I have seeded the Terror Queen egg in a dingy looking bar that bored engineers constructed near the mining tunnels.
\ - No doubt she will grow soon.
\ -
\ - I have also placed the Mother and Prince eggs nearby, injected with sedative. Hopefully the dimwitted NT scientists bring them back for study.
\ - With any luck, the Queen will sense them telepathically, think NT is holding her children hostage, and attack.
\ -
\ - I am going to extract out of the gateway before this all goes down.
\ - I don't imagine the staff have very long to live once the Queen declares war on this place.
\ + info = {"FROM: Field Agent 0738
+ TO: Syndicate #873589
+ SUBJECT: Mission Success
+
+ I have seeded the Terror Queen egg in a dingy looking bar that bored engineers constructed near the mining tunnels.
+ No doubt she will grow soon.
+
+ I have also placed the Mother and Prince eggs nearby, injected with sedative. Hopefully the dimwitted NT scientists bring them back for study.
+ With any luck, the Queen will sense them telepathically, think NT is holding her children hostage, and attack.
+
+ I am going to extract out of the gateway before this all goes down.
+ I don't imagine the staff have very long to live once the Queen declares war on this place.
"} /obj/item/weapon/paper/terrorspiders4 name = "paper - 'Prescription for Jones, David'" - info = {"PRESCRIPTION FOR: David Jones
\ - RANK: Miner
\ - FOR: Haloperidol
\ - REASON FOR TREATMENT: Hallucinations, Paranoia
\ - CAUSE: Hallucinations caused by encounter with toxic spit of spider in the caves. Paranoia caused by disappearing staff and suspicions of syndicate infiltration.
\ - TREATMENT PLAN: Take as needed. See Dr. Phloxi in one week if symptoms persist.
\ + info = {"PRESCRIPTION FOR: David Jones
+ RANK: Miner
+ FOR: Haloperidol
+ REASON FOR TREATMENT: Hallucinations, Paranoia
+ CAUSE: Hallucinations caused by encounter with toxic spit of spider in the caves. Paranoia caused by disappearing staff and suspicions of syndicate infiltration.
+ TREATMENT PLAN: Take as needed. See Dr. Phloxi in one week if symptoms persist.
"} /obj/item/weapon/paper/terrorspiders5 name = "paper - 'A Study in Terror'" - info = {"Findings Overview
\ -
\ -

Gray Spiders
Stealthy predators that ambush prey from vents. Otherwise weak.

\ -

Red Spiders
Can kill anyone in melee, but slow.

\ -

Green
Will lay eggs on dead bodies, breeding more spiders.

\ -

Black
Even a single bite is enough to kill a humanoid, given time.

\ -

White
Injects a parasitic agent. Deemed to pose too great an infection risk to study.

\ -

Purple
Only seen guarding the nest of the Queen to the south. Appear to be territorial, and very dangerous.

\ -

Prince
Held in containment 2. Appears to be a sort of super-warrior. Fast, strong, and thickly armored.

\ -

Mother
Carries hordes of spiderlings on its back. Held in containment 1.

\ -

Queen
Unable to contain. Present south of Cargo before contact was lost. Presumed ruler of the local hive.

\ + info = {"Findings Overview
+
+

Gray Spiders
Stealthy predators that ambush prey from vents. Otherwise weak.

+

Red Spiders
Can kill anyone in melee, but slow.

+

Green
Will lay eggs on dead bodies, breeding more spiders.

+

Black
Even a single bite is enough to kill a humanoid, given time.

+

White
Injects a parasitic agent. Deemed to pose too great an infection risk to study.

+

Purple
Only seen guarding the nest of the Queen to the south. Appear to be territorial, and very dangerous.

+

Prince
Held in containment 2. Appears to be a sort of super-warrior. Fast, strong, and thickly armored.

+

Mother
Carries hordes of spiderlings on its back. Held in containment 1.

+

Queen
Unable to contain. Present south of Cargo before contact was lost. Presumed ruler of the local hive.

"} /obj/item/weapon/paper/terrorspiders6 name = "paper - 'A Study in Venom'" - info = {"Initial Report - Black Widow Venom
\ -
\ - Even a single bite kills within a few minutes. Immediate charcoal is necessary for the victim to survive.
\ - The fascinating thing is that multiple bites actually cause rapid symptom onset. The victim quickly loses the ability to walk.
\ - One test monkey went from perfect health to death in under 60 seconds - from 3 bites.
\ + info = {"Initial Report - Black Widow Venom
+
+ Even a single bite kills within a few minutes. Immediate charcoal is necessary for the victim to survive.
+ The fascinating thing is that multiple bites actually cause rapid symptom onset. The victim quickly loses the ability to walk.
+ One test monkey went from perfect health to death in under 60 seconds - from 3 bites.
I am so very glad I'm not responsible for keeping these things contained."} /obj/item/weapon/paper/terrorspiders7 name = "paper - 'Security Orders'" - info = {"Directives for Officer James
\ -
\ - 1. Find a way to lift the bridge lockdown.
\ - 2. Kill any spiders you encounter.
\ - 3. Once on the bridge, open a path to the Queen in the south, and find a way to kill her, ending the infestation.
\ - Good luck, Officer.
\ + info = {"Directives for Officer James
+
+ 1. Find a way to lift the bridge lockdown.
+ 2. Kill any spiders you encounter.
+ 3. Once on the bridge, open a path to the Queen in the south, and find a way to kill her, ending the infestation.
+ Good luck, Officer.
"} /obj/item/weapon/paper/terrorspiders8 name = "paper - 'Last Words'" - info = {"The Last Words of Nurse Barnes
\ -
\ - It is too much. First Phil, then those damn spiders bite Mary too. Heaven help us.
\ - I'll be evacuating as soon as I've grabbed my supplies. I had to pay for those myself. Stupid budget cuts.
\ - The new world they've found for us isn't that hospitable, but at least there are no deadly spid---
\ - (the writing trails off, as if the writer was interrupted)
\ + info = {"The Last Words of Nurse Barnes
+
+ It is too much. First Phil, then those damn spiders bite Mary too. Heaven help us.
+ I'll be evacuating as soon as I've grabbed my supplies. I had to pay for those myself. Stupid budget cuts.
+ The new world they've found for us isn't that hospitable, but at least there are no deadly spid---
+ (the writing trails off, as if the writer was interrupted)
"} 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 5a62d95d9f8..637af3b1e9a 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 @@ -1,4 +1,3 @@ - // -------------------------------------------------------------------------------- // ----------------- TERROR SPIDERS: T5 EMPRESS OF TERROR ------------------------- // -------------------------------------------------------------------------------- diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/gray.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/gray.dm index 7c9f799e80e..61c0ed42a25 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/gray.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/gray.dm @@ -45,12 +45,12 @@ /mob/living/simple_animal/hostile/poison/terror_spider/gray/adjustBruteLoss(damage) ..(damage) - if(invisibility > 0 || icon_state == "terror_gray_cloaked") + if(invisibility > 0) GrayDeCloak() /mob/living/simple_animal/hostile/poison/terror_spider/gray/adjustFireLoss(damage) ..(damage) - if(invisibility > 0 || icon_state == "terror_gray_cloaked") + if(invisibility > 0) GrayDeCloak() /mob/living/simple_animal/hostile/poison/terror_spider/gray/Aggro() @@ -58,7 +58,7 @@ ..() /mob/living/simple_animal/hostile/poison/terror_spider/gray/AttackingTarget() - if(invisibility > 0 || icon_state == "terror_gray_cloaked") + if(invisibility > 0) GrayDeCloak() else ..() diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/purple.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/purple.dm index 81e60797864..6b524872552 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/purple.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/purple.dm @@ -41,7 +41,7 @@ degenerate = 1 Q.DoLayTerrorEggs(/mob/living/simple_animal/hostile/poison/terror_spider/purple,1,0) visible_message("[src] chitters in the direction of [Q]!") - ..() + . = ..() /mob/living/simple_animal/hostile/poison/terror_spider/purple/spider_specialattack(mob/living/carbon/human/L, poisonable) if(cycles_noqueen < 6 && prob(10)) 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 447cca0b2b3..a8d3300f163 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 @@ -95,68 +95,69 @@ // -------------------------------------------------------------------------------- /mob/living/simple_animal/hostile/poison/terror_spider/handle_automated_action() - if(!stat && !ckey) // if we are not dead, and we're not player controlled - if(AIStatus != AI_OFF && !target) - var/my_ventcrawl_freq = freq_ventcrawl_idle - if(ts_count_dead > 0) - if(world.time < (ts_death_last + ts_death_window)) - my_ventcrawl_freq = freq_ventcrawl_combat - // First, check for general actions that any spider could take. - if(path_to_vent) - if(entry_vent) - if(spider_steps_taken > spider_max_steps) - path_to_vent = 0 - stop_automated_movement = 0 - spider_steps_taken = 0 - path_to_vent = 0 - entry_vent = null - else if(get_dist(src, entry_vent) <= 1) - path_to_vent = 0 - stop_automated_movement = 1 - spider_steps_taken = 0 - spawn(50) - stop_automated_movement = 0 - TSVentCrawlRandom(entry_vent) - else - spider_steps_taken++ - CreatePath(entry_vent) - step_to(src,entry_vent) - if(spider_debug > 0) - visible_message("[src] moves towards the vent [entry_vent].") - else + if (stat || ckey) + return ..() + if(AIStatus != AI_OFF && !target) + var/my_ventcrawl_freq = freq_ventcrawl_idle + if(ts_count_dead > 0) + if(world.time < (ts_death_last + ts_death_window)) + my_ventcrawl_freq = freq_ventcrawl_combat + // First, check for general actions that any spider could take. + if(path_to_vent) + if(entry_vent) + if(spider_steps_taken > spider_max_steps) path_to_vent = 0 - else if(ai_break_lights && world.time > (last_break_light + freq_break_light)) - last_break_light = world.time - for(var/obj/machinery/light/L in range(1, src)) - if(!L.status) - step_to(src,L) - L.on = 1 - L.broken() - L.do_attack_animation(src) - visible_message("[src] smashes the [L.name].") - break - else if(ai_spins_webs && world.time > (last_spins_webs + freq_spins_webs)) - 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)) - 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)) - last_ventcrawl_time = world.time - var/vdistance = 99 - for(var/obj/machinery/atmospherics/unary/vent_pump/v in view(10, src)) - if(!v.welded) - if(get_dist(src,v) < vdistance) - entry_vent = v - vdistance = get_dist(src,v) - if(entry_vent) - path_to_vent = 1 + stop_automated_movement = 0 + spider_steps_taken = 0 + path_to_vent = 0 + entry_vent = null + else if(get_dist(src, entry_vent) <= 1) + path_to_vent = 0 + stop_automated_movement = 1 + spider_steps_taken = 0 + spawn(50) + stop_automated_movement = 0 + TSVentCrawlRandom(entry_vent) + else + spider_steps_taken++ + CreatePath(entry_vent) + step_to(src,entry_vent) + if(spider_debug > 0) + visible_message("[src] moves towards the vent [entry_vent].") else - // If none of the general actions apply, check for class-specific actions. - spider_special_action() - else if(AIStatus != AI_OFF && target) - CreatePath(target) + path_to_vent = 0 + else if(ai_break_lights && world.time > (last_break_light + freq_break_light)) + last_break_light = world.time + for(var/obj/machinery/light/L in range(1, src)) + if(!L.status) + step_to(src,L) + L.on = 1 + L.broken() + L.do_attack_animation(src) + visible_message("[src] smashes the [L.name].") + break + else if(ai_spins_webs && world.time > (last_spins_webs + freq_spins_webs)) + 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)) + 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)) + last_ventcrawl_time = world.time + var/vdistance = 99 + for(var/obj/machinery/atmospherics/unary/vent_pump/v in view(10, src)) + if(!v.welded) + if(get_dist(src,v) < vdistance) + entry_vent = v + vdistance = get_dist(src,v) + if(entry_vent) + path_to_vent = 1 + else + // If none of the general actions apply, check for class-specific actions. + spider_special_action() + else if(AIStatus != AI_OFF && target) + CreatePath(target) ..() /mob/living/simple_animal/hostile/poison/terror_spider/adjustBruteLoss(damage) @@ -180,7 +181,7 @@ var/mob/living/M = A if(!("terrorspiders" in M.faction)) enemies |= M - visible_message("[src] glares at [M]! ") + visible_message("[src] glares at [M]!") else if(istype(A, /obj/mecha)) var/obj/mecha/M = A if(M.occupant) @@ -227,7 +228,6 @@ chasecycles = 0 /mob/living/simple_animal/hostile/poison/terror_spider/proc/ClearObstacle(turf/target_turf) - // ***** This does not allow spiders to smash windoors (e.g: UO71 bar windoor) var/list/valid_obstacles = list(/obj/structure/window, /obj/structure/closet, /obj/structure/table, /obj/structure/grille, /obj/structure/rack, /obj/machinery/door/window) for(var/dir in cardinal) // North, South, East, West var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir))