コード例 #1
0
    private void SelectCard(Card card)
    {
        selectedCard = card;
        SetState(ClientState.CardSelected);

        var message = new SelectCardMessage {
            Card = card.Value
        };

        NetworkManager.Instance.Client.Send(SelectCardMessage.Id, message);
    }
コード例 #2
0
ファイル: TableView.cs プロジェクト: NumAniCloud/Pelmanism
		private async Task<CardStatus> SelectCard( SelectCardMessage arg )
		{
			bool completed = false;
			CardStatus card = null;

			controller.StartChooseCard( result =>
			{
				completed = true;
				card = result;
			} );

			await Task.Run( () =>
			{
				while( !completed ) ;
			} );

			return card;
		}
コード例 #3
0
ファイル: PlayingFlow.cs プロジェクト: NumAniCloud/Pelmanism
        public IEnumerator<IMessage> Run()
        {
            var rand = new Random();

            PlayingCard.CreateRankDeck()
                .Where( _ => _.Rank <= 8 )
                .OrderBy( _ => rand.Next() % 2 == 0 )
                .Select( _ => new CardStatus( _ ) )
                .ForEach( Cards.Add );

            while( Cards.Any() )
            {
                var input1 = new SelectCardMessage();
                yield return input1;

                var card1 = input1.Responce;
                card1.IsOpen = true;

                var input2 = new SelectCardMessage();
                yield return input2;

                var card2 = input2.Responce;
                card2.IsOpen = true;

                yield return new WaitMessage( 1000 );

                if( card1.Card.Rank == card2.Card.Rank )
                {
                    Cards.Remove( card1 );
                    Cards.Remove( card2 );
                }
                else
                {
                    card1.IsOpen = false;
                    card2.IsOpen = false;
                }
            }

            yield return new WaitMessage( 600 );
            yield return new TerminateMessage();
        }