Ported effects classes from Carcassonne repo