game2006/server/gameserver/android.ai.h
aozhiwei bf5e70c166 1
2021-07-23 03:46:12 +00:00

53 lines
1.1 KiB
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();
void SetAiLevel(int ai_level);
void SetAiMode(int ai_mode);
int GetAiLevel();
int GetAiMode();
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:
int ai_level_ = 0;
int ai_mode_ = 0;
OldAiData* old_ai_data_ = nullptr;
AINode* node_ = nullptr;
bool moving_ = false;
};