2021-06-08 19:54:24 +08:00

38 lines
744 B
C++

#pragma once
#include "aicomponent.h"
#include "weakptr.h"
enum HeroState_e : int;
class HeroAINode;
class HeroAI : public AIComponent
{
public:
HeroAI();
virtual ~HeroAI() override;
virtual void Update(int delta_time) override;
float GetAttackRate();
private:
void UpdateAI();
void UpdateIdle();
void UpdateThinking();
void UpdateAttack();
void UpdateRandomWalk();
void UpdatePursuit();
void UpdateFollowMaster();
void DoMoveAI();
void ChangeToStateAI(HeroState_e to_state);
void DoShotAI();
Creature* GetTarget();
float GetAttackRange();
int GetAttackTimes();
private:
MetaData::AI* ai_meta = nullptr;
HeroAINode* node_ = nullptr;
bool moving_ = false;
};