game2006/server/gameserver/android.ai.h
2021-06-09 11:03:01 +08:00

47 lines
962 B
C++

#pragma once
#include "aicomponent.h"
#include "weakptr.h"
enum AndroidStateEx_e : int;
enum AndroidState_e : int;
struct OldAiData;
struct AINode;
class Human;
class AndroidAI : public AIComponent
{
public:
AndroidAI();
virtual ~AndroidAI() override;
virtual void Update(int delta_time) override;
float GetAttackRate();
private:
void DefaultAi();
void ChangeToStateOldAI(AndroidState_e to_state);
void DoMoveOldAI();
void DoAttackOldAI();
void UpdateNewAI();
void UpdateIdle();
void UpdateThinking();
void UpdateAttack();
void UpdateRandomWalk();
void UpdatePursuit();
void DoMoveNewAI();
void ChangeToStateNewAI(AndroidStateEx_e to_state);
void DoShotNewAI();
Creature* GetTarget();
float GetAttackRange();
int GetAttackTimes();
private:
OldAiData* old_ai_data_ = nullptr;
MetaData::AI* ai_meta = nullptr;
AINode* node_ = nullptr;
bool moving_ = false;
};