Esempio n. 1
0
 private bool IsCardEffectPlayedForTeam(
     IOrderedEnumerable <Tuple <PlayCardEvent, Card> > cardsPlayedOnTeam,
     EffectCardType effect)
 {
     return(cardsPlayedOnTeam
            .Any(x => x.Item2.EffectType.HasFlag(effect)));
 }
Esempio n. 2
0
 private bool IsInvincibleCardEffectPlayedForTeam(
     IOrderedEnumerable <Tuple <PlayCardEvent, Card> > cardsPlayedOnTeam,
     EffectCardType effect)
 {
     return(cardsPlayedOnTeam
            .Any(x => x.Item2.EffectType.HasFlag(effect) &&
                 x.Item2.CardType == CardType.EFFECT_INVINCIBLE
                 ));
 }
Esempio n. 3
0
 private Tuple <PlayCardEvent, Card, int> GetLastCardEffectPlayedForTeam(
     IEnumerable <Tuple <PlayCardEvent, Card, int> > cardsPlayedOnTeamWithOrder,
     EffectCardType effect)
 {
     return(cardsPlayedOnTeamWithOrder
            .Where(x => !(x.Item2.CardType == CardType.EFFECT_INVINCIBLE &&
                          x.Item2.EffectType != (EffectCardType.TRAFFIC_LIGHT | EffectCardType.SPEED_LIMIT)))
            .Where(x => x.Item2.EffectType.HasFlag(effect))
            .LastOrDefault());
 }
Esempio n. 4
0
        private bool IsTeamUnderEffect(
            IOrderedEnumerable <Tuple <PlayCardEvent, Card> > cardsPlayedOnTeam,
            EffectCardType effect)
        {
            var lastEffectCard = cardsPlayedOnTeam
                                 .Where(x => x.Item2.EffectType.HasFlag(effect))
                                 .FirstOrDefault();

            if (lastEffectCard == null)
            {
                return(false);
            }
            else
            {
                bool isUnderEffect;
                switch (lastEffectCard.Item2.CardType)
                {
                case CardType.EFFECT_NEGATIVE:
                {
                    isUnderEffect = true;

                    break;
                }

                case CardType.VALUE:
                case CardType.EFFECT_POSITIVE:
                case CardType.EFFECT_INVINCIBLE:
                default:
                {
                    isUnderEffect = false;

                    break;
                }
                }

                if (effect == EffectCardType.TRAFFIC_LIGHT)
                {
                    return(!isUnderEffect);
                }

                return(isUnderEffect);
            }
        }
Esempio n. 5
0
 private bool IsInvincibleCardEffectPlayedForTeam(
     IOrderedEnumerable<Tuple<PlayCardEvent, Card>> cardsPlayedOnTeam,
     EffectCardType effect)
 {
     return cardsPlayedOnTeam
         .Any(x => x.Item2.EffectType.HasFlag(effect) &&
             x.Item2.CardType == CardType.EFFECT_INVINCIBLE
         );
 }
Esempio n. 6
0
 private Tuple<PlayCardEvent, Card, int> GetLastCardEffectPlayedForTeam(
     IEnumerable<Tuple<PlayCardEvent, Card, int>> cardsPlayedOnTeamWithOrder,
     EffectCardType effect)
 {
     return cardsPlayedOnTeamWithOrder
         .Where(x => !(x.Item2.CardType == CardType.EFFECT_INVINCIBLE &&
             x.Item2.EffectType != (EffectCardType.TRAFFIC_LIGHT | EffectCardType.SPEED_LIMIT)))
         .Where(x => x.Item2.EffectType.HasFlag(effect))
         .LastOrDefault();
 }
Esempio n. 7
0
 private bool IsCardEffectPlayedForTeam(
     IOrderedEnumerable<Tuple<PlayCardEvent, Card>> cardsPlayedOnTeam,
     EffectCardType effect)
 {
     return cardsPlayedOnTeam
         .Any(x => x.Item2.EffectType.HasFlag(effect));
 }
Esempio n. 8
0
        private bool IsTeamUnderEffect(
            IOrderedEnumerable<Tuple<PlayCardEvent, Card>> cardsPlayedOnTeam,
            EffectCardType effect)
        {
            var lastEffectCard = cardsPlayedOnTeam
                .Where(x => x.Item2.EffectType.HasFlag(effect))
                .FirstOrDefault();

            if (lastEffectCard == null)
            {
                return false;
            }
            else
            {
                bool isUnderEffect;
                switch (lastEffectCard.Item2.CardType)
                {
                    case CardType.EFFECT_NEGATIVE:
                    {
                        isUnderEffect = true;

                        break;
                    }
                    case CardType.VALUE:
                    case CardType.EFFECT_POSITIVE:
                    case CardType.EFFECT_INVINCIBLE:
                    default:
                    {
                        isUnderEffect = false;

                        break;
                    }
                }

                if (effect == EffectCardType.TRAFFIC_LIGHT)
                {
                    return !isUnderEffect;
                }

                return isUnderEffect;
            }
        }