From e148f6a72ecc9771bce8989b447b009261c8dd7d Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sat, 21 Nov 2020 04:00:00 +0100 Subject: [PATCH] [MIRROR] Fix Xenomorphs not being able to generate plasma for their abilities. (#1752) * Fix Xenomorphs not being able to generate plasma for their abilities. (#55051) Fixes #55006 #54632 added some code to handle organ processing, including a big ol' global list which defines the organ processing order. Downside to this is that it didn't take account of 5 year old Xenomorph code where the organ slots weren't defines. As a result, `/mob/living/carbon/proc/handle_organs()` would never call the `on_life()` for Xeno organs as they weren't in the big ol' global list. I created defines for Xeno organs, added them to the global list and updated the organs with the new defines. As a result, Xeno plasma vessels now have their `on_life()` proc fired once again and generate plasma. In local testing I was generating the expected amount of plasma on and off weeds and was able to successfully evolve up to a Queen. * Fix Xenomorphs not being able to generate plasma for their abilities. Co-authored-by: Timberpoes --- code/__DEFINES/DNA.dm | 16 +++++++++++++++- code/modules/mob/living/carbon/alien/organs.dm | 12 ++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index e834940fbf4..66a5dc9c9bb 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -163,6 +163,14 @@ #define ORGAN_SLOT_PARASITE_EGG "parasite_egg" #define ORGAN_SLOT_REGENERATIVE_CORE "hivecore" +/// Xenomorph organ slots +#define ORGAN_SLOT_XENO_PLASMAVESSEL "plasma_vessel" +#define ORGAN_SLOT_XENO_HIVENODE "hive_node" +#define ORGAN_SLOT_XENO_RESINSPINNER "resin_spinner" +#define ORGAN_SLOT_XENO_ACIDGLAND "acid_gland" +#define ORGAN_SLOT_XENO_NEUROTOXINGLAND "neurotoxin_gland" +#define ORGAN_SLOT_XENO_EGGSAC "eggsac" + //organ defines #define STANDARD_ORGAN_THRESHOLD 100 #define STANDARD_ORGAN_HEALING 0.001 @@ -204,4 +212,10 @@ GLOBAL_LIST_INIT(organ_process_order, list( ORGAN_SLOT_BRAIN_ANTISTUN, ORGAN_SLOT_TAIL, ORGAN_SLOT_PARASITE_EGG, - ORGAN_SLOT_REGENERATIVE_CORE)) + ORGAN_SLOT_REGENERATIVE_CORE, + ORGAN_SLOT_XENO_PLASMAVESSEL, + ORGAN_SLOT_XENO_HIVENODE, + ORGAN_SLOT_XENO_RESINSPINNER, + ORGAN_SLOT_XENO_ACIDGLAND, + ORGAN_SLOT_XENO_NEUROTOXINGLAND, + ORGAN_SLOT_XENO_EGGSAC,)) diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index 54f76d343cb..35ea3c1d43d 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -31,7 +31,7 @@ icon_state = "plasma" w_class = WEIGHT_CLASS_NORMAL zone = BODY_ZONE_CHEST - slot = "plasmavessel" + slot = ORGAN_SLOT_XENO_PLASMAVESSEL alien_powers = list(/obj/effect/proc_holder/alien/plant, /obj/effect/proc_holder/alien/transfer) food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/toxin/plasma = 10) @@ -101,7 +101,7 @@ name = "hive node" icon_state = "hivenode" zone = BODY_ZONE_HEAD - slot = "hivenode" + slot = ORGAN_SLOT_XENO_HIVENODE w_class = WEIGHT_CLASS_TINY ///Indicates if the queen died recently, aliens are heavily weakened while this is active. var/recent_queen_death = FALSE @@ -156,7 +156,7 @@ name = "resin spinner" icon_state = "stomach-x" zone = BODY_ZONE_PRECISE_MOUTH - slot = "resinspinner" + slot = ORGAN_SLOT_XENO_RESINSPINNER alien_powers = list(/obj/effect/proc_holder/alien/resin) @@ -164,7 +164,7 @@ name = "acid gland" icon_state = "acid" zone = BODY_ZONE_PRECISE_MOUTH - slot = "acidgland" + slot = ORGAN_SLOT_XENO_ACIDGLAND alien_powers = list(/obj/effect/proc_holder/alien/acid) @@ -172,7 +172,7 @@ name = "neurotoxin gland" icon_state = "neurotox" zone = BODY_ZONE_PRECISE_MOUTH - slot = "neurotoxingland" + slot = ORGAN_SLOT_XENO_NEUROTOXINGLAND alien_powers = list(/obj/effect/proc_holder/alien/neurotoxin) @@ -180,6 +180,6 @@ name = "egg sac" icon_state = "eggsac" zone = BODY_ZONE_PRECISE_GROIN - slot = "eggsac" + slot = ORGAN_SLOT_XENO_EGGSAC w_class = WEIGHT_CLASS_BULKY alien_powers = list(/obj/effect/proc_holder/alien/lay_egg)