mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 12:29:46 +01:00
Revenant Gamemode (#10851)
Added a new wave defense gamemode, Revenants, wherein the station crew have to defend themselves from an endless wave of humanoid bluespace creatures. Ported the icon from Baystation, it's their blueforged, but I tweaked the mob's alpha values a tad. Baystation12/Baystation12#21669
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
/datum/ghostspawner/revenant
|
||||
short_name = MODE_REVENANT
|
||||
name = "Revenant"
|
||||
desc = "A creature borne of bluespace, you are here to wreak havoc and put an end to bluespace experimentation, one station at a time."
|
||||
tags = list("Antagonist")
|
||||
|
||||
observers_only = TRUE
|
||||
show_on_job_select = FALSE
|
||||
|
||||
enabled = FALSE
|
||||
landmark_name = "Revenant"
|
||||
max_count = 0
|
||||
|
||||
spawn_mob = /mob/living/carbon/human/revenant
|
||||
respawn_flag = ANIMAL
|
||||
|
||||
var/has_fired = FALSE
|
||||
|
||||
/datum/ghostspawner/revenant/spawn_mob(mob/user)
|
||||
var/turf/T = select_spawnlocation()
|
||||
var/mob/living/carbon/human/revenant/R
|
||||
if(T)
|
||||
R = new /mob/living/carbon/human/revenant(T)
|
||||
else
|
||||
to_chat(user, SPAN_WARNING("Unable to find any spawn point."))
|
||||
return
|
||||
|
||||
if(R)
|
||||
announce_ghost_joinleave(user, FALSE, "They are now a [name].")
|
||||
R.ckey = user.ckey
|
||||
|
||||
revenants.add_antagonist(R.mind, TRUE, TRUE, FALSE, TRUE, TRUE)
|
||||
if(!has_fired)
|
||||
INVOKE_ASYNC(src, .proc/play_ambience, R)
|
||||
|
||||
return R
|
||||
|
||||
/datum/ghostspawner/revenant/proc/play_ambience(var/mob/living/carbon/human/H)
|
||||
for(var/m in player_list - H)
|
||||
var/mob/M = m
|
||||
if(M.ear_deaf)
|
||||
continue
|
||||
M.playsound_simple(get_turf(M), 'sound/ambience/tension/tension.ogg', 75, FALSE)
|
||||
to_chat(M, FONT_LARGE(SPAN_CULT("A faint hum coming from the station walls fills your ears...")))
|
||||
has_fired = TRUE
|
||||
@@ -4,6 +4,8 @@
|
||||
desc = "Infest crew, reproduce, repeat."
|
||||
tags = list("Antagonist")
|
||||
|
||||
observers_only = TRUE
|
||||
|
||||
loc_type = GS_LOC_ATOM
|
||||
atom_add_message = "A borer has been birthed!"
|
||||
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
var/short_name = null
|
||||
var/name = null
|
||||
var/desc = null
|
||||
|
||||
var/observers_only = FALSE
|
||||
var/show_on_job_select = TRUE // Determines if the ghost spawner role is considered unique or not.
|
||||
|
||||
var/welcome_message = null
|
||||
var/list/tags = list() //Tags associated with that spawner
|
||||
|
||||
@@ -71,6 +74,9 @@
|
||||
if(!is_alien_whitelisted(user, req_species_whitelist))
|
||||
return "Missing Species Whitelist"
|
||||
|
||||
if(observers_only && !isobserver(user))
|
||||
return "Observers Only"
|
||||
|
||||
return FALSE
|
||||
|
||||
//Return a error message if the user CANT spawn. Otherwise FALSE
|
||||
|
||||
Reference in New Issue
Block a user