public void MinionTargetAim()
{
Vector2 mouseWorld = Main.MouseWorld;
float num1 = mouseWorld.Y;
int i = (int)mouseWorld.X / 16;
int index1 = (int)num1 / 16;
int num2 = 0;
if (Main.tile[i, index1].nactive() && Main.tileSolid[(int)Main.tile[i, index1].type] && !Main.tileSolidTop[(int)Main.tile[i, index1].type])
{
int num3 = 0;
for (int index2 = 0; index2 > -20 && index1 + index2 > 1; --index2)
{
int index3 = index1 + index2;
if (Main.tile[i, index3].nactive() && Main.tileSolid[(int)Main.tile[i, index3].type] && !Main.tileSolidTop[(int)Main.tile[i, index3].type])
{
num3 = index2;
}
else
{
num3 = index2;
break;
}
}
int num4 = 0;
for (int index2 = 0; index2 < 20 && index1 + index2 < Main.maxTilesY; ++index2)
{
int index3 = index1 + index2;
if (Main.tile[i, index3].nactive() && Main.tileSolid[(int)Main.tile[i, index3].type] && !Main.tileSolidTop[(int)Main.tile[i, index3].type])
{
num4 = index2;
}
else
{
num4 = index2;
break;
}
}
num2 = num4 <= -num3 ? num4 + 3 : num3 - 2;
}
int num5 = index1 + num2;
bool flag = false;
for (int j = num5; j < num5 + 5; ++j)
{
if (WorldGen.SolidTileAllowBottomSlope(i, j))
flag = true;
}
while (!flag)
{
++num5;
for (int j = num5; j < num5 + 5; ++j)
{
if (WorldGen.SolidTileAllowBottomSlope(i, j))
flag = true;
}
}
Vector2 Other = new Vector2((float)(i * 16 + 8), (float)(num5 * 16));
if ((double)this.Distance(Other) > 1000.0)
return;
this.MinionTargetPoint = Other;
}