Пример #1
0
 void AddElementsOfScene(Transform trans)
 {
     foreach (Transform t in trans)
     {
         if (t.CompareTag("section_elements"))
         {
             Debug.Log("IM HERE");
             ElementInScene eis = t.GetComponent <ElementInScene>();
             if (eis != null)
             {
                 section_elements.Add(eis);
             }
         }
     }
 }
Пример #2
0
    void Start()
    {
        section_elements = new ArrayList();

        foreach (Transform t in transform)
        {
            Debug.Log("IM IN THE FIRST FOR");
            if (t.CompareTag("section_elements"))
            {
                ElementInScene eis = t.GetComponent <ElementInScene>();
                if (eis != null)
                {
                    section_elements.Add(eis);
                }
            }
            if (t != transform)
            {
                AddElementsOfScene(t);
            }
        }

        foreach (ElementInScene eis in section_elements)
        {
            bool instantiated = false;
            while (!instantiated)
            {
                int     x     = Random.Range(0, element_prefabs.Length);
                Element e_tmp = element_prefabs[x].GetComponent <Element>();

                while (!eis.types.Contains(e_tmp.type))
                {
                    x     = Random.Range(0, element_prefabs.Length);
                    e_tmp = element_prefabs[x].GetComponent <Element>();
                }

                if (e_tmp.rank <= rank)
                {
                    if (e_tmp.type != Element_types.EMPTY)
                    {
                        Debug.Log("IM ABOUT TO CREATE A THING");
                        switch (e_tmp.type)
                        {
                        case Element_types.SINGLE_SHOOT_TURRET:
                            if (current_turrets < max_turrets)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                                current_turrets++;
                            }
                            break;

                        case Element_types.AREA_SHOOT_TURRET:
                            if (current_turrets < max_turrets)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                                current_turrets++;
                            }
                            break;

                        case Element_types.WAVE_TURRET:
                            if (current_turrets < max_turrets)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                                current_turrets++;
                            }
                            break;

                        case Element_types.BLUE_LASER:
                            if (current_lasers < max_lasers)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                                current_lasers++;
                            }
                            break;

                        case Element_types.RED_LASER:
                            if (current_lasers < max_lasers)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                            }
                            break;

                        case Element_types.SPIKES_TRAP:
                            if (current_spikes < max_spikes)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                                current_spikes++;
                            }
                            break;

                        case Element_types.TRAP_THAT_TRAPS:
                            if (current_spikes < max_spikes)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                                current_spikes++;
                            }
                            break;

                        case Element_types.SPEED_UP:
                            if (current_boost_zones < max_boost_zones)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                                current_boost_zones++;
                            }
                            break;

                        case Element_types.SHIELD:
                            if (current_boost_zones < max_boost_zones)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                                current_boost_zones++;
                            }
                            break;

                        case Element_types.MINI_RELOAD:
                            if (current_boost_zones < max_boost_zones)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                                current_boost_zones++;
                            }
                            break;

                        case Element_types.LESS_COST:
                            if (current_boost_zones < max_boost_zones)
                            {
                                GenerateElement(e_tmp.gameObject, eis.transform);
                                instantiated = true;
                                current_boost_zones++;
                            }
                            break;
                        }
                    }
                    else
                    {
                        Debug.Log("Empty Spot");
                        instantiated = true;
                    }
                }
            }
        }
    }