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

◆ HitGolfBall()

static void Terraria.GameContent.Golf.GolfHelper.HitGolfBall ( Entity entity,
Vector2 velocity,
float roughLandResistance )
inlinestatic

Definition at line 468 of file GolfHelper.cs.

469 {
470 Vector2 bottom = entity.Bottom;
471 bottom.Y += 1f;
472 Point point = bottom.ToTileCoordinates();
473 Tile tile = Main.tile[point.X, point.Y];
474 if (tile != null && tile.active())
475 {
476 TileMaterial byTileId = TileMaterials.GetByTileId(tile.type);
477 velocity = Vector2.Lerp(velocity * byTileId.GolfPhysics.ClubImpactDampening, velocity, byTileId.GolfPhysics.ImpactDampeningResistanceEfficiency * roughLandResistance);
478 }
479 entity.velocity = velocity;
480 if (entity is Projectile projectile)
481 {
482 projectile.timeLeft = 18000;
483 if (projectile.ai[1] < 0f)
484 {
485 projectile.ai[1] = 0f;
486 }
487 projectile.ai[1] += 1f;
488 projectile.localAI[1] = 1f;
489 Main.LocalGolfState.RecordSwing(projectile);
490 }
491 }
static TileMaterial GetByTileId(ushort tileId)
static Vector2 Lerp(Vector2 value1, Vector2 value2, float amount)
Definition Vector2.cs:227

References Terraria.Tile.active(), Terraria.Entity.Bottom, Terraria.GameContent.Metadata.TileGolfPhysics.ClubImpactDampening, Terraria.GameContent.Metadata.TileMaterials.GetByTileId(), Terraria.GameContent.Metadata.TileMaterial.GolfPhysics, Terraria.GameContent.Metadata.TileGolfPhysics.ImpactDampeningResistanceEfficiency, Microsoft.Xna.Framework.Vector2.Lerp(), Terraria.Main.LocalGolfState, Terraria.Main.tile, Terraria.Tile.type, Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Point.Y.

Referenced by Terraria.Projectile.AI_150_GolfClubHelper(), and Terraria.GameContent.Golf.FancyGolfPredictionLine.Update().