public void Update() { if (transform.childCount != numChildren) { List <PlayerCardSortable> cardsToSort = new List <PlayerCardSortable>(); for (var i = 0; i < transform.childCount; ++i) { UICardView cardView = transform.GetChild(i).GetComponent <UICardView>(); if (cardView) { PlayerCard card = cardView.GetCard() as PlayerCard; if (card) { cardsToSort.Add(new PlayerCardSortable(transform.GetChild(i).gameObject, card)); } } } cardsToSort.Sort(); for (var i = 0; i < cardsToSort.Count; ++i) { cardsToSort[i].g.transform.SetSiblingIndex(i); } numChildren = transform.childCount; } }
public void OnUICardViewClicked(object sender, EventArgs e) { GameObject uiCardView = sender as GameObject; if (uiCardView != null) { UICardView cardView = uiCardView.GetComponent <UICardView>(); if (cardView != null) { if (uiCardView.transform.parent == uiPlayerDeck) { this.RemoveCardFromDeck(cardView.GetCard() as IPlayerCard); } else if (uiCardView.transform.parent == uiCardPool) { PlayerCard prototype = cardView.GetCard() as PlayerCard; PlayerCard clone = Instantiate(prototype); this.AddCardToDeck(clone); } } } }
private void CardSelected(UICardView card) { ICard cardClicked = card.GetCard(); selectedCards.Add(cardClicked); candidateCards.Remove((TCard)cardClicked); if (selectedCards.Count >= numCards || candidateCards.Count == 0) { // If the player has selected the required number of cards or has exhausted all // available candidate cards, we're done: return the list of selected cards. this.uiManager.CardClicked -= this.CardSelected; this.uiManager.HideCardPicker(); this.OnComplete(selectedCards); } else if (card != null) { // Otherwise, just remove the selected card from the displayed list and let the // player keep picking. UnityEngine.Object.Destroy(card.gameObject); } }
public void Start() { //Error checks if (uiPlayerDeck == null) { Debug.LogError("UIPLAYERDECK NOT SETUP IN DECK BUILD MANAGER"); } if (uiCardPool == null) { Debug.LogError("UICARDPOOL NOT SETUP IN DECK BUILD MANAGER"); } if (cardUIPrefab == null) { Debug.LogError("CARD UI PREFAB NOT SETUP IN DECK BUILD MANAGER"); } if (deckBuilderBackground == null) { Debug.LogError("DECK BUILDER BACKGROUND NOT SETUP IN DECK BUILD MANAGER"); } if (initInfo == null) { Debug.LogError("CHASE START INFO NOT SETUP IN DECK BUILD MANAGER"); } // --- if (errorMessage != null) { errorMessage.SetActive(false); } this.builtDeck = new List <IPlayerCard>(); uiPlayerDeckCards = new Dictionary <string, UICardView>(); uiCardPoolCards = new Dictionary <string, UICardView>(); for (var i = 0; i < cardPool.Count; ++i) { IPlayerCard card = cardPool[i]; GameObject uiCardObject = Instantiate(cardUIPrefab); UICardView uICardView = uiCardObject.GetComponent <UICardView>(); uICardView.Setup(cardPool[i]); uICardView.transform.parent = uiCardPool; uICardView.OnClick += OnUICardViewClicked; uiCardPoolCards.Add(uICardView.GetCard().Name, uICardView); } switch (initInfo.SelectedPlayerDriver) { case PlayerCardDriver.StuntDriver: ChangeDriverToStunt(); break; case PlayerCardDriver.Navigator: ChangeDriverToNavigator(); break; default: //Intended to catch the none case ChangeDriverToMechanic(); break; } if (initInfo.SelectedPlayerCards != null) { for (var i = 0; i < initInfo.SelectedPlayerCards.Length; ++i) { AddCardToDeck(initInfo.SelectedPlayerCards[i]); } } }