Exemplo n.º 1
0
        public void PutOnBottomOfLibrary(Card card)
        {
            if (card.Is().Token)
            {
                PutCardToExile(card);
                return;
            }

            _library.PutOnBottom(card);
        }
Exemplo n.º 2
0
        public void PutCardToHand(Card card)
        {
            if (card.Is().Token)
            {
                PutCardToExile(card);
                return;
            }

            _hand.Add(card);
        }
Exemplo n.º 3
0
        public static int CalculatePermanentScore(Card permanent)
        {
            var score = 0;

            if (permanent.OverrideScore.Battlefield.HasValue)
                return permanent.OverrideScore.Battlefield.Value;

            if (permanent.Level > 0)
                score += 10 * permanent.Level.Value;

            if (permanent.ManaCost != null)
            {
                //score += CalculatePermanentScoreFromManaCost(permanent);

                if (permanent.Is().Creature)
                {
                    score += (permanent.Power.Value * 10 + permanent.Toughness.Value * 3);

                    if (permanent.HasSummoningSickness)
                        score -= 1;
                }
            }
            else if (permanent.Is().Creature)
            {
                score += CalculatePermanentScoreFromPowerToughness(permanent.Power.Value, permanent.Toughness.Value);
            }
            else if (permanent.Is().Land)
            {
                score += GetLandOnBattlefieldScore(permanent);
                if (!permanent.Is().BasicLand)
                    score += 10;
            }

            return score;
        }
Exemplo n.º 4
0
        public void PutCardToGraveyard(Card card)
        {
            if (card.Is().Token)
            {
                PutCardToExile(card);
                return;
            }

            _graveyard.AddToEnd(card);
        }
Exemplo n.º 5
0
        public static int CalculateTapPenalty(Card card, TurnInfo turnInfo)
        {
            if (card.Is().Land)
            {
                if (card.Controller.IsActive)
                {
                    if (turnInfo.Step == Step.Upkeep)
                        return 10;

                    return 2;
                }
            }

            return 1;
        }