:root { --lh-red: #c0392b; --lh-blue: #2980b9; --lh-green: #27ae60; --lh-dark-green: #16a085; --lh-purple: #8e44ad; --lh-orange: #e67e22; --lh-yellow: #f1c40f; --lh-paper-bg: 255, 251, 240; --lh-string-color: 192, 57, 43; --lh-book-color: var(--gray-monochrome); --lh-tape-color: 90,90,90,0.3; --lh-white-bg: 249,249,249; --lh-dark-bg: 50, 50, 50; --lh-highlighter: var(--bright-accent); --lh-border-color: var(--gray-monochrome); --lh-wiki-note-color: var(--bright-accent) } /** * 旧代码合集 * 为了向下兼容而保留 */ .grid-container{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.grid-container,.grid-container [class*=grid]{box-sizing:border-box}[class*=grid]{padding:5px}.grid{width:100%}.grid-large{width:75%}.grid-big{width:50%}.grid-medium{width:33.33%}.grid-small{width:25%}@media screen and (min-width:768px){.wd-grid-large{width:75%}.wd-grid,.wd-grid-big{width:50%}.wd-grid-medium{width:33.33%}.wd-grid-small{width:25%}}.text-hover-hide{opacity:0;transition:opacity .3s}.text-hover-hide:hover{opacity:1}.text-block-hide{background:rgb(var(--black-monochrome));color:rgb(var(--black-monochrome));transition:background .3s}.text-block-hide:hover{background:0 0}.text-blur-hide,.text-blur-hover-hide{filter:blur(.3rem);-webkit-filter:blur(.3rem) transition: blur .3s}.text-blur-hover-hide:hover{filter:blur(0);-webkit-filter:blur(0)}.lyric-box{text-align:center;font-size:1.05rem;display:flex;flex-direction:column;flex-wrap:wrap;justify-content:center}.lyric-box p{margin:1.5em auto}.lyric-box.with-bigger-line p{margin:3em auto} /** * 便签纸 * notepaper */ .notepaper { background: linear-gradient(rgb(var(--lh-paper-bg)) 95%, #ddd 0); line-height: 2em; background-size: 100% 2em; background-attachment: local; border: 2em solid rgb(var(--lh-paper-bg)); box-shadow: 0 0.1rem 0.3rem rgba(0,0,0,0.2); padding: 0; margin: 1em auto; box-sizing: border-box; position: relative } .notepaper p { margin: 0; font-size: 1.05rem; letter-spacing: 0.1rem; line-height: inherit } .notepaper.narrow, .notepaper.wide { width: 90% } @media screen and (min-width:768px){ .notepaper.narrow { width: 50% } .notepaper.wide { width: 75% } } .notepaper.tight { border-width: 1rem; border-left-width: 1.2rem; border-right-width: 1.2rem; line-height: 1.8em; background-size: 100% 1.8em; font-size: 13px } .notepaper.with-string::before { content: ''; width: 0.5em; height: 6rem; background: rgb(var(--lh-string-color)); top: -2rem; right: -1rem; display: block; position: absolute; box-shadow: 0 0.1em 0.2em rgba(0,0,0,0.2); clip-path: polygon(-100% -100%,100% 0%,100% 100%,50% 98%,0% 100%); } .notepaper.with-tape::before { content: ''; border: 1px solid #ddd; background: rgba(var(--lh-tape-color)); width: 1.5em; height: 4em; transform: rotate(45deg); display: block; position: absolute; top: -3em; left: -1.8em } .notepaper.tight.with-string::before { top: -1rem; right: -0.25rem; } .notepaper.tight.with-tape::before { top: -2.5em; left: -1.3em } .notepaper.page { min-height: 36em; counter-increment: page; display: flex; flex-direction: column; justify-content: space-between } @media screen and (min-width:768px){ .notepaper.page { width: 70% } } .notepaper.page:after { content: counter(page); display: block; text-align: center } .notepaper-group { counter-reset: page; } .book-pattern { display: flex; flex-wrap: wrap; flex-direction: row } .book-pattern .notepaper.page:not(.notepaper > .notepaper) { width: 100% } @media screen and (min-width: 768px) { .book-pattern .notepaper.page:not(.notepaper > .notepaper) { width: 50% } } .book-wrapper { background: rgb(var(--lh-book-color)); padding: 0.5rem; box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.2); border-radius: 5px; margin: 1rem auto } @media screen and (min-width: 768px) { .book-wrapper .notepaper { margin: 0 } } /** * 文字修饰 */ .text-highlighted { position: relative } .text-highlighted::before { content: ""; position: absolute; height: 0.9em; bottom: 2px; left: -2px; width: 105%; z-index: -1; background-color: rgb(var(--lh-highlighter)); opacity: .6; transform: skew(-15deg); transition: opacity .2s ease; border-radius: 3px 8px 10px 6px; transition: 0.1s ease background-color; } .text-underlined { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; text-decoration-color: rgb(var(--lh-highlighter)) } .text-wavy { text-decoration: underline wavy; text-underline-offset: 4px; text-decoration-color: rgb(var(--lh-highlighter)) } .text-circled, .text-squared { display: inline-block; border: 2px solid rgb(var(--lh-highlighter)); border-radius: 100%; box-sizing: border-box } .text-squared { border-radius: 0 } .text-shadow { text-shadow: 0.075em 0.075em 0 rgb(var(--lh-highlighter)) } .text-highlighted.td-red::before { background: var(--lh-red) } .text-circled.td-red, .text-squared.td-red { border-color: var(--lh-red) } .text-underlined.td-red, .text-wavy.td-red { text-decoration-color: var(--lh-red) } .text-highlighted.td-blue::before { background: var(--lh-blue) } .text-circled.td-blue, .text-squared.td-blue { border-color: var(--lh-blue) } .text-underlined.td-blue, .text-wavy.td-blue { text-decoration-color: var(--lh-blue) } .text-highlighted.td-green::before { background: var(--lh-green) } .text-circled.td-green, .text-squared.td-green { border-color: var(--lh-green) } .text-underlined.td-green, .text-wavy.td-green { text-decoration-color: var(--lh-green) } .text-highlighted.td-darkgreen::before { background: var(--lh-dark-green) } .text-circled.td-darkgreen, .text-squared.td-darkgreen { border-color: var(--lh-dark-green) } .text-underlined.td-darkgreen, .text-wavy.td-darkgreen { text-decoration-color: var(--lh-dark-green) } .text-highlighted.td-purple::before { background: var(--lh-purple) } .text-circled.td-purple, .text-squared.td-purple { border-color: var(--lh-purple) } .text-underlined.td-purple, .text-wavy.td-purple { text-decoration-color: var(--lh-purple) } .text-highlighted.td-yellow::before { background: var(--lh-yellow) } .text-circled.td-yellow, .text-squared.td-yellow { border-color: var(--lh-yellow) } .text-underlined.td-yellow, .text-wavy.td-yellow { text-decoration-color: var(--lh-yellow) } .text-highlighted.td-orange::before { background: var(--lh-orange) } .text-circled.td-orange, .text-squared.td-orange { border-color: var(--lh-orange) } .text-underlined.td-orange, .text-wavy.td-orange { text-decoration-color: var(--lh-orange) } /* 隐藏文字 */ .text-blank { color: rgba(0,0,0,0) } .text-block { background: rgb(var(--black-monochrome)); color: rgb(var(--black-monochrome)); } .text-blur { filter: blur(0.3em); -webkit-filter: blur(0.3em) } .text-hoverback, .text-selectback { transition-duration: 0.3s; transition-property: background, transform, color } .text-blank.text-hoverback:hover, .text-blank.text-selectback::selection, .text-blank.text-selectback *::selection { color: rgb(var(--black-monochrome)) } .text-block.text-hoverback:hover { background: transparent!important } .text-block.text-selectback::selection, .text-block.text-selectback *::selection { color: rgb(var(--white-monochrome, 255, 255, 255)) } .text-blur.text-hoverback:hover { filter: blur(0)!important; -webkit-filter: blur(0)!important } /** * 附加项 */ .with-border, .with-box-style { border: 1px solid rgb(var(--bright-accent)) } .with-border-dark { border: 1px solid rgb(var(--black-monochrome)) } .with-border-light { border: 1px solid rgb(var(--white-monochrome)) } .with-border-thick { border-width: 2px } .with-shadow-sm { box-shadow: 0 0 0.1em rgba(0,0,0,0.2) } .with-shadow { box-shadow: 0 0.1em 0.2em rgba(0,0,0,0.2) } .with-shadow-lg { box-shadow: 0 0.15em 0.3em rgba(0,0,0,0.2) } .with-shadow-xl { box-shadow: 0 0.2em 0.5em rgba(0,0,0,0.2) } .with-shadow-xxl { box-shadow: 0 0.25em 0.8em rgba(0,0,0,0.2) } .with-padding, .with-box-style { padding: 0.25em 1em } .with-p-sm { padding: 0.125em 0.5em } .with-p-lg { padding: 0.5em 2em } .with-margin, .with-box-style { margin: 1em auto } .with-m-sm { margin: 0.5em auto } .with-m-lg { margin: 2em auto } .with-narrow-width { width: 90%!important; margin-left: auto; margin-right: auto } @media screen and (min-width: 768px) { .with-narrow-width { width: 75%!important } } [class*="with-bg-"], [class*="with-bg-"] h1 { color: #fff!important } .with-bg-red { background: var(--lh-red)!important } .with-bg-blue { background: var(--lh-blue)!important } .with-bg-green { background: var(--lh-green)!important } .with-bg-darkgreen { background: var(--lh-dark-green)!important } .with-bg-yellow { background: var(--lh-yellow)!important } .with-bg-orange { background: var(--lh-orange)!important } .with-bg-purple { background: var(--lh-purple)!important } /** * 删除类 */ .offwith-shadow { box-shadow: none!important } .offwith-border { border: none!important } .offwith-padding, .offwith-pam { padding: 0!important } .offwith-margin, .offwith-pam { margin: 0!important } .offwith-width-limit { width: auto!important; margin-left: auto!important; margin-right: auto!important } div[class*="grider"].offwith-grid-gap { grid-gap: 0!important } /** * 网格布局 */ /* Gridder 容器 */ div[class*="gridder"] { display: grid; box-sizing: border-box; grid-gap: 1rem; padding: 0 } div[class*="gridder"] * { box-sizing: border-box } .gridder, .gridder-col-2 { grid-template-columns: 1fr 1fr; } .gridder-col-3 { grid-template-columns: repeat(3, 1fr); } .gridder-col-4 { grid-template-columns: repeat(4, 1fr); } @media screen and (min-width: 768px) { .pc-gridder, .pc-gridder-col-2 { grid-template-columns: 1fr 1fr; } .pc-gridder-col-3 { grid-template-columns: repeat(3, 1fr); } .pc-gridder-col-4 { grid-template-columns: repeat(4, 1fr); } } .spanner, .spanner-2 { grid-column-start: span 2; } .spanner-3 { grid-column-start: span 3; } /** * 告示组件 */ .signblock, .signblock-dark, .signblock-warn { margin: 1rem auto; box-shadow: 0 0.1rem 0.3rem rgba(0,0,0,0.4); background: rgb(var(--lh-white-bg)); font-size: 1.05rem; padding: 2rem } @media screen and (min-width: 768px) { .signblock, .signblock-dark, .signblock-warn { width: 75% } } .signblock-dark, .signblock-dark h1 { background: rgb(var(--lh-dark-bg)); color: #fff } .signblock-warn, .signblock-warn h1 { background: var(--lh-red); color: #fff } .signblock h1, .signblock-dark h1, .signblock-warn h1 { text-align: center; font-size: 2rem; margin: 0; font-weight: 700 } .signblock-img { display: flex; flex-direction: row; justify-content: center } .signblock-img img { width: 8em } .signblock-footer { font-size: 0.9em; text-align: center; margin: 0.5rem 0; font-weight: bolder; display: block } /** * 报告 */ .reportblock, .reportblock-dark { border: 2px solid rgb(var(--lh-border-color)); box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.3); background: rgb(var(--white-monochrome)); padding: 0.8rem 1.5rem; padding-bottom: 0.4rem; margin: 1.5rem auto; margin-bottom: 1rem; position: relative } .reportblock hr, .reportblock-dark hr { background-color: rgb(var(--lh-border-color)); margin-left: -1.5rem; margin-right: -1.5rem } .reportblock h1:first-child, .reportblock-dark h1:first-child { position: absolute; top: -1rem; left: 1.5rem; font-size: 110%; font-weight: 600; background: rgb(var(--lh-border-color)); color: #fff; padding: 0.2rem 0.5rem; margin: 0; } .reportblock-dark, .reportblock-dark h1 { border-color: rgb(var(--lh-white-bg)); background: rgb(var(--lh-dark-bg)); color: #fff } .reportblock-dark hr { background-color: rgb(var(--lh-white-bg)); } /* 更好的折叠框 */ .bettercollap { margin: 1em 0; } .bettercollap .collapsible-block { width: auto; overflow: hidden; border: 1px solid rgb(var(--lh-border-color)) } .bettercollap .collapsible-block-content, .bettercollap .collapsible-block-link { background: rgb(var(--white-monochrome)); padding: 0.5em } .bettercollap .collapsible-block-content { padding-left: 1em; padding-right: 1em } .bettercollap .collapsible-block-link { color: rgb(var(--lh-border-color)); background: rgb(var(--white-monochrome)); transition: .3s; display: block; } .bettercollap .collapsible-block-link:hover, .bettercollap .collapsible-block-unfolded .collapsible-block-link, .styledcollap.bettercollap .collapsible-block-link { color: rgb(var(--white-monochrome)); background: rgb(var(--lh-border-color))!important; text-decoration: none } .bettercollap .collapsible-block-link:hover a { color: rgb(var(--white-monochrome)) } .bettercollap .collapsible-block-link::before { content: "\25BC"; display: inline-block; margin-right: 0.5em; transform: rotate(-90deg) scale(0.9) } .bettercollap .collapsible-block-unfolded .collapsible-block-link::before { transform: rotate(0) scale(0.9) } .bettercollap .collapsible-block + .collapsible-block { border-top: none } .styledcollap.bettercollap .collapsible-block { border-radius: 2px; box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.3) } .styledcollap.bettercollap .collapsible-block-content { background-color: rgb(var(--pale-gray-monochrome)); border-width: 3px } .styledcollap.bettercollap .collapsible-block-link:hover { background: rgba(var(--lh-border-color),0.95)!important; } /** * 提示框 */ .infoblock { color: #f1f1f1; font-weight: bold; background: #424242; padding: 5px 5px 5px 5px; border-radius: 4px; margin: -0.5rem 0 1rem 0; display: block; width: fit-content; padding-right: 25px; } .infoblock::before { content: "ⓘ " } /** * 单页迭代 */ .offset-page:not(:target), .offset-page:target ~ div#u-default-page { display: none } .offset-page:target { display: block }
What this is
A bunch of miscellaneous CSS 'improvements' that I, Croquembouche, use on a bunch of pages because I think it makes them easier to deal with.
The changes this component makes are bunch of really trivial modifications to ease the writing experience and to make documenting components/themes a bit easier (which I do a lot). It doesn't change anything about the page visually for the reader — the changes are for the writer.
I wouldn't expect translations of articles that use this component to also use this component, unless the translator likes it and would want to use it anyway.
This component probably won't conflict with other components or themes, and even if it does, it probably won't matter too much.
Usage
On any wiki:
[[include :scp-wiki:component:croqstyle]]
This component is designed to be used on other components. When using on another component, be sure to add this inside the component's [[iftags]] block, so that users of your component are not forced into also using Croqstyle.
Related components
Other personal styling components (which change just a couple things):
Personal styling themes (which are visual overhauls):
CSS changes
Reasonably-sized footnotes
Stops footnotes from being a million miles wide, so that you can actually read them.
.hovertip { max-width: 400px; }
Monospace edit/code
Makes the edit textbox monospace, and also changes all monospace text to Fira Code, the obviously superior monospace font.
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;700&display=swap'); :root { --mono-font: "Fira Code", Cousine, monospace; } #edit-page-textarea, .code pre, .code p, .code, tt, .page-source { font-family: var(--mono-font); } .code pre * { white-space: pre; } .code *, .pre * { font-feature-settings: unset; }
Teletype backgrounds
Adds a light grey background to <tt> elements ({{text}}), so code snippets stand out more.
tt { background-color: var(--swatch-something-bhl-idk-will-fix-later, #f4f4f4); font-size: 85%; padding: 0.2em 0.4em; margin: 0; border-radius: 6px; }
No more bigfaces
Stops big pictures from appearing when you hover over someone's avatar image, because they're stupid and really annoying and you can just click on them if you want to see the big version.
.avatar-hover { display: none !important; }
Breaky breaky
Any text inside a div with class nobreak has line-wrapping happen between every letter.
.nobreak { word-break: break-all; }
Code colours
Add my terminal's code colours as variables. Maybe I'll change this to a more common terminal theme like Monokai or something at some point, but for now it's just my personal theme, which is derived from Tomorrow Night Eighties.
Also, adding the .terminal class to a fake code block as [[div class="code terminal"]] gives it a sort of pseudo-terminal look with a dark background. Doesn't work with [[code]], because Wikidot inserts a bunch of syntax highlighting that you can't change yourself without a bunch of CSS. Use it for non-[[code]] code snippets only.
Quick tool to colourise a 'standard' Wikidot component usage example with the above vars: link
:root { --c-bg: #393939; --c-syntax: #e0e0e0; --c-comment: #999999; --c-error: #f2777a; --c-value: #f99157; --c-symbol: #ffcc66; --c-string: #99cc99; --c-operator: #66cccc; --c-builtin: #70a7df; --c-keyword: #cc99cc; } .terminal, .terminal > .code { color: var(--c-syntax); background: var(--c-bg); border: 0.4rem solid var(--c-comment); border-radius: 1rem; }
Debug mode
Draw lines around anything inside .debug-mode. The colour of the lines is red but defers to CSS variable --debug-colour.
You can also add div.debug-info.over and div.debug-info.under inside an element to annotate the debug boxes — though you'll need to make sure to leave enough vertical space that the annotation doesn't overlap the thing above or below it.
…like this!
.debug-mode, .debug-mode *, .debug-mode *::before, .debug-mode *::after { outline: 1px solid var(--debug-colour, red); position: relative; } .debug-info { position: absolute; left: 50%; transform: translateX(-50%); font-family: 'Fira Code', monospace; font-size: 1rem; white-space: nowrap; } .debug-info.over { top: -2.5rem; } .debug-info.under { bottom: -2.5rem; } .debug-info p { margin: 0; }
@supports(display: grid) { :root { --sidebar-width-on-desktop: calc((var(--base-font-size) * (14 / 15)) * 19); --body-width-on-desktop: 45.75rem; } @media only screen and (min-width: 769px) { #side-bar .close-menu { display: block; position: fixed; top: 0.5rem; left: 0.5rem; width: 3rem; height: 3rem; background: unset; opacity: 1; pointer-events: all; z-index: -1; } #side-bar .close-menu img { color: transparent; } #side-bar .close-menu::before, #side-bar .close-menu::after { content: ""; box-sizing: border-box; position: fixed; display: block; top: 0.5rem; left: 0.5rem; width: 3rem; height: 3rem; padding: 0; margin: 0; text-align: center; pointer-events: all; cursor: pointer; transition: opacity var(--sidebar-transition-timing); } #side-bar .close-menu::before { --mask:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' id='Hamburger' x='0' y='0' baseProfile='tiny' overflow='visible' version='1.2' viewBox='0 0 32 32' xml:space='preserve'%3E%3Cpath d='M4 10h24c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2zm24 4H4c-1.1 0-2 .9-2 2s.9 2 2 2h24c1.1 0 2-.9 2-2s-.9-2-2-2zm0 8H4c-1.1 0-2 .9-2 2s.9 2 2 2h24c1.1 0 2-.9 2-2s-.9-2-2-2z'/%3E%3C/svg%3E"); z-index: -1; background-color: var(--toggle-icon-color, rgb(var(--sidebar-links-text))) !important; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: 50% 50%; mask-position: 50% 50%; -webkit-mask-size: 60%; mask-size: 60%; } #side-bar .close-menu::after { z-index: -2; background-color: var(--toggle-button-bg, rgb(var(--sidebar-bg-color))) !important; border-radius: var(--toggle-roundness, 50%); border: var(--toggle-border-color, rgb(var(--sidebar-links-text))) var(--toggle-border-width, 0.25rem) solid; } #side-bar:focus-within .close-menu, #side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu { pointer-events: none; } #side-bar:focus-within .close-menu::before, #side-bar:focus-within .close-menu::after { opacity: 0; pointer-events: none; } #side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu::before, #side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu::after { opacity: 0; pointer-events: none; } #side-bar { display: block; position: fixed; top: 0; left: calc(var(--sidebar-width-on-desktop)*-1); z-index: 10; transition: left 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms; height: 100%; overflow-y: auto; overflow-x: hidden; margin-top: 0; } #side-bar:focus-within { left: 0; } #side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover { left: 0; } #side-bar .side-block { margin-top: 1rem; background-color: rgb(0, 0, 0, 0); border-radius: 0; border-left-width: 0px; border-right-width: 0px; } #main-content::before { content: ""; display: block; position: fixed; top: 0; right: 0; z-index: -1; opacity: 0; transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, width 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms; margin-left: var(--sidebar-width-on-desktop); background: rgba(var(--swatch-menubg-black-color), .3) 1px 1px repeat; padding-right: 0; width: 100%; height: 100vh; pointer-events: none; z-index: 99; } #side-bar:focus-within ~ #main-content::before { width: calc(100% - var(--sidebar-width-on-desktop)); opacity: 1; pointer-events: all; } #side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover ~ #main-content::before { width: calc(100% - var(--sidebar-width-on-desktop)); opacity: 1; pointer-events: all; } @supports (-moz-appearance:none) and (background-attachment:local) and (not (-moz-osx-font-smoothing:auto)) { #side-bar { padding: inherit; } } #content-wrap { display: flex; flex-direction: row; width: calc(100vw - (100vw - 100%)); min-height: calc(100vh - calc(var(--final-header-height-on-desktop, 10.125rem))); flex-grow: 2; height: auto; position: relative; margin: 0 auto; max-width: inherit; } #main-content { width: 100%; position: initial; max-height: 100%; padding: 2rem 1rem; max-width: var(--body-width-on-desktop, 45.75rem); margin: 0 auto; } #page-content { max-width: min(90vw, var(--body-width-on-desktop, 45.75rem)); } @supports (-webkit-hyphens:none) { #side-bar { transition: left 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, padding-right 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, background-color 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms; padding-right: 0; background-color: rgb(0, 0, 0, 0); pointer-events: all; overflow-x: visible; overflow-y: visible; z-index: 999; } #side-bar::-webkit-scrollbar { opacity: 0; -webkit-transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms; transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms; } #side-bar .close-menu::before { z-index: 999; } #side-bar .close-menu::after { z-index: 998; } #side-bar:hover .close-menu::before, #side-bar:hover .close-menu::after { opacity: 0; } #side-bar:hover { left: 0; background-color: rgba(var(--swatch-menubg-color), 1); padding-right: 0; } #side-bar:hover::-webkit-scrollbar { opacity: 1; } #side-bar:hover~#main-content::before { width: calc(100% - var(--sidebar-width-on-desktop)); opacity: 1; pointer-events: all; } } } }
-
著作信息
图源
版头Logo图片来自于主题:船长帮
图一:“蟹岛鸟瞰图,由u/islanD4craB拍摄”符合Unsplash协议
图二:“白昼期间在外游荡的海蟹,摄于‘沙滩’区域”符合Unsplash协议
图三:“蟹岛沙滩区域,由M.E.G.拍摄”符合Unsplash协议
图四:“蟹岛密林区域,由M.E.G.拍摄”符合Unsplash协议
图五:“‘椰树村’一角,由u/islanD4craB拍摄”符合Unsplash协议

鸟瞰蟹岛
蟹岛是 Level 48 的一个房间,表现为一座热带风貌的中型岛屿,其以蟹类生物在岛上大量栖息而得名。
描述
蟹岛是一座具有中等规模的岛屿,据估计,其面积可达 50 平方英里。蟹岛呈现出前厅一般热带岛屿的气候特征,气温舒适宜人( 26℃ ~ 30℃ ),常年保持晴日状态,少有阴云天气,降水非常罕见1,流浪者应携带轻便、透气性强的衣物。蟹岛上的昼夜循环并不完整,一天中,约 14 小时为白昼,其余约 8 小时则呈现黄昏的景象。黄昏时,阳光的照射量降低至 Level 48 的水平,太阳从蟹岛西侧落下,与此同时,一个与太阳别无二致的天体从东侧升起,并短暂地形成“双日凌空”现象2。由于天空中始终可以观测到至少一个发光天体,蟹岛上没有黑夜。
蟹岛上生活着不计其数的蟹类,它们的踪迹遍布岛屿的每一处,几乎完全占领了这里。椰子蟹、寄居蟹3等生物在分类学中并非严格意义上的蟹类,但它们同样可以在蟹岛上被发现。白昼期间,多数蟹类潜藏于地表之下的巢穴中,仅有少数在外游荡;而在黄昏状态下,光线逐渐暗淡,气温较白昼有所下降,此时,大量蟹类将倾巢而出地爬向地表觅食,并在短时间内导致蟹类的泛滥,形成“蟹潮”。蟹潮发生时,地面被拥挤的蟹群覆盖而难以行走。蟹潮并不容易构成威胁,但流浪者仍应避免接近蟹潮正在发生的区域。
实体

在外游荡的海蟹
蟹岛上存在其他实体,如少量的笑魇、猎犬与窃皮者4,罕见情况下,流浪者可以目击到危险性更高的肢团在岛屿中心处游荡,幸运的是,这些富有攻击性的实体常年躲藏在光线昏暗处,且无一例外地表现出对光照的厌恶。蟹岛上存在一种仅对实体产生影响的特殊效应,即为“同化效应”。在同化效应的作用下,实体自进入蟹岛之时便开始从行为、生理特征两方面向蟹类转化。
行为的转变往往在实体进入蟹岛的瞬间便会完成,它们的身体被某种不可抗拒的因素扭曲为近似蟹类的形态,并以侧身爬行的方式移动——这样的怪诞姿态固然引人发笑,但它们仍保留有不容小觑的速度与力量,流浪者不应对其掉以轻心。由于转化效率高,“行为转变”往往被认为是同化效应最为显著的影响,而其使实体侧身移动的特性则尤其广为人知。早期的蟹岛居民根据同化效应的特征,将其称作“‘实体横行’效应”。为避免歧义,M.E.G. 并未采纳作为正式名称。
不同于前者,生理结构的转变耗费大量时间,在这个过程中,实体逐渐出现以下等迹象:
- 体表形成硬质甲壳,表面有刺,主要成分为几丁质;
- 面部畸形,如晶状体外凸,耳廓、鼻翼与唇部萎缩,口器位置偏移;
- 手部,除拇指外的四指粘连,在甲壳生出后形成蟹螯;
- 颈部萎缩,体侧增生出 4 条节肢;
- 脊椎骨、肋骨、骨盆等主要内骨骼退化。
M.E.G. 曾发现一只高度同化的猎犬,该实体的手臂、腿部与背部为坚硬的甲壳覆盖,从本应为手部的位置生长出了布满毛发的蟹钳,面部因畸形而模样全非。解剖结果显示,这些甲壳已经与实体的肌肉紧密相连,而皮肤则退化为粘连在甲壳内壁的黑色薄膜——实验人员认为,硬质甲壳已经成为了身体的一部分”来描述这种情形。此外,另有多份报告称目击到了转化程度不一的实体。尚不知实体在完全转变后会发生什么,目前认为,实体最终会转化为体型相近的蟹类,并彻底舍弃原先物种的特征。
若您在探索过程中遭遇实体,请试着以如下方式进行逃生:
应对措施
- 保持距离,尽可能安静地离开,避免引起实体的注意;
- 若受到实体追逐,请迅速前往最近的光线充足处,在此之后,实体往往会对你失去兴趣而悻然离开。逃脱过程中,试着使用手电筒、头灯等便携式光源照向实体,这样的行为可以在短时间内对其产生震慑效果,并获得更多的逃生机会。
沙滩
生存难度:生存難度:
等级等級 0
- 安全且稳定
- 无有害实体
- 间歇性蟹潮冲击

沙滩
沙滩是一片被沙质覆盖的环状区域,位于蟹岛的边缘地带,是岛屿主体与海洋的接壤处,也是以一般途径进入蟹岛后首先抵达的区域。椰子树、棕榈树以及依附于高大乔木生长的灌木是沙滩上的主要植被,这样的规模很小、分布零散的“树荫绿洲”为各自所在的小块区域遮蔽阳光,与周遭相比更适宜动物生存,白昼期间也能发现蟹类在此聚集避暑的迹象。这些树木拥有强大的再生能力,可在枝干受损后迅速生长出新木质填补创口,经测算,它们的极限再生速度可达 5cm³ / 秒 ——这意味着,只有使用高速电锯或效率更高的伐木工具才可以破坏这些树木,而这种器材的数量颇为有限。
由于植被稀缺,沙滩表面常年受日光直射,该区域可见的的蟹类的数量远不及阴凉、潮湿的密林地带。出没在沙滩的蟹类往往是前厅中常见的种类,如地蟹、梭子蟹、青蟹等,它们很有可能是意外落入后室的。这些体型较小的蟹类似乎分布在蟹岛全域,多数可以食用,其中,梭子蟹、黄道蟹、中华绒螯蟹等品种在前厅便因口感优良而广为人知,具备一定的能量价值与营养价值,可以作为岛上的稳定食物来源。
为了躲避光线,笑魇、猎犬、窃皮者等实体不会试图前往沙滩,且对身处该区域的流浪者态度消极,因此,沙滩被认为是蟹岛中最安全的区域。除蟹类外,沙滩区域也有椰饵栖息的迹象,这是它们首次在 Level 149 以外的区域被发现,这可能证实了一种从 Level 149 进入蟹岛的潜在方式的存在。椰饵往往生活在坠落的椰子壳中,若非寻找椰子,它们不会离开椰壳出外游荡,只要与椰饵保持距离,它们就不会造成任何威胁。
附录:沙滩经济价值
动物资源
天然资源 |
利用价值 |
---|---|
蟹类 |
蟹肉含有丰富的蛋白质,肉质鲜美,多数可在烹熟后直接食用,或制成菜肴。 |
甲壳可制成工艺品,如蟹壳彩绘等。 |
|
海鱼 |
海鱼如金枪鱼、太平洋鲑鱼等,肉质细嫩鲜美,营养价值高,可以多种方式烹食,亦可腌制鱼肉使其得以长时间保存。 |
色泽鲜艳的鱼鳞可制成工艺品,如编织作吊坠、首饰等。 |
植物资源
天然资源 |
利用价值 |
|
---|---|---|
椰子 | 椰子果实 |
果肉口味香甜,椰子水则是清凉甘洌的饮品,被广泛用于生食或烹制菜肴。 |
果实成熟后,椰肉含有丰富的油脂,可榨取椰子油。椰子油易于保存,饱和脂肪酸含量高,适合作为烹调油使用,或用于制做清洁皂。 |
||
椰壳(内果皮)可制成工艺品,如碗具、纽扣与饰品等;以椰壳为原料的粗制活性炭可吸附水中的杂质,起净水作用。 |
||
木材 |
硬度较高、不易机械加工的木材适宜作建筑材料。 |
|
棕榈 |
硬度中下的木材适宜进行加工,制成碗碟、椅凳、橱柜等普通工艺品。 |
|
叶鞘 |
棕榈叶鞘中含有棕纤维,柔软且富有弹性,可编织作绳索、蓑衣、地毡,或用于填充沙发及制作床具。 |
|
棕叶 |
棕叶柔韧性高,可制成叶扇、帽饰等工艺品。 |
|
油棕 | 棕榈果 |
果实外部的棕榈果肉可榨取棕榈油。棕榈油易于保存,因而除作烹调油外,其在食品制造业中被广泛使用,如烘焙饼干、面包与糕点,或精制为人造奶油。 |
果实内部的棕榈果仁可榨取棕榈仁油。棕榈仁油中不饱和脂肪酸含量略高于椰子油,相对不易保存,可用于烹饪、烘焙与制皂。 |
密林
生存难度:生存難度:
等级等級 3
- 不安全
- 稳定
- 中量实体
密林
密林位于岛屿的中部,是一片植被繁茂的热带丛林,地势自外而内逐渐隆起,并在丛林的中部形成了一座海拔高度约 100 米的山丘,通过无人机摄得的密林鸟瞰影像,确认密林的中部为围成环状的群山,而此前一直将群山外围的景象误判为山丘。山环内部凹陷,形成一处山谷。
密林中生长着茂密的热带植物,仅目前已经探明的种类就有 39 种:棕榈树、橡胶树、榕树、望天树等大乔木,以及种类繁多的低矮植物,其中,典型的如绿萝、龙舌兰与苏铁。若将未确认的品种与当前难以识别的品种计入,则多达百余种。密林树木的再生能力极强,更甚于沙滩中的植物,植物表面的创伤几乎可以瞬间恢复如初,凭肉眼已经难以观测到这个过程,可以断定,它们无法被以任何方式破坏。由于树木紧密的树冠遮挡住了绝大部分阳光,密林中终日光线稀疏,气温随之降低,空气中的水分极少蒸发,往往会凝结为稀薄的雾气悬浮在地表上方,密林因而常被描述为“阴凉”“湿润”。值得注意的是,前厅植物的存在似乎被隔绝在密林的外围,而中心区域则被一种称为“蟹饵榕”的植物所占据。
蟹饵榕
蟹饵榕是一种蟹岛独有的木本植物,属于高大乔木,兼具榕树与无花果树5的外形特征,因而被认为是榕属植物在后室中形成的异变物种。与榕树相似,蟹饵榕有着巨大的树冠,从树冠上向下方生长的气生根垂挂在空中,它们在落地入土后成为“支柱根”,并长出新的枝叶,在密林中纵横交错,形成独木成林的景观。气生根的存在大幅增加了穿越密林地带的难度,人类需要屈身或爬行才能穿过这些根系,这导致流浪者可能在逃离实体的过程中被其阻挡,存在很大的潜在风险。
可以在蟹饵榕的枝干上发现成熟的果实,它们被称作“蟹饵果”,似乎是受到母体的再生能力的影响,蟹饵果被摘下后,折断的果梗上很快便会重新生出成熟的果实。蟹饵果形似无花果,但果实中含有更多的糖分,以及丰富的植物蛋白、抗坏血酸、膳食纤维与微量元素。蟹饵果中存在一种天然生物碱,似乎可以在被蟹类摄取后刺激神经系统,产生类似愉悦的感受,并促使其继续食用果实,推测作用机理与“蔗糖刺激人体分泌多巴胺”类似。如同人类对甜食“欲罢不能”那样,食用过蟹饵果的螃蟹有极大的概率再次受其吸引,因此,蟹饵果除生食外,也被广泛地用作充当捕蟹诱饵,“蟹饵”之名由此而来。
密林地带阴凉、潮湿的环境尤其适宜蟹类生存,据估计,其中生活着岛上约 70% 的蟹类,不可计数的小蟹纷纷将巢穴筑在密林的地表之下,其中也包括一些海蟹,在某种未知因素的影响下,它们可以长时间在陆地上生存,却不会因脱离海水而死亡。除此之外,密林中同样栖息着体型更大的蟹类,如石蟹、巨大拟滨蟹与巨螯蟹,其中,巨螯蟹是前厅已知体型最大的节肢动物。与此同时,密林中的一些蟹类出现了“实体化”的迹象,其中最典型的表现即为体型在短时间内变得不自然地庞大,它们被统称为“巨型蟹类”。巨型蟹类的其他特征——如惧光、肌肉异常发达、主动攻击人类与其它实体等——也曾出现在目击者的说辞中。
以下列举了“长足巨螯蟹”“尼禄蟹”两种巨型蟹类,它们分别是由前厅的巨螯蟹与黄道蟹异变而形成的物种。长足巨螯蟹与尼禄蟹的特殊性使得它们在众多巨型蟹类中格外引人注目。
:root { --box-border: var(--gray-monochrome); --box-shadow: var(--swatch-tertiary-color); --box-color-0: 27, 122, 44; --box-color-1: 88, 248, 70; --box-color-2: 211, 186, 0; --box-color-3: 239, 149, 0; --box-color-4: 254, 110, 24; --box-color-5: 253, 69, 69; } .extrabox { float: right; position: relative; } .box { position: relative; width: max-content; min-width: 11rem; display: flex; flex-direction: column; height: 2.25rem; box-sizing: border-box; padding: 0 0.5rem; background: rgb(var(--pale-gray-monochrome)); border-left: 0.5rem solid rgba(var(--box-border), 0.5); box-shadow: inset 0 0 0 0.0625rem rgba(var(--box-shadow), 0.5), inset 0.0625rem 0 0 0 rgba(var(--box-shadow), 0.5), inset 0 -0.0625rem 0 0 rgba(var(--box-shadow), 0.75); transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1); font-family: Inter, "Noto Serif SC", sans-serif; cursor: default; overflow: hidden; } .box br { display: none; } .box .iets-before { position: relative; font-size: 1.5rem; display: flex; opacity: 1; right: 0; top: 0; transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); } .box .iets-after { position: relative; right: 999rem; top: 0; opacity: 0; transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), top 0s 0.25s, right 0s 0.25s; } .box .iets-before .iets-link { opacity: 1; } .box:hover { height: 5.063rem; } .box:hover .iets-before { top: -2.25rem; right: 999rem; opacity: 0; transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), top 0s 0.25s, right 0s 0.25s; } .box:hover .iets-after { display: flex; flex-direction: column; top: -2.25rem; right: 0; opacity: 1; transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); } .box .iets-after .iets-link { font-size: 1.5rem; } .extrabox[class*="{"] .lang-tr, .extrabox[class*="cn/tr"] .lang-tr, .lang-cn .lang-tr, .lang-tr .lang-cn { display: none; } .box.class-0 { --box-border: var(--box-color-0); --box-shadow: var(--box-color-0); } .box.class-1 { --box-border: var(--box-color-1); --box-shadow: var(--box-color-1); } .box.class-2 { --box-border: var(--box-color-2); --box-shadow: var(--box-color-2); } .box.class-3 { --box-border: var(--box-color-3); --box-shadow: var(--box-color-3); } .box.class-4 { --box-border: var(--box-color-4); --box-shadow: var(--box-color-4); } .box.class-5 { --box-border: var(--box-color-5); --box-shadow: var(--box-color-5); }
长足巨螯蟹
威胁指数:红
长足巨螯蟹形同普通的巨螯蟹科动物,但体型庞大,且具有极为诡异的身体比例,在 0.3 米宽的头部两侧,连接着 10 条极长的肢体,它们在完全伸展后可达 12 米,头足尺寸之比达到 1 : 40 。长足巨螯蟹修长的节肢表现出了惊人的速度,它们可以在错综复杂的地形中灵活穿梭,这为它们在密林中觅食提供了有利条件。长足巨螯蟹对强光十分敏感,长期生活在黑暗环境之中,这使得它们的视觉高度退化,似乎仅能感知光线的强度。长足巨螯蟹敏锐的触觉弥补了视力上的不足,它们通过将螯插入地面,凭借振动来分辨猎物的方位。
长足巨螯蟹为杂食性实体,捕食一切具有营养价值的生物,包括人类。捕猎过程中,它们倾向于追逐猎物并利用蟹饵榕生长所形成的复杂环境,阻碍猎物逃脱。距离缩短后,长足巨螯蟹会尝试使用锋利的螯部刺穿猎物,以此令猎物因失血过多而死亡;若长足巨螯蟹长时间无法寻觅到猎物,它们会从榕树上摘食蟹饵果维持生命——这种“备用口粮”的储量相当之大,它们似乎从来无须担心会因饥饿而死亡。
应对措施
- 非必要不前往密林深处。
- 若已经遭遇长足巨螯蟹,不要惊慌,与其保持一定的距离,仔细观察它的行为:
- 若长足巨螯蟹将螯插入地面,则说明其正在感知猎物的方位,此时请留在原位,切勿移动或发出声音,更忌盲目逃跑,待长足巨螯蟹将螯抽出,向反方向安静地离开;
- 若长足巨螯蟹并未做出以上举动,直接离开即可。
- 若已经不慎受到追逐,切勿尝试与其搏斗,人类在此过程中占有极大的劣势。向远处投掷物体,并确保其能产生足够大的振动,这往往可以造成长足巨螯蟹的误判并将其引开。如果陷入了不得不逃跑的境地,以你最快的速度向沙滩区域移动,同时试着使用移动光源照射实体,使其眩晕,为自己积攒更多的逃生时间。
:root { --box-border: var(--gray-monochrome); --box-shadow: var(--swatch-tertiary-color); --box-color-0: 27, 122, 44; --box-color-1: 88, 248, 70; --box-color-2: 211, 186, 0; --box-color-3: 239, 149, 0; --box-color-4: 254, 110, 24; --box-color-5: 253, 69, 69; } .extrabox { float: right; position: relative; } .box { position: relative; width: max-content; min-width: 11rem; display: flex; flex-direction: column; height: 2.25rem; box-sizing: border-box; padding: 0 0.5rem; background: rgb(var(--pale-gray-monochrome)); border-left: 0.5rem solid rgba(var(--box-border), 0.5); box-shadow: inset 0 0 0 0.0625rem rgba(var(--box-shadow), 0.5), inset 0.0625rem 0 0 0 rgba(var(--box-shadow), 0.5), inset 0 -0.0625rem 0 0 rgba(var(--box-shadow), 0.75); transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1); font-family: Inter, "Noto Serif SC", sans-serif; cursor: default; overflow: hidden; } .box br { display: none; } .box .iets-before { position: relative; font-size: 1.5rem; display: flex; opacity: 1; right: 0; top: 0; transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); } .box .iets-after { position: relative; right: 999rem; top: 0; opacity: 0; transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), top 0s 0.25s, right 0s 0.25s; } .box .iets-before .iets-link { opacity: 1; } .box:hover { height: 5.063rem; } .box:hover .iets-before { top: -2.25rem; right: 999rem; opacity: 0; transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), top 0s 0.25s, right 0s 0.25s; } .box:hover .iets-after { display: flex; flex-direction: column; top: -2.25rem; right: 0; opacity: 1; transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); } .box .iets-after .iets-link { font-size: 1.5rem; } .extrabox[class*="{"] .lang-tr, .extrabox[class*="cn/tr"] .lang-tr, .lang-cn .lang-tr, .lang-tr .lang-cn { display: none; } .box.class-0 { --box-border: var(--box-color-0); --box-shadow: var(--box-color-0); } .box.class-1 { --box-border: var(--box-color-1); --box-shadow: var(--box-color-1); } .box.class-2 { --box-border: var(--box-color-2); --box-shadow: var(--box-color-2); } .box.class-3 { --box-border: var(--box-color-3); --box-shadow: var(--box-color-3); } .box.class-4 { --box-border: var(--box-color-4); --box-shadow: var(--box-color-4); } .box.class-5 { --box-border: var(--box-color-5); --box-shadow: var(--box-color-5); }
尼禄蟹
威胁指数:橙
尼禄蟹形似巨大化的黄道蟹,以身形臃肿、捕食手段残忍而得名。尼禄蟹的头部宽达 1.2 米,而其节肢仅有不到1米长。尼禄蟹全身皆被坚硬而厚重的甲壳所覆盖,又仅能依靠8条短小的腿紧贴地面匍匐爬动,因此,尼禄蟹的行动相当迟缓,这为它们的觅食造成了很大的不便。
于是,尼禄蟹选择以速度的不足换取力量上的优势——尼禄蟹的腿部功能高度退化,但对应地,它们的螯部肌肉却异常发达,拥有极强的爆发力。由于节肢过短、移动缓慢,尼禄蟹无法同异化巨螯蟹一般追捕实体和人类,也无法摘取蟹饵果为食,它们不得不以小型蟹类作为唯一的食物来源,这意味着可能出现同类(如普通黄道蟹)相食的情况。尼禄蟹在捕食过程中常常采取“埋伏”“突袭”的策略,悄无声息地潜伏在地面上,将螯举起后保持不动,待到有猎物从面前经过,尼禄蟹便将高悬的蟹钳以极速砸向猎物,这所产生的巨大冲击力往往可以使猎物当场毙命,甚至血肉横飞。幸运的是,尼禄蟹对人类与其他实体不感兴趣。
尼禄蟹食量很大,一天中,它们往往在不断的觅食与进食中度过 16 个小时,吃下 25 千克蟹,事实上,它们在运动中消耗的能量远不及通过进食所获取的,在体内过剩的营养的支持下,尼禄蟹似乎可以无限制地生长下去,直至体型膨胀至先前的 2 ~ 3 倍。
“蟹岛”前哨曾对一只尼禄蟹做长期观察,具有宽达 1.8米 的巨大躯体,背部长满苔藓,引起了研究员的强烈兴趣。这只尼禄蟹后被命名为 Titan 。此后的 20 个月中,Titan 保持高强度的觅食、进食,体宽增长至 3.2 米,随后不再生长,截止至本文档撰写,再未发现体型更大的尼禄蟹,3.2 米被认为是尼禄蟹体型的极限。Titan 的食量日益减少,直至在第6周完全停止进食,且不再进行任何活动。第 7 周第 2 天清晨,人员确认 Titan 丧失生命体征。解剖结果显示,Titan 体表无创口,脏器无感染、病变迹象,研究员最终得出自然死亡的结论。Titan 的遗骸在解剖工作完成后被归置原处,受到大量蟹类和其他肉食性生物的分食,导致了该区域短期内发生蟹潮。
应对措施
- 非必要不前往密林深处。
- 若遭遇尼禄蟹,无视它的存在并与之保持一定距离。
- 不要骚扰尼禄蟹的生活——即便它们并不会主动对人类发起攻击,然而,这种行为一旦被认定为对其的挑衅,尼禄蟹同样会以自卫为目的反击骚扰者,这往往可以导致腿部骨折。
一般认为,遭遇巨型蟹类的可能性大小与光照量、至密林中心的距离成反比,这也使得成为密林中心的山谷成为蟹岛中最危险、信息最少的区域。
基地、前哨与社区
M.E.G. “蟹岛” 前哨
分类:前哨
综合指数:绿
- M.E.G. 为深入研究蟹岛、勘探天然资源而设置的小型前哨,为一座位于沙滩区域与密林区域的交界处的二层木质建筑。
- 共 4 名长期驻扎人员与 4 名轮换人员,分别每 6 个月与每周进行一次人员更换,携带有充足的口粮,并装配基础火力,以在巡逻过程中驱赶、杀灭社区周边的实体。除此之外,他们还负责将勘探所得的信息汇报至Beta基地。
- 与沙滩男孩保持友好状态,双方均在平日中有密切交流,并分享信息。

“椰树村”一角,由u/isl4nDcra8拍摄
“沙滩男孩”(Beach Boy)
分类:社区
综合指数:绿
沙滩男孩为一支由 32 名成员组成的小型团体,最初为美籍流浪者 Thompson 与 Dykes 共同创建,他们原先居住于 Level 48 ,后来在 2008 年的一次航行中首次发现了蟹岛,在此之后,他们选择驻足此处收集海产品与热带水果,并将它们售向 Level 11 。
随着更多流浪者的加入,至 2016 年——即 M.E.G. 将蟹岛记录在册之前,沙滩男孩已经在岛上建立了一定规模的流浪者社区,其中,知名度最高的是被称作“椰树村”的中型居住区。椰树村地处蟹岛的东部海岸,可以在此处找到数量众多的居民住宅,这些房屋的主体结构由棕树木板搭建,而屋顶的修筑则使用到了茅草、废塑料板及废金属板。除此之外,居民们共同经营着一家名为 “阳光,沙滩与蟹”Sunshine&Beach&Crab的海滨俱乐部,为消费者提供餐饮、酒水、渔具及海洋运动用具。为避免在黄昏时受到蟹潮的侵扰,椰树村搭建在约 3 米高的木质甲板上。椰树村配备有较为完善的生活设施,可以获得基础的淡水、电能乃至 Wi-Fi 供应。为解决蟹岛淡水匮乏的问题,椰树村中设置了净水设备,以从海水中滤取可使用的淡水;基于蟹岛全天受日光照射的特点,居民们使用太阳能电池板组成了光伏发电系统,供给社区的能源需求。
沙滩男孩开放贸易,他们的主要工作是捕捉岛上可食用的蟹类,并直接售出或烹制为菜肴后再售卖,除此之外,他们亦从事海鱼、椰肉、木材与渔具交易。沙滩男孩对流浪者持友善态度,且欢迎愿意合作的流浪者加入团体。 2019 年,沙滩男孩结束了对椰树村的第一次扩建工程,并将空置的房间开放住宿,流浪者可以选择每月支付 50 升杏仁水租用房间,抑或以 600 升杏仁水的价格直接购取房间的所有权。
入口与出口
入口
- 蟹岛最稳定、最为知名的进入方式是从 Level 48 搭乘船只驶向蟹岛的投影,若出现气温上升、光线逐渐充盈等迹象,则可证实航向无误。保持航行,直至从沙滩登陆,此时你将身处于蟹岛东侧。理论上,除 Level 48 外,从任何层级的海洋驶出直至无法再观测到原层级的景象均可能抵达蟹岛,其中经过证实的有 Level 180 、Level 422 与 Level 711 。
- 在 Level 149 的一座浮岛上找到一个蟹类异常密集的岩洞并进入其中,从洞穴的另一端离开后,你会出现在蟹岛沙滩区域的某一处。其似乎是一条单向通道。
出口
- 驾船驶向 Level 48 的投影可以返回原层级。