mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 06:54:18 +01:00
Borer Tweaks and Changes (#8682)
Spawned borers now get added to the Ghostspawner menu, allowing players to inhabit them even if they didn't catch the original request.
Borers have gained the ability to survey their host's health, allowing them to better choose when to administer certain chemicals.
Borers now regenerate chemicals even if their host is unconscious.
Awakening psionics now take 15 seconds instead of 10, and the host now gets a message about feeling something bad coming on, allowing them to make a dash to safety and or seclusion.
Skrell returning from Srom no longer eject controlling borers to the lobby by replacing their ckey into the aether.
Skrell no longer spontaneously die when entering Srom on a map that doesn't have a Srom location.
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
|
||||
//Vars regarding the spawnpoints and conditions of the spawner
|
||||
var/list/spawnpoints = null //List of the applicable spawnpoints (by name)
|
||||
var/list/spawn_atoms = list() // List of atoms you can spawn at
|
||||
var/landmark_name = null //Alternatively you can specify a landmark name
|
||||
var/max_count = 0 //How often can this spawner be used
|
||||
var/count = 0 //How ofen has this spawner been used
|
||||
@@ -94,6 +95,11 @@
|
||||
|
||||
//This proc selects the spawnpoint to use.
|
||||
/datum/ghostspawner/proc/select_spawnpoint(var/use=TRUE)
|
||||
if(length(spawn_atoms))
|
||||
var/chosen_spawn_atom = pick(spawn_atoms)
|
||||
var/turf/T = get_turf(chosen_spawn_atom)
|
||||
if(T)
|
||||
return T
|
||||
if(!isnull(spawnpoints))
|
||||
for(var/spawnpoint in spawnpoints) //Loop through the applicable spawnpoints
|
||||
var/turf/T = SSghostroles.get_spawnpoint(spawnpoint, use) //Gets the first matching spawnpoint or null if none are available
|
||||
|
||||
@@ -14,18 +14,12 @@
|
||||
|
||||
//The proc to actually spawn in the user
|
||||
/datum/ghostspawner/human/golem/spawn_mob(mob/user)
|
||||
var/obj/effect/golemrune/rune
|
||||
var/list/global_runes = list()
|
||||
|
||||
for(var/obj/effect/golemrune/eligible_rune in golem_runes)
|
||||
global_runes += eligible_rune
|
||||
|
||||
if(!length(global_runes))
|
||||
if(!length(spawn_atoms))
|
||||
to_chat(user, span("danger", "There are no available golem runes to spawn at!"))
|
||||
return FALSE
|
||||
|
||||
rune = pick(global_runes)
|
||||
var/obj/effect/golemrune/rune = pick(spawn_atoms)
|
||||
|
||||
if(user)
|
||||
if(user && rune)
|
||||
return rune.spawn_golem(user)
|
||||
return FALSE
|
||||
@@ -0,0 +1,24 @@
|
||||
/datum/ghostspawner/simplemob/borer
|
||||
short_name = "borer"
|
||||
name = "Cortical Borer"
|
||||
desc = "Infest crew, reproduce, repeat."
|
||||
tags = list("Antagonist")
|
||||
|
||||
enabled = FALSE
|
||||
|
||||
spawn_mob = /mob/living/simple_animal/borer
|
||||
|
||||
/datum/ghostspawner/simplemob/borer/select_spawnpoint(var/use)
|
||||
return TRUE //We just fake it here, since the spawnpoint is selected if someone is spawned in.
|
||||
|
||||
//The proc to actually spawn in the user
|
||||
/datum/ghostspawner/simplemob/borer/spawn_mob(mob/user)
|
||||
if(!length(spawn_atoms))
|
||||
to_chat(user, SPAN_DANGER("There are no available borers to spawn at!"))
|
||||
return FALSE
|
||||
|
||||
var/mob/living/simple_animal/borer/spawn_borer = pick(spawn_atoms)
|
||||
|
||||
if(user && spawn_borer)
|
||||
return spawn_borer.spawn_into_borer(user)
|
||||
return FALSE
|
||||
Reference in New Issue
Block a user