Пример #1
0
 private static void SelectLastAvailableCard(StreamlootsHand hand)
 {
     for (int i = hand.Cards.Count - 1; i >= 0; i--)
     {
         StreamlootsCard card = hand.Cards[i];
         if (!card.IsSecret)
         {
             hand.SelectedCard = card;
             break;
         }
     }
 }
Пример #2
0
 public void PlayCard(StreamlootsCard cardToPlay)
 {
     if (cardToPlay == null)
     {
         return;
     }
     if (cardToPlay.IsSecret)
     {
         HubtasticBaseStation.ShowValidationIssue(CharacterId, DndCore.ValidationAction.Stop, "Cannot play secret cards.");
         return;
     }
     Cards.Remove(cardToPlay);
     CardsToPlay.Add(cardToPlay);
 }
Пример #3
0
        void TriggerCardPlayed(StreamlootsCard card, Creature creature)
        {
            string cardId = AllKnownCards.GetCardId(card);
            RedemptionEventsDto cardEventData = AllKnownCards.Get(cardId);

            if (string.IsNullOrWhiteSpace(cardEventData.CardPlayed))
            {
                return;
            }

            SystemVariables.CardRecipient = null;
            SystemVariables.ThisCard      = card;
            Expressions.Do(cardEventData.CardPlayed, creature, new Target(AttackTargetType.Spell, creature), null, null, null);
        }
Пример #4
0
 public void AddCard(int creatureId, StreamlootsCard card)
 {
     if (!Hands.TryGetValue(creatureId, out StreamlootsHand existingHand))
     {
         existingHand             = new StreamlootsHand();
         existingHand.CharacterId = creatureId;
         existingHand.HueShift    = GetHueShift(creatureId);
         Hands.Add(creatureId, existingHand);
     }
     existingHand.SelectedCard = null;
     existingHand.AddCard(card);
     ShowHand(creatureId);
     StateHasChanged();
 }
Пример #5
0
        public void RevealSecretCard(StreamlootsCard cardToReveal)
        {
            if (cardToReveal == null)
            {
                return;
            }

            if (!cardToReveal.IsSecret)
            {
                return;
            }

            Cards.Remove(cardToReveal);
            CardsToReveal.Add(cardToReveal);
        }
Пример #6
0
        public bool RevealSecretCard(string cardId)
        {
            StreamlootsCard card = FindCardById(cardId);

            if (card == null)
            {
                return(false);
            }
            Cards.Remove(card);
            CardsToReveal.Add(card);
            if (SelectedCard != null && CardsToReveal.Contains(SelectedCard))
            {
                SelectedCard = null;
            }
            return(true);
        }
Пример #7
0
        public bool PlayCard(StreamlootsCard cardToPlay, Creature creature)
        {
            if (cardToPlay == null)
            {
                return(false);
            }
            if (cardToPlay.IsSecret)
            {
                HubtasticBaseStation.ShowValidationIssue(CharacterId, ValidationAction.Stop, "Cannot play secret cards.");
                return(false);
            }

            Cards.Remove(cardToPlay);
            CardsToPlay.Add(cardToPlay);
            TriggerCardPlayed(cardToPlay, creature);
            return(true);
        }
Пример #8
0
        public void SelectPreviousCard(int creatureId)
        {
            if (!Hands.ContainsKey(creatureId))
            {
                return;
            }
            StreamlootsHand hand = Hands[creatureId];

            if (hand.Cards.Count == 0)
            {
                return;
            }

            int selectedCardIndex = hand.GetSelectedCardIndex();

            if (selectedCardIndex == -1)
            {
                hand.SelectedCard = null;
                for (int i = hand.Cards.Count - 1; i >= 0; i--)
                {
                    StreamlootsCard card = hand.Cards[i];
                    if (!card.IsSecret)
                    {
                        hand.SelectedCard = card;
                        break;
                    }
                }
                if (hand.SelectedCard == null)
                {
                    hand.SelectedCard = hand.Cards[hand.Cards.Count - 1];
                }
            }
            else
            {
                if (selectedCardIndex > 0)
                {
                    selectedCardIndex--;
                }
                else
                {
                    selectedCardIndex = hand.Count - 1;
                }
                hand.SelectedCard = hand.Cards[selectedCardIndex];
            }
            StateHasChanged();
        }
Пример #9
0
 public static string GetCardId(StreamlootsCard card)
 {
     return(card.soundUrl);
 }
Пример #10
0
 public void AddCard(StreamlootsCard card)
 {
     card.Guid = Guid.NewGuid().ToString();
     Cards.Add(card);
 }