Space Dragon Event
Ports the Space Dragon event
This commit is contained in:
@@ -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>"
|
||||
|
||||
Reference in New Issue
Block a user