feat(nte): add monthly Lost Exchange pull routines

Track the shop's five limited dice, five standard dice and twenty weapon keys separately. Keep standard dice behind the existing opt-in and cite the monthly stock and restock evidence.
This commit is contained in:
Lucas Winther
2026-11-02 03:35:32 +01:00
parent dd5d374422
commit 0c965e32e9
3 changed files with 45 additions and 1 deletions
@@ -256,7 +256,7 @@ Looked for on 2026-10-14 and not shipped. Each is a candidate the owner may know
| Wuwa | Simulation Training, Forgery | Cost Waveplates; no weekly cap |
| Wuwa | Tower of Adversity Hazard Zone (28 days), Whimpering Wastes | Multi-week → sub-project 2; the owner's in-game dates for both are in § Scope. **Tower of Adversity shipped 2026-10-16** as a 28-day cycle; Whimpering Wastes has no fixed length and stays unshipped ([cycle routines spec](2026-10-16-cycle-routines-design.md) § Not shipped) |
| NTE | Tycoon Incentive Fund (Pink Paws Heist, Volley Star weekly match, Display Case idle earnings) | A 14-day cycle by the game's own guide, not a week → sub-project 2 (§ Scope). The guide this branch cites calls Pink Paws' cap weekly; the game disagrees. The cap also differs per player (Puka Membership Program). **Shipped 2026-10-16** at the base cap with a note ([cycle routines spec](2026-10-16-cycle-routines-design.md), decision 5) |
| NTE | Lost Exchange | Single launch-era source; nothing to count |
| NTE | Lost Exchange | Shipped 2026-11-02: monthly stock of 5 Solid Dice (premium), 5 Fabricated Dice (standard, offered when standard pulls are enabled), and 20 Tri-Keys (weapon pulls). Owner confirmed the counts in game. Icy Veins' item pages state each monthly limit: [Solid Dice](https://www.icy-veins.com/neverness-to-everness/items/dicelimite) and [Tri-Key](https://www.icy-veins.com/neverness-to-everness/items/weapongacha), dated 2026-10-21; [Fabricated Dice](https://www.icy-veins.com/neverness-to-everness/items/dicenormal), read as updated today on 2026-11-02. [Mobalytics](https://mobalytics.gg/neverness-to-everness/guides/daily-weekly-checklist), dated 2026-05-08, states the shops reset on the first day of the month. All read 2026-11-02. |
| NTE | Beyond the Rails | 14-day cycle → sub-project 2; the owner's in-game date is in § Scope. **Shipped 2026-10-16**, on Asia's clock ([cycle routines spec](2026-10-16-cycle-routines-design.md), decision 3) |
**One finding outside this change:** Game8's NTE boss page (2026-10-10) says the weekly timer
+36
View File
@@ -551,6 +551,42 @@ export const ROUTINES: readonly Routine[] = [
},
// Neverness to Everness.
{
id: "routine:nte:lost-exchange-solid-dice",
game: "nte",
title: "Lost Exchange: Solid Dice",
period: { unit: "month", startsOn: 1 },
pulls: "premium",
measure: { kind: "amount", target: 5, unit: "dice" },
source: "https://www.icy-veins.com/neverness-to-everness/items/dicelimite",
asOf: "2026-10-21",
checked: "2026-11-02",
note: "Limited-banner pulls bought with Lost Pieces. Confirmed in game, 2026-11-02.",
},
{
id: "routine:nte:lost-exchange-fabricated-dice",
game: "nte",
title: "Lost Exchange: Fabricated Dice",
period: { unit: "month", startsOn: 1 },
pulls: "standard",
measure: { kind: "amount", target: 5, unit: "dice" },
source: "https://www.icy-veins.com/neverness-to-everness/items/dicenormal",
asOf: "2026-11-02",
checked: "2026-11-02",
note: "Standard-banner pulls bought with Lost Pieces. Confirmed in game, 2026-11-02.",
},
{
id: "routine:nte:lost-exchange-tri-keys",
game: "nte",
title: "Lost Exchange: Tri-Keys",
period: { unit: "month", startsOn: 1 },
pulls: "premium",
measure: { kind: "amount", target: 20, unit: "keys" },
source: "https://www.icy-veins.com/neverness-to-everness/items/weapongacha",
asOf: "2026-10-21",
checked: "2026-11-02",
note: "Weapon-banner pulls bought with Lost Pieces. Confirmed in game, 2026-11-02.",
},
{
id: "routine:nte:season-pass-exp",
game: "nte",
+8
View File
@@ -113,6 +113,9 @@ describe("ROUTINES", () => {
["routine:wuwa:shop-lustrous-tide", "standard"],
]);
expect(shape("nte")).toEqual([
["Lost Exchange: Solid Dice", { unit: "month", startsOn: 1 }, { kind: "amount", target: 5, unit: "dice" }],
["Lost Exchange: Fabricated Dice", { unit: "month", startsOn: 1 }, { kind: "amount", target: 5, unit: "dice" }],
["Lost Exchange: Tri-Keys", { unit: "month", startsOn: 1 }, { kind: "amount", target: 20, unit: "keys" }],
["Season Pass weekly EXP", week, { kind: "amount", target: 12000, unit: "EXP" }],
["Anomaly Pilgrimage", week, { kind: "amount", target: 3, unit: "claims" }],
["City Stamina", week, { kind: "amount", target: 700, unit: "stamina" }],
@@ -121,6 +124,11 @@ describe("ROUTINES", () => {
["Beyond the Rails", { unit: "cycle", days: 14, from: "2026-10-22" }, { kind: "days", required: 1 }],
["Tycoon Incentive Fund", { unit: "cycle", days: 14, from: "2026-10-26" }, { kind: "amount", target: 1000000, unit: "fons" }],
]);
expect(routinesFor("nte").filter((r) => r.pulls !== undefined).map((r) => [r.id, r.pulls])).toEqual([
["routine:nte:lost-exchange-solid-dice", "premium"],
["routine:nte:lost-exchange-fabricated-dice", "standard"],
["routine:nte:lost-exchange-tri-keys", "premium"],
]);
expect(shape("nikki")).toEqual([
["Mira Journey weekly EXP", week, { kind: "amount", target: 8000, unit: "Journey EXP" }],
["Realm of Breakthrough", week, { kind: "amount", target: 2, unit: "trials" }],