diff --git a/src/features/phase/mod.rs b/src/features/phase/mod.rs index 77cbf6d..31b067a 100644 --- a/src/features/phase/mod.rs +++ b/src/features/phase/mod.rs @@ -70,13 +70,35 @@ fn tick_timer( mut phase_res: ResMut, mut finish_writer: MessageWriter, mut savegame_messages: MessageWriter, + config: Res, + mut inventory: ResMut, + mut commands: Commands, + mut items_query: Query<&mut ItemStack>, + mut session_tracker: ResMut, ) { let delta = time.delta_secs(); let phase = &mut phase_res.0; match phase { Phase::Focus { duration } | Phase::Break { duration } => { + let old_minutes = (*duration / 60.0).floor() as i32; *duration -= delta; + let new_minutes = (*duration / 60.0).floor() as i32; + + if new_minutes < old_minutes { + println!( + "A minute of focus has been completed. Granting {} berries as a reward.", + config.berries_per_focus_minute + ); + + inventory.update_item_stack( + &mut commands, + &mut items_query, + ItemType::Berry, + config.berries_per_focus_minute as i32, + ); + session_tracker.total_berries_earned += config.berries_per_focus_minute; + } if *duration <= 0.0 { finish_writer.write(PhaseTimerFinishedMessage {