Beispiel #1
0
    // Start is called before the first frame update
    void Start()
    {
        Application.targetFrameRate = 60;
        enemySpawnerSpt             = EnemyController.GetComponent <EnemySpawnerSpt>();
        enemyMoveSpt = EnemyController.GetComponent <EnemyMoveSpt>();



        //loading stuff goes here

        MapControllerSpt = MapController.GetComponent <MapController>();
        MapControllerSpt.ListWaypoints();

        //_prefab.lane = Enemy.Lane.Lateral;

        enemies = new List <Enemy>();

        for (int i = 0; i < NumberOfEnemies; i++)
        {
            enemies.Add(_prefab);
        }

        StartCoroutine(enemySpawnerSpt.SpawnWave(enemies, 1));

        Time.timeScale = timeScale;
    }
Beispiel #2
0
    protected virtual void CollisionDetection()
    {
        for (int i = 0; i < _hopsPerFrame; i++)
        {
            if (DistanceFromTarget() > _activationDistance)
            {
                Vector3 trajictory = target.transform.position - transform.position;
                trajictory.Normalize();

                transform.Translate(trajictory * _hopDistance, Space.World);
            }
            else
            {
                EnemyMoveSpt.GiveDamage(target, Damage);
                ProjectileEvents.OnHitEnemy.Invoke(this, target);
                Exploded = true;
                break;
            }
        }
    }
Beispiel #3
0
 protected virtual void Shoot()
 {
     shootBehaviour.Shoot(target);
     canShoot = false;
     EnemyMoveSpt.GiveDamage(target, Damage);
 }
Beispiel #4
0
 //new waypoint managment system start
 protected void RequestTarget()
 {
     Target = EnemyMoveSpt.GiveTarget(ref _tracker, _lane, this);
     //Debug.Log("new target is " + Target.position);
 }