コード例 #1
0
    /// <summary>
    ///
    /// Refreshes the UI Component
    ///
    /// </summary>
    public void RefreshCardFunctionUI()
    {
        tutorDrawArea.gameObject.SetActive(false);

        selectedCardGeneration = CardGenerationTypes.None;
        generateCardArea.CardGenerationType = CardGenerationTypes.None;
        generateCardArea.gameObject.SetActive(false);
    }
コード例 #2
0
    /// <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);
    }
コード例 #3
0
 /// <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;
         }
     }
 }
コード例 #4
0
ファイル: Player.cs プロジェクト: joshuaburton2/Kingsbane
    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);
    }
コード例 #5
0
 /// <summary>
 ///
 /// Button click event for adding to graveyard
 ///
 /// </summary>
 public void OpenAddToGraveyardArea()
 {
     selectedCardGeneration = CardGenerationTypes.Graveyard;
     OpenCardGenerationArea();
 }
コード例 #6
0
 /// <summary>
 ///
 /// Button click event for adding to deck
 ///
 /// </summary>
 public void OpenAddToDeckArea()
 {
     selectedCardGeneration = CardGenerationTypes.Deck;
     OpenCardGenerationArea();
 }
コード例 #7
0
 /// <summary>
 ///
 /// Button click event for adding to hand
 ///
 /// </summary>
 public void OpenAddToHandArea()
 {
     selectedCardGeneration = CardGenerationTypes.Hand;
     OpenCardGenerationArea();
 }