get blood id is my foe now.
This commit is contained in:
@@ -229,13 +229,16 @@
|
||||
if(!(has_trait(TRAIT_NOCLONE)))
|
||||
return "blood"
|
||||
|
||||
/mob/living/carbon/human/get_blood_id()
|
||||
if(dna.species.exotic_blood)
|
||||
return dna.species.exotic_blood
|
||||
else if((NOBLOOD in dna.species.species_traits) || (has_trait(TRAIT_NOCLONE)))
|
||||
return null
|
||||
else
|
||||
return "blood"
|
||||
/mob/living/carbon/get_blood_id()
|
||||
var/mob/living/carbon/human/H = src
|
||||
for(var/bluhduh in GLOB.blood_types[H.dna.species.exotic_blood])
|
||||
if(!bluhduh)
|
||||
to_chat(world, "[H] has [H.dna.species.exotic_blood] for blood")
|
||||
return H.dna.species.exotic_blood
|
||||
else if((NOBLOOD in H.dna.species.species_traits) || (has_trait(TRAIT_NOCLONE)))
|
||||
return null
|
||||
else
|
||||
return bluhduh
|
||||
|
||||
// This is has more potential uses, and is probably faster than the old proc.
|
||||
/proc/get_safe_blood(bloodtype)
|
||||
|
||||
@@ -5,10 +5,26 @@
|
||||
new /obj/effect/temp_visual/dust_animation(loc, "dust-h")
|
||||
|
||||
/mob/living/carbon/human/spawn_gibs(with_bodyparts)
|
||||
if(with_bodyparts)
|
||||
new /obj/effect/gibspawner/human(drop_location(), dna, get_static_viruses())
|
||||
if(isjellyperson(src))
|
||||
if(with_bodyparts)
|
||||
new /obj/effect/gibspawner/slimeperson(drop_location(), dna, get_static_viruses())
|
||||
else
|
||||
new /obj/effect/gibspawner/slimeperson/bodypartless(drop_location(), dna, get_static_viruses())
|
||||
|
||||
if(isipcperson(src))
|
||||
new /obj/effect/gibspawner/ipc(drop_location(), dna, get_static_viruses())
|
||||
|
||||
if(isxenoperson(src))
|
||||
if(with_bodyparts)
|
||||
new /obj/effect/gibspawner/xeno(drop_location(), dna, get_static_viruses())
|
||||
else
|
||||
new /obj/effect/gibspawner/xeno/bodypartless(drop_location(), dna, get_static_viruses())
|
||||
|
||||
else
|
||||
new /obj/effect/gibspawner/human/bodypartless(drop_location(), dna, get_static_viruses())
|
||||
if(with_bodyparts)
|
||||
new /obj/effect/gibspawner/human(drop_location(), dna, get_static_viruses())
|
||||
else
|
||||
new /obj/effect/gibspawner/human/bodypartless(drop_location(), dna, get_static_viruses())
|
||||
|
||||
/mob/living/carbon/human/spawn_dust(just_ash = FALSE)
|
||||
if(just_ash)
|
||||
|
||||
@@ -66,7 +66,6 @@
|
||||
FP.blood_state = S.blood_state
|
||||
FP.entered_dirs |= dir
|
||||
FP.bloodiness = S.bloody_shoes[S.blood_state]
|
||||
FP.color = bloodtype_to_color(S.last_bloodtype)
|
||||
FP.update_icon()
|
||||
update_inv_shoes()
|
||||
//End bloody footprints
|
||||
@@ -109,7 +108,6 @@
|
||||
FP.blood_state = blood_state
|
||||
FP.entered_dirs |= dir
|
||||
FP.bloodiness = blood_smear - BLOOD_LOSS_IN_SPREAD
|
||||
FP.color = bloodtype_to_color(last_bloodtype)
|
||||
FP.update_icon()
|
||||
|
||||
else //we're on the floor, smear some stuff around
|
||||
@@ -129,7 +127,6 @@
|
||||
FP.blood_state = blood_state
|
||||
FP.entered_dirs |= dir
|
||||
FP.bloodiness = blood_smear - BLOOD_LOSS_IN_SPREAD
|
||||
FP.color = bloodtype_to_color(last_bloodtype)
|
||||
FP.update_icon()
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
id = "jelly"
|
||||
default_color = "00FF90"
|
||||
say_mod = "chirps"
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD)
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR)
|
||||
mutant_bodyparts = list("mam_tail", "mam_ears", "mam_snouts", "taur") //CIT CHANGE
|
||||
default_features = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "mam_snouts" = "None", "taur" = "None") //CIT CHANGE
|
||||
inherent_traits = list(TRAIT_TOXINLOVER)
|
||||
|
||||
@@ -100,11 +100,16 @@
|
||||
var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here
|
||||
if(!B)
|
||||
B = new(T)
|
||||
if(data)
|
||||
B.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
|
||||
B.color = data["bloodcolor"]
|
||||
|
||||
/datum/reagent/blood/human
|
||||
if(!B.reagents)
|
||||
B.reagents.add_reagent("blood", reac_volume)
|
||||
for(var/datum/reagent/R in B.reagents.reagent_list)
|
||||
// Get blood data from the blood reagent.
|
||||
if(istype(R, /datum/reagent/blood))
|
||||
if(R.data["blood_type"])
|
||||
B.bloodmeme = R.data["blood_type"]
|
||||
if(istype(R, /datum/reagent/liquidgibs))
|
||||
if(R.data["blood_type"])
|
||||
B.bloodmeme = R.data["blood_type"]
|
||||
|
||||
/datum/reagent/blood/synthetics
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SYNTHETIC, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||
@@ -113,6 +118,11 @@
|
||||
taste_description = "oily"
|
||||
color = BLOOD_COLOR_SYNTHETIC // rgb: 11, 7, 48
|
||||
|
||||
/datum/reagent/blood/synthetics/reaction_turf(turf/T, reac_volume)
|
||||
var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here
|
||||
B.reagents.add_reagent("syntheticblood", reac_volume)
|
||||
. = ..()
|
||||
|
||||
/datum/reagent/blood/xenomorph
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_XENO, "blood_type"="X*","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||
name = "Xenomorph Blood"
|
||||
@@ -121,6 +131,11 @@
|
||||
color = BLOOD_COLOR_XENO // greenish yellow ooze
|
||||
shot_glass_icon_state = "shotglassgreen"
|
||||
|
||||
/datum/reagent/blood/xenomorph/reaction_turf(turf/T, reac_volume)
|
||||
var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here
|
||||
B.reagents.add_reagent("xenoblood", reac_volume)
|
||||
. = ..()
|
||||
|
||||
/datum/reagent/blood/oil
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_OIL, "blood_type"="HF","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||
name = "Hydraulic Blood"
|
||||
@@ -128,6 +143,11 @@
|
||||
taste_description = "burnt oil"
|
||||
color = BLOOD_COLOR_OIL // dark, y'know, expected batman colors.
|
||||
|
||||
/datum/reagent/blood/oil/reaction_turf(turf/T, reac_volume)
|
||||
var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here
|
||||
B.reagents.add_reagent("oilblood", reac_volume)
|
||||
. = ..()
|
||||
|
||||
/datum/reagent/blood/jellyblood
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SLIME, "blood_type"="GEL","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||
name = "Slime Jelly Blood"
|
||||
@@ -137,6 +157,21 @@
|
||||
taste_description = "slime"
|
||||
taste_mult = 1.3
|
||||
|
||||
/datum/reagent/blood/jellyblood/on_new(list/data)
|
||||
.=..()
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/H = src
|
||||
var/datum/species/slimecolor = H.dna.species
|
||||
if("mcolor" in slimecolor.default_features)
|
||||
color = H.dna.features["mcolor"]
|
||||
else
|
||||
color = bloodtype_to_color(data["blood_type"])
|
||||
|
||||
/datum/reagent/blood/jellyblood/reaction_turf(turf/T, reac_volume)
|
||||
var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here
|
||||
B.reagents.add_reagent("jellyblood", reac_volume)
|
||||
. = ..()
|
||||
|
||||
/datum/reagent/blood/jellyblood/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(10))
|
||||
to_chat(M, "<span class='danger'>Your insides are burning!</span>")
|
||||
@@ -150,10 +185,42 @@
|
||||
/datum/reagent/liquidgibs
|
||||
name = "Liquid gibs"
|
||||
id = "liquidgibs"
|
||||
color = "#FF9966"
|
||||
color = BLOOD_COLOR_HUMAN
|
||||
description = "You don't even want to think about what's in here."
|
||||
taste_description = "gross iron"
|
||||
shot_glass_icon_state = "shotglassred"
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_HUMAN, "blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||
|
||||
/datum/reagent/liquidgibs/xeno
|
||||
name = "Liquid xeno gibs"
|
||||
id = "liquidxenogibs"
|
||||
color = BLOOD_COLOR_XENO
|
||||
taste_description = "blended heresy"
|
||||
shot_glass_icon_state = "shotglassgreen"
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_XENO, "blood_type"="X*","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||
|
||||
/datum/reagent/liquidgibs/slime
|
||||
name = "Slime sludge"
|
||||
id = "liquidslimegibs"
|
||||
color = BLOOD_COLOR_SLIME
|
||||
taste_description = "slime"
|
||||
shot_glass_icon_state = "shotglassgreen"
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SLIME, "blood_type"="GEL","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||
|
||||
/datum/reagent/liquidgibs/synth
|
||||
name = "Synthetic sludge"
|
||||
id = "liquidsyntheticgibs"
|
||||
color = BLOOD_COLOR_SYNTHETIC
|
||||
taste_description = "jellied plastic"
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SYNTHETIC, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||
|
||||
/datum/reagent/liquidgibs/oil
|
||||
name = "Hydraulic sludge"
|
||||
id = "liquidoilgibs"
|
||||
color = BLOOD_COLOR_OIL
|
||||
taste_description = "chunky burnt oil"
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_OIL, "blood_type"="HF","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||
|
||||
|
||||
/datum/reagent/vaccine
|
||||
//data must contain virus type
|
||||
|
||||
Reference in New Issue
Block a user