mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-19 03:49:10 +01:00
Organ Runtime Fix (#2005)
changes: Added a QDELETED check to organ processing so they won't continue to process if they were erroneously left in the processing objects list after being deleted. Fixed a bad robotic organ check on spiders.
This commit is contained in:
@@ -84,7 +84,7 @@
|
||||
var/mob/living/carbon/human/H = .
|
||||
if(prob(poison_per_bite))
|
||||
var/obj/item/organ/external/O = pick(H.organs)
|
||||
if(!(O.robotic >= ORGAN_ROBOT))
|
||||
if(!(O.status & ORGAN_ROBOT))
|
||||
var/eggs = new /obj/effect/spider/eggcluster(O, src)
|
||||
O.implants += eggs
|
||||
H << "<span class='warning'>The [src] injects something into your [O.name]!</span>"
|
||||
|
||||
@@ -103,6 +103,11 @@ var/list/organ_cache = list()
|
||||
if(loc != owner)
|
||||
owner = null
|
||||
|
||||
if (QDELETED(src))
|
||||
log_debug("QDELETED organ [DEBUG_REF(src)] had process() called!")
|
||||
processing_objects -= src
|
||||
return
|
||||
|
||||
//dead already, no need for more processing
|
||||
if(status & ORGAN_DEAD)
|
||||
return
|
||||
@@ -117,6 +122,10 @@ var/list/organ_cache = list()
|
||||
return
|
||||
|
||||
if(!owner)
|
||||
if (QDELETED(reagents))
|
||||
log_debug("Organ [DEBUG_REF(src)] had QDELETED reagents! Regenerating.")
|
||||
create_reagents(5)
|
||||
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in reagents.reagent_list
|
||||
if(B && prob(40))
|
||||
reagents.remove_reagent("blood",0.1)
|
||||
|
||||
Reference in New Issue
Block a user