I've started to give the Alouette III a thorough overhaul, adding support for many things FG added in recent years (tooltips, checklists, effects and shaders,...)
I've also taken the opportunity to adapt the excellent rotor particles from the EC-135 and tinker a bit with it - this might be of interest for other helicopter developers.
The particle system is now completely environment-sensitive - on dusty ground there will be lots of yellowish dust stirred by the rotor, on water there will be white spray instead, if the helicopter flies above the snowline there'll be snow swirling, and also rain, environment wetness or dustiness are recognized. Also, the particle system adapts to ambient lighting as well as the aircraft landing light.
Engine start during a rain shower:
The rotors cause water spray on the wet apron which is illuminated by the heli lights:
I've tried to make this sort of an example case for other aircraft developers in that there's pretty much everything (ALS glass with rain and frost, ALS rotor wash, ALS lightspots, rotor wash dust particles,...) handled by one single class, the effect manager
This doesn't necessarily mean that I would recommend to do everything in Nasal (some things could equally well be implemented as JSBSIm system or property rule), but this presents all that's needed in a fairly clear and transparent structure in one place. It also illustrates a few performance-friendly tricks like the usage of property node reference pointers to streamline property I/O or checking of results against Nasal-records before doing any property I/O. Or to simply run only what's needed...
It should be fairly straightforward to adapt the effect manager to other use cases at the simple expense of changing the value of some variables and driving it using different properties.