public void Step(ref DropStepState token, int condition) { if (CheckDropToken(ref token.HandPiece, ref token.DestinationTile, token.Side) != PieceSideState.NONE) { NextAction(ref token); } }
private void NextActionDrop(ref DropPrepStepState token, PieceSide pieceSide) { var dropToken = new DropStepState { DestinationTile = token.DestinationTile, HandPiece = token.HandPiece, Side = pieceSide }; dropSequence.Next(this, ref dropToken, (int)StepAB.B); }
private void NextAction(ModalEV modal, PieceSide answer) { var dropToken = new DropStepState { HandPiece = handService.FindHandPiece(modal.DropFrontBackModal.HandPieceReferenceId, entitiesDB), DestinationTile = tileService.FindTileEV(modal.DropFrontBackModal.TileReferenceId, entitiesDB), Side = modal.DropFrontBackModal.Answer.value }; dropModalAnswerSequence.Next(this, ref dropToken); }
public void Step(ref DropPrepStepState token, int condition) { // TODO CheckDropToken needs to return a state that allows a single-sided drop token PieceSideState resultState = CheckDropToken(ref token.HandPiece, ref token.DestinationTile, null); if (resultState == PieceSideState.BOTH) { NextAction(ref token); } else if (resultState == PieceSideState.FRONT || resultState == PieceSideState.BACK) { var dropToken = new DropStepState { DestinationTile = token.DestinationTile, HandPiece = token.HandPiece, Side = resultState == PieceSideState.FRONT ? PieceSide.FRONT : PieceSide.BACK }; NextAction(ref dropToken); } }
private void NextAction(ref DropStepState token) { dropSequence.Next(this, ref token, (int)StepAB.B); }