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

◆ AI_137_CanHit()

bool Terraria.Projectile.AI_137_CanHit ( Vector2 targetPosition)
inline

Definition at line 59302 of file Projectile.cs.

59303 {
59304 if (WorldGen.SolidTile((int)targetPosition.X / 16, (int)targetPosition.Y / 16))
59305 {
59306 return false;
59307 }
59308 Vector2 vector = base.Top + Vector2.UnitY * 20f;
59309 bool flag = Collision.CanHitLine(vector, 0, 0, targetPosition, 0, 0);
59310 if (!flag)
59311 {
59313 Vector2 spinningpoint = v.SafeNormalize(Vector2.UnitY);
59315 Vector2 vector3 = vector2 + spinningpoint.RotatedBy(1.5707963705062866) * v.Length() * 0.2f;
59316 if (Collision.CanHitLine(vector, 0, 0, vector3, 0, 0) && Collision.CanHitLine(vector3, 0, 0, targetPosition, 0, 0))
59317 {
59318 flag = true;
59319 }
59320 if (!flag)
59321 {
59322 Vector2 vector4 = vector2 + spinningpoint.RotatedBy(-1.5707963705062866) * v.Length() * 0.2f;
59323 if (Collision.CanHitLine(vector, 0, 0, vector4, 0, 0) && Collision.CanHitLine(vector4, 0, 0, targetPosition, 0, 0))
59324 {
59325 flag = true;
59326 }
59327 }
59328 }
59329 return flag;
59330 }
static Vector2 Lerp(Vector2 value1, Vector2 value2, float amount)
Definition Vector2.cs:227

References Terraria.Collision.CanHitLine(), Microsoft.Xna.Framework.Vector2.Length(), Microsoft.Xna.Framework.Vector2.Lerp(), Terraria.WorldGen.SolidTile(), and Microsoft.Xna.Framework.Vector2.UnitY.

Referenced by Terraria.Projectile.Colliding().