예제 #1
0
 // Use this for initialization
 void Start()
 {
     moveSpeed          = waveConfig.GetMoveSpeed();
     waypoints          = waveConfig.GetWaypoints();
     transform.position = waypoints[waypointIndex].transform.position;
 }
예제 #2
0
 // Start is called before the first frame update
 void Start()
 {
     waveWaypoints      = waveConfig.GetWaypoints();
     transform.position = waveWaypoints[0].transform.position;
     waveMoveSpeed      = waveConfig.GetMoveSpeed();
 }
예제 #3
0
 private void Move()
 {
     if (targetPoint <= wayPoints.Count - 1)
     {
         transform.position = Vector3.MoveTowards(transform.position, wayPoints[targetPoint].transform.position, waveConfig.GetMoveSpeed() * Time.deltaTime);
         if (transform.position == wayPoints[targetPoint].transform.position)
         {
             targetPoint++;
         }
     }
     else
     {
         Destroy(gameObject);
     }
 }
예제 #4
0
 private void Move()
 {
     if (wayPoints.Count < 1)
     {
         return;
     }
     if (wayPointIndex <= wayPoints.Count - 1)
     {
         var targetPosition = wayPoints[wayPointIndex].transform.position;
         transform.position = Vector2.MoveTowards(transform.position, targetPosition, waveConfig.GetMoveSpeed() * Time.deltaTime);
         if (transform.position == targetPosition)
         {
             ++wayPointIndex;
         }
     }
     else
     {
         Destroy(gameObject);
     }
 }
예제 #5
0
 private void Move()
 {
     if (waypointIndex <= waypoints.Count - 1)
     {
         var targetPosition = waypoints[waypointIndex].transform.position;
         var tmp            = Vector2.MoveTowards(transform.position, targetPosition, waveConfig.GetMoveSpeed() * Time.deltaTime);
         transform.position = tmp;
         // Debug.Log((transform.position == targetPosition) + " -> current: " + transform.position.z + " target: " + targetPosition.z);
         if (transform.position == targetPosition)
         {
             waypointIndex++;
         }
     }
     else
     {
         Destroy(gameObject);
     }
 }
예제 #6
0
 private void Move()
 {
     if (!waveConfig)
     {
         return;
     }
     if (waypointIndex < waypoints.Count)
     {
         if (transform.position == waypoints[waypointIndex].transform.position)
         {
             waypointIndex++;
         }
         else
         {
             transform.position = Vector2.MoveTowards(transform.position, waypoints[waypointIndex].transform.position, waveConfig.GetMoveSpeed() * Time.deltaTime);
         }
     }
     else
     {
         Destroy(gameObject);
     }
 }
예제 #7
0
 public void SetWaveConfig(WaveConfig waveConfig)
 {
     this.waveConfig = waveConfig;
     moveSpeed       = waveConfig.GetMoveSpeed();
 }
예제 #8
0
    private void Move()
    {
        if (PathLoopPlayingAfterWaveLoop)
        {
            if (pathLoopIndex <= (movementLoop.Count - 1))
            {
                pathPoints = movementLoop[pathLoopIndex].GetPathPoints();

                if (pathPointIndex <= (pathPoints.Count - 1))
                {
                    var targetPosition    = pathPoints[pathPointIndex].transform.position;
                    var movementThisFrame = movementLoop[pathLoopIndex].GetPathMoveSpeed() * Time.deltaTime;
                    transform.position = Vector2.MoveTowards(transform.position, targetPosition, movementThisFrame);

                    if (transform.position == targetPosition)
                    {
                        Special_Movement_for_Boss_peanut();
                        pathPointIndex++;
                    }
                }
                else
                {
                    //SettingPathPointIndex to 0 loops the animation
                    if (IncreaseIndexByOne)
                    {
                        if (pathPointIndex > pathPoints.Count - 1)
                        {
                            pathPointIndex = 0;
                            pathLoopIndex++;
                        }
                    }
                    else if (playSecondPathLoop)
                    {
                        pathLoopIndex      = 0;
                        pathPointIndex     = 0;
                        playSecondPathLoop = false;
                    }
                    else
                    {
                        pathPointIndex = 0;
                    }
                }
            }
            else
            {
                pathLoopIndex  = 0;
                pathPointIndex = 0;
            }
        }
        else if (!PathLoopPlayingAfterWaveLoop)
        {
            if (waypointIndex <= waypoints.Count - 1)
            {
                var targetPosition    = waypoints[waypointIndex].transform.position;
                var movementThisFrame = waveConfig.GetMoveSpeed() * Time.deltaTime;
                transform.position = Vector2.MoveTowards(transform.position, targetPosition, movementThisFrame);

                if (transform.position == targetPosition)
                {
                    waypointIndex++;
                }
            }
            else if (DestroyEndWLoop)
            {
                Destroy(gameObject);
                gameSession.AddDestroyEnemies();
            }
            else
            {
                PathLoopPlayingAfterWaveLoop = true;
            }
        }
        else
        {
            Debug.Log("Check enemy Pathing script. Else option triggered. No code.");
        }
    }
예제 #9
0
 private void Start()
 {
     _waypoints         = _waveConfig.GetWayPoints();
     transform.position = _waypoints[_waypointIndex].transform.position;
     _enemySpeed        = _waveConfig.GetMoveSpeed();
 }
예제 #10
0
    private void Move()
    {
        if (waveConfig == null)
        {
            return;
        }

        if (waypointIndex <= waypoints.Count - 1)
        {
            var targetPosition = waypoints[waypointIndex].transform.position;
            transform.position = Vector2.MoveTowards(transform.position, targetPosition, waveConfig.GetMoveSpeed() * Time.deltaTime);

            if ((transform.position - targetPosition).sqrMagnitude < waypointsThreshold)
            {
                waypointIndex++;
            }
        }
        else
        {
            Destroy(gameObject, 0.1f);
        }
    }
예제 #11
0
 private void Initailize()
 {
     waypoints          = waveConfig.GetWaypoints();
     transform.position = waypoints[waypointIndex].transform.position;
     moveSpeed          = waveConfig.GetMoveSpeed();
 }
예제 #12
0
 // Update is called once per frame
 void Update()
 {
     enemyMovementSpeed = waveConfig.GetMoveSpeed() * Time.deltaTime;
     MovementPattern();
 }
예제 #13
0
    private IEnumerator SpawnAllEnemiesInWave(WaveConfig wc)
    {
        GameObject enemyPrefab = wc.GetEnemy();

        enemyPrefab.GetComponent <Enemy>()
        .SetEnemyParams(wc.GetHP(), wc.GetMinFireRate(), wc.GetMaxFireRate(), wc.GetWayPoint(), wc.GetMoveSpeed());
        for (int i = 0; i < wc.GetEnemyCount(); i++)
        {
            GameObject enemy = Instantiate(enemyPrefab, enemyPrefab.transform.position, Quaternion.identity);

            yield return(new WaitForSeconds(wc.GetSpawnTime()));
        }
    }
예제 #14
0
 void Start()
 {
     waypoints = waveConfig.GetWaypoints();
     moveSpeed = waveConfig.GetMoveSpeed();
 }