Functional language approaches are very neat to encode game rules.
Just define the sets to which a rule apply, define rule -> behaviour maps and then apply. With this alot of procedural/object orientated cruft shrinks down to
one page algo&definitions.
Lua does supply this style, just needs some slight additions.