/// <summary> /// Active player changes cards /// </summary> /// <param name="place"></param> private void ChangeCards(ICardChangePlace place) { if (game.ActivePlayer is IAIPlayer) { MessageBox.Show("It's not your turn!"); return; } //ExecuteAction(new ChangeCardsAction(place)); ExecuteActionAsync(new ChangeCardsAction(place)); }
/// <summary> /// Moves player to the desired card changing place and changes the cards /// </summary> /// <param name="cardChangePlace">Place where to change cards</param> public void MoveAndChangeDisplayCards(ICardChangePlace cardChangePlace) { int travelTime = GameSettings.GetDistance(CurrentPlace, cardChangePlace); if (useZeppelin) { travelTime = 0; } if (Time.RemainingWeeks() < travelTime + CardDisplay.timeToChangeCards) { errorDialog("You don't have enough time to change the display cards"); return; } MoveTo(cardChangePlace); Time.SpendWeeks(CardChangeCost); LastRoundChange = true; CardChangeCost++; changeDisplayCards(); }
/// <summary> /// /// </summary> /// <param name="cardChangePlace">The place where the cards can be changed</param> public ChangeCardsAction(ICardChangePlace cardChangePlace) { this.cardChangePlace = cardChangePlace; }