コード例 #1
0
    // Update is called once per frame
    void Update()
    {
        MoveUsingDFS mus = gameObject.GetComponent <MoveUsingDFS> ();

        if (mus.i % 3 == 0 && mus.stop)
        {
            if ((mus.i + 3) < mus.wayPoints.Count)
            {
                int n = mus.i + Random.Range(1, 3);
                selectEnemy = Random.Range(0, minions.Length);
                GameObject eO = (GameObject)Instantiate(minions[selectEnemy], mus.wayPoints[n].transform.position,
                                                        Quaternion.identity);
                NewSpawnWaves nsw = GameObject.FindGameObjectWithTag("GameController").GetComponent <NewSpawnWaves>();
                nsw.numEnemiesRemaining++;

                //eO.GetComponent<EnemyStats>().mSpeed = eO.GetComponent<EnemyStats>().mSpeed;
                //eO.GetComponent<EnemyStats>().mHealth = eO.GetComponent<EnemyStats>().mHealth;


                MoveUsingDFS mud = eO.GetComponent <MoveUsingDFS>();
                mud.wayPoints   = gameObject.GetComponent <MoveUsingDFS>().wayPoints;
                mud.fromSpawner = true;
                mud.i           = n;
            }
        }
    }
コード例 #2
0
    void SpawnEnemy()
    {
        if (numEnemies > 0)
        {
            if (spawnDuration <= 0.0f)
            {
                if (selectEnemy < enemy.Length - 1)
                {
                    Instantiate(enemy[selectEnemy], startPoint, Quaternion.identity);
                }
                else
                {
                    Instantiate(enemy[selectEnemy], new Vector3(Random.Range(85.0f, 100.0f), Random.Range(0, 20),
                                                                Random.Range(-50, 50)), Quaternion.identity);
                }
                numEnemies--;
                numEnemiesRemaining++;

                //Debug.Log (numEnemiesRemaining);
                spawnDuration = spawnTime;
            }
            spawnDuration -= Time.deltaTime;
            //Debug.Log(numEnemies);
        }
        else
        {
            selectEnemy   = Random.Range(0, enemy.Length);
            numEnemies    = initEnemies;
            spawnDuration = 7.0f;
        }
        if (waveNo == 1 || waveNo % 2 == 0)
        {
            if (newEnem > 0)
            {
                if (outsideSpawnDuration <= 0.0f)
                {
                    newEnem--;
                    Buy_Shoot_Modes bsm = theGC.GetComponent <Buy_Shoot_Modes>();
                    GameObject      eO  = (GameObject)Instantiate(enemyOut, new Vector3(95.0f, 0.0f, 15.0f),
                                                                  Quaternion.identity);
                    MoveUsingDFS mud = eO.GetComponent <MoveUsingDFS>();
                    mud.wayPoints = bsm.thePath;
                    Debug.Log(bsm.thePath.Count);
                    numEnemiesRemaining++;
                    outsideSpawnDuration = outSpawnTime;
                }
                outsideSpawnDuration -= Time.deltaTime;
            }
            else
            {
                newEnem = initEnemies / 2;
                outsideSpawnDuration = 7.0f;
            }
        }
        //i'll clean this up later and make it a function
        if (waveNo == 1 || waveNo % 3 == 0)
        {
            if (newEnem1 > 0)
            {
                if (outsideSpawnDuration1 <= 0.0f)
                {
                    newEnem1--;
                    Buy_Shoot_Modes bsm = theGC.GetComponent <Buy_Shoot_Modes>();
                    GameObject      eO  = (GameObject)Instantiate(enemyOut, new Vector3(95.0f, 0.0f, -45.0f),
                                                                  Quaternion.identity);
                    MoveUsingDFS mud = eO.GetComponent <MoveUsingDFS>();
                    mud.wayPoints = bsm.thePath2;
                    Debug.Log(mud.wayPoints.Count);
                    numEnemiesRemaining++;
                    outsideSpawnDuration1 = outSpawnTime1;
                }
                outsideSpawnDuration1 -= Time.deltaTime;
            }
            else
            {
                newEnem1 = initEnemies / 2;
                outsideSpawnDuration1 = 7.0f;
            }
        }
    }
コード例 #3
0
    IEnumerator SpawnOutsideWavesBottom(float waveDur, int enemyCount, float hMult, float sMult,
                                        float waveWaitTime, float spawnWaitTime)
    {
        Debug.Log("OUTSIDE WAVE BOTTOM");
        yield return(new WaitForSeconds(startWait));

        waveDur -= startWait;
        waveDur -= Time.deltaTime;
        while (waveDur >= 0)
        {
            yield return(new WaitForSeconds(waveWaitTime));

            waveDur -= waveWaitTime;
            if (waveDur < 0)
            {
                break;
            }
            if (gameObject.GetComponent <Buy_Shoot_Modes>().gameover)
            {
                break;
            }
            for (int i = 0; i < enemyCount; i++)
            {
                numEnemiesRemaining++;
                int selectEnemy = 0;
                if (waveNo < 5)
                {
                    selectEnemy = Random.Range(0, enemy.Length - 2);
                }
                else
                {
                    selectEnemy = Random.Range(0, enemy.Length);
                }
                GameObject eO;
                if (selectEnemy < outEnemy.Length - 2)
                {
                    eO = (GameObject)Instantiate(outEnemy[selectEnemy], new Vector3(95.0f, 0.0f, -45.0f), Quaternion.identity);
                }
                else
                {
                    if (selectEnemy == outEnemy.Length - 1)
                    {
                        eO = (GameObject)Instantiate(outEnemy[selectEnemy], new Vector3(Random.Range(85.0f, 100.0f), Random.Range(15.0f, 20.0f),
                                                                                        Random.Range(-50.0f, 50.0f)), Quaternion.identity);
                    }
                    else
                    {
                        eO = (GameObject)Instantiate(outEnemy[selectEnemy], new Vector3(Random.Range(85.0f, 100.0f), Random.Range(10.0f, 15.0f),
                                                                                        Random.Range(-50, 50)), Quaternion.identity);
                    }
                }
                eO.GetComponent <EnemyStats>().mSpeed  = sMult * eO.GetComponent <EnemyStats>().mSpeed;
                eO.GetComponent <EnemyStats>().mHealth = hMult * eO.GetComponent <EnemyStats>().mHealth;


                if (selectEnemy < outEnemy.Length - 2)
                {
                    Buy_Shoot_Modes bsm = theGC.GetComponent <Buy_Shoot_Modes>();
                    MoveUsingDFS    mud = eO.GetComponent <MoveUsingDFS>();
                    mud.wayPoints = bsm.thePath2;
                }
                if (i == enemyCount / 2 || i == 1 || i == enemyCount - 2)
                {
                    int chanceOfBoss = Random.Range(0, 9);
                    if (chanceOfBoss == 0)
                    {
                        Debug.Log("THERE'S A BOSS INCOMING");
                        int selectBaws = Random.Range(0, boss.Length);
                        if (selectBaws < boss.Length - 1)
                        {
                            GameObject      eo  = (GameObject)Instantiate(boss[selectBaws], new Vector3(95.0f, 0.0f, -45.0f), Quaternion.identity);
                            Buy_Shoot_Modes bsm = theGC.GetComponent <Buy_Shoot_Modes>();
                            MoveUsingDFS    mud = eo.GetComponent <MoveUsingDFS>();
                            mud.wayPoints        = bsm.thePath2;
                            numEnemiesRemaining += eo.GetComponent <BossBase> ().numEnemiesReq;
                        }
                        else
                        {
                            GameObject eo = (GameObject)Instantiate(boss[selectBaws], new Vector3(95.0f, 15.0f, -45.0f), Quaternion.identity);
                            numEnemiesRemaining += eo.GetComponent <BossBase> ().numEnemiesReq;
                        }
                    }
                }
                yield return(new WaitForSeconds(spawnWaitTime));

                waveDur -= spawnWaitTime;
                waveDur -= Time.deltaTime;
                if (waveDur < 0)
                {
                    break;
                }
                if (gameObject.GetComponent <Buy_Shoot_Modes>().gameover)
                {
                    break;
                }
            }
        }
        //waveCompleted++;
    }