Exemplo n.º 1
0
        public async Task PlayerMissTurnAsync(YahtzeePlayerItem <KismetDice> player)
        {
            _model.NormalTurn       = player.NickName;
            _scoreContainer.RowList = player.RowList;
            _scoreLogic.ClearRecent();
            RowInfo thisItem = player.RowList.Where(Items => Items.RowSection == EnumRow.Regular &&
                                                    Items.HasFilledIn() == false).Take(1).SingleOrDefault();

            if (thisItem != null)
            {
                thisItem.IsRecent       = true;
                thisItem.PointsObtained = 0; //i doubt you can do anything because its busy anyways automatically.
                if (_thisTest.NoAnimations == false)
                {
                    //needs to show the new ui.
                    if (_gameContainer.GetNewScoreAsync == null)
                    {
                        throw new BasicBlankException("Nobody is handling the getting new scores.  Rethink");
                    }
                    await _gameContainer.GetNewScoreAsync();

                    await _delay.DelayMilli(1200);
                }
            }
        }
        async Task IAdvancedProcesses.ChoseAdvancedOptions(bool easy, bool shortGame)
        {
            if (_basicData.Client == false)
            {
                AdvancedSettingModel model = new AdvancedSettingModel()
                {
                    IsEasy    = easy,
                    ShortGame = shortGame
                };


                await _network !.SendAllAsync("advancedsettings", model);
            }
            else if (_test.NoAnimations == false)
            {
                await _delayer.DelayMilli(500);
            }
            await _aggregator.PublishAsync(new NextScreenEventModel(EnumNextScreen.Finished));

            if (_basicData.Client == true)
            {
                _checker !.IsEnabled = true;
                return;
            }
            _mainGame.SaveRoot.ShortGame = shortGame;
            if (easy)
            {
                _mainGame.SaveRoot.Level = Data.EnumLevel.Moderate;
            }
            else
            {
                _mainGame.SaveRoot.Level = Data.EnumLevel.Hard;
            }
            await _shuffle.StartShufflingAsync(_mainGame, 0);
        }
        async Task IFirstOptionProcesses.BeginningOptionSelectedAsync(EnumFirstOption firstOption)
        {
            if (_basicData.Client == false)
            {
                //send message to client so they can process.
                await _network !.SendAllAsync("firstoption", firstOption);
            }
            else if (_test.NoAnimations == false)
            {
                await _delayer.DelayMilli(300);
            }
            //this needs to send message to shell view model to do the next part.
            if (firstOption == EnumFirstOption.Beginner)
            {
                ThreeLetterFunSaveInfo saveRoot = _resolver.Resolve <ThreeLetterFunSaveInfo>();
                saveRoot.Level = EnumLevel.Easy;
                await _aggregator.PublishAsync(new NextScreenEventModel(EnumNextScreen.Cards));

                if (_basicData.Client == true)
                {
                    _checker !.IsEnabled = true;
                }
                return;
            }
            await _aggregator.PublishAsync(new NextScreenEventModel(EnumNextScreen.Advanced));

            if (_basicData.Client == true)
            {
                _checker !.IsEnabled = true;
            }
        }
Exemplo n.º 4
0
        async Task ICardsChosenProcesses.CardsChosenAsync(int howManyCards)
        {
            if (_basicData.Client == false)
            {
                //send message to client so they can process.
                await _network !.SendAllAsync("howmanycards", howManyCards);
            }
            else if (_test.NoAnimations == false)
            {
                await _delayer.DelayMilli(300);
            }
            await _aggregator.PublishAsync(new NextScreenEventModel(EnumNextScreen.Finished));

            if (_basicData.Client == true)
            {
                _checker !.IsEnabled = true;
                return;
            }
            await _shuffle.StartShufflingAsync(_mainGame, howManyCards);
        }
Exemplo n.º 5
0
        //the player should clear everything out period now.

        //public void ClearBoard()
        //{
        //    foreach (var thisPlayer in _mainGame.PlayerList!)
        //        thisPlayer.SpaceNumber = 0;// this means it won't even appear anymore
        //}
        public async Task MakeMoveAsync(int space)
        {
            SpaceInfo thisSpace;
            var       loopTo = space;
            int       x;

            if (CurrentPlayer == null)
            {
                throw new BasicBlankException("No current player was set.  Rethink");
            }
            for (x = _currentSpace + 1; x <= loopTo; x++)
            {
                CurrentPlayer.Invoke().SpaceNumber = x;
                if (_basicData.IsXamarinForms)
                {
                    _aggregator.RepaintBoard(); //hopefully this simple.
                }
                if (_test.NoAnimations == false)
                {
                    if (_basicData.IsXamarinForms == false)
                    {
                        await _delay.DelaySeconds(0.1);
                    }
                    else
                    {
                        await _delay.DelayMilli(200);
                    }
                }
            }
            _currentSpace = space;
            thisSpace     = _spaceList[space];
            if (thisSpace.JumpTo != space)
            {
                CurrentPlayer.Invoke().SpaceNumber = thisSpace.JumpTo;
            }
            if (_basicData.IsXamarinForms)
            {
                _aggregator.RepaintBoard();
            }
        }