示例#1
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (!collision.GetComponent <PlayerAttack>())
        {
            if (Health > 0)
            {
                EnemyDotManager enemy = collision.GetComponent <EnemyDotManager>();
                if (enemy)
                {
                    Health -= (int)enemy.Health;
                    enemySpawner.AliveEnemyCount--;
                    if (Health <= 0)
                    {
                        Destroy(collision.gameObject);
                        StartCoroutine(gameOverManager.GameOver());
                    }
                }

                HealthBoost healthBoost = collision.GetComponent <HealthBoost>();
                if (healthBoost)
                {
                    Health += healthBoost.Health;
                }

                Destroy(collision.gameObject);
            }
            else
            {
                //If game is over, this destroys all game objects except player end node.
                Destroy(collision.gameObject);
            }
        }
    }
示例#2
0
    private void ConfigureNewEnemy(EnemyDotManager newEnemy)
    {
        newEnemy.SpawnHealth = Random.Range(MinEnemyHealth, MaxEnemyHealth);
        newEnemy.SpawnSpeed  = Random.Range(MinEnemySpeed, MaxEnemySpeed);
        float scaleFactor = Random.Range(MinScaleFactor, MaxScaleFactor);

        newEnemy.transform.localScale = new Vector3(scaleFactor, scaleFactor, 1.0f);
    }
示例#3
0
    private void OnTriggerStay2D(Collider2D collision)
    {
        if (collision.GetComponent <PlayerHealth>() && randomFeature != RandomFeature.UnlimitedFuel)
        {
            Fuel = MaxFuel;
        }

        EnemyDotManager enemy = collision.GetComponent <EnemyDotManager>();

        if (Fuel > 0 && enemy)
        {
            enemy.HitMe(Damage);
            Fuel--;
            Score += (int)(Damage * (float)scoreMultiplier);
        }
    }
示例#4
0
    private void SpawnEnemy()
    {
        if (AliveEnemyCount < MaxEnemyCount)
        {
            Vector2 spawnPos = Random.insideUnitCircle.normalized * 8.0f;
            //Transforming spawPos into a rectangle
            spawnPos.x = Mathf.Clamp(spawnPos.x, -4.2f, 4.2f);
            spawnPos.y = Mathf.Clamp(spawnPos.y, -6.5f, 6.5f);

            EnemyDotManager newEnemy = Instantiate(ChooseNewEnemy(),
                                                   spawnPos,
                                                   Quaternion.identity,
                                                   transform).GetComponent <EnemyDotManager>();
            ConfigureNewEnemy(newEnemy);
            AliveEnemyCount++;
            TotalSpawnedEnemies++;
        }
    }