33531 {
33532 if (!Main.npc[(
int)
ai[1]].active || Main.npc[(
int)
ai[1]].type != 20 || Main.npc[(
int)
ai[1]].ai[0] != 14f)
33533 {
33535 return;
33536 }
33541 {
33543 }
33545 float num = 300f;
33547 {
33549 }
33550 if (num > 600f)
33551 {
33552 num = 600f;
33553 }
33555 {
33559 }
33562 {
33564 if (Main.rand.NextFloat() <
num3)
33565 {
33567 }
33568 }
33569 if (Main.rand.Next(4) == 0)
33570 {
33573 float num5 = Main.rand.Next(3, 9);
33576 Main.dust[
num6].noGravity =
true;
33578 if (Main.rand.Next(8) == 0)
33579 {
33581 Main.dust[
num6].scale += 0.5f;
33582 }
33583 else
33584 {
33586 }
33587 }
33588 if (Main.rand.Next(2) == 0)
33589 {
33591 float num7 = Main.rand.Next(3, 9);
33594 Main.dust[
num8].noGravity =
true;
33595 Main.dust[
num8].position = base.Center +
vector2 * 30f;
33596 if (Main.rand.Next(8) == 0)
33597 {
33599 Main.dust[
num8].scale += 0.5f;
33600 }
33601 else
33602 {
33604 }
33605 }
33606 if (
ai[0] >= 30f && Main.netMode != 2)
33607 {
33608 Player player = Main.player[Main.myPlayer];
33609 if (player.active && !player.dead &&
Distance(player.Center) <= num && player.FindBuffIndex(165) == -1)
33610 {
33611 player.AddBuff(165, 120);
33612 }
33613 }
33614 if (
ai[0] >= 30f &&
ai[0] % 10f == 0f && Main.netMode != 1)
33615 {
33616 for (
int i = 0;
i < 200;
i++)
33617 {
33620 {
33621 if (
nPC.townNPC && (
nPC.FindBuffIndex(165) == -1 ||
nPC.buffTime[
nPC.FindBuffIndex(165)] <= 20))
33622 {
33623 nPC.AddBuff(165, 120);
33624 }
33625 else if (!
nPC.friendly &&
nPC.lifeMax > 5 && !
nPC.dontTakeDamage && (
nPC.FindBuffIndex(186) == -1 ||
nPC.buffTime[
nPC.FindBuffIndex(186)] <= 20) && (
nPC.dryadBane || Collision.CanHit(
base.Center, 1, 1,
nPC.position,
nPC.width,
nPC.height)))
33626 {
33627 nPC.AddBuff(186, 120);
33628 }
33629 }
33630 }
33631 }
33633 {
33635 }
33636 }
static float Lerp(float value1, float value2, float amount)
static double Sin(double a)
float Distance(Vector2 Other)