feat: Daily Missions system — 3 rotating missions per day with XP + Ozzies - #356
Draft
driver727-pixel wants to merge 2 commits into
Draft
feat: Daily Missions system — 3 rotating missions per day with XP + Ozzies#356driver727-pixel wants to merge 2 commits into
driver727-pixel wants to merge 2 commits into
Conversation
…ture flags, server stubs, Firestore rule stubs - docs/DATA_MODEL.md: audit of all existing Firestore collections with document shapes - docs/AGENT_STATUS.md: daily sync artifact for Gamma/Charlie coordination - src/lib/sharedTypes.ts: append-only shared contract file (DailyStreak, Mission, BattlePassState, Crew, RankedSeason, RankedEntry, ShareLink) - src/lib/featureFlags.ts: central feature-flag registry (all default false) - server/battlePass.js, server/ranked.js, server/crews.js, server/dailyRewards.js: no-op handler stubs - firestore.rules: read-only stub rules for dailyStreaks, missions, battlePass, crews, rankedSeasons, shareLinks Co-authored-by: SP Digital <driver727@gmail.com>
…zzies - src/lib/dailyMissions.ts: date-seeded mission selection from 10 templates, progress tracking, localStorage persistence - src/hooks/useDailyMissions.ts: React hook with trackProgress() for type-based advancement - src/components/DailyMissionsPanel.tsx: mission cards with progress bars, rewards, completion state - CardForge.tsx: mounted DailyMissionsPanel above forge layout - index.css: daily mission panel and card styles Mission types: forge, battle, trade, delivery run, collection save Each day selects 3 from different types via PRNG seeded on date key Co-authored-by: SP Digital <driver727@gmail.com>
11 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the "3 Daily Missions" system — each day, 3 missions are selected from a pool of 10 templates across 5 activity types. Missions track progress and reward XP + Ozzies on completion.
How It Works
YYYY-MM-DD) selects 3 missions from different types, ensuring variety and consistency across all playerstrackProgress(type, increment)— e.g., when a player forges a card, calltrackProgress("forge")to advance forge-type missionsprogress >= target, status transitions to"completed"and rewards are displayedMission Templates
Files Changed
src/lib/dailyMissions.tssrc/hooks/useDailyMissions.tstrackProgress()andrefresh()src/components/DailyMissionsPanel.tsxsrc/pages/CardForge.tsxDailyMissionsPanelabove forge layoutsrc/index.cssFeature Flag
Ships behind
VITE_FF_MISSIONS(Sprint 0 flag). Defaultfalse.Integration Points
The
trackProgress(type, increment)method is the hook point for other features to advance missions:trackProgress("forge")on successful forgetrackProgress("battle")on battle completiontrackProgress("trade")on trade creation/acceptancetrackProgress("mission")on delivery completiontrackProgress("collection")on card saveTesting
tsc --noEmitpasses clean