Example #1
0
    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;
            }
        }
    }