public void AddActionCard(IActionCard card) { if (!_actionsCards.Contains(card)) { _actionsCards.Add(card); } }
public void RemoveActionCard(IActionCard card) { if (_actionsCards.Contains(card)) { _actionsCards.Remove(card); } }
public void Play(IActionCard card) { if (!CanPlay(card)) throw new ArgumentException(string.Format("The card '{0}' cannot be played", card), "card"); RemainingActions--; this.Game.Log.LogPlay(this.ActivePlayer, card); card.MoveTo(ActivePlayer.PlayArea); card.Play(this); ResolvePendingEffects(); }
public void Play(IActionCard card) { if (!CanPlay(card)) { throw new ArgumentException(string.Format("The card '{0}' cannot be played", card), "card"); } RemainingActions--; this.Game.Log.LogPlay(this.ActivePlayer, card); card.MoveTo(ActivePlayer.PlayArea); card.Play(this); ResolvePendingEffects(); }
public void ActionOnCellStepped(object sender, EventArgs evt) { MonopolyCell cell = (MonopolyCell)sender; MonopolyPlayer player = GetPlayerFromCell(cell); ActionCellEvtArgs args = (ActionCellEvtArgs)evt; Console.WriteLine(player.Username + " stepped in " + cell.Name); // Get action IActionCard card = GetActionCard(args.TypeCard); Action <MonopolyPlayer> cardAction = card.Action; // Do action cardAction(GetPlayerFromCell((MonopolyCell)sender)); }
// This method get an action card based on card type private IActionCard GetActionCard(CardType cardType) { IActionCard card = null; if (cardType == CardType.Chance) { card = _chanceCards.Dequeue(); _chanceCards.Enqueue((ChanceCard)card); } else if (cardType == CardType.CommunityChest) { card = _communityChestCards.Dequeue(); _communityChestCards.Enqueue((CommunityChestCard)card); } return(card); }
public void LogPlay(Player player, IActionCard card) { _builder.AppendFormat("{0} played a {1}.", player.Name, card.Name); _builder.AppendLine(); }
public PlayCardEffect(IActionCard card) { _card = card; }
public static Task PlayCard(this IActionHost host, IActionCard card) { return(host.PlayCard(card.Name, Zone.Hand)); }
public static Task PlayCard(this IActionHost host, IActionCard card, Zone from) { return(host.PlayCard(card.Name, from)); }