Example #1
0
        public void SwitchTurn()
        {
            _timer.Enabled = false;
            _timer.Stop();

            IPlayer old_player = DiceEngine.CurrentPlayer;

            DiceEngine.SwitchTurnToNextPlayer();
            DiceEngine.CurrentPlayerTurnScore = 0;

            TurnSwitched?.Invoke(
                this,
                new TurnSwitchedEventArgs(old_player, DiceEngine.CurrentPlayer)
                );

            var all_dice = DiceEngine.AllDice;

            DiceEngine.DeselectAll();
            DiceEngine.Reroll(all_dice);

            DiceRerolled?.Invoke(
                this,
                new RerollEventArgs(all_dice)
                );

            _timer.Stop();
            _timer.Start();
            _timer.Enabled = true;
        }
Example #2
0
        public void SubmitDice(List <Die> dice)
        {
            if (dice == null || dice.Count == 0)
            {
                return;
            }

            var combos_result = DiceEngine.CalculateGainOf(dice);

            DiceEngine.CurrentPlayerTurnScore += combos_result.TotalScore;

            DiceSubmitted?.Invoke(
                this,
                new DiceSubmittedEventArgs(combos_result, DiceEngine.CurrentPlayerTurnScore)
                );

            var to_reroll = DiceEngine.SelectedDice;

            DiceEngine.Reroll(to_reroll);

            DiceRerolled?.Invoke(
                this,
                new RerollEventArgs(to_reroll)
                );

            IfFailureSwitchTurn();
        }