mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
Fixes multibrain weirdness
This commit is contained in:
@@ -67,7 +67,7 @@
|
||||
|
||||
if(borer)
|
||||
borer.detatch() //Should remove borer if the brain is removed - RR
|
||||
if(owner.mind)//don't transfer if the owner does not have a mind.
|
||||
if(owner.mind && !non_primary)//don't transfer if the owner does not have a mind.
|
||||
B.transfer_identity(user)
|
||||
|
||||
if(istype(owner,/mob/living/carbon/human))
|
||||
@@ -94,7 +94,7 @@
|
||||
brainmob.mind.transfer_to(target)
|
||||
else
|
||||
target.key = brainmob.key
|
||||
..()
|
||||
..(target, special = special, dont_remove_slot = brain_already_exists)
|
||||
|
||||
/obj/item/organ/internal/brain/prepare_eat()
|
||||
return // Too important to eat.
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
O.status |= ORGAN_CUT_AWAY
|
||||
if(!O.sterile)
|
||||
spread_germs_to_organ(O,user) // This wouldn't be any cleaner than the actual surgery
|
||||
O.forceMove(src)
|
||||
O.forceMove(get_turf(src))
|
||||
if(!(user.l_hand && user.r_hand))
|
||||
user.put_in_hands(removing)
|
||||
user.visible_message("<span class='danger'><b>[user]</b> extracts [removing] from [src] with [W]!")
|
||||
@@ -892,13 +892,13 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
// Attached organs also fly off.
|
||||
if(!ignore_children)
|
||||
for(var/obj/item/organ/external/O in children)
|
||||
O.remove()
|
||||
O.remove(victim)
|
||||
if(O)
|
||||
O.forceMove(src)
|
||||
|
||||
// Grab all the internal giblets too.
|
||||
for(var/obj/item/organ/internal/organ in internal_organs)
|
||||
organ.remove()
|
||||
organ.remove(victim)
|
||||
organ.forceMove(src)
|
||||
|
||||
release_restraints(victim)
|
||||
|
||||
@@ -9,19 +9,23 @@
|
||||
var/slot
|
||||
vital = 0
|
||||
var/organ_action_name = null
|
||||
var/non_primary = 0
|
||||
|
||||
/obj/item/organ/internal/New(var/mob/living/carbon/holder)
|
||||
if(istype(holder))
|
||||
insert(holder)
|
||||
..()
|
||||
|
||||
/obj/item/organ/internal/proc/insert(mob/living/carbon/M, special = 0)
|
||||
/obj/item/organ/internal/proc/insert(mob/living/carbon/M, special = 0, var/dont_remove_slot = 0)
|
||||
if(!iscarbon(M) || owner == M)
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/replaced = M.get_organ_slot(slot)
|
||||
if(replaced)
|
||||
replaced.remove(M, special = 1)
|
||||
if(dont_remove_slot)
|
||||
non_primary = 1
|
||||
else
|
||||
replaced.remove(M, special = 1)
|
||||
|
||||
owner = M
|
||||
|
||||
|
||||
Reference in New Issue
Block a user