From 3c952cc191d8b667d7af5cd1efee93da583b89be Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Thu, 18 Feb 2016 18:42:26 -0500 Subject: [PATCH] MERGE CONFLICT TIME FOOOOOOOOOOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --- code/modules/mob/living/carbon/brain/brain.dm | 1 + code/modules/mob/living/carbon/brain/brain_item.dm | 5 +++-- .../modules/mob/living/carbon/human/species/species.dm | 9 +++++---- code/modules/mob/living/carbon/human/update_icons.dm | 9 +++++---- code/modules/surgery/organs/organ_external.dm | 10 +++++----- code/modules/surgery/organs/subtypes/standard.dm | 5 +++++ 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index 8e6da1eca78..047c45f3642 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -19,6 +19,7 @@ if(key) //If there is a mob connected to this thing. Have to check key twice to avoid false death reporting. if(stat!=DEAD) //If not dead. death(1) //Brains can die again. AND THEY SHOULD AHA HA HA HA HA HA + world << "Brain.dm" ghostize() //Ghostize checks for key so nothing else is necessary. return ..() diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm index 9bf59bce63d..5a6be41e159 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/carbon/brain/brain_item.dm @@ -78,6 +78,7 @@ /obj/item/organ/internal/brain/insert(var/mob/living/target,special = 0) + name = "brain" var/brain_already_exists = 0 if(istype(target,/mob/living/carbon/human)) // No more IPC multibrain shenanigans //var/mob/living/carbon/human/H = target @@ -88,9 +89,9 @@ H.update_hair(0) if(!brain_already_exists) - if(target.key) - target.ghostize() if(brainmob) + if(target.key) + target.ghostize() if(brainmob.mind) brainmob.mind.transfer_to(target) else diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 4d49a356c2e..d61fd3deb69 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -142,14 +142,15 @@ /datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs. + + for(var/obj/item/organ/internal/iorgan in H.internal_organs) + if((iorgan in H.internal_organs)) + qdel(iorgan) + for(var/obj/item/organ/organ in H.contents) if((organ in H.organs)) qdel(organ) - //for(var/obj/item/organ/internal/organ in H.contents) - // if((organ in H.internal_organs)) - // qdel(organ) - if(H.organs) H.organs.Cut() //if(H.internal_organs) H.internal_organs.Cut() if(H.organs_by_name) H.organs_by_name.Cut() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 46066726271..ece7b05c3cc 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -471,10 +471,11 @@ var/global/list/damage_icon_parts = list() else //warning("Invalid h_style for [species.name]: [h_style]") - if(!src.get_int_organ(/obj/item/organ/internal/brain) && !src.get_species() == "Machine" )//make it obvious we have NO BRAIN - overlays_standing[HAIR_LAYER] = image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s") - else - overlays_standing[HAIR_LAYER] = image(hair_standing) + if(!src.get_int_organ(/obj/item/organ/internal/brain) && src.get_species() != "Machine" )//make it obvious we have NO BRAIN + var/icon/debrained_s = new/icon("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s") + hair_standing.Blend(debrained_s, ICON_OVERLAY)//how does i overlay for fish? + + overlays_standing[HAIR_LAYER] = image(hair_standing) if(update_icons) update_icons() diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index 539a4ed0c5a..67f53dc6104 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -65,16 +65,16 @@ if(parent && parent.children) parent.children -= src - if(children) - for(var/obj/item/organ/external/C in children) - qdel(C) - if(internal_organs) for(var/obj/item/organ/internal/O in internal_organs) internal_organs -= O - O.remove(owner) + O.remove(owner,special = 1) //qdel(O) + if(children) + for(var/obj/item/organ/external/C in children) + qdel(C) + return ..() /obj/item/organ/external/attackby(obj/item/weapon/W as obj, mob/user as mob) diff --git a/code/modules/surgery/organs/subtypes/standard.dm b/code/modules/surgery/organs/subtypes/standard.dm index d464a9bdfdf..e0f4aec8743 100644 --- a/code/modules/surgery/organs/subtypes/standard.dm +++ b/code/modules/surgery/organs/subtypes/standard.dm @@ -150,6 +150,11 @@ owner.update_fhair() ..() +/obj/item/organ/external/head/replaced() + name = limb_name + + ..() + /obj/item/organ/external/head/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list()) ..(brute, burn, sharp, edge, used_weapon, forbidden_limbs) if (!disfigured)