diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index b2d6cb31..813f6680 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -131,6 +131,7 @@ "executable_path_in_use": "Executable already in use by \"{{game}}\"", "warning": "Warning:", "hydra_needs_to_remain_open": "for this download, Hydra needs to remain open util its conclusion. In case Hydra closes before the conclusion, you will lose your progress.", + "achievements": "Achievements", "cloud_save": "Cloud save", "cloud_save_description": "Save your progress in the cloud and continue playing on any device", "backups": "Backups", diff --git a/src/locales/pt-BR/translation.json b/src/locales/pt-BR/translation.json index 5efeca20..9a51fff5 100644 --- a/src/locales/pt-BR/translation.json +++ b/src/locales/pt-BR/translation.json @@ -127,6 +127,7 @@ "executable_path_in_use": "Executável em uso por \"{{game}}\"", "warning": "Aviso:", "hydra_needs_to_remain_open": "para este download, o Hydra precisa ficar aberto até a conclusão. Caso o Hydra encerre antes da conclusão, perderá seu progresso.", + "achievements": "Conquistas", "cloud_save": "Salvamento em nuvem", "cloud_save_description": "Matenha seu progresso na nuvem e continue de onde parou em qualquer dispositivo", "backups": "Backups", diff --git a/src/locales/pt-PT/translation.json b/src/locales/pt-PT/translation.json index 45d6af5e..9f667279 100644 --- a/src/locales/pt-PT/translation.json +++ b/src/locales/pt-PT/translation.json @@ -115,7 +115,8 @@ "download": "Transferir", "executable_path_in_use": "Executável em uso por \"{{game}}\"", "warning": "Aviso:", - "hydra_needs_to_remain_open": "para este download, o Hydra precisa ficar aberto até a conclusão. Caso o Hydra encerre antes da conclusão, perderá seu progresso." + "hydra_needs_to_remain_open": "para este download, o Hydra precisa ficar aberto até a conclusão. Caso o Hydra encerre antes da conclusão, perderá seu progresso.", + "achievements": "Conquistas" }, "activation": { "title": "Ativação", diff --git a/src/main/services/achievements/find-achivement-files.ts b/src/main/services/achievements/find-achivement-files.ts index ebfbefca..917e5351 100644 --- a/src/main/services/achievements/find-achivement-files.ts +++ b/src/main/services/achievements/find-achivement-files.ts @@ -86,6 +86,10 @@ const getPathFromCracker = (cracker: Cracker) => { folderPath: path.join(programData, "Steam", "Player"), fileLocation: ["stats", "achievements.ini"], }, + { + folderPath: path.join(programData, "Steam", "dodi"), + fileLocation: ["stats", "achievements.ini"], + }, ]; } diff --git a/src/renderer/src/pages/game-details/sidebar/sidebar.css.ts b/src/renderer/src/pages/game-details/sidebar/sidebar.css.ts index 783e4ffa..d1a0e8cd 100644 --- a/src/renderer/src/pages/game-details/sidebar/sidebar.css.ts +++ b/src/renderer/src/pages/game-details/sidebar/sidebar.css.ts @@ -24,6 +24,7 @@ export const contentSidebarTitle = style({ display: "flex", alignItems: "center", backgroundColor: vars.color.background, + justifyContent: "space-between", }); export const requirementButtonContainer = style({ diff --git a/src/renderer/src/pages/game-details/sidebar/sidebar.tsx b/src/renderer/src/pages/game-details/sidebar/sidebar.tsx index 7b748a1a..0eeb1882 100644 --- a/src/renderer/src/pages/game-details/sidebar/sidebar.tsx +++ b/src/renderer/src/pages/game-details/sidebar/sidebar.tsx @@ -49,44 +49,60 @@ export function Sidebar() { /> */} {achievements.length > 0 && ( -
- {achievements.map((achievement, index) => ( -
- +
+

+ {t("achievements")}{" "} + + ({achievements.filter((a) => a.unlocked).length}/ + {achievements.length}) + +

+
+
+ {achievements.map((achievement, index) => ( +
-
-

{achievement.displayName}

- {achievement.unlockTime && format(achievement.unlockTime)} + title={achievement.description} + > + {achievement.displayName} +
+

{achievement.displayName}

+ {achievement.unlockTime && format(achievement.unlockTime)} +
-
- ))} -
+ ))} +
+ )} {stats && (