Files
Paradise/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm
T
8def3bf2af TS Mother Rework (#14856)
* basic functionality

* map edit: delete mother from awaymission

* IncubateEggs, PickupSpiderlings, anti-exploit stuff

* editor, please stop messing with my indentation

* fixes

fixes: stops "cancelled" messages when a terror is in an airless pipe, stops incubate being used on eggs on an adjacent tile,  makes the "cannot incubate due to lack of regen points" message clearer, stops spiders using remoteview while in a pipe which messes up their vision

* fixes being able to wrap spiderlings/etc into coccoons if they're on top of a dead body

* mother webs block spiderlings from passing them

* AA suggestion

Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>

Co-authored-by: Kyep <Kyep@users.noreply.github.com>
Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>
2020-12-02 19:25:19 +00:00

251 lines
8.8 KiB
Plaintext

/area/awaymission/UO71
name = "UO71"
icon_state = "away"
report_alerts = FALSE
tele_proof = TRUE
/area/awaymission/UO71/plaza
name = "UO71 Plaza"
icon_state = "awaycontent1"
fire = TRUE
/area/awaymission/UO71/centralhall
name = "UO71 Central"
icon_state = "awaycontent2"
fire = TRUE
/area/awaymission/UO71/eng
name = "UO71 Engineering"
icon_state = "awaycontent3"
fire = TRUE
/area/awaymission/UO71/mining
name = "UO71 Mining"
icon_state = "awaycontent4"
fire = TRUE
/area/awaymission/UO71/science
name = "UO71 Science"
icon_state = "awaycontent5"
fire = TRUE
/area/awaymission/UO71/medical
name = "UO71 Medical"
icon_state = "awaycontent6"
fire = TRUE
/area/awaymission/UO71/gateway
name = "UO71 Gateway"
icon_state = "awaycontent7"
fire = TRUE
/area/awaymission/UO71/outside
name = "UO71 Outside"
icon_state = "awaycontent8"
/area/awaymission/UO71/bridge
name = "UO71 Bridge"
icon_state = "awaycontent21"
fire = TRUE
requires_power = FALSE
tele_proof = TRUE
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
/area/awaymission/UO71/queen
name = "UO71 Queen Lair"
icon_state = "awaycontent9"
fire = TRUE
requires_power = FALSE
tele_proof = TRUE
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
/area/awaymission/UO71/prince
name = "UO71 Prince Containment"
icon_state = "awaycontent10"
fire = TRUE
requires_power = FALSE
tele_proof = TRUE
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
/area/awaymission/UO71/loot
name = "UO71 Loot Vault"
icon_state = "awaycontent11"
requires_power = FALSE
tele_proof = TRUE
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
/obj/item/paper/terrorspiders1
name = "paper - 'Sealed Facility'"
info = {"<b>SEALED FACILITY</b><br>
<br>
This facility is sealed shut by order of Commander Marquez. Do not enter.<br>
Terror spiders live here. We believe they are a weapon developed by the syndicate.<br>
Any surviving personnel are to evacuate immediately via the gateway.<br>
Any arriving response team is advised to use the ID Upgrade Machine to obtain local access.<br>
"}
/obj/item/paper/terrorspiders2
name = "paper - 'The Trio of Terror'"
info = {"<b>Status Report on the 'Terrors'</b><br>
<br>
All the spiders are deadly. We know this much already. Within an hour of their appearance, they have killed several staff.<br>
Two, however, bear particular mention, as they appear to be leading the spider hivemind.<br>
<br>
The Prince is held in containment. He appears very aggressive, incredibly fast, strong, and durable. Extreme force and agility would be required to neutralize him.<br>
It is likely the appearance of the prince was related to our initial aggression against the Queen. These things can THINK.<br>
<br>
The Queen cannot be contained. She lives in the old bar, south of mining. She continues to breed dangerous spiders at an alarming rate.<br>
Many of her offspring are already roaming the compound, traveling through the vents. Contact with the team sent to subdue her has been lost.<br>
<br>
<br>
Based on the situation, Commander, I advise immediate evacuation through the gateway.<br>
-Research Director Simons<br>
"}
/obj/item/paper/terrorspiders3
name = "paper - 'Final Report'"
info = {"FROM: Field Agent 0738<br>
TO: Syndicate #873589<br>
SUBJECT: Mission Success<br>
<br>
I have seeded the Terror Queen egg in a dingy looking bar that bored engineers constructed near the mining tunnels.<br>
No doubt she will grow soon.<br>
<br>
I have also placed the Prince egg nearby, injected with sedative. Hopefully the dimwitted NT scientists bring them back for study.<br>
With any luck, the Queen will sense them telepathically, think NT is holding her prince hostage, and attack.<br>
<br>
I am going to extract out of the gateway before this all goes down.<br>
I don't imagine the staff have very long to live once the Queen declares war on this place.<br>
"}
/obj/item/paper/terrorspiders4
name = "paper - 'Prescription for Jones, David'"
info = {"PRESCRIPTION FOR: David Jones<br>
RANK: Miner<br>
FOR: Charcoal<br>
REASON FOR TREATMENT: Toxins in bloodstream<br>
CAUSE: Bitten by a black terror spider.<br>
TREATMENT PLAN: Take hourly. See Dr. Phloxi if symptoms persist more than three hours.<br>
"}
/obj/item/paper/terrorspiders5
name = "paper - 'A Study in Terror'"
info = {"<b>Findings Overview</b><br>
<br>
<p>Gray Spiders<br>Stealthy predators that ambush prey from vents. Otherwise weak.</p>
<p>Red Spiders<br>Can kill anyone in melee, but slow.</p>
<p>Green<br>Will lay eggs on dead bodies, breeding more spiders.</p>
<p>Black<br>Even a single bite is enough to kill a humanoid, given time.</p>
<p>White<br>Injects a parasitic agent. Deemed to pose too great an infection risk to study.</p>
<p>Purple<br>Seen guarding key areas and important spiders. Appear to be territorial, and very dangerous.</p>
<p>Prince<br>Held in containment. Appears to be a sort of super-warrior. Fast, strong, and thickly armored.</p>
<p>Queen<br>Unable to contain. Present south of Cargo before contact was lost. Presumed ruler of the local hive.</p>
"}
/obj/item/paper/terrorspiders6
name = "paper - 'A Study in Venom'"
info = {"<b>Initial Report - Black Widow Venom</b><br>
<br>
Even a single bite kills within a few minutes. Immediate charcoal is necessary for the victim to survive.<br>
The fascinating thing is that multiple bites actually cause rapid symptom onset. The victim quickly loses the ability to walk.<br>
One test monkey went from perfect health to death in under 60 seconds - from 3 bites.<br>
I am so very glad I'm not responsible for keeping these things contained."}
/obj/item/paper/terrorspiders7
name = "paper - 'Security Orders'"
info = {"<b>Directives for Officer James</b><br>
<br>
1. Find a way to lift the bridge lockdown.<br>
2. Kill any spiders you encounter.<br>
3. Once on the bridge, open a path to the Queen in the south, and find a way to kill her, ending the infestation. <br>
Good luck, Officer.<br>
"}
/obj/item/paper/terrorspiders8
name = "paper - 'Last Words'"
info = {"<b>The Last Words of Nurse Barnes</b><br>
<br>
It is too much. First Phil, then those damn spiders bite Mary too. Heaven help us. <br>
I'll be evacuating as soon as I've grabbed my supplies. I had to pay for those myself. Stupid budget cuts. <br>
The new world they've found for us isn't that hospitable, but at least there are no deadly spid---<br>
(the writing trails off, as if the writer was interrupted)<br>
"}
/obj/item/gun/energy/laser/awaymission_aeg
name = "Wireless Energy Gun"
desc = "An energy gun that recharges wirelessly during away missions. Does not work on the main station."
force = 10
origin_tech = null
selfcharge = 1
can_charge = 0
// Selfcharge is enabled and disabled, and used as the away mission tracker
selfcharge = TRUE
/obj/item/gun/energy/laser/awaymission_aeg/Initialize(mapload)
. = ..()
// Force update it incase it spawns outside an away mission and shouldnt be charged
onTransitZ(new_z = loc.z)
/obj/item/gun/energy/laser/awaymission_aeg/onTransitZ(old_z, new_z)
if(is_away_level(new_z))
if(ismob(loc))
to_chat(loc, "<span class='notice'>Your [src] activates, starting to draw power from a nearby wireless power source.</span>")
selfcharge = TRUE
else
if(selfcharge)
if(ismob(loc))
to_chat(loc, "<span class='danger'>Your [src] deactivates, as it is out of range from its power source.</span>")
cell.charge = 0
selfcharge = FALSE
update_icon()
/obj/item/reagent_containers/glass/beaker/terror_black_toxin
name = "beaker 'Black Terror Venom'"
/obj/item/reagent_containers/glass/beaker/terror_black_toxin/New()
..()
reagents.add_reagent("terror_black_toxin", 50)
update_icon()
/obj/machinery/computer/id_upgrader
name = "ID Upgrade Machine"
icon_state = "guest"
icon_screen = "pass"
var/list/access_to_give = list(ACCESS_AWAY01)
var/beenused = 0
var/door_to_open = "UO71_Start"
/obj/machinery/computer/id_upgrader/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/card/id))
var/obj/item/card/id/D = I
if(!access_to_give.len)
to_chat(user, "<span class='notice'>This machine appears to be configured incorrectly.</span>")
return
var/did_upgrade = 0
var/list/id_access = D.GetAccess()
for(var/this_access in access_to_give)
if(!(this_access in id_access))
// don't have it - add it
D.access |= this_access
did_upgrade = 1
if(did_upgrade)
to_chat(user, "<span class='notice'>An access type was added to your ID card.</span>")
if(beenused)
return
spawn(1)
beenused = 1
var/unlocked_something = 0
for(var/obj/machinery/door/poddoor/P in GLOB.airlocks)
if(P.density && P.id_tag == door_to_open && P.z == z)
P.open()
unlocked_something = 1
if(unlocked_something)
to_chat(user, "<span class='danger'>Activating the machine has unlocked a way forward!</span>")
else
to_chat(user, "<span class='notice'>Your ID card already has all the access this machine can give.</span>")
return
return ..()