public void Step(ref ImmobileCaptureStepState token, int condition) { ModalEV modal = modalService.FindModalEV(entitiesDB); SetModalOptions(modal); UpdateModalView(modal); }
public void Step(ref TierExchangeStepState token, int condition) { ModalEV modal = modalService.FindModalEV(entitiesDB); SetModalOptions(modal, ref token); modalService.DisplayModal(modal); }
private void SetModalOptions(ModalEV modal, List <PieceEV> piecesAtLocation) { ModalType modalType = CalcModalType(piecesAtLocation); SetModalType(modal, modalType); SetTierOptions(modal, modalType, piecesAtLocation); }
public void Step(ref ForcedRecoveryStepState token, int condition) { ModalEV modal = modalService.FindModalEV(entitiesDB); SetModalData(token, modal); modalService.DisplayModal(modal); }
public void Step(ref ClickImmobileCaptureStepState token, int condition) { ModalEV modal = modalService.FindModalEV(entitiesDB); SetModalOptions(modal, ref token); modalService.DisplayModal(modal); }
private void SetModalVictoriousPlayer(ModalEV modal, PlayerColor victoriousPlayer) { entitiesDB.ExecuteOnEntity( modal.ID, (ref ModalEV modalToChange) => { modalToChange.VictoriousPlayer.PlayerColor = victoriousPlayer; }); }
// TODO Move all usages to ModalService private void SetModalType(ModalEV modal, ModalType modalType) { entitiesDB.ExecuteOnEntity( modal.ID, (ref ModalEV modalToChange) => { modalToChange.Type.Type = modalType; }); }
public void Step(ref CheckmateModalStepState token, int condition) { ModalEV modal = modalService.FindModalEV(entitiesDB); TurnEV currentTurn = turnService.GetCurrentTurnEV(entitiesDB); PlayerColor victoriousPlayer = TurnService.CalcOtherTurnPlayer(currentTurn.TurnPlayer.PlayerColor); SetModalOptions(modal, victoriousPlayer); modalService.DisplayModal(modal); }
public void Step(ref ClickPieceStepState token, int condition) { ModalEV modal = modalService.FindModalEV(entitiesDB); List <PieceEV> piecesAtLocation = pieceFindService.FindPiecesByLocation( token.ClickedPiece.Location.Location, entitiesDB); SetModalOptions(modal, piecesAtLocation); modalService.DisplayModal(modal); }
private void SetModalData(ForcedRecoveryStepState token, ModalEV modal) { entitiesDB.ExecuteOnEntity( modal.ID, (ref ModalEV modalToChange) => { modalToChange.Type.Type = ModalType.CONFIRM; modalToChange.Confirm.PieceMoved = token.PieceMoved; modalToChange.Confirm.PieceCaptured = token.PieceCaptured; }); }
private void SetModalOptions(ModalEV modal, ref TierExchangeStepState token) { int tileReferenceId = token.ReferenceTile.ID.entityID; entitiesDB.ExecuteOnEntity( modal.ID, (ref ModalEV modalToChange) => { modal.Type.Type = ModalType.TIER_1_3_EXCHANGE_CLICK; modal.CaptureOrStack.TileReferenceId = tileReferenceId; }); }
private void SetModalOptions(ModalEV modal, ref SubstitutionStepState token) { int tileReferenceId = token.TileReferenceEV.ID.entityID; entitiesDB.ExecuteOnEntity( modal.ID, (ref ModalEV modalToChange) => { modal.Type.Type = ModalType.SUBSTITUTION_CLICK; modal.CaptureOrStack.TileReferenceId = tileReferenceId; }); }
private void SetModalOptions(ModalEV modal, ref CapturePieceStepState token) { int tileReferenceId = token.DestinationTile.ID.entityID; entitiesDB.ExecuteOnEntity( modal.ID, (ref ModalEV modalToChange) => { modal.Type.Type = ModalType.CAPTURE_STACK; modal.CaptureOrStack.TileReferenceId = tileReferenceId; }); }
private void SetModalOptions(ModalEV modal, ref ClickImmobileCaptureStepState token) { int tileReferenceId = token.TileReferenceEV.ID.entityID; entitiesDB.ExecuteOnEntity( modal.ID, (ref ModalEV modalToChange) => { modal.Type.Type = ModalType.CLICK_IMMOBILE_CAPTURE; modal.CaptureOrStack.TileReferenceId = tileReferenceId; }); }
private void SetTierOptions(ModalEV modal, ModalType modalType, List <PieceEV> piecesAtLocation) { TurnEV currentTurn = turnService.GetCurrentTurnEV(entitiesDB); PieceEV pieceTier1 = piecesAtLocation[0]; PieceEV pieceTier2 = piecesAtLocation[1]; PieceEV? pieceTier3 = modalType == ModalType.TOWER_3RD_TIER ? (PieceEV?)piecesAtLocation[2] : null; PlayerColor topPlayerColor = pieceTier3.HasValue ? pieceTier3.Value.PlayerOwner.PlayerColor : pieceTier2.PlayerOwner.PlayerColor; bool immobileCapturePossible = (pieceTier2.PlayerOwner.PlayerColor != pieceTier1.PlayerOwner.PlayerColor && immobileCaptureService.CanImmobileCapture(currentTurn.TurnPlayer.PlayerColor, pieceTier1) && immobileCaptureService.CanImmobileCapture(currentTurn.TurnPlayer.PlayerColor, pieceTier2)) || (pieceTier3.HasValue && pieceTier2.PlayerOwner.PlayerColor != pieceTier3.Value.PlayerOwner.PlayerColor && immobileCaptureService.CanImmobileCapture(currentTurn.TurnPlayer.PlayerColor, pieceTier2) && immobileCaptureService.CanImmobileCapture(currentTurn.TurnPlayer.PlayerColor, pieceTier3.Value)); bool noCheckViolationsExist = immobileCaptureService.NoCheckViolationsExist(piecesAtLocation, immobileCapturePossible, entitiesDB); entitiesDB.ExecuteOnEntity( modal.ID, (ref ModalEV modalToChange) => { modalToChange.ImmobileCaptureState.ImmobileCaptureDesignated = false; modalToChange.Tier1.Enabled = pieceTier1.Tier.TopOfTower || (immobileCapturePossible && noCheckViolationsExist && pieceTier1.PlayerOwner.PlayerColor != pieceTier2.PlayerOwner.PlayerColor && pieceTier1.PlayerOwner.PlayerColor != topPlayerColor); modalToChange.Tier1.Name = CalcButtonText(pieceTier1); modalToChange.Tier1.ReferencedPieceId = pieceTier1.ID.entityID; modalToChange.Tier2.Enabled = pieceTier2.Tier.TopOfTower || (immobileCapturePossible && noCheckViolationsExist && (pieceTier2.PlayerOwner.PlayerColor != pieceTier1.PlayerOwner.PlayerColor || (!pieceTier3.HasValue || pieceTier2.PlayerOwner.PlayerColor != pieceTier3.Value.PlayerOwner.PlayerColor)) && pieceTier2.PlayerOwner.PlayerColor != topPlayerColor); modalToChange.Tier2.Name = CalcButtonText(pieceTier2); modalToChange.Tier2.ReferencedPieceId = pieceTier2.ID.entityID; if (pieceTier3.HasValue) { modalToChange.Tier3.Enabled = pieceTier3.Value.Tier.TopOfTower; modalToChange.Tier3.Name = CalcButtonText(pieceTier3.Value); modalToChange.Tier3.ReferencedPieceId = pieceTier3.Value.ID.entityID; } else { modalToChange.Tier3.Enabled = false; } }); }
private void SetModalOptions(ModalEV modal, ref DropPrepStepState token) { int tileReferenceId = token.DestinationTile.ID.entityID; int handPieceReferenceId = token.HandPiece.ID.entityID; PieceType front = token.HandPiece.HandPiece.PieceType; PieceType back = token.HandPiece.HandPiece.Back; entitiesDB.ExecuteOnEntity( modal.ID, (ref ModalEV modalToChange) => { modal.Type.Type = ModalType.FRONT_BACK; modal.DropFrontBackModal.TileReferenceId = tileReferenceId; modal.DropFrontBackModal.HandPieceReferenceId = handPieceReferenceId; modal.DropFrontBackModal.Front = front; modal.DropFrontBackModal.Back = back; }); }
private void SetModalOptions(ModalEV modal) { PieceEV pieceTier1 = pieceFindService.FindPieceEVById(modal.Tier1.ReferencedPieceId, entitiesDB).Value; List <PieceEV> piecesAtLocation = pieceFindService.FindPiecesByLocation(pieceTier1.Location.Location, entitiesDB); PieceEV topPiece = pieceFindService.FindTopPieceByLocation(pieceTier1.Location.Location, entitiesDB).Value; PlayerColor colorToEnable = topPiece.PlayerOwner.PlayerColor; PieceEV pieceTier2 = piecesAtLocation[1]; PieceEV?pieceTier3 = piecesAtLocation.Count > 2 ? (PieceEV?)piecesAtLocation[2] : null; // TODO I think this logic is unnecessary, but I'm too scared to remove it now (all handled in TowerModalEngine). Later refactor. bool noTier1CheckViolationsExist = immobileCaptureService.NoTier1CheckViolationsExist(piecesAtLocation, entitiesDB); bool noTier3BetrayalTwoFileMoveViolationsExist = immobileCaptureService.NoTier3BetrayalTwoFileMoveViolationsExist(piecesAtLocation, entitiesDB); entitiesDB.ExecuteOnEntity( modal.ID, (ref ModalEV modalToChange) => { modalToChange.ImmobileCaptureState.ImmobileCaptureDesignated = true; modalToChange.Tier1.Enabled = noTier1CheckViolationsExist && pieceTier1.PlayerOwner.PlayerColor == colorToEnable && pieceTier1.PlayerOwner.PlayerColor != pieceTier2.PlayerOwner.PlayerColor; modalToChange.Tier2.Enabled = pieceTier2.PlayerOwner.PlayerColor == colorToEnable && (pieceTier2.PlayerOwner.PlayerColor != pieceTier1.PlayerOwner.PlayerColor || (pieceTier3.HasValue && pieceTier2.PlayerOwner.PlayerColor != pieceTier3.Value.PlayerOwner.PlayerColor)); if (pieceTier3.HasValue) { modalToChange.Tier3.Enabled = noTier3BetrayalTwoFileMoveViolationsExist && pieceTier3.Value.PlayerOwner.PlayerColor == colorToEnable && pieceTier3.Value.PlayerOwner.PlayerColor != pieceTier2.PlayerOwner.PlayerColor; } else { modalToChange.Tier3.Enabled = false; } }); }
private void SetModalOptions(ModalEV modal, PlayerColor victoriousPlayer) { SetModalType(modal, ModalType.CHECKMATE); SetModalVictoriousPlayer(modal, victoriousPlayer); }
public void DisplayModal(ModalEV modal) { modal.Visibility.IsVisible.value = true; }
private void UpdateModalView(ModalEV modal) { modal.Visibility.IsVisible.value = true; }