Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 private void SetRoundTime(int roundNumber, GameDifficulty roundDifficulty)
 {
     _timer.SetTime(roundDifficulty.RoundTime);
 }