diff options
| author | troido <troido@protonmail.com> | 2020-02-21 19:22:26 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-02-21 19:22:26 +0100 |
| commit | 4ed2d71e76f04c75a214e43363dc1b64e109fe3d (patch) | |
| tree | 1ae0375ff74216dacc6f5a2b443b84e85b257059 /src/systems/take.rs | |
| parent | 60b56b39488f7704f42580363d1343a4dc9732e8 (diff) | |
used rank in taking objects
Diffstat (limited to 'src/systems/take.rs')
| -rw-r--r-- | src/systems/take.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/systems/take.rs b/src/systems/take.rs index bf0f8e8..31634d2 100644 --- a/src/systems/take.rs +++ b/src/systems/take.rs @@ -44,17 +44,20 @@ impl <'a> System<'a> for Take { ents.remove(&ent); for ent in ents { if let Some(item) = items.get(ent) { - inventory.items.push(item.clone()); + inventory.items.insert(0, item.clone()); if let Err(msg) = removed.insert(ent, Removed) { println!("{:?}", msg); } + break; } } } - Control::Drop(_rank) => { - if let Some(item) = inventory.items.pop() { - let _ = new.create(position.pos, item.ent); + Control::Drop(rank) => { + if *rank >= inventory.items.len() { + return } + let item = inventory.items.remove(*rank); + let _ = new.create(position.pos, item.ent); } _ => {} } |
