Beispiel #1
0
    public static void AddEnchantment(card card_to_add)
    {
        cards_in_game.Add(card_to_add);
        enchantments.Add (card_to_add);

        Zone creaturezone = Enemy.CreaturesZone;

        creaturezone.AddCard (card_to_add);
        card_to_add.GetComponent<AudioSource>().PlayOneShot(card_to_add.sfxEntry);
    }
Beispiel #2
0
    public static void AddCreature(card card_to_add)
    {
        cards_in_game.Add(card_to_add);
        enemy_creatures.Add (card_to_add);

        Zone creaturezone = Enemy.CreaturesZone;

        creaturezone.AddCard (card_to_add);

        // this is the same for player and enemy creatures

        card_to_add.FirstTurnInGame = true;

        card_to_add.GetComponent<AudioSource>().PlayOneShot(card_to_add.sfxEntry);

        Player.CreatureStatsNeedUpdating = true;
    }
Beispiel #3
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 #4
0
    public static void AddLand(card card_to_add)
    {
        cards_in_game.Add(card_to_add);
        Zone lands = Enemy.LandsZone;

        lands.AddCard (card_to_add);
        card_to_add.GetComponent<AudioSource>().PlayOneShot(card_to_add.sfxEntry);
    }
Beispiel #5
0
    public void AddArtAndText(card card_to_update, bool nocollider=false)
    {
        DbCard dbcard = MainMenu.TCGMaker.cards.Where(x => x.id == card_to_update.Index).SingleOrDefault();

        GameObject cardobj = card_to_update.gameObject;
        if (!nocollider && !card_to_update.GetComponent<Collider2D>()) {
                        card_to_update.gameObject.AddComponent <BoxCollider2D>();
                        BoxCollider2D collider = card_to_update.GetComponent<BoxCollider2D> () as BoxCollider2D;

                        collider.size = new Vector3 (MainMenu.ColliderWidth, MainMenu.ColliderHeight, 0f); // this defines the clickable area size of each card
                }

        if (!card_to_update.GetComponent<SpriteRenderer>()) card_to_update.gameObject.AddComponent<SpriteRenderer>();

        GameObject card_art = AddCardComponent("CardArt", card_to_update);

        card_art.GetComponent<SpriteRenderer>().sprite = dbcard.art ;

        if (templateTransform.Find(card_to_update.CardColor.name+"Frame"))
            card_to_update.GetComponent<SpriteRenderer> ().sprite = templateTransform.Find(card_to_update.CardColor.name+"Frame").GetComponent<SpriteRenderer> ().sprite;

        else Debug.LogError("Could not find a frame for color: "+card_to_update.CardColor.name + " ! Check that you have a "+card_to_update.CardColor.name+"Frame attached to the Card Template in MainMenuScene");

        card_to_update.GetComponent<Renderer>().sortingOrder = 2;

        foreach (string c_stat in card_to_update.CustomInts.Keys)	//adding custom stats:
                        AddIntStat(card_to_update, c_stat, templateTransform);

        foreach (string c_stat in card_to_update.CustomStrings.Keys)
                        AddStringStat(card_to_update, c_stat, templateTransform);

        GameObject card_name = AddCardComponent("Name3DText", card_to_update);

        card_name.GetComponent<TextMesh> ().text = card_to_update.Name.ToString (); //creature offense

        string cardtext = dbcard.text;
        if (cardtext != "")
            {
                GameObject card_description = AddCardComponent("Description3DText", card_to_update);

                card_description.GetComponent<TextMesh> ().text = TextWrap(cardtext, 30);  //card description

            }

        if (card_to_update.Type != 0) //if it's not a land, add mana text
            {
                if (MainMenu.TCGMaker.core.UseManaColors)
                {
                    int i = 0;
                    foreach (ManaColor foundcolor in card_to_update.Cost)
                    {

                        if (!foundcolor.icon) Debug.LogWarning("No icon found for mana color: "+foundcolor.name);
                        else {
                        GameObject mana_icon = AddCardComponent("ManaIcon", card_to_update);

                        Sprite thisicon = foundcolor.icon;
                        mana_icon.GetComponent<SpriteRenderer>().sprite = thisicon; //mana cost

                        Vector3 pos = mana_icon.transform.localPosition;
                        pos.x -= i * thisicon.bounds.size.x * mana_icon.transform.localScale.x * 1.1f; //by default, the distance between mana icons is 10% of an icon's width
                        mana_icon.transform.localPosition = pos;
                        }

                        i++;
                    }
                }
                else
                {
                    GameObject card_mana = AddCardComponent("Mana3DText", card_to_update);

                    card_mana.GetComponent<TextMesh> ().text = card_to_update.Cost.Count.ToString (); //mana cost

                    GameObject card_cost_icon = AddCardComponent("CostIcon", card_to_update);

                }
        }

        if (card_to_update.IsACreature())
        {
            //the atk/def numbers that will be displayed on top of the card:
            GameObject card_atk = AddCardComponent("Offense3DText", card_to_update);
            GameObject card_atk_icon = AddCardComponent("OffenseIcon", card_to_update);
            card_atk.GetComponent<TextMesh> ().text = card_to_update.CreatureOffense.ToString ();  //creature offense

            if (!MainMenu.TCGMaker.core.OptionOneCombatStatForCreatures)
                {
                    GameObject card_def = AddCardComponent("Defense3DText", card_to_update);
                    GameObject card_def_icon = AddCardComponent("DefenseIcon", card_to_update);
                    card_def.GetComponent<TextMesh> ().text = card_to_update.CreatureDefense.ToString (); //creature offense

                }
        }

        foreach (Transform child in card_to_update.transform)
            child.GetComponent<Renderer>().enabled = true;
    }
Beispiel #6
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;
    }
Beispiel #7
0
    public static void AddCreature(card card_to_add)
    {
        //		Debug.Log ("starting AddCreature");
        cards_in_game.Add(card_to_add);
        player_creatures.Add (card_to_add);

        Zone creaturezone = Player.CreaturesZone;

        card_to_add.ControlledByPlayer = true;

        creaturezone.AddCard (card_to_add);

        // this is the same for player and enemy creatures

        card_to_add.FirstTurnInGame = true; //important, because of the "return to deck" spells

        //AudioSource cardSFX = card_to_add.GetComponent<AudioSource>();
        //cardSFX.Play();
        card_to_add.GetComponent<AudioSource>().PlayOneShot(card_to_add.sfxEntry);

        Player.CreatureStatsNeedUpdating = true;
    }
Beispiel #8
0
    public static void OpenListToChooseCard(List<card> cardlist, int cardtype = -1)
    {
        bool at_least_one_valid_card = false;
                temp_cards.Clear ();
                card tempcard = new card ();
                int i = 0;

                GameObject choosecardtext = (GameObject)Instantiate (playerDeck.pD.choosecardprefab);
                choosecardtext.name = "ChooseCardText";

                choosecardtext.GetComponent<Renderer>().sortingOrder = 90; //zoomed cards still appear on top with sorting order = 100

                if (MainMenu.TCGMaker.core.UseGrid)
                        foreach (Transform foundslot in Player.CreaturesZone.transform)
                                foundslot.GetComponent<Collider>().enabled = false;

                foreach (card foundcard in cardlist) {
                        if (cardtype != -1 && foundcard.Type  == cardtype) {
                                at_least_one_valid_card = true;
                                tempcard = playerDeck.pD.MakeCard (foundcard.Index);
                                playerDeck.pD.AddArtAndText(tempcard);

                                tempcard.GetComponent<Renderer>().sortingOrder = 91;
                                foreach (Transform child in tempcard.transform) child.GetComponent<Renderer>().sortingOrder = 91;
                                tempcard.transform.Find ("CardArt").GetComponent<Renderer>().sortingOrder = 90;  //zoomed cards still appear on top with sorting order = 100

                                tempcard.transform.position = new Vector3 (1f + 0.5f * i, 1f, 0.1f);
                                temp_cards.Add (tempcard); //only the cards from the temp_cards list will be valid targets when clicked on
                                i++;
                        }
                }
                if (!at_least_one_valid_card) {
            Debug.Log ("no valid cards in the list");

                        Player.NeedTarget = 0;
                        Player.ActionCancelled = true;
                        Destroy(GameObject.FindGameObjectWithTag("ChooseCardText"));
                }
    }
Beispiel #9
0
    public static void OpenIntListToChooseCard(List<int> cardlist, int cardtype = -1)
    {
        temp_cards.Clear();
        card tempcard = new card();
        int i=0;

        GameObject choosecardtext = (GameObject)Instantiate(playerDeck.pD.choosecardprefab);
        choosecardtext.name = "ChooseCardText";
        choosecardtext.transform.position = new Vector3 (-2f, 2.8f, 0.1f);
        DbCard dbcard;

        if (MainMenu.TCGMaker.core.UseGrid)
            foreach (Transform foundslot in Player.CreaturesZone.transform)
                foundslot.GetComponent<Collider>().enabled = false;

        foreach (int foundcardID in cardlist)
        {
            dbcard = MainMenu.TCGMaker.cards.Where(x => x.id == foundcardID).SingleOrDefault();
            if (dbcard == null) Debug.LogWarning("card not found in the new db!");

            if (cardtype == -1 || dbcard.type == cardtype )

            {
                    tempcard = playerDeck.pD.MakeCard(foundcardID);
                    playerDeck.pD.AddArtAndText(tempcard);

                    if (i>7) tempcard.transform.position = new Vector3(-2f+1f*(i-8), -0.5f, 0.1f);
                    else tempcard.transform.position = new Vector3(-2f+1f*i, 1f, 0.1f);

                    tempcard.GetComponent<Renderer>().sortingOrder = 91;
                    foreach (Transform child in tempcard.transform) child.GetComponent<Renderer>().sortingOrder = 91;
                    tempcard.transform.Find ("CardArt").GetComponent<Renderer>().sortingOrder = 90;  //zoomed cards still appear on top with sorting order = 100

                    temp_cards.Add(tempcard); //only the cards from the temp_cards list will be valid targets when clicked on
            }
            i++;
        }
    }