diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index a3c888ebfc..bb7e38f91d 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -56,23 +56,24 @@ //Effects of bloodloss var/word = pick("dizzy","woozy","faint") //switch(blood_volume) Used to be a switch statement; now it uses ifs (so blood ratio can work.) Check my logic please. - if(((BLOOD_VOLUME_OKAY * blood_ratio) < blood_volume) && (blood_volume <= (BLOOD_VOLUME_SAFE * blood_ratio))) - if(prob(5)) - to_chat(src, "You feel [word].") - adjustOxyLoss(round(((BLOOD_VOLUME_NORMAL * blood_ratio) - blood_volume) * 0.01, 1)) - else if(((BLOOD_VOLUME_BAD * blood_ratio) < blood_volume) && (blood_volume <=(BLOOD_VOLUME_OKAY*blood_ratio))) - adjustOxyLoss(round(((BLOOD_VOLUME_NORMAL * blood_ratio) - blood_volume) * 0.02, 1)) - if(prob(5)) - blur_eyes(6) - to_chat(src, "You feel very [word].") - else if( ((BLOOD_VOLUME_SURVIVE * blood_ratio) < blood_volume) && (blood_volume <= (BLOOD_VOLUME_BAD * blood_ratio))) - adjustOxyLoss(5) - if(prob(15)) - Unconscious(rand(20,60)) - to_chat(src, "You feel extremely [word].") - else if((-INFINITY < blood_volume) && (blood_volume <= (BLOOD_VOLUME_SURVIVE * blood_ratio))) - if(!has_trait(TRAIT_NODEATH)) - death() + switch(blood_volume * INVERSE(blood_ratio)) + if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) + if(prob(5)) + to_chat(src, "You feel [word].") + adjustOxyLoss(round(((BLOOD_VOLUME_NORMAL * blood_ratio) - blood_volume) * 0.01, 1)) + if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY) + adjustOxyLoss(round(((BLOOD_VOLUME_NORMAL * blood_ratio) - blood_volume) * 0.02, 1)) + if(prob(5)) + blur_eyes(6) + to_chat(src, "You feel very [word].") + if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD) + adjustOxyLoss(5) + if(prob(15)) + Unconscious(rand(20,60)) + to_chat(src, "You feel extremely [word].") + if(-INFINITY to BLOOD_VOLUME_SURVIVE) + if(!has_trait(TRAIT_NODEATH)) + death() var/temp_bleed = 0 //Bleeding out