Example #1
0
    void Handle(string value)
    {
        int stack = Convert.ToInt32(value);

        //
        // We'll put a card under the stack that is requesting a card
        //
        int        cardIndex;
        GameObject stackObj;
        GameObject cardObj;

        if (stack == 0)
        {
            stackObj = GameObject.Find("PlayerStack");
        }
        else
        {
            stackObj = GameObject.Find("DealerStack");
        }

        CardStackComponent cardStack = stackObj.GetComponent <CardStackComponent>();

        //
        // Add a card and sort the list so cards will appear in suit order
        //
        cardIndex = CardDeckManager.GetACard();
        //
        // end of deck?
        //
        if (cardIndex < 0)
        {
            return;
        }

        cardStack.cardsInStack.Add(cardIndex);
        //
        // To do Descending, first sort Ascending, then reverse the list
        //
        cardStack.cardsInStack.Sort();
        cardStack.cardsInStack.Reverse();
        //
        // Get the card obj
        //
        cardObj = CardDeckManager.GetCardFaceDown(cardIndex);

        Card cCard = cardObj.GetComponent <Card>();

        cCard.cardStack       = stack;                  //this will tell us which stack holds this card
        cCard.cardFaceShowing = cardStack.faceUp;
        //
        // Determine where the card goes on screen
        //
        cardObj.transform.parent        = stackObj.transform;
        cardObj.transform.localPosition = new Vector2(stackObj.transform.position.x + .07f, 0);
        //
        // trigger display of stack (if any are face up, then they will display)
        //
        EventManager.TriggerEvent("DisplayCardStackEvent", stack.ToString());
    }
    void Handle(string value)
    {
        int stack = Convert.ToInt32(value);

        GameObject stackObj;    //which stack to work with
        GameObject cardObj;     //current cardface(back)
        int        cnt = 0;     //multiplier for offset

        if (stack == 0)
        {
            stackObj = GameObject.Find("PlayerStack");
        }
        else
        {
            stackObj = GameObject.Find("DealerStack");
        }

        Transform          parentTransform = stackObj.transform;
        CardStackComponent cStack          = stackObj.GetComponent <CardStackComponent>();

        //
        // Loop thru a list of card values (integers)
        //
        cnt = cStack.cardsInStack.Count;

        foreach (int cardIndex in cStack.cardsInStack)
        {
            cardObj = GameObject.Find("Card_D0" + "_C" + cardIndex.ToString());
            Vector3 temp = parentTransform.position + new Vector3(cnt * cStack.xOffset, cnt * cStack.yOffset);
            cardObj.transform.position = temp;
            Card cCard = cardObj.GetComponent <Card>();

            //
            // find what image component to disp for the Entity
            //
            SpriteRenderer srender = cardObj.GetComponent <Renderer>() as SpriteRenderer;
            if (cCard.cardFaceShowing)
            {
                srender.sprite = CardDeckManager.GetCardFace(cardIndex);
            }
            else
            {
                srender.sprite = CardDeckManager.GetCardBack(cardIndex);
            }
            //
            // reverse the order of sprites with 0 being the first card way back
            //
            srender.sortingOrder = cnt;
            cnt -= 1;
        }
    }