Derp. This won't work
return phase <= 8 && (!phase || _phase & (1 << phase + 23));
will - look at how _phase is constructed in SetPhase method