//========================================================= // LeapTouch - this is the headcrab's touch function when it // is in the air //========================================================= void CHeadCrab :: LeapTouch ( CBaseEntity *pOther ) { if ( !pOther->pev->takedamage ) { return; } if ( pOther->Classify() == Classify() ) { return; } // Don't hit if back on ground if ( !FBitSet( pev->flags, FL_ONGROUND ) ) { EMIT_SOUND_DYN( edict(), CHAN_WEAPON, RANDOM_SOUND_ARRAY(pBiteSounds), GetSoundVolue(), ATTN_IDLE, 0, GetVoicePitch() ); pOther->TakeDamage( pev, pev, GetDamageAmount(), DMG_SLASH ); } SetTouch( NULL ); }
//----------------------------------------------------------------------------- // Purpose: Deal the damage from the headcrab's touch attack. //----------------------------------------------------------------------------- void CNPC_Headcrab::TouchDamage( CBaseEntity *pOther ) { CTakeDamageInfo info( this, this, GetDamageAmount(), DMG_SLASH ); CalculateMeleeDamageForce( &info, GetAbsVelocity(), GetAbsOrigin() ); pOther->TakeDamage( info ); }