public void Update() { ListReadOnly <EnemyDeathComponent> enemyDeathComponents = entityDatabase.QueryTypes <EnemyDeathComponent>(); if (enemyDeathComponents.Count == 0) { return; } IEnemyData enemyData = entityDatabase.QueryType <GameDataComponent>().gameData.enemyData; for (int i = enemyDeathComponents.Count - 1; i >= 0; --i) { EnemyDeathComponent enemyDeathComponent = enemyDeathComponents[i]; Entity entity = enemyDeathComponent.entity; Transform transform = entity.GetComponent <TransformComponent>().transform; transform.Translate(-Vector3.up * enemyData.sinkSpeed * Time.deltaTime); enemyDeathComponent.timer -= Time.deltaTime; if (enemyDeathComponent.timer < 0) { GameObject.Destroy(transform.gameObject); entityDatabase.DestroyEntity(entity); } } }
public void Update() { ListReadOnly <EnemyComponent> enemyComponents = entityDatabase.QueryTypes <EnemyComponent>(); if (enemyComponents.Count == 0) { return; } Entity playerEntity = entityDatabase.QueryEntity <PlayerComponent>(); Transform playerTransform = playerEntity.GetComponent <TransformComponent>().transform; var enumerator = enemyComponents.GetEnumerator(); while (enumerator.MoveNext()) { EnemyComponent enemyComponent = enumerator.Current; if (enemyComponent.currentHealth > 0 && !playerEntity.HasTag(Tag.Dead)) { enemyComponent.nav.SetDestination(playerTransform.position); } else { enemyComponent.nav.enabled = false; } } }
public void Update() { ListReadOnly <EnemyComponent> enemyComponents = entityDatabase.QueryTypes <EnemyComponent>(); if (enemyComponents.Count == 0) { return; } Entity playerEntity = entityDatabase.QueryEntity <PlayerComponent>(); GameObject playerObject = playerEntity.GetComponent <TransformComponent>().transform.gameObject; var enumerator = enemyComponents.GetEnumerator(); while (enumerator.MoveNext()) { EnemyComponent enemyComponent = enumerator.Current; enemyComponent.attackTimer += Time.deltaTime; if (enemyComponent.attackTimer >= enemyComponent.enemyDO.timeBetweenAttacks && enemyComponent.trigger.isColliding(playerObject) && enemyComponent.currentHealth > 0) { Attack(enemyComponent, playerEntity); } if (playerEntity.HasTag(Tag.Dead)) { enemyComponent.anim.SetTrigger("PlayerDead"); } } }
public void Update() { ListReadOnly <EnemyDamageComponent> enemyDamageComponent = entityDatabase.QueryTypes <EnemyDamageComponent>(); if (enemyDamageComponent.Count == 0) { return; } for (int i = enemyDamageComponent.Count - 1; i >= 0; --i) { EnemyDamageComponent damageComponent = enemyDamageComponent[i]; Entity entity = damageComponent.entity; EnemyComponent enemyComponent = entity.GetComponent <EnemyComponent>(); enemyComponent.audioSource.Play(); enemyComponent.hitParticles.transform.position = damageComponent.hitPoint; enemyComponent.hitParticles.Play(); enemyComponent.currentHealth -= damageComponent.amount; if (enemyComponent.currentHealth <= 0) { Death(enemyComponent); } entity.RemoveComponent <EnemyDamageComponent>(); } }
public void Update() { ListReadOnly <EnemySpawnerComponent> enemySpawnerComponents = entityDatabase.QueryTypes <EnemySpawnerComponent>(); var enumerator = enemySpawnerComponents.GetEnumerator(); while (enumerator.MoveNext()) { EnemySpawnerComponent enemySpawnerComponent = enumerator.Current; enemySpawnerComponent.timer -= Time.deltaTime; if (enemySpawnerComponent.timer <= 0) { Spawn(enemySpawnerComponent.spawnerData); enemySpawnerComponent.timer = enemySpawnerComponent.spawnerData.spawnTime; } } }