mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-17 18:13:34 +01:00
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:
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user