diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 9cbc4bb3bc2..7eeefca5fd0 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -52,7 +52,8 @@ brainmob.real_name = H.real_name brainmob.dna = H.dna brainmob.timeofhostdeath = H.timeofdeath - brainmob.mind.assigned_role = "Positronic Brain" + if(brainmob.mind) + brainmob.mind.assigned_role = "Positronic Brain" if(H.mind) H.mind.transfer_to(brainmob) brainmob << "\blue You feel slightly disoriented. That's normal when you're just a metal cube." diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 8ec9fe86f64..20f08cf664c 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -497,7 +497,9 @@ This function completely restores a damaged organ to perfect condition. if(LOWER_TORSO) owner << "\red You are now sterile." if(HEAD) - if(owner.mutations & SKELETON) + if(owner.species.flags & IS_SYNTHETIC) + organ= new /obj/item/weapon/organ/head/posi(owner.loc, owner) + else if(owner.mutations & SKELETON) organ= new /obj/item/weapon/skeleton/head(owner.loc) else organ= new /obj/item/weapon/organ/head(owner.loc, owner) @@ -884,6 +886,9 @@ obj/item/weapon/organ/head var/mob/living/carbon/brain/brainmob var/brain_op_stage = 0 +/obj/item/weapon/organ/head/posi + name = "robotic head" + obj/item/weapon/organ/head/New(loc, mob/living/carbon/human/H) if(istype(H)) src.icon_state = H.gender == MALE? "head_m" : "head_f" @@ -976,11 +981,7 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob) else brainmob.LAssailant = user - var/mob/living/carbon/human/H - if(istype(brainmob,/mob/living/carbon/human)) - H = brainmob - - if(istype(H) && H.species && H.species.flags & IS_SYNTHETIC) + if(istype(src,/obj/item/weapon/organ/head/posi)) var/obj/item/device/mmi/posibrain/B = new(loc) B.transfer_identity(brainmob) else diff --git a/code/modules/surgery/braincore.dm b/code/modules/surgery/braincore.dm index 01981860a99..e46190406ab 100644 --- a/code/modules/surgery/braincore.dm +++ b/code/modules/surgery/braincore.dm @@ -104,7 +104,7 @@ H = target var/obj/item/brain/B - if(istype(H) && H.species && H.species.flags & IS_SYNTHETIC) + if(H && H.species && H.species.flags & IS_SYNTHETIC) var/obj/item/device/mmi/posibrain/P = new(target.loc) P.transfer_identity(target) else diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index d61f917eaac..e40816458cd 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -30,12 +30,12 @@ if(allowed_species) for(var/species in allowed_species) - if(target.dna.mutantrace == species) + if(target.species.name == species) return 1 if(disallowed_species) for(var/species in disallowed_species) - if (target.dna.mutantrace == species) + if(target.species.name == species) return 0 return 1