]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mutators/mutator/vampire/sv_vampire.qc
Merge branch 'master' into terencehill/lms_updates
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / vampire / sv_vampire.qc
index 12e4bdea43531a6fb1c8cbfc5154257f25fa9687..5b4c33e7bf02052fb48e66e99a4afdbd6f9e6a45 100644 (file)
@@ -8,19 +8,17 @@ REGISTER_MUTATOR(vampire, expr_evaluate(autocvar_g_vampire) && !MUTATOR_IS_ENABL
 
 MUTATOR_HOOKFUNCTION(vampire, PlayerDamage_SplitHealthArmor)
 {
+       // NOTE: vampire buff PlayerDamage_SplitHealthArmor code is similar
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
        float health_take = bound(0, M_ARGV(4, float), GetResource(frag_target, RES_HEALTH));
-        float armor_take = bound(0, M_ARGV(5, float), GetResource(frag_target, RES_ARMOR));
-        float damage_take = (autocvar_g_vampire_use_total_damage) ? health_take + armor_take : health_take;
+       float armor_take = bound(0, M_ARGV(5, float), GetResource(frag_target, RES_ARMOR));
+       float damage_take = (autocvar_g_vampire_use_total_damage) ? health_take + armor_take : health_take;
 
-        if(time >= frag_target.spawnshieldtime &&
-           frag_target != frag_attacker &&
-           IS_PLAYER(frag_attacker) &&
-           !IS_DEAD(frag_target))
+       if (time >= frag_target.spawnshieldtime && frag_target != frag_attacker
+               && IS_PLAYER(frag_attacker) && !IS_DEAD(frag_target) && !STAT(FROZEN, frag_target))
        {
-               GiveResource(frag_attacker, RES_HEALTH,
-                       autocvar_g_vampire_factor * damage_take);
+               GiveResource(frag_attacker, RES_HEALTH, autocvar_g_vampire_factor * damage_take);
        }
 }