#ifndef GAME_MWMECHANICS_AICOMBAT_H #define GAME_MWMECHANICS_AICOMBAT_H #include "aipackage.hpp" #include "pathfinding.hpp" #include "movement.hpp" #include "../mwbase/world.hpp" namespace MWMechanics { class AiCombat : public AiPackage { public: AiCombat(const MWWorld::Ptr& actor); virtual AiCombat *clone() const; virtual bool execute (const MWWorld::Ptr& actor,float duration); ///< \return Package completed? virtual int getTypeId() const; virtual unsigned int getPriority() const; const std::string &getTargetId() const; private: PathFinder mPathFinder; //controls duration of the actual strike float mTimerAttack; float mTimerReact; //controls duration of the sideway & forward moves //when mCombatMove is true float mTimerCombatMove; bool mReadyToAttack, mStrike; bool mCloseUp; bool mCombatMove; MWMechanics::Movement mMovement; MWWorld::Ptr mTarget; void buildNewPath(const MWWorld::Ptr& actor); }; } #endif