Fair live draw with manual presence confirmation (no server), themed on the Celestials of Pandaria — Live: https://nailuj1992.github.io/fate-of-the-adventurers-manual/
翻譯準備中
其他JavaScript · CSSGitHub @nailuj1992上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗🌐 English · Español
▶ Live version: https://nailuj1992.github.io/fate-of-the-adventurers-manual/ (published automatically on GitHub Pages whenever a pull request is merged into master)
A configurable draw (1 to 50 prizes) with no server and no installation: open index.html in your browser
(keep adapter.js, core.js, i18n.js and the css/, ui/, locales/ and img/ folders next to it: if you copy the page somewhere else, copy all of them). Here the presenter confirms presence by hand after checking the chat;
there is no Twitch connection (that is what the sibling repository fate-of-the-adventurers-twitch is for). The engine is the same (core.js), so the rules are identical.
The screenshots use fictional participant names and short timings (4–14 s) so the whole event fits in a few minutes; the defaults are in Set up a draw.
1. Open the page. Open index.html (or the live version). The Participants tab is where everything starts; EN | ES switches the language.
2. Paste the participants, one per line. The panel counts valid, duplicate and empty lines (Remove duplicates and Trim spaces clean them up) and tells you when everything is ready. The Shuffle names button reorders the list at random (the draw shuffles it again when it starts).
3. Set the prizes and timings in the Settings tab: number of winners, time to confirm presence and the duration of each phase, with the order of the Celestials on the right.
The Advanced section (extra delivery margin and recovery time) and the "?" help icons explain every option. Save the settings or go straight to Start draw.
4. Start the draw. You are asked to confirm the number of participants and prizes. Once started, the settings are locked.
5. Each round runs by itself. The Celestial is introduced, then the countdown, the selection animation and the reveal of the chosen person. The draw uses crypto.getRandomValues.
6. Wait for the confirmation. The chosen person has the confirmation time to write in the stream chat; when you see it, press Confirm presence. You can pause the timer or disqualify the person (with a confirmation and a written reason).
7. Winner and transition. A confirmed winner is shown, then the next round starts with the next Celestial.
8. Absence. If the time runs out, the person is shown as absent (excluded from that round only) and another candidate is drawn. If only one eligible person is left, they are revealed directly, without countdown or roll.
9. Final screen and history. When all the prizes are assigned (or recovered by Xuen), the winners are shown with their Celestial; the presenter hands the codes over personally. The history keeps every step of the event.
In the admin panel, Settings tab:
Example: 5 prizes and 90 s to confirm → paste at least 5 names in Participants, enter 5 and 90 in Settings, check the preview and start.
The settings are stored in the browser (localStorage, no credentials) and persist between sessions; they are locked once the event starts (to change them you must cancel or restart with confirmation). Default values and limits: core.js → DEFAULT_CONFIG / LIMITS.
Celestial introduction → countdown → selection → reveal → wait for confirmation → winner or absent shown → transition → next round.
crypto.getRandomValues), so the order in which names were entered has no influence; it is noted in the history.localStorage, with the time limit computed from its absolute deadline). When it finishes or you return to the panel, that state is deleted.P key (exit with Esc) or index.html?view=presentation.Interface in English (default) and Spanish; English is the default regardless of the browser's language. EN | ES switch at the top right (remembered in localStorage) or index.html?lang=es. It changes everything instantly, history included. The texts are in locales/en.js and locales/es.js; keep core.js, i18n.js, locales/ and ui/ next to index.html.
localStorage and is restored when you reopen it, but clearing the browser data deletes it. localStorage may be unavailable in private windows (the app still works, without persistence).PERSONALIZACIÓN comments: colors and background (CSS variables) in css/app.css; the Celestials' glow colors (STORY), sounds (SOUNDS) and images (EMBLEMS, img/ folder) in ui/util.js. Timings and limits: core.js. Interface and Celestial texts: locales/*.js.
The draw uses crypto.getRandomValues with rejection (no modulo bias); Math.random is never used.