Beispiel #1
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 #2
0
    public void LoadCardStats(card temp_card)
    {
        int Index = temp_card.Index;
        Debug.Log ("index:"+Index);

        //Debug.Log ("name:"+cardsDB[Index]["name"].ToString());
        DbCard dbcard = MainMenu.TCGMaker.cards.Where(x => x.id == Index).SingleOrDefault();
        if (dbcard == null) Debug.LogWarning("card not found in the new db!");
        temp_card.gameObject.name =  dbcard.name; //for easier debugging with inspector, otherwise there will be a ton of NewGameObjects

        temp_card.Name = dbcard.name;

        //Debug.Log ("type:"+cardsDB[Index]["type"].ToString());
        temp_card.Type = dbcard.type;
        temp_card.Subtype = dbcard.subtype;
        temp_card.CardColor = dbcard.color;

        if (MainMenu.TCGMaker.core.UseManaColors) {

            temp_card.Cost = dbcard.cost;

        } else { //gonna ensure every cost is colorless
            ManaColor colorless = MainMenu.TCGMaker.core.colors [0];

            temp_card.Cost = new List<ManaColor>();

            foreach (ManaColor foundcolor in dbcard.cost)
            temp_card.Cost.Add(colorless);
        }

        temp_card.Art = dbcard.art;

        temp_card.DiscardCost = dbcard.discardcost;

        //		Debug.Log("gonna update effects");

        foreach (Effect effect in dbcard.effects){
        //			Debug.Log("added effect");
            temp_card.Effects.Add(effect);
        }

        //		Debug.Log ("updated effects on card "+temp_card.Name);
        if (!temp_card.abilities ) temp_card.abilities = temp_card.gameObject.AddComponent <abilities>() as abilities;

        temp_card.sfxEntry =  dbcard.sfxentry;
        temp_card.sfxMove0 =  dbcard.sfxmove0;
        temp_card.sfxMove1 =  dbcard.sfxmove1;
        temp_card.sfxAbility0 =  dbcard.sfxability0;

        if (temp_card.IsACreature()) { //if its a creature

            if (temp_card.buffs == null) temp_card.buffs = new List<Buff>();

            temp_card.Level =  dbcard.level;
            temp_card.GrowID =  dbcard.growid;

            temp_card.Hero =  dbcard.hero;
            temp_card.Ranged =  dbcard.ranged;

            //default keyword abilities:
            temp_card.takes_no_combat_dmg = dbcard.takes_no_combat_dmg;
            temp_card.deals_no_combat_dmg = dbcard.deals_no_combat_dmg;
            temp_card.no_first_turn_sickness = dbcard.no_first_turn_sickness;

            temp_card.cant_attack = dbcard.cant_attack;
            temp_card.extramovement = dbcard.extramovement;

            temp_card.free_attack = dbcard.free_attack;
            temp_card.less_dmg_from_ranged = dbcard.less_dmg_from_ranged;
            temp_card.no_dmg_from_ranged = dbcard.no_dmg_from_ranged;
            temp_card.takes_no_spell_dmg = dbcard.takes_no_spell_dmg;
            //

            temp_card.CreatureStartingOffense = temp_card.CreatureOffense = dbcard.offense;
            temp_card.CreatureStartingDefense = temp_card.CreatureDefense = dbcard.defense;

            temp_card.CustomInts.Clear();	//otherwise creature upgrades won't work
            temp_card.CustomStrings.Clear();

            foreach (CustomInt c_int in dbcard.CustomInts)
            {
                temp_card.CustomInts.Add(c_int.h_name, c_int.value);

            }

            foreach (CustomString c_string in dbcard.CustomStrings)
            {
                temp_card.CustomStrings.Add(c_string.h_name, c_string.value);

            }

            //if (cardsDB [Index] ["defender"].ToString() == "1") temp_card.GetComponent<card> ().CanAttack = false;
            //if (cardsDB [Index] ["doubledmg"].ToString() == "1") temp_card.GetComponent<card> ().DoubleDamage = true;
            //if (cardsDB [Index] ["takeshalfdmg"].ToString() == "1") temp_card.GetComponent<card> ().TakesHalfDamage = true;

        }
    }