mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 03:25:49 +01:00
Skeletons and slime people should no longer bleed "blood" when hit
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user