diff options
| author | troido <troido@protonmail.com> | 2020-04-13 14:36:03 +0200 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-04-13 14:36:03 +0200 |
| commit | 2d4cabc768968a215556f7a4ed81a728d3b6e120 (patch) | |
| tree | 3e2190d9b72320cec4bb889a1bd10f2b43d9751b /src/components | |
| parent | ee200f3003acdfdfde1a746246a7a4669188eb18 (diff) | |
checking for specific messages is easier because of TriggerBox::has_message
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/messages.rs | 15 |
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 |
