diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm
index a4a95bb019e..47acd2ca1b8 100644
--- a/code/game/gamemodes/wizard/raginmages.dm
+++ b/code/game/gamemodes/wizard/raginmages.dm
@@ -42,10 +42,9 @@
if(wizard.current.stat==DEAD)
if(istype(wizard.current.get_area(), /area/wizard_station)) // We don't want people camping other wizards
var/old_wiz = wizard.current
- wizard.current.ghostize()
- message_admins("[old_wiz] died in the wizard lair, another wizard is likely camping")
wizard.current << "If there aren't any admins on and another wizard is camping you in the wizard lair, report them on the forums"
- qdel(old_wiz)
+ message_admins("[old_wiz] died in the wizard lair, another wizard is likely camping")
+ end_squabble(old_wiz.get_area())
continue
if(wizard.current.stat==UNCONSCIOUS)
if(wizard.current.health < 0 && !istype(wizard.current.get_area(), /area/wizard_station))
@@ -57,7 +56,7 @@
wizard.current.gib() // Let's keep the round moving
continue
if(!wizard.current.client)
- continue // Could just be a bad connection, so SSD wiz's shouldn't be gibbed over it
+ continue // Could just be a bad connection, so SSD wiz's shouldn't be gibbed over it, but they're not "alive" either
wizards_alive++
if (wizards_alive)
@@ -73,6 +72,21 @@
make_more_mages()
return ..()
+// To silence all struggles within the wizard's lair
+/datum/game_mode/wizard/raginmages/proc/end_squabble(var/area/wizard_station/A)
+ if(!istype(A)) return // You could probably do mean things with this otherwise
+ for(var/mob/living/carbon/human/H in A)
+ if(H.client)
+ for(var/datum/mind/M in wizards)
+ if(istype(M) && M.current == H)
+ mages_made -= 1
+ wizards -= M // No, you don't get to occupy a slot
+ H << "STOP FIGHTING."
+ H.gib()
+ for(var/obj/item/weapon/spellbook/B in A)
+ // No goodies for you
+ qdel(B)
+
/datum/game_mode/wizard/raginmages/proc/make_more_mages()
if(making_mage || shuttle_master.emergency.mode >= SHUTTLE_ESCAPE)