diff options
| author | troido <troido@protonmail.com> | 2020-03-03 18:06:02 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-03-03 18:06:02 +0100 |
| commit | 986c82723cf9a4adada02287309999f4ebbf94e3 (patch) | |
| tree | acc26dfd3cb604c959d16f4291db2f6f21d242f9 /src/components | |
| parent | 9954b5cbaab27aaffcafa8723dcd5d1c99fa811f (diff) | |
randomise attack damage
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/messages.rs | 25 | ||||
| -rw-r--r-- | src/components/mod.rs | 7 |
2 files changed, 20 insertions, 12 deletions
diff --git a/src/components/messages.rs b/src/components/messages.rs index a2ecd2f..ae615f1 100644 --- a/src/components/messages.rs +++ b/src/components/messages.rs @@ -32,21 +32,28 @@ impl <M: Message> Inbox<M> { } } -#[derive(Debug, Clone)] -pub struct AttackMessage { - pub damage: i64, - pub attacker: Option<Entity> + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum AttackType { + Attack(i64), + Heal(i64) } -impl AttackMessage { - pub fn new(damage: i64) -> Self { - Self { - damage, - attacker: None +impl AttackType { + pub fn is_hostile(&self) -> bool { + match self { + Self::Attack(_) => true, + Self::Heal(_) => false } } } +#[derive(Debug, Clone)] +pub struct AttackMessage { + pub attacker: Option<Entity>, + pub typ: AttackType +} + impl Message for AttackMessage {} pub type AttackInbox = Inbox<AttackMessage>; diff --git a/src/components/mod.rs b/src/components/mod.rs index 96261c7..202caf2 100644 --- a/src/components/mod.rs +++ b/src/components/mod.rs @@ -5,7 +5,8 @@ pub mod messages; pub use item::Item; pub use messages::{ AttackMessage, - AttackInbox + AttackInbox, + AttackType }; use specs::{ @@ -140,13 +141,13 @@ pub struct Dead; #[derive(Component, Debug, Clone)] #[storage(HashMapStorage)] pub struct Trap { - pub attack: AttackMessage + pub attack: AttackType } #[derive(Component, Debug, Clone)] #[storage(HashMapStorage)] pub struct Fighter { - pub attack: AttackMessage, + pub attack: AttackType, pub cooldown: i64, pub range: i64 } |
