From f4d2db42d104217fd3e486455a2576a2fc17a7c5 Mon Sep 17 00:00:00 2001 From: skye Date: Wed, 10 May 2023 13:49:30 +0300 Subject: [PATCH] feat(client): more checks when clicking a supply --- client/src/plugins/game/supply/mod.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/client/src/plugins/game/supply/mod.rs b/client/src/plugins/game/supply/mod.rs index 8c68bf3..0061cca 100644 --- a/client/src/plugins/game/supply/mod.rs +++ b/client/src/plugins/game/supply/mod.rs @@ -9,7 +9,7 @@ use bevy::prelude::*; use bevy_rapier3d::prelude::*; -use crate::{plugins::GameActionCreateCallEvent, api::game::{Action, Command}, Global}; +use crate::{plugins::GameActionCreateCallEvent, api::game::{Action, Command}, Global, game_status::PlayerState}; use super::{ card::{visual_card_kind, VisualCard, VisualCardBundle, ClickedCard}, @@ -108,11 +108,19 @@ fn handle_clicked_supply_pile( commands.entity(entity).remove::(); - if game_data.game_status.as_ref().unwrap() - .players.get(&global.user.as_ref().unwrap().id) - .unwrap().currency < card.card.cost { + let player = game_data.game_status.as_ref().unwrap() + .players.get(&global.user.as_ref().unwrap().id).unwrap(); + + if player.state != PlayerState::BuyPhase { + // we ain't buying rn + return; + } else if player.currency < card.card.cost { // not enough currency return; + } else if game_data.game_status.as_ref().unwrap() + .supply_piles.get(card_kind.0).unwrap().amount <= 0 { + // no cards in supply + return; } gac_ev_w.send(GameActionCreateCallEvent { -- 2.44.1