//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; }