diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 5f8c4bf78f..94ace816ac 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -363,6 +363,3 @@ #define MAPPING_HELPER_TRAIT "mapping-helper" /// Trait associated with mafia #define MAFIA_TRAIT "mafia" - -/// snowflake blood process (slimes) -#define TRAIT_SNOWFLAKE_BLOOD_PROCESS "snowflake_blood_process" diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index e6c93d4daa..29ed0d86a5 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -39,7 +39,7 @@ return if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_HUSK))) //cryosleep or husked people do not pump the blood. - if(!HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS)) + if(species.handle_blood()) // if this returns TRUE, then the species is not handling blood itself and we can control everything if(integrating_blood > 0) var/blood_integrated = max(integrating_blood - 1, 0) var/blood_diff = integrating_blood - blood_integrated diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 3a5d35a115..af49998afe 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -2452,6 +2452,13 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return TRUE return FALSE +//////////////// +//Blood Stuff/// +//////////////// +// true = handle blood normally, false = do not (and then handle blood in this proc instead please!!) +/datum/species/proc/handle_blood() + return TRUE + //////////////// //Tail Wagging// //////////////// diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 8356eff08c..b6a10b0abc 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -55,9 +55,9 @@ //update blood color to body color exotic_blood_color = "#" + H.dna.features["mcolor"] -/datum/species/jelly/spec_life(mob/living/carbon/human/H, delta_time, times_fired) +/datum/species/jelly/handle_blood(mob/living/carbon/human/H, delta_time, times_fired) if(H.stat == DEAD) //can't farm slime jelly from a dead slime/jelly person indefinitely - return + return TRUE // we dont handle blood when dead if(H.blood_volume <= 0) H.blood_volume += 2.5 * delta_time @@ -80,6 +80,8 @@ if(regrowth) regrowth.UpdateButtonIcon() + return FALSE // to let living/handle_blood know that the species is handling blood instead + /datum/species/jelly/proc/Cannibalize_Body(mob/living/carbon/human/H) var/list/limbs_to_consume = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) - H.get_missing_limbs() var/obj/item/bodypart/consumed_limb