Add basic map
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
use specs::prelude::*;
|
||||
|
||||
use crate::{EntityMoved, EntryTrigger, GameLog, Hidden, InflictsDamage, Map, Name, Position, SingleActivation, SufferDamage};
|
||||
use crate::particle_system::ParticleBuilder;
|
||||
use crate::{
|
||||
EntityMoved, EntryTrigger, GameLog, Hidden, InflictsDamage, Map, Name, Position,
|
||||
SingleActivation, SufferDamage,
|
||||
};
|
||||
|
||||
pub struct TriggerSystem {}
|
||||
|
||||
@@ -18,11 +21,24 @@ impl<'a> System<'a> for TriggerSystem {
|
||||
ReadStorage<'a, InflictsDamage>,
|
||||
WriteExpect<'a, ParticleBuilder>,
|
||||
WriteStorage<'a, SufferDamage>,
|
||||
WriteStorage<'a, SingleActivation>
|
||||
WriteStorage<'a, SingleActivation>,
|
||||
);
|
||||
|
||||
fn run(&mut self, data: Self::SystemData) {
|
||||
let (map, mut entity_moved, position, entry_trigger, mut hidden, names, entities, mut game_log, inflicts_damage, mut particle_builder, mut inflict_damage, mut single_activation) = data;
|
||||
let (
|
||||
map,
|
||||
mut entity_moved,
|
||||
position,
|
||||
entry_trigger,
|
||||
mut hidden,
|
||||
names,
|
||||
entities,
|
||||
mut game_log,
|
||||
inflicts_damage,
|
||||
mut particle_builder,
|
||||
mut inflict_damage,
|
||||
mut single_activation,
|
||||
) = data;
|
||||
|
||||
let mut remove_entities: Vec<Entity> = Vec::new();
|
||||
for (entity, mut _entity_moved, pos) in (&entities, &mut entity_moved, &position).join() {
|
||||
@@ -41,7 +57,14 @@ impl<'a> System<'a> for TriggerSystem {
|
||||
hidden.remove(*entity_id);
|
||||
|
||||
if let Some(damage) = inflicts_damage.get(*entity_id) {
|
||||
particle_builder.request(pos.x, pos.y, rltk::RGB::named(rltk::ORANGE), rltk::RGB::named(rltk::BLACK), rltk::to_cp437('‼'), 200.0);
|
||||
particle_builder.request(
|
||||
pos.x,
|
||||
pos.y,
|
||||
rltk::RGB::named(rltk::ORANGE),
|
||||
rltk::RGB::named(rltk::BLACK),
|
||||
rltk::to_cp437('‼'),
|
||||
200.0,
|
||||
);
|
||||
SufferDamage::new_damage(&mut inflict_damage, entity, damage.damage);
|
||||
}
|
||||
|
||||
@@ -59,4 +82,3 @@ impl<'a> System<'a> for TriggerSystem {
|
||||
entity_moved.clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user