A flexible tilt system for future pinball by shiva (blue)
This simulates a mechanical Plumb Bob type tilt system for Future Pinball, with custom code, as a alternative to the future pinball tilt system.
This was designed to REPLACE FP's tilt code, so any special coding calling FP's built in tilt system should be removed (such as Sub FuturePinball_TiltWarning(ByVal Warnings))
You do not need to define any keystrokes, this was developed using the standard template, so will work as is.
A ball is created in the middle of a wire ring, and triggers a tilt when ever the ball hits the top wall. It was set so it has a cool down effect (that will increase with each multiple hits if the cool down effect is triggered) and will gradually reset but if it registers multiple hits before that cool down effect happens, it will tilt. It is adjustable as well.
This can be used with any version of Future Pinball, as well as BAM. It was reported that this example with simple modifications, also works with analog based tilt, which FP doesn't support.
In the fpt example table, the flex tilt code starts at line 909
Options (there's 3) starts at line 996. TiltDifficulty has 6 settings, is set to 3 (medium) , you can change those settings like the timer interval for the cool down effect in Sub SetTiltDefaults(TiltDifficulty)
INSTRUCTIONS
*** IMPORTANT ***
There is a bug in the basic table template for tilt code, so you need to add one line in the template code
In Sub Drain_Hit() added this to the line JUST BEFORE the End Sub line
ResetTiltedState(TiltDifficulty) ' This resets the variable values for each new ball
Copy and paste the entire tilt code into the script, and copy and paste the objects included in this example into your table
Because this system does not use the editor for amount of nudges before a tilt, set the NudgeCount variable with the amount of nudges. Unlike FP, there are no limits, the usual table standard is 3
PRESETS
This contains 6 presets (including one for custom settings) that change the behavior of the tilt code, as well as give 6 levels of difficulty. The hardest difficulty is preset 1, the easiest is preset 5. Preset 6 is for user defined tilt behavior code.
This system features presets with a "cool down" period, and a Tilt flexible Interval system, which can increase the interval time for longer cool down periods. This system is optional and adjustable
You can set the system to clear each or all nudges after a set period of time, adjust the time period for the cool down effect, or set the default FP like behavior of 3 strikes and you are out. All nudges are set to 3 as default, this DOES NOT use the editor for the amount of nudges, but you can change the amount in the code (NudgeCount)
Since this is a flexible code, you can also change and swap the presets with in the script, as many times as you like, with one simple command.
The default code to put in is:
ResetTiltedState(1)
ResetTiltedState is the subroutine, it blanks out your variables and starts over, the number is the preset (from 1 to 6)
If you put in a number other than 1 to 6, the system has a built in error catcher that will set it to the medium setting, preset 3
The system automatically RESETS TO ITS CONST VALUE (set in the Const statement) at the loss of a ball
LIST OF PRESETS
Preset 1: Very Hard - amount of nudges set, once made during a ball in play, the system tilts
Preset 2 - Hard - Uses the TiltFlex system, that multiples the total amount of nudges to the timer interval set for a cool down period,
so the timer will constantly increase in interval time at each nudge
The system is set so it resets the timer, and Starts over again, so you have to redo the first nudge, and then the second.
If you reach the maximum amount of nudges while the interval time is still going, you will tilt.
You also have a option of limiting the total amount of nudges multiplier
Preset 3 - Medium - Removes the Interval Multiplication, but still resets the timer, so a second nudge will reset the timer back to the beginning,
and start over. In other words, if you have a nudge cooldown going at 7 seconds, and you have a second nudge,
then the timer will stop, and start over, and it will take a full 14 seconds to clear both nudges
Preset 4 - Easy - This is the same as Preset 3, BUT, it does not restart the timer. It will just add on the second nudges time for a cool down.
This can be a far shorter time than preset 3 in most occasions
Preset 5 - Easy - The first nudge starts a cooldown timer, any other nudges (unless you reach the maximum amount of nudges within that time limit and you tilt)
are ignored and removed at the end of the first nudges cool down time limit.
Preset 6 - Custom - A place for your own settings.
This simulates a mechanical Plumb Bob type tilt system for Future Pinball, with custom code, as a alternative to the future pinball tilt system.
This was designed to REPLACE FP's tilt code, so any special coding calling FP's built in tilt system should be removed (such as Sub FuturePinball_TiltWarning(ByVal Warnings))
You do not need to define any keystrokes, this was developed using the standard template, so will work as is.
A ball is created in the middle of a wire ring, and triggers a tilt when ever the ball hits the top wall. It was set so it has a cool down effect (that will increase with each multiple hits if the cool down effect is triggered) and will gradually reset but if it registers multiple hits before that cool down effect happens, it will tilt. It is adjustable as well.
This can be used with any version of Future Pinball, as well as BAM. It was reported that this example with simple modifications, also works with analog based tilt, which FP doesn't support.
In the fpt example table, the flex tilt code starts at line 909
Options (there's 3) starts at line 996. TiltDifficulty has 6 settings, is set to 3 (medium) , you can change those settings like the timer interval for the cool down effect in Sub SetTiltDefaults(TiltDifficulty)
INSTRUCTIONS
*** IMPORTANT ***
There is a bug in the basic table template for tilt code, so you need to add one line in the template code
In Sub Drain_Hit() added this to the line JUST BEFORE the End Sub line
ResetTiltedState(TiltDifficulty) ' This resets the variable values for each new ball
Copy and paste the entire tilt code into the script, and copy and paste the objects included in this example into your table
Because this system does not use the editor for amount of nudges before a tilt, set the NudgeCount variable with the amount of nudges. Unlike FP, there are no limits, the usual table standard is 3
PRESETS
This contains 6 presets (including one for custom settings) that change the behavior of the tilt code, as well as give 6 levels of difficulty. The hardest difficulty is preset 1, the easiest is preset 5. Preset 6 is for user defined tilt behavior code.
This system features presets with a "cool down" period, and a Tilt flexible Interval system, which can increase the interval time for longer cool down periods. This system is optional and adjustable
You can set the system to clear each or all nudges after a set period of time, adjust the time period for the cool down effect, or set the default FP like behavior of 3 strikes and you are out. All nudges are set to 3 as default, this DOES NOT use the editor for the amount of nudges, but you can change the amount in the code (NudgeCount)
Since this is a flexible code, you can also change and swap the presets with in the script, as many times as you like, with one simple command.
The default code to put in is:
ResetTiltedState(1)
ResetTiltedState is the subroutine, it blanks out your variables and starts over, the number is the preset (from 1 to 6)
If you put in a number other than 1 to 6, the system has a built in error catcher that will set it to the medium setting, preset 3
The system automatically RESETS TO ITS CONST VALUE (set in the Const statement) at the loss of a ball
LIST OF PRESETS
Preset 1: Very Hard - amount of nudges set, once made during a ball in play, the system tilts
Preset 2 - Hard - Uses the TiltFlex system, that multiples the total amount of nudges to the timer interval set for a cool down period,
so the timer will constantly increase in interval time at each nudge
The system is set so it resets the timer, and Starts over again, so you have to redo the first nudge, and then the second.
If you reach the maximum amount of nudges while the interval time is still going, you will tilt.
You also have a option of limiting the total amount of nudges multiplier
Preset 3 - Medium - Removes the Interval Multiplication, but still resets the timer, so a second nudge will reset the timer back to the beginning,
and start over. In other words, if you have a nudge cooldown going at 7 seconds, and you have a second nudge,
then the timer will stop, and start over, and it will take a full 14 seconds to clear both nudges
Preset 4 - Easy - This is the same as Preset 3, BUT, it does not restart the timer. It will just add on the second nudges time for a cool down.
This can be a far shorter time than preset 3 in most occasions
Preset 5 - Easy - The first nudge starts a cooldown timer, any other nudges (unless you reach the maximum amount of nudges within that time limit and you tilt)
are ignored and removed at the end of the first nudges cool down time limit.
Preset 6 - Custom - A place for your own settings.