private void NewRound() { m_playersRemaining.Clear(); for (int i = 0; i < m_players.Length; ++i) { if (!m_players[i].activeSelf) { continue; } // add players to remaining players m_playersRemaining.Add(m_players[i]); // reset player position m_players[i].transform.position = m_playerOriginalPositions[i]; // reset player rotation m_players[i].transform.rotation = m_playerOriginalRotations[i]; // reset player velocities m_players[i].GetComponent <Rigidbody>().velocity = Vector3.zero; m_players[i].GetComponent <Rigidbody>().angularVelocity = Vector3.zero; // reset player knockback meter m_players[i].GetComponent <Knockback>().m_fKnockbackMeter = 0.0f; // set kinematic to false m_players[i].GetComponent <Rigidbody>().isKinematic = false; // reset powerups m_players[i].GetComponent <PlayerController>().m_cruiseControl.bFlag = false; m_players[i].GetComponent <PlayerController>().m_cruiseControl.fTimer = 0.0f; m_players[i].GetComponent <Knockback>().m_shield.bFlag = false; m_players[i].GetComponent <Knockback>().m_shield.fTimer = 0.0f; m_players[i].GetComponent <Knockback>().m_shieldSphere.SetActive(false); m_players[i].GetComponent <PlayerController>().m_weaponSize.bFlag = false; m_players[i].GetComponent <PlayerController>().m_weaponSize.fTimer = 0.0f; m_players[i].GetComponent <PlayerController>().m_weapon.transform.localScale = m_players[i].GetComponent <PlayerController>().m_v3BaseWeaponScale; m_players[i].GetComponent <PlayerController>().m_weapon.transform.localPosition = m_players[i].GetComponent <PlayerController>().m_v3BaseWeaponPosition; // reset player status m_players[i].GetComponent <PlayerController>().m_bInCrane = false; m_players[i].GetComponent <PlayerController>().m_bIsOut = false; m_players[i].GetComponent <PlayerController>().StopAttack(); m_players[i].GetComponent <PlayerController>().m_cAttackAmount = 0; m_players[i].GetComponent <PlayerController>().m_smokeParticle.Play(); // set claw to null m_players[i].GetComponent <PlayerController>().m_claw = null; // reset dash timer m_players[i].GetComponent <Dash>().ResetTimer(); } for (int i = 0; i < m_cranes.Length; ++i) { m_cranes[i].GetComponent <CraneManager>().m_bOccupied = false; m_cranes[i].GetComponent <CraneManager>().m_player = null; m_claws[i].transform.localPosition = m_clawOriginalPositions[i]; m_claws[i].transform.localRotation = m_clawOriginalRotations[i]; m_claws[i].GetComponent <Claw>().m_bDropped = false; m_claws[i].GetComponent <Claw>().m_bHasItem = false; GameObject clawBomb = m_claws[i].GetComponent <Claw>().m_item; Destroy(clawBomb); m_claws[i].GetComponent <Claw>().m_item = null; m_claws[i].GetComponent <Claw>().m_bHasPlayer = false; m_claws[i].GetComponent <Claw>().m_pickedUpPlayer = null; m_claws[i].GetComponentInChildren <LineRenderer>().SetPosition(1, Vector3.zero); } // resets the wrecking ball m_wreckingBall.ResetBall(); BombDropper dropperScript = m_bombDropper.GetComponent <BombDropper>(); // reset bombdropper dropperScript.m_blocks.Clear(); dropperScript.AddBlocks(); dropperScript.ResetBlocks(); dropperScript.m_state = BOMBDROPPER_STATE.E_RESETTING; dropperScript.ResetTimers(); dropperScript.transform.position = new Vector3(0.0f, dropperScript.m_fStartYPos, 0.0f); // destroy bomb if there is one if (dropperScript.m_currentBomb) { Destroy(dropperScript.m_currentBomb); } // reset all pickup spawnpoints foreach (var spawnPoint in m_powerupSpawnPoints) { spawnPoint.GetComponent <SpawnPoint>().m_bHasPickup = false; } // destroy all pickups in scene foreach (var pickup in m_pickupManager.GetComponent <PickupManager>().m_spawnedPickups) { Destroy(pickup); } // clear list of pickups m_pickupManager.GetComponent <PickupManager>().m_spawnedPickups.Clear(); // disable all bombs in scene foreach (var bomb in GameObject.FindGameObjectsWithTag("Bomb")) { Destroy(bomb); } }