summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/systems/useitem.rs16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/systems/useitem.rs b/src/systems/useitem.rs
index 605f083..485b1da 100644
--- a/src/systems/useitem.rs
+++ b/src/systems/useitem.rs
@@ -57,15 +57,19 @@ impl <'a> System<'a> for Use {
inventory.items.remove(*rank);
}
Equip(equippable) => {
- let slot = equippable.slot;
- for otherentry in inventory.items.iter_mut() {
- if let Equip(other) = &otherentry.item.action {
- if other.slot == slot {
- otherentry.is_equipped = false;
+ if entry.is_equipped {
+ inventory.items[*rank].is_equipped = false;
+ } else {
+ let slot = equippable.slot;
+ for otherentry in inventory.items.iter_mut() {
+ if let Equip(other) = &otherentry.item.action {
+ if other.slot == slot {
+ otherentry.is_equipped = false;
+ }
}
}
+ inventory.items[*rank].is_equipped = true;
}
- inventory.items[*rank].is_equipped = true;
}
None => {}
}