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

◆ SetTargetTrackingValues()

void Terraria.NPC.SetTargetTrackingValues ( bool faceTarget,
float realDist,
int tankTarget )
inlineprivate

Definition at line 69994 of file NPC.cs.

69995 {
69996 if (tankTarget >= 0)
69997 {
69998 targetRect = new Rectangle((int)Main.projectile[tankTarget].position.X, (int)Main.projectile[tankTarget].position.Y, Main.projectile[tankTarget].width, Main.projectile[tankTarget].height);
69999 direction = 1;
70000 if ((float)(targetRect.X + targetRect.Width / 2) < position.X + (float)(width / 2))
70001 {
70002 direction = -1;
70003 }
70004 directionY = 1;
70005 if ((float)(targetRect.Y + targetRect.Height / 2) < position.Y + (float)(height / 2))
70006 {
70007 directionY = -1;
70008 }
70009 }
70010 else
70011 {
70012 if (target < 0 || target >= 255)
70013 {
70014 target = 0;
70015 }
70016 targetRect = new Rectangle((int)Main.player[target].position.X, (int)Main.player[target].position.Y, Main.player[target].width, Main.player[target].height);
70017 if (Main.player[target].dead)
70018 {
70019 faceTarget = false;
70020 }
70021 if (Main.player[target].npcTypeNoAggro[type] && direction != 0)
70022 {
70023 faceTarget = false;
70024 }
70025 if (faceTarget)
70026 {
70027 _ = Main.player[target].aggro;
70028 _ = (Main.player[target].height + Main.player[target].width + height + width) / 4;
70029 bool flag = oldTarget >= 0 && oldTarget <= 254;
70030 bool num = Main.player[target].itemAnimation == 0 && Main.player[target].aggro < 0;
70031 bool flag2 = !boss;
70032 if (!(num && flag && flag2))
70033 {
70034 direction = 1;
70035 if ((float)(targetRect.X + targetRect.Width / 2) < position.X + (float)(width / 2))
70036 {
70037 direction = -1;
70038 }
70039 directionY = 1;
70040 if ((float)(targetRect.Y + targetRect.Height / 2) < position.Y + (float)(height / 2))
70041 {
70042 directionY = -1;
70043 }
70044 }
70045 }
70046 }
70047 if (confused)
70048 {
70049 direction *= -1;
70050 }
70052 {
70053 netUpdate = true;
70054 }
70055 }
int oldDirection
Definition Entity.cs:22
Vector2 position
Definition Entity.cs:14
bool boss
Definition NPC.cs:515
int oldTarget
Definition NPC.cs:499
bool confused
Definition NPC.cs:253
int oldDirectionY
Definition NPC.cs:497
Rectangle targetRect
Definition NPC.cs:481
bool collideX
Definition NPC.cs:511
bool collideY
Definition NPC.cs:513
int type
Definition NPC.cs:445
int directionY
Definition NPC.cs:443
bool netUpdate
Definition NPC.cs:507
int target
Definition NPC.cs:459

References Terraria.NPC.boss, Terraria.NPC.collideX, Terraria.NPC.collideY, Terraria.NPC.confused, Terraria.Entity.direction, Terraria.NPC.directionY, Microsoft.Xna.Framework.Rectangle.Height, Terraria.Entity.height, Terraria.NPC.netUpdate, Terraria.Entity.oldDirection, Terraria.NPC.oldDirectionY, Terraria.NPC.oldTarget, Terraria.Main.player, Terraria.Entity.position, Terraria.Main.projectile, Terraria.NPC.target, Terraria.NPC.targetRect, Terraria.NPC.type, Microsoft.Xna.Framework.Rectangle.Width, Terraria.Entity.width, Microsoft.Xna.Framework.Rectangle.X, Microsoft.Xna.Framework.Vector2.X, Microsoft.Xna.Framework.Rectangle.Y, and Microsoft.Xna.Framework.Vector2.Y.

Referenced by Terraria.NPC.TargetClosest(), and Terraria.NPC.TargetClosest_WOF().