summaryrefslogtreecommitdiff
path: root/src/systems/useitem.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-03-05 12:50:25 +0100
committertroido <troido@protonmail.com>2020-03-05 12:50:25 +0100
commit170741fe959d30ee43ce689fd5fbae725cc1dae4 (patch)
treede337876fb9afc3ca20e5a99ef61689813f51ebe /src/systems/useitem.rs
parentea99b86b89659624133a63f03600f0b57592a5f4 (diff)
equipent now kinda works
Diffstat (limited to 'src/systems/useitem.rs')
-rw-r--r--src/systems/useitem.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/systems/useitem.rs b/src/systems/useitem.rs
index 89a301c..7d37322 100644
--- a/src/systems/useitem.rs
+++ b/src/systems/useitem.rs
@@ -16,10 +16,11 @@ use crate::{
Inventory,
AttackInbox,
AttackMessage,
- AttackType
+ AttackType,
+ Equipment
},
resources::{NewEntities},
- components::item::ItemAction::{None, Build, Eat},
+ components::item::ItemAction::{None, Build, Eat, Equip},
controls::Control,
};
@@ -32,10 +33,11 @@ impl <'a> System<'a> for Use {
ReadStorage<'a, Position>,
WriteStorage<'a, Inventory>,
Write<'a, NewEntities>,
- WriteStorage<'a, AttackInbox>
+ WriteStorage<'a, AttackInbox>,
+ WriteStorage<'a, Equipment>
);
- fn run(&mut self, (entities, controllers, positions, mut inventories, mut new, mut attacked): Self::SystemData) {
+ fn run(&mut self, (entities, controllers, positions, mut inventories, mut new, mut attacked, mut equipments): Self::SystemData) {
for (ent, controller, position, inventory) in (&entities, &controllers, &positions, &mut inventories).join(){
match &controller.control {
Control::Use(rank) => {
@@ -49,6 +51,13 @@ impl <'a> System<'a> for Use {
AttackInbox::add_message(&mut attacked, ent, AttackMessage{typ: AttackType::Heal(*health_diff), attacker: Option::None});
inventory.items.remove(*rank);
}
+ Equip(equippable) => {
+ if let Some(equipment) = equipments.get_mut(ent) {
+ if equipment.equipment.contains_key(&equippable.slot) {
+ equipment.equipment.insert(equippable.slot, Some(equippable.clone()));
+ }
+ }
+ }
None => {}
}
}