From 274b1ab30b004d5eaf2e3e907d054290ad9d5dd0 Mon Sep 17 00:00:00 2001 From: Nanai Date: Mon, 28 Oct 2013 07:57:24 -0400 Subject: [PATCH 1/2] head reattachment fixes --- code/modules/organs/organ_external.dm | 32 +++++++++++++-------------- code/modules/surgery/headreattach.dm | 4 ++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index d610f3bb833..c2e838c7ab6 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -204,7 +204,7 @@ This function completely restores a damaged organ to perfect condition. implants -= implanted_object owner.updatehealth() - + update_icon() /datum/organ/external/proc/createwound(var/type = CUT, var/damage) if(damage == 0) return @@ -909,17 +909,17 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob) switch(brain_op_stage) if(0) for(var/mob/O in (oviewers(brainmob) - user)) - O.show_message("\red [brainmob] is beginning to have \his head cut open with [src] by [user].", 1) - brainmob << "\red [user] begins to cut open your head with [src]!" - user << "\red You cut [brainmob]'s head open with [src]!" + O.show_message("\red [brainmob] is beginning to have \his head cut open with [W] by [user].", 1) + brainmob << "\red [user] begins to cut open your head with [W]!" + user << "\red You cut [brainmob]'s head open with [W]!" brain_op_stage = 1 if(2) for(var/mob/O in (oviewers(brainmob) - user)) - O.show_message("\red [brainmob] is having \his connections to the brain delicately severed with [src] by [user].", 1) - brainmob << "\red [user] begins to cut open your head with [src]!" - user << "\red You cut [brainmob]'s head open with [src]!" + O.show_message("\red [brainmob] is having \his connections to the brain delicately severed with [W] by [user].", 1) + brainmob << "\red [user] begins to cut open your head with [W]!" + user << "\red You cut [brainmob]'s head open with [W]!" brain_op_stage = 3.0 else @@ -928,20 +928,20 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob) switch(brain_op_stage) if(1) for(var/mob/O in (oviewers(brainmob) - user)) - O.show_message("\red [brainmob] has \his skull sawed open with [src] by [user].", 1) - brainmob << "\red [user] begins to saw open your head with [src]!" - user << "\red You saw [brainmob]'s head open with [src]!" + O.show_message("\red [brainmob] has \his skull sawed open with [W] by [user].", 1) + brainmob << "\red [user] begins to saw open your head with [W]!" + user << "\red You saw [brainmob]'s head open with [W]!" brain_op_stage = 2 if(3) for(var/mob/O in (oviewers(brainmob) - user)) - O.show_message("\red [brainmob] has \his spine's connection to the brain severed with [src] by [user].", 1) - brainmob << "\red [user] severs your brain's connection to the spine with [src]!" - user << "\red You sever [brainmob]'s brain's connection to the spine with [src]!" + O.show_message("\red [brainmob] has \his spine's connection to the brain severed with [W] by [user].", 1) + brainmob << "\red [user] severs your brain's connection to the spine with [W]!" + user << "\red You sever [brainmob]'s brain's connection to the spine with [W]!" - user.attack_log += "\[[time_stamp()]\] Debrained [brainmob.name] ([brainmob.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" - brainmob.attack_log += "\[[time_stamp()]\] Debrained by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" - msg_admin_attack("[brainmob] ([brainmob.ckey]) debrained [user] ([user.ckey]) (INTENT: [uppertext(user.a_intent)]) (JMP)") + user.attack_log += "\[[time_stamp()]\] Debrained [brainmob.name] ([brainmob.ckey]) with [W.name] (INTENT: [uppertext(user.a_intent)])" + brainmob.attack_log += "\[[time_stamp()]\] Debrained by [user.name] ([user.ckey]) with [W.name] (INTENT: [uppertext(user.a_intent)])" + msg_admin_attack("[user] ([user.ckey]) debrained [brainmob] ([brainmob.ckey]) (INTENT: [uppertext(user.a_intent)]) (JMP)") var/obj/item/brain/B = new(loc) B.transfer_identity(brainmob) diff --git a/code/modules/surgery/headreattach.dm b/code/modules/surgery/headreattach.dm index 543ebedf9ff..a73b2b21608 100644 --- a/code/modules/surgery/headreattach.dm +++ b/code/modules/surgery/headreattach.dm @@ -174,11 +174,11 @@ affected.status = 0 affected.amputated = 0 affected.destspawn = 0 + var/obj/item/weapon/organ/head/B = tool + B.brainmob.mind.transfer_to(target) target.update_body() target.updatehealth() target.UpdateDamageIcon() - var/obj/item/weapon/organ/head/B = tool - B.brainmob.mind.transfer_to(target) del(B) fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) From b808242768574e787dd10c040548b2d1d644b1c5 Mon Sep 17 00:00:00 2001 From: alex-gh Date: Sat, 21 Dec 2013 22:35:13 +0100 Subject: [PATCH 2/2] Fixed runtime when reattaching heads without minds --- code/modules/surgery/headreattach.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/surgery/headreattach.dm b/code/modules/surgery/headreattach.dm index a73b2b21608..90df3582826 100644 --- a/code/modules/surgery/headreattach.dm +++ b/code/modules/surgery/headreattach.dm @@ -175,7 +175,8 @@ affected.amputated = 0 affected.destspawn = 0 var/obj/item/weapon/organ/head/B = tool - B.brainmob.mind.transfer_to(target) + if (B.brainmob.mind) + B.brainmob.mind.transfer_to(target) target.update_body() target.updatehealth() target.UpdateDamageIcon()