diff --git a/packages/i18n/strings/en.json b/packages/i18n/strings/en.json index e75eabede..7a4a7ee57 100644 --- a/packages/i18n/strings/en.json +++ b/packages/i18n/strings/en.json @@ -917,7 +917,7 @@ "next": "Next", "no_results": "No results" }, - "stats": "{correct} / {total} guessed correctly" + "stats": "{correct} / {total} correct, {streak} streak" }, "tankopedia": { diff --git a/packages/website/src/components/Guesser.tsx b/packages/website/src/components/Guesser.tsx index 25b93694f..1a3956463 100644 --- a/packages/website/src/components/Guesser.tsx +++ b/packages/website/src/components/Guesser.tsx @@ -43,6 +43,7 @@ export function Guesser() { const guessState = Guess.use((state) => state.guessState); const correctGuesses = Guess.use((state) => state.correctGuesses); const totalGuesses = Guess.use((state) => state.totalGuesses); + const streak = Guess.use((state) => state.streak); const { strings, unwrap } = useLocale(); const input = useRef(null); const [searching, setSearching] = useState(false); @@ -150,6 +151,7 @@ export function Guesser() { {literals(strings.website.tools.guess.stats, { correct: correctGuesses, total: totalGuesses, + streak: streak, })} @@ -186,6 +188,7 @@ export function Guesser() { : GuessState.Incorrect; draft.totalGuesses++; draft.correctGuesses += correct ? 1 : 0; + draft.streak = correct ? draft.streak + 1 : 0; }); } else { const id = Number(ids[Math.floor(Math.random() * ids.length)]); diff --git a/packages/website/src/stores/guess.ts b/packages/website/src/stores/guess.ts index d84847f79..de924399a 100644 --- a/packages/website/src/stores/guess.ts +++ b/packages/website/src/stores/guess.ts @@ -12,6 +12,7 @@ export interface Guess { guessState: GuessState; totalGuesses: number; correctGuesses: number; + streak: number; } export const Guess = new Varuna((tank) => ({ @@ -19,4 +20,5 @@ export const Guess = new Varuna((tank) => ({ guessState: GuessState.NotGuessed, totalGuesses: 0, correctGuesses: 0, + streak: 0, }));