public void nukePowerUp(GameObject activatorObj) { activatorObj.GetComponent <Animator>().SetTrigger("Active"); activatorObj.GetComponent <shooting_star>().isMoving = false; flashActive = true; flashing = true; print("nuke activated"); bool audioPlayed = false; Destroy(activatorObj, 1.0f); foreach (var asteroid in FindObjectsOfType(typeof(GameObject)) as GameObject[]) { if (asteroid.tag == "Enemy") // //if (asteroid.name == "asteroid(Clone)") { if (!audioPlayed) { audioPlayed = true; AudioManager.instance.PlaySound(NukeExplosionSound, transform.position); } asteroid_float ast = asteroid.GetComponent <asteroid_float>(); ast.DestroyAsteroid(); } } }
private void spawnAsteroid() { int chooseType = random.Next(1, 11); int randomNumber; GameObject ast; if (chooseType == 1) { ast = Instantiate(threeHitAsteroidPrefab) as GameObject; minimumScale = 0.06f; maximumScale = 0.1f; } else if (chooseType == 2 || chooseType == 3) { ast = Instantiate(wavyAsteroidPrefab) as GameObject; minimumScale = 0.01f; maximumScale = 0.03f; } else if (chooseType == 4) { ast = Instantiate(largeAsteroidPrefab) as GameObject; minimumScale = 0.06f; maximumScale = 0.07f; } else { minimumScale = 0.03f; maximumScale = 0.07f; randomNumber = random.Next(0, 5); asteroidPrefab.GetComponent <SpriteRenderer>().sprite = spriteList[randomNumber]; ast = Instantiate(asteroidPrefab) as GameObject; } Vector2 spawn = new Vector2(0, 0); ast.transform.parent = Asteroids.transform; asteroid_float astScript = ast.GetComponent <asteroid_float>(); ProgressScript prog = gameObject.GetComponent <ProgressScript>(); //Gets the game score from progress script //TODO: this area will most likely simplify upon a major revamp, getting components together //such as spawn_asteroids shouldn't be in camera, but in Game Wrapper - This can happen later if (chooseType == 2 || chooseType == 3) { //astScript.wavy = true; // debugging } if (oldScore + 20 < prog.secondsPassed) { oldScore = prog.secondsPassed; level += 1; asteroidSpeed += 0.35f * level; rate = rate / level; print("Level: " + level); } randomNumber = random.Next(1, 5); if (randomNumber == 1) { spawn = new Vector2(screenBounds.x * 2, UnityEngine.Random.Range(-screenBounds.y, screenBounds.y)); } else if (randomNumber == 2) { spawn = new Vector2(-screenBounds.x * 2, UnityEngine.Random.Range(-screenBounds.y, screenBounds.y)); } else if (randomNumber == 3) { spawn = new Vector2(UnityEngine.Random.Range(-screenBounds.x, screenBounds.x), screenBounds.y * 2); } else if (randomNumber == 4) { spawn = new Vector2(UnityEngine.Random.Range(-screenBounds.x, screenBounds.x), -screenBounds.y * 2); } astScript.speed = asteroidSpeed; ast.transform.position = spawn; float size = UnityEngine.Random.Range(minimumScale, maximumScale); ast.transform.localScale += new Vector3(size, size); }
public void touchControl() { for (int i = 0; i < Input.touchCount; i++) { if (Input.touches[i].phase == TouchPhase.Began && checkIfButtonsHit() == false && Time.timeScale != 0f) { Vector2 touchCoordinates = Camera.main.ScreenToWorldPoint(Input.touches[i].position); GameObject[] listOfAsteroid = GameObject.FindGameObjectsWithTag("Enemy"); GameObject[] powerUps = GameObject.FindGameObjectsWithTag("PowerUP"); bool found = false; print(i + " " + Input.touches[i].phase + Camera.main.ScreenToWorldPoint(Input.touches[i].position)); foreach (GameObject asteroid in listOfAsteroid) { CircleCollider2D myCollider = asteroid.gameObject.GetComponent <CircleCollider2D>(); if (myCollider.OverlapPoint(touchCoordinates)) { // was originally going to select asteroid type based on their script type, but wavy asteroid and regular // asteroids are using the same script if (asteroid.name.Equals("asteroid(Clone)")) { asteroid_float myScript = asteroid.GetComponent <asteroid_float>(); myScript.hit(); found = true; } else if (asteroid.name.Equals("threeHitAsteroid(Clone)")) { ThreeHitAsteroid threeHitAst = asteroid.GetComponent <ThreeHitAsteroid>(); threeHitAst.hit(); found = true; } else if (asteroid.name.Equals("large asteroid(Clone)")) { large_asteroid la = asteroid.GetComponent <large_asteroid>(); la.StartSpawn(); found = true; } else if (asteroid.name.Equals("wavy_asteroid(Clone)")) { asteroid_float myScript = asteroid.GetComponent <asteroid_float>(); myScript.hit(); found = true; } if (found == true) { progress.addScore(5 * multiplier.getScoreMultiplier()); multiplier.IncrementStreak(); break; } } } foreach (GameObject powerUp in powerUps) { CircleCollider2D myCollider = powerUp.gameObject.GetComponent <CircleCollider2D>(); if (myCollider.OverlapPoint(touchCoordinates)) { shooting_star script = powerUp.GetComponent <shooting_star>(); script.onClick(); progress.addScore(5 * multiplier.getScoreMultiplier()); multiplier.IncrementStreak(); found = true; break; } } if (found == false) { multiplier.resetStreakAndMultiplier(); } } } }