예제 #1
0
파일: CardUI.cs 프로젝트: kenning/popul-vuh
    /// A very long and boring initialize method
    public void Initialize(bool alreadyDiscarded)
    {
        //TODO do i need alreadyDiscarded here?
        card = gameObject.GetComponent <Card> ();

        PlayButton    = GameObject.Find("play end button").GetComponent <ButtonAnimate>();
        meshrenderers = GetComponentsInChildren <MeshRenderer>();
        SRenderers    = gameObject.GetComponentsInChildren <SpriteRenderer>();
//		CardBackSprite = Resources.Load("sprites/cards/real pixel card back") as Sprite;
        discardPileObj = GameObject.Find("Discard pile");

        TextMesh[] textMeshes = gameObject.GetComponentsInChildren <TextMesh>();
        foreach (TextMesh text in textMeshes)
        {
            if (text.gameObject.name == "name text")
            {
                text.fontSize = SmallCardTitleFontSize;
                text.text     = card.DisplayName;
            }
            else
            {
                text.fontSize = SmallCardRulesFontSize;
                text.text     = card.MiniDisplayText;
            }

            if (card.God == ShopControl.Gods.Ekcha | card.God == ShopControl.Gods.Ixchel)
            {
                text.color = new Color(1, 1, 1);
            }
        }

        CardText[]       cardTexts = gameObject.GetComponentsInChildren <CardText>();
        SpriteRenderer[] renders   = gameObject.GetComponentsInChildren <SpriteRenderer>();
        foreach (SpriteRenderer render in renders)
        {
            if (render.gameObject.tag == "cardback")
            {
                continue;
            }
            else if (render.gameObject.name == "picture")
            {
                if (card.IconPath != "")
                {
                    render.sprite = Resources.Load <Sprite>(card.IconPath);
                }
            }
            else if (render.gameObject.name == "rarity")
            {
                switch (card.ThisRarity)
                {
                case Card.Rarity.Gold:
                    render.sprite = S.ShopControlGUIInst.Gold;
                    break;

                case Card.Rarity.Silver:
                    render.sprite = S.ShopControlGUIInst.Silver;
                    break;

                case Card.Rarity.Bronze:
                    render.sprite = S.ShopControlGUIInst.Bronze;
                    break;

                case Card.Rarity.Paper:
                    render.sprite = S.ShopControlGUIInst.Paper;
                    break;
                }
            }
            else if (render.gameObject.name == "god icon")
            {
                int godnum = ShopControl.AllGods.IndexOf(card.God);

                render.sprite = S.ShopControlGUIInst.SpriteGodIcons[godnum];
            }
            else if (render.gameObject.name == "shine animation")
            {
                ShineAnim = render.gameObject.GetComponent <ShineAnimation>();
            }
            else if (render.gameObject.name == "shine animation 2")
            {
                continue;
            }
            else if (render.gameObject.name == "glow")
            {
                Glow = render.gameObject.GetComponent <SpriteRenderer>();
            }
            else if (render.gameObject.name == "aoe icon" | render.gameObject.name == "range icon")
            {
                string resourceLoadTarget = "sprites/targeting icons/";
                float  baseIconSize       = 2.4f;
                if (render.gameObject.name == "range icon")
                {
                    if (card.rangeTargetType == GridControl.TargetTypes.none)
                    {
                        continue;
                    }
                    resourceLoadTarget += ("range " + card.rangeTargetType.ToString() +
                                           " " + card.minRange.ToString() + "-" + card.maxRange.ToString());
                    baseIconSize = baseIconSize / (card.maxRange * 2 + 1);
                }
                else if (render.gameObject.name == "aoe icon")
                {
                    if (card.aoeTargetType == GridControl.TargetTypes.none)
                    {
                        continue;
                    }
                    resourceLoadTarget += ("aoe " + card.aoeTargetType.ToString() +
                                           " " + card.aoeMinRange.ToString() + "-" + card.aoeMaxRange.ToString());
                    baseIconSize = baseIconSize / (card.aoeMaxRange * 2 + 1);
                }
                render.sprite = Resources.Load <Sprite>(resourceLoadTarget);

                render.gameObject.transform.localScale = new Vector3(baseIconSize, baseIconSize, 0);
            }
            else if (render.gameObject.name != "picture")
            {
                int godnum = 3;
                godnum = ShopControl.AllGods.IndexOf(card.God);

                render.sprite = S.ShopControlGUIInst.GodSmallCards[godnum];
            }
        }
        foreach (CardText cardText in cardTexts)
        {
            cardText.Initialize(101 - card.HandIndex() * 2);
        }

        //Sets up font sizes
        string[] words             = card.CardName.Split(' ');
        int      longestWordLength = words [0].Length;

        for (int i = 0; i < words.Length; i++)
        {
            if (words[i].Length > longestWordLength)
            {
                longestWordLength = words[i].Length;
            }
        }
        if (longestWordLength > FontVariableMaxTitleWordLength)
        {
            SmallCardTitleFontSize = SmallCardTitleFontSize * FontVariableMaxTitleWordLength / longestWordLength;
            DisplayTitleFontSize   = DisplayTitleFontSize * FontVariableMaxTitleWordLength / longestWordLength;
        }

        if (card.DisplayText.Length > FontVariableMaxRulesLength)
        {
            // ultimate font size = maxlength - (difference * ratio)
            DisplayRulesFontSize = DisplayRulesFontSize - ((card.DisplayText.Length - FontVariableMaxRulesLength) / SmallCardFontVariableRulesSizeRatio);
        }
        if (card.MiniDisplayText.Length > FontVariableMaxMiniRulesLength)
        {
            SmallCardRulesFontSize = SmallCardRulesFontSize - ((card.DisplayText.Length - FontVariableMaxRulesLength) / DisplayFontVariableRulesSizeRatio);
        }
    }
예제 #2
0
파일: CardUI.cs 프로젝트: kenning/popul-vuh
    /// A very long and boring initialize method
    public void Initialize(bool alreadyDiscarded)
    {
        //TODO do i need alreadyDiscarded here?
        card = gameObject.GetComponent<Card> ();

        PlayButton = GameObject.Find("play end button").GetComponent<ButtonAnimate>();
        meshrenderers = GetComponentsInChildren<MeshRenderer>();
        SRenderers = gameObject.GetComponentsInChildren<SpriteRenderer>();
        //		CardBackSprite = Resources.Load("sprites/cards/real pixel card back") as Sprite;
        discardPileObj = GameObject.Find("Discard pile");

        TextMesh[] textMeshes = gameObject.GetComponentsInChildren<TextMesh>();
        foreach(TextMesh text in textMeshes) {
            if(text.gameObject.name == "name text") {
                text.fontSize = SmallCardTitleFontSize;
                text.text = card.DisplayName;
            }
            else {
                text.fontSize = SmallCardRulesFontSize;
                text.text = card.MiniDisplayText;
            }

            if(card.God == ShopControl.Gods.Ekcha | card.God == ShopControl.Gods.Ixchel) {
                text.color = new Color(1, 1, 1);
            }
        }

        CardText[] cardTexts = gameObject.GetComponentsInChildren<CardText>();
        SpriteRenderer[] renders = gameObject.GetComponentsInChildren<SpriteRenderer>();
        foreach(SpriteRenderer render in renders) {
            if (render.gameObject.tag == "cardback") { continue; }
            else if (render.gameObject.name == "picture")
            {
                if (card.IconPath != "")
                {
                    render.sprite = Resources.Load<Sprite>(card.IconPath);
                }
            }
            else if (render.gameObject.name == "rarity")
            {
                switch (card.ThisRarity)
                {
                case Card.Rarity.Gold:
                    render.sprite = S.ShopControlGUIInst.Gold;
                    break;
                case Card.Rarity.Silver:
                    render.sprite = S.ShopControlGUIInst.Silver;
                    break;
                case Card.Rarity.Bronze:
                    render.sprite = S.ShopControlGUIInst.Bronze;
                    break;
                case Card.Rarity.Paper:
                    render.sprite = S.ShopControlGUIInst.Paper;
                    break;
                }
            }
            else if (render.gameObject.name == "god icon")
            {
                int godnum = ShopControl.AllGods.IndexOf(card.God);

                render.sprite = S.ShopControlGUIInst.SpriteGodIcons[godnum];
            }
            else if (render.gameObject.name == "shine animation")
            {
                ShineAnim = render.gameObject.GetComponent<ShineAnimation>();
            }
            else if (render.gameObject.name == "shine animation 2") { continue; }
            else if (render.gameObject.name == "glow")
            {
                Glow = render.gameObject.GetComponent<SpriteRenderer>();
            }
            else if (render.gameObject.name == "aoe icon" | render.gameObject.name == "range icon" )
            {
                string resourceLoadTarget = "sprites/targeting icons/";
                float baseIconSize = 2.4f;
                if(render.gameObject.name == "range icon")
                {
                    if(card.rangeTargetType == GridControl.TargetTypes.none)
                        continue;
                    resourceLoadTarget += ("range " + card.rangeTargetType.ToString() +
                                          " " + card.minRange.ToString() + "-" + card.maxRange.ToString());
                    baseIconSize = baseIconSize / (card.maxRange*2+1);
                }
                else if(render.gameObject.name == "aoe icon")
                {
                    if(card.aoeTargetType == GridControl.TargetTypes.none)
                        continue;
                    resourceLoadTarget += ("aoe " + card.aoeTargetType.ToString() +
                                           " " + card.aoeMinRange.ToString() + "-" + card.aoeMaxRange.ToString());
                    baseIconSize = baseIconSize / (card.aoeMaxRange*2+1);
                }
                render.sprite = Resources.Load<Sprite>(resourceLoadTarget);

                render.gameObject.transform.localScale = new Vector3(baseIconSize, baseIconSize, 0);
            }
            else if (render.gameObject.name != "picture")
            {
                int godnum = 3;
                godnum = ShopControl.AllGods.IndexOf(card.God);

                render.sprite = S.ShopControlGUIInst.GodSmallCards[godnum];
            }
        }
        foreach (CardText cardText in cardTexts) cardText.Initialize(101 - card.HandIndex() * 2);

        //Sets up font sizes
        string[] words = card.CardName.Split (' ');
        int longestWordLength = words [0].Length;
        for (int i = 0; i < words.Length; i++) {
            if(words[i].Length > longestWordLength) longestWordLength = words[i].Length;
        }
        if (longestWordLength > FontVariableMaxTitleWordLength) {
            SmallCardTitleFontSize = SmallCardTitleFontSize*FontVariableMaxTitleWordLength/longestWordLength;
            DisplayTitleFontSize = DisplayTitleFontSize*FontVariableMaxTitleWordLength/longestWordLength;
        }

        if (card.DisplayText.Length > FontVariableMaxRulesLength) {
            // ultimate font size = maxlength - (difference * ratio)
            DisplayRulesFontSize = DisplayRulesFontSize -  ((card.DisplayText.Length - FontVariableMaxRulesLength) / SmallCardFontVariableRulesSizeRatio);
        }
        if (card.MiniDisplayText.Length > FontVariableMaxMiniRulesLength) {
            SmallCardRulesFontSize = SmallCardRulesFontSize - ((card.DisplayText.Length - FontVariableMaxRulesLength) / DisplayFontVariableRulesSizeRatio);
        }
    }