fix: SessionTracker now updates at the same time berries are granted

(#54)
This commit is contained in:
demenik
2025-12-10 19:50:25 +01:00
parent 57904e055b
commit c4bbe2015f

View File

@@ -135,6 +135,7 @@ fn grant_focus_rewards(
berries as i32, berries as i32,
); );
session_tracker.total_berries_earned += berries; session_tracker.total_berries_earned += berries;
session_tracker.completed_focus_phases += 1;
let berries_name = match berries { let berries_name = match berries {
1 => ItemType::Berry.singular(&game_config), 1 => ItemType::Berry.singular(&game_config),
@@ -179,14 +180,12 @@ fn handle_pause(
/// Transitions to the next phase based on current state. /// Transitions to the next phase based on current state.
pub fn next_phase( pub fn next_phase(
current_phase: &mut CurrentPhase, current_phase: &mut CurrentPhase,
session_tracker: &mut SessionTracker, session_tracker: &SessionTracker,
settings: &TimerSettings, settings: &TimerSettings,
) { ) {
if let Phase::Finished { completed_phase } = &current_phase.0 { if let Phase::Finished { completed_phase } = &current_phase.0 {
match **completed_phase { match **completed_phase {
Phase::Focus { .. } => { Phase::Focus { .. } => {
session_tracker.completed_focus_phases += 1;
let is_long_break = session_tracker.completed_focus_phases > 0 let is_long_break = session_tracker.completed_focus_phases > 0
&& session_tracker.completed_focus_phases % settings.long_break_interval == 0; && session_tracker.completed_focus_phases % settings.long_break_interval == 0;
@@ -214,7 +213,7 @@ pub fn next_phase(
pub fn handle_continue( pub fn handle_continue(
mut messages: MessageReader<NextPhaseMessage>, mut messages: MessageReader<NextPhaseMessage>,
mut phase_res: ResMut<CurrentPhase>, mut phase_res: ResMut<CurrentPhase>,
mut session_tracker: ResMut<SessionTracker>, session_tracker: Res<SessionTracker>,
settings: Res<TimerSettings>, settings: Res<TimerSettings>,
mut tile_query: Query<&mut TileState>, mut tile_query: Query<&mut TileState>,
game_config: Res<GameConfig>, game_config: Res<GameConfig>,
@@ -226,7 +225,7 @@ pub fn handle_continue(
false false
}; };
next_phase(&mut phase_res, &mut session_tracker, &settings); next_phase(&mut phase_res, &session_tracker, &settings);
if entering_break { if entering_break {
println!("Growing crops and resetting watered state."); println!("Growing crops and resetting watered state.");