Esempio n. 1
0
        public CardPlayedResult PlayCard(Card card, Player source, Target target)
        {
            CardPlayedResult res = IsCardPlayable(card, source, target);

            if (res == CardPlayedResult.CARD_PLAYED)
                EventManager.Instance.onCardPlayed(card, source, target);

            return res;
        }
Esempio n. 2
0
        private CardPlayedResult IsCardPlayable(Card card, Player source, Target target)
        {
            CardPlayedResult result = CardPlayedResult.CARD_PLAYED;
            int dist = CalculateDistanceBetweenPlayers(source, target.GetPlayer());

            if (!IsCorrectTarget(card, target))
            {
                result = CardPlayedResult.INVALID_TARGET;
            }
            else if (IsSourceOrCardInRange(source, card, dist))
            {
                result = CardPlayedResult.TARGET_TOO_FAR;
            }

            return result;
        }
Esempio n. 3
0
 internal void RemoveCard(Card card)
 {
     throw new NotImplementedException();
 }
Esempio n. 4
0
 internal void onCardPlayed(Card card, Player source, Target target)
 {
     card.ApplyEffect(target);
     source.RemoveCard(card);
 }
Esempio n. 5
0
 private bool IsSourceOrCardInRange(Player source, Card card, int dist)
 {
     return source.Range < dist && (card.Range != -1 || card.Range < dist);
 }
Esempio n. 6
0
 private bool IsCorrectTarget(Card card, Target target)
 {
     throw new NotImplementedException();
 }