From d157dfc9b632794bd83ef6a55cbc78ebf0919b00 Mon Sep 17 00:00:00 2001 From: Branden J Brown Date: Tue, 31 Mar 2026 16:52:37 -0400 Subject: [PATCH] zenno: don't use sakura --- zenno/src/routes/+layout.svelte | 38 +-- zenno/src/routes/+page.svelte | 33 ++- zenno/src/routes/convo/+page.svelte | 44 +-- zenno/src/routes/layout.css | 42 ++- zenno/src/routes/sakura-vars.css | 401 ---------------------------- 5 files changed, 104 insertions(+), 454 deletions(-) delete mode 100644 zenno/src/routes/sakura-vars.css diff --git a/zenno/src/routes/+layout.svelte b/zenno/src/routes/+layout.svelte index cd51f6b..09068d0 100644 --- a/zenno/src/routes/+layout.svelte +++ b/zenno/src/routes/+layout.svelte @@ -7,22 +7,24 @@ - -
- {@render children()} +
+ +
+ {@render children()} +
+
+ Umamusume: Pretty Derby tools by zephyrtronium.
+ All data is generated from the game's local database. +
-
- Umamusume: Pretty Derby tools by zephyrtronium.
- All data is generated from the game's local database. -
diff --git a/zenno/src/routes/+page.svelte b/zenno/src/routes/+page.svelte index c1664ce..36fc4b1 100644 --- a/zenno/src/routes/+page.svelte +++ b/zenno/src/routes/+page.svelte @@ -1,13 +1,26 @@ - - -

Welcome to SvelteKit

- -

selected character is id {selChara}

-

Visit svelte.dev/docs/kit to read the documentation

+

Zenno Rob Roy

+

She's read all about Umamusume, and she's always happy to share her knowledge and give recommendations!

+

Tools

+
    +
  • + Inheritance ChanceNot yet implemented — Given a legacy, calculate the probability distribution + of activation counts for each spark. +
  • +
  • + Spark ChanceNot yet implemented — Given a legacy, calculate the chance of generating each spark if + you fulfill the conditions to do so, and the distribution of total spark counts. +
  • +
  • + My VeteransNot yet implemented — Set up and track your veterans for Zenno Rob Roy's inspiration and + spark calculators. +
  • +
  • + Lobby Conversations — Check participants in lobby conversations and get recommendations on unlocking them quickly. +
  • +
+

About

+

Tools to fill some gaps I've felt in Umamusume optimization.

+

This site is very under construction. To demonstrate just how under construction it is, here is lorem ipsum:

Lorem ipsum (/ ˌ l ɔː. r ə m ˈ ɪ p. s ə m/ LOR-əm IP-səm) is a dummy or placeholder text commonly used in graphic design, publishing, and web development. It is typically a corrupted version of De finibus bonorum et malorum, a 1st-century BC text by diff --git a/zenno/src/routes/convo/+page.svelte b/zenno/src/routes/convo/+page.svelte index 8f88f6d..b0aae69 100644 --- a/zenno/src/routes/convo/+page.svelte +++ b/zenno/src/routes/convo/+page.svelte @@ -3,33 +3,32 @@ import { byChara, locations, groupPopulars } from '$lib/data/convo'; import CharaPick from '$lib/CharaPick.svelte'; + const minSuggest = 8; + let charaID = $state(1001); let convo = $state(1); let options = $derived(byChara.global.get(charaID) ?? []); let cur = $derived(options.find((c) => c.number === convo)); - - function suggest(n: number, pops: (typeof groupPopulars)['global']) { + let suggested = $derived.by(() => { if (cur == null) { return []; } - const u = pops[locations[cur.location].group].filter( + const u = groupPopulars.global[locations[cur.location].group].filter( (s) => charaNames.get(s[0]) != null && s[0] !== cur.chara_1 && s[0] !== cur.chara_2 && s[0] !== cur.chara_3, ); - if (u.length <= n) { - return u; - } - return u.filter((s) => s[1] >= u[n][1]); - } + const r = u.length <= minSuggest ? u : u.filter((s) => s[1] >= u[minSuggest][1]); + return r.map(([chara_id, count]) => ({ chara_id, count })); + }); -

Lobby Conversations

-
-
- +

Lobby Conversations

+
+
+
-
- +
+