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

◆ AI_149_GolfBall()

void Terraria.Projectile.AI_149_GolfBall ( )
inlineprivate

Definition at line 16968 of file Projectile.cs.

16969 {
16970 if (!npcProj && timeLeft < 10)
16971 {
16972 timeLeft = 10;
16973 }
16974 if (ai[1] == -1f)
16975 {
16976 Tile tileSafely = Framing.GetTileSafely(base.Bottom.ToTileCoordinates());
16977 if (!tileSafely.active() || tileSafely.type != 494)
16978 {
16979 ai[1] = 0f;
16980 netUpdate = true;
16981 }
16982 return;
16983 }
16985 if (ballStepResult.State == BallState.Resting)
16986 {
16987 damage = 0;
16988 if (Main.netMode == 1 && owner == Main.myPlayer && localAI[1] != (float)ballStepResult.State)
16989 {
16990 netUpdate = true;
16991 }
16992 }
16993 localAI[1] = (float)ballStepResult.State;
16994 rotation += localAI[0];
16995 if (velocity.Y != 0f && ballStepResult.State == BallState.Moving)
16996 {
16997 rotation += velocity.X * 0.1f + velocity.Y * 0.1f;
16998 }
16999 if (ballStepResult.State == BallState.Moving && owner == Main.myPlayer)
17000 {
17001 bool? flag = ProjectileID.Sets.ForcePlateDetection[135];
17002 if ((!flag.HasValue || flag.Value) && localAI[1] != 0f)
17003 {
17004 Collision.SwitchTiles(position, width, height, oldPosition, 4);
17005 }
17006 }
17007 if (ballStepResult.State == BallState.Moving && Main.netMode == 2 && Main.player.IndexInRange(owner) && Main.player[owner].active)
17008 {
17009 RemoteClient.CheckSection(owner, position);
17010 }
17011 }
Vector2 oldPosition
Definition Entity.cs:18
Vector2 velocity
Definition Entity.cs:16
Vector2 position
Definition Entity.cs:14
static BallStepResult StepGolfBall(Entity entity, ref float angularVelocity)
static ? bool[] ForcePlateDetection

References Terraria.Projectile.ai, Terraria.RemoteClient.CheckSection(), Terraria.Projectile.damage, Terraria.ID.ProjectileID.Sets.ForcePlateDetection, Terraria.Framing.GetTileSafely(), Terraria.Entity.height, Terraria.Projectile.localAI, Terraria.Main.myPlayer, Terraria.Main.netMode, Terraria.Projectile.netUpdate, Terraria.Projectile.npcProj, Terraria.Entity.oldPosition, Terraria.Projectile.owner, Terraria.Main.player, Terraria.Entity.position, Terraria.Projectile.rotation, Terraria.GameContent.Golf.GolfHelper.StepGolfBall(), Terraria.Collision.SwitchTiles(), Terraria.Projectile.timeLeft, Terraria.Entity.velocity, Terraria.Entity.width, and Microsoft.Xna.Framework.Vector2.Y.