Makes slimes have slime jelly for blood (#14665)

* Makes slimes have slime jelly for blood, reduces the healing and toxin effects of slime jelly

* Slime jelly is a diffrent colour so it does not look like blood, slime jelly iv bag added, said bag is now found in nanomed plus

* Makes slimes bleed in c o l o u r, makes iron affect exotic blood species.

* Makes slime blood always the same colour as skin, fixing dye and CMA issues

* Fixes iron mistake

* Fix henk stuff

Adds EXOTIC_COLOR trait, used if you want exotic blood to be coloured when splattering, in this case slime blood. Removes uneeded blood data stuff

* Update toxins.dm

* Fixes the black blood issue

By B-B-BLENDING the slime colour with a medium grey, it helps match the blood colour to the true colour of the slime way better, meaning that a default slime that looks grey (but techicaly has pitch black skin codewise) will have grey blood.

* Update code/modules/reagents/chemistry/reagents/toxins.dm

Co-authored-by: farie82 <joepvelden@hotmail.com>

* Update code/modules/mob/living/carbon/human/species/slime.dm

Co-authored-by: farie82 <joepvelden@hotmail.com>

* Update code/modules/reagents/chemistry/reagents/toxins.dm

Co-authored-by: farie82 <joepvelden@hotmail.com>

* Update code/modules/reagents/chemistry/reagents/toxins.dm

Co-authored-by: farie82 <joepvelden@hotmail.com>

* Signals for henk, fixes henks worries, less processing

* Fixes runtime

* Update code/modules/mob/living/carbon/human/species/slime.dm

Co-authored-by: farie82 <joepvelden@hotmail.com>

* Update code/modules/surgery/organs/blood.dm

Co-authored-by: farie82 <joepvelden@hotmail.com>

* Update code/modules/surgery/organs/blood.dm

Co-authored-by: farie82 <joepvelden@hotmail.com>

* Update code/modules/mob/living/carbon/human/species/slime.dm

Co-authored-by: farie82 <joepvelden@hotmail.com>

* Update code/modules/mob/living/carbon/human/species/slime.dm

Co-authored-by: farie82 <joepvelden@hotmail.com>

Co-authored-by: farie82 <joepvelden@hotmail.com>
This commit is contained in:
Qwertytoforty
2020-10-31 17:49:55 -04:00
committed by GitHub
parent ee664a866f
commit e3ee0b01e8
12 changed files with 70 additions and 11 deletions
@@ -307,6 +307,7 @@
/mob/living/carbon/human/proc/update_dna()
check_dna()
dna.ready_dna(src)
SEND_SIGNAL(src, COMSIG_HUMAN_UPDATE_DNA)
/mob/living/carbon/human/proc/generate_valid_species(var/check_whitelist = 1, var/list/whitelist = list(), var/list/blacklist = list())
var/list/valid_species = new()
@@ -26,7 +26,7 @@
male_cough_sounds = list('sound/effects/slime_squish.ogg')
female_cough_sounds = list('sound/effects/slime_squish.ogg')
species_traits = list(LIPS, IS_WHITELISTED, NO_SCAN)
species_traits = list(LIPS, IS_WHITELISTED, NO_SCAN, EXOTIC_COLOR)
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
bodyflags = HAS_SKIN_COLOR | NO_EYES
dietflags = DIET_CARN
@@ -34,7 +34,7 @@
flesh_color = "#5fe8b1"
blood_color = "#0064C8"
exotic_blood = "water"
exotic_blood = "slimejelly"
butt_sprite = "slime"
//Has default darksight of 2.
@@ -74,6 +74,9 @@
recolor = new()
recolor.Grant(H)
ADD_TRAIT(H, TRAIT_WATERBREATH, "species")
RegisterSignal(H, COMSIG_HUMAN_UPDATE_DNA, /datum/species/slime/./proc/blend)
blend(H)
/datum/species/slime/on_species_loss(mob/living/carbon/human/H)
..()
@@ -82,6 +85,13 @@
if(recolor)
recolor.Remove(H)
REMOVE_TRAIT(H, TRAIT_WATERBREATH, "species")
UnregisterSignal(H, COMSIG_HUMAN_UPDATE_DNA)
/datum/species/slime/proc/blend(mob/living/carbon/human/H)
var/new_color = BlendRGB(H.skin_colour, "#acacac", 0.5) // Blends this to make it work better
if(H.blood_color != new_color) // Put here, so if it's a roundstart, dyed, or CMA'd slime, their blood changes to match skin
H.blood_color = new_color
H.dna.species.blood_color = H.blood_color
/datum/species/slime/handle_life(mob/living/carbon/human/H)
// Slowly shifting to the color of the reagents
@@ -97,8 +107,11 @@
E.sync_colour_to_human(H)
H.update_hair()
H.update_body()
blend(H)
..()
/datum/species/slime/can_hear() // fucking snowflakes
. = TRUE
+1 -1
View File
@@ -579,7 +579,7 @@
continue
R.reaction_mob(A, method, R.volume * volume_modifier, show_message)
if("TURF")
R.reaction_turf(A, R.volume * volume_modifier)
R.reaction_turf(A, R.volume * volume_modifier, R.color)
if("OBJ")
R.reaction_obj(A, R.volume * volume_modifier)
+1 -1
View File
@@ -62,7 +62,7 @@
/datum/reagent/proc/reaction_obj(obj/O, volume)
return
/datum/reagent/proc/reaction_turf(turf/T, volume)
/datum/reagent/proc/reaction_turf(turf/T, volume, color)
return
/datum/reagent/proc/on_mob_life(mob/living/M)
@@ -164,7 +164,7 @@
/datum/reagent/iron/on_mob_life(mob/living/M)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(!H.dna.species.exotic_blood && !(NO_BLOOD in H.dna.species.species_traits))
if(!(NO_BLOOD in H.dna.species.species_traits))
if(H.blood_volume < BLOOD_VOLUME_NORMAL)
H.blood_volume += 0.8
return ..()
@@ -43,7 +43,7 @@
id = "slimejelly"
description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL."
reagent_state = LIQUID
color = "#801E28" // rgb: 128, 30, 40
color = "#0b8f70" // rgb: 11, 143, 112
taste_description = "slimes"
taste_mult = 1.3
@@ -51,11 +51,23 @@
var/update_flags = STATUS_UPDATE_NONE
if(prob(10))
to_chat(M, "<span class='danger'>Your insides are burning!</span>")
update_flags |= M.adjustToxLoss(rand(20,60)*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustToxLoss(rand(2, 6) * REAGENTS_EFFECT_MULTIPLIER, FALSE) // avg 0.4 toxin per cycle, not unreasonable
else if(prob(40))
update_flags |= M.adjustBruteLoss(-5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustBruteLoss(-0.5 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
return ..() | update_flags
/datum/reagent/slimejelly/on_merge(list/mix_data)
if(data && mix_data)
if(mix_data["colour"])
color = mix_data["colour"]
/datum/reagent/slimejelly/reaction_turf(turf/T, volume, color)
if(volume >= 3 && !isspaceturf(T) && !locate(/obj/effect/decal/cleanable/blood/slime) in T)
var/obj/effect/decal/cleanable/blood/slime/B = new(T)
B.basecolor = color
B.update_icon()
/datum/reagent/slimetoxin
name = "Mutation Toxin"
id = "mutationtoxin"
@@ -200,3 +200,7 @@
/obj/item/reagent_containers/iv_bag/blood/OMinus
blood_type = "O-"
/obj/item/reagent_containers/iv_bag/slime
name = "\improper IV Bag (Slime Jelly)"
list_reagents = list("slimejelly" = 200)
+12 -2
View File
@@ -96,7 +96,10 @@
if(dna.species.exotic_blood)
var/datum/reagent/R = GLOB.chemical_reagents_list[get_blood_id()]
if(istype(R) && isturf(loc))
R.reaction_turf(get_turf(src), amt * EXOTIC_BLEED_MULTIPLIER)
if(EXOTIC_COLOR in dna.species.species_traits)
R.reaction_turf(get_turf(src), amt * EXOTIC_BLEED_MULTIPLIER, dna.species.blood_color)
else
R.reaction_turf(get_turf(src), amt * EXOTIC_BLEED_MULTIPLIER)
/mob/living/carbon/proc/bleed_internal(amt) // Return 1 if we've coughed blood up, 2 if we're vomited it.
if(blood_volume)
@@ -116,7 +119,10 @@
if(dna.species.exotic_blood && .) // Do we have exotic blood, and have we left any on the ground?
var/datum/reagent/R = GLOB.chemical_reagents_list[get_blood_id()]
if(istype(R) && isturf(loc))
R.reaction_turf(get_turf(src), amt * EXOTIC_BLEED_MULTIPLIER)
if(EXOTIC_COLOR in dna.species.species_traits)
R.reaction_turf(get_turf(src), amt * EXOTIC_BLEED_MULTIPLIER, dna.species.blood_color)
else
R.reaction_turf(get_turf(src), amt * EXOTIC_BLEED_MULTIPLIER)
/mob/living/proc/restore_blood()
blood_volume = initial(blood_volume)
@@ -202,6 +208,10 @@
blood_data["factions"] = faction
blood_data["dna"] = dna.Clone()
return blood_data
if(blood_id == "slimejelly")
var/blood_data = list()
blood_data["colour"] = dna.species.blood_color
return blood_data
//get the id of the substance this mob use as blood.
/mob/proc/get_blood_id()