Remove the Quallenalarm (jellyfish) typing minigame
Letters-round lessons only had bubbles and jellyfish as eligible arcade modes; with jellyfish gone, bubbles is now always used instead of the two alternating - no lessons need to be dropped. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,7 @@ import type {
|
||||
import type { CreatureId } from "./aquarium";
|
||||
|
||||
export type LessonKind = "letters" | "fragments" | "words" | "sentences";
|
||||
export type ModeId = "dive" | "bubbles" | "jellyfish" | "feed" | "race";
|
||||
export type ModeId = "dive" | "bubbles" | "feed" | "race";
|
||||
|
||||
/** What this lesson unlocks in the music library, if anything - see `rewards.py`.
|
||||
* `resolved: false` means the curriculum names a path that matches nothing right now. */
|
||||
|
||||
@@ -189,7 +189,7 @@ export function wordChunks(
|
||||
}
|
||||
|
||||
/** The line a lesson should show, given what it can spell. Word lessons alternate:
|
||||
* `preferWords` lets a mode ask for letters even in a late lesson (jellyfish mode is
|
||||
* `preferWords` lets a mode ask for letters even in a late lesson (bubbles mode is
|
||||
* always single letters) or for words wherever they exist (feed mode). */
|
||||
export function lineFor(
|
||||
lesson: { activeKeys: readonly string[]; words: readonly string[]; newKeys?: readonly string[] },
|
||||
@@ -222,8 +222,8 @@ export function chunkOffsets(chunks: readonly string[], spaceActive: boolean): n
|
||||
return offsets;
|
||||
}
|
||||
|
||||
/** Single letters for the bubbles and jellyfish modes: one key per bubble, drawn from
|
||||
* the same bag, so the arcade modes drill the same spread as the dive mode. */
|
||||
/** Single letters for bubbles mode: one key per bubble, drawn from the same bag, so the
|
||||
* arcade mode drills the same spread as the dive mode. */
|
||||
export function letterStream(
|
||||
activeKeys: readonly string[],
|
||||
rng: Rng,
|
||||
|
||||
@@ -6,7 +6,6 @@ import type { ModeId } from "./curriculum";
|
||||
export const MODE_INFO: Record<ModeId, { emoji: string; name: string }> = {
|
||||
dive: { emoji: "🤿", name: "Tauchgang" },
|
||||
bubbles: { emoji: "🫧", name: "Blasenplatzen" },
|
||||
jellyfish: { emoji: "🦑", name: "Quallenalarm" },
|
||||
feed: { emoji: "🐟", name: "Fütterungszeit" },
|
||||
race: { emoji: "🐬", name: "Delfinrennen" },
|
||||
};
|
||||
|
||||
@@ -31,9 +31,9 @@ export const SPEECH_DEFAULT = true;
|
||||
|
||||
export const SOUND_DEFAULT = true;
|
||||
|
||||
/** How many letters one bubbles or jellyfish round sends up - matched to the dive
|
||||
* mode's length so a mode swap is not also a difficulty swap. Dive-mode line length
|
||||
* lives on the lesson itself (`lengthFor` in lib/curriculum.ts). */
|
||||
/** How many letters one bubbles round sends up - matched to the dive mode's length so a
|
||||
* mode swap is not also a difficulty swap. Dive-mode line length lives on the lesson
|
||||
* itself (`lengthFor` in lib/curriculum.ts). */
|
||||
export function bubbleCountFor(world: number): number {
|
||||
return world === 1 ? 50 : 100;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user