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:
Poojawa
2019-05-09 08:17:18 -05:00
parent 5ad532f723
commit 7b6a65ce3b
14 changed files with 299 additions and 219 deletions
+17 -9
View File
@@ -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)
+12 -1
View File
@@ -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)