summaryrefslogtreecommitdiff
path: root/src/components/messages.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/messages.rs')
-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