Exemple #1
0
    void Spawn(int ind, float y)
    {
        Instantiate(TroopAvatar, new Vector3(gameObject.transform.position.x + ((float)Screen.width / 840) * (distance + (ind % 9) * distance), gameObject.transform.position.y - ((float)Screen.height / 473) * y, gameObject.transform.position.z), Quaternion.identity);
        avatars = GameObject.FindGameObjectsWithTag("avatar");

        avatars [avatars.Length - 1].transform.SetParent(overlord.transform.parent);
        avatars [avatars.Length - 1].transform.localScale = new Vector3(1, 1, 1);
        buttonscript       = avatars [avatars.Length - 1].GetComponentInChildren <TroopButton> ();
        buttonscript.order = ind;
        objscript          = troops [ind].GetComponent <ChangelingTroop> ();

        if (objscript.tip == "Villager")
        {
            buttonscript.gameObject.GetComponent <Button> ().spriteState = Changeling;
            buttonscript.gameObject.GetComponent <Image> ().sprite       = Changeling.disabledSprite;
            goto nexte2;
        }
        if (objscript.tip == "Ponies-At-Arms")
        {
            buttonscript.gameObject.GetComponent <Button> ().spriteState = PoniesAtArms;
            buttonscript.gameObject.GetComponent <Image> ().sprite       = PoniesAtArms.disabledSprite;
            goto nexte2;
        }

nexte2:
        objscript.GUILbar             = avatars [avatars.Length - 1].GetComponentInChildren <LifeBar> ();
        objscript.GUILbar.reflectlief = troops [ind].GetComponent <ChangelingTroop> ();

        nexte3 :;
    }
Exemple #2
0
    public void Arrange()
    {
        troops = GameObject.FindGameObjectsWithTag("troopsel");

        if (dirty && avatars != null)
        {
            for (int i = 1; i <= avatars.Length - 1; i++)
            {
                Destroy(avatars [i]);
            }
        }
        more.text = "";

        if (troops.Length == 1)           //Only one troop => details
        {
            Instantiate(TroopAvatar, new Vector3(gameObject.transform.position.x + ((float)Screen.width / 840) * (distance + offsetX), gameObject.transform.position.y - ((float)Screen.height / 473) * offsetY, gameObject.transform.position.z), Quaternion.identity);
            avatars = GameObject.FindGameObjectsWithTag("avatar");

            avatars [avatars.Length - 1].transform.SetParent(overlord.transform.parent);
            avatars [avatars.Length - 1].transform.localScale = new Vector3(1, 1, 1);

            buttonscript       = avatars [avatars.Length - 1].GetComponentInChildren <TroopButton> ();
            buttonscript.order = 0;

            objscript = troops [troops.Length - 1].GetComponent <ChangelingTroop> ();

            if (objscript.specie == 1)
            {
                objscript.FoodCountGUI = avatars [avatars.Length - 1].transform.GetChild(2).gameObject.GetComponentInChildren <Text> ();
                avatars [avatars.Length - 1].transform.GetChild(2).gameObject.GetComponentInChildren <Text> ().text = objscript.food + "";
                avatars [avatars.Length - 1].transform.GetChild(2).gameObject.GetComponentInChildren <Image> ().transform.localScale = new Vector2(0.08f, 0.08f);
            }

            if (objscript.tip == "Villager")
            {
                buttonscript.gameObject.GetComponent <Button> ().spriteState = Changeling;
                buttonscript.gameObject.GetComponent <Image> ().sprite       = Changeling.disabledSprite;
                goto nexte;
            }
            if (objscript.tip == "Ponies-At-Arms")
            {
                buttonscript.gameObject.GetComponent <Button> ().spriteState = PoniesAtArms;
                buttonscript.gameObject.GetComponent <Image> ().sprite       = PoniesAtArms.disabledSprite;
                goto nexte;
            }

nexte:
            objscript.GUILbar             = avatars [avatars.Length - 1].GetComponentInChildren <LifeBar> ();
            objscript.GUILbar.reflectlief = troops [troops.Length - 1].GetComponent <ChangelingTroop> ();
            lifecounttext = avatars [avatars.Length - 1].GetComponentInChildren <GUIlifeCount> ();
            troopname     = avatars [avatars.Length - 1].transform.GetChild(1).GetComponent <Text> ();
            troopname.transform.SetParent(avatars [avatars.Length - 1].transform.GetChild(0).transform.parent);
            lifecounttext.transform.SetParent(avatars [avatars.Length - 1].transform.GetChild(0).transform.parent);

            lifecounttext.lifeorigin = troops [troops.Length - 1].GetComponentInChildren <LifeBar> ();
            lifecounttext.begin();
            troopname.text = objscript.tip;
        }
        else
        {
            if (troops.Length > 27)
            {
                for (int ind = 0; ind <= 8; ind++)
                {
                    Spawn(ind, 0);
                }
                for (int ind = 9; ind <= 17; ind++)
                {
                    Spawn(ind, 30);
                }
                for (int ind = 18; ind <= 25; ind++)
                {
                    Spawn(ind, 60);
                }

                if (troops.Length == 27)
                {
                    Spawn(26, 60);
                }
                else
                {
                    more.text = "+" + (troops.Length - 26) + '\n' + "More";

                    moreobject.transform.position = new Vector3(gameObject.transform.position.x + ((float)Screen.width / 840) * (distance + (26 % 9) * distance), gameObject.transform.position.y - ((float)Screen.height / 473) * 60, gameObject.transform.position.z);
                    moreobject.transform.SetParent(overlord.transform.parent);
                }
                goto ende;
            }
            else if (troops.Length >= 19)
            {
                for (int ind = 0; ind <= 8; ind++)
                {
                    Spawn(ind, 0);
                }
                for (int ind = 9; ind <= 17; ind++)
                {
                    Spawn(ind, 30);
                }
                for (int ind = 18; ind <= troops.Length - 1; ind++)
                {
                    Spawn(ind, 60);
                }

                goto ende;
            }

            if (troops.Length >= 10)
            {
                for (int ind = 0; ind <= 8; ind++)
                {
                    Spawn(ind, 0);
                }
                for (int ind = 9; ind <= troops.Length - 1; ind++)
                {
                    Spawn(ind, 30);
                }
                goto ende;
            }

            for (int ind = 0; ind <= troops.Length - 1; ind++)             //only one Row
            {
                Spawn(ind, 0);
            }
        }
        ende :;
        dirty = true;
    }