public void SetupNewEnemy(CreateEnemy enemy, GameObject spawnArea = null) { if (spawnArea == null) { int i = Random.Range(0, spawnAreas.Length); spawnArea = spawnAreas[i]; } Vector3 spawnPosition = GetSpawnPosition(spawnArea); enemy.transform.position = spawnPosition; enemy.transform.parent = this.transform; EnemyMovementController enemyMovementController = enemy.movementController; if (spawnArea.name == "Left") { enemyMovementController.movementDirection = Vector3.right; } else if (spawnArea.name == "Right") { enemyMovementController.movementDirection = Vector3.left; } else if (spawnArea.name == "Top") { enemyMovementController.movementDirection = Vector3.down; } else if (spawnArea.name == "Bottom") { enemyMovementController.movementDirection = Vector3.up; } }
public void SpawnRandomEnemy() { float v = Random.value; CreateEnemy enemy; if (v >= 0.5f) { enemy = CreateEnemy.GetNewPrimitive(); } else if (v >= 0.2f) { enemy = CreateEnemy.GetNewSplitter(); } else { enemy = CreateEnemy.GetNewShooter(); } this.SetupNewEnemy(enemy); this.currentEnemiesAmount++; this.totalEnemiesAmount++; }
private void OnDestoryEnemy(object sender, GameObject gameObject) { Type t = gameObject.GetType(); if (t != typeof(SmallAsteroid)) { EnemiesCount--; if (gameObject is Asteroid) { int smallAsteroids = _rnd.Next(2, 4); for (int i = 0; i < smallAsteroids; i++) { CreateEnemy?.Invoke(gameObject.Pivot, EnemyType.SmallAsteroid); } } EnemyType enemyType = ChoseEnemyType(); if (EnemiesCount < _maxEnemiesInScene) { AddEnemyToSpawnQueue(enemyType, _rnd.Next(0, _maxSpawnDelayTime)); } } }
//public Transform muzzle; void Start () { // Shoot(); _lane = FindObjectOfType<Lane>(); _lanePos = _lane.GetLaneList(); createEnemy = FindObjectOfType<CreateEnemy>(); player = FindObjectOfType<PlayerScript>(); }
public void UpdateStats(CreateEnemy type) { coinsMax = type.dropCoinMax; coinsMin = type.dropCoinMin; damage = type.Damage; speed = type.speed; maxHealth = type.Health; health = maxHealth; GetComponent <SpriteRenderer>().sprite = type.sprite; }
public void SpawnRandomEnemy() { // TODO : Randomize CreateEnemy enemy; enemy = CreateEnemy.GetNewPrimitive(); this.SetupNewEnemy(enemy); this.currentEnemiesAmount++; this.totalEnemiesAmount++; }
public void Update() { foreach (var spawingEnemy in _spawingEnemies) { if (spawingEnemy.TimeToSpawn <= 0) { CreateEnemy?.Invoke(this, spawingEnemy.EnemyType); _removingEnemies.Add(spawingEnemy); } else { spawingEnemy.TimeToSpawn--; } } CheckRemoving(); }