コード例 #1
0
 public void SetAddToDeckChoiceMode(List <Card> cards, string createdBy, DeckPositions deckPosition)
 {
     ActiveEffect = ActiveEffectTypes.AddToDeckChoice;
     GameManager.instance.uiManager.ShowCardChoiceDisplay(cards);
     SelectedString       = createdBy;
     SelectedDeckPosition = deckPosition;
 }
コード例 #2
0
    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");
        }
    }
コード例 #3
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);
    }
コード例 #4
0
    /// <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);
    }