void checkIfAreEnemiesNear()
    {
        float            range   = turretStats.GetStatValue(StatType.ATTACKRANGE);
        List <Transform> targets = targetsDetector.GetTargets(range, targetLayer);

        areTargetsInRange = targets.Count > 0;
    }
Example #2
0
    private void detectEnemies()
    {
        float            range   = turretStats.GetStatValue(StatType.ATTACKRANGE);
        List <Transform> targets = targetsDetector.GetTargets(range, enemyLayer);

        targets.RemoveAll((Transform enemy) => TurretUtilities.IsEnemyDying(enemy));
        if (targets.Count > 0)
        {
            Transform nearestTarget = getNearestTarget(targets);
            target    = nearestTarget;
            enemyCol  = target.GetComponent <Collider>();
            hasTarget = true;
        }
    }
    List <Transform> getTargets()
    {
        float            range   = turretStats.GetStatValue(StatType.ATTACKRANGE);
        List <Transform> targets = targetsDetector.GetTargets(range, targetLayer);

        areTargetsInRange = targets.Count > 0;
        selectTargetsWithinTheCone(targets);
        return(targets);
    }
Example #4
0
    private void searchAnotherTarget()
    {
        transform.position = lastEnemyPos;
        float            range   = turretStats.GetStatValue(StatType.PROJECTILERANGE);
        List <Transform> targets = targetsDetector.GetTargets(range, enemyLayer);

        targets.RemoveAll((Transform enemy) => TurretUtilities.IsEnemyDying(enemy));
        Transform target = getNearestTarget(targets);

        if (target != null)
        {
            this.target   = target;
            enemyCol      = target.GetComponent <Collider>();
            lastEnemyPos  = enemyCol.bounds.center;
            isTargetAlive = true;
        }
        else
        {
            disable();
        }
    }
 protected List <Transform> detectTargets(float range)
 {
     return(targetsDetector.GetTargets(range, targetLayer));
 }