private List <Action> ChooseRoundActions(GameDifficulty roundDifficulty) { var actions = _actionsManager.GetSuffledActionsList(); var drinks = _actionsManager.GetShuffledDrinksList(); var roundActions = new List <Action>(); foreach (var player in _players) { Debug.Log($"Creating actions for player {player.peerId}."); var playerActions = ChoosePlayerActions(actions, roundDifficulty); _actionButtonsPanelCreator.TargetCreateActionButtonsPanel(player.connectionToClient, JsonConvert.SerializeObject(playerActions), player.peerId); roundActions.AddRange(playerActions); var playerDrinks = ChoosePlayerDrinks(drinks, roundDifficulty); _drinkButtonsPanelCreator.TargetCreateDrinkButtonsPanel(player.connectionToClient, JsonConvert.SerializeObject(playerDrinks), player.peerId); roundActions.AddRange(playerDrinks); } roundActions.Shuffle(); return(roundActions); }
private List <Action> ChoosePlayerActions(List <Action> actions, GameDifficulty roundDifficulty) { var playerActions = new List <Action>(); var remainingActionPoints = roundDifficulty.ActionPoints; if (Debug.isDebugBuild) { var debugForcedActions = GetDebugForcedActions(actions); playerActions.AddRange(debugForcedActions); remainingActionPoints -= debugForcedActions.Sum(a => a.ActionPoints); } const int MinSimpleActions = 2; const int MaxSimpleActions = 3; var numberOfActionButtons = _random.Next(MinSimpleActions, MaxSimpleActions + 1); for (var i = 0; i < numberOfActionButtons && remainingActionPoints > 0; i++) { var action = actions.First(a => a.ActionPoints == 1); playerActions.Add(action); actions.Remove(action); remainingActionPoints -= action.ActionPoints; } while (remainingActionPoints > 0) { var action = actions.First(a => a.ActionPoints <= remainingActionPoints); playerActions.Add(action); actions.Remove(action); remainingActionPoints -= action.ActionPoints; } playerActions.Shuffle(); return(playerActions); }
private void SetRoundTime(int roundNumber, GameDifficulty roundDifficulty) { _timer.SetTime(roundDifficulty.RoundTime); }