AreaGen.Start C# (CSharp) Method

Start() private method

private Start ( ) : void
return void
    void Start()
    {
        //FindObjectOfType<Main_Process>().GetComponent<Main_Process>().Main_UI_Init(false);

        rnd = new System.Random(System.Guid.NewGuid().GetHashCode());
        AreaNumber = rnd.Next(Min_Area, Max_Area);
        int AreaXCoord = 0;
        int AreaYCoord = 1;
        int AreaZCoord = 1;
        Quaternion weather = Quaternion.AngleAxis(90, Vector3.right);

        GameObject temp;

        GameObject background = (GameObject)Resources.Load(Biome.Backgrounds[(int)ActiveBiomeName,0], typeof(GameObject));

        AreaLog = new GameObject[AreaNumber, Max_Enemy];
        AreaID = new int[AreaNumber];
        EnemyNumber = new int[AreaNumber];

        Instantiate(Resources.Load("LevelObjects/Left Limit", typeof(GameObject)), new Vector3(-5,0,0), transform.rotation);

        for (int i = 0; i < AreaNumber; i++)
        {
            Instantiate(Resources.Load("LevelObjects/3DFloorB", typeof(GameObject)), new Vector3((AreaXCoord + i) * 40, AreaYCoord, AreaZCoord), transform.rotation);
            Instantiate(Resources.Load("LevelObjects/Front Limit", typeof(GameObject)), new Vector3((AreaXCoord + i) * 40, AreaYCoord, 11), transform.rotation); //set front limits
            Instantiate(Resources.Load("LevelObjects/Back Limit", typeof(GameObject)), new Vector3((AreaXCoord + i) * 40, AreaYCoord, -8), transform.rotation); //set back limits
            AreaID[i] = Instantiate(Resources.Load("LevelObjects/Right Limit", typeof(GameObject)), new Vector3((AreaXCoord + i) * 40 + 20, 0, 0), transform.rotation).GetInstanceID();

            t_length += 40;

            if (Weather != null)
            {
                weatherObject = Instantiate(Weather, new Vector3((AreaXCoord + i) * 40, 50, -8), Quaternion.identity) as GameObject;
                weatherObject.transform.eulerAngles = new Vector3(77, 180, 180);
            }

            if (background!=null)
            Instantiate(background, new Vector3((AreaXCoord + i) * 40, 5, 13), transform.rotation);
               if((int)ActiveBiomeName== 0)
                    {
                    objects[0] = (Texture)Resources.Load(Biome.Backgrounds[(int)ActiveBiomeName, 1], typeof(Texture));
                    if(objects[0]!=null)
                    Instantiate(objects[0], new Vector3((AreaXCoord + i) * 40, AreaYCoord, 2), transform.rotation);
                    //Debug.Log(objects[0].name);
            }

            // Debug.Log("Recurrssion: " + i);
            int EnemySize = rnd.Next(Min_Enemy, Max_Enemy);
            EnemyNumber[i] = EnemySize;

           // Debug.Log("EnemySize: " + EnemySize);
            int[] EnemyTypeArray = new int[EnemySize];
            double[] arrayX = new double[EnemySize];
            double[] arrayZ = new double[EnemySize];

                for (int m = 0; m < EnemySize; m++) //creates enemy types
                {
                    int testType = rnd.Next(0, 2);

                    EnemyTypeArray[m] = testType;
                   // Debug.Log("EnemyTypeArray at value" + m + "::" + EnemyTypeArray[m]);
                }

                //////////////////////////
                double testtemp;
                for (int m = 0; m < EnemySize; m++) //This loop gets us our X coordinates
                {
                    testtemp = rnd.NextDouble(); //our X value
                    for (int n = 0; n < EnemySize; n++)//dummy test
                    {
                        if (arrayX[n] == testtemp)
                        {
                            --m;
                            testtemp = 0;
                            n = EnemySize;
                        }
                        if (n == EnemySize - 1)
                            arrayX[m] = testtemp;
                    }
                }

                ////////////////////
                for (int m = 0; m < EnemySize; m++) //This loop gets us our Z coordinates
                {
                    testtemp = rnd.NextDouble(); //our Z value
                    for (int n = 0; n < EnemySize; n++) //dummy test
                    {
                        if (arrayZ[n] == testtemp)
                        {
                            --m;
                            testtemp = 0;
                            n = EnemySize;
                        }
                        if (n == EnemySize - 1)
                            arrayZ[m] = testtemp;
                    }
                }
                ///////////////////////////

                for (int m = 0; m < EnemySize; m++)
                {
                Debug.Log("Created enemy number: " + EnemySize + " succesffuly!");
                    temp = (GameObject)(Resources.Load((string)Biome.EnemyList[(int)ActiveBiomeName, EnemyTypeArray[m]], typeof(GameObject)));
                    if (temp!=null)
                    AreaLog[i, m] = (GameObject)Instantiate(temp, new Vector3((float)(arrayX[m]*rnd.Next(1,5)+15+ (40 * i)), 5, (float)arrayZ[m]*rnd.Next(-7,10)), transform.rotation);

            }

                if (i == AreaNumber-1)
                {

                if (Boss != null)
                {

                    BossID = Instantiate(Boss, new Vector3((15 + (40 * i)), 5, AreaZCoord), transform.rotation).GetInstanceID();

                }
                }

            } //END OF PART GENERATION

        temp = (GameObject)(Resources.Load("LevelObjects/Barrel", typeof(GameObject)));

        for (int i=0; i< Total_Objects; i++)
            {
            double[] arrayX = new double[Total_Objects];
            double[] arrayZ = new double[Total_Objects];
            //////////////////////////
            double testtemp;
            for (int m = 0; m < Total_Objects; m++) //This loop gets us our X coordinates
            {
                testtemp = rnd.Next(10, t_length-20); //our X value
                for (int n = 0; n < Total_Objects; n++)//dummy test
                {
                    if (arrayX[n] == testtemp)
                    {
                        --m;
                        testtemp = 0;
                        n = Total_Objects;
                    }
                    if (n == Total_Objects - 1)
                        arrayX[m] = testtemp;
                }
            }

            ////////////////////
            for (int m = 0; m < Total_Objects; m++) //This loop gets us our Z coordinates
            {
                testtemp = rnd.Next(-4, 4); //our Z value
                for (int n = 0; n < Total_Objects; n++) //dummy test
                {
                    if (arrayZ[n] == testtemp)
                    {
                        --m;
                        testtemp = 0;
                        n = Total_Objects;
                    }
                    if (n == Total_Objects - 1)
                        arrayZ[m] = testtemp;
                }
            }

            if (temp!=null)
            Instantiate(temp, new Vector3(((float)arrayX[i])*rnd.Next(10,20)+5, 2.5f, (float)arrayZ[i]*rnd.Next(-7,7)), transform.rotation);

        }

        Instantiate(Resources.Load("LevelObjects/End Limit", typeof(GameObject)), new Vector3((t_length)-20, AreaYCoord, AreaZCoord), transform.rotation);
    }