pubic override bool PreAI()
{
if (projectile.owner == Main.myPlayer && projectile.timeLeft <= 3)
{
projectile.tileCollide = false;
projectile.ai[1] = 0f;
projectile.alpha = 255;
projectile.position.X = projectile.position.X + (float)(projectile.width / 2);
projectile.position.Y = projectile.position.Y + (float)(projectile.height / 2);
projectile.width = 80; // This is the actual damaging size of this projectile.
projectile.height = 80;
projectile.position.X = projectile.position.X - (float)(projectile.width / 2);
projectile.position.Y = projectile.position.Y - (float)(projectile.height / 2);
projectile.knockBack = 8f;
return false;
}
return true;
}
public override bool OnTileCollide(Vector2 oldVelocity)
{
projectile.velocity *= 0f;
projectile.alpha = 255;
projectile.timeLeft = 3;
return false;
}
public override void OnHitNPC(NPC target, int damage, float knockback, bool crit)
{
projectile.velocity *= 0f;
projectile.alpha = 255;
projectile.timeLeft = 3;
}
public override void Kill(int timeLeft)
{
if (!projectile.active)
{
return;
}
Main.projectileIdentity[projectile.owner, projectile.identity] = -1;
int num = projectile.timeLeft;
projectile.timeLeft = 0;
Main.PlaySound(2, (int)projectile.position.X, (int)projectile.position.Y, 14);
projectile.position.X = projectile.position.X + (float)(projectile.width / 2);
projectile.position.Y = projectile.position.Y + (float)(projectile.height / 2);
projectile.width = 22;
projectile.height = 22;
projectile.position.X = projectile.position.X - (float)(projectile.width / 2);
projectile.position.Y = projectile.position.Y - (float)(projectile.height / 2);
for (int num459 = 0; num459 < 7; num459++)
{
Dust.NewDust(new Vector2(projectile.position.X, projectile.position.Y), projectile.width, projectile.height, 31, 0f, 0f, 100, default(Color), 1.5f);
}
for (int num460 = 0; num460 < 3; num460++)
{
int num461 = Dust.NewDust(new Vector2(projectile.position.X, projectile.position.Y), projectile.width, projectile.height, 6, 0f, 0f, 100, default(Color), 2.5f);
Main.dust[num461].noGravity = true;
Main.dust[num461].velocity *= 3f;
num461 = Dust.NewDust(new Vector2(projectile.position.X, projectile.position.Y), projectile.width, projectile.height, 6, 0f, 0f, 100, default(Color), 1.5f);
Main.dust[num461].velocity *= 2f;
}
int num462 = Gore.NewGore(new Vector2(projectile.position.X - 10f, projectile.position.Y - 10f), default(Vector2), Main.rand.Next(61, 64), 1f);
Main.gore[num462].velocity *= 0.3f;
Main.gore[num462].velocity.X += (float)Main.rand.Next(-10, 11) * 0.05f;
Main.gore[num462].velocity.Y += (float)Main.rand.Next(-10, 11) * 0.05f;
projectile.active = false;
}