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