GetTarget ok
This commit is contained in:
parent
ce3242cc9d
commit
b959b8b332
@ -387,6 +387,9 @@ void AndroidNewAI::UpdateNewBieRoomLogic()
|
|||||||
void AndroidNewAI::UpdateNewAI()
|
void AndroidNewAI::UpdateNewAI()
|
||||||
{
|
{
|
||||||
Human* hum = (Human*)owner;
|
Human* hum = (Human*)owner;
|
||||||
|
if (a8::HasBitFlag(hum->status, HS_Disable)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
++node_.exec_frame_num;
|
++node_.exec_frame_num;
|
||||||
hum->shot_hold = false;
|
hum->shot_hold = false;
|
||||||
switch (node_.main_state) {
|
switch (node_.main_state) {
|
||||||
@ -410,6 +413,11 @@ void AndroidNewAI::UpdateNewAI()
|
|||||||
UpdateRandomWalk();
|
UpdateRandomWalk();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (moving_) {
|
if (moving_) {
|
||||||
DoMoveNewAI();
|
DoMoveNewAI();
|
||||||
@ -535,5 +543,36 @@ void AndroidNewAI::ChangeToStateNewAI(AndroidStateEx_e to_state)
|
|||||||
|
|
||||||
Human* AndroidNewAI::GetTarget()
|
Human* AndroidNewAI::GetTarget()
|
||||||
{
|
{
|
||||||
|
if (GetAiLevel() <= 1) {
|
||||||
return nullptr;
|
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