mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 19:13:30 +01:00
Remove soulhook. Fix cloning with mind transfer. Fix drone join (#15002)
This commit is contained in:
@@ -119,6 +119,7 @@
|
||||
|
||||
if(active)
|
||||
new_character.key = key //now transfer the key to link the client to our new body
|
||||
SEND_SIGNAL(src, COMSIG_MIND_TRANSER_TO, new_character)
|
||||
|
||||
/datum/mind/proc/store_memory(new_text)
|
||||
memory += "[new_text]<BR>"
|
||||
|
||||
@@ -164,52 +164,3 @@
|
||||
/datum/soullink/multisharer/replacementpool/sharerDies(gibbed, mob/living/sharer)
|
||||
removeSoulsharer(sharer)
|
||||
|
||||
|
||||
////////////////
|
||||
// SOUL HOOK //
|
||||
////////////////
|
||||
// When the owner transitions from dead to alive or vice versa,
|
||||
// the linked atom is notified
|
||||
|
||||
// Atoms that actually utilize this system are responsible for handling the GC cleanup themselves
|
||||
// Splashing the GC handling onto every atom would be a big old waste
|
||||
|
||||
/datum/soullink/soulhook
|
||||
var/atom/movable/otherend
|
||||
|
||||
/datum/soullink/soulhook/Destroy()
|
||||
if(otherend)
|
||||
LAZYREMOVE(otherend.sharedSoulhooks, src)
|
||||
otherend = null
|
||||
return ..()
|
||||
|
||||
/datum/soullink/soulhook/parseArgs(mob/living/owner, atom/movable/other)
|
||||
if(!owner || !other)
|
||||
return FALSE
|
||||
soulowner = owner
|
||||
otherend = other
|
||||
LAZYADD(owner.ownedSoullinks, src)
|
||||
LAZYADD(other.sharedSoulhooks, src)
|
||||
return TRUE
|
||||
|
||||
/datum/soullink/soulhook/ownerDies(gibbed, mob/living/owner)
|
||||
if(otherend)
|
||||
otherend.onSoullinkDeath(gibbed, owner)
|
||||
|
||||
/datum/soullink/soulhook/ownerRevives(mob/living/owner)
|
||||
if(otherend)
|
||||
otherend.onSoullinkRevive(owner)
|
||||
|
||||
// oops I'm butchering the application of this
|
||||
/datum/soullink/soulhook/removeSoulsharer(atom/movable/other)
|
||||
if(otherend == other)
|
||||
otherend = null
|
||||
LAZYREMOVE(other.sharedSoulhooks, src)
|
||||
qdel(src) // not much point in a soul link with one end out of the picture for good
|
||||
|
||||
/atom/movable
|
||||
var/list/sharedSoulhooks = null
|
||||
|
||||
/atom/movable/proc/onSoullinkDeath(gibbed, mob/living/owner)
|
||||
|
||||
/atom/movable/proc/onSoullinkRevive(mob/living/owner)
|
||||
|
||||
Reference in New Issue
Block a user