Fixing #504 - Enemies stop attacking after combat

This commit is contained in:
Caleb Cochran 2020-02-25 20:48:09 -06:00
parent 21291739e5
commit 9f7aa61fbd

View File

@ -124,7 +124,7 @@ impl<'a> System<'a> for Sys {
if thread_rng().gen::<f32>() < 0.1 {
choose_target = true;
}
},
}
Activity::Follow(target, chaser) => {
if let (Some(tgt_pos), _tgt_stats) =
(positions.get(*target), stats.get(*target))
@ -146,14 +146,14 @@ impl<'a> System<'a> for Sys {
} else {
do_idle = true;
}
},
}
Activity::Attack {
target,
chaser,
been_close,
..
} => {
if let (Some(tgt_pos), _tgt_stats, tgt_alignment) = (
if let (Some(tgt_pos), Some(tgt_stats), tgt_alignment) = (
positions.get(*target),
stats.get(*target),
alignments
@ -164,7 +164,8 @@ impl<'a> System<'a> for Sys {
// Don't attack entities we are passive towards
// TODO: This is here, it's a bit of a hack
if let Some(alignment) = alignment {
if (*alignment).passive_towards(tgt_alignment) {
if (*alignment).passive_towards(tgt_alignment) || tgt_stats.is_dead
{
do_idle = true;
break 'activity;
}
@ -207,7 +208,7 @@ impl<'a> System<'a> for Sys {
} else {
do_idle = true;
}
},
}
}
}