From 2e68e541bac95b2cc25c42364f1346e19f9f7775 Mon Sep 17 00:00:00 2001 From: Samuel Bouchet Date: Sun, 15 Mar 2026 20:25:39 +0100 Subject: [PATCH] Fix next-step hints: cryptic destiny hint, hide completed adventures count - Don't show "Adventures: 9/10" when all unlocked adventures are done (the 10th is Destiny which isn't unlocked yet, confusing the player) - Only show adventure count when there are incomplete unlocked adventures - Replace misleading "complete all adventures" destiny hint with a cryptic "keep opening boxes" hint (Destiny unlocks via box_endgame drop) --- content/strings/en.json | 2 +- content/strings/fr.json | 2 +- src/OpenTheBox/Program.cs | 11 +++++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/content/strings/en.json b/content/strings/en.json index 57dc3b7..f37d1bd 100644 --- a/content/strings/en.json +++ b/content/strings/en.json @@ -45,7 +45,7 @@ "ui.completion": "Completion: {0}%", "hint.lore": "Lore Fragments: {0}/{1}", "hint.adventures": "Adventures completed: {0}/{1}", - "hint.destiny": "Complete all adventures to unlock the final adventure…", + "hint.destiny": "Keep opening boxes… destiny will come knocking.", "prompt.what_do": "What do you do?", "prompt.invalid_choice": "Please enter a number between 1 and {0}.", diff --git a/content/strings/fr.json b/content/strings/fr.json index 9f202dc..033c55b 100644 --- a/content/strings/fr.json +++ b/content/strings/fr.json @@ -45,7 +45,7 @@ "ui.completion": "Complétion : {0}%", "hint.lore": "Fragments de Lore : {0}/{1}", "hint.adventures": "Aventures terminées : {0}/{1}", - "hint.destiny": "Termine toutes les aventures pour débloquer l'aventure finale…", + "hint.destiny": "Continue d'ouvrir des boîtes… le destin finira par frapper.", "prompt.what_do": "Que fais-tu ?", "prompt.invalid_choice": "Entre un nombre entre 1 et {0}.", diff --git a/src/OpenTheBox/Program.cs b/src/OpenTheBox/Program.cs index e8d4772..fe6aba2 100644 --- a/src/OpenTheBox/Program.cs +++ b/src/OpenTheBox/Program.cs @@ -1024,12 +1024,15 @@ public static class Program if (ownedLore < totalLore) hints.Add(_loc.Get("hint.lore", ownedLore, totalLore)); - // Adventures completed + // Adventures: only count unlocked ones (exclude Destiny if not yet unlocked) + var unlockedAdvCount = _state.UnlockedAdventures.Count; var completedAdv = _state.CompletedAdventures.Count; - if (completedAdv < totalAdventures) - hints.Add(_loc.Get("hint.adventures", completedAdv, totalAdventures)); + var incompleteUnlocked = _state.UnlockedAdventures + .Count(a => !_state.CompletedAdventures.Contains(a.ToString())); + if (incompleteUnlocked > 0) + hints.Add(_loc.Get("hint.adventures", completedAdv, unlockedAdvCount)); - // Destiny adventure not yet unlocked — show condition + // Destiny adventure not yet unlocked — cryptic hint if (!_state.UnlockedAdventures.Contains(AdventureTheme.Destiny)) hints.Add(_loc.Get("hint.destiny"));