okay we're starting to pass our blood type to bloodmeme now
STILL JUST FUCKING FOOTSTEPS LEFT THO GOD FUCKING DAMNIT
This commit is contained in:
@@ -230,15 +230,23 @@
|
||||
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
|
||||
to_chat(world, "carbon's get blood id called")
|
||||
var/mob/living/carbon/C = src
|
||||
if(ishuman(C))
|
||||
to_chat(world, "[C] is a [dna.species]")
|
||||
var/mob/living/carbon/human/H = C
|
||||
if(H.dna.species.exotic_blood)
|
||||
to_chat(world, "[H] has [H.dna.species.exotic_blood]")
|
||||
return "[H.dna.species.exotic_blood]"
|
||||
if(dna.species.exotic_blood)
|
||||
to_chat(world, "[src] apparently isn't a human. but has exotic blood, [dna.species.exotic_blood].")
|
||||
return dna.species.exotic_blood
|
||||
else if((NOBLOOD in dna.species.species_traits) || (has_trait(TRAIT_NOCLONE)))
|
||||
to_chat(world, "[src] apparently isn't a human. And has no clone or no blood")
|
||||
return
|
||||
else
|
||||
to_chat(world, "[src] apparently isn't a human, doesn't have snowflake blood either or something.")
|
||||
return "blood"
|
||||
|
||||
// This is has more potential uses, and is probably faster than the old proc.
|
||||
/proc/get_safe_blood(bloodtype)
|
||||
|
||||
@@ -9,7 +9,10 @@
|
||||
/mob/living/brain/Initialize()
|
||||
. = ..()
|
||||
create_dna(src)
|
||||
stored_dna.initialize_dna(random_blood_type())
|
||||
if(stored_dna.blood_type)
|
||||
stored_dna.initialize_dna(stored_dna.blood_type)
|
||||
else
|
||||
stored_dna.initialize_dna(random_blood_type())
|
||||
if(isturf(loc)) //not spawned in an MMI or brain organ (most likely adminspawned)
|
||||
var/obj/item/organ/brain/OB = new(loc) //we create a new brain organ for it.
|
||||
OB.brainmob = src
|
||||
@@ -20,6 +23,14 @@
|
||||
if(!stored_dna.species)
|
||||
var/rando_race = pick(GLOB.roundstart_races)
|
||||
stored_dna.species = new rando_race()
|
||||
if(isjellyperson(stored_dna.species))
|
||||
stored_dna.blood_type = "GEL"
|
||||
if(isipcperson(stored_dna.species))
|
||||
stored_dna.blood_type = "HF"
|
||||
if(isxenoperson(stored_dna.species))
|
||||
stored_dna.blood_type = "X*"
|
||||
if(islizard(stored_dna.species))
|
||||
stored_dna.blood_type = "L"
|
||||
|
||||
/mob/living/brain/Destroy()
|
||||
if(key) //If there is a mob connected to this thing. Have to check key twice to avoid false death reporting.
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
/mob/living/carbon/human/spawn_gibs(with_bodyparts)
|
||||
if(isjellyperson(src))
|
||||
if(with_bodyparts)
|
||||
new /obj/effect/gibspawner/slimeperson(drop_location(), dna, get_static_viruses())
|
||||
new /obj/effect/gibspawner/human/slimeperson(drop_location(), dna, get_static_viruses())
|
||||
else
|
||||
new /obj/effect/gibspawner/slimeperson/bodypartless(drop_location(), dna, get_static_viruses())
|
||||
new /obj/effect/gibspawner/human/slimeperson/bodypartless(drop_location(), dna, get_static_viruses())
|
||||
|
||||
if(isipcperson(src))
|
||||
new /obj/effect/gibspawner/ipc(drop_location(), dna, get_static_viruses())
|
||||
new /obj/effect/gibspawner/robot/ipc(drop_location(), dna, get_static_viruses())
|
||||
|
||||
if(isxenoperson(src))
|
||||
if(with_bodyparts)
|
||||
new /obj/effect/gibspawner/xeno(drop_location(), dna, get_static_viruses())
|
||||
new /obj/effect/gibspawner/xeno/xenoperson(drop_location(), dna, get_static_viruses())
|
||||
else
|
||||
new /obj/effect/gibspawner/xeno/bodypartless(drop_location(), dna, get_static_viruses())
|
||||
new /obj/effect/gibspawner/xeno/xenoperson/bodypartless(drop_location(), dna, get_static_viruses())
|
||||
|
||||
else
|
||||
if(with_bodyparts)
|
||||
|
||||
@@ -268,7 +268,16 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
regenerate_organs(C,old_species)
|
||||
|
||||
if(exotic_bloodtype && C.dna.blood_type != exotic_bloodtype)
|
||||
C.dna.blood_type = exotic_bloodtype
|
||||
if(isjellyperson(C))
|
||||
C.dna.blood_type = "GEL"
|
||||
if(isipcperson(C))
|
||||
C.dna.blood_type = "HF"
|
||||
if(isxenoperson(C))
|
||||
C.dna.blood_type = "X*"
|
||||
if(islizard(C))
|
||||
C.dna.blood_type = "L"
|
||||
else
|
||||
C.dna.blood_type = exotic_bloodtype
|
||||
|
||||
if(old_species.mutanthands)
|
||||
for(var/obj/item/I in C.held_items)
|
||||
@@ -304,7 +313,16 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
|
||||
/datum/species/proc/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load)
|
||||
if(C.dna.species.exotic_bloodtype)
|
||||
C.dna.blood_type = random_blood_type()
|
||||
if(isjellyperson(C))
|
||||
C.dna.blood_type = "GEL"
|
||||
if(isipcperson(C))
|
||||
C.dna.blood_type = "HF"
|
||||
if(isxenoperson(C))
|
||||
C.dna.blood_type = "X*"
|
||||
if(islizard(C))
|
||||
C.dna.blood_type = "L"
|
||||
else
|
||||
C.dna.blood_type = random_blood_type()
|
||||
if(DIGITIGRADE in species_traits)
|
||||
C.Digitigrade_Leg_Swap(TRUE)
|
||||
for(var/X in inherent_traits)
|
||||
|
||||
Reference in New Issue
Block a user