diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 2554b44d8b..cb3e74e5ad 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1206,6 +1206,7 @@
verbs |= /mob/living/carbon/human/proc/bloodsuck
if(species.can_drain_prey == 1)
verbs |= /mob/living/carbon/human/proc/succubus_drain //Succubus drain trait.
+ verbs |= /mob/living/carbon/human/proc/succubus_drain_finialize
verbs |= /mob/living/carbon/human/proc/succubus_drain_lethal //VOREStation Edit End
// Rebuild the HUD. If they aren't logged in then login() should reinstantiate it for them.
diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm
index 3ad27f7e7c..eb0febc320 100644
--- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm
@@ -485,8 +485,10 @@
C.nutrition = (C.nutrition + (T.nutrition*0.1)) //Just keep draining them.
T.nutrition = T.nutrition*0.9
T.eye_blurry += 5 //Some eye blurry just to signify to the prey that they are still being drained. This'll stack up over time, leave the prey a bit more "weakened" after the deed is done.
- if(T.nutrition < 100 && stage < 99)//Did they drop below 100 nutrition? If so, immediately jump to stage 99 so it can advance to 100.
+ if(T.nutrition < 100 && stage < 99 && C.drain_finalized == 1)//Did they drop below 100 nutrition? If so, immediately jump to stage 99 so it can advance to 100.
stage = 99
+ if(C.drain_finalized != 1 && stage == 99) //Are they not finalizing and the stage hit 100? If so, go back to stage 3 until they finalize it.
+ stage = 3
if(100)
C.nutrition = (C.nutrition + T.nutrition)
T.nutrition = 0 //Completely drained of everything.
@@ -566,7 +568,7 @@
return
C << "You begin to drain [T]'s lifeforce..."
T << "An odd sensation flows through your body as you feel your lifeforce slowly being sucked away into [C]!"
- if(51 to 99)
+ if(51 to 98)
if(T.stat == DEAD)
src << "You suck out the last remaining portion of [T]'s lifeforce."
T.apply_damage(500, OXY) //Bit of fluff.
@@ -577,9 +579,13 @@
src.attack_log += text("\[[time_stamp()]\] Drained [key_name(T)]")
msg_admin_attack("[key_name(T)] was completely drained of all nutrition by [key_name(C)]")
return
- T.adjustBrainLoss(5) //Will kill them after a short bit!
+ if(C.drain_finalized == 1 || T.getBrainLoss() < 55) //Let's not kill them with this unless the drain is finalized. This will still stack up to 55, since 60 is lethal.
+ T.adjustBrainLoss(5) //Will kill them after a short bit!
T.eye_blurry += 20 //A lot of eye blurry just to signify to the prey that they are still being drained. This'll stack up over time, leave the prey a bit more "weakened" after the deed is done. More than non-lethal due to their lifeforce being sucked out
C.nutrition = (C.nutrition + 25) //Assuming brain damage kills at 60, this gives 300 nutrition.
+ if(99)
+ if(C.drain_finalized != 1)
+ stage = 51
if(100) //They shouldn't survive long enough to get here, but just in case.
src << "You suck out the last remaining portion of [T]'s lifeforce."
T.apply_damage(500, OXY) //Kill them.
@@ -596,3 +602,20 @@
C << "Our draining of [T] has been interrupted!"
C.absorbing_prey = 0
return
+
+
+/mob/living/carbon/human/proc/succubus_drain_finialize()
+ set name = "Drain Finalization"
+ set desc = "Toggle to allow for draining to be prolonged. Turn this on to make it so prey will be knocked out/die while being drained. Can be toggled at any time."
+ set category = "Abilities"
+
+ var/mob/living/carbon/human/C = src
+ if(C.drain_finalized == 1)
+ C.drain_finalized = 0
+ C << "You will now finalize draining."
+ return
+
+ else if(C.drain_finalized == 0)
+ C.drain_finalized = 1
+ C << "You will not finalize draining."
+ return
\ No newline at end of file
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index e56d7f8f63..1a1ba7ff3f 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -18,6 +18,7 @@
var/nif_examine = "There's a certain spark to their eyes" //The examine text of their NIF. This is the default placeholder.
var/noisy = 0 // Toggle audible hunger.
var/absorbing_prey = 0 // Determines if the person is using the succubus drain or not. See station_special_abilities_vr.
+ var/drain_finalized = 0 // Determines if the succubus drain will be KO'd/absorbed. Can be toggled on at any time.
//
// Hook for generic creation of stuff on new creatures