[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 <silent_insomnia_pp@hotmail.co.uk>
This commit is contained in:
SkyratBot
2020-11-21 04:00:00 +01:00
committed by GitHub
co-authored by Timberpoes
parent 2a1ae2914f
commit e148f6a72e
2 changed files with 21 additions and 7 deletions
+15 -1
View File
@@ -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,))
@@ -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)