Add chapter: 18

This commit is contained in:
2022-01-28 21:21:29 +01:00
parent 0e2c91dd12
commit cb17a9c356
12 changed files with 286 additions and 49 deletions

View File

@@ -3,9 +3,10 @@ use specs::prelude::*;
use crate::{
components::{Monster, Position, Viewshed, WantsToMelee},
map::Map,
Confusion, RunState,
Confusion,
map::Map, RunState,
};
use crate::particle_system::ParticleBuilder;
pub struct MonsterAI {}
@@ -22,6 +23,7 @@ impl<'a> System<'a> for MonsterAI {
WriteStorage<'a, Position>,
WriteStorage<'a, WantsToMelee>,
WriteStorage<'a, Confusion>,
WriteExpect<'a, ParticleBuilder>
);
fn run(&mut self, data: Self::SystemData) {
@@ -36,6 +38,7 @@ impl<'a> System<'a> for MonsterAI {
mut position,
mut wants_to_melee,
mut confused,
mut particle_builder
) = data;
if *runstate != RunState::MonsterTurn {
@@ -43,7 +46,7 @@ impl<'a> System<'a> for MonsterAI {
}
for (entity, mut viewshed, _monster, mut pos) in
(&entities, &mut viewshed, &monster, &mut position).join()
(&entities, &mut viewshed, &monster, &mut position).join()
{
let mut can_act = true;
@@ -53,6 +56,8 @@ impl<'a> System<'a> for MonsterAI {
confused.remove(entity);
}
can_act = false;
particle_builder.request(pos.x, pos.y, rltk::RGB::named(rltk::MAGENTA), rltk::RGB::named(rltk::BLACK), rltk::to_cp437('?'), 200.);
}
if !can_act {