Skip to content

Commit 643fb0d

Browse files
sktbrdclaude
andauthored
feat(stake): add Ephraim to the rider roster, sponsorship paused (#246)
He joins the character select and the rider registry with no vault yet — the admin panel deploys his when the addresses are ready. Until then he carries the same `disabled` flag as pamtech and v2, so the cut-out and roster tile render desaturated and the stake CTA is inert. TypeScript caught two other Record<RiderId, …> maps that needed him: StakeOrbit's visual table and rider-lines. The cut-out is interim. It is keyed off a 191x148 source, so it is landscape where every other rider is a portrait full-body render and it will not match them until a proper photo replaces it. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 5effe5d commit 643fb0d

7 files changed

Lines changed: 34 additions & 2 deletions

File tree

messages/en/stake.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@
6464
"will": {
6565
"name": "Will",
6666
"tagline": "Rolls in quiet, leaves a mark."
67+
},
68+
"ephraim": {
69+
"name": "Ephraim",
70+
"tagline": "New to the roster. Vault on the way."
6771
}
6872
},
6973
"orbit": {

messages/pt-br/stake.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@
6464
"will": {
6565
"name": "Will",
6666
"tagline": "Chega quieto, deixa marca."
67+
},
68+
"ephraim": {
69+
"name": "Ephraim",
70+
"tagline": "Novo na line-up. Cofre a caminho."
6771
}
6872
},
6973
"orbit": {

public/stake/cutout/ephraim.png

504 KB
Loading

src/components/stake/CharacterSelector.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { cn } from "@/lib/utils";
1212
import { StakeDialog } from "./StakeDialog";
1313
import { YieldStatus } from "./YieldStatus";
1414

15-
export type CharacterId = "vlad" | "yan" | "r4to" | "pamtech" | "v2" | "zima" | "will";
15+
export type CharacterId = "vlad" | "yan" | "r4to" | "pamtech" | "v2" | "zima" | "will" | "ephraim";
1616

1717
// THPS-style attributes (1–10). Placeholder values — tailor freely.
1818
export const STAT_KEYS = [
@@ -150,6 +150,17 @@ export const CHARACTERS: Character[] = [
150150
face: { size: "330%", pos: "50% 3%" },
151151
stats: { speed: 8, air: 8, ollie: 3, spin: 8, rail: 10, flow: 9, devSkills: 6, creativity: 10 },
152152
},
153+
{
154+
id: "ephraim",
155+
image: "/stake/cutout/ephraim.png",
156+
disabled: true,
157+
accentFrom: "from-orange-400",
158+
accentTo: "to-orange-600",
159+
ring: "ring-orange-400",
160+
hex: "#fb923c",
161+
face: { size: "300%", pos: "50% 8%" },
162+
stats: { speed: 7, air: 7, ollie: 7, spin: 7, rail: 7, flow: 8, devSkills: 6, creativity: 8 },
163+
},
153164
{
154165
id: "will",
155166
image: "/stake/cutout/will.png",

src/components/stake/StakeOrbit.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,12 @@ const RIDER_VISUAL: Record<
8989
face: { size: "400%", pos: "50% 8%" },
9090
ratio: 564 / 442,
9191
},
92+
ephraim: {
93+
hex: "#fb923c",
94+
image: "/stake/cutout/ephraim.png",
95+
face: { size: "300%", pos: "50% 8%" },
96+
ratio: 576 / 764,
97+
},
9298
};
9399

94100
/**

src/lib/gnars-vaults.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { getAddress, type Address } from "viem";
1919
*/
2020
export const REWARD_SPLIT = { you: 50, skater: 25, treasury: 25 } as const;
2121

22-
export type RiderId = "vlad" | "yan" | "r4to" | "pamtech" | "v2" | "zima" | "will";
22+
export type RiderId = "vlad" | "yan" | "r4to" | "pamtech" | "v2" | "zima" | "will" | "ephraim";
2323

2424
export type Rider = {
2525
id: RiderId;
@@ -99,6 +99,12 @@ export const RIDERS: Record<RiderId, Rider> = {
9999
adapter: getAddress("0xa2343979662fe97F586cB001E1f3c5fe7462075b"),
100100
split: getAddress("0x6D966c9dcCAd3cb02B4c109f070181C2c8077bAB"),
101101
},
102+
ephraim: {
103+
id: "ephraim",
104+
handle: "ephraim",
105+
// No wallet or vault yet — the admin panel deploys his when the addresses
106+
// are ready. Until then the roster shows him with sponsorship paused.
107+
},
102108
};
103109

104110
export const RIDER_LIST: Rider[] = Object.values(RIDERS);

src/lib/rider-lines.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export const RIDER_LINES: Record<RiderId, string[]> = {
1919
v2: [],
2020
zima: [],
2121
will: [],
22+
ephraim: [],
2223
};
2324

2425
/** A rider's custom flavor line for this context, or null to use the generic one. */

0 commit comments

Comments
 (0)