This is not something that needs to be in life(). My suggestion would be to add it under proc/drop_held_item() similar to how I've handled grenades. The only real difference will be that Poly will wait until perched to eat the cracker.