This commit is contained in:
YakumoChen
2019-10-22 23:49:29 +00:00
committed by GitHub
parent 884b5421a0
commit e76f64ce16
+10 -9
View File
@@ -1,8 +1,8 @@
/mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = FALSE)
/mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE)
var/hit_percent = (100-blocked)/100
if(hit_percent <= 0)
if(!forced && hit_percent <= 0)
return 0
var/obj/item/bodypart/BP = null
@@ -15,34 +15,35 @@
if(!BP)
BP = bodyparts[1]
var/damage_amount = forced ? damage : damage * hit_percent
switch(damagetype)
if(BRUTE)
if(BP)
if(damage > 0 ? BP.receive_damage(damage * hit_percent, 0) : BP.heal_damage(abs(damage * hit_percent), 0))
update_damage_overlays()
else //no bodypart, we deal damage with a more general method.
adjustBruteLoss(damage * hit_percent)
adjustBruteLoss(damage_amount, forced = forced)
if(BURN)
if(BP)
if(damage > 0 ? BP.receive_damage(0, damage * hit_percent) : BP.heal_damage(0, abs(damage * hit_percent)))
update_damage_overlays()
else
adjustFireLoss(damage * hit_percent)
adjustFireLoss(damage_amount, forced = forced)
if(TOX)
adjustToxLoss(damage * hit_percent)
adjustToxLoss(damage_amount, forced = forced)
if(OXY)
adjustOxyLoss(damage * hit_percent)
adjustOxyLoss(damage_amount, forced = forced)
if(CLONE)
adjustCloneLoss(damage * hit_percent)
adjustCloneLoss(damage_amount, forced = forced)
if(STAMINA)
if(BP)
if(damage > 0 ? BP.receive_damage(0, 0, damage * hit_percent) : BP.heal_damage(0, 0, abs(damage * hit_percent)))
update_damage_overlays()
else
adjustStaminaLoss(damage * hit_percent)
adjustStaminaLoss(damage_amount, forced = forced)
//citadel code
if(AROUSAL)
adjustArousalLoss(damage * hit_percent)
adjustArousalLoss(damage_amount, forced = forced)
return TRUE