A movement verb in a weekend
Aim with the mouse or the right stick and punch: the glove shoots out, and a fraction of a second later the recoil launches you the other way. Punch again in mid-air and the glove snaps back with a second, stronger kick, which works as a double jump. The glove recharges when you touch the ground, with a short coyote time so a punch just after walking off a ledge still counts.
The level adds sticky walls that catch you mid-flight and let you slide down slowly, moving platforms and conveyor belts, all tuned with the designers during the jam. Rotate triggers turn gravity by 90 degrees and the view turns with it, so parts of the level are played on their side or upside down, and the music changes with each orientation through an FMOD parameter.
if (protracted && activateGloves.WasPressedThisFrame())
{
// Second punch in the air: retract and kick off harder.
retractCoroutine?.StopCoroutine();
Retract();
rb.AddForce(-direction * doubleJumpForce, ForceMode2D.Impulse);
}
if (canActivate && activateGloves.WasPressedThisFrame())
{
protracted = true;
canActivate = false; // recharged on (coyote) ground
retractCoroutine = Cooldown(extendedDuration, Retract);
Cooldown(knockbackDelay, () =>
rb.AddForce(-direction * knockbackForce, ForceMode2D.Impulse));
}
The rest of the jam
Besides the movement I built the dialogue view, the pause menu and the FMOD audio hookup, with state and events running on Ripple so designers could wire up triggers without code.
Made with Canozalez, Chaos-1001 (art), Pierre-Henri Barralis (music & audio) and the rest of the jam team.