From bf5e70c1660737e0edad072ef76b69471ca87fc7 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 23 Jul 2021 03:46:12 +0000 Subject: [PATCH] 1 --- server/gameserver/aicomponent.h | 1 + server/gameserver/android.ai.h | 1 - server/gameserver/hero.ai.h | 5 ++--- server/gameserver/hero.cc | 8 +++++++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/server/gameserver/aicomponent.h b/server/gameserver/aicomponent.h index a924cd7..a26e489 100644 --- a/server/gameserver/aicomponent.h +++ b/server/gameserver/aicomponent.h @@ -17,6 +17,7 @@ class AIComponent { public: MoveableEntity* owner = nullptr; + MetaData::AI* ai_meta = nullptr; virtual ~AIComponent(); virtual void Update(int delta_time); diff --git a/server/gameserver/android.ai.h b/server/gameserver/android.ai.h index fb89268..a3af338 100644 --- a/server/gameserver/android.ai.h +++ b/server/gameserver/android.ai.h @@ -47,7 +47,6 @@ private: OldAiData* old_ai_data_ = nullptr; - MetaData::AI* ai_meta = nullptr; AINode* node_ = nullptr; bool moving_ = false; }; diff --git a/server/gameserver/hero.ai.h b/server/gameserver/hero.ai.h index be57785..9cc5c73 100644 --- a/server/gameserver/hero.ai.h +++ b/server/gameserver/hero.ai.h @@ -14,7 +14,7 @@ public: virtual void Update(int delta_time) override; float GetAttackRate(); -private: +protected: void UpdateAI(); void UpdateIdle(); void UpdateThinking(); @@ -30,8 +30,7 @@ private: float GetAttackRange(); int GetAttackTimes(); -private: - MetaData::AI* ai_meta = nullptr; +protected: HeroAINode* node_ = nullptr; bool moving_ = false; }; diff --git a/server/gameserver/hero.cc b/server/gameserver/hero.cc index 0884790..8bd7607 100644 --- a/server/gameserver/hero.cc +++ b/server/gameserver/hero.cc @@ -254,6 +254,12 @@ void Hero::InitAI() if (!ai_meta) { abort(); } - ai = new HeroAI; + if (ai_meta->i->ai_kind() == kAI_MineSweeper) { + ai = new MineSweeperAI; + ai->ai_meta = ai_meta; + } else { + ai = new HeroAI; + ai->ai_meta = ai_meta; + } ai->owner = this; }