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

◆ CanHitWithOwnBody()

bool Terraria.Projectile.CanHitWithOwnBody ( Entity ent)
inline

Definition at line 11004 of file Projectile.cs.

11005 {
11006 if (Distance(ent.Center) > ownerHitCheckDistance)
11007 {
11008 return false;
11009 }
11010 bool flag = Collision.CanHit(base.position, width, height, ent.position, ent.width, ent.height) || Collision.CanHitLine(base.Center + new Vector2(direction * width / 2, -height / 3), 0, 0, ent.Center + new Vector2(0f, -ent.height / 3), 0, 0) || Collision.CanHitLine(base.Center + new Vector2(direction * width / 2, -height / 3), 0, 0, ent.Center, 0, 0) || Collision.CanHitLine(base.Center + new Vector2(direction * width / 2, 0f), 0, 0, ent.Center + new Vector2(0f, ent.height / 3), 0, 0);
11012 if (num != 0f)
11013 {
11014 if (flag)
11015 {
11016 return flag;
11017 }
11019 Vector2 position = base.Top + new Vector2(0f, 0f - num);
11020 Vector2 position2 = ent.Top + new Vector2(0f, 0f - num);
11021 if (genSearch != null)
11022 {
11024 {
11025 position = result.ToWorldCoordinates();
11026 }
11028 {
11029 position2 = result.ToWorldCoordinates();
11030 }
11031 }
11032 flag |= Collision.CanHitLine(position, 0, 0, position2, 0, 0);
11033 }
11034 return flag;
11035 }
float Distance(Vector2 Other)
Definition Entity.cs:187
Vector2 position
Definition Entity.cs:14
static GenSearch[] ExtendedCanHitCheckSearch
static float[] ExtendedCanHitCheckRange
float ownerHitCheckDistance
Definition Projectile.cs:88
static Conditions.NotNull _cachedConditions_notNull
static Conditions.IsSolid _cachedConditions_solid
static GenSearch Chain(GenSearch search, params GenCondition[] conditions)
Definition Searches.cs:123
static bool Find(Point origin, GenSearch search, out Point result)
Definition WorldUtils.cs:27

References Terraria.Projectile._cachedConditions_notNull, Terraria.Projectile._cachedConditions_solid, Terraria.Collision.CanHit(), Terraria.Collision.CanHitLine(), Terraria.WorldBuilding.Searches.Chain(), Terraria.Entity.direction, Terraria.Entity.Distance(), Terraria.ID.ProjectileID.Sets.ExtendedCanHitCheckRange, Terraria.ID.ProjectileID.Sets.ExtendedCanHitCheckSearch, Terraria.WorldBuilding.WorldUtils.Find(), Terraria.Entity.height, Terraria.Projectile.ownerHitCheckDistance, Terraria.Entity.position, Terraria.Projectile.type, and Terraria.Entity.width.