private void OnShieldImpact(ShieldImpactMessage obj)
 {
     if (!obj.WasDeflected)
     {
         CurrentEffect = obj.Projectile.DamageEffect;
         EffectExpirationTime = Time.time + obj.Projectile.EffectTime;
         damageAnimation.renderer.enabled = true;
         damageAnimation.Play();
     }
 }
 private void OnShieldImpact(ShieldImpactMessage obj)
 {
     if (!obj.WasDeflected)
     {
         var explosion = _recycleQueue.Next();
         explosion.renderer.enabled = true;
         explosion.transform.position = new Vector3(obj.ImpactPosition.x, obj.ImpactPosition.y,
                                                    transform.position.z);
         explosion.Play();
     }
     else
     {
         if (obj.Projectile.ProjectileColor == ProjectileColor.Blue)
         {
             var explosion = _shieldBlockQueue.Next();
             explosion.transform.position = new Vector3(obj.ImpactPosition.x, obj.ImpactPosition.y, transform.position.z);
             explosion.startColor = Color.blue;
             explosion.Play();
         }
         else if (obj.Projectile.ProjectileColor == ProjectileColor.Red)
         {
             var explosion = _redExplosionQueue.Next();
             explosion.renderer.enabled = true;
             explosion.transform.position = new Vector3(obj.ProjectilePosition.x, obj.ProjectilePosition.y,
                                                        transform.position.z);
             explosion.Play();
         }
         else
         {
             var explosion = _shieldBlockQueue.Next();
             explosion.transform.position = new Vector3(obj.ImpactPosition.x, obj.ImpactPosition.y, transform.position.z);
             explosion.startColor = Color.green;
             explosion.Play();
         }
     }
 }
 private void OnShieldImpact(ShieldImpactMessage obj)
 {
     if (obj.WasDeflected)
     {
         blocked++;
     }
     else
     {
         misses++;
     }
 }