This commit is contained in:
aozhiwei 2020-07-12 22:19:25 +08:00
parent 4cb2d0e5fe
commit fe88e08ab8
2 changed files with 73 additions and 0 deletions

View File

@ -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()
{
}

View File

@ -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_;
};