public void addCard(CardData newCard) { bool cardAlreadyInList = false; foreach (CardAmountPair pair in cardList) { if (pair.cardId == newCard.id) { cardAlreadyInList = true; if (pair.amount == maxCopiesOfCard) // can't put more than 3 cards in deck { return; } pair.cardInDeckBuilder.incrementAmount(); pair.amount++; resetCardBarPositions(); break; } } if (!cardAlreadyInList) { CardInDeckBuilder newCardInDeckBuilder = Instantiate(cardInDeckBuilderPrefab, scollTransform); newCardInDeckBuilder.setToCard(newCard, this); cardList.Add(new CardAmountPair(newCard.id, 1, newCardInDeckBuilder)); resetCardBarPositions(); } cardCount++; cardCountText.text = "Card Count: " + cardCount; unsavedChanges = true; cardsView.notifyAddCard(newCard.id); }
private void resetCardBarPositions() { Debug.Log("resetting bar positions"); cardList.Sort(); // should probably sort here first int index = 0; Transform t = scroller.contentTransform; foreach (CardAmountPair pair in cardList) { CardInDeckBuilder cardInDeckBuilder = pair.cardInDeckBuilder; Vector3 newPosition = new Vector3(t.position.x + cardBarXOffset, t.position.y + cardBarYOffset + (index * cardBarCoeff), -1); cardInDeckBuilder.transform.position = newPosition; index++; } float scrollerNewMaxY = scrollerOffset + scrollerCoefficient * index; if (scrollerNewMaxY < 0f) { scrollerNewMaxY = 0f; } scroller.maxY = scrollerNewMaxY; }
public CardAmountPair(int cardId, int v, CardInDeckBuilder newCardInDeckBuilder) { this.cardId = cardId; amount = v; cardInDeckBuilder = newCardInDeckBuilder; }