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); } } } }
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; } } } } }