Separate tip text and player enablement logic in multiple subclasses