From a8687f0cca5e7b51ab59d21c8f494f418c09fc57 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Thu, 16 Jun 2022 15:07:02 +0100
Subject: [PATCH 1/7] wow!
---
code/__DEFINES/traits.dm | 3 ++
code/modules/mob/living/blood.dm | 3 ++
.../innate_abilities/limb_regeneration.dm | 40 ++++++++----------
.../carbon/human/species_types/jellypeople.dm | 42 +++++++++++--------
4 files changed, 48 insertions(+), 40 deletions(-)
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 94ace816ac..5f8c4bf78f 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -363,3 +363,6 @@
#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 2d3ceb728c..ec1409c7b7 100644
--- a/code/modules/mob/living/blood.dm
+++ b/code/modules/mob/living/blood.dm
@@ -38,6 +38,9 @@
if(HAS_TRAIT(src, TRAIT_NOMARROW)) //Bloodsuckers don't need to be here.
return
+ if(HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS)) //slimes regenerate blood in their own way and take damage from not having blood in their own way
+ return
+
if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_HUSK))) //cryosleep or husked people do not pump the blood.
if(integrating_blood > 0)
var/blood_integrated = max(integrating_blood - 1, 0)
diff --git a/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm b/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm
index ce36397c91..672b6f5b7a 100644
--- a/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm
+++ b/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm
@@ -22,28 +22,24 @@
return FALSE
return 0
-/datum/action/innate/ability/limb_regrowth/Activate()
+/datum/action/innate/limb_regrowth/Activate()
var/mob/living/carbon/human/H = owner
var/list/limbs_to_heal = H.get_missing_limbs()
- if(limbs_to_heal.len < 1)
- to_chat(H, "You feel intact enough as it is.")
+ if(!length(limbs_to_heal))
+ to_chat(H, span_notice("You feel intact enough as it is."))
return
- to_chat(H, "You focus intently on your missing [limbs_to_heal.len >= 2 ? "limbs" : "limb"]...")
- var/mode = H.get_ability_property(INNATE_ABILITY_LIMB_REGROWTH, PROPERTY_LIMB_REGROWTH_USAGE_TYPE)
- switch(mode)
- if(REGROWTH_USES_BLOOD)
- if(H.blood_volume >= 40*limbs_to_heal.len+(BLOOD_VOLUME_OKAY*H.blood_ratio))
- H.regenerate_limbs()
- H.blood_volume -= 40*limbs_to_heal.len
- to_chat(H, "...and after a moment you finish reforming!")
- return
- else if(H.blood_volume >= 40)//We can partially heal some limbs
- while(H.blood_volume >= (BLOOD_VOLUME_OKAY*H.blood_ratio)+40)
- var/healed_limb = pick(limbs_to_heal)
- H.regenerate_limb(healed_limb)
- limbs_to_heal -= healed_limb
- H.blood_volume -= 40
- to_chat(H, "...but there is not enough of you to fix everything! You must attain more mass to heal completely!")
- return
- to_chat(H, "...but there is not enough of you to go around! You must attain more mass to heal!")
-
+ to_chat(H, span_notice("You focus intently on your missing [length(limbs_to_heal) >= 2 ? "limbs" : "limb"]..."))
+ if(H.blood_volume >= 40*length(limbs_to_heal)+BLOOD_VOLUME_OKAY)
+ H.regenerate_limbs()
+ H.blood_volume -= 40*length(limbs_to_heal)
+ to_chat(H, span_notice("...and after a moment you finish reforming!"))
+ return
+ else if(H.blood_volume >= 40)//We can partially heal some limbs
+ while(H.blood_volume >= BLOOD_VOLUME_OKAY+40)
+ var/healed_limb = pick(limbs_to_heal)
+ H.regenerate_limb(healed_limb)
+ limbs_to_heal -= healed_limb
+ H.blood_volume -= 40
+ to_chat(H, span_warning("...but there is not enough of you to fix everything! You must attain more mass to heal completely!"))
+ return
+ to_chat(H, span_warning("...but there is not enough of you to go around! You must attain more mass to heal!"))
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 13c9aaa8f1..3ab8ca1d07 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -55,38 +55,44 @@
//update blood color to body color
exotic_blood_color = "#" + H.dna.features["mcolor"]
-/datum/species/jelly/spec_life(mob/living/carbon/human/H)
- if(H.stat == DEAD || HAS_TRAIT(H, TRAIT_NOMARROW)) //can't farm slime jelly from a dead slime/jelly person indefinitely, and no regeneration for bloodsuckers
+/datum/species/jelly/spec_life(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
- if(!H.blood_volume)
- H.adjust_integration_blood(5)
- H.adjustBruteLoss(5)
- to_chat(H, "You feel empty!")
- if(H.blood_volume < (BLOOD_VOLUME_NORMAL * H.blood_ratio))
+ if(!H.blood_volume)
+ H.blood_volume += 2.5 * delta_time
+ H.adjustBruteLoss(2.5 * delta_time)
+ to_chat(H, span_danger("You feel empty!"))
+
+ if(H.blood_volume < BLOOD_VOLUME_NORMAL)
if(H.nutrition >= NUTRITION_LEVEL_STARVING)
- H.adjust_integration_blood(3)
- H.nutrition -= 2.5
- if(H.blood_volume < (BLOOD_VOLUME_OKAY*H.blood_ratio))
- if(prob(5))
- to_chat(H, "You feel drained!")
- if(H.blood_volume < (BLOOD_VOLUME_BAD*H.blood_ratio))
+ H.blood_volume += 1.5 * delta_time
+ H.adjust_nutrition(-1.25 * delta_time)
+
+ if(H.blood_volume < BLOOD_VOLUME_OKAY)
+ if(DT_PROB(2.5, delta_time))
+ to_chat(H, span_danger("You feel drained!"))
+
+ if(H.blood_volume < BLOOD_VOLUME_BAD)
Cannibalize_Body(H)
- ..()
+
+ var/datum/action/innate/ability/regrowth = H.ability_actions[INNATE_ABILITY_LIMB_REGROWTH]
+ if(regrowth)
+ regrowth.UpdateButtonIcon()
/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
- if(!limbs_to_consume.len)
+ if(!length(limbs_to_consume))
H.losebreath++
return
if(H.get_num_legs(FALSE)) //Legs go before arms
limbs_to_consume -= list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM)
consumed_limb = H.get_bodypart(pick(limbs_to_consume))
consumed_limb.drop_limb()
- to_chat(H, "Your [consumed_limb] is drawn back into your body, unable to maintain its shape!")
+ to_chat(H, span_userdanger("Your [consumed_limb] is drawn back into your body, unable to maintain its shape!"))
qdel(consumed_limb)
- H.adjust_integration_blood(20)
+ H.blood_volume += 20
////////////////////////////////////////////////////////SLIMEPEOPLE///////////////////////////////////////////////////////////////////
@@ -407,7 +413,7 @@
limbs_id = SPECIES_SLIME
default_color = "00FFFF"
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,HAS_FLESH)
- inherent_traits = list(TRAIT_TOXINLOVER)
+ inherent_traits = list(TRAIT_TOXINLOVER, TRAIT_SNOWFLAKE_BLOOD_PROCESS)
mutant_bodyparts = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "Plain", "mam_snouts" = "None", "taur" = "None", "deco_wings" = "None", "legs" = "Plantigrade")
say_mod = "says"
hair_color = "mutcolor"
From 0a61bb3813cb000f70dc17424012614e1b2517f6 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Thu, 16 Jun 2022 15:37:04 +0100
Subject: [PATCH 2/7] forgot to push some final changes
---
code/modules/mob/living/blood.dm | 102 +++++++++---------
.../modules/mob/living/carbon/damage_procs.dm | 6 +-
.../carbon/human/species_types/jellypeople.dm | 2 +-
3 files changed, 55 insertions(+), 55 deletions(-)
diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm
index ec1409c7b7..651912ca1d 100644
--- a/code/modules/mob/living/blood.dm
+++ b/code/modules/mob/living/blood.dm
@@ -38,60 +38,58 @@
if(HAS_TRAIT(src, TRAIT_NOMARROW)) //Bloodsuckers don't need to be here.
return
- if(HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS)) //slimes regenerate blood in their own way and take damage from not having blood in their own way
- return
-
if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_HUSK))) //cryosleep or husked people do not pump the blood.
- if(integrating_blood > 0)
- var/blood_integrated = max(integrating_blood - 1, 0)
- var/blood_diff = integrating_blood - blood_integrated
- integrating_blood = blood_integrated
- if(blood_volume < BLOOD_VOLUME_MAXIMUM)
- blood_volume += blood_diff
- if(blood_volume < BLOOD_VOLUME_NORMAL)
- var/nutrition_ratio = 0
- if(!HAS_TRAIT(src, TRAIT_NOHUNGER))
- switch(nutrition)
- if(0 to NUTRITION_LEVEL_STARVING)
- nutrition_ratio = 0.2
- if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
- nutrition_ratio = 0.4
- if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED)
- nutrition_ratio = 0.6
- if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED)
- nutrition_ratio = 0.8
- else
- nutrition_ratio = 1
- if(satiety > 80)
- nutrition_ratio *= 1.25
- adjust_nutrition(-nutrition_ratio * HUNGER_FACTOR)
- blood_volume = min(BLOOD_VOLUME_NORMAL, blood_volume + 0.5 * nutrition_ratio)
+ if(!HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS)))
+ if(integrating_blood > 0)
+ var/blood_integrated = max(integrating_blood - 1, 0)
+ var/blood_diff = integrating_blood - blood_integrated
+ integrating_blood = blood_integrated
+ if(blood_volume < BLOOD_VOLUME_MAXIMUM)
+ blood_volume += blood_diff
+ if(blood_volume < BLOOD_VOLUME_NORMAL)
+ var/nutrition_ratio = 0
+ if(!HAS_TRAIT(src, TRAIT_NOHUNGER))
+ switch(nutrition)
+ if(0 to NUTRITION_LEVEL_STARVING)
+ nutrition_ratio = 0.2
+ if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
+ nutrition_ratio = 0.4
+ if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED)
+ nutrition_ratio = 0.6
+ if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED)
+ nutrition_ratio = 0.8
+ else
+ nutrition_ratio = 1
+ if(satiety > 80)
+ nutrition_ratio *= 1.25
+ adjust_nutrition(-nutrition_ratio * HUNGER_FACTOR)
+ blood_volume = min(BLOOD_VOLUME_NORMAL, blood_volume + 0.5 * nutrition_ratio)
- //Effects of bloodloss
- if(!HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM)) //Synths are immune to direct consequences of bloodloss, instead suffering penalties to heat exchange.
- var/word = pick("dizzy","woozy","faint")
- var/blood_effect_volume = blood_volume + integrating_blood
- switch(blood_effect_volume)
- if(BLOOD_VOLUME_MAXIMUM to BLOOD_VOLUME_EXCESS)
- if(prob(10))
- to_chat(src, "You feel terribly bloated.")
- if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE)
- if(prob(5))
- to_chat(src, "You feel [word].")
- adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.01, 1))
- if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY)
- adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1))
- if(prob(5))
- blur_eyes(6)
- to_chat(src, "You feel very [word].")
- if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD)
- adjustOxyLoss(5)
- if(prob(15))
- Unconscious(rand(20,60))
- to_chat(src, "You feel extremely [word].")
- if(-INFINITY to BLOOD_VOLUME_SURVIVE)
- if(!HAS_TRAIT(src, TRAIT_NODEATH))
- death()
+ //Effects of bloodloss
+ if(!HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM)) //Synths are immune to direct consequences of bloodloss, instead suffering penalties to heat exchange.
+ var/word = pick("dizzy","woozy","faint")
+ var/blood_effect_volume = blood_volume + integrating_blood
+ switch(blood_effect_volume)
+ if(BLOOD_VOLUME_MAXIMUM to BLOOD_VOLUME_EXCESS)
+ if(prob(10))
+ to_chat(src, "You feel terribly bloated.")
+ if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE)
+ if(prob(5))
+ to_chat(src, "You feel [word].")
+ adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.01, 1))
+ if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY)
+ adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1))
+ if(prob(5))
+ blur_eyes(6)
+ to_chat(src, "You feel very [word].")
+ if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD)
+ adjustOxyLoss(5)
+ if(prob(15))
+ Unconscious(rand(20,60))
+ to_chat(src, "You feel extremely [word].")
+ if(-INFINITY to BLOOD_VOLUME_SURVIVE)
+ if(!HAS_TRAIT(src, TRAIT_NODEATH))
+ death()
var/temp_bleed = 0
//Bleeding out
diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm
index 1a159a56bb..dcd72fd5d1 100644
--- a/code/modules/mob/living/carbon/damage_procs.dm
+++ b/code/modules/mob/living/carbon/damage_procs.dm
@@ -90,10 +90,12 @@
/mob/living/carbon/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE, toxins_type = TOX_DEFAULT)
if(!forced && HAS_TRAIT(src, TRAIT_TOXINLOVER) && toxins_type != TOX_SYSCORRUPT) //damage becomes healing and healing becomes damage
amount = -amount
+ // don't allow toxinlover to push blood levels past BLOOD_VOLUME_MAXIMUM, but also don't set it back down to this if it's higher from something else
+ var/blood_cap = blood_volume > BLOOD_VOLUME_MAXIMUM ? blood_volume : BLOOD_VOLUME_MAXIMUM
if(amount > 0)
- blood_volume -= 3 * amount //5x was too much, this is punishing enough.
+ blood_volume blood_volume - min((3 * amount), blood_cap) //5x was too much, this is punishing enough.
else
- blood_volume -= amount
+ blood_volume = min(blood_volume - amount), blood_cap)
return ..()
/mob/living/carbon/getStaminaLoss()
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 3ab8ca1d07..8356eff08c 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -59,7 +59,7 @@
if(H.stat == DEAD) //can't farm slime jelly from a dead slime/jelly person indefinitely
return
- if(!H.blood_volume)
+ if(H.blood_volume <= 0)
H.blood_volume += 2.5 * delta_time
H.adjustBruteLoss(2.5 * delta_time)
to_chat(H, span_danger("You feel empty!"))
From c7f6d3b574c488d50e16dbb39bd4d0d2ecc29dd8 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Thu, 16 Jun 2022 15:44:40 +0100
Subject: [PATCH 3/7] dumbass forgets a bracket and cant even compile his code
---
code/modules/mob/living/blood.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm
index 651912ca1d..e6c93d4daa 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(!HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS))
if(integrating_blood > 0)
var/blood_integrated = max(integrating_blood - 1, 0)
var/blood_diff = integrating_blood - blood_integrated
From d1ba1247436de9d71275b6e0558251e0a0d73832 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Thu, 16 Jun 2022 15:47:04 +0100
Subject: [PATCH 4/7] blood cap
---
code/modules/mob/living/carbon/damage_procs.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm
index dcd72fd5d1..672db6db53 100644
--- a/code/modules/mob/living/carbon/damage_procs.dm
+++ b/code/modules/mob/living/carbon/damage_procs.dm
@@ -93,9 +93,9 @@
// don't allow toxinlover to push blood levels past BLOOD_VOLUME_MAXIMUM, but also don't set it back down to this if it's higher from something else
var/blood_cap = blood_volume > BLOOD_VOLUME_MAXIMUM ? blood_volume : BLOOD_VOLUME_MAXIMUM
if(amount > 0)
- blood_volume blood_volume - min((3 * amount), blood_cap) //5x was too much, this is punishing enough.
+ blood_volume blood_volume - min((3 * amount), blood_cap) //5x was too much, this is punishing enough.
else
- blood_volume = min(blood_volume - amount), blood_cap)
+ blood_volume = min((blood_volume - amount), blood_cap)
return ..()
/mob/living/carbon/getStaminaLoss()
From 0a29f26eba683de1d75a000840505ee51023ca08 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Thu, 16 Jun 2022 15:51:46 +0100
Subject: [PATCH 5/7] fixes issue with the blood cap
---
code/modules/mob/living/carbon/damage_procs.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm
index 672db6db53..85c188d2ab 100644
--- a/code/modules/mob/living/carbon/damage_procs.dm
+++ b/code/modules/mob/living/carbon/damage_procs.dm
@@ -93,7 +93,7 @@
// don't allow toxinlover to push blood levels past BLOOD_VOLUME_MAXIMUM, but also don't set it back down to this if it's higher from something else
var/blood_cap = blood_volume > BLOOD_VOLUME_MAXIMUM ? blood_volume : BLOOD_VOLUME_MAXIMUM
if(amount > 0)
- blood_volume blood_volume - min((3 * amount), blood_cap) //5x was too much, this is punishing enough.
+ blood_volume = min((blood_volume - (3 * amount)), blood_cap) //5x was too much, this is punishing enough.
else
blood_volume = min((blood_volume - amount), blood_cap)
return ..()
From 1635700bc91c79a54a387be60c1cfb25aa041248 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Tue, 5 Jul 2022 19:22:59 +0100
Subject: [PATCH 6/7] changes suggested by kevin
---
code/__DEFINES/traits.dm | 3 ---
code/modules/mob/living/blood.dm | 2 +-
code/modules/mob/living/carbon/human/species.dm | 7 +++++++
.../mob/living/carbon/human/species_types/jellypeople.dm | 6 ++++--
4 files changed, 12 insertions(+), 6 deletions(-)
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
From 0625ccab6168532ff40f21bcf77961841fe86d63 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Tue, 5 Jul 2022 19:27:19 +0100
Subject: [PATCH 7/7] more changes
---
code/modules/mob/living/blood.dm | 2 +-
.../mob/living/carbon/human/species_types/jellypeople.dm | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm
index 29ed0d86a5..99bfa7a91d 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(species.handle_blood()) // if this returns TRUE, then the species is not handling blood itself and we can control everything
+ if(dna.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_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index b6a10b0abc..4712fe4475 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -415,7 +415,7 @@
limbs_id = SPECIES_SLIME
default_color = "00FFFF"
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,HAS_FLESH)
- inherent_traits = list(TRAIT_TOXINLOVER, TRAIT_SNOWFLAKE_BLOOD_PROCESS)
+ inherent_traits = list(TRAIT_TOXINLOVER)
mutant_bodyparts = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "Plain", "mam_snouts" = "None", "taur" = "None", "deco_wings" = "None", "legs" = "Plantigrade")
say_mod = "says"
hair_color = "mutcolor"