Beispiel #1
0
    public static void MoveCard(card card_to_move)
    {
        if (card_to_move.IsZoomed) { Debug.Log ("starting unzoom after moving"); Player.CanUnzoom = true; card_to_move.UnZoom(); }
        //move the card from collection to deck or from deck to collection
        if (card_to_move.InCollection)
        {
            Debug.Log("mouse down collection");

            card foundcard = EditDeckScripts.cards_in_deck.Find(x => x.Index == card_to_move.Index);

            if (foundcard) { Debug.Log("found, adding amount"); foundcard.Amount++;}
            else
            { 	//Debug.Log("cloning");
                GameObject clone;
                clone = (GameObject)Instantiate(card_to_move);
                EditDeckScripts.cards_in_deck.Add(clone.GetComponent<card>()); //make a copy of this card to display in deck
                //foundcard = EditDeckScripts.cards_in_deck.Find(x => x.Index == Index);
                clone.GetComponent<card>().Amount=1;
            }
            card_to_move.Amount--;

        }
        else
        {
            Debug.Log("moving card index: "+ card_to_move.Index.ToString());
            EditDeckScripts.cards_in_collection.Find(x => x.Index == card_to_move.Index).Amount++;
            Debug.Log("amount in coll: "+ 	EditDeckScripts.cards_in_collection.Find(x => x.Index == card_to_move.Index).Amount);
            card_to_move.Amount--;

            if (EditDeckScripts.FilterOn)
            {
                if (card_to_move.Name.ToString().ToLower().Contains(EditDeckScripts.searchname.ToLower())) { EditDeckScripts.cards_in_collection.Add(card_to_move); }
                else {
                    EditDeckScripts.cards_filtered_out.Add(card_to_move);
                    card_to_move.GetComponent<SpriteRenderer>().enabled = false;
                }
            }

        }

        EditDeckScripts.ArrangeCards();
    }
Beispiel #2
0
    void ScaleAndPlaceIntoSlot(card card_to_add)
    {
        if (slot_to_use != null)
        {
            if (card_to_add.transform.parent != null) //if the card already was in some slot, enable that slot's collider again
                card_to_add.transform.parent.gameObject.layer = 0; //default
            else TriggerOnEnter(card_to_add);

            if (card_to_add.IsZoomed) card_to_add.UnZoom();
            float realHeight = MainMenu.ColliderHeight;
            float realWidth = MainMenu.ColliderWidth;

            float ScaleForSlot = slot_to_use.GetComponent<Collider>().bounds.size.y / realHeight / slot_to_use.transform.localScale.y;
            if (ScaleForSlot > slot_to_use.GetComponent<Collider>().bounds.size.x / realWidth) ScaleForSlot = slot_to_use.GetComponent<Collider>().bounds.size.x / realWidth; //if we need to scale more to fit the width than to fit the height
        //			Debug.Log("gonna apply scale for slot: "+ ScaleForSlot);

            card_to_add.transform.position = slot_to_use.position;
            card_to_add.transform.parent = slot_to_use; //putting the card into the first available slot
            card_to_add.transform.localScale = new Vector3 (ScaleForSlot, ScaleForSlot, 1f);

            slot_to_use.gameObject.layer = 2; //ignore raycast

            if (card_to_add.Hero)
                if (Player.cards_in_game.Contains(card_to_add))
                    GameObject.FindWithTag("Player").GetComponent<Player>().hero_slot = slot_to_use.GetComponent<Slot>();
                else GameObject.FindWithTag("Enemy").GetComponent<Enemy>().hero_slot = slot_to_use.GetComponent<Slot>();

            slot_to_use = null;
        }
        //		Debug.Log("local scale: "+card_to_add.transform.localScale);
    }
Beispiel #3
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;
    }