Beispiel #1
0
    //when the card enters the zone, rotate and resize it
    public void AddCard(card card_to_add)
    {
        Debug.Log ("adding card:"+card_to_add.Name +"to zone: "+dbzone.Name+", Belongs to player: " +  card_to_add.ControlledByPlayer);
        //if (card_to_add.collider != null ) card_to_add.collider.enabled = false;
        if (card_to_add.IsZoomed) card_to_add.UnZoom();

        if (card_to_add.faceDown && !FaceDown) { //it it was face down and the zone has cards face up, make the card face up again
            card_to_add.FaceUp();
        }

        if (!Invisible && !card_to_add.GetComponent<SpriteRenderer> ()) //if no sprite renderer was added, time to add it now
            playerDeck.pD.AddArtAndText(card_to_add);

        cards.Add(card_to_add);
        if (FaceDown && card_to_add.GetComponent<Renderer>()) {
                    card_to_add.FaceDown();
                }

         if (UseSlots)
        {

            if (PlayerCanChooseSlot)
            {
                if (slot_to_use!=null) { Debug.Log("slot was chosen before"); ScaleAndPlaceIntoSlot(card_to_add); }

                    else if (card_to_add.ControlledByPlayer) //player, grid or no grid
                         StartCoroutine(ChooseSlotAndPlace(card_to_add));

                                else { //enemy

                                    if (card_to_add.transform.parent!=null && card_to_add.transform.parent.IsChildOf(transform))
                                         slot_to_use = FirstAvailableSlot(card_to_add.transform.parent.GetComponent<Slot>()); //movement
                                                else slot_to_use = FirstAvailableSlot(true); //initial placement

                                    ScaleAndPlaceIntoSlot(card_to_add);
                                    }
            }

            else if (StackAllInOneSlot)
            {
                slot_to_use = FirstAvailableSlot();
                int FrameSortingOrder;
                int ArtSortingOrder;

        //				Debug.Log("cards stacked in slot already:" + FirstAvailableSlot().childCount );

                FrameSortingOrder = (slot_to_use.childCount+1)*2;
                ArtSortingOrder = (slot_to_use.childCount+1)*2 - 1;

                card_to_add.GetComponent<Renderer>().sortingOrder = FrameSortingOrder;
                foreach (Transform child in card_to_add.transform) child.GetComponent<Renderer>().sortingOrder = FrameSortingOrder;
                card_to_add.transform.Find ("CardArt").GetComponent<Renderer>().sortingOrder = ArtSortingOrder;

                foreach (Transform child in slot_to_use) child.GetComponent<Renderer>().GetComponent<Collider2D>().enabled = false; // disabling the collider of the underneath cards so they don't cause glitches OnMouseOver etc
                ScaleAndPlaceIntoSlot(card_to_add);
            }

            else	{ //normal slot, choosing disabled

            slot_to_use = FirstAvailableSlot();
            ScaleAndPlaceIntoSlot(card_to_add);

            }

        }
        else //not using slots
        {
            card_to_add.transform.Rotate(0, 0, RotateDegrees);
            RecalculateScale();
        //			Debug.Log ("gonna set scale to:"+ZoneScale);
            card_to_add.transform.localScale = new Vector3 (ZoneScale, ZoneScale, 1f);

            RearrangeCards();

            TriggerOnEnter(card_to_add);

        }

        foreach (card foundcard in Player.cards_in_game)
            foundcard.checked_for_highlight = false;

        foreach (card foundcard in Player.cards_in_hand)
            foundcard.checked_for_highlight = false;
    }