From 75024c7c1133f6173d6009ea0973cd1ce13b02f3 Mon Sep 17 00:00:00 2001
From: Branden J Brown
Date: Wed, 10 Jun 2026 14:03:42 -0400
Subject: [PATCH] zenno: categorize tools
---
zenno/src/lib/legacy.ts | 11 ++++-----
.../routes/(redirect)/affinity/+page.svelte | 14 +++++++++++
.../src/routes/(redirect)/convo/+page.svelte | 14 +++++++++++
.../src/routes/(redirect)/mspeed/+page.svelte | 14 +++++++++++
.../src/routes/(redirect)/spurt/+page.svelte | 14 +++++++++++
zenno/src/routes/+layout.svelte | 7 ++----
zenno/src/routes/+page.svelte | 24 +++++++++++--------
zenno/src/routes/chara/+page.svelte | 17 +++++++++++++
.../routes/{ => chara}/affinity/+page.svelte | 0
.../src/routes/{ => chara}/convo/+page.svelte | 0
zenno/src/routes/doc/frbm/+page.svelte | 16 ++++++-------
zenno/src/routes/inherit/+page.svelte | 3 ---
zenno/src/routes/race/+page.svelte | 17 +++++++++++++
.../src/routes/{ => race}/mspeed/+page.svelte | 0
.../routes/{ => race}/mspeed/SpeedDur.svelte | 0
.../src/routes/{ => race}/spurt/+page.svelte | 0
zenno/src/routes/spark/+page.svelte | 6 -----
zenno/src/routes/vet/+page.svelte | 4 ----
18 files changed, 119 insertions(+), 42 deletions(-)
create mode 100644 zenno/src/routes/(redirect)/affinity/+page.svelte
create mode 100644 zenno/src/routes/(redirect)/convo/+page.svelte
create mode 100644 zenno/src/routes/(redirect)/mspeed/+page.svelte
create mode 100644 zenno/src/routes/(redirect)/spurt/+page.svelte
create mode 100644 zenno/src/routes/chara/+page.svelte
rename zenno/src/routes/{ => chara}/affinity/+page.svelte (100%)
rename zenno/src/routes/{ => chara}/convo/+page.svelte (100%)
delete mode 100644 zenno/src/routes/inherit/+page.svelte
create mode 100644 zenno/src/routes/race/+page.svelte
rename zenno/src/routes/{ => race}/mspeed/+page.svelte (100%)
rename zenno/src/routes/{ => race}/mspeed/SpeedDur.svelte (100%)
rename zenno/src/routes/{ => race}/spurt/+page.svelte (100%)
delete mode 100644 zenno/src/routes/spark/+page.svelte
delete mode 100644 zenno/src/routes/vet/+page.svelte
diff --git a/zenno/src/lib/legacy.ts b/zenno/src/lib/legacy.ts
index 50e2837..409ba58 100644
--- a/zenno/src/lib/legacy.ts
+++ b/zenno/src/lib/legacy.ts
@@ -1,6 +1,3 @@
-import { affinity, lookup } from './data/affinity';
-import { uma, type Uma } from './data/uma';
-
/**
* A legacy, or parents and grandparents.
* Defined as an applicative over generic types to reduce the API surface.
@@ -41,9 +38,9 @@ export interface Veteran {
saddles: number[];
}
-function findUma(umas: Uma[], u: number): Uma | null {
- return umas.find((v) => v.chara_card_id === u) ?? null;
-}
+// function findUma(umas: Uma[], u: number): Uma | null {
+// return umas.find((v) => v.chara_card_id === u) ?? null;
+// }
/**
* Compute individual affinities for a legacy using the global region ruleset.
@@ -51,6 +48,7 @@ function findUma(umas: Uma[], u: number): Uma | null {
* @param legacy Legacy veterans
* @returns Individual affinities
*/
+/*
export function globalAffinity(trainee: number, legacy: Legacy): Legacy {
const t = findUma(uma.global, trainee)?.chara_id ?? 0;
const charas = mapLegacy(legacy, (u) => findUma(uma.global, u.uma)?.chara_id ?? 0);
@@ -70,3 +68,4 @@ export function globalAffinity(trainee: number, legacy: Legacy): Legacy
s22,
};
}
+*/
diff --git a/zenno/src/routes/(redirect)/affinity/+page.svelte b/zenno/src/routes/(redirect)/affinity/+page.svelte
new file mode 100644
index 0000000..2cd5502
--- /dev/null
+++ b/zenno/src/routes/(redirect)/affinity/+page.svelte
@@ -0,0 +1,14 @@
+
+
+
+ This page has moved.
+
+You should be redirected momentarily.
diff --git a/zenno/src/routes/(redirect)/convo/+page.svelte b/zenno/src/routes/(redirect)/convo/+page.svelte
new file mode 100644
index 0000000..e1c8521
--- /dev/null
+++ b/zenno/src/routes/(redirect)/convo/+page.svelte
@@ -0,0 +1,14 @@
+
+
+
+ This page has moved.
+
+You should be redirected momentarily.
diff --git a/zenno/src/routes/(redirect)/mspeed/+page.svelte b/zenno/src/routes/(redirect)/mspeed/+page.svelte
new file mode 100644
index 0000000..08d7e93
--- /dev/null
+++ b/zenno/src/routes/(redirect)/mspeed/+page.svelte
@@ -0,0 +1,14 @@
+
+
+
+ This page has moved.
+
+You should be redirected momentarily.
diff --git a/zenno/src/routes/(redirect)/spurt/+page.svelte b/zenno/src/routes/(redirect)/spurt/+page.svelte
new file mode 100644
index 0000000..93ceb90
--- /dev/null
+++ b/zenno/src/routes/(redirect)/spurt/+page.svelte
@@ -0,0 +1,14 @@
+
+
+
+ This page has moved.
+
+You should be redirected momentarily.
diff --git a/zenno/src/routes/+layout.svelte b/zenno/src/routes/+layout.svelte
index 2f5a23d..39073ff 100644
--- a/zenno/src/routes/+layout.svelte
+++ b/zenno/src/routes/+layout.svelte
@@ -2,7 +2,6 @@
import './layout.css';
import favicon from '$lib/assets/favicon.png';
import { resolve } from '$app/paths';
- import { affinity } from '$lib/data/affinity';
let { children } = $props();
@@ -19,10 +18,8 @@
Zenno Rob Roy
- Spurt Speed
- Mechanical Speed
- Affinity Details
- Lobby Conversations
+ Race Tools
+ Character Tools
Documents
diff --git a/zenno/src/routes/+page.svelte b/zenno/src/routes/+page.svelte
index 7e9f106..0323ed2 100644
--- a/zenno/src/routes/+page.svelte
+++ b/zenno/src/routes/+page.svelte
@@ -5,22 +5,26 @@
Zenno Rob Roy
She's read all about Umamusume, and she's always happy to share her knowledge and give recommendations!
-Tools
+Race Mechanics Tools
+Character Tools
+
- The mechanical speed calculator has an approximation of lane combo's benefit. A more precise
- lane combo simulator exists at
+ The mechanical speed calculator has an approximation of lane combo's benefit. A more
+ precise lane combo simulator exists at
危険回避シミュ, but I am not sufficiently
confident in my Japanese to try to guide readers through it.
@@ -682,7 +682,7 @@
Angling, they are almost certainly a different running style.
- The spurt speed calculator analyzes this situation. A 1200 speed front runner with a 0.25 speed
+ The spurt speed calculator analyzes this situation. A 1200 speed front runner with a 0.25 speed
skill active has speed equivalent to an 1187 speed pace chaser. In other words, as long as that pace chaser is built the way Global
players tend to build, Pulse does not allow the front runner to pass back. So, if you happen to inherit it off a grandparent, it
is not worth taking.
@@ -868,7 +868,7 @@
SS supports do best on medium and long tracks, because you want to be building everyone for spot struggle on miles and
sprints. However, spot struggle is the only mechanic in the game that scales superlinearly with stats, so even the difference
- between 1200 and 1000 guts can matter. See the mechanical speed calculator for details.
+ between 1200 and 1000 guts can matter. See the mechanical speed calculator for details.
Chariot
@@ -996,8 +996,8 @@
As a corollary, you also cannot win this race with B mile. A miraculous start can get to 350 speed for this race; a B mile
- runner with 350 speed is equivalent to an A mile runner with only 207 speed in career. See the spurt calculatorspurt calculator. (This race is why I made it.)
diff --git a/zenno/src/routes/inherit/+page.svelte b/zenno/src/routes/inherit/+page.svelte
deleted file mode 100644
index ee456e0..0000000
--- a/zenno/src/routes/inherit/+page.svelte
+++ /dev/null
@@ -1,3 +0,0 @@
-Inheritance Chance
-Given a legacy, calculate the probability distribution of activation counts for each spark.
-TODO
diff --git a/zenno/src/routes/race/+page.svelte b/zenno/src/routes/race/+page.svelte
new file mode 100644
index 0000000..4ab3d08
--- /dev/null
+++ b/zenno/src/routes/race/+page.svelte
@@ -0,0 +1,17 @@
+
+
+Zenno Rob Roy — Character Tools
+Tools related to understanding Umamusume characters.
+
+
+ -
+ Spurt Speed — Calculate a horse's target speed in the last spurt and compare to other
+ distance aptitudes and running styles.
+
+ -
+ Front Runner Mechanical Speed Comparator — Compare spot struggle and lane combo to the
+ effects of individual skills.
+
+
diff --git a/zenno/src/routes/mspeed/+page.svelte b/zenno/src/routes/race/mspeed/+page.svelte
similarity index 100%
rename from zenno/src/routes/mspeed/+page.svelte
rename to zenno/src/routes/race/mspeed/+page.svelte
diff --git a/zenno/src/routes/mspeed/SpeedDur.svelte b/zenno/src/routes/race/mspeed/SpeedDur.svelte
similarity index 100%
rename from zenno/src/routes/mspeed/SpeedDur.svelte
rename to zenno/src/routes/race/mspeed/SpeedDur.svelte
diff --git a/zenno/src/routes/spurt/+page.svelte b/zenno/src/routes/race/spurt/+page.svelte
similarity index 100%
rename from zenno/src/routes/spurt/+page.svelte
rename to zenno/src/routes/race/spurt/+page.svelte
diff --git a/zenno/src/routes/spark/+page.svelte b/zenno/src/routes/spark/+page.svelte
deleted file mode 100644
index 52b86a1..0000000
--- a/zenno/src/routes/spark/+page.svelte
+++ /dev/null
@@ -1,6 +0,0 @@
-Spark Generation Chance
-
- 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.
-
-TODO
diff --git a/zenno/src/routes/vet/+page.svelte b/zenno/src/routes/vet/+page.svelte
deleted file mode 100644
index d608140..0000000
--- a/zenno/src/routes/vet/+page.svelte
+++ /dev/null
@@ -1,4 +0,0 @@
-My Veterans
-Set up and track your veterans for Zenno Rob Roy's inspiration and spark calculators.
-All data is saved on your own machine, not transmitted or shared unless you explicitly choose to do so.
-TODO