public void ghostHurt(int dmg, Vector2 Position)
{
if (!magic)
return;
int Damage = damage / 2;
if (dmg / 2 <= 1)
return;
int num1 = 1000;
if (Main.player[Main.myPlayer].ghostDmg > num1)
return;
Main.player[Main.myPlayer].ghostDmg += Damage;
int[] numArray = new int[200];
int maxValue1 = 0;
int maxValue2 = 0;
for (int index = 0; index < 200; ++index)
{
if (Main.npc[index].CanBeChasedBy(this, false))
{
float num2 = Math.Abs(Main.npc[index].position.X + (Main.npc[index].width / 2) - position.X + (width / 2)) + Math.Abs(Main.npc[index].position.Y + (Main.npc[index].height / 2) - position.Y + (height / 2));
if (num2 < 800.0)
{
if (Collision.CanHit(position, 1, 1, Main.npc[index].position, Main.npc[index].width, Main.npc[index].height) && num2 > 50.0)
{
numArray[maxValue2] = index;
++maxValue2;
}
else if (maxValue2 == 0)
{
numArray[maxValue1] = index;
++maxValue1;
}
}
}
}
if (maxValue1 == 0 && maxValue2 == 0)
return;
int ai0 = maxValue2 <= 0 ? numArray[Main.rand.Next(maxValue1)] : numArray[Main.rand.Next(maxValue2)];
float num4 = 4f;
float num5 = Main.rand.Next(-100, 101);
float num6 = Main.rand.Next(-100, 101);
float num7 = (float)Math.Sqrt(num5 * num5 + num6 * num6);
float num8 = num4 / num7;
float SpeedX = num5 * num8;
float SpeedY = num6 * num8;
NewProjectile(Position.X, Position.Y, SpeedX, SpeedY, 356, Damage, 0.0f, owner, ai0, 0.0f);
}