Files
src-1.2/engine/server/library/serverGame/src/shared/ai/AiMovementFlee.h
T

78 lines
2.3 KiB
C++
Executable File

// ======================================================================
//
// AiMovementFlee.h
// Copyright 2001 Sony Online Entertainment Inc.
// All Rights Reserved.
//
// ======================================================================
#ifndef INCLUDED_AiMovementFlee_H
#define INCLUDED_AiMovementFlee_H
#include "serverGame/AiMovementWaypoint.h"
#include "serverGame/AiLocation.h"
// ======================================================================
class AiMovementFlee : public AiMovementWaypoint
{
public:
explicit AiMovementFlee( AICreatureController * controller );
AiMovementFlee( AICreatureController * controller,
ServerObject const * target,
float minDistance,
float maxDistance );
AiMovementFlee( AICreatureController * controller,
Archive::ReadIterator & source );
virtual ~AiMovementFlee();
virtual AiMovementType getType() const;
virtual AiMovementFlee * asAiMovementFlee();
// ----------
virtual void pack ( Archive::ByteStream & target ) const;
virtual void alter ( float time );
virtual void getDebugInfo ( std::string & outString ) const;
// states & triggers
virtual AiStateResult stateWaiting ( float time );
virtual AiStateResult stateThinking ( float time );
virtual AiStateResult stateMoving ( float time );
virtual AiStateResult triggerThinking ( void );
virtual AiStateResult triggerWaypoint ( void );
virtual AiStateResult triggerTargetLost ( void );
virtual AiStateResult triggerPathNotFound ( void );
// waypoints
virtual bool hasWaypoint ( void ) const;
virtual AiLocation const & getWaypoint ( void ) const;
virtual bool updateWaypoint ( void );
virtual bool generateWaypoint ( void );
// misc
virtual bool getDecelerate ( void ) const;
protected:
AiLocation m_fleeFrom; // this is what we're running from
AiLocation m_fleeTo; // this is where we're running to
float m_minDistance;
float m_maxDistance;
};
// ======================================================================
#endif