diff --git a/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm b/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm
index 19e0364ada..0ee6d45f7d 100644
--- a/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm
+++ b/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm
@@ -18,6 +18,7 @@
The purpose of your existence is to further the goals of the servants and Ratvar himself. Above all else, serve Ratvar."
new_mob_message = "The soul vessel emits a jet of steam before its cogwheel smooths out."
dead_message = "Its cogwheel, scratched and dented, lies motionless."
+ recharge_message = "The soul vessel's internal geis capacitor is still recharging!"
possible_names = list("Judge", "Guard", "Servant", "Smith", "Auger")
autoping = FALSE
resistance_flags = FIRE_PROOF | ACID_PROOF
diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm
index c30c7dbcfa..ac92c3479c 100644
--- a/code/modules/mob/living/brain/posibrain.dm
+++ b/code/modules/mob/living/brain/posibrain.dm
@@ -25,6 +25,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm."
var/new_mob_message = "The positronic brain chimes quietly."
var/dead_message = "It appears to be completely inactive. The reset light is blinking."
+ var/recharge_message = "The positronic brain isn't ready to activate again yet! Give it some time to recharge."
var/list/possible_names //If you leave this blank, it will use the global posibrain names
var/picked_name
@@ -41,15 +42,20 @@ GLOBAL_VAR(posibrain_notify_cooldown)
GLOB.posibrain_notify_cooldown = world.time + askDelay
/obj/item/device/mmi/posibrain/attack_self(mob/user)
- if(!brainmob || brainmob.key)
+ if(!brainmob)
+ brainmob = new(src)
+ if(is_occupied())
+ to_chat(user, "This [name] is already active!")
return
if(next_ask > world.time)
+ to_chat(user, recharge_message)
return
//Start the process of requesting a new ghost.
to_chat(user, begin_activation_message)
ping_ghosts("requested", FALSE)
next_ask = world.time + askDelay
searching = TRUE
+ update_icon()
addtimer(CALLBACK(src, .proc/check_success), askDelay)
/obj/item/device/mmi/posibrain/proc/check_success()
@@ -80,7 +86,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
return
if(is_occupied() || jobban_isbanned(user,"posibrain"))
return
-
+
var/posi_ask = alert("Become a [name]? (Warning, You can no longer be cloned, and all past lives will be forgotten!)","Are you positive?","Yes","No")
if(posi_ask == "No" || QDELETED(src))
return
@@ -109,7 +115,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
if(QDELETED(brainmob))
return
if(is_occupied()) //Prevents hostile takeover if two ghosts get the prompt or link for the same brain.
- to_chat(candidate, "This brain has already been taken! Please try your possession again later!")
+ to_chat(candidate, "This [name] was taken over before you could get to it! Perhaps it might be available later?")
return FALSE
if(candidate.mind && !isobserver(candidate))
candidate.mind.transfer_to(brainmob)
@@ -123,7 +129,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
GLOB.living_mob_list += brainmob
visible_message(new_mob_message)
- update_icon()
+ check_success()
return TRUE