vector v;
Violence_GibSplash_At(hitloc, force, 2, bound(0, damage, 200) / 16, this, attacker);
- // damage resistance (ignore most of the damage from a bullet or similar)
- damage = max(damage - 5, 1);
-
v = healtharmor_applydamage(this.armorvalue, autocvar_g_balance_armor_blockpercent, deathtype, damage);
take = v.x;
save = v.y;
animdecide_setstate(this, this.anim_state | ANIMSTATE_DEAD1, true);
else
animdecide_setstate(this, this.anim_state | ANIMSTATE_DEAD2, true);
+
+ /* // postpone resize until frame end so that dead player can still
+ // properly get hit by all the projectiles fired in this frame (shotgun)
if (this.maxs.z > 5)
{
this.maxs_z = 5;
setsize(this, this.mins, this.maxs);
}
+ */
+
// set damage function to corpse damage
this.event_damage = PlayerCorpseDamage;
// call the corpse damage function just in case it wants to gib
if(autocvar_sv_gentle > 0 || autocvar_ekg || this.classname == "body") {
// remove corpse
// clones don't run any animation code any more, so we must gib them when they die :(
- PlayerCorpseDamage(this, inflictor, attacker, autocvar_sv_gibhealth+1.0, deathtype, hitloc, force);
+ this.event_damage(this, inflictor, attacker, autocvar_sv_gibhealth + 1, deathtype, hitloc, force);
}
// reset fields the weapons may use just in case
int mutator_check = MUTATOR_CALLHOOK(AccuracyTargetValid, attacker, targ);
if (warmup_stage) return false;
- if (IS_DEAD(targ)) return false;
+ if (IS_DEAD(targ) && time > targ.death_time) return false;
if (STAT(FROZEN, targ)) return false;
if (SAME_TEAM(attacker, targ)) return false;
yoda = 0;
MUTATOR_CALLHOOK(FireBullet_Hit, this, hit, start, end, damage, this.(weaponentity));
damage = M_ARGV(4, float);
- float g = accuracy_isgooddamage(this, hit);
+ bool gooddamage = accuracy_isgooddamage(this, hit);
Damage(hit, this, this, damage * solid_penetration_left, dtype, start, force * dir * solid_penetration_left);
// calculate hits for ballistic weapons
- if(g)
+ if(gooddamage)
{
// do not exceed 100%
float added_damage = min(damage - total_damage, damage * solid_penetration_left);