summaryrefslogtreecommitdiff
path: root/game/server/tf/bot/behavior/tf_bot_seek_and_destroy.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/server/tf/bot/behavior/tf_bot_seek_and_destroy.h')
-rw-r--r--game/server/tf/bot/behavior/tf_bot_seek_and_destroy.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/game/server/tf/bot/behavior/tf_bot_seek_and_destroy.h b/game/server/tf/bot/behavior/tf_bot_seek_and_destroy.h
new file mode 100644
index 0000000..26dba48
--- /dev/null
+++ b/game/server/tf/bot/behavior/tf_bot_seek_and_destroy.h
@@ -0,0 +1,51 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+// tf_bot_seek_and_destroy.h
+// Roam the environment, attacking victims
+// Michael Booth, January 2010
+
+#ifndef TF_BOT_SEEK_AND_DESTROY_H
+#define TF_BOT_SEEK_AND_DESTROY_H
+
+#include "Path/NextBotChasePath.h"
+
+
+//
+// Roam around the map attacking enemies
+//
+class CTFBotSeekAndDestroy : public Action< CTFBot >
+{
+public:
+ CTFBotSeekAndDestroy( float duration = -1.0f );
+
+ virtual ActionResult< CTFBot > OnStart( CTFBot *me, Action< CTFBot > *priorAction );
+ virtual ActionResult< CTFBot > Update( CTFBot *me, float interval );
+
+ virtual ActionResult< CTFBot > OnResume( CTFBot *me, Action< CTFBot > *interruptingAction );
+
+ virtual EventDesiredResult< CTFBot > OnStuck( CTFBot *me );
+ virtual EventDesiredResult< CTFBot > OnMoveToSuccess( CTFBot *me, const Path *path );
+ virtual EventDesiredResult< CTFBot > OnMoveToFailure( CTFBot *me, const Path *path, MoveToFailureType reason );
+
+ virtual QueryResultType ShouldRetreat( const INextBot *me ) const; // is it time to retreat?
+ virtual QueryResultType ShouldHurry( const INextBot *me ) const; // are we in a hurry?
+
+ virtual EventDesiredResult< CTFBot > OnTerritoryCaptured( CTFBot *me, int territoryID );
+ virtual EventDesiredResult< CTFBot > OnTerritoryLost( CTFBot *me, int territoryID );
+ virtual EventDesiredResult< CTFBot > OnTerritoryContested( CTFBot *me, int territoryID );
+
+ virtual const char *GetName( void ) const { return "SeekAndDestroy"; };
+
+private:
+ CTFNavArea *m_goalArea;
+ CTFNavArea *ChooseGoalArea( CTFBot *me );
+ bool m_isPointLocked;
+
+ PathFollower m_path;
+ CountdownTimer m_repathTimer;
+ void RecomputeSeekPath( CTFBot *me );
+
+ CountdownTimer m_giveUpTimer;
+};
+
+
+#endif // TF_BOT_SEEK_AND_DESTROY_H