コード例 #1
0
ファイル: Game.cs プロジェクト: Samoustique/Bang
        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;
        }
コード例 #2
0
ファイル: Game.cs プロジェクト: Samoustique/Bang
        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;
        }
コード例 #3
0
ファイル: Player.cs プロジェクト: Samoustique/Bang
 internal void RemoveCard(Card card)
 {
     throw new NotImplementedException();
 }
コード例 #4
0
ファイル: EventManager.cs プロジェクト: Samoustique/Bang
 internal void onCardPlayed(Card card, Player source, Target target)
 {
     card.ApplyEffect(target);
     source.RemoveCard(card);
 }
コード例 #5
0
ファイル: Game.cs プロジェクト: Samoustique/Bang
 private bool IsSourceOrCardInRange(Player source, Card card, int dist)
 {
     return source.Range < dist && (card.Range != -1 || card.Range < dist);
 }
コード例 #6
0
ファイル: Game.cs プロジェクト: Samoustique/Bang
 private bool IsCorrectTarget(Card card, Target target)
 {
     throw new NotImplementedException();
 }