//----------------------------------------------------------------------------- // Purpose: Test whether this antlion can hit the target //----------------------------------------------------------------------------- bool CNPC_Bullsquid::InnateWeaponLOSCondition(const Vector &ownerPos, const Vector &targetPos, bool bSetConditions) { if (GetNextAttack() > gpGlobals->curtime) return false; // If we can see the enemy, or we've seen them in the last few seconds just try to lob in there if (SeenEnemyWithinTime(3.0f)) { Vector vSpitPos; GetAttachment("mouth", vSpitPos); return GetSpitVector(vSpitPos, targetPos, &m_vecSaveSpitVelocity); } return BaseClass::InnateWeaponLOSCondition(ownerPos, targetPos, bSetConditions); }
//--------------------------------------------------------- //--------------------------------------------------------- int CNPC_Combine_Cannon::RangeAttack1Conditions( float flDot, float flDist ) { if ( GetNextAttack() > gpGlobals->curtime ) return COND_NONE; if ( HasCondition( COND_SEE_ENEMY ) && !HasCondition( COND_ENEMY_OCCLUDED ) ) { if ( VerifyShot( GetEnemy() ) ) { // Can see the enemy, have a clear shot to his midsection ClearCondition( COND_CANNON_NO_SHOT ); return COND_CAN_RANGE_ATTACK1; } else { // Can see the enemy, but can't take a shot at his midsection SetCondition( COND_CANNON_NO_SHOT ); return COND_NONE; } } return COND_NONE; }