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

◆ GrappleMovement()

void Terraria.Player.GrappleMovement ( )
inline

Definition at line 21565 of file Player.cs.

21566 {
21567 if (grappling[0] < 0)
21568 {
21569 return;
21570 }
21572 if (Main.myPlayer == whoAmI && mount.Active)
21573 {
21574 mount.Dismount(this);
21575 }
21576 canCarpet = true;
21577 carpetFrame = -1;
21578 wingFrame = 1;
21579 if (velocity.Y == 0f || (wet && (double)velocity.Y > -0.02 && (double)velocity.Y < 0.02))
21580 {
21581 wingFrame = 0;
21582 }
21583 if (wings == 4)
21584 {
21585 wingFrame = 3;
21586 }
21587 if (wings == 30)
21588 {
21589 wingFrame = 0;
21590 }
21592 rocketFrame = false;
21593 canRocket = false;
21594 rocketRelease = false;
21595 fallStart = (int)(position.Y / 16f);
21596 int num = -1;
21597 for (int i = 0; i < grapCount; i++)
21598 {
21599 if (Main.projectile[grappling[i]].type == 403)
21600 {
21601 num = i;
21602 }
21603 }
21605 if (preferedPlayerVelocityY > 0f)
21606 {
21607 GoingDownWithGrapple = true;
21608 }
21609 velocity.X = preferedPlayerVelocityX;
21610 velocity.Y = preferedPlayerVelocityY;
21611 if (num != -1)
21612 {
21613 Projectile projectile = Main.projectile[grappling[num]];
21614 if (projectile.position.X < position.X + (float)width && projectile.position.X + (float)projectile.width >= position.X && projectile.position.Y < position.Y + (float)height && projectile.position.Y + (float)projectile.height >= position.Y)
21615 {
21616 int num2 = (int)(projectile.position.X + (float)(projectile.width / 2)) / 16;
21617 int num3 = (int)(projectile.position.Y + (float)(projectile.height / 2)) / 16;
21619 if (Main.tile[num2, num3].type == 314)
21620 {
21621 Vector2 Position = default(Vector2);
21622 Position.X = projectile.position.X + (float)(projectile.width / 2) - (float)(width / 2);
21623 Position.Y = projectile.position.Y + (float)(projectile.height / 2) - (float)(height / 2);
21625 int num4 = 13;
21626 if (miscEquips[2].stack > 0 && miscEquips[2].mountType >= 0 && MountID.Sets.Cart[miscEquips[2].mountType] && (!miscEquips[2].expertOnly || Main.expertMode))
21627 {
21629 }
21630 int num5 = height + Mount.GetHeightBoost(num4);
21631 if (Minecart.GetOnTrack(num2, num3, ref Position, width, num5) && !Collision.SolidCollision(Position, width, num5 - 20))
21632 {
21634 DelegateMethods.Minecart.rotation = fullRotation;
21635 DelegateMethods.Minecart.rotationOrigin = fullRotationOrigin;
21637 Minecart.WheelSparks(mount.Delegations.MinecartDust, position, width, height, 25);
21638 }
21639 }
21640 }
21641 }
21642 if (itemAnimation == 0)
21643 {
21644 if (velocity.X == 0f && preferredPlayerDirectionToSet.HasValue)
21645 {
21647 }
21648 if (velocity.X > 0f)
21649 {
21650 ChangeDir(1);
21651 }
21652 if (velocity.X < 0f)
21653 {
21654 ChangeDir(-1);
21655 }
21656 }
21657 if (controlJump)
21658 {
21659 if (releaseJump)
21660 {
21661 if ((velocity.Y == 0f || (wet && (double)velocity.Y > -0.02 && (double)velocity.Y < 0.02)) && !controlDown)
21662 {
21663 velocity.Y = 0f - jumpSpeed;
21664 jump = jumpHeight / 2;
21665 releaseJump = false;
21666 }
21667 else
21668 {
21669 velocity.Y += 0.01f;
21670 releaseJump = false;
21671 }
21674 }
21675 }
21676 else
21677 {
21678 releaseJump = true;
21679 }
21680 }
Vector2 velocity
Definition Entity.cs:16
Vector2 position
Definition Entity.cs:14
static bool[] Cart
Definition MountID.cs:9
bool expertOnly
Definition Item.cs:111
int mountType
Definition Item.cs:275
Action< Vector2 > MinecartDust
Definition Mount.cs:85
void Dismount(Player mountedPlayer)
Definition Mount.cs:5229
MountDelegatesData Delegations
Definition Mount.cs:507
bool Active
Definition Mount.cs:345
void SetMount(int m, Player mountedPlayer, bool faceLeft=false)
Definition Mount.cs:5258
static float jumpSpeed
Definition Player.cs:2091
Item[] miscEquips
Definition Player.cs:1171
bool GoingDownWithGrapple
Definition Player.cs:593
void RefreshMovementAbilities(bool doubleJumps=true)
Definition Player.cs:21793
void RemoveAllGrapplingHooks()
Definition Player.cs:31290
void ChangeDir(int dir)
Definition Player.cs:40136
int[] grappling
Definition Player.cs:2305
static int jumpHeight
Definition Player.cs:2089
void StopVanityActions(bool multiplayerBroadcast=true)
Definition Player.cs:31204
bool rocketRelease
Definition Player.cs:2319
bool minecartLeft
Definition Player.cs:1721
float fullRotation
Definition Player.cs:1291
void GetGrapplingForces(Vector2 fromPosition, out int? preferredPlayerDirectionToSet, out float preferedPlayerVelocityX, out float preferedPlayerVelocityY)
Definition Player.cs:21699
Vector2 fullRotationOrigin
Definition Player.cs:1293
void RefreshDoubleJumps()
Definition Player.cs:21804

References Terraria.ID.MountID.Sets.Cart, Terraria.Main.expertMode, Terraria.Item.expertOnly, Terraria.Mount.GetHeightBoost(), Terraria.Minecart.GetOnTrack(), Terraria.Entity.height, Terraria.Item.mountType, Terraria.Main.myPlayer, Terraria.Entity.position, Terraria.Main.projectile, Terraria.Collision.SolidCollision(), Terraria.Main.tile, Terraria.Minecart.WheelSparks(), Terraria.Entity.width, Microsoft.Xna.Framework.Vector2.X, Microsoft.Xna.Framework.Vector2.Y, and Microsoft.Xna.Framework.Vector2.Zero.