From 2d02a501a1cca3518609ffe99418e7fdf8e29efb Mon Sep 17 00:00:00 2001 From: Birdtalon Date: Tue, 28 Nov 2023 18:19:17 +0000 Subject: [PATCH 1/3] adds removal logic to eggs bursting --- code/modules/cm_aliens/structures/egg.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/cm_aliens/structures/egg.dm b/code/modules/cm_aliens/structures/egg.dm index ce0be7c0c8a1..eda9803c8784 100644 --- a/code/modules/cm_aliens/structures/egg.dm +++ b/code/modules/cm_aliens/structures/egg.dm @@ -355,4 +355,8 @@ SPECIAL EGG USED BY EGG CARRIER /obj/effect/alien/egg/carrier_egg/Burst(kill, instant_trigger, mob/living/carbon/xenomorph/X, is_hugger_player_controlled) . = ..() - owner = null + if(owner) + var/datum/behavior_delegate/carrier_eggsac/behavior = owner.behavior_delegate + behavior.remove_egg_owner(src) + if(life_timer) + deltimer(life_timer) From 1aa91b33ac960e4e739b58dc3ffaec40bbd054fa Mon Sep 17 00:00:00 2001 From: Birdtalon Date: Tue, 28 Nov 2023 18:25:55 +0000 Subject: [PATCH 2/3] removes egg from carrier if it no longer exists --- .../carbon/xenomorph/mutators/strains/carrier/eggsac.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm index 3d032da2fe36..866a186045a5 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm +++ b/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm @@ -63,9 +63,12 @@ /datum/behavior_delegate/carrier_eggsac/on_life() if(length(eggs_sustained) > egg_sustain_cap) var/obj/effect/alien/egg/carrier_egg/my_egg = eggs_sustained[1] - remove_egg_owner(my_egg) - my_egg.start_unstoppable_decay() - to_chat(bound_xeno, SPAN_XENOWARNING("You can only sustain [egg_sustain_cap] eggs off hive weeds! Your oldest placed egg is decaying rapidly.")) + if(my_egg) + remove_egg_owner(my_egg) + my_egg.start_unstoppable_decay() + to_chat(bound_xeno, SPAN_XENOWARNING("You can only sustain [egg_sustain_cap] eggs off hive weeds! Your oldest placed egg is decaying rapidly.")) + else + eggs_sustained -= my_egg for(var/obj/effect/alien/egg/carrier_egg/my_egg as anything in eggs_sustained) //Get the distance from us to our sustained egg From 57f3cdeec0c8a34f633bca6af92caabc51cf2bbb Mon Sep 17 00:00:00 2001 From: Birdtalon Date: Tue, 28 Nov 2023 23:35:16 +0000 Subject: [PATCH 3/3] removes superfluous else statement --- .../living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm index 866a186045a5..3b321ca259c9 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm +++ b/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm @@ -67,8 +67,6 @@ remove_egg_owner(my_egg) my_egg.start_unstoppable_decay() to_chat(bound_xeno, SPAN_XENOWARNING("You can only sustain [egg_sustain_cap] eggs off hive weeds! Your oldest placed egg is decaying rapidly.")) - else - eggs_sustained -= my_egg for(var/obj/effect/alien/egg/carrier_egg/my_egg as anything in eggs_sustained) //Get the distance from us to our sustained egg