示例#1
0
        ICard PlayStealingCard()
        {
            List <ICard> cardsStealing = CardsCanBePlayedInThisRound.FindAll(c => c.IsStealing());

            if (cardsStealing == null)
            {
                return(null);
            }

            ICard cardPocketPicking = cardsStealing.Find(c => c.CardFunc == Func.PocketPicking);

            if (cardPocketPicking != null)
            {
                return(cardPocketPicking);
            }

            ICard cardPickAndDrop = cardsStealing.Find(c => c.CardFunc == Func.PickAndDrop);

            if (cardPickAndDrop != null)
            {
                return(cardPickAndDrop);
            }

            return(null);
        }
示例#2
0
 void FinishYourRound()
 {
     CardsPlayedInThisRound.Clear();
     CardsCanBePlayedInThisRound.Clear();
     CardPlayed       = null;
     CardResponded    = null;
     CardNeedResponse = null;
     InPrison         = false;
 }
示例#3
0
        ICard PlayPrisonCard()
        {
            ICard cardPrison = CardsCanBePlayedInThisRound.Find(c => c.IsPrison());

            if (cardPrison != null)
            {
                return(cardPrison);
            }

            return(null);
        }
示例#4
0
        ICard PlayBombCard()
        {
            ICard cardBomb = CardsCanBePlayedInThisRound.Find(c => c.IsBomb());

            if (cardBomb != null)
            {
                return(cardBomb);
            }

            return(null);
        }
示例#5
0
        ICard PlayOffensiveCard()
        {
            ICard cardOffensive = CardsCanBePlayedInThisRound.Find(c => c.IsOffensive());

            if (cardOffensive != null)
            {
                return(cardOffensive);
            }

            return(null);
        }
示例#6
0
        ICard PlayEquippableCard()
        {
            ICard cardEquippable = CardsCanBePlayedInThisRound.Find(c => c.IsEquippable());

            if (cardEquippable != null)
            {
                return(cardEquippable);
            }

            return(null);
        }
示例#7
0
        ICard PlayEquippableCard()
        {
            ICard cardEquippable = CardsCanBePlayedInThisRound.Find(c => c.IsEquippable());

            if (cardEquippable != null)
            {
                cardEquippable.CardAction = CAction.GetEquipped;
                return(cardEquippable);
            }

            return(null);
        }
示例#8
0
        void DecideCardsCanBePlayedInYourTurn()
        {
            CardsCanBePlayedInThisRound.Clear();

            // Cannot play any card if the player is in prison
            if (InPrison)
            {
                return;
            }

            foreach (ICard card in CardsHeld)
            {
                if (CardJudge.CanPlayerPlayCard(this, this.PlayerToKill, card))
                {
                    CardsCanBePlayedInThisRound.Add(card);
                }
            }
        }
示例#9
0
        ICard PlayOffensiveCard()
        {
            List <ICard> cardsOffensive = CardsCanBePlayedInThisRound.FindAll(c => c.IsOffensive());

            if (cardsOffensive == null)
            {
                return(null);
            }

            ICard cardBarbariansAtGate = cardsOffensive.Find(c => c.CardFunc == Func.BarbariansAtGate);

            if (cardBarbariansAtGate != null)
            {
                return(cardBarbariansAtGate);
            }

            ICard cardTenKArrows = cardsOffensive.Find(c => c.CardFunc == Func.TenKArrows);

            if (cardTenKArrows != null)
            {
                return(cardTenKArrows);
            }

            ICard cardDuel = cardsOffensive.Find(c => c.CardFunc == Func.Duel);

            if (cardDuel != null)
            {
                return(cardDuel);
            }

            ICard cardKill = cardsOffensive.Find(c => c.CardFunc == Func.Kill);

            if (cardKill != null)
            {
                return(cardKill);
            }

            return(null);
        }
示例#10
0
        ICard PlayCardToHeal()
        {
            //if (!PlayerFigure.NeedHealing())
            //  return null;

            // TODO Need to consider if your opponent/alliance needs to be healed
            // and if you have the card ParryAll
            ICard cardHealingAll = CardsCanBePlayedInThisRound.Find(c => c.CardFunc == Func.HealingAll);

            if (cardHealingAll != null)
            {
                return(cardHealingAll);
            }

            ICard cardPortion = CardsCanBePlayedInThisRound.Find(c => c.CardFunc == Func.Portion);

            if (cardPortion != null)
            {
                return(cardPortion);
            }

            return(null);
        }
示例#11
0
 ICard PlayBeneficialCard()
 {
     // TODO Make all Play***Card functions like this
     return(CardsCanBePlayedInThisRound.Find(c => c.IsBeneficial()));
 }