예제 #1
0
 public void Step(ref DropStepState token, int condition)
 {
     if (CheckDropToken(ref token.HandPiece, ref token.DestinationTile, token.Side) != PieceSideState.NONE)
     {
         NextAction(ref token);
     }
 }
예제 #2
0
        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);
        }
예제 #4
0
        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);
            }
        }
예제 #5
0
 private void NextAction(ref DropStepState token)
 {
     dropSequence.Next(this, ref token, (int)StepAB.B);
 }