GetTarget ok
This commit is contained in:
parent
ce3242cc9d
commit
b959b8b332
@ -387,6 +387,9 @@ void AndroidNewAI::UpdateNewBieRoomLogic()
|
||||
void AndroidNewAI::UpdateNewAI()
|
||||
{
|
||||
Human* hum = (Human*)owner;
|
||||
if (a8::HasBitFlag(hum->status, HS_Disable)) {
|
||||
return;
|
||||
}
|
||||
++node_.exec_frame_num;
|
||||
hum->shot_hold = false;
|
||||
switch (node_.main_state) {
|
||||
@ -410,6 +413,11 @@ void AndroidNewAI::UpdateNewAI()
|
||||
UpdateRandomWalk();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
abort();
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (moving_) {
|
||||
DoMoveNewAI();
|
||||
@ -535,5 +543,36 @@ void AndroidNewAI::ChangeToStateNewAI(AndroidStateEx_e to_state)
|
||||
|
||||
Human* AndroidNewAI::GetTarget()
|
||||
{
|
||||
return nullptr;
|
||||
if (GetAiLevel() <= 1) {
|
||||
return nullptr;
|
||||
}
|
||||
Human* myself = (Human*)owner;
|
||||
if (myself->room->GetGasData().gas_mode == GasInactive) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Human* target = nullptr;
|
||||
myself->TouchAllLayerHumanList
|
||||
(
|
||||
[myself, &target] (Human* hum, bool& stop)
|
||||
{
|
||||
if (hum->dead) {
|
||||
return;
|
||||
}
|
||||
if (a8::HasBitFlag(hum->status, HS_Disable)) {
|
||||
return;
|
||||
}
|
||||
if (myself->team_id == hum->team_id) {
|
||||
return;
|
||||
}
|
||||
if (target) {
|
||||
if (myself->GetPos().ManhattanDistance(target->GetPos()) >
|
||||
myself->GetPos().ManhattanDistance(hum->GetPos())) {
|
||||
target = hum;
|
||||
}
|
||||
} else {
|
||||
target = hum;
|
||||
}
|
||||
});
|
||||
return target;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user