You don't test if the group you are using is different from the group the entity had in the first place.
Code:
if(_hit) _hit = hit;

This won't do anything useful as _hit is lost when the method returns.
Code:
c_ignore(0);

Does not do what you intended to do I guess because it causes no group at all to be ignored.


Always learn from history, to be sure you make the same mistakes again...