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

◆ PredictedPosition

Vector2 Terraria.GameInput.LockOnHelper.PredictedPosition
staticget

Definition at line 57 of file LockOnHelper.cs.

58 {
59 get
60 {
62 if (aimedTarget == null)
63 {
64 return Vector2.Zero;
65 }
66 Vector2 vector = aimedTarget.Center;
68 {
69 vector = pos;
70 vector += Main.npc[index].Distance(Main.player[Main.myPlayer].Center) / 2000f * Main.npc[index].velocity * 45f;
71 }
72 Player player = Main.player[Main.myPlayer];
73 int num = ItemID.Sets.LockOnAimAbove[player.inventory[player.selectedItem].type];
74 while (num > 0 && vector.Y > 100f)
75 {
76 Point point = vector.ToTileCoordinates();
77 point.Y -= 4;
78 if (!WorldGen.InWorld(point.X, point.Y, 10) || WorldGen.SolidTile(point.X, point.Y))
79 {
80 break;
81 }
82 vector.Y -= 16f;
83 num--;
84 }
85 float? num2 = ItemID.Sets.LockOnAimCompensation[player.inventory[player.selectedItem].type];
86 if (num2.HasValue)
87 {
88 vector.Y -= aimedTarget.height / 2;
89 Vector2 v = vector - player.Center;
90 Vector2 vector2 = v.SafeNormalize(Vector2.Zero);
91 vector2.Y -= 1f;
92 float num3 = v.Length();
93 num3 = (float)Math.Pow(num3 / 700f, 2.0) * 700f;
94 vector.Y += vector2.Y * num3 * num2.Value * 1f;
95 vector.X += (0f - vector2.X) * num3 * num2.Value * 1f;
96 }
97 return vector;
98 }
99 }
static double Pow(double x, double y)
static ? float[] LockOnAimCompensation
Definition ItemID.cs:1094
static int[] LockOnAimAbove
Definition ItemID.cs:1092

Referenced by Terraria.GameInput.LockOnHelper.SetUP(), and Terraria.GameInput.LockOnHelper.Update().