gamesssssssss
All checks were successful
Build Org Website / build (push) Successful in 52s

This commit is contained in:
2026-05-10 23:32:09 +01:00
parent 669eafadd3
commit 50399c2045
7 changed files with 761 additions and 1 deletions

View File

@@ -358,6 +358,9 @@
"sensei chi": "sensei chi: the search is also searching you.",
"young z": "Search result: age 7, blanket cape, crayon sun.",
"future z": "future z: I cannot spoil the ending. I can say keep going.",
"gentle constellarium": "The observatory sky loosens. A thread is waiting to be steadied.",
"return log": "future z has delayed the message just enough for it to mean something.",
"subconscious index": "The website answers in objects when ordinary search gets too direct.",
"2022": "lima layer: beginning stored as warmth, not trivia.",
"oct 2025": "Engagement memory: the calendar learned to glow.",
"age 7": "young z layer: crayons, cartoons, and a cape made from a blanket.",
@@ -372,6 +375,11 @@
"sensei garden": "/play/sensei-garden.html",
"young z desk": "/play/young-z-desk.html",
"future log": "/play/future-log.html",
"gentle constellarium": "/play/gentle-constellarium.html",
"return log": "/play/future-z-return-log.html",
"future z return log": "/play/future-z-return-log.html",
"subconscious index": "/play/subconscious-index.html",
"dream index": "/play/subconscious-index.html",
"family layer index": "/play/family-layer-index.html",
"do not open": "/play/do-not-open.html",
"voice note": "/play/cassette-log.html",
@@ -392,6 +400,10 @@
"phrase": "dream",
"route": "/play/dream-corridor.html"
},
{
"phrase": "thread",
"route": "/play/gentle-constellarium.html"
},
{
"phrase": "oldweb",
"message": "aphy briefly considers a table layout, then apologizes to CSS."
@@ -416,6 +428,18 @@
"phrase": "leave the light on",
"route": "/play/kitchen-light.html"
},
{
"phrase": "restore the thread",
"route": "/play/gentle-constellarium.html"
},
{
"phrase": "future z return log",
"route": "/play/future-z-return-log.html"
},
{
"phrase": "subconscious index",
"route": "/play/subconscious-index.html"
},
{
"phrase": "sensei chi",
"message": "sensei chi: a hidden word is still a word."
@@ -890,6 +914,32 @@
}).join("");
}
function addObservatoryPlayDoorways() {
let playState = {};
try {
playState = JSON.parse(localStorage.getItem("zxh_observatory_play_v1") || "{}");
} catch (_) {}
const restored = (playState.restoredThreads || []).length;
const symbols = Object.keys(playState.discoveredSymbols || {}).length;
const patient = Number(playState.patientMoments || 0);
const options = [];
if (restored > 0) options.push(["thread", "/play/future-z-return-log.html", "future z remembers the thread you restored."]);
if (symbols > 0) options.push(["symbol", "/play/subconscious-index.html", "a symbol you found is still casting a shadow."]);
if (patient > 0) options.push(["return", "/play/gentle-constellarium.html", "sensei chi notices the slower way you move through the site."]);
if (!options.length && memory.visits >= 5 && (playState.crossGameFlags || {})["future-z:observed"]) {
options.push(["echo", "/play/subconscious-index.html", "aphy found an echo between the return log and the dream index."]);
}
if (!options.length) return;
const [label, href, message] = pick(options, "observatory-doorway");
const link = document.createElement("a");
link.className = "hidden-oldweb-stamp";
link.href = href;
link.textContent = label;
link.title = message;
link.addEventListener("click", () => toast(message));
document.body.appendChild(link);
}
function addPageSpecificSecrets() {
// Events only used by specific `/play/...` pages.
if (path.includes("/play/cassette-log")) {
@@ -1001,6 +1051,7 @@
addPatienceRewards,
addRareSecondLayer,
addFamilyLayerIndex,
addObservatoryPlayDoorways,
addPageSpecificSecrets,
addInvisibleHoverSecrets
];