using OECS; namespace Game.Blackjack; /// /// Evaluates the player's hand total after each hit. /// Busts the player if they exceed 21. /// public class PlayerBustCheckSystem : ISystem { public void RunImpl(World world) { var state = world.ReadSingleton(); if (state.Phase != GamePhase.PlayerTurn) return; var total = HandUtil.CalculateHand(world, PlayerHandTag.Instance); if (total <= 21) return; ref var mutableState = ref world.GetSingleton(); mutableState.Phase = GamePhase.RoundOver; mutableState.Result = RoundResult.PlayerBust; } }