protected virtual void DoDamage(Collider2D collider) { IHealth objectWithHealth = collider.gameObject.GetComponent <IHealth>(); if (objectWithHealth != null) { ready = false; if (power > 0) { StartCoroutine(PlayAnimation()); Vector2 normalized = -(transform.position - collider.gameObject.transform.position).normalized; if (objectWithHealth.ignoreBulletImpulse == false) { objectWithHealth.PushBack(normalized, (float)power); } if (flameDamage > 0) { objectWithHealth.EffectDamage(flameDamage, EffectType.Flame); } objectWithHealth.TakeDamage(damage); DestroyBullet(); } else { if (flameDamage > 0) { objectWithHealth.EffectDamage(flameDamage, EffectType.Flame); } objectWithHealth.TakeDamage(damage); StartCoroutine(PlayAnimationAndDestroy()); } } else { ready = true; } }