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

◆ AI_158_GetHomeLocation()

static Vector2 Terraria.Projectile.AI_158_GetHomeLocation ( Player master,
int stackedIndex )
inlinestatic

Definition at line 40256 of file Projectile.cs.

40257 {
40258 int num = master.bodyFrame.Height;
40259 if (num == 0)
40260 {
40261 num = 1;
40262 }
40263 Vector2 vector = Main.OffsetsPlayerHeadgear[master.bodyFrame.Y / num];
40264 vector.Y -= 2f;
40265 if (master.mount.Active && master.mount.Type == 52)
40266 {
40267 vector.Y += 6f;
40268 vector.X -= master.direction * 10;
40269 }
40270 switch (stackedIndex % 6)
40271 {
40272 case 1:
40273 vector += new Vector2(master.direction * 8, master.gravDir * -2f);
40274 break;
40275 case 2:
40276 vector += new Vector2(master.direction * -10, master.gravDir * -2f);
40277 break;
40278 case 4:
40279 vector += new Vector2(master.direction * 10, master.gravDir * -10f);
40280 break;
40281 case 5:
40282 vector += new Vector2(master.direction * -12, master.gravDir * -10f);
40283 break;
40284 case 3:
40285 {
40287 _ = master.direction;
40288 vector = vector2 + new Vector2(0f, master.gravDir * -10f);
40289 break;
40290 }
40291 }
40292 vector += new Vector2(0f, master.gravDir * -16f) * (stackedIndex / 6);
40293 Vector2 vector3 = master.RotatedRelativePoint(master.MountedCenter);
40294 _ = master.direction;
40295 return (vector3 + new Vector2(0f, master.gravDir * -21f) + vector).Floor();
40296 }

References Terraria.Mount.Active, Terraria.Player.bodyFrame, Terraria.Entity.direction, Terraria.Player.gravDir, Microsoft.Xna.Framework.Rectangle.Height, Terraria.Player.mount, Terraria.Player.MountedCenter, Terraria.Main.OffsetsPlayerHeadgear, Terraria.Player.RotatedRelativePoint(), and Terraria.Mount.Type.

Referenced by Terraria.Main.SortBabyBirdProjectiles().