public void onDescriptionEdit()
    {
        CardFilterObject filter = cardsView.filter;

        filter.descriptionTextSearch = descriptionInput.text;
        cardsView.updateDisplayedCards(filter);
    }
Beispiel #2
0
    public void toggleElement(ElementIdentity element)
    {
        CardFilterObject filter = cardsView.filter;

        // no list exists
        if (filter.elements == null)
        {
            List <ElementIdentity> elements = new List <ElementIdentity>();
            elements.Add(element);
            filter.elements = elements;
        }
        else if (!filter.elements.Contains(element))
        {
            Debug.Log("Adding element");
            filter.elements.Add(element);
        }
        else
        {
            Debug.Log("Removing element");
            filter.elements.Remove(element);
        }
        foreach (ElementIdentity id in filter.elements)
        {
            Debug.Log(id);
        }
    }
    public void onSearchEdit()
    {
        CardFilterObject filter = cardsView.filter;

        filter.nameTextSearch = nameInput.text;
        cardsView.updateDisplayedCards(filter);
    }
Beispiel #4
0
    public void updateDisplayedCards(CardFilterObject filter)
    {
        long startTime = DateTimeOffset.Now.ToUnixTimeMilliseconds();

        cardList = filterCards(filter);
        setup(cardList);
        long endTime = DateTimeOffset.Now.ToUnixTimeMilliseconds();

        Debug.Log("Filtered in " + (endTime - startTime) + "ms");
    }
Beispiel #5
0
 private void Awake()
 {
     cardViewers = new List <CardViewerForDeckBuilder>();
     allCards    = ResourceManager.Get().GetAllCardDataVisibleInDeckBuilder();
     allCards.Sort();
     cardList = new List <CardData>();
     cardList.AddRange(allCards);
     setup(cardList);
     filter   = new CardFilterObject();
     instance = this;
 }
Beispiel #6
0
    public void toggleTotalCost(int totalCost)
    {
        CardFilterObject filter = cardsView.filter;

        // no list exists
        if (filter.totalCosts == null)
        {
            List <int> costs = new List <int>();
            costs.Add(totalCost);
            filter.totalCosts = costs;
        }
        // list exists but doesn't have totalCost
        else if (!filter.totalCosts.Contains(totalCost))
        {
            filter.totalCosts.Add(totalCost);
        }
        else
        {
            // cost is in list already
            filter.totalCosts.Remove(totalCost);
        }
    }
Beispiel #7
0
    public void toggleCardType(CardType cardType)
    {
        CardFilterObject filter = cardsView.filter;

        // no list exists
        if (filter.cardTypes == null)
        {
            List <CardType> types = new List <CardType>();
            types.Add(cardType);
            filter.cardTypes = types;
        }
        // list exists but doesn't have type
        else if (!filter.cardTypes.Contains(cardType))
        {
            filter.cardTypes.Add(cardType);
        }
        else
        {
            // type is in list
            filter.cardTypes.Remove(cardType);
        }
    }
Beispiel #8
0
    private List <CardData> filterCards(CardFilterObject filter)
    {
        List <CardData> filteredCardList = new List <CardData>();

        foreach (CardData data in allCards)
        {
            // elements
            if (filter.elements != null && filter.elements.Count > 0)
            {
                if (!filter.elements.Contains(data.elementalIdentity))
                {
                    continue;
                }
            }
            // total cost
            if (filter.totalCosts != null && filter.totalCosts.Count > 0)
            {
                if (!filter.totalCosts.Contains(data.TotalCost))
                {
                    continue;
                }
            }
            // card types
            if (filter.cardTypes != null && filter.cardTypes.Count > 0)
            {
                if (!filter.cardTypes.Contains(data.CardType))
                {
                    continue;
                }
            }
            // tags
            if (filter.tags != null && filter.tags.Count > 0)
            {
                bool hasTag = false;
                foreach (Tag tag in filter.tags)
                {
                    if (data.tags.Contains(tag))
                    {
                        hasTag = true;
                        break;
                    }
                }
                if (!hasTag)
                {
                    continue;
                }
            }
            // keywords
            if (filter.keywords != null && filter.keywords.Count > 0)
            {
                bool hasKeyword = false;
                foreach (Keyword keyword in filter.keywords)
                {
                    if (data.keywords.Contains(keyword))
                    {
                        hasKeyword = true;
                        break;
                    }
                }
                if (!hasKeyword)
                {
                    continue;
                }
            }
            // name
            if (filter.nameTextSearch != null && filter.nameTextSearch != "")
            {
                if (!data.cardName.ToLower().Contains(filter.nameTextSearch.ToLower()))
                {
                    continue;
                }
            }
            // description
            if (filter.descriptionTextSearch != null && filter.descriptionTextSearch != "")
            {
                if (!data.effectText.ToLower().Contains(filter.descriptionTextSearch.ToLower()))
                {
                    continue;
                }
            }
            filteredCardList.Add(data);
        }


        return(filteredCardList);
    }