From 25d4a11eeb6c2c87b4f40c886abd703d9b61598f Mon Sep 17 00:00:00 2001 From: Hikari Date: Sat, 7 Mar 2026 12:13:35 -0800 Subject: [PATCH] feat: add zone-scaled quest failure chance Quests now have a random chance of failing when their timer expires. On failure the quest resets to available (no rewards lost, just time). Failure chance scales by zone: 10% in Verdant Vale up to 40% in the end-game zones. The Quest type gains lastFailedAt so the UI can show a warning on subsequent attempts. --- apps/web/src/components/game/QuestPanel.tsx | 3 ++ apps/web/src/engine/tick.ts | 31 +++++++++++++++++++++ apps/web/src/styles.css | 8 ++++++ packages/types/src/interfaces/Quest.ts | 2 ++ 4 files changed, 44 insertions(+) diff --git a/apps/web/src/components/game/QuestPanel.tsx b/apps/web/src/components/game/QuestPanel.tsx index 59064ad..f73c8c8 100644 --- a/apps/web/src/components/game/QuestPanel.tsx +++ b/apps/web/src/components/game/QuestPanel.tsx @@ -60,6 +60,9 @@ const QuestCard = ({ quest, partyCombatPower, unlockHint, zoneHint }: QuestCardP {!zoneHint && unlockHint &&

📜 Complete: {unlockHint}

} )} + {quest.status === "available" && quest.lastFailedAt != null && ( +

⚠️ Last attempt failed

+ )} {quest.status === "available" && (