Extract a beer method that supports special abilities

also not healing past max_health