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:
Geeves
2021-01-15 18:44:28 +02:00
committed by GitHub
parent 51640d6d1b
commit 93e070371c
39 changed files with 392 additions and 153 deletions
+17
View File
@@ -0,0 +1,17 @@
var/datum/antagonist/revenant/revenants = null
/datum/antagonist/revenant
id = MODE_REVENANT
role_text = "Revenant"
role_text_plural = "Revenants"
welcome_text = "A creature borne of bluespace, you are here to wreak havoc and put an end to bluespace experimentation, one station at a time."
antaghud_indicator = "hudrevenant"
initial_spawn_req = 0
initial_spawn_target = 0
hard_cap = 12
hard_cap_round = 12
/datum/antagonist/revenant/New()
..()
revenants = src
+4 -4
View File
@@ -1,13 +1,13 @@
var/datum/antagonist/bluespace_golem/bluespace_golems = null
var/datum/antagonist/wizard_golem/wizard_golems = null
/datum/antagonist/bluespace_golem
/datum/antagonist/wizard_golem
id = MODE_GOLEM
role_text = "Golem"
role_text_plural = "Golems"
welcome_text = "You are a golem summoned by a powerful mage. Serve your master, and assist them in completing their goals at any cost."
antaghud_indicator = "hudmagineer"
/datum/antagonist/bluespace_golem/New()
/datum/antagonist/wizard_golem/New()
..()
bluespace_golems = src
wizard_golems = src
@@ -0,0 +1,23 @@
/datum/game_mode/revenants
name = "Revenants"
config_tag = "revenants"
required_players = 10
required_enemies = 0
round_autoantag = TRUE
min_autotraitor_delay = 3 MINUTES
max_autotraitor_delay = 6 MINUTES
antag_scaling_coeff = 4 // four people can handle one revenant pretty easily
round_description = "A bluespace tear has opened up in the space around us, who knows what could invade?"
extended_round_description = "This a wave defense gamemode. The crew all have to work together to repel an endless horde of bluespace horrors."
antag_tags = list(MODE_REVENANT)
/datum/game_mode/revenants/process_autoantag()
var/datum/ghostspawner/revenant/R = SSghostroles.get_spawner(MODE_REVENANT)
var/datum/antagonist/A = all_antag_types[MODE_REVENANT]
A.update_current_antag_max()
var/previous_count = R.max_count
R.max_count = min(R.max_count + 1, A.cur_max)
if(R.max_count > previous_count)
say_dead_direct("A slot for a Revenant as opened up!<br>Spawn in as it by using the ghost spawner menu in the ghost tab, and try to be good!")
if(!R.enabled)
R.enable()
+2 -2
View File
@@ -58,13 +58,13 @@
user.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
user.see_invisible = SEE_INVISIBLE_LEVEL_TWO
to_chat(user, "<span class='notice'>The walls suddenly disappear.</span>")
user.set_species(SPECIES_SHADOW)
user.set_species(SPECIES_REVENANT)
user.mind.special_role = "Avatar of the Wish Granter"
if("I want to be rich")
to_chat(user, "<B>Your wish is granted, but at a terrible cost...</B>")
to_chat(user, "The Wish Granter punishes you for your greediness, claiming your soul and warping your body to match the darkness in your heart.")
new /obj/structure/closet/syndicate/resources/everything(loc)
user.set_species(SPECIES_SHADOW)
user.set_species(SPECIES_REVENANT)
user.mind.special_role = "Avatar of the Wish Granter"
if("I want immortality")
to_chat(user, "<B>Your wish is granted, but at a terrible cost...</B>")