Example #1
0
 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;
     }
 }
Example #2
0
    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);
                }
            }
        }
    }
Example #3
0
        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);
            }
        }
Example #4
0
    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]);
            }
        }
    }