Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.6 KiB

4 years ago
//========= Copyright Valve Corporation, All rights reserved. ============//
// tf_bot_creep_wave.h
// Move in a "creep wave" to the next available control point to capture it
// Michael Booth, August 2010
#ifndef TF_BOT_CREEP_WAVE_H
#define TF_BOT_CREEP_WAVE_H
#ifdef TF_CREEP_MODE
#include "Path/NextBotPathFollow.h"
#include "Path/NextBotChasePath.h"
CTFBot *FindNearestEnemyCreep( CTFBot *me );
//-----------------------------------------------------------------------------
class CTFBotCreepWave : public Action< CTFBot >
{
public:
virtual ActionResult< CTFBot > OnStart( CTFBot *me, Action< CTFBot > *priorAction );
virtual ActionResult< CTFBot > Update( CTFBot *me, float interval );
virtual EventDesiredResult< CTFBot > OnKilled( CTFBot *me, const CTakeDamageInfo &info );
virtual EventDesiredResult< CTFBot > OnStuck( CTFBot *me );
virtual EventDesiredResult< CTFBot > OnUnStuck( CTFBot *me );
virtual const char *GetName( void ) const { return "CreepWave"; };
private:
PathFollower m_path;
CountdownTimer m_repathTimer;
IntervalTimer m_stuckTimer;
};
//-----------------------------------------------------------------------------
class CTFBotCreepAttack : public Action< CTFBot >
{
public:
CTFBotCreepAttack( CTFPlayer *victim );
virtual ActionResult< CTFBot > OnStart( CTFBot *me, Action< CTFBot > *priorAction );
virtual ActionResult< CTFBot > Update( CTFBot *me, float interval );
virtual const char *GetName( void ) const { return "CreepAttack"; };
private:
CHandle< CTFPlayer > m_victim;
};
#endif // TF_CREEP_MODE
#endif // TF_BOT_CREEP_WAVE_H