public void Step(ref ForcedRecoveryStepState token, int condition) { TurnEV currentTurn = turnService.GetCurrentTurnEV(entitiesDB); IPieceData piece = pieceFactory.CreateIPieceData(token.PieceMoved.Piece.PieceType); bool forcedRecoveryPossible = token.PieceMoved.Tier.TopOfTower && // Paranoia check piece.Abilities.PostMove.Contains(PostMoveAbility.FORCED_RECOVERY) && !HasDestinationTiles(token.PieceMoved) && checkService.ForcedRecoveryResolvesOrDoesNotCreateCheck(token.PieceMoved, currentTurn, entitiesDB); NextAction(ref token, forcedRecoveryPossible); }