Hey, that's kind of clever. So each class determines if the conditions are sufficient for successful action. I assume that the classes themselves are rigorously specific to one set of conditions since the partitioning of the condition space must be distinct.
I don't do much OOP programming but I have been looking for a reason to try it. Maybe I've got a problem or two that might need this.
Thanks