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; } } }
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); }
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); }
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(); }
public void RevealSecretCard(StreamlootsCard cardToReveal) { if (cardToReveal == null) { return; } if (!cardToReveal.IsSecret) { return; } Cards.Remove(cardToReveal); CardsToReveal.Add(cardToReveal); }
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); }
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); }
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(); }
public static string GetCardId(StreamlootsCard card) { return(card.soundUrl); }
public void AddCard(StreamlootsCard card) { card.Guid = Guid.NewGuid().ToString(); Cards.Add(card); }