private script_cannon select_cannon() { if (m_speedy_round) { c_index = 0; foreach (script_cannon cannon in m_cannons) { if (cannon != m_selected_cannon) { c_cannon_selection_pool[c_index] = cannon; c_index++; if (c_index == 2) { break; } } } c_selected_cannon = c_cannon_selection_pool[Random.Range(0, c_cannon_selection_pool.Length)]; } else { c_selected_cannon = m_cannons[Random.Range(0, 3)]; } return(c_selected_cannon); }
IEnumerator Shoot_Puck() { while (true) { //select cannon //m_selected_cannon = m_cannons[1]; m_selected_cannon = select_cannon(); m_selected_cannon.Shoot_prepare(); yield return(new WaitForSeconds(0.4f)); m_selected_cannon.Shoot_play_sound(); yield return(new WaitForSeconds(0.2f)); //puck fire m_goal_collider_exit.enabled = false; m_selected_cannon.Shoot(m_pucks[m_current_puck]); m_goal_collider_exit.enabled = true; Game_Event("count shots"); //handle puck array index m_current_puck++; if (m_current_puck > m_pucks.Length - 1) { m_current_puck = 0; } //delay yield return(new WaitForSeconds(m_shoot_frequency)); } }
void Awake() { m_ui_world = GameObject.Find("World Canvas").GetComponent <script_manager_ui_world>(); m_cannon_center = GameObject.Find("Cannon C").GetComponent <script_cannon>(); m_cannon_left = GameObject.Find("Cannon L").GetComponent <script_cannon>(); m_cannon_right = GameObject.Find("Cannon R").GetComponent <script_cannon>(); m_cannons[0] = m_cannon_center; m_cannons[1] = m_cannon_left; m_cannons[2] = m_cannon_right; shoot_coroutine = Shoot_Puck(); m_manager_audio = GetComponent <script_manager_audio>(); m_memory_bank = GetComponent <script_memory_bank>(); }