/// <summary> /// /// Refreshes the UI Component /// /// </summary> public void RefreshCardFunctionUI() { tutorDrawArea.gameObject.SetActive(false); selectedCardGeneration = CardGenerationTypes.None; generateCardArea.CardGenerationType = CardGenerationTypes.None; generateCardArea.gameObject.SetActive(false); }
/// <summary> /// /// Initialises the tutor draw area when it is opened /// /// </summary> public void OpenGenerateCardArea(CardGenerationTypes cardGenerationType) { CardGenerationType = cardGenerationType; GenerationFilter = new GenerateCardFilter(PlayerClass); titleText.text = $"Add to {CardGenerationType}"; defaultTitleText = titleText.text; createdByInput.placeholder.color = new Color(0.2f, 0.2f, 0.2f, 0.5f); //Sets area to default values dropdownFields.ForEach(x => x.value = 0); inputFields.ForEach(x => x.text = ""); includeUncollectablesToggle.isOn = false; isUnique.isOn = false; isChoice.isOn = false; //Hides the position field positionFieldArea.SetActive(CardGenerationType == CardGenerationTypes.Deck); }
/// <summary> /// /// General case for opening card generation area /// /// </summary> private void OpenCardGenerationArea() { tutorDrawArea.gameObject.SetActive(false); if (selectedCardGeneration != generateCardArea.CardGenerationType) { generateCardArea.gameObject.SetActive(true); generateCardArea.OpenGenerateCardArea(selectedCardGeneration); } else { generateCardArea.gameObject.SetActive(!generateCardArea.gameObject.activeSelf); if (generateCardArea.gameObject.activeSelf) { generateCardArea.OpenGenerateCardArea(selectedCardGeneration); } else { selectedCardGeneration = CardGenerationTypes.None; generateCardArea.CardGenerationType = CardGenerationTypes.None; } } }
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> /// /// Button click event for adding to graveyard /// /// </summary> public void OpenAddToGraveyardArea() { selectedCardGeneration = CardGenerationTypes.Graveyard; OpenCardGenerationArea(); }
/// <summary> /// /// Button click event for adding to deck /// /// </summary> public void OpenAddToDeckArea() { selectedCardGeneration = CardGenerationTypes.Deck; OpenCardGenerationArea(); }
/// <summary> /// /// Button click event for adding to hand /// /// </summary> public void OpenAddToHandArea() { selectedCardGeneration = CardGenerationTypes.Hand; OpenCardGenerationArea(); }