struct IPuppet { };
IAgent.h
virtual ~IPuppet();
virtual bool CanMemoryFire() const;
virtual bool CheckFriendsInLineOfFire(const Vec3& fireDirection, bool cheapTest) = 0;
true and sends signal "OnFriendInWay" if there is a friendly agent in the line of fire.
Checks if there are friends in the line of fire. If the cheapTest flag is set, only cone test is performed, otherwise raycasting.
Where to shoot if need to miss now (target is another AI) - select some point around target .
virtual Vec3 ChooseMissPoint_Deprecated(const Vec3 & targetPos) const = 0;
virtual void ClearRODHandler() = 0;
virtual void EnableCoverFire(bool enable) = 0;
virtual void EnableFire(bool enable) = 0;
virtual bool GetCanBeShot() const;
virtual float GetDistanceAlongPath(const Vec3& pos, bool bInit) = 0;
Gets the distance of an AI object to this, along this path.
Must be called with bInit=true first time and then false other time to avoid considering path regeneration after.
Gets the owner of a dummy AI Object
virtual IAIObject* GetEventOwner(IAIObject * pObject) const = 0;
virtual IFireCommandHandler* GetFirecommandHandler() const = 0;
virtual EMemoryFireType GetMemoryFireType() const;
virtual bool GetPerceivedTargetPos(IAIObject * pTarget, Vec3 & vPos) const = 0;
Helper to get the puppet's perceived position of an agent Returns TRUE if puppet has a perceived location for this target
virtual float GetPerceptionAlarmLevel() const = 0;
virtual bool GetPosAlongPath(float dist, bool extrapolateBeyond, Vec3& retPos) const = 0;
virtual bool IsAlarmed() const = 0;
virtual bool IsCoverFireEnabled() const = 0;
virtual bool IsFireEnabled() const = 0;
virtual IAIObject* MakeMeLeader() = 0;
virtual void SetCanBeShot(bool bCanBeShot);
Changes flag so this puppet can be shoot or not.
virtual void SetMemoryFireType(EMemoryFireType eType);
Set how this puppet treats firing at its memory target
virtual void SetRODHandler(IAIRateOfDeathHandler * pHandler) = 0;
ROD Handler
virtual void UpdateBeacon() = 0;
virtual void UpTargetPriority(const IAIObject * pTarget, float fPriorityIncrement) = 0;