diff options
Diffstat (limited to 'game/server/ai_moveshoot.h')
| -rw-r--r-- | game/server/ai_moveshoot.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/game/server/ai_moveshoot.h b/game/server/ai_moveshoot.h new file mode 100644 index 0000000..9fee000 --- /dev/null +++ b/game/server/ai_moveshoot.h @@ -0,0 +1,54 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef AI_MOVESHOOT_H +#define AI_MOVESHOOT_H + +#include "ai_component.h" + +#if defined( _WIN32 ) +#pragma once +#endif + +//----------------------------------------------------------------------------- +// @TODO (toml 07-09-03): probably want to fold this into base NPC. evaluate when +// head above water + +class CAI_MoveAndShootOverlay : public CAI_Component +{ + typedef CAI_Component BaseClass; + +public: + CAI_MoveAndShootOverlay(); + + void StartShootWhileMove( ); + void NoShootWhileMove(); + void RunShootWhileMove(); + void EndShootWhileMove(); + void SuspendMoveAndShoot( float flDuration ); + bool IsSuspended() { return m_flSuspendUntilTime > gpGlobals->curtime; } + + void SetInitialDelay( float delay ); + + bool IsMovingAndShooting( void ) const { return m_bMovingAndShooting; } + +private: + + bool HasAvailableRangeAttack(); + bool CanAimAtEnemy(); + void UpdateMoveShootActivity( bool bMoveAimAtEnemy ); + + bool m_bMovingAndShooting; + bool m_bNoShootWhileMove; + float m_initialDelay; + float m_flSuspendUntilTime; + + DECLARE_SIMPLE_DATADESC(); +}; + +//----------------------------------------------------------------------------- + +#endif // AI_MOVESHOOT_H |