Esempio n. 1
0
    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();
            }
        }
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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();
                }
            }
        }
    }