This tail refactor turned into an organ refactor. Funny how that works. (#67017)

* Fuck you (refactors ur tails)

* Errors

* Wow. Pain.

* Fixes up probably everything

* finish up here

* Fixes hard del maybe

* original owner hard del

* garbage collection runtime

* suck my peen byond

* Mapped tails

* motherfucker.

* motherrfucker. again.

* Whooopppppsie

* yeah bad idea

* Turns out external organs literally just sat in nullspace forever if their parent was deleted, and didnt Remove() themselves, causing harddels.

* So anyways I repathed all organs

* Fixes

* really.

* unit test... test

* unit test-test but it passes linters this time because im a moh-ron

* I've lost track of what im doing at this point

* Hopefully fixes hard del?

* meh

* Update code/datums/dna.dm

* things n stuff

* repath from master pull
This commit is contained in:
Kapu1178
2022-05-30 21:18:34 -07:00
committed by GitHub
parent f837a3e541
commit 6d470992cb
317 changed files with 2090 additions and 2118 deletions
@@ -229,7 +229,7 @@
.["slots_max"] = null
return
var/obj/item/organ/brain/occupant_brain = carbon_occupant.getorganslot(ORGAN_SLOT_BRAIN)
var/obj/item/organ/internal/brain/occupant_brain = carbon_occupant.getorganslot(ORGAN_SLOT_BRAIN)
// If there's no brain, we don't need to worry either.
if(QDELETED(occupant_brain))
@@ -272,7 +272,7 @@
return TRUE
var/chipref = params["ref"]
var/mob/living/carbon/carbon_occupant = occupant
var/obj/item/organ/brain/occupant_brain = carbon_occupant.getorganslot(ORGAN_SLOT_BRAIN)
var/obj/item/organ/internal/brain/occupant_brain = carbon_occupant.getorganslot(ORGAN_SLOT_BRAIN)
if(QDELETED(carbon_occupant) || QDELETED(occupant_brain))
return TRUE
var/obj/item/skillchip/to_be_removed = locate(chipref) in occupant_brain.skillchips
@@ -297,7 +297,7 @@
stack_trace("[usr] tried to toggle skillchip activation when [src] was in an invalid state.")
return TRUE
var/mob/living/carbon/carbon_occupant = occupant
var/obj/item/organ/brain/occupant_brain = carbon_occupant.getorganslot(ORGAN_SLOT_BRAIN)
var/obj/item/organ/internal/brain/occupant_brain = carbon_occupant.getorganslot(ORGAN_SLOT_BRAIN)
if(QDELETED(carbon_occupant) || QDELETED(occupant_brain))
return TRUE
var/obj/item/skillchip/to_be_removed = locate(chipref) in occupant_brain.skillchips
@@ -47,7 +47,7 @@
/// Set to TRUE when the skill chip's effects are applied. Set to FALSE when they're not.
var/active = FALSE
/// Brain that holds this skillchip.
var/obj/item/organ/brain/holding_brain
var/obj/item/organ/internal/brain/holding_brain
/obj/item/skillchip/Initialize(mapload, is_removable = TRUE)
. = ..()
@@ -132,7 +132,7 @@
* Arguments:
* * owner_brain - The brain that this skillchip was implanted in to.
*/
/obj/item/skillchip/proc/on_implant(obj/item/organ/brain/owner_brain)
/obj/item/skillchip/proc/on_implant(obj/item/organ/internal/brain/owner_brain)
if(holding_brain)
CRASH("Skillchip is trying to be implanted into [owner_brain], but it's already implanted in [holding_brain]")
@@ -198,7 +198,7 @@
* Arguments:
* * skillchip - The skillchip you're intending to activate. Does not activate the chip.
*/
/obj/item/skillchip/proc/has_activate_incompatibility(obj/item/organ/brain/brain)
/obj/item/skillchip/proc/has_activate_incompatibility(obj/item/organ/internal/brain/brain)
if(QDELETED(brain))
return "No brain detected."
@@ -248,7 +248,7 @@
return "Incompatible lifeform detected."
// No brain
var/obj/item/organ/brain/brain = target.getorganslot(ORGAN_SLOT_BRAIN)
var/obj/item/organ/internal/brain/brain = target.getorganslot(ORGAN_SLOT_BRAIN)
if(QDELETED(brain))
return "No brain detected."
@@ -267,7 +267,7 @@
* Arguments:
* * brain - The brain to check for implantability with.
*/
/obj/item/skillchip/proc/has_brain_incompatibility(obj/item/organ/brain/brain)
/obj/item/skillchip/proc/has_brain_incompatibility(obj/item/organ/internal/brain/brain)
if(!istype(brain))
stack_trace("Attempted to check incompatibility with invalid brain object [brain].")
return "Incompatible brain."