Skeletons and slime people should no longer bleed "blood" when hit

This commit is contained in:
Crazylemon
2016-03-10 17:03:25 -08:00
parent dd7c777551
commit 1eba9a6df1
2 changed files with 34 additions and 17 deletions
+34 -15
View File
@@ -187,7 +187,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
//Gets blood from mob to the container, preserving all data in it.
/mob/living/carbon/proc/take_blood(obj/item/weapon/reagent_containers/container, var/amount)
var/datum/reagent/B = get_blood(container.reagents)
if(!B) B = new /datum/reagent/blood
if(!istype(B, /datum/reagent/blood)) B = new /datum/reagent/blood
B.holder = container
B.volume += amount
@@ -241,7 +241,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
//Transfers blood from container ot vessels
/mob/living/carbon/proc/inject_blood(obj/item/weapon/reagent_containers/container, var/amount)
var/datum/reagent/blood/injected = get_blood(container.reagents)
if (!injected)
if (!istype(injected))
return
var/list/sniffles = virus_copylist(injected.data["virus2"])
for(var/ID in sniffles)
@@ -269,7 +269,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
var/datum/reagent/blood/our = get_blood(vessel)
if (!injected || !our)
if (!istype(injected) || !istype(our))
return
if(blood_incompatible(injected.data["blood_type"],our.data["blood_type"]) )
reagents.add_reagent("toxin",amount * 0.5)
@@ -289,6 +289,12 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
return D
return res
/mob/living/carbon/human/get_blood(datum/reagents/container)
if(species.exotic_blood)
return container.reagent_list[species.exotic_blood]
else
return ..()
/proc/blood_incompatible(donor,receiver)
var/donor_antigen = copytext(donor,1,lentext(donor))
@@ -307,15 +313,28 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
//AB is a universal receiver.
return 0
proc/blood_splatter(var/target,var/datum/reagent/blood/source,var/large)
/*
Target: Thing to get bloody
Source: Human or blood reagent
Large: Whether the splat should be big or not
*/
/proc/blood_splatter(var/target,var/source,var/large)
var/obj/effect/decal/cleanable/blood/B
var/decal_type = /obj/effect/decal/cleanable/blood/splatter
var/turf/T = get_turf(target)
var/datum/reagent/blood/bld
if(istype(source,/mob/living/carbon/human))
var/mob/living/carbon/human/M = source
source = M.get_blood(M.vessel)
var/mob/living/carbon/human/H = source
bld = H.get_blood(H.vessel)
if(H.species.exotic_blood)
H.vessel.reaction(T, TOUCH)
return
else if(H.species.flags & NO_BLOOD)
return
else
bld = source
// Are we dripping or splattering?
var/list/drips = list()
@@ -337,24 +356,24 @@ proc/blood_splatter(var/target,var/datum/reagent/blood/source,var/large)
drop.drips |= drips
// If there's no data to copy, call it quits here.
if(!source)
if(!bld)
return B
// Update appearance.
if(source.data["blood_colour"])
B.basecolor = source.data["blood_colour"]
if(bld.data["blood_colour"])
B.basecolor = bld.data["blood_colour"]
B.update_icon()
// Update blood information.
if(source.data["blood_DNA"])
if(bld.data["blood_DNA"])
B.blood_DNA = list()
if(source.data["blood_type"])
B.blood_DNA[source.data["blood_DNA"]] = source.data["blood_type"]
if(bld.data["blood_type"])
B.blood_DNA[bld.data["blood_DNA"]] = bld.data["blood_type"]
else
B.blood_DNA[source.data["blood_DNA"]] = "O+"
B.blood_DNA[bld.data["blood_DNA"]] = "O+"
// Update virus information.
if(source.data["virus2"])
B.virus2 = virus_copylist(source.data["virus2"])
if(bld.data["virus2"])
B.virus2 = virus_copylist(bld.data["virus2"])
return B