diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 3518a90d122..45c4331bcb3 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -409,6 +409,11 @@ so as to remain in compliance with the most up-to-date laws." impossible for you to get back into the game as your regular character.",, "No", "Yes") == "Yes") stone.opt_in = TRUE +/obj/screen/alert/notify_soulstone/Destroy() + stoner = null + stone = null + return ..() + //OBJECT-BASED diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 90270c1d64a..46709193ec2 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -77,20 +77,26 @@ if(!M.ckey) to_chat(user, "They have no soul!") return + + to_chat(user, "You attempt to channel [M]'s soul into [src]. You must give the soul some time to react and stand still...") + var/mob/player_mob = M if(M.get_ghost())//in case our player ghosted and we need to throw the alert at their ghost instead player_mob = M.get_ghost() var/client/player_client = player_mob.client - to_chat(user, "You attempt to channel [M]'s soul into [src]. You must give the soul some time to react and stand still...") to_chat(player_mob, "[user] is trying to capture your soul into [src]! Click the button in the top right of the game window to respond.") - var/obj/screen/alert/notify_soulstone/A = player_mob.throw_alert("\ref[src]_soulstone_thingy", /obj/screen/alert/notify_soulstone) player_client << 'sound/misc/notice2.ogg' window_flash(player_client) + + var/obj/screen/alert/notify_soulstone/A = player_mob.throw_alert("\ref[src]_soulstone_thingy", /obj/screen/alert/notify_soulstone) if(player_client.prefs && player_client.prefs.UI_style) A.icon = ui_style2icon(player_client.prefs.UI_style) + + //pass the stuff to the alert itself A.stone = src A.stoner = user.real_name + //layer shenanigans to make the alert display the soulstone var/old_layer = layer var/old_plane = plane layer = FLOAT_LAYER @@ -99,6 +105,7 @@ layer = old_layer plane = old_plane + //give the victim 10 seconds to respond sleep(10 SECONDS) if(!opt_in)