diff --git a/server/gameserver/android_new.ai.cc b/server/gameserver/android_new.ai.cc index 2233f68..2a780ab 100644 --- a/server/gameserver/android_new.ai.cc +++ b/server/gameserver/android_new.ai.cc @@ -28,6 +28,7 @@ AndroidNewAI::~AndroidNewAI() void AndroidNewAI::Update(int delta_time) { + old_ai_data_.state_elapsed_time += delta_time; Human* hum = (Human*)owner; if (hum->poisoning) { hum->poisoning_time += delta_time; @@ -83,6 +84,63 @@ void AndroidNewAI::Update(int delta_time) } void AndroidNewAI::DefaultAi() +{ + switch (old_ai_data_.state) { + case AS_thinking: + { + if (old_ai_data_.state_elapsed_time > 1500 + rand() % 3000) { + int rnd = rand(); + if (rnd % 100 < 30) { + ChangeToStateOldAI(AS_moving); + } else if (rnd % 100 < 50) { + ChangeToStateOldAI(AS_attack); + } + } + } + break; + case AS_moving: + { + if (old_ai_data_.state_elapsed_time < 1000 + rand() % 2000) { + DoMoveOldAI(); + } else { + int rnd = rand(); + if (rnd % 100 < 30) { + ChangeToStateOldAI(AS_thinking); + } else if (rnd % 100 < 50) { + ChangeToStateOldAI(AS_attack); + } + } + } + break; + case AS_attack: + { + if ((old_ai_data_.state_elapsed_time < 3000 && old_ai_data_.last_target) || + (old_ai_data_.state_elapsed_time < 1100)) { + DoAttackOldAI(); + } else { + int rnd = rand(); + if (rnd % 100 < 30) { + ChangeToStateOldAI(AS_moving); + } else if (rnd % 100 < 50) { + ChangeToStateOldAI(AS_thinking); + } + } + } + break; + } +} + +void AndroidNewAI::ChangeToStateOldAI(AndroidState_e to_state) +{ + +} + +void AndroidNewAI::DoMoveOldAI() +{ + +} + +void AndroidNewAI::DoAttackOldAI() { } diff --git a/server/gameserver/android_new.ai.h b/server/gameserver/android_new.ai.h index 3b0b090..64148fa 100644 --- a/server/gameserver/android_new.ai.h +++ b/server/gameserver/android_new.ai.h @@ -1,6 +1,14 @@ #pragma once #include "aicomponent.h" +#include "android.ai.h" + +struct OldAiData +{ + AndroidState_e state = AS_thinking; + int state_elapsed_time = 0; + Human* last_target = nullptr; +}; class Human; class AndroidNewAI : public AIComponent @@ -12,6 +20,10 @@ public: private: void DefaultAi(); + void ChangeToStateOldAI(AndroidState_e to_state); + void DoMoveOldAI(); + void DoAttackOldAI(); + void UpdateAiLevel1(); void UpdateAiLevel2(); void UpdateAiLevel3(); @@ -21,4 +33,7 @@ private: void UpdateAiLevel7(); void UpdateAiLevel8(); +private: + OldAiData old_ai_data_; + };