public void Step(ref HandPiecePressStepState token, int condition) { HandPieceEV handPiece = handService.FindHandPiece(token.HandPieceEntityId, entitiesDB); bool isClicked = !handPiece.Highlight.IsHighlighted; handService.HighlightHandPiece(ref handPiece, isClicked, entitiesDB); }
private void OnPressed(int entityId, bool isPressed) { if (!isPressed) { return; } // if not turn team or num piece count == 0, stop HandPieceEV handPiece = handService.FindHandPiece(entityId, entitiesDB); TurnEV currentTurn = turnService.GetCurrentTurnEV(entitiesDB); if (handPiece.PlayerOwner.PlayerColor != currentTurn.TurnPlayer.PlayerColor || handPiece.HandPiece.NumPieces.value <= 0 || currentTurn.ForcedRearrangementStatus.ForcedRearrangmentActive) { handPiece.Highlight.IsPressed.value = false; // Will trigger a HandPiecePressEngine, but IsPressed check will stop it return; } var pressState = new HandPiecePressStepState { HandPieceEntityId = entityId }; boardPressSequence.Next(this, ref pressState); }
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); }
private void MovePieceTypeToHand(PlayerColor teamColor, PieceType front, PieceType back, PieceEV[] pieces) { HandPieceEV handPiece = handService.FindHandPiece(front, back, teamColor, entitiesDB); List <PieceEV> teamPieces = pieces.Where(piece => piece.PlayerOwner.PlayerColor == teamColor).ToList(); teamPieces.ForEach(piece => { handService.AddPieceToHand(piece, entitiesDB, teamColor); pieceSetService.SetPieceLocationToHandLocation(piece, entitiesDB); piece.Visibility.IsVisible.value = false; }); }
public void Step(ref ForcedRearrangementStepState token, int condition) { TurnEV currentTurn = turnService.GetCurrentTurnEV(entitiesDB); turnService.SetForcedRearrangementStatus(currentTurn, true, entitiesDB); HandPieceEV handPiece = handService.FindHandPiece( token.PieceToRearrange.Value.Piece.Front, token.PieceToRearrange.Value.Piece.Back, currentTurn.TurnPlayer.PlayerColor, entitiesDB); handService.HighlightHandPiece(ref handPiece, true, entitiesDB); }
private void MoveCapturePieceToOtherPlayersHand(PieceEV pieceCaptured) { // Remove piece from player hand TurnEV currentTurn = turnService.GetCurrentTurnEV(entitiesDB); HandPieceEV handPiece = handService.FindHandPiece( pieceCaptured.Piece.Front, pieceCaptured.Piece.Back, currentTurn.TurnPlayer.PlayerColor, entitiesDB); handService.DecrementHandPiece(ref handPiece); // Add piece to other player's hand PlayerColor opponent = TurnService.CalcOtherTurnPlayer(currentTurn.TurnPlayer.PlayerColor); handService.AddPieceToHand(pieceCaptured, entitiesDB, opponent); }
public void Step(ref HandPiecePressStepState token, int condition) { HandPieceEV handPieceToChange = handService.FindHandPiece(token.HandPieceEntityId, entitiesDB); List <PieceEV> alteredPieces = pieceHighlightService.DeHighlightPlayerPieces( handPieceToChange.PlayerOwner.PlayerColor, entitiesDB); if (alteredPieces.Count > 0) { tileHighlightService.DeHighlightOtherTeamTilePieces( alteredPieces, handPieceToChange.PlayerOwner.PlayerColor, entitiesDB); } List <HandPieceEV> otherHandPieces = handService.FindAllTeamHandPiecesExcept( token.HandPieceEntityId, handPieceToChange.PlayerOwner.PlayerColor, entitiesDB); handService.DeHighlightHandPieces(otherHandPieces, entitiesDB); }