From 62138ca19acdef140359745ebee41be5e4c5ce09 Mon Sep 17 00:00:00 2001 From: troido Date: Tue, 11 Feb 2020 01:53:05 +0100 Subject: health is now also shown (but never changed) --- src/systems/view.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/systems') diff --git a/src/systems/view.rs b/src/systems/view.rs index e0e5650..57e2b28 100644 --- a/src/systems/view.rs +++ b/src/systems/view.rs @@ -12,7 +12,7 @@ use specs::{ }; use super::super::pos::Pos; -use super::super::components::{Visible, Player, Position, Inventory, New, Moved, Removed}; +use super::super::components::{Visible, Player, Position, Inventory, New, Moved, Removed, Health}; use super::super::resources::{Size, Output, Ground}; use super::super::worldmessages::{WorldMessage, WorldUpdate, FieldMessage}; @@ -25,6 +25,7 @@ impl <'a> System<'a> for View { Entities<'a>, ReadStorage<'a, Position>, ReadStorage<'a, Inventory>, + ReadStorage<'a, Health>, ReadStorage<'a, Visible>, Read<'a, Size>, ReadStorage<'a, Player>, @@ -34,7 +35,7 @@ impl <'a> System<'a> for View { ReadStorage<'a, Removed>, Read<'a, Ground> ); - fn run(&mut self, (entities, positions, inventories, visible, size, players, mut output, new, moved, removed, ground): Self::SystemData) { + fn run(&mut self, (entities, positions, inventories, healths, visible, size, players, mut output, new, moved, removed, ground): Self::SystemData) { let mut changed = HashSet::new(); for (pos, _new) in (&positions, &new).join() { @@ -76,6 +77,9 @@ impl <'a> System<'a> for View { if let Some(inventory) = inventories.get(ent){ updates.push(WorldUpdate::Inventory(inventory.items.iter().map(|item| item.name.clone()).collect())); } + if let Some(health) = healths.get(ent){ + updates.push(WorldUpdate::Health(health.health, health.maxhealth)); + } updates.push(WorldUpdate::Pos(pos.pos)); let message = WorldMessage{updates}; output.output.insert(player.name.clone(), message); -- cgit