Fresh Meat, Leatherworking (#7629)

* Make Butchering more modular. Don't tell the demon lords.

* No guts no glory. That was far more work than expected to get organs to just process and work for butchering holy shit.

* Chitin and hides oh my.

* squeak. ..Why did this not fire on local?

* Squelch.

* Seven cubed livers, for the doctors in their sterile halls.

* Changeling

* Prep for Datums

* Fix Broken Broken Guns

* Redundancy

* F l a g s
This commit is contained in:
Mechoid
2020-11-07 12:06:35 -08:00
committed by GitHub
parent 236cdbb1f7
commit 68b370be8a
39 changed files with 599 additions and 207 deletions
+2
View File
@@ -14,6 +14,8 @@
target_parent_classes = list() // Is the parent supposed to be organic, robotic, assisted?
forgiving_class = TRUE // Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic.
butcherable = FALSE
var/obj/item/integrated_object // Objects held by the organ, used for re-usable, deployable things.
var/integrated_object_type // Object type the organ will spawn.
var/target_slot = null
+10 -6
View File
@@ -83,8 +83,11 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
health = config.default_brain_health
defib_timer = (config.defib_timer MINUTES) / 2
spawn(5)
if(brainmob && brainmob.client)
brainmob.client.screen.len = null //clear the hud
if(brainmob)
butcherable = FALSE
if(brainmob.client)
brainmob.client.screen.len = null //clear the hud
/obj/item/organ/internal/brain/Destroy()
QDEL_NULL(brainmob)
@@ -96,8 +99,9 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
brainmob = new(src)
brainmob.name = H.real_name
brainmob.real_name = H.real_name
brainmob.dna = H.dna.Clone()
brainmob.timeofhostdeath = H.timeofdeath
if(istype(H))
brainmob.dna = H.dna.Clone()
brainmob.timeofhostdeath = H.timeofdeath
// Copy modifiers.
for(var/datum/modifier/M in H.modifiers)
@@ -124,13 +128,13 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
if(name == initial(name))
name = "\the [owner.real_name]'s [initial(name)]"
var/mob/living/simple_mob/animal/borer/borer = owner.has_brain_worms()
var/mob/living/simple_mob/animal/borer/borer = owner?.has_brain_worms()
if(borer)
borer.detatch() //Should remove borer if the brain is removed - RR
var/obj/item/organ/internal/brain/B = src
if(istype(B) && istype(owner))
if(istype(B) && owner)
B.transfer_identity(owner)
..()
+1 -1
View File
@@ -8,7 +8,7 @@
/obj/item/organ/internal/liver/process()
..()
if(!owner) return
if(!iscarbon(owner)) return
if(owner.life_tick % PROCESS_ACCURACY == 0)
@@ -9,3 +9,4 @@
decays = FALSE // Ditto. Rust takes a while.
robotic = ORGAN_ROBOT
butcherable = FALSE