Space Dragon Event

Ports the Space Dragon event
This commit is contained in:
keronshb
2021-05-18 12:06:32 -04:00
parent bc35ffeaa2
commit d2f69acaf8
10 changed files with 75 additions and 122 deletions
@@ -1,31 +1,52 @@
/datum/antagonist/space_dragon
name = "Space Dragon"
show_in_antagpanel = FALSE
roundend_category = "space dragons"
antagpanel_category = "Space Dragon"
job_rank = ROLE_SPACE_DRAGON
show_in_antagpanel = TRUE
show_name_in_check_antagonists = TRUE
var/list/datum/mind/carp = list()
/datum/antagonist/space_dragon/greet()
to_chat(owner, "<b>I am Space Dragon, ex-space carp, and defender of the secrets of constellation, Draco.</b>")
to_chat(owner, "<b>Fabulous secret powers were revealed to me the day I held aloft a wizard's staff of change and said 'By the power of Draco, I have the power!'</b>")
to_chat(owner, "<b>The wizard was turned into the short-lived Pastry Cat while I became Space Dragon, the most powerful beast in the universe.</b>")
to_chat(owner, "<b>Clicking a tile will shoot fire onto that tile.</b>")
to_chat(owner, "<b>Alt-clicking will let me do a tail swipe, knocking down entities in a tile radius around me.</b>")
to_chat(owner, "<b>Attacking dead bodies will allow me to gib them to restore health.</b>")
to_chat(owner, "<b>From the wizard's writings, he had been studying this station and its hierarchy. From this, I know who leads the station, and will kill them so the station underlings see me as their new leader.</b>")
to_chat(owner, "<b>Endless time and space we have moved through. We do not remember from where we came, we do not know where we will go. All space belongs to us.\n\
Space is an empty void, of which our kind is the apex predator, and there was little to rival our claim to this title.\n\
But now, we find intruders spread out amongst our claim, willing to fight our teeth with magics unimaginable, their dens like lights flicking in the depths of space.\n\
Today, we will snuff out one of those lights.</b>")
to_chat(owner, "<span class='boldwarning'>You have five minutes to find a safe location to place down the first rift. If you take longer than five minutes to place a rift, you will be returned from whence you came.</span>")
owner.announce_objectives()
owner.announce_objectives()
SEND_SOUND(owner.current, sound('sound/magic/demon_attack1.ogg'))
/datum/antagonist/space_dragon/proc/forge_objectives()
var/current_heads = SSjob.get_all_heads()
var/datum/objective/assassinate/killchosen = new
killchosen.owner = owner
var/datum/mind/selected = pick(current_heads)
killchosen.target = selected
killchosen.update_explanation_text()
objectives += killchosen
var/datum/objective/survive/survival = new
survival.owner = owner
objectives += survival
var/datum/objective/summon_carp/summon = new()
summon.dragon = src
objectives += summon
/datum/antagonist/space_dragon/on_gain()
forge_objectives()
. = ..()
/datum/objective/summon_carp
var/datum/antagonist/space_dragon/dragon
explanation_text = "Summon and protect the rifts to flood the station with carp."
/datum/antagonist/space_dragon/roundend_report()
var/list/parts = list()
var/datum/objective/summon_carp/S = locate() in objectives
if(S.check_completion())
parts += "<span class='redtext big'>The [name] has succeeded! Station space has been reclaimed by the space carp!</span>"
parts += printplayer(owner)
var/objectives_complete = TRUE
if(objectives.len)
parts += printobjectives(objectives)
for(var/datum/objective/objective in objectives)
if(!objective.check_completion())
objectives_complete = FALSE
break
if(objectives_complete)
parts += "<span class='greentext big'>The [name] was successful!</span>"
else
parts += "<span class='redtext big'>The [name] has failed!</span>"
parts += "<span class='header'>The [name] was assisted by:</span>"
parts += printplayerlist(carp)
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"