From 1c574bddc3b6613902a83f8eacf6b9c53a63d3cf Mon Sep 17 00:00:00 2001 From: Lucas Winther Date: Fri, 16 Oct 2026 05:39:14 +0200 Subject: [PATCH] feat(routines): ZZZ's Shiyu Defense and Deadly Assault Both every two weeks on alternating Fridays, ticked once a cycle, anchored on the owner's in-game readings: Shiyu rolled 2026-10-16, Deadly Assault rolls a week later. Co-Authored-By: Claude Opus 5.5 --- .../2026-10-14-built-in-routines-design.md | 2 +- src/shared/routines.ts | 25 +++++++++++++++++++ test/routines.test.ts | 2 ++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/docs/superpowers/specs/2026-10-14-built-in-routines-design.md b/docs/superpowers/specs/2026-10-14-built-in-routines-design.md index ab8ee79..3ab6a19 100644 --- a/docs/superpowers/specs/2026-10-14-built-in-routines-design.md +++ b/docs/superpowers/specs/2026-10-14-built-in-routines-design.md @@ -249,7 +249,7 @@ Looked for on 2026-10-14 and not shipped. Each is a candidate the owner may know | Endfield | Protocol Pass weekly missions | Missions change every week; no fixed target or EXP cap stated, and the owner found none in game (2026-10-14) | | Endfield | Algorithmic Memories, Credit Store, Arsenal Exchange | No figure; Beta-era; daily store; a shop rotation, not a chore | | Nikki | Merit Arena, Pinnacle Contest | No wiki page (2026-10-16); Merit Arena's weekly caps change per version and only a fan account gives numbers; Pinnacle Contest runs in half-month periods → sub-project 2 | -| ZZZ | Shiyu Defense, Deadly Assault | Multi-week cycles → sub-project 2; the owner's in-game dates are in § Scope | +| ZZZ | Shiyu Defense, Deadly Assault | Multi-week cycles → sub-project 2; the owner's in-game dates are in § Scope. **Shipped 2026-10-16** as two-week cycle built-ins ([cycle routines spec](2026-10-16-cycle-routines-design.md)) | | Wuwa | Oscillated Coral exchange (gacha pulls) | Resets with each version update, not a week or month — the owner confirmed this in game, 2026-10-16. A dated window → sub-project 3 (§ Scope) | | Wuwa | Afterglow Coral exchange, Souvenir Stores, Tactical Hologram shops | No limit, or no stated reset | | Wuwa | Simulation Training, Forgery | Cost Waveplates; no weekly cap | diff --git a/src/shared/routines.ts b/src/shared/routines.ts index 8eab078..16c6137 100644 --- a/src/shared/routines.ts +++ b/src/shared/routines.ts @@ -357,6 +357,31 @@ export const ROUTINES: readonly Routine[] = [ checked: "2026-10-16", note: "Bought with Bangbucks, 5 a month per the wiki; Boopons pay for Bangboo pulls. Confirmed in game, 2026-10-16.", }, + // The two endgame modes alternate Fridays, each every two weeks. Anchors are + // the owner's in-game readings (2026-10-16): Shiyu rolled that day, Deadly + // Assault a week later. + { + id: "routine:zzz:shiyu-defense", + game: "zzz", + title: "Shiyu Defense", + period: { unit: "cycle", days: 14, from: "2026-10-16" }, + measure: { kind: "days", required: 1 }, + source: "https://zenless-zone-zero.fandom.com/wiki/Shiyu_Defense/Critical_Node", + asOf: "2026-01-02", + checked: "2026-10-16", + note: "Critical Node. Fridays, alternating weeks with Deadly Assault.", + }, + { + id: "routine:zzz:deadly-assault", + game: "zzz", + title: "Deadly Assault", + period: { unit: "cycle", days: 14, from: "2026-10-23" }, + measure: { kind: "days", required: 1 }, + source: "https://zenless-zone-zero.fandom.com/wiki/Deadly_Assault", + asOf: "2026-07-31", + checked: "2026-10-16", + note: "Fridays, alternating weeks with Shiyu Defense.", + }, // Arknights: Endfield. { diff --git a/test/routines.test.ts b/test/routines.test.ts index e92e135..fa65da6 100644 --- a/test/routines.test.ts +++ b/test/routines.test.ts @@ -83,6 +83,8 @@ describe("ROUTINES", () => { ["Signal Shop: Encrypted Master Tapes", { unit: "month", startsOn: 1 }, { kind: "amount", target: 5, unit: "tapes" }], ["Signal Shop: Master Tapes", { unit: "month", startsOn: 1 }, { kind: "amount", target: 5, unit: "tapes" }], ["Signal Shop: Boopons", { unit: "month", startsOn: 1 }, { kind: "amount", target: 5, unit: "Boopons" }], + ["Shiyu Defense", { unit: "cycle", days: 14, from: "2026-10-16" }, { kind: "days", required: 1 }], + ["Deadly Assault", { unit: "cycle", days: 14, from: "2026-10-23" }, { kind: "days", required: 1 }], ]); expect(shape("endfield")).toEqual([ ["Weekly Routine", week, { kind: "amount", target: 10, unit: "points" }],