public override bool CanSpawn(int x, int y, int type, Player player)
{
int closeTownNPCs = 0;
if (!Main.bloodMoon)
{
for (int num36 = 0; num36 < 200; num36++)
{
if (Main.npc[num36].active && Main.npc[num36].townNPC && Vector2.Distance(Main.player[Main.myPlayer].position, Main.npc[num36].position) < 1500)
{
closeTownNPCs++;
}
}
}
if (closeTownNPCs == 1 && Main.rand.Next(3) == 0) return false;
if (closeTownNPCs == 2 && Main.rand.Next(2) == 0) return false;
if (closeTownNPCs == 3 && Main.rand.Next(3) <= 1) return false;
if (closeTownNPCs >= 4) return false;
if (Main.bloodMoon && Main.rand.Next(2) == 1) return true;
if (Main.dayTime && Main.rand.Next(8) == 1) return true;
if (!Main.dayTime && Main.rand.Next(6) == 1) return true;
return false;
}