PlayerStatePattern