Esempio n. 1
0
 public Transform GetGroupUI()
 {
     if (Load())
     {
         Transform tran = _spawnPool.Spawn("GroupCard");
         _prefabs.Add(tran);
         UIGroupCardsView rview = tran.gameObject.GetComponent <UIGroupCardsView> () ?? tran.gameObject.AddComponent <UIGroupCardsView>();
         for (int i = 0; i < GameMessage.HANDLE_MJ_NUM; i++)
         {
             string    cname = "img_bg" + (i + 1);
             Transform temp  = tran.Find(cname);
             temp.gameObject.SetActive(false);
             rview._cardViews[i] = temp.GetComponent <UICardView> () ?? temp.gameObject.AddComponent <UICardView> ();
             UICardView cview = rview._cardViews [i];
             cview._imgBg   = temp.GetComponent <Image> ();
             cview._imgMj   = temp.Find("img_mj").GetComponent <Image> ();
             cview._imgbsBG = temp.Find("img_bsBG").GetComponent <Image> ();
             cview._textX   = temp.Find("Text_x").GetComponent <Text> ();
             cview._textNum = temp.Find("Text_num").GetComponent <Text> ();
             if (i == 1)
             {
                 Transform gangTran = cview.transform.Find("img_gang");
                 if (gangTran)
                 {
                     gangTran.gameObject.SetActive(false);
                 }
             }
         }
         return(tran);
     }
     return(null);
 }
Esempio n. 2
0
    public Transform GetHandGroupUI(Transform parentT, List <byte> cards)
    {
        Transform tran = GetGroupUI();

        if (null == tran)
        {
            return(null);
        }
        //cards.Sort(delegate(Student a, Student b) { return a.Age.CompareTo(b.Age); });
        cards.Sort();
        tran.parent = parentT;
        tran.gameObject.SetActive(true);
        UIGroupCardsView      rview      = tran.gameObject.GetComponent <UIGroupCardsView> () ?? tran.gameObject.AddComponent <UIGroupCardsView>();
        HorizontalLayoutGroup layerGroup = tran.gameObject.GetComponent <HorizontalLayoutGroup> ();

        //layerGroup.spacing = -3;
        for (int i = 0; i < cards.Count; i++)
        {
            UICardView cview = rview._cardViews [i];
            TileDef    def   = TileDef.Create(cards[i]);
            cview._imgMj.sprite = UIOperation.Instance.GetMJSprite(def);
            cview.gameObject.SetActive(true);
            cview._imgbsBG.gameObject.SetActive(false);
            cview._textX.gameObject.SetActive(false);
            cview._textNum.gameObject.SetActive(false);
        }
        return(tran);
    }
Esempio n. 3
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;
     }
 }
Esempio n. 4
0
    public Transform GetHuGroupUI(Transform parentT, List <GameMessage.HuCards> huCards)
    {
        Transform tran = GetGroupUI();

        if (null == tran)
        {
            return(null);
        }
        tran.parent = parentT;
        tran.gameObject.SetActive(true);
        HorizontalLayoutGroup layerGroup = tran.gameObject.GetComponent <HorizontalLayoutGroup> ();
        //layerGroup.spacing = -1;

        UIGroupCardsView rview = tran.gameObject.GetComponent <UIGroupCardsView> () ?? tran.gameObject.AddComponent <UIGroupCardsView>();

        for (int i = 0; i < huCards.Count; i++)
        {
            UICardView cview = rview._cardViews [i];
            TileDef    def   = TileDef.Create(huCards[i].cCard);
            cview._imgMj.sprite = UIOperation.Instance.GetMJSprite(def);
            cview.gameObject.SetActive(true);
            cview._imgbsBG.gameObject.SetActive(true);
            cview._textX.gameObject.SetActive(true);
            cview._textNum.gameObject.SetActive(true);
            cview._textNum.text = huCards[i].cNum.ToString();
        }
        return(tran);
    }
Esempio n. 5
0
    public Transform GetPengGroupUI(Transform parentT, byte card, byte specialType)
    {
        Transform tran = GetGroupUI();

        if (null == tran)
        {
            return(null);
        }
        tran.parent = parentT;
        tran.gameObject.SetActive(true);
        HorizontalLayoutGroup layerGroup = tran.gameObject.GetComponent <HorizontalLayoutGroup> ();
        //layerGroup.spacing = -4;
        int cardNum = 0;

        switch (specialType)
        {
        case (byte)GameMessage.SPECIAL_TYPE.PONG:
            cardNum = 3;
            break;

        case (byte)GameMessage.SPECIAL_TYPE.KONG:
            cardNum = 4;
            break;

        case (byte)GameMessage.SPECIAL_TYPE.DARK_KONG:
            cardNum = 4;
            break;

        case (byte)GameMessage.SPECIAL_TYPE.SPECIAL_TYPE_PENGGANG:
            cardNum = 4;
            break;
        }
        UIGroupCardsView rview = tran.gameObject.GetComponent <UIGroupCardsView> () ?? tran.gameObject.AddComponent <UIGroupCardsView>();

        for (int i = 0; i < cardNum; i++)
        {
            if (i == 3)
            {
                break;
            }
            UICardView cview = rview._cardViews [i];
            TileDef    def   = TileDef.Create(card);
            cview._imgMj.sprite = UIOperation.Instance.GetMJSprite(def);
            cview.gameObject.SetActive(true);
            cview._imgbsBG.gameObject.SetActive(false);
            cview._textX.gameObject.SetActive(false);
            cview._textNum.gameObject.SetActive(false);
            if (cardNum == 4 && i == 1)
            {
                Transform gangTran = cview.transform.Find("img_gang");
                if (gangTran)
                {
                    gangTran.gameObject.SetActive(true);
                    gangTran.Find("img_mj").GetComponent <Image> ().sprite = cview._imgMj.sprite;
                }
            }
        }
        return(tran);
    }
    public CardSelection(int index, BaseCard card, UICardView uiCard)
    {
        UICard = uiCard;
        Card   = card;
        Index  = index;

        UICard.Select();
    }
Esempio n. 7
0
    public void AddCardToDeck(IPlayerCard card)
    {
        if (card == null)
        {
            return;
        }

        string failureReason;

        if (!ValidateAddCard(card, out failureReason))
        {
            if (errorMessage)
            {
                errorMessage.SetActive(true);
                StartCoroutine("HideErrorMessage");
            }
            if (errorMessageText)
            {
                errorMessageText.text = failureReason;
            }

            Debug.Log($"DeckBuilding validation failure : {failureReason}");
            return;
        }

        builtDeck.Add(card);
        UICardView uiCardView;

        if (uiPlayerDeckCards.TryGetValue(card.Name, out uiCardView))
        {
            IList <IPlayerCard> cards = builtDeck.FindAll((obj) => { return(obj.Name == card.Name); });
            uiCardView.SetNumberOwned(cards.Count);
        }
        else if (uiCardPoolCards.TryGetValue(card.Name, out uiCardView))
        {
            GameObject g    = Instantiate(uiCardView.gameObject);
            UICardView view = g.GetComponent <UICardView>();
            view.Setup(card);
            view.OnClick += OnUICardViewClicked;
            uiPlayerDeckCards.Add(card.Name, view);
            g.transform.parent = uiPlayerDeck;
        }
    }
Esempio n. 8
0
    public void Show(string title, List <BaseCard> cards)
    {
        _titleText.text = title;

        Display();

        if (cards.Count > 0)
        {
            _emptyContentCanvas.gameObject.SetActive(false);
            foreach (BaseCard card in cards)
            {
                UICardView cardView = Instantiate(_cardPrefab, _contentCanvas.transform).GetComponent <UICardView>();
                cardView.Construct(card);
            }
        }
        else
        {
            _emptyContentCanvas.gameObject.SetActive(true);
        }
    }
Esempio n. 9
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);
            }
        }
Esempio n. 10
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);
                }
            }
        }
    }
Esempio n. 11
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]);
            }
        }
    }