public void SetAddToDeckChoiceMode(List <Card> cards, string createdBy, DeckPositions deckPosition) { ActiveEffect = ActiveEffectTypes.AddToDeckChoice; GameManager.instance.uiManager.ShowCardChoiceDisplay(cards); SelectedString = createdBy; SelectedDeckPosition = deckPosition; }
public void ShuffleIntoDeck(Card card, string createdBy, DeckPositions deckPosition, bool trackShuffle = true) { switch (deckPosition) { case DeckPositions.Random: ShuffleIntoDeck(card, createdBy, trackShuffle); break; case DeckPositions.First: int firstPos = ListCount; AddToDeck(card, firstPos, createdBy, trackShuffle); break; case DeckPositions.Last: int lastPos = 0; AddToDeck(card, lastPos, createdBy, trackShuffle); break; default: throw new Exception("Not a valid deck position"); } }
public bool GenerateCards(GenerateCardFilter filter, CardGenerationTypes generationType, bool isChoice, string createdBy, DeckPositions deckPosition = DeckPositions.Random) { var generatedCardDatas = GameManager.instance.libraryManager.GenerateGameplayCards(filter); if (generatedCardDatas.Count == 0) { return(false); } if (!isChoice && generationType == CardGenerationTypes.Deploy && generatedCardDatas.Count > 1) { return(false); } var generatedCards = new List <Card>(); foreach (var cardData in generatedCardDatas) { var generatedCard = GameManager.instance.libraryManager.CreateCard(cardData, this); if (generatedCard.Type == CardTypes.Unit && filter.Enchantment != null) { ((Unit)generatedCard).AddEnchantment(filter.Enchantment); } if (generatedCard.Type == CardTypes.Item && filter.DurabilityChange != null) { ((Item)generatedCard).EditDurability(filter.DurabilityChange.Value); } if (filter.CostModification != null) { var adjustCost = new AdjustCostObject() { Value = filter.CostModification.Value, TargetResource = filter.ResourceModification, AdjustmentType = StatModifierTypes.Modify, }; generatedCard.ModifyCost(adjustCost); } if (isChoice) { generatedCards.Add(generatedCard); } else { switch (generationType) { case CardGenerationTypes.Hand: AddToHand(generatedCard, createdBy); break; case CardGenerationTypes.Deck: Deck.ShuffleIntoDeck(generatedCard, createdBy, deckPosition); break; case CardGenerationTypes.Graveyard: AddToGraveyard(generatedCard, createdBy); break; case CardGenerationTypes.Deploy: CreateDeployUnits(cardData, filter.Enchantment, filter.UnitsToCreate, createdBy); break; case CardGenerationTypes.Equip: GameManager.instance.effectManager.SetItemEquip((Item)generatedCard); break; default: throw new Exception("Not a valid Generation Type"); } } } if (isChoice) { switch (generationType) { case CardGenerationTypes.Hand: GameManager.instance.effectManager.SetAddToHandChoiceMode(generatedCards, createdBy); break; case CardGenerationTypes.Deck: GameManager.instance.effectManager.SetAddToDeckChoiceMode(generatedCards, createdBy, deckPosition); break; case CardGenerationTypes.Graveyard: GameManager.instance.effectManager.SetAddToGraveyardChoiceMode(generatedCards, createdBy); break; case CardGenerationTypes.Deploy: GameManager.instance.effectManager.SetDeployChoiceMode(generatedCards, createdBy); break; case CardGenerationTypes.Equip: GameManager.instance.effectManager.SetItemChoiceMode(generatedCards, createdBy); break; default: throw new Exception("Not a valid Generation Type"); } } return(true); }
/// <summary> /// /// Function call for generate card area to confirm card generation /// /// </summary> public bool ConfirmCardGeneration(GenerateCardFilter filter, bool isChoice, string createdBy, DeckPositions deckPositions = DeckPositions.Random) { var filterSuccess = Player.GenerateCards(filter, selectedCardGeneration, isChoice, createdBy, deckPositions); if (filterSuccess) { PlayerUIBar.RefreshPlayerBar(); } return(filterSuccess); }