bool DestroyPoint(RaycastHit2D hit, bool isAlienTarget)
{
var point = hit.point;
var sprite = m_spriteBuilder.Sprite;
var bunkerScale = sprite.rect.width;
var spriteRect = sprite.rect;
var translatedX = (point.x - transform.position.x) + .5f;
var projectileX = Mathf.RoundToInt (spriteRect.x + translatedX * bunkerScale);
var halfWidth = HorizontalPixelsDestroyedPerShoot / 2;
var projectileWidth = HorizontalPixelsDestroyedPerShoot;
var bunkerHeight = Mathf.RoundToInt (spriteRect.height);
var hitPixelsByShoot = ((bunkerHeight / MaxShootSupportedInPoint) * projectileWidth) + projectileWidth;
var hitPixelsCount = 0;
if (isAlienTarget) {
for (int pixelY = 0; pixelY < bunkerHeight; pixelY++) {
DestroyHorizontalPizels (pixelY, projectileX, halfWidth, hitPixelsByShoot, ref hitPixelsCount);
}
} else {
for (int pixelY = bunkerHeight; pixelY > 0; pixelY--) {
DestroyHorizontalPizels (pixelY, projectileX, halfWidth, hitPixelsByShoot, ref hitPixelsCount);
}
}
m_spriteBuilder.Rebuild();
return hitPixelsCount >= MinimumHitPixelsToBlockProjectile;
}