47 lines
962 B
C++
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;
|
|
};
|