mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-25 21:19:44 +01:00
Merge pull request #4167 from Anewbe/soak_fix
Armor soak should actually work for humans now
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
weapon_edge = 0
|
||||
hit_embed_chance = I.force/(I.w_class*3)
|
||||
|
||||
apply_damage(effective_force, I.damtype, hit_zone, blocked, sharp=weapon_sharp, edge=weapon_edge, used_weapon=I)
|
||||
apply_damage(effective_force, I.damtype, hit_zone, blocked, soaked, sharp=weapon_sharp, edge=weapon_edge, used_weapon=I)
|
||||
|
||||
//Melee weapon embedded object code.
|
||||
if (I && I.damtype == BRUTE && !I.anchored && !is_robot_module(I) && I.embed_chance > 0)
|
||||
|
||||
@@ -425,9 +425,9 @@ This function restores all organs.
|
||||
zone = BP_HEAD
|
||||
return organs_by_name[zone]
|
||||
|
||||
/mob/living/carbon/human/apply_damage(var/damage = 0, var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/sharp = 0, var/edge = 0, var/obj/used_weapon = null)
|
||||
/mob/living/carbon/human/apply_damage(var/damage = 0, var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/soaked = 0, var/sharp = 0, var/edge = 0, var/obj/used_weapon = null)
|
||||
if(Debug2)
|
||||
world.log << "## DEBUG: human/apply_damage() was called on [src], with [damage] damage, and an armor value of [blocked]."
|
||||
world.log << "## DEBUG: human/apply_damage() was called on [src], with [damage] damage, an armor value of [blocked], and a soak value of [soaked]."
|
||||
|
||||
var/obj/item/organ/external/organ = null
|
||||
if(isorgan(def_zone))
|
||||
@@ -442,7 +442,7 @@ This function restores all organs.
|
||||
if((damage > 25 && prob(20)) || (damage > 50 && prob(60)))
|
||||
if(organ && organ.organ_can_feel_pain())
|
||||
emote("scream")
|
||||
..(damage, damagetype, def_zone, blocked)
|
||||
..(damage, damagetype, def_zone, blocked, soaked)
|
||||
return 1
|
||||
|
||||
//Handle BRUTE and BURN damage
|
||||
@@ -451,12 +451,18 @@ This function restores all organs.
|
||||
if(blocked >= 100)
|
||||
return 0
|
||||
|
||||
if(soaked >= damage)
|
||||
return 0
|
||||
|
||||
if(!organ) return 0
|
||||
|
||||
if(blocked)
|
||||
blocked = (100-blocked)/100
|
||||
damage = (damage * blocked)
|
||||
|
||||
if(soaked)
|
||||
damage -= soaked
|
||||
|
||||
if(Debug2)
|
||||
world.log << "## DEBUG: [src] was hit for [damage]."
|
||||
|
||||
|
||||
Reference in New Issue
Block a user