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