- // this... is ridiculous (TODO: fix!)
- if(STAT(BUFFS, frag_attacker) & BUFF_VAMPIRE.m_itemid)
- if(!frag_target.vehicle)
- if(!ITEM_DAMAGE_NEEDKILL(frag_deathtype))
- if(!IS_DEAD(frag_target))
- if(IS_PLAYER(frag_target) || IS_MONSTER(frag_target))
- if(frag_attacker != frag_target)
- if(!STAT(FROZEN, frag_target))
- if(frag_target.takedamage)
- if(DIFF_TEAM(frag_attacker, frag_target))
- {
- float amount = bound(0, frag_damage * autocvar_g_buffs_vampire_damage_steal,
- GetResource(frag_target, RES_HEALTH));
- GiveResourceWithLimit(frag_attacker, RES_HEALTH, amount, g_pickup_healthsmall_max);
- if (GetResource(frag_target, RES_ARMOR))
- {
- amount = bound(0, frag_damage * autocvar_g_buffs_vampire_damage_steal,
- GetResource(frag_target, RES_ARMOR));
- GiveResourceWithLimit(frag_attacker, RES_ARMOR, amount, g_pickup_armorsmall_max);
- }
- }
-