Just an update.... this one is coming along nicely.... what an amazing table.
I was playing around with trying different methods for RGB flasher animations:
-animated flasher sub-routines that self-change flasher brightness settings (total %) depending on the bonus multipliers (or any other event you want)...or an auto increase based on time, etc...
-Timer settings that change on their own to make an animation speed change depending on other events, or just an incremental speed change
-using variables for colours that can self-change with one animation sub-routine instead of creating a whole bunch for different colours
In the end it doesn't change much for what you guys actually see, but with each table I mod, I learn more and figure out smarter / better ways of doing things. I don't always use them with each table, but the basics are there if I want to try to use them.
I can do straight up solenoid feedback and RGB flashers (with only DOFLinx commands) that match the table VERY quickly if I want.
...but tables like SLAMT1LT's are kind of like the Jersey Jack of digital pinball. So much effort is put into the details of sounds, music, videos, game modes, features.... each time I go through the scripts for one of these tables it blows my mind the work that is put into it. I get inspired to try something a little different with each table...wherever I can at least. I also want effects to be distinct with what's happening, and not become a mixed up mess. This requires ALOT of testing and sometimes requires more than simple DOFLinx commands to get it right.
I spent the last night or so on Tron Legacy with something that sounds simple, but it took a lot of work to sort it out and make it work with the script. I wanted to have it so that every shot on the ramp would give an animated left to right flasher animation. Something I did a crap load of on other tables.... but with this table I wanted the colour of the animated effect to be different depending on what mode / stage you were in. I also wanted to have each "level" of the ramp bonus directly affect the brightness of the animation with each shot as well.
Well I got it all sorted, but scrapped the brightness idea. It worked well enough, but it just didn't really like the way it looked.
I originally had commands all over the script that enabled Timers for the different coloured flasher animation sub-routines. It's not the way I like to do things, and created more problems to make it work the way I wanted. So, instead I worked though it and came up with this sub routine:
'DOFLinx - Ramp - Colour - Modes
Sub DOFLinx_Ramp_Colour_Mode()
If (RampCombo = TRUE) Then
DOFLinx_Combo_Jackpot()
Exit Sub
End If
If (CluBall = FALSE) Then
If (ZuseJP > 1) Then
DOFLinx_Combo_Jackpot()
Exit Sub
End If
If (GridActive = False) Then 'Not in the Grid Mode
DOFLinx_LR_Green_Stage=1 'DOFLinx - LR Green Stage
DOFLinx_LR_Green.Enabled=True 'DOFLinx - LR Green Timer
End If
If (GridActive = TRUE) and (IDDiscActive = FALSE) and (ID = FALSE) and (LightCycleActive = FALSE) and (ZuseActive = FALSE) and (DiscWarsRamp =>1) Then 'Grid - No ID Disc
DOFLinx_LR_Purple_Stage=1 'DOFLinx Left to Right Purple Stage
DOFLinx_LR_Purple.Enabled=True 'DOFLinx Left to Right Purple Timer
End If
If (DiscWarsRamp = 0) and (ID = FALSE) and (IDDiscActive = FALSE) and (IDDiscReady = FALSE) Then 'Grid - Armoury Unlocked'
DOFLinx_LR_Purple_Stage=1 'DOFLinx Left to Right Purple Stage
DOFLinx_LR_Purple.Enabled=True 'DOFLinx Left to Right Purple Timer
End If
If (GridActive = TRUE) and (IDDiscActive = False) and (IDDiscReady = True) and (LightCycleMode = FALSE) and (RampHit => 5) Then ' Grid - Ramp =>5
DOFLinx_LR_Purple_Stage=1 'DOFLinx Left to Right Purple Stage
DOFLinx_LR_Purple.Enabled=True 'DOFLinx Left to Right Purple Timer
End If
If (IDDiscActive = True) or (DiscWarsReady = TRUE) or (DiscWarsActive = True) or (DiscWarsRepeat = TRUE) or (LightCycleReady = True) and (LightCycleMode = FALSE) Then 'Grid - ID Disc - Ready For All Games
DOFLinx_LR_Blue_Stage=1 'DOFLinx Left to Right Blue Stage
DOFLinx_LR_Blue.Enabled=True 'DOFLinx Left to Right Blue Timer
End If
End If
If (CluBall = True) Then 'Clu Mode
DOFLinx_LR_Yellow_Stage=1 'DOFLinx Left to Right Yellow Stage
DOFLinx_LR_Yellow.Enabled=True 'DOFLinx Left to Right Yellow Timer
End If
If (LightCycleMode = True) Then 'Sam's Light Cycle on Ramp
DOFLinx_LR_White_Stage=1 'DOFLinx Left to Right White Stage
DOFLinx_LR_White.Enabled=True 'DOFLinx Left to Right White Timer
End If
If (ZuseReady = True) or (ZuseActive = True) Then 'Zuse Mode
DOFLinx_LR_Red_Stage=1 'DOFLinx Left to Right Red Stage
DOFLinx_LR_Red.Enabled=True 'DOFLinx Left to Right Red Timer
End If
If (PortalReady = True) or (PortalMode = True) Then 'Portal Mode
DOFLinx_LR_Cyan_Stage=1 'DOFLinx Left to Right White Stage
DOFLinx_LR_Cyan.Enabled=True 'DOFLinx Left to Right White Timer
End If
End Sub 'DOLFinx Ramp colour Modes Sub Ends
As a result, instead of inserting a crap load of commands used all over the table script.... I used "one" DOFLinx_Ramp_Colour_Mode() command in the table's "ramp" sub-routine...that's it. I also have all my Colour sub routines grouped together... though I could also just use one animation sub routine and change up the "colour" by using a variable.
Why the extra work? SLAMT1LT is one of the few FP authors out there who is always updating his tables. Unlike VP (arcade pinballs), FP doesn't use roms. So if SLAM updates this table in the future, then I have to mod the script all over again. Doing things this way, makes it easier to re-enter single sub-routine calls throughout the script...and I can also change up aspects of the animations and effects much easier to my liking afterward.
I've also taken a liking to making the RGB under cabinet lighting change for different things. For Superman, I made the lighting change to green for Krypton ball, and other colours for the multiball modes.
For Tron, I've made it so that the RGB under cabinet colour changes to match whatever "character" the randomizer choses. I've also started having it turn off at certain times to reflect events going on to bring focus to what's occurring, etc... It's surprisingly effective...especially during video clips,etc.. Makes me want to go back and update Aliens Legacy to do more of this.
Keep in mind...up until a couple of months ago.... I never even looked at Visual Basic. The last bit or programming I did was with Q-Basic back in 1995.
This is all new to me, but I think I'm covering this new territory with Future Pinball (cabinet feedback, RGB modulated flashers, animated effects, etc) with some really cool results. Have you ever seen a pinball game with animated RGB flashers mimicking machine gun fire or nuclear explosions before? 
I've taken some inspiration from the amazing work done with VP and addressable LEDS...but I'm not restricted by roms.... I can do whatever I want!
What I really need from you guys is feedback on how the effects look with the normal 5 flasher bar, and specifically how the shaker, gear and blower fans effects work out for you on the tables I’ve done so far.
Since I don’t have a shaker or gear motor, I can’t quite know how those effects are coming across to someone playing. I mean….does the gear motor only give noise for feedback, or do you feel it at all?
Edited by TerryRed, 29 November 2016 - 08:22 AM.