I would break up the game's effects into functions. Functions are useful when you plan on reusing a similar set of actions across different events with different condition. For example, and end turn function could be referenced when a player manually presses a button, or it can be caused by playing a certain card.Function parameters are also flexible and useful for organizing variables. A life gain function could use 2 parameters to define target and amount - lifeGain(playerb,4).
As your game gets more complex, you can just add additional functions for new effects that should normally be isolated from previous ones. Watch out for recursive functions though!