public void onDescriptionEdit() { CardFilterObject filter = cardsView.filter; filter.descriptionTextSearch = descriptionInput.text; cardsView.updateDisplayedCards(filter); }
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); }
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"); }
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; }
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); } }
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); } }
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); }