Story phase 3: the act card, the ceremony with its loot, the act's end
Three animated screens in the storyboard's look, built in the page over
a paused world:
- The act title card: the act's court pans in behind ACT n, its league,
its court and its goal; it closes itself after three seconds or on a
tap.
- The cup's ceremony: YOU CLEARED THE COURT, the rounds and the run's
xp, then the act's weapons drop into a rack one by one ("…and gained
these for the hordes to come"), and the chapter preview with the
mid-boss named and game 10 still "???" until the transformation.
- The act card: what the act cost (bodies, bosses, deaths), what it
opened in the arcade, and the next act's court; CONTINUE goes straight
on, THE CLUBHOUSE goes home.
The checkpoint keeps its in-game banner. Headless, every screen falls
back to the plain card it replaced. v381, staging only.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ff63c832cc
commit
ce27bbc48b
6 files changed
+163
-15
No files matched your search
+2
-2
@@ -40,13 +40,13 @@ const cleanCups = (c, cap = 9) => {
|
||||
// hands back, `tries` failed attempts since the checkpoint (the help offer reads it). An ACT is the
|
||||
// unit that is saved; the checkpoints live inside it.
|
||||
const CPS = ['pro', 'cup', 'chap', 'mid', 'done'];
|
||||
export const freshStory = () => ({ act: 1, cp: 'pro', rack: [], tries: 0 });
|
||||
export const freshStory = () => ({ act: 1, cp: 'pro', rack: [], tries: 0, deaths: 0 });
|
||||
export const cleanStory = s => {
|
||||
if (!s || typeof s !== 'object') return freshStory();
|
||||
const rack = Array.isArray(s.rack) ? s.rack.filter(e => e && typeof e.id === 'string' && e.n > 0).slice(0, 9)
|
||||
.map(e => ({ id: e.id.slice(0, 12), n: Math.min(99, e.n | 0) })) : [];
|
||||
return { act: Math.min(5, Math.max(1, s.act | 0 || 1)), cp: CPS.includes(s.cp) ? s.cp : 'cup',
|
||||
rack, tries: Math.max(0, Math.min(99, s.tries | 0)) };
|
||||
rack, tries: Math.max(0, Math.min(99, s.tries | 0)), deaths: Math.max(0, Math.min(999, s.deaths | 0)) };
|
||||
};
|
||||
|
||||
function load() {
|
||||
|
||||
Reference in new issue
Block a user