diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm
index 259e21aa740..fd8cdb9893b 100644
--- a/code/game/atom_procs.dm
+++ b/code/game/atom_procs.dm
@@ -935,13 +935,13 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl
// ------- YOU DO NOT HAVE AN ITEM IN YOUR HAND -------
if (istype(usr, /mob/living/carbon/human))
// ------- YOU ARE HUMAN -------
- if(usr.hand) // if he's using his right hand.
- var/datum/organ/external/temp = usr:get_organ("r_hand")
+ if(usr.hand) // if he's using his left hand.
+ var/datum/organ/external/temp = usr:get_organ("l_hand")
if(temp.destroyed)
usr << "\blue You look at your stump."
return
else
- var/datum/organ/external/temp = usr:get_organ("l_hand")
+ var/datum/organ/external/temp = usr:get_organ("r_hand")
if(temp.destroyed)
usr << "\blue You look at your stump."
return
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 76ea7b3543c..4080275f987 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -122,6 +122,9 @@
for(var/datum/organ/wound/W in e.wounds)
del(W)
e.update_icon()
+
+ H.vessel.clear_reagents()
+ H.vessel.add_reagent("blood",560)
H.update_body()
H.update_face()
H.UpdateDamageIcon()
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 0a9b872d6c4..633debdac16 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -188,6 +188,9 @@
status += "blistered"
else if(burndamage > 0)
status += "numb"
+ if(org.destroyed)
+ status = "MISSING!"
+
if(status == "")
status = "OK"
src.show_message(text("\t []My [] is [].",status=="OK"?"\blue ":"\red ",org.getDisplayName(),status),1)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 280963d2586..5a63176c087 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -158,10 +158,37 @@
SetStunned(0)
SetWeakened(0)
//src.health = 100
+ if(ishuman(src))
+ var/mob/living/carbon/human/H = src
+ for(var/datum/organ/external/e in src:organs)
+ if(e.destroyed)
+ e.destroyed = 0
+ e.brute_dam = 0.0
+ e.burn_dam = 0.0
+ e.bandaged = 0.0
+ e.max_damage = initial(e.max_damage)
+ e.bleeding = 0
+ e.open = 0
+ e.broken = 0
+ e.destroyed = 0
+ e.perma_injury = 0
+
+ if(e.wounds)
+ for(var/datum/organ/wound/W in e.wounds)
+ del(W)
+ e.update_icon()
+ src:update_body()
+ src:update_face()
+ src:UpdateDamageIcon()
+
+ H.vessel:clear_reagents()
+ H.vessel:add_reagent("blood",560)
+
src.heal_overall_damage(1000, 1000)
src.buckled = initial(src.buckled)
src.handcuffed = initial(src.handcuffed)
- if(src.stat > 1) src.stat = CONSCIOUS
+ if(src.stat > 1)
+ src.stat = CONSCIOUS
..()
return
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 680a85db317..867c85c263d 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -630,6 +630,19 @@
if ( !usr || usr==src || !istype(src.loc,/turf) ) //if there's no person pulling OR the person is pulling themself OR the object being pulled is inside something: abort!
return
+
+ if(ishuman(usr))
+ if(usr.hand) // if he's using his left hand.
+ var/datum/organ/external/temp = usr:get_organ("l_hand")
+ if(temp.destroyed)
+ usr << "\blue You look at your stump."
+ return
+ else
+ var/datum/organ/external/temp = usr:get_organ("r_hand")
+ if(temp.destroyed)
+ usr << "\blue You look at your stump."
+ return
+
if (!( anchored ))
usr.pulling = src
if(ismob(src))
diff --git a/code/modules/mob/organ/organ.dm b/code/modules/mob/organ/organ.dm
index e47c5b12790..d68f7687387 100644
--- a/code/modules/mob/organ/organ.dm
+++ b/code/modules/mob/organ/organ.dm
@@ -431,7 +431,7 @@
destspawn = 1
if(!robot)
owner.visible_message("\red [owner.name]'s [display_name] flies off in an arc.",\
- "\red Your [display_name] goes flying off!",\
+ "Your [display_name] goes flying off!",\
"You hear a terrible sound of ripping tendons and flesh.")
else
owner.visible_message("\red [owner.name]'s [display_name] explodes violently!",\
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index c78517f3870..41074362513 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -31,7 +31,7 @@
if(!A || !isarea(A) || !A.master)
return 0 // if not, then not powered
- return A.master.powered(chan) // return power status of the area
+ return A.master.powered(power_channel) // return power status of the area
// increment the power usage stats for an area