Fix monster death logic
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
cf4e818094
commit
ecaf448e90
1 changed files with 5 additions and 4 deletions
|
@ -17,7 +17,7 @@ pub fn run(world: &mut World, resources: &mut Resources) {
|
||||||
.cloned();
|
.cloned();
|
||||||
|
|
||||||
if let Some(player_pos) = player_position {
|
if let Some(player_pos) = player_position {
|
||||||
let mut has_died = None;
|
let mut to_kill: Vec<Entity> = Vec::new();
|
||||||
for (entity, (monster, position, renderable)) in
|
for (entity, (monster, position, renderable)) in
|
||||||
&mut world.query::<(&mut Monster, &mut Position, &mut Renderable)>()
|
&mut world.query::<(&mut Monster, &mut Position, &mut Renderable)>()
|
||||||
{
|
{
|
||||||
|
@ -60,7 +60,7 @@ pub fn run(world: &mut World, resources: &mut Resources) {
|
||||||
monster.kind,
|
monster.kind,
|
||||||
&resources.sound_effects,
|
&resources.sound_effects,
|
||||||
));
|
));
|
||||||
has_died = Some(entity);
|
to_kill.push(entity);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let tile = resources.map.get_tile_at_mut(destination);
|
let tile = resources.map.get_tile_at_mut(destination);
|
||||||
|
@ -71,8 +71,9 @@ pub fn run(world: &mut World, resources: &mut Resources) {
|
||||||
monster.kind,
|
monster.kind,
|
||||||
&resources.sound_effects,
|
&resources.sound_effects,
|
||||||
));
|
));
|
||||||
|
resources.stats.add_score(1);
|
||||||
*tile = TileType::Floor;
|
*tile = TileType::Floor;
|
||||||
has_died = Some(entity);
|
to_kill.push(entity);
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
resources.map.clear_tile_content_at(Point::from(*position));
|
resources.map.clear_tile_content_at(Point::from(*position));
|
||||||
|
@ -88,7 +89,7 @@ pub fn run(world: &mut World, resources: &mut Resources) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(e) = has_died {
|
for e in to_kill {
|
||||||
let _ = world.despawn(e);
|
let _ = world.despawn(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue