rpg initial commit
All checks were successful
Build Org Website / build (push) Successful in 48s

This commit is contained in:
2026-05-09 22:38:51 +01:00
parent 6f29244850
commit a2bc77805c
19 changed files with 1883 additions and 18 deletions

22
play/bookshelf.org Normal file
View File

@@ -0,0 +1,22 @@
#+TITLE: Bookshelf Sort
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page" data-play-page="bookshelf">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">04 / Puzzle</p>
<h1>Bookshelf Sort</h1>
<p>Drag the books into alphabetical order by title.</p>
</header>
<section class="play-tool">
<div class="play-scorebar">
<span data-bookshelf-status>Unsorted</span>
<button type="button" data-bookshelf-shuffle>Shuffle</button>
</div>
<div class="bookshelf" data-bookshelf aria-label="Sortable bookshelf"></div>
</section>
</main>
#+END_EXPORT

22
play/constellation.org Normal file
View File

@@ -0,0 +1,22 @@
#+TITLE: Constellation Desk
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page" data-play-page="constellation">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">02 / Sketch</p>
<h1>Constellation Desk</h1>
<p>Click stars to connect them. Reset the plate when the sky becomes too busy.</p>
</header>
<section class="play-tool">
<div class="play-scorebar">
<span>Lines: <strong data-star-lines>0</strong></span>
<button type="button" data-star-reset>Clear</button>
</div>
<canvas class="play-canvas star-canvas" width="900" height="520" data-star-canvas></canvas>
</section>
</main>
#+END_EXPORT

18
play/ink.org Normal file
View File

@@ -0,0 +1,18 @@
#+TITLE: Ink Pond
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page" data-play-page="ink">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">07 / Canvas</p>
<h1>Ink Pond</h1>
<p>Move across the page to stir the pond. Click to drop a darker blot.</p>
</header>
<section class="play-tool">
<canvas class="play-canvas ink-canvas" width="900" height="520" data-ink-canvas></canvas>
</section>
</main>
#+END_EXPORT

25
play/memory.org Normal file
View File

@@ -0,0 +1,25 @@
#+TITLE: Memory Cabinet
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page" data-play-page="memory">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">01 / Game</p>
<h1>Memory Cabinet</h1>
<p>Match six pairs of archive cards. Fewer turns is better.</p>
</header>
<section class="play-tool memory-tool">
<div class="play-scorebar">
<span>Turns: <strong data-memory-turns>0</strong></span>
<span>Matches: <strong data-memory-matches>0</strong>/6</span>
<span data-memory-message>Cards are shuffled.</span>
<button type="button" data-memory-peek>Peek</button>
<button type="button" data-memory-reset>Reset</button>
</div>
<div class="memory-board" data-memory-board aria-label="Memory card board"></div>
</section>
</main>
#+END_EXPORT

19
play/poem.org Normal file
View File

@@ -0,0 +1,19 @@
#+TITLE: Marginalia Machine
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page" data-play-page="poem">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">03 / Generator</p>
<h1>Marginalia Machine</h1>
<p>Press the lever to assemble tiny notes from the edge of an imaginary notebook.</p>
</header>
<section class="play-tool poem-tool">
<button class="play-primary" type="button" data-poem-generate>Turn the lever</button>
<div class="poem-slip" data-poem-output aria-live="polite"></div>
</section>
</main>
#+END_EXPORT

19
play/recipe.org Normal file
View File

@@ -0,0 +1,19 @@
#+TITLE: Supper Wheel
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page" data-play-page="recipe">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">05 / Spinner</p>
<h1>Supper Wheel</h1>
<p>Spin for a cheerful menu: base, main, side, and table note.</p>
</header>
<section class="play-tool recipe-tool">
<button class="recipe-wheel" type="button" data-recipe-spin aria-label="Spin supper wheel">Spin</button>
<ul class="recipe-result" data-recipe-result></ul>
</section>
</main>
#+END_EXPORT

60
play/rpg.org Normal file
View File

@@ -0,0 +1,60 @@
#+TITLE: Hollow Archive
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page rpg-root" data-play-page="rpg">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">11 / Role Playing Game</p>
<h1>Hollow Archive</h1>
<p>A tiny 2D RPG base: move through rooms, speak with characters, collect items, complete quests, save progress, and steer the ending.</p>
</header>
<section class="play-tool rpg-shell" aria-label="Hollow Archive game">
<div class="rpg-stage">
<canvas class="rpg-canvas" width="768" height="512" data-rpg-canvas></canvas>
<div class="rpg-dialogue" data-rpg-dialogue aria-live="polite">
<strong data-rpg-speaker>Archivist</strong>
<p data-rpg-line>Press Start to enter the archive.</p>
</div>
</div>
<aside class="rpg-panel" aria-label="Game controls and progress">
<div class="rpg-actions">
<button type="button" data-rpg-start>Start</button>
<button type="button" data-rpg-save>Save</button>
<button type="button" data-rpg-load>Load</button>
<button type="button" data-rpg-reset>Reset</button>
</div>
<div class="rpg-mobile-pad" aria-label="Movement controls">
<button type="button" data-rpg-move="up">Up</button>
<button type="button" data-rpg-move="left">Left</button>
<button type="button" data-rpg-act>Act</button>
<button type="button" data-rpg-move="right">Right</button>
<button type="button" data-rpg-move="down">Down</button>
</div>
<dl class="rpg-stats">
<div><dt>Room</dt><dd data-rpg-room>Entrance</dd></div>
<div><dt>Route</dt><dd data-rpg-route>Undecided</dd></div>
<div><dt>Hearts</dt><dd data-rpg-hearts>3</dd></div>
</dl>
<section class="rpg-list">
<h2>Quests</h2>
<ul data-rpg-quests></ul>
</section>
<section class="rpg-list">
<h2>Inventory</h2>
<ul data-rpg-inventory></ul>
</section>
<p class="rpg-status" data-rpg-status>Keyboard: arrows or WASD to move, Space or Enter to act.</p>
</aside>
</section>
</main>
#+END_EXPORT

23
play/sigil.org Normal file
View File

@@ -0,0 +1,23 @@
#+TITLE: Sigil Press
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page" data-play-page="sigil">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">10 / Maker</p>
<h1>Sigil Press</h1>
<p>Enter initials and a motto to stamp a little academic seal.</p>
</header>
<section class="play-tool sigil-tool">
<form class="sigil-form" data-sigil-form>
<label>Initials <input maxlength="4" value="ZXH" data-sigil-initials /></label>
<label>Motto <input maxlength="34" value="Learn, make, remember" data-sigil-motto /></label>
<button type="submit">Press</button>
</form>
<canvas class="sigil-canvas" width="520" height="520" data-sigil-canvas></canvas>
</section>
</main>
#+END_EXPORT

24
play/study.org Normal file
View File

@@ -0,0 +1,24 @@
#+TITLE: Study Lamp
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page" data-play-page="study">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">09 / Timer</p>
<h1>Study Lamp</h1>
<p>Start a short focus session and let the desk scene warm up.</p>
</header>
<section class="play-tool study-tool">
<div class="study-scene" data-study-scene><span></span></div>
<div class="study-time" data-study-time>05:00</div>
<div class="play-console__controls">
<button type="button" data-study-start>Start</button>
<button type="button" data-study-pause>Pause</button>
<button type="button" data-study-reset>Reset</button>
</div>
</section>
</main>
#+END_EXPORT

22
play/terminal.org Normal file
View File

@@ -0,0 +1,22 @@
#+TITLE: Archive Terminal
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page" data-play-page="terminal">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">08 / Story</p>
<h1>Archive Terminal</h1>
<p>Try commands such as help, look, open drawer, read note, map, hum, save, and clear.</p>
</header>
<section class="play-tool terminal-tool">
<div class="terminal-log" data-terminal-log aria-live="polite"></div>
<form class="terminal-form" data-terminal-form>
<label><span>&gt;</span><input data-terminal-input autocomplete="off" /></label>
<button type="submit">Run</button>
</form>
</section>
</main>
#+END_EXPORT

22
play/timeline.org Normal file
View File

@@ -0,0 +1,22 @@
#+TITLE: Timeline Tangle
#+OPTIONS: num:nil title:nil toc:nil
#+NO_SIDENOTES: t
#+DATE: <2026-05-09 Sat>
#+BEGIN_EXPORT html
<main class="play-root play-page" data-play-page="timeline">
<a class="play-back" href="/play.html">Back to Play</a>
<header class="play-page-head">
<p class="play-kicker">06 / Puzzle</p>
<h1>Timeline Tangle</h1>
<p>Drag the cards from earliest to latest.</p>
</header>
<section class="play-tool">
<div class="play-scorebar">
<span data-timeline-status>Arrange the cards</span>
<button type="button" data-timeline-shuffle>Shuffle</button>
</div>
<div class="timeline-list" data-timeline-list></div>
</section>
</main>
#+END_EXPORT