diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index 531f510e3cb..7b53bce22de 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -569,6 +569,13 @@ so as to remain in compliance with the most up-to-date laws."
if(NOTIFY_FOLLOW)
G.ManualFollow(target)
+/obj/screen/alert/notify_action/Topic(href, href_list)
+ if(..())
+ return TRUE
+
+ if(href_list["signup"] && isobserver(usr) && poll?.sign_up(usr))
+ display_signed_up()
+
/obj/screen/alert/notify_action/proc/display_signed_up()
var/image/I = image('icons/mob/screen_gen.dmi', icon_state = "selector")
I.layer = FLOAT_LAYER
diff --git a/code/controllers/subsystem/ghost_spawns.dm b/code/controllers/subsystem/ghost_spawns.dm
index 6063d6995e5..ea0aefb88bd 100644
--- a/code/controllers/subsystem/ghost_spawns.dm
+++ b/code/controllers/subsystem/ghost_spawns.dm
@@ -59,7 +59,7 @@ SUBSYSTEM_DEF(ghost_spawns)
var/category = "[P.hash]_notify_action"
for(var/mob/dead/observer/M in (ignore_respawnability ? GLOB.player_list : GLOB.respawnable_list))
- if(!is_eligible(M))
+ if(!is_eligible(M, role, antag_age_check, role, min_hours, check_antaghud))
continue
SEND_SOUND(M, 'sound/misc/notice2.ogg')
@@ -125,6 +125,13 @@ SUBSYSTEM_DEF(ghost_spawns)
I.plane = FLOAT_PLANE
A.overlays += I
+ // Chat message
+ var/act_jump = ""
+ if(isatom(source))
+ act_jump = "\[Teleport]"
+ var/act_signup = "\[Sign Up]"
+ to_chat(M, "Now looking for candidates [role ? "to play as \an [get_roletext(role)]" : "\"[question]\""]. [act_jump] [act_signup]")
+
// Start processing it so it updates visually the timer
START_PROCESSING(SSprocessing, A)
A.process()
diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm
index b4c01609653..dc8d0f5aba2 100644
--- a/code/game/gamemodes/blob/blobs/core.dm
+++ b/code/game/gamemodes/blob/blobs/core.dm
@@ -17,12 +17,12 @@
START_PROCESSING(SSobj, src)
GLOB.poi_list |= src
adjustcolors(color) //so it atleast appears
- if(!overmind)
- create_overmind(new_overmind)
- if(overmind)
- adjustcolors(overmind.blob_reagent_datum.color)
if(offspring)
is_offspring = 1
+ if(overmind)
+ adjustcolors(overmind.blob_reagent_datum.color)
+ if(!overmind)
+ create_overmind(new_overmind)
point_rate = new_rate
..(loc, h)
@@ -104,18 +104,11 @@
var/mob/C = null
var/list/candidates = list()
if(!new_overmind)
- // Create icon
- var/mutable_appearance/MA = new
- var/mutable_appearance/MA1 = new(icon, "blob")
- MA1.color = overmind ? overmind.blob_reagent_datum.color : color
- MA.overlays += MA1
- var/mutable_appearance/MA2 = new(icon, "blob_core_overlay")
- MA.overlays += MA2
// sendit
if(is_offspring)
- candidates = SSghost_spawns.poll_candidates("Do you want to play as a blob offspring?", ROLE_BLOB, TRUE, source = MA)
+ candidates = SSghost_spawns.poll_candidates("Do you want to play as a blob offspring?", ROLE_BLOB, TRUE, source = src)
else
- candidates = SSghost_spawns.poll_candidates("Do you want to play as a blob?", ROLE_BLOB, TRUE, source = MA)
+ candidates = SSghost_spawns.poll_candidates("Do you want to play as a blob?", ROLE_BLOB, TRUE, source = src)
if(length(candidates))
C = pick(candidates)
diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm
index ec354d4d1c4..350da7c7593 100644
--- a/code/game/gamemodes/blob/powers.dm
+++ b/code/game/gamemodes/blob/powers.dm
@@ -389,7 +389,7 @@
return
split_used = TRUE
- new /obj/structure/blob/core/ (get_turf(N), 200, null, blob_core.point_rate, "offspring")
+ new /obj/structure/blob/core/ (get_turf(N), 200, null, blob_core.point_rate, offspring = TRUE)
qdel(N)
if(SSticker && SSticker.mode.name == "blob")