summaryrefslogtreecommitdiff
path: root/src/systems/die.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-04-13 14:36:03 +0200
committertroido <troido@protonmail.com>2020-04-13 14:36:03 +0200
commit2d4cabc768968a215556f7a4ed81a728d3b6e120 (patch)
tree3e2190d9b72320cec4bb889a1bd10f2b43d9751b /src/systems/die.rs
parentee200f3003acdfdfde1a746246a7a4669188eb18 (diff)
checking for specific messages is easier because of TriggerBox::has_message
Diffstat (limited to 'src/systems/die.rs')
-rw-r--r--src/systems/die.rs19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/systems/die.rs b/src/systems/die.rs
index 021448e..755ac7f 100644
--- a/src/systems/die.rs
+++ b/src/systems/die.rs
@@ -27,18 +27,13 @@ impl <'a> System<'a> for Die {
);
fn run(&mut self, (entities, triggerboxes, mut removeds, mut emigration, players): Self::SystemData) {
for (entity, triggerbox) in (&entities, &triggerboxes).join() {
- for trigger in triggerbox.messages.iter() {
- match trigger {
- Trigger::Die | Trigger::Remove | Trigger::Change => {
- if let Some(player) = players.get(entity) {
- // players move to purgatory when dead
- emigration.emigrants.push((player.id.clone(), purgatory::purgatory_id(), RoomPos::Unknown));
- } else {
- // npcs etc get removed when dead
- removeds.insert(entity, Removed).unwrap();
- }
- }
- _ => {}
+ if triggerbox.has_message(&[Trigger::Die, Trigger::Remove, Trigger::Change]){
+ if let Some(player) = players.get(entity) {
+ // players move to purgatory when dead
+ emigration.emigrants.push((player.id.clone(), purgatory::purgatory_id(), RoomPos::Unknown));
+ } else {
+ // npcs etc get removed when dead
+ removeds.insert(entity, Removed).unwrap();
}
}
}