<aside> ⚡ script "map_bouncepad_horizontal" (int force, int angle, int sound)
</aside>
This script is called by the player whenever they step on a horizontal bounce pad. The parameters are determined by the bounce pad on which they stepped on.
This script can replaced by adding a new script in your map of the name, map_bouncepad_horizontal
, to add additional behavior to this event, or override the existing behavior.
This script has no expected return value.
force
: int - How much force to apply to the player when they are not holding jump.angle
: int - Which direction the bounce pad is facing, in degrees.sound
: int - Which sound effect to play when launched.The default horizontal bounce pad script has relatively universal behavior.
First, to prevent the player from getting unintended extra bounce, check for a short-lived powerup called "JumpDirDelay"
. This powerup lasts 8 tics. If the player has this powerup, stop the script. Otherwise, give it to them.
Apply the given force
in the direction corresponding to angle
.
Using sound
as an index into an array, play a sound effect for the bounce sound.
// Activator: Player who bounced
//
str padSounds[3] = {
"misc/boing",
"misc/jumppad",
"misc/pumpjet",
};
script "map_bouncepad_horizontal" (int force, int angle, int sound)
{
if(CheckInventory("JumpDirDelay") > 0)
terminate;
GiveInventory("JumpDirDelay", 1);
if(sound > -1) {
ThingSound(ActivatorTID(), padSounds[sound], 128);
}
ThrustThing(angle * 256 / 360, force, force>30, 0);
}