From 4734227da09cb8efc3a2f6d18c41891ad335e6d9 Mon Sep 17 00:00:00 2001 From: Adam <24621027+adoyle0@users.noreply.github.com> Date: Sat, 24 Aug 2024 21:45:15 -0400 Subject: [PATCH] add more game stats --- client/src/components/game.rs | 12 ++++++++++++ lib/src/lib.rs | 3 +++ server/src/game.rs | 6 +++--- server/src/game_handler.rs | 3 +++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/client/src/components/game.rs b/client/src/components/game.rs index 57772c3..924dee8 100644 --- a/client/src/components/game.rs +++ b/client/src/components/game.rs @@ -18,6 +18,9 @@ pub fn Game() -> impl IntoView { let (game_host, set_game_host) = create_signal("".to_string()); let (game_players, set_game_players) = create_signal(vec![]); let (game_czar, set_game_czar) = create_signal("".to_string()); + let (game_white_count, set_game_white_count) = create_signal(0usize); + let (game_black_count, set_game_black_count) = create_signal(0usize); + let (game_white_discard_count, set_game_white_discard_count) = create_signal(0usize); let (game_black, set_game_black) = create_signal(("".to_string(), 0u8)); let (selected_cards_ordered, set_selected_cards_ordered) = create_signal::>(vec![]); let (player_hand, set_player_hand) = create_signal::>(vec![]); @@ -40,6 +43,9 @@ pub fn Game() -> impl IntoView { set_player_white.update(|hand| { hand.clear(); }); + set_game_white_count(0usize); + set_game_black_count(0usize); + set_game_white_discard_count(0usize); } }); @@ -99,6 +105,9 @@ pub fn Game() -> impl IntoView { set_game_players(game.players.clone()); set_game_czar(game.czar.clone()); set_game_black(game.black.clone()); + set_game_white_count(game.white_count.clone()); + set_game_black_count(game.black_count.clone()); + set_game_white_discard_count(game.white_discard_count.clone()); // Load hand for card in game.white { @@ -176,6 +185,9 @@ pub fn Game() -> impl IntoView {

Name: {move || game_name()}

Host: {move || game_host()}

Czar: {move || game_czar()}

+

White Deck: {move || game_white_count().to_string()}

+

White Discard: {move || game_white_discard_count().to_string()}

+

Black Deck: {move || game_black_count().to_string()}

Players:

diff --git a/lib/src/lib.rs b/lib/src/lib.rs index c9a5bbd..3ac5474 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -57,6 +57,9 @@ pub struct GameStateMeta { pub black: (String, u8), pub white: Vec, pub packs: Vec, + pub white_count: usize, + pub black_count: usize, + pub white_discard_count: usize, } /// Game browser meta diff --git a/server/src/game.rs b/server/src/game.rs index fa4a3a6..8235ed8 100644 --- a/server/src/game.rs +++ b/server/src/game.rs @@ -73,11 +73,11 @@ pub struct Game { /// Judge pile that contains cards judge_pile: HashMap>, /// White draw pile - white: Vec>, + pub white: Vec>, /// White discard pile - white_discard: Vec>, + pub white_discard: Vec>, /// Black draw pile - black: Vec>, + pub black: Vec>, } impl Game { diff --git a/server/src/game_handler.rs b/server/src/game_handler.rs index d1896f0..4ca4807 100644 --- a/server/src/game_handler.rs +++ b/server/src/game_handler.rs @@ -249,6 +249,9 @@ impl GameHandler { }) .collect(), packs: this_game.read().unwrap().packs.clone(), + white_count: this_game.read().unwrap().white.len(), + black_count: this_game.read().unwrap().black.len(), + white_discard_count: this_game.read().unwrap().white_discard.len(), }; // Send user's update