Go back to : Skydrift research homepage

Gensou Skydrift - Dash (speed boost)

Dash behaviour

If the new dash power is higher than the current boost power :

If the player ground type is NoJump, the upper power is set to 0.

Then, if the upper power is strictly superior to 0 :

Note : the current boost power is used every frame while the boost timer is not expired. This means that if the player switches from airbone to grounded (or the other way around), the topspeed will change accordingly. So for example, using a Fan in the air with Suika and landing with 20 frames remaining will change the air fan into a ground fan.

Clic here to show code

// From class Tank
	public void dash(float dashpower, float upperpower = 0f, int dashframe = 120)
	{
		if (dashpower > this.mBoostRatio)
		{
			this.mBoostRatio = dashpower;
			this.mBoostFrame = dashframe;
		}
		if (this.mGroundType == EGroundType.NoJump)
		{
			upperpower = 0f;
		}
		if (upperpower > 0f)
		{
			this.mVelocity.y = this.mVelocity.y + 10f;
			this.mJumpFrame = 60;
			// Note : this is an older version ↓
      // this.mIsGround = (this.mIsFakeGround = false);
      // But current version looks better to me
      // Though I did not test, the result might be the same
      this.mIsGround = this.mIsFakeGround = false;
		}
		if (this.mCamera)
		{
			this.mCamera.invokeBlur(dashpower - 1f);
		}
	}

Dash values

Dash values in Gensou Skydrift, ordered by dash power then dash frames, ascendant.
Dash source Dash power Upper power Dash frames
Start boost
(holding accelerate strictly more than 80 frames or not accelerating)
1f 0f 15
Elixir
(Special State Kokushi)
1.1f 0f 3
Start boost
(holding accelerate between 1 and 80 frames (included))
1.1f 0f 15
Yellow rings
(with Koishi's Last Word HeartBreak)
1.1f 0f 15
Suwako Last Word on herself
(Special State MyRain)
1.15f 0f 3
Suika Last Word
(Special State PurplePower)
1.2f 0f 3
Udonge Last Word
(Special State KokushiEx)
1.2f 0f 3
Switching rider 1.2f 0f 10
Start boost
(holding accelerate between 21 and 30 frames (included))
1.2f 0f 15
Yellow rings
(without Koishi Last Word HeartBreak)
1.2f 0f 15
Red rings 1.2f 0f 60
Start boost
(holding accelerate between 31 and 40 frames (included))
1.3f 0f 15
Cradle 1.3f 20f 30
Start boost
(holding accelerate between 41 and 50 frames (included))
1.35f 0f 15
Orin Last Word CatWalk 1.4f 20f 30
Fan 1.4f 0f 70
Reverie 1.42f 20f 100

Note 1 : Special States are reapplied every frame while not over, so their dash frames are deceptive.

Note 2 : For some reason, Suika & Udonge Last Word special states (PurplePower & KokushiEX) have a weird condition activations according to the decompilers. It might just be some decompilation error. Anyway, as a special state should not be another special state, this probably does not change anything.

Clic here to show code

// From class Tank, method releaseAccelLock
      float speedMultiplier = 1f;
      if (this.accelFrames <= 50 && this.accelFrames > 40)
        speedMultiplier = 1.35f;
      else if (this.accelFrames <= 40 && this.accelFrames > 30)
        speedMultiplier = 1.3f;
      else if (this.accelFrames <= 30 && this.accelFrames > 20)
        speedMultiplier = 1.2f;
      else if (this.accelFrames <= 80 && this.accelFrames > 0)
        speedMultiplier = 1.1f;
      this.mVelocity.z += this.cTankThrottleMaxSpeed * 0.9f;
      this.dash(speedMultiplier, boostDuration: 15);

// From class Tank, method updateSpecialState, switch on special States
				default:
					if (espstate != ESPState.PurplePower)
					{
						if (espstate == ESPState.KokushiEX)
						{
							this.dash(1.2f, 0f, 3);
						}
					}
					else
					{
						this.dash(1.2f, 0f, 3);
					}
					break;

Ground cradles

As seen in Dash behaviour section, it is possible to prevent dashes using upper power to send the player in the air. This can be done by using those dashes with the NoJump ground type. (Note : a player ground type is based on the last ground the gravity ray touched, see Ringbounce study for more details) All NoJump areas in vabilla game can be found in the dedicated list.