Beispiel #1
0
 protected virtual void OnCollisionEnter(Collision _collision)
 {
     foreach (string tag in damageComponent.DamageTags)
     {
         if (_collision.gameObject.CompareTag(tag))
         {
             VisualEffects.CreateVisualEffect(hitVfx, transform);
             PoolsManager.ReturnObjectToPools(this);
         }
     }
 }
Beispiel #2
0
 protected IEnumerator CorrosiveEffect()
 {
     startTime = Time.timeSinceLevelLoad;
     while (Time.timeSinceLevelLoad < startTime + corrosiveDuration)
     {
         foreach (Character enemy in enemiesOnField)
         {
             var healthComponent = enemy.GetComponent <Health>();
             if (healthComponent)
             {
                 healthComponent.TakeDamage(corrosiveDamage);
             }
         }
         yield return(timeToDamage);
     }
     PoolsManager.ReturnObjectToPools(this);
 }
Beispiel #3
0
 protected override IEnumerator Action()
 {
     if (character != null)
     {
         EventManager.TriggerEvent <CharacterEvent>(new CharacterEvent(CharacterEventType.Release, character));
     }
     // Stop the action executiong because the animation has already end.
     if (poolableOBJ)
     {
         PoolsManager.ReturnObjectToPools(poolableOBJ);
     }
     else
     {
         character.gameObject.SetActive(false);
     }
     yield break;
 }
Beispiel #4
0
    public IEnumerator Kill()
    {
        PoolableObject poolableCharacter = GetComponent <PoolableObject>();

        if (poolableCharacter != null)
        {
            yield return(CharacterDeath());

            PoolsManager.ReturnObjectToPools(poolableCharacter);
        }
        else if (poolableCharacter == null)
        {
            yield return(CharacterDeath());

            Destroy(gameObject);
        }

        VisualEffects.CreateVisualEffect(deathVfx, transform);
        yield break;
    }