It looks like this chunk of new code can go into a helper method, maybe player::rooted(), and get called from these different places.