Double Jump: Difference between revisions

From Ukikipedia
Jump to navigation Jump to search
No edit summary
(missed a few common air step actions)
 
(11 intermediate revisions by 4 users not shown)
Line 7: Line 7:
|group= Airborne
|group= Airborne
|id= 0x081
|id= 0x081
|into=  
|into=Universal interactions: [[Twirling]], Transition in: [[Single Jump]], Airborne cancels: [[Water Plunge]], [[Squished]], [[Vertical Wind]], non cancel: [[Dive]], [[Jump Kick]], [[Ground Pound]], common air step: [[Feet Stuck In Ground]], [[Hard Backward Ground Kb]], [[Double Jump Land]], [[Air Hit Wall]], [[Backwards Air Kb]], [[Soft Bonk]], [[Ledge Grab]], [[Start Hanging]], [[Lava Boost]]
|out of= [[Single Jump Land]], [[Sideflip Land]], [[Freefall Land]]
|out of= [[Single Jump Land]], [[Sideflip Land]], [[Freefall Land]]
|animation= 0x4C, 0x4D
|animation= 0x4C, 0x4D
Line 16: Line 16:
* A [[Sideflip Land]]
* A [[Sideflip Land]]
* A [[Freefall Land]]
* A [[Freefall Land]]
== Transition In ==
''See [[Single Jump|single jump]] for more details''
# If Mario is squished and/or has a quicksand depth more than 1, cancel to [[Single Jump]]. (This cancel is shared with [[Twirling]])<ref>https://github.com/n64decomp/sm64/blob/9921382a68bb0c865e5e45eb594d9c64db59b1af/src/game/mario.c#L779-L781</ref>
# Mario's vertical speed is set to <math>52+\frac{\text{hspeed}}4</math>.
# Mario's forward velocity is multiplied by 0.8
== Behavior ==
== Behavior ==
As with all airborne actions, a variety of "cancels" are checked prior to actually performing the jump action. These checks are as follows:
As with all airborne actions, a variety of "cancels" are checked prior to actually performing the jump action. See [[Single Jump#Airborne cancels]]
 
# Water - If Mario's height is lower than 100 units below the water height, the action is transitioned into the [[water plunge]] action.
# Squish - If Mario is supposed to be squished, his action is changed to the [[squished]] action.
# Vertical Wind- If Mario is above a vertical wind floor, his action is changed to the [[vertical wind]] action. (This is due to the jump action having the "Allow Vertical Wind Action" flag.


At this point, two more things happen prior to the jump action:
At this point, two more things happen prior to the jump action:
* Mario's quicksand depth is set to 0.
* Mario's quicksand depth is set to 0.
* Mario plays a falling noise if he has fallen more than 1150 units from his peak.
* Mario plays a falling noise if he has fallen more than 1150 units from his peak.
With the jump action occurring, the following happens:
With the jump action occurring, the following happens:
# If Mario's vertical speed is not negative, his animation is set to the double jump rising animation. Otherwise, it is set to the double jump falling animation.
# If Mario's vertical speed is not negative, his animation is set to the double jump rising animation. Otherwise, it is set to the double jump falling animation.
# If the B button is pressed, Mario will either enter the [[dive]] action if his speed is greater than 28 or the jump kick action otherwise. This stops the double jump action.
# If the B button is pressed, Mario will either enter the [[dive]] action if his speed is greater than 28 or the [[Jump Kick|jump kick]] action otherwise.
# If the Z button is pressed, Mario will enter the [[ground pound]] action. This stops the double jump action.
# If the Z button is pressed, Mario will enter the [[ground pound]] action.
# Mario performs the other noises for the jump. <!--Elaborate on this.-->
# Mario performs the other noises for the jump.
# Mario's velocity is updated via [[straining]].
# Now, Mario performs the quarter-frame movement via a full [[Movement_Steps#Air_Step|common air step]]. The landing action is a [[double jump land]] action and the check has both the "Check Ledge Grab" and "Check Hang" flags.
# Now, Mario performs the quarter-frame movement.
 
## The position a quarter of Mario's velocity ahead of Mario is checked for cancels/outcomes. Anything in bold is an exit out of the rest of the checks.
== References ==
### If the position is above OOB but below Mario's current floor height, Mario's height is changed to the floor height and he '''lands'''.
<references/>
### If the position is above OOB but not below Mario's current floor height, Mario's height is set to the new height and he '''hits a wall'''.
 
### If the position's height is 78 units or less below a floor and there is not a ceiling 160 units or less above it (because of how variable types an [[overflow jump]] may occur here):
{{actions}}
###* Mario's position horizontally is updated to the new position.
###* Mario's height is set to that of the floor's height.
###* Mario's floor and floor height are updated.
###* Mario '''lands'''.
### If the position's height is 78 units or less below a floor and there is a ceiling 160 units or less above it (because of how variable types an [[overflow jump]] may occur here):
###* Mario's height is set to that of the floor's height.
###* Mario '''lands'''. (Because Mario's floor is not updated, this is where a [[Pedro Spot|pedro spot]] may occur)
### If the position's height is 160 units under, at, or above a ceiling and his vertical velocity is positive or zero:
###* Mario's vertical velocity is set to zero.
###* If the ceiling above Mario is hangable, Mario '''hangs'''. (Since this did not use the new position's ceiling/location, this is potentially a [[Hangable-Ceiling Upwarp|hangable-ceiling upwarp.]])
###* Otherwise, '''nothing happens'''.
### If the position's height is 160 units under, at, or above a ceiling and his vertical velocity is negative:
###* If the position's height is at or below Mario's floor height, Mario's height is set to the floor height, and he '''lands'''.
###* Otherwise, Mario's height is set to the new height and he '''hits a wall'''.
### If there is a wall 30 units above the position but not 150 units above the position:
###* If Mario's velocity is positive, Mario is pushed by the wall opposite the velocity direction, and there is a floor 60 units behind the wall within 238 units upward, Mario '''ledge grabs'''. (Potentially a [[GLG]])
###* Otherwise Mario's position is set to the new position, his floor and floor height are updated, and '''nothing happens'''.
### Mario's position is set to the new position and his floor and floor height are updated.
### If Mario is colliding with a wall 150 or 30 units up and the upper or only wall is lava, he '''lava wall boosts'''.
### If Mario is colliding with a wall 150 or 30 units up and Mario is facing perpendicular to 0x6000 units away, he '''hits a wall'''.
### If no other exit has occurred, '''nothing happens'''.
## This repeats until Mario encounters something besides '''nothing happens''', up to four times including the initial time.
## If Mario's velocity is not negative, his new height is the peak height.
## The footstep noise for Mario's floor is updated.
## If A is held and vertical speed is more than 20, divide it by 4.
## If A is held, Mario is wearing the wing cap, and his vertical speed is negative:
### Subtract two from the vertical speed.
### If the vertical speed is less than -37.5, add four.
### If the vertical speed is more than -37.5 now, set it to -37.5.
## If neither of those two previous situations occurred, subtract 4 from Mario's vertical speed and set it to -75 if it passes below.
## If Mario is above a vertical wind floor and his vertical position is above -1500 but below 3500:
### If Mario's height is 1500 or greater, add 10000/(8*(Mario's Height - 1300)) to the vertical velocity. If it passes 10000/(Mario's Height - 1300), set it to that instead.
### Otherwise, add 6.25 to the vertical speed and cap it to 50 if the vertical speed passes it.
### The Japanese version plays the wind sound now.
## The visual model's position and angle are updated.

Latest revision as of 01:22, 21 January 2024

Double Jump
Properties
Official Name secJump (Second Jump)
Hex 0x03000881
Action Flags Air, Allow Vertical Wind Action, Control Jump Height
Action Group Airborne
ID 0x081
Transitions
Into Universal interactions: Twirling, Transition in: Single Jump, Airborne cancels: Water Plunge, Squished, Vertical Wind, non cancel: Dive, Jump Kick, Ground Pound, common air step: Feet Stuck In Ground, Hard Backward Ground Kb, Double Jump Land, Air Hit Wall, Backwards Air Kb, Soft Bonk, Ledge Grab, Start Hanging, Lava Boost
Out of Single Jump Land, Sideflip Land, Freefall Land
Other
Animation 0x4C, 0x4D

A double jump is an action that typically follows an earlier jump with more height. Specifically, a double jump can be entered by pressing A while in:

Transition In

See single jump for more details

  1. If Mario is squished and/or has a quicksand depth more than 1, cancel to Single Jump. (This cancel is shared with Twirling)[1]
  2. Mario's vertical speed is set to .
  3. Mario's forward velocity is multiplied by 0.8

Behavior

As with all airborne actions, a variety of "cancels" are checked prior to actually performing the jump action. See Single Jump#Airborne cancels

At this point, two more things happen prior to the jump action:

  • Mario's quicksand depth is set to 0.
  • Mario plays a falling noise if he has fallen more than 1150 units from his peak.

With the jump action occurring, the following happens:

  1. If Mario's vertical speed is not negative, his animation is set to the double jump rising animation. Otherwise, it is set to the double jump falling animation.
  2. If the B button is pressed, Mario will either enter the dive action if his speed is greater than 28 or the jump kick action otherwise.
  3. If the Z button is pressed, Mario will enter the ground pound action.
  4. Mario performs the other noises for the jump.
  5. Now, Mario performs the quarter-frame movement via a full common air step. The landing action is a double jump land action and the check has both the "Check Ledge Grab" and "Check Hang" flags.

References