feat: track total berries earned in session and savegames (#61)

This commit is contained in:
demenik
2025-12-09 19:29:14 +01:00
parent 28550c1955
commit a7aa54c570
10 changed files with 45 additions and 9 deletions

View File

@@ -2,6 +2,7 @@ use bevy::ecs::system::RunSystemOnce;
use pomomon_garden::features::config::components::{BerrySeedConfig, GameConfig};
use pomomon_garden::features::grid::components::{Grid, TileState};
use pomomon_garden::features::inventory::components::{Inventory, ItemStack, ItemType};
use pomomon_garden::features::phase::components::SessionTracker;
use pomomon_garden::features::pom::actions::InteractionAction;
use pomomon_garden::prelude::*;
@@ -41,7 +42,8 @@ fn test_harvest_fully_grown() {
mut tile_query: Query<&mut TileState>,
mut inventory: ResMut<Inventory>,
mut item_stack_query: Query<&mut ItemStack>,
config: Res<GameConfig>| {
config: Res<GameConfig>,
mut session_tracker: ResMut<SessionTracker>| {
InteractionAction::Harvest.execute(
(0, 0),
&grid,
@@ -50,6 +52,7 @@ fn test_harvest_fully_grown() {
&mut item_stack_query,
&mut commands,
&config,
&mut session_tracker,
);
},
);
@@ -70,6 +73,10 @@ fn test_harvest_fully_grown() {
let stack = app.world().entity(stack_entity).get::<ItemStack>().unwrap();
assert_eq!(stack.item_type, ItemType::Berry);
assert_eq!(stack.amount, 5);
// Check Session Tracker
let tracker = app.world().resource::<SessionTracker>();
assert_eq!(tracker.total_berries_earned, 5);
}
#[test]
@@ -105,7 +112,8 @@ fn test_harvest_withered() {
mut tile_query: Query<&mut TileState>,
mut inventory: ResMut<Inventory>,
mut item_stack_query: Query<&mut ItemStack>,
config: Res<GameConfig>| {
config: Res<GameConfig>,
mut session_tracker: ResMut<SessionTracker>| {
InteractionAction::Harvest.execute(
(0, 0),
&grid,
@@ -114,6 +122,7 @@ fn test_harvest_withered() {
&mut item_stack_query,
&mut commands,
&config,
&mut session_tracker,
);
},
);
@@ -164,7 +173,8 @@ fn test_cannot_harvest_growing() {
mut tile_query: Query<&mut TileState>,
mut inventory: ResMut<Inventory>,
mut item_stack_query: Query<&mut ItemStack>,
config: Res<GameConfig>| {
config: Res<GameConfig>,
mut session_tracker: ResMut<SessionTracker>| {
InteractionAction::Harvest.execute(
(0, 0),
&grid,
@@ -173,6 +183,7 @@ fn test_cannot_harvest_growing() {
&mut item_stack_query,
&mut commands,
&config,
&mut session_tracker,
);
},
);