From 0245cc348ae77eda77e06019fbf07f4f8b8cb82a Mon Sep 17 00:00:00 2001 From: troido Date: Mon, 13 Apr 2020 22:32:41 +0200 Subject: using an equipped item unequips it --- src/systems/useitem.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/systems') 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 => {} } -- cgit