Files
Paradise/code/modules/events/blob.dm
S34N 83e228cbcb Minor refactor of spawners, fixed rogue drone and carp events not spawning mobs (#17849)
* lessens the use of GLOB.landmarks_list

* delete redundant blob icon

* Apply suggestions from code review

Co-authored-by: moxian <moxian@users.noreply.github.com>

* review part 2

* aa review

Co-authored-by: moxian <moxian@users.noreply.github.com>
2022-05-24 14:26:36 +01:00

35 lines
1.7 KiB
Plaintext

/datum/event/blob
announceWhen = 180
endWhen = 240
var/successSpawn = FALSE //So we don't make a command report if nothing gets spawned.
/datum/event/blob/announce()
if(successSpawn)
GLOB.event_announcement.Announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg')
else
log_and_message_admins("Warning: Could not spawn any mobs for event Blob")
/datum/event/blob/start()
INVOKE_ASYNC(src, .proc/make_blob)
/datum/event/blob/proc/make_blob()
var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as a blob infested mouse?", ROLE_BLOB, TRUE, source = /mob/living/simple_animal/mouse/blobinfected)
if(!length(candidates))
return kill()
var/list/vents = get_valid_vent_spawns(exclude_mobs_nearby = TRUE)
if(!length(vents))
message_admins("Warning: No suitable vents detected for spawning blob mouse. Force picking from station vents regardless of state!")
vents = get_valid_vent_spawns(unwelded_only = FALSE, min_network_size = 0)
var/obj/vent = pick(vents)
var/mob/living/simple_animal/mouse/blobinfected/B = new(vent.loc)
var/mob/M = pick(candidates)
B.key = M.key
B.mind.special_role = SPECIAL_ROLE_BLOB
SSticker.mode.update_blob_icons_added(B.mind)
to_chat(B, "<span class='userdanger'>You are now a mouse, infected with blob spores. Find somewhere isolated... before you burst and become the blob! Use ventcrawl (alt-click on vents) to move around.</span>")
to_chat(B, "<span class='motd'>For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Blob)</span>")
notify_ghosts("Infected Mouse has appeared in [get_area(B)].", source = B, action = NOTIFY_FOLLOW)
successSpawn = TRUE