diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 39a42f592a..0bd446de0f 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -500,6 +500,7 @@ H.regenerate_icons() user.drowsyness = max(user.drowsyness - rand(2,3), 0) //Washing your face wakes you up if you're falling asleep else + SEND_SIGNAL(user, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK) user.clean_blood() /obj/structure/sink/attackby(obj/item/O, mob/living/user, params) diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 7e46e99778..75736dba1b 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -159,9 +159,7 @@ if((D.spread_flags & DISEASE_SPREAD_SPECIAL) || (D.spread_flags & DISEASE_SPREAD_NON_CONTAGIOUS)) continue C.ForceContractDisease(D) - if(!(blood_data["blood_type"] in get_safe_blood(C.dna.blood_type))) - C.reagents.add_reagent("bonehurtingjuice", amount * 0.5) - return TRUE + //This used to inject oof ouch results, but since we add the reagent, and the reagent causes oof ouch on mob life... why double dip? C.blood_volume = min(C.blood_volume + round(amount, 0.1), BLOOD_VOLUME_MAXIMUM) return TRUE diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index cea39aff69..94aca411be 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -583,7 +583,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C) if(C.blood_volume < (BLOOD_VOLUME_NORMAL*C.blood_ratio)) - C.blood_volume += 2 //Bloody Mary quickly restores blood loss. + C.blood_volume = min((BLOOD_VOLUME_NORMAL*C.blood_ratio), C.blood_volume + 3) //Bloody Mary quickly restores blood loss. ..() /datum/reagent/consumable/ethanol/brave_bull diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index ae7ccea248..a8af452555 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -25,14 +25,18 @@ else //ingest, patch or inject L.ForceContractDisease(D) +/datum/reagent/blood/on_mob_life(mob/living/L) //needed so we don't nuke people with massive toxins now. Because apparently being hyperlethal is preferable to stamina drain if(iscarbon(L)) var/mob/living/carbon/C = L var/blood_id = C.get_blood_id() if((blood_id == "blood" || blood_id == "jellyblood") && (method == INJECT || (method == INGEST && C.dna && C.dna.species && (DRINKSBLOOD in C.dna.species.species_traits)))) if(!data || !(data["blood_type"] in get_safe_blood(C.dna.blood_type))) - C.reagents.add_reagent("bonehurtingjuice", reac_volume * 0.5) + C.adjustToxLoss(2*REM, TRUE, TRUE) //forced to ensure people don't use it to gain tox as slime person + . = 1 else C.blood_volume = min(C.blood_volume + round(reac_volume, 0.1), BLOOD_VOLUME_MAXIMUM) + . = 1 + ..() /datum/reagent/blood/reaction_obj(obj/O, volume) if(volume >= 3 && istype(O)) @@ -87,7 +91,7 @@ /datum/reagent/blood/on_merge(list/mix_data) if(data && mix_data) if(data["blood_DNA"] != mix_data["blood_DNA"]) - data["cloneable"] = 0 //On mix, consider the genetic sampling unviable for pod cloning if the DNA sample doesn't match. + data["cloneable"] = FALSE //On mix, consider the genetic sampling unviable for pod cloning if the DNA sample doesn't match. if(data["viruses"] || mix_data["viruses"]) var/list/mix1 = data["viruses"] @@ -1201,7 +1205,7 @@ pH = 5.5 /datum/reagent/space_cleaner/reaction_obj(obj/O, reac_volume) - if(istype(O, /obj/effect/decal/cleanable)) + if(istype(O, /obj/effect/decal/cleanable || istype(O, /obj/item/projectile/bullet/reusable/foam_dart) || istype(O, /obj/item/ammo_casing/caseless/foam_dart)) qdel(O) else if(O)