public override void Attack() { for(int i = 0; i < drones.Count; i++) { if (drones[i]) { AttackDrone atk = null; if (drones[i].TryGetComponent(out atk)) { if (enemies.Count > 0) { if (enemies.Peek()) { atk.enemyToAttack = enemies.Peek().gameObject; } else { enemies.Dequeue(); } } } else { atk.enemyToAttack = null; } } } }
public void SpawnDrone() { switch (side) { case -1: if (!drones[0]) { drones.Add(Instantiate(attackDronePrefab, droneSpawnPos1.position, droneSpawnPos1.rotation, null)); } else { drones.Add(Instantiate(attackDronePrefab, droneSpawnPos1.position, droneSpawnPos1.rotation, null)); } break; case 1: if (!drones[0]) { drones.Add(Instantiate(attackDronePrefab, droneSpawnPos2.position, droneSpawnPos2.rotation, null)); } else { drones.Add(Instantiate(attackDronePrefab, droneSpawnPos2.position, droneSpawnPos2.rotation, null)); } break; } droneCount++; for(int i = 0; i < drones.Count; i++) { AttackDrone atk = null; if (drones[i]) { if (drones[i].TryGetComponent(out atk)) { atk.side = side; switch (side) { case -1: atk.idleLocation = droneIdlePos1; break; case 1: atk.idleLocation = droneIdlePos2; break; } } side *= -1; } } }