diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 52f09ed27e3..3716fb29daa 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -203,7 +203,7 @@ damage = victim.modify_by_armor(damage, blocked, penetration, def_zone) if(victim.protection_aura) - damage = round(damage * ((20 - victim.protection_aura) / 20)) + damage = round(damage * (1 - victim.protection_aura * 0.05)) //10% for SLs, 15% for commanders if(!damage) return FALSE diff --git a/code/modules/mob/living/carbon/pain.dm b/code/modules/mob/living/carbon/pain.dm index 2f74b07919f..2bf7808eeb5 100644 --- a/code/modules/mob/living/carbon/pain.dm +++ b/code/modules/mob/living/carbon/pain.dm @@ -66,7 +66,7 @@ painloss += O.damage * 1.5 if(M.protection_aura) - painloss -= 20 + M.protection_aura * 20 //-40 pain for SLs, -80 for Commanders + painloss -= 20 * (1 + M.protection_aura) //-60 pain for SLs (2-1+1), -80 for Commanders (3-1+1) painloss += reagent_pain_modifier diff --git a/code/modules/mob/living/carbon/xenomorph/damage_procs.dm b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm index df6e2761f49..b747e0fcadb 100644 --- a/code/modules/mob/living/carbon/xenomorph/damage_procs.dm +++ b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm @@ -66,6 +66,10 @@ else damage = modify_by_armor(damage, blocked, penetration, def_zone) + // WARDING PHEROMONES EFFECT + if(warding_aura) + damage *= (1 - warding_aura * 0.025) // %damage decrease per level. Max base level is 6 (king) + if(!damage) //no damage return FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/life.dm b/code/modules/mob/living/carbon/xenomorph/life.dm index c095d9b3ddc..578016f9344 100644 --- a/code/modules/mob/living/carbon/xenomorph/life.dm +++ b/code/modules/mob/living/carbon/xenomorph/life.dm @@ -165,11 +165,7 @@ set_frenzy_aura(received_auras[AURA_XENO_FRENZY] || 0) if(warding_aura != (received_auras[AURA_XENO_WARDING] || 0)) - if(warding_aura) //If either the new or old warding is 0, we can skip adjusting armor for it. - soft_armor = soft_armor.modifyAllRatings(-warding_aura * 2.5) warding_aura = received_auras[AURA_XENO_WARDING] || 0 - if(warding_aura) - soft_armor = soft_armor.modifyAllRatings(warding_aura * 2.5) recovery_aura = received_auras[AURA_XENO_RECOVERY] || 0