private void OnSetupAnimationTriggers(int spawnerID, int zombieID)
    {
        ZombieEV zombie = entityViewsDB.QueryEntityView <ZombieEV>(zombieID);

        zombie.triggerComponent.triggeredAgainstTarget.NotifyOnValueSet(OnBeginAttack);
        zombie.deathComponent.isAlive.NotifyOnValueSet(OnZombieDeath);
    }
Esempio n. 2
0
    private void OnZombieSpawned(int spawnerID, int zombieID)
    {
        ZombieEV zombie = entityViewsDB.QueryEntityView <ZombieEV>(zombieID);

        zombie.healthComponent.currentHealth.NotifyOnValueSet(OnZombieDamaged);
        zombie.deathComponent.isAlive.NotifyOnValueSet(OnZombieDeath);
    }
Esempio n. 3
0
    private void OnNewZombieSpawned(int spawnerID, int zombieID)
    {
        // Update score every time a zombie dies
        ZombieEV zombie = entityViewsDB.QueryEntityView <ZombieEV>(zombieID);

        zombie.deathComponent.isAlive.NotifyOnValueSet(OnScoreUpdate);
    }
Esempio n. 4
0
    private void OnZombieDeath(int zombieID, bool isAlive)
    {
        //DealDamage(zombieID).Complete();
        ZombieEV zombie = entityViewsDB.QueryEntityView <ZombieEV>(zombieID);

        zombie.movementComponent.navMeshEnabled = false;
    }
Esempio n. 5
0
    private void OnStopMovemement(int zombieID, bool triggered)
    {
        ZombieEV zombie = entityViewsDB.QueryEntityView <ZombieEV>(zombieID);

        zombie.movementComponent.navMeshEnabled = false;
        DealDamage(zombieID).Run();
    }
Esempio n. 6
0
 private void OnZombieDamaged(int ID, float currentHealth)
 {
     if (currentHealth <= 0)
     {
         ZombieEV zombie = entityViewsDB.QueryEntityView <ZombieEV>(ID);
         zombie.soundComponent.clipToPlay    = SoundType.ZOMBIE_DEATH;
         zombie.deathComponent.isAlive.value = false;
         zombie.triggerComponent.isActive    = false;
     }
 }
Esempio n. 7
0
    private void SetZombieDestination(int spawnerID, int zombieID)
    {
        ZombieDestinationEV zombieDestination = entityViewsDB.QueryEntityViews <ZombieDestinationEV>()[0];

        ZombieEV zombie = entityViewsDB.QueryEntityView <ZombieEV>(zombieID);

        zombie.movementComponent.navMeshEnabled     = true;
        zombie.movementComponent.navMeshDestination = zombieDestination.positionComponent.position;
        zombie.triggerComponent.triggeredAgainstTarget.NotifyOnValueSet(OnStopMovemement);
        zombie.deathComponent.isAlive.NotifyOnValueSet(OnZombieDeath);
    }
Esempio n. 8
0
    private IEnumerator DealDamage(int zombieID)
    {
        ZombieEV zombie = entityViewsDB.QueryEntityView <ZombieEV>(zombieID);

        zombie.soundComponent.clipToPlay = SoundType.ZOMBIE_ATTACK;
        while (zombie.deathComponent.isAlive.value)
        {
            ZombieDestinationEV zombieDestination = entityViewsDB.QueryEntityViews <ZombieDestinationEV>()[0];
            zombieDestination.healthComponent.currentHealth.value -= m_Time.deltaTime * zombie.attackComponent.damagePerFrame;
            yield return(null);
        }
        zombie.soundComponent.isPlaying = false;
    }
    private void OnZombieDeath(int ID, bool didDie)
    {
        ZombieEV zombie = entityViewsDB.QueryEntityView <ZombieEV>(ID);

        zombie.animationComponent.trigger = "deathTrigger";
    }
    private void OnBeginAttack(int ID, bool didTrigger)
    {
        ZombieEV zombie = entityViewsDB.QueryEntityView <ZombieEV>(ID);

        zombie.animationComponent.trigger = "attackTrigger";
    }