summaryrefslogtreecommitdiff
path: root/src/components
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/components
parentee200f3003acdfdfde1a746246a7a4669188eb18 (diff)
checking for specific messages is easier because of TriggerBox::has_message
Diffstat (limited to 'src/components')
-rw-r--r--src/components/messages.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/components/messages.rs b/src/components/messages.rs
index 2c0ffd5..5e27cc6 100644
--- a/src/components/messages.rs
+++ b/src/components/messages.rs
@@ -11,7 +11,7 @@ use super::equipment::Stat;
-pub trait Message: Send + Sync + Any {}
+pub trait Message: Send + Sync + Any + PartialEq {}
#[derive(Debug, Clone, Default)]
pub struct Inbox<M: Message> {
@@ -32,6 +32,17 @@ impl <M: Message> Inbox<M> {
.messages
.push(message);
}
+
+ pub fn has_message(&self, messages: &[M]) -> bool {
+ for message in self.messages.iter() {
+ for asked in messages {
+ if message == asked {
+ return true;
+ }
+ }
+ }
+ false
+ }
}
@@ -56,7 +67,7 @@ impl AttackType {
}
}
-#[derive(Debug, Clone)]
+#[derive(Debug, Clone, PartialEq)]
pub struct AttackMessage {
pub attacker: Option<Entity>,
pub typ: AttackType