You could recreate your pistons as Routines, but since webCore pistons tend to be more complex, I would take a look at the SharpTools rule engine. Its capabilities should support all but the most complex pistons. There is a great community there that can help with rule design, and the developers are very actively involved.