diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index 2ca3dffe6de..72e63a19808 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -188,6 +188,21 @@
origin_tech = "biotech=6"
var/list/not_interested = list()
var/sentience_type = SENTIENCE_ORGANIC
+ var/heat_stage = 0 //When used at stage 2 or above, the Sentience Potion explodes. Stop bugging ghosts
+
+/obj/item/slimepotion/sentience/examine(mob/user)
+ . = ..()
+ if(!user.Adjacent(src))
+ return
+
+ switch(heat_stage)
+ if(1)
+ . += "The vial is hot to the touch."
+ if(2)
+ . += "The vial is scalding hot! Is it really a good idea to use this..?"
+
+/obj/item/slimepotion/sentience/attack()
+ return
/obj/item/slimepotion/sentience/afterattack(mob/living/M, mob/user, proximity_flag)
if(!proximity_flag)
@@ -205,6 +220,14 @@
to_chat(user, "The potion won't work on [SM].")
return ..()
+ if(heat_stage >= 2)
+ to_chat(user, "[src] violently explodes!")
+ var/turf/T = get_turf(loc)
+ if(T)
+ T.hotspot_expose(700, 125)
+ explosion(T, -1, -1, 2, 3)
+ qdel(src)
+ return
to_chat(user, "You offer [src] sentience potion to [SM]...")
being_used = TRUE
@@ -231,9 +254,23 @@
qdel(src)
else
to_chat(user, "[M] looks interested for a moment, but then looks back down. Maybe you should try again later.")
+ heat_stage += 1
+ addtimer(CALLBACK(src, .proc/cooldown_potion), 60 SECONDS)
+ if(user.Adjacent(src))
+ switch(heat_stage)
+ if(1)
+ to_chat(user, "An intense heat emanates from [src]. It might need to cool off for awhile.")
+ if(2)
+ to_chat(user, "[src] is boiling hot! You shudder to think what would happen if you used it again...")
being_used = FALSE
..()
+/obj/item/slimepotion/sentience/proc/cooldown_potion()
+ if(!heat_stage)
+ return
+
+ heat_stage -= 1
+
/obj/item/slimepotion/sentience/proc/after_success(mob/living/user, mob/living/simple_animal/SM)
return