You can also add all the effects to ordinary cards, and control the effect with an amount, eg normal cards can have strength 1 and special cards a higher amount.
This will of course allow a card with lots of additional effects, but nobody says you have to use all possibilities of the cards that you have.
The advantage of the above is that you don't have special cases anymore.
Like most problems, there is not a single best solution, it all depends on how you see the problem, and what you are most comfortable with.
My project: Messing about in FreeRCT
, dev blog
, and IRC #freerct at oftc.net