Replaced Card's useOn with CardAction's useOn where it was used
Finalized delegate class' methods
Added child classes of CardAction that override card action functionalities from the main CardAction class in order to implement special behavior
Removed useOn and related functions from Card class that were delegated to the CardAction class
Associated minions with special card usages with specific CardAction child classes
Replace old usage of Card's useOn with new CardAction method
Change all tests of cards to use new CardAction methods
Removed Observer pattern because the implementation of CardAction rendered the Observer unecessary