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") diff --git a/code/game/gamemodes/miniantags/guardian/guardian.dm b/code/game/gamemodes/miniantags/guardian/guardian.dm index 0bb48fc55ed..919a231d6a4 100644 --- a/code/game/gamemodes/miniantags/guardian/guardian.dm +++ b/code/game/gamemodes/miniantags/guardian/guardian.dm @@ -312,7 +312,7 @@ used = FALSE return to_chat(user, "[use_message]") - var/list/mob/dead/observer/candidates = SSghost_spawns.poll_candidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_GUARDIAN, FALSE, 10 SECONDS, source = /mob/living/simple_animal/hostile/guardian) + var/list/mob/dead/observer/candidates = SSghost_spawns.poll_candidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_GUARDIAN, FALSE, 10 SECONDS, source = src) var/mob/dead/observer/theghost = null if(candidates.len) diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index b3092b04e3b..44dec855f82 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -50,7 +50,7 @@ to_chat(H, "You already used this contract!") return used = 1 - var/mutable_appearance/source = new('icons/obj/cardboard_cutout.dmi', "cutout_wizard") + var/image/source = image('icons/obj/cardboard_cutout.dmi', "cutout_wizard") var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as the wizard apprentice of [H.real_name]?", ROLE_WIZARD, TRUE, source = source) if(candidates.len) var/mob/C = pick(candidates) @@ -308,7 +308,7 @@ GLOBAL_LIST_EMPTY(multiverse) if(M.assigned == assigned) M.cooldown = cooldown - var/mutable_appearance/source = new('icons/obj/cardboard_cutout.dmi', "cutout_wizard") + var/image/source = image('icons/obj/cardboard_cutout.dmi', "cutout_wizard") var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as the wizard apprentice of [user.real_name]?", ROLE_WIZARD, TRUE, 10 SECONDS, source = source) if(candidates.len) var/mob/C = pick(candidates) diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm index b189c98524f..d51b16d2cd3 100644 --- a/code/game/gamemodes/wizard/raginmages.dm +++ b/code/game/gamemodes/wizard/raginmages.dm @@ -118,7 +118,7 @@ return FALSE making_mage = TRUE - var/mutable_appearance/source = new('icons/obj/cardboard_cutout.dmi', "cutout_wizard") + var/image/source = image('icons/obj/cardboard_cutout.dmi', "cutout_wizard") var/list/mob/dead/observer/candidates = SSghost_spawns.poll_candidates("Do you want to play as a raging Space Wizard?", ROLE_WIZARD, TRUE, poll_time = 20 SECONDS, source = source) var/mob/dead/observer/harry = null message_admins("SWF is still pissed, sending another wizard - [max_mages - mages_made] left.") diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index e340921bef6..2390394b280 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -3576,7 +3576,7 @@ return var/datum/outfit/O = hunter_outfits[dresscode] message_admins("[key_name_admin(mob)] is sending a ([dresscode]) to [killthem ? "assassinate" : "protect"] [key_name_admin(H)]...") - var/mutable_appearance/source = new('icons/obj/cardboard_cutout.dmi', "cutout_traitor") + var/image/source = image('icons/obj/cardboard_cutout.dmi', "cutout_traitor") var/list/candidates = SSghost_spawns.poll_candidates("Play as a [killthem ? "murderous" : "protective"] [dresscode]?", ROLE_TRAITOR, TRUE, source = source) if(!candidates.len) to_chat(usr, "ERROR: Could not create eventmob. No valid candidates.") diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index b3ea2924709..40af6eefe49 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -37,7 +37,7 @@ GLOBAL_VAR_INIT(sent_strike_team, 0) break // Find ghosts willing to be DS - var/mutable_appearance/source = new('icons/obj/cardboard_cutout.dmi', "cutout_deathsquad") + var/image/source = image('icons/obj/cardboard_cutout.dmi', "cutout_deathsquad") var/list/commando_ghosts = pollCandidatesWithVeto(src, usr, COMMANDOS_POSSIBLE, "Join the DeathSquad?",, 21, 60 SECONDS, TRUE, GLOB.role_playtime_requirements[ROLE_DEATHSQUAD], TRUE, FALSE, source = source) if(!commando_ghosts.len) to_chat(usr, "Nobody volunteered to join the DeathSquad.")