private void SelectCard(Card card) { selectedCard = card; SetState(ClientState.CardSelected); var message = new SelectCardMessage { Card = card.Value }; NetworkManager.Instance.Client.Send(SelectCardMessage.Id, message); }
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; }
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(); }