TModLoader v1.4.4.9
TModLoader source code documentation
Loading...
Searching...
No Matches

◆ AI_037_Destroyer()

void Terraria.NPC.AI_037_Destroyer ( )
inlineprivate

Definition at line 52583 of file NPC.cs.

52584 {
52585 //IL_0d41: Unknown result type (might be due to invalid IL or missing references)
52586 //IL_0d46: Unknown result type (might be due to invalid IL or missing references)
52587 //IL_0d9e: Unknown result type (might be due to invalid IL or missing references)
52588 //IL_0dd9: Unknown result type (might be due to invalid IL or missing references)
52589 //IL_0ce5: Unknown result type (might be due to invalid IL or missing references)
52590 //IL_1602: Unknown result type (might be due to invalid IL or missing references)
52591 //IL_1607: Unknown result type (might be due to invalid IL or missing references)
52592 //IL_161a: Unknown result type (might be due to invalid IL or missing references)
52593 //IL_161c: Unknown result type (might be due to invalid IL or missing references)
52594 //IL_161e: Unknown result type (might be due to invalid IL or missing references)
52595 //IL_1623: Unknown result type (might be due to invalid IL or missing references)
52596 //IL_1639: Unknown result type (might be due to invalid IL or missing references)
52597 //IL_163e: Unknown result type (might be due to invalid IL or missing references)
52598 //IL_1640: Unknown result type (might be due to invalid IL or missing references)
52599 //IL_1645: Unknown result type (might be due to invalid IL or missing references)
52600 //IL_1648: Unknown result type (might be due to invalid IL or missing references)
52601 //IL_164b: Unknown result type (might be due to invalid IL or missing references)
52602 //IL_1655: Unknown result type (might be due to invalid IL or missing references)
52603 //IL_165a: Unknown result type (might be due to invalid IL or missing references)
52604 //IL_1661: Unknown result type (might be due to invalid IL or missing references)
52605 //IL_1666: Unknown result type (might be due to invalid IL or missing references)
52606 //IL_166b: Unknown result type (might be due to invalid IL or missing references)
52607 //IL_0417: Unknown result type (might be due to invalid IL or missing references)
52608 //IL_0434: Unknown result type (might be due to invalid IL or missing references)
52609 //IL_0181: Unknown result type (might be due to invalid IL or missing references)
52610 //IL_01a5: Unknown result type (might be due to invalid IL or missing references)
52611 //IL_01ab: Unknown result type (might be due to invalid IL or missing references)
52612 //IL_04c9: Unknown result type (might be due to invalid IL or missing references)
52613 //IL_0512: Unknown result type (might be due to invalid IL or missing references)
52614 //IL_05ce: Unknown result type (might be due to invalid IL or missing references)
52615 //IL_05d5: Unknown result type (might be due to invalid IL or missing references)
52616 //IL_06bb: Unknown result type (might be due to invalid IL or missing references)
52617 //IL_0b33: Unknown result type (might be due to invalid IL or missing references)
52618 //IL_0b4c: Unknown result type (might be due to invalid IL or missing references)
52619 //IL_0b65: Unknown result type (might be due to invalid IL or missing references)
52620 //IL_0b71: Unknown result type (might be due to invalid IL or missing references)
52621 //IL_07aa: Unknown result type (might be due to invalid IL or missing references)
52622 //IL_0bf7: Unknown result type (might be due to invalid IL or missing references)
52623 //IL_0bfc: Unknown result type (might be due to invalid IL or missing references)
52624 //IL_0c2f: Unknown result type (might be due to invalid IL or missing references)
52625 //IL_0c6a: Unknown result type (might be due to invalid IL or missing references)
52626 //IL_095d: Unknown result type (might be due to invalid IL or missing references)
52627 //IL_07be: Unknown result type (might be due to invalid IL or missing references)
52628 //IL_07e0: Unknown result type (might be due to invalid IL or missing references)
52629 //IL_07f4: Unknown result type (might be due to invalid IL or missing references)
52630 int num = 0;
52631 int num12 = 10;
52632 if (IsMechQueenUp && type != 134)
52633 {
52634 int num23 = (int)ai[1];
52635 while (num23 > 0 && num23 < 200)
52636 {
52637 if (Main.npc[num23].active && Main.npc[num23].type >= 134 && Main.npc[num23].type <= 136)
52638 {
52639 num++;
52640 if (Main.npc[num23].type == 134)
52641 {
52642 break;
52643 }
52644 if (num >= num12)
52645 {
52646 num = 0;
52647 break;
52648 }
52649 num23 = (int)Main.npc[num23].ai[1];
52650 continue;
52651 }
52652 num = 0;
52653 break;
52654 }
52655 }
52656 if (ai[3] > 0f)
52657 {
52658 realLife = (int)ai[3];
52659 }
52660 if (target < 0 || target == 255 || Main.player[target].dead)
52661 {
52662 TargetClosest();
52663 }
52664 if (type >= 134 && type <= 136)
52665 {
52666 ((Vector2)(ref velocity)).Length();
52667 if (type == 134 || (type != 134 && Main.npc[(int)ai[1]].alpha < 128))
52668 {
52669 if (alpha != 0)
52670 {
52671 for (int i = 0; i < 2; i++)
52672 {
52673 int num25 = Dust.NewDust(new Vector2(position.X, position.Y), width, height, 182, 0f, 0f, 100, default(Color), 2f);
52674 Main.dust[num25].noGravity = true;
52675 Main.dust[num25].noLight = true;
52676 }
52677 }
52678 alpha -= 42;
52679 if (alpha < 0)
52680 {
52681 alpha = 0;
52682 }
52683 }
52684 }
52685 if (type > 134)
52686 {
52687 bool flag = false;
52688 if (ai[1] <= 0f)
52689 {
52690 flag = true;
52691 }
52692 else if (Main.npc[(int)ai[1]].life <= 0)
52693 {
52694 flag = true;
52695 }
52696 if (flag)
52697 {
52698 life = 0;
52699 HitEffect();
52700 checkDead();
52701 }
52702 }
52703 if (Main.netMode != 1)
52704 {
52705 if (ai[0] == 0f && type == 134)
52706 {
52707 ai[3] = whoAmI;
52708 realLife = whoAmI;
52709 int num26 = 0;
52710 int num27 = whoAmI;
52712 for (int j = 0; j <= destroyerSegmentsCount; j++)
52713 {
52714 int num28 = 135;
52716 {
52717 num28 = 136;
52718 }
52719 num26 = NewNPC(GetSpawnSourceForNPCFromNPCAI(), (int)(position.X + (float)(width / 2)), (int)(position.Y + (float)height), num28, whoAmI);
52720 Main.npc[num26].ai[3] = whoAmI;
52721 Main.npc[num26].realLife = whoAmI;
52722 Main.npc[num26].ai[1] = num27;
52723 Main.npc[num27].ai[0] = num26;
52724 NetMessage.SendData(23, -1, -1, null, num26);
52725 num27 = num26;
52726 }
52727 }
52728 if (type == 135)
52729 {
52730 localAI[0] += Main.rand.Next(4);
52731 if (localAI[0] >= (float)Main.rand.Next(1400, 26000))
52732 {
52733 localAI[0] = 0f;
52734 TargetClosest();
52735 if (Collision.CanHit(position, width, height, Main.player[target].position, Main.player[target].width, Main.player[target].height))
52736 {
52737 Vector2 vector = default(Vector2);
52738 ((Vector2)(ref vector))._002Ector(position.X + (float)width * 0.5f, position.Y + (float)(height / 2));
52739 float num29 = Main.player[target].position.X + (float)Main.player[target].width * 0.5f - vector.X + (float)Main.rand.Next(-20, 21);
52740 float num30 = Main.player[target].position.Y + (float)Main.player[target].height * 0.5f - vector.Y + (float)Main.rand.Next(-20, 21);
52741 float num2 = (float)Math.Sqrt(num29 * num29 + num30 * num30);
52742 num2 = 8f / num2;
52743 num29 *= num2;
52744 num30 *= num2;
52745 num29 += (float)Main.rand.Next(-20, 21) * 0.05f;
52746 num30 += (float)Main.rand.Next(-20, 21) * 0.05f;
52748 int num3 = 100;
52749 vector.X += num29 * 5f;
52750 vector.Y += num30 * 5f;
52751 int num4 = Projectile.NewProjectile(GetSpawnSource_ForProjectile(), vector.X, vector.Y, num29, num30, num3, attackDamage_ForProjectiles, 0f, Main.myPlayer);
52752 Main.projectile[num4].timeLeft = 300;
52753 netUpdate = true;
52754 }
52755 }
52756 }
52757 }
52758 int num5 = (int)(position.X / 16f) - 1;
52759 int num6 = (int)((position.X + (float)width) / 16f) + 2;
52760 int num7 = (int)(position.Y / 16f) - 1;
52761 int num8 = (int)((position.Y + (float)height) / 16f) + 2;
52762 if (num5 < 0)
52763 {
52764 num5 = 0;
52765 }
52766 if (num6 > Main.maxTilesX)
52767 {
52768 num6 = Main.maxTilesX;
52769 }
52770 if (num7 < 0)
52771 {
52772 num7 = 0;
52773 }
52774 if (num8 > Main.maxTilesY)
52775 {
52776 num8 = Main.maxTilesY;
52777 }
52778 bool flag2 = false;
52779 if (!flag2)
52780 {
52781 Vector2 vector2 = default(Vector2);
52782 for (int k = num5; k < num6; k++)
52783 {
52784 for (int l = num7; l < num8; l++)
52785 {
52786 if (Main.tile[k, l] != null && ((Main.tile[k, l].nactive() && (Main.tileSolid[Main.tile[k, l].type] || (Main.tileSolidTop[Main.tile[k, l].type] && Main.tile[k, l].frameY == 0))) || Main.tile[k, l].liquid > 64))
52787 {
52788 vector2.X = k * 16;
52789 vector2.Y = l * 16;
52790 if (position.X + (float)width > vector2.X && position.X < vector2.X + 16f && position.Y + (float)height > vector2.Y && position.Y < vector2.Y + 16f)
52791 {
52792 flag2 = true;
52793 break;
52794 }
52795 }
52796 }
52797 }
52798 }
52799 if (!flag2)
52800 {
52801 if (type != 135 || ai[2] != 1f)
52802 {
52803 Lighting.AddLight((int)((position.X + (float)(width / 2)) / 16f), (int)((position.Y + (float)(height / 2)) / 16f), 0.3f, 0.1f, 0.05f);
52804 }
52805 localAI[1] = 1f;
52806 if (type == 134)
52807 {
52808 Rectangle rectangle = default(Rectangle);
52809 ((Rectangle)(ref rectangle))._002Ector((int)position.X, (int)position.Y, width, height);
52810 int num9 = 1000;
52811 bool flag3 = true;
52812 if (position.Y > Main.player[target].position.Y)
52813 {
52814 Rectangle rectangle2 = default(Rectangle);
52815 for (int m = 0; m < 255; m++)
52816 {
52817 if (Main.player[m].active)
52818 {
52819 ((Rectangle)(ref rectangle2))._002Ector((int)Main.player[m].position.X - num9, (int)Main.player[m].position.Y - num9, num9 * 2, num9 * 2);
52820 if (((Rectangle)(ref rectangle)).Intersects(rectangle2))
52821 {
52822 flag3 = false;
52823 break;
52824 }
52825 }
52826 }
52827 if (flag3)
52828 {
52829 flag2 = true;
52830 }
52831 }
52832 }
52833 }
52834 else
52835 {
52836 localAI[1] = 0f;
52837 }
52838 float num10 = 16f;
52839 if (Main.IsItDay() || Main.player[target].dead)
52840 {
52841 flag2 = false;
52842 velocity.Y += 1f;
52843 if ((double)position.Y > Main.worldSurface * 16.0)
52844 {
52845 velocity.Y += 1f;
52846 num10 = 32f;
52847 }
52848 if ((double)position.Y > Main.rockLayer * 16.0)
52849 {
52850 for (int n = 0; n < 200; n++)
52851 {
52852 if (Main.npc[n].aiStyle == aiStyle)
52853 {
52854 Main.npc[n].active = false;
52855 }
52856 }
52857 }
52858 }
52859 float num11 = 0.1f;
52860 float num13 = 0.15f;
52861 if (Main.getGoodWorld)
52862 {
52863 num11 *= 1.2f;
52864 num13 *= 1.2f;
52865 }
52866 Vector2 vector3 = default(Vector2);
52867 ((Vector2)(ref vector3))._002Ector(position.X + (float)width * 0.5f, position.Y + (float)height * 0.5f);
52868 float num14 = Main.player[target].position.X + (float)(Main.player[target].width / 2);
52869 float num15 = Main.player[target].position.Y + (float)(Main.player[target].height / 2);
52870 num14 = (int)(num14 / 16f) * 16;
52871 num15 = (int)(num15 / 16f) * 16;
52872 vector3.X = (int)(vector3.X / 16f) * 16;
52873 vector3.Y = (int)(vector3.Y / 16f) * 16;
52874 num14 -= vector3.X;
52875 num15 -= vector3.Y;
52876 float num16 = (float)Math.Sqrt(num14 * num14 + num15 * num15);
52877 if (ai[1] > 0f && ai[1] < (float)Main.npc.Length)
52878 {
52879 int num17 = (int)(44f * scale);
52880 try
52881 {
52882 vector3 = new Vector2(position.X + (float)width * 0.5f, position.Y + (float)height * 0.5f);
52883 num14 = Main.npc[(int)ai[1]].position.X + (float)(Main.npc[(int)ai[1]].width / 2) - vector3.X;
52884 num15 = Main.npc[(int)ai[1]].position.Y + (float)(Main.npc[(int)ai[1]].height / 2) - vector3.Y;
52885 }
52886 catch
52887 {
52888 }
52889 if (num > 0)
52890 {
52891 float num18 = (float)num17 - (float)num17 * (((float)num - 1f) * 0.1f);
52892 if (num18 < 0f)
52893 {
52894 num18 = 0f;
52895 }
52896 if (num18 > (float)num17)
52897 {
52898 num18 = num17;
52899 }
52900 num15 = Main.npc[(int)ai[1]].position.Y + (float)(Main.npc[(int)ai[1]].height / 2) + num18 - vector3.Y;
52901 }
52902 rotation = (float)Math.Atan2(num15, num14) + 1.57f;
52903 num16 = (float)Math.Sqrt(num14 * num14 + num15 * num15);
52904 if (num > 0)
52905 {
52906 num17 = num17 / num12 * num;
52907 }
52908 num16 = (num16 - (float)num17) / num16;
52909 num14 *= num16;
52910 num15 *= num16;
52911 velocity = Vector2.Zero;
52912 position.X += num14;
52913 position.Y += num15;
52914 num14 = Main.npc[(int)ai[1]].position.X + (float)(Main.npc[(int)ai[1]].width / 2) - vector3.X;
52915 num15 = Main.npc[(int)ai[1]].position.Y + (float)(Main.npc[(int)ai[1]].height / 2) - vector3.Y;
52916 rotation = (float)Math.Atan2(num15, num14) + 1.57f;
52917 }
52918 else
52919 {
52920 if (!flag2)
52921 {
52922 TargetClosest();
52923 velocity.Y += 0.15f;
52924 if (velocity.Y > num10)
52925 {
52926 velocity.Y = num10;
52927 }
52928 if ((double)(Math.Abs(velocity.X) + Math.Abs(velocity.Y)) < (double)num10 * 0.4)
52929 {
52930 if (velocity.X < 0f)
52931 {
52932 velocity.X -= num11 * 1.1f;
52933 }
52934 else
52935 {
52936 velocity.X += num11 * 1.1f;
52937 }
52938 }
52939 else if (velocity.Y == num10)
52940 {
52941 if (velocity.X < num14)
52942 {
52943 velocity.X += num11;
52944 }
52945 else if (velocity.X > num14)
52946 {
52947 velocity.X -= num11;
52948 }
52949 }
52950 else if (velocity.Y > 4f)
52951 {
52952 if (velocity.X < 0f)
52953 {
52954 velocity.X += num11 * 0.9f;
52955 }
52956 else
52957 {
52958 velocity.X -= num11 * 0.9f;
52959 }
52960 }
52961 }
52962 else
52963 {
52964 if (soundDelay == 0)
52965 {
52966 float num19 = num16 / 40f;
52967 if (num19 < 10f)
52968 {
52969 num19 = 10f;
52970 }
52971 if (num19 > 20f)
52972 {
52973 num19 = 20f;
52974 }
52975 soundDelay = (int)num19;
52976 SoundEngine.PlaySound(15, (int)position.X, (int)position.Y);
52977 }
52978 num16 = (float)Math.Sqrt(num14 * num14 + num15 * num15);
52979 float num20 = Math.Abs(num14);
52980 float num21 = Math.Abs(num15);
52981 float num22 = num10 / num16;
52982 num14 *= num22;
52983 num15 *= num22;
52984 if (((velocity.X > 0f && num14 > 0f) || (velocity.X < 0f && num14 < 0f)) && ((velocity.Y > 0f && num15 > 0f) || (velocity.Y < 0f && num15 < 0f)))
52985 {
52986 if (velocity.X < num14)
52987 {
52988 velocity.X += num13;
52989 }
52990 else if (velocity.X > num14)
52991 {
52992 velocity.X -= num13;
52993 }
52994 if (velocity.Y < num15)
52995 {
52996 velocity.Y += num13;
52997 }
52998 else if (velocity.Y > num15)
52999 {
53000 velocity.Y -= num13;
53001 }
53002 }
53003 if ((velocity.X > 0f && num14 > 0f) || (velocity.X < 0f && num14 < 0f) || (velocity.Y > 0f && num15 > 0f) || (velocity.Y < 0f && num15 < 0f))
53004 {
53005 if (velocity.X < num14)
53006 {
53007 velocity.X += num11;
53008 }
53009 else if (velocity.X > num14)
53010 {
53011 velocity.X -= num11;
53012 }
53013 if (velocity.Y < num15)
53014 {
53015 velocity.Y += num11;
53016 }
53017 else if (velocity.Y > num15)
53018 {
53019 velocity.Y -= num11;
53020 }
53021 if ((double)Math.Abs(num15) < (double)num10 * 0.2 && ((velocity.X > 0f && num14 < 0f) || (velocity.X < 0f && num14 > 0f)))
53022 {
53023 if (velocity.Y > 0f)
53024 {
53025 velocity.Y += num11 * 2f;
53026 }
53027 else
53028 {
53029 velocity.Y -= num11 * 2f;
53030 }
53031 }
53032 if ((double)Math.Abs(num14) < (double)num10 * 0.2 && ((velocity.Y > 0f && num15 < 0f) || (velocity.Y < 0f && num15 > 0f)))
53033 {
53034 if (velocity.X > 0f)
53035 {
53036 velocity.X += num11 * 2f;
53037 }
53038 else
53039 {
53040 velocity.X -= num11 * 2f;
53041 }
53042 }
53043 }
53044 else if (num20 > num21)
53045 {
53046 if (velocity.X < num14)
53047 {
53048 velocity.X += num11 * 1.1f;
53049 }
53050 else if (velocity.X > num14)
53051 {
53052 velocity.X -= num11 * 1.1f;
53053 }
53054 if ((double)(Math.Abs(velocity.X) + Math.Abs(velocity.Y)) < (double)num10 * 0.5)
53055 {
53056 if (velocity.Y > 0f)
53057 {
53058 velocity.Y += num11;
53059 }
53060 else
53061 {
53062 velocity.Y -= num11;
53063 }
53064 }
53065 }
53066 else
53067 {
53068 if (velocity.Y < num15)
53069 {
53070 velocity.Y += num11 * 1.1f;
53071 }
53072 else if (velocity.Y > num15)
53073 {
53074 velocity.Y -= num11 * 1.1f;
53075 }
53076 if ((double)(Math.Abs(velocity.X) + Math.Abs(velocity.Y)) < (double)num10 * 0.5)
53077 {
53078 if (velocity.X > 0f)
53079 {
53080 velocity.X += num11;
53081 }
53082 else
53083 {
53084 velocity.X -= num11;
53085 }
53086 }
53087 }
53088 }
53089 rotation = (float)Math.Atan2(velocity.Y, velocity.X) + 1.57f;
53090 if (type == 134)
53091 {
53092 if (flag2)
53093 {
53094 if (localAI[0] != 1f)
53095 {
53096 netUpdate = true;
53097 }
53098 localAI[0] = 1f;
53099 }
53100 else
53101 {
53102 if (localAI[0] != 0f)
53103 {
53104 netUpdate = true;
53105 }
53106 localAI[0] = 0f;
53107 }
53108 if (((velocity.X > 0f && oldVelocity.X < 0f) || (velocity.X < 0f && oldVelocity.X > 0f) || (velocity.Y > 0f && oldVelocity.Y < 0f) || (velocity.Y < 0f && oldVelocity.Y > 0f)) && !justHit)
53109 {
53110 netUpdate = true;
53111 }
53112 }
53113 }
53114 if (IsMechQueenUp && type == 134)
53115 {
53116 NPC nPC = Main.npc[mechQueen];
53117 Vector2 mechQueenCenter = nPC.GetMechQueenCenter();
53118 Vector2 vector4 = default(Vector2);
53119 ((Vector2)(ref vector4))._002Ector(0f, 100f);
53121 float num24 = nPC.velocity.X * 0.025f;
53123 position = spinningpoint - base.Size / 2f + nPC.velocity;
53124 velocity.X = 0f;
53125 velocity.Y = 0f;
53126 rotation = num24 * 0.75f + (float)Math.PI;
53127 }
53128 }
static SlotId PlaySound(in SoundStyle? style, Vector2? position=null, SoundUpdateCallback? updateCallback=null)
Attempts to play a sound style with the provided sound style (if it's not null), and returns a valid ...
int whoAmI
The index of this Entity within its specific array. These arrays track the entities in the world....
Definition Entity.cs:16
Vector2 velocity
The velocity of this Entity in world coordinates per tick.
Definition Entity.cs:33
Vector2 position
The position of this Entity in world coordinates.
Definition Entity.cs:28
Vector2 oldVelocity
Definition Entity.cs:37
int width
The width of this Entity's hitbox, in pixels.
Definition Entity.cs:46
int height
The height of this Entity's hitbox, in pixels.
Definition Entity.cs:51
static int GetDestroyerSegmentsCount()
Definition NPC.cs:53984
float[] localAI
Acts like F:Terraria.NPC.ai, but does not sync to the server. Many vanilla T:Terraria....
Definition NPC.cs:1003
void TargetClosest(bool faceTarget=true)
Definition NPC.cs:83247
int aiStyle
Selects which vanilla code to use for the AI method. Vanilla NPC AI styles are enumerated in the T:Te...
Definition NPC.cs:1013
float[] ai
An array with 4 slots used for any sort of data storage, which is occasionally synced from the server...
Definition NPC.cs:997
static bool IsMechQueenUp
Definition NPC.cs:1541
float scale
Makes the NPC bigger or smaller. Bigger than 1f is bigger. Defaults to 1f.
Definition NPC.cs:1104
int type
The NPC ID of this NPC. The NPC ID is a unique number assigned to each NPC loaded into the game....
Definition NPC.cs:990
int alpha
0 is opaque, and 255 is transparent. Note that this is the opposite of how alpha is typically express...
Definition NPC.cs:1092
float rotation
Definition NPC.cs:1116
IEntitySource GetSpawnSourceForNPCFromNPCAI()
Definition NPC.cs:107568
static int NewNPC(IEntitySource source, int X, int Y, int Type, int Start=0, float ai0=0f, float ai1=0f, float ai2=0f, float ai3=0f, int Target=255)
Spawns an NPC into the game world with the given type. This method should not be called on multipla...
Definition NPC.cs:91239
void checkDead()
Definition NPC.cs:83653
int GetAttackDamage_ForProjectiles(float normalDamage, float expertDamage)
Definition NPC.cs:1891
bool justHit
Definition NPC.cs:1015
static int mechQueen
Definition NPC.cs:1223
int life
The current life of the NPC. Automatically set to the value of F:Terraria.NPC.lifeMax at the end of S...
Definition NPC.cs:1072
IEntitySource GetSpawnSource_ForProjectile()
Definition NPC.cs:107558
int soundDelay
Definition NPC.cs:974
int realLife
Stores the index (the F:Terraria.Entity.whoAmI) of a single NPC. This NPC will then share a health po...
Definition NPC.cs:604
bool netUpdate
Definition NPC.cs:1130
int target
Definition NPC.cs:1019
void HitEffect(int hitDirection=0, double dmg=10.0, bool? instantKill=null)
Definition NPC.cs:92191

References Terraria.Lighting.AddLight(), Terraria.NPC.ai, Terraria.NPC.aiStyle, Terraria.NPC.alpha, Terraria.Collision.CanHit(), Terraria.NPC.checkDead(), Terraria.Main.dust, Terraria.NPC.GetAttackDamage_ForProjectiles(), Terraria.NPC.GetDestroyerSegmentsCount(), Terraria.Main.getGoodWorld, Terraria.NPC.GetSpawnSource_ForProjectile(), Terraria.NPC.GetSpawnSourceForNPCFromNPCAI(), Terraria.Entity.height, Terraria.NPC.HitEffect(), Terraria.Main.IsItDay(), Terraria.NPC.IsMechQueenUp, Terraria.NPC.justHit, Terraria.NPC.life, Terraria.NPC.localAI, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.NPC.mechQueen, Terraria.Main.myPlayer, Terraria.Main.netMode, Terraria.NPC.netUpdate, Terraria.Dust.NewDust(), Terraria.NPC.NewNPC(), Terraria.Projectile.NewProjectile(), Terraria.Main.npc, Terraria.Entity.oldVelocity, Terraria.Main.player, Terraria.Audio.SoundEngine.PlaySound(), Terraria.Entity.position, Terraria.Main.projectile, Terraria.Main.rand, Terraria.NPC.realLife, Terraria.NPC.rotation, Terraria.NPC.scale, Terraria.NetMessage.SendData(), Terraria.NPC.soundDelay, Terraria.NPC.target, Terraria.NPC.TargetClosest(), Terraria.Main.tile, Terraria.Main.tileSolid, Terraria.Main.tileSolidTop, Terraria.NPC.type, Terraria.Entity.velocity, Terraria.Entity.whoAmI, and Terraria.Entity.width.

Referenced by Terraria.NPC.VanillaAI_Inner().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: