diff options
author | metamuffin <metamuffin@disroot.org> | 2024-06-29 16:10:07 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-06-29 16:10:07 +0200 |
commit | 58f4ab0b26948bec13ba853c90298271e472169f (patch) | |
tree | 9fa6e4443addf067310ff9ba868ec72b9e237637 /server/src/interaction.rs | |
parent | b0042dce860406431f2e486112b14987c665f6a8 (diff) | |
download | hurrycurry-58f4ab0b26948bec13ba853c90298271e472169f.tar hurrycurry-58f4ab0b26948bec13ba853c90298271e472169f.tar.bz2 hurrycurry-58f4ab0b26948bec13ba853c90298271e472169f.tar.zst |
implement points
Diffstat (limited to 'server/src/interaction.rs')
-rw-r--r-- | server/src/interaction.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/server/src/interaction.rs b/server/src/interaction.rs index e3dccfba..69fc9e70 100644 --- a/server/src/interaction.rs +++ b/server/src/interaction.rs @@ -43,6 +43,7 @@ pub enum Recipe { tile: Option<TileIndex>, inputs: [Option<ItemIndex>; 2], outputs: [Option<ItemIndex>; 2], + points: i64, }, } @@ -120,6 +121,7 @@ pub fn interact( tile_kind: TileIndex, this: &mut Option<Item>, other: &mut Option<Item>, + points: &mut i64, ) -> Option<InteractEffect> { let interactable = data.is_tile_interactable(tile_kind); if interactable && other.is_none() { @@ -188,7 +190,10 @@ pub fn interact( } } Recipe::Instant { - inputs, outputs, .. + inputs, + outputs, + points: pd, + .. } => { let on_tile = this.as_ref().map(|i| i.kind); let in_hand = other.as_ref().map(|i| i.kind); @@ -199,6 +204,7 @@ pub fn interact( let ok_rev = ok_rev as usize; *other = outputs[1 - ok_rev].map(|kind| Item { kind, active: None }); *this = outputs[ok_rev].map(|kind| Item { kind, active: None }); + *points += pd; return Some(InteractEffect::Produce); } } |