From c88c9337dd7be5dc39cb6aa3c5a957124e9253a1 Mon Sep 17 00:00:00 2001 From: Wlowscha <54003515+Wlowscha@users.noreply.github.com> Date: Fri, 7 Feb 2025 05:17:36 +0100 Subject: [PATCH 1/2] [Hotfix] Adding warning message for the maintenance (#5263) * Adding warning message for the maintenance; needs localization * Update src/ui/title-ui-handler.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Update language codes * Add French translation Co-authored-by: Lugiad <2070109+Adri1@users.noreply.github.com> * Fix variable typo in French translation * Add `zh-CN` Co-authored-by: Lugiad' <2070109+Adri1@users.noreply.github.com> * Add `zh-TW` Co-authored-by: Lugiad' <2070109+Adri1@users.noreply.github.com> * Add `ja` Co-authored-by: Lugiad' <2070109+Adri1@users.noreply.github.com> * Add `es-ES` Co-authored-by: Lugiad' <2070109+Adri1@users.noreply.github.com> * Improve date localization * Specify 12h/24h time format for each language * Mark the temporary announcement code with comments * Add `ko` Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com> * Move announcement box 10 pixels to the left * Update korean translation Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com> * Added German translation Co-authored-by: Lugiad' <2070109+Adri1@users.noreply.github.com> * Removed some useless spaces in maintenance message * Reduced announcement font size by 2 px * Adding italian, fixing japanese * Use English message as placeholder for pt-BR for now --------- Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> Co-authored-by: Lugiad <2070109+Adri1@users.noreply.github.com> Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com> --- package-lock.json | 4 +-- package.json | 2 +- src/ui/title-ui-handler.ts | 58 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 676539af79e..6511b67a101 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pokemon-rogue-battle", - "version": "1.5.2", + "version": "1.5.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pokemon-rogue-battle", - "version": "1.5.2", + "version": "1.5.3", "hasInstallScript": true, "dependencies": { "@material/material-color-utilities": "^0.2.7", diff --git a/package.json b/package.json index 81f01e1d482..169574efc16 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "pokemon-rogue-battle", "private": true, - "version": "1.5.2", + "version": "1.5.3", "type": "module", "scripts": { "start": "vite", diff --git a/src/ui/title-ui-handler.ts b/src/ui/title-ui-handler.ts index 538f78e877e..32669a8bffa 100644 --- a/src/ui/title-ui-handler.ts +++ b/src/ui/title-ui-handler.ts @@ -8,6 +8,7 @@ import { TimedEventDisplay } from "#app/timed-event-manager"; import { version } from "../../package.json"; import { pokerogueApi } from "#app/plugins/api/pokerogue-api"; import { globalScene } from "#app/global-scene"; +import { addWindow } from "./ui-theme"; export default class TitleUiHandler extends OptionSelectUiHandler { /** If the stats can not be retrieved, use this fallback value */ @@ -19,6 +20,10 @@ export default class TitleUiHandler extends OptionSelectUiHandler { private splashMessageText: Phaser.GameObjects.Text; private eventDisplay: TimedEventDisplay; private appVersionText: Phaser.GameObjects.Text; + // -- start temporary maintenance announcement fields -- + private announcementText: Phaser.GameObjects.Text; + private announcementBg: Phaser.GameObjects.NineSlice; + // -- end temporary maintenance announcement fields -- private titleStatsTimer: NodeJS.Timeout | null; @@ -75,6 +80,59 @@ export default class TitleUiHandler extends OptionSelectUiHandler { this.appVersionText.setOrigin(0.5, 0.5); this.appVersionText.setAngle(0); this.titleContainer.add(this.appVersionText); + + // #region Temporary Maintenance Announcement + const currentLanguage = i18next.resolvedLanguage ?? "en"; + const getTimeFormat = (): boolean => { + switch (currentLanguage) { + case "en": + case "es-ES": + case "ko": + case "zh-TW": + default: + return true; // 12h + case "de": + case "fr": + case "it": + case "ja": + case "pt-BR": + case "zh-CN": + return false; // 24h + } + }; + const startDate = new Date(1738994400000); + const endDate = new Date(1739167200000); + const dateOptions: Intl.DateTimeFormatOptions = { + dateStyle: "short", + timeStyle: "short", + hour12: getTimeFormat(), + }; + const startDateLocalized = new Intl.DateTimeFormat(currentLanguage, dateOptions).format(startDate); + const endDateLocalized = new Intl.DateTimeFormat(currentLanguage, dateOptions).format(endDate); + const localizedAnnouncementString: { [key: string]: string } = { + "en": ` - INFORMATION -\nServer maintenance is scheduled for the following period:\n${startDateLocalized} until ${endDateLocalized}\nEnd date and hour are an estimate.\nMaintenance may end at an earlier or later time.`, + "de": `- INFORMATION -\nServerwartung ist für den folgenden Zeitraum geplant:\n${startDateLocalized} bis ${endDateLocalized}\nEnddatum und Uhrzeit sind eine Schätzung.\nDie Wartung kann früher oder später beendet werden.`, + "es-ES": ` - INFORMACIÓN -\nUn mantenimiento del servidor está programado para el siguiente período:\nDesde el ${startDateLocalized} hasta el ${endDateLocalized}.\nLa fecha y hora de finalización son aproximadas.\nEl mantenimiento podría finalizar antes o extenderse más de lo previsto.`, + "fr": ` - INFORMATION -\nUne maintenance du serveur est prévue sur la période suivante :\nDu ${startDateLocalized} au ${endDateLocalized}\nL’heure de fin est une estimation et peut s’avérer plus en avance ou tardive qu’annoncé.`, + "it": ` - ANNUNCIO -\nUna manutenzione del server avrà luogo nel periodo seguente:\nDal ${startDateLocalized} al ${endDateLocalized}\nData e ora di fine manutenzione sono una stima,\npotrebbe terminare in anticipo o più tardi.`, + "pt-BR": ` - INFORMATION -\nServer maintenance is scheduled for the following period:\n${startDateLocalized} until ${endDateLocalized}\nEnd date and hour are an estimate.\nMaintenance may end at an earlier or later time.`, + "zh-TW": ` - 通知 -\n伺服器預計在以下時間維護:\n${startDateLocalized} 至 ${endDateLocalized}\n維護結束時間是預計時間\n維護可能稍早或稍晚結束。`, + "zh-CN": ` - 通知 -\n服务器预计在以下时间维护:\n${startDateLocalized} 至 ${endDateLocalized}\n维护结束时间是预计时间\n维护可能稍早或稍晚结束。`, + "ko": ` - 공지사항 -\n아래 기간동안 점검 예정입니다. :\n${startDateLocalized} ~ ${endDateLocalized}\n종료시각은 예상시간입니다.\n점검은 예상했던 것보다 빠르게 혹은 늦게 끝날 수 있습니다.`, + "ja": ` - 情報 -\nサーバーメンテナンスの予定は以下の期間:\n${startDateLocalized} から ${endDateLocalized} まで\n終了日・時間は推定です。\nメンテナンスはこの時期より早く終了する場合も\n遅く終了する場合もあります。`, + }; + const announcementString = localizedAnnouncementString[Object.keys(localizedAnnouncementString).find(lang => currentLanguage.includes(lang)) ?? "en"]; + this.announcementText = addTextObject(logo.x - 148, logo.y + logo.displayHeight + 116, announcementString, TextStyle.MONEY, { fontSize: "76px", wordWrap: { width: 200 * 6 }}); + this.announcementText.setOrigin(0, 1); + this.announcementText.setAngle(0); + const heightOffset = currentLanguage === "ja" ? -2 : 12; + this.announcementBg = addWindow(this.announcementText.x - 8, this.announcementText.y + 6, this.announcementText.width / 6 + 14, this.announcementText.height / 6 + heightOffset); + this.announcementBg.setName("announcement-bg"); + this.announcementBg.setOrigin(0, 1); + this.titleContainer.add(this.announcementText); + this.titleContainer.add(this.announcementBg); + this.titleContainer.bringToTop(this.announcementText); + // #endregion } updateTitleStats(): void { From f38393e64f13b42d6c78a83960dd82f686f181dd Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sat, 8 Feb 2025 09:22:29 -0800 Subject: [PATCH 2/2] Revert "[Hotfix] Adding warning message for the maintenance" (#5278) * Revert "[Hotfix] Adding warning message for the maintenance (#5263)" This reverts commit c88c9337dd7be5dc39cb6aa3c5a957124e9253a1. * Update version to 1.5.4 --- package-lock.json | 4 +-- package.json | 2 +- src/ui/title-ui-handler.ts | 58 -------------------------------------- 3 files changed, 3 insertions(+), 61 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6511b67a101..abfeb42f5cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pokemon-rogue-battle", - "version": "1.5.3", + "version": "1.5.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pokemon-rogue-battle", - "version": "1.5.3", + "version": "1.5.4", "hasInstallScript": true, "dependencies": { "@material/material-color-utilities": "^0.2.7", diff --git a/package.json b/package.json index 169574efc16..d81cfda6894 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "pokemon-rogue-battle", "private": true, - "version": "1.5.3", + "version": "1.5.4", "type": "module", "scripts": { "start": "vite", diff --git a/src/ui/title-ui-handler.ts b/src/ui/title-ui-handler.ts index 32669a8bffa..538f78e877e 100644 --- a/src/ui/title-ui-handler.ts +++ b/src/ui/title-ui-handler.ts @@ -8,7 +8,6 @@ import { TimedEventDisplay } from "#app/timed-event-manager"; import { version } from "../../package.json"; import { pokerogueApi } from "#app/plugins/api/pokerogue-api"; import { globalScene } from "#app/global-scene"; -import { addWindow } from "./ui-theme"; export default class TitleUiHandler extends OptionSelectUiHandler { /** If the stats can not be retrieved, use this fallback value */ @@ -20,10 +19,6 @@ export default class TitleUiHandler extends OptionSelectUiHandler { private splashMessageText: Phaser.GameObjects.Text; private eventDisplay: TimedEventDisplay; private appVersionText: Phaser.GameObjects.Text; - // -- start temporary maintenance announcement fields -- - private announcementText: Phaser.GameObjects.Text; - private announcementBg: Phaser.GameObjects.NineSlice; - // -- end temporary maintenance announcement fields -- private titleStatsTimer: NodeJS.Timeout | null; @@ -80,59 +75,6 @@ export default class TitleUiHandler extends OptionSelectUiHandler { this.appVersionText.setOrigin(0.5, 0.5); this.appVersionText.setAngle(0); this.titleContainer.add(this.appVersionText); - - // #region Temporary Maintenance Announcement - const currentLanguage = i18next.resolvedLanguage ?? "en"; - const getTimeFormat = (): boolean => { - switch (currentLanguage) { - case "en": - case "es-ES": - case "ko": - case "zh-TW": - default: - return true; // 12h - case "de": - case "fr": - case "it": - case "ja": - case "pt-BR": - case "zh-CN": - return false; // 24h - } - }; - const startDate = new Date(1738994400000); - const endDate = new Date(1739167200000); - const dateOptions: Intl.DateTimeFormatOptions = { - dateStyle: "short", - timeStyle: "short", - hour12: getTimeFormat(), - }; - const startDateLocalized = new Intl.DateTimeFormat(currentLanguage, dateOptions).format(startDate); - const endDateLocalized = new Intl.DateTimeFormat(currentLanguage, dateOptions).format(endDate); - const localizedAnnouncementString: { [key: string]: string } = { - "en": ` - INFORMATION -\nServer maintenance is scheduled for the following period:\n${startDateLocalized} until ${endDateLocalized}\nEnd date and hour are an estimate.\nMaintenance may end at an earlier or later time.`, - "de": `- INFORMATION -\nServerwartung ist für den folgenden Zeitraum geplant:\n${startDateLocalized} bis ${endDateLocalized}\nEnddatum und Uhrzeit sind eine Schätzung.\nDie Wartung kann früher oder später beendet werden.`, - "es-ES": ` - INFORMACIÓN -\nUn mantenimiento del servidor está programado para el siguiente período:\nDesde el ${startDateLocalized} hasta el ${endDateLocalized}.\nLa fecha y hora de finalización son aproximadas.\nEl mantenimiento podría finalizar antes o extenderse más de lo previsto.`, - "fr": ` - INFORMATION -\nUne maintenance du serveur est prévue sur la période suivante :\nDu ${startDateLocalized} au ${endDateLocalized}\nL’heure de fin est une estimation et peut s’avérer plus en avance ou tardive qu’annoncé.`, - "it": ` - ANNUNCIO -\nUna manutenzione del server avrà luogo nel periodo seguente:\nDal ${startDateLocalized} al ${endDateLocalized}\nData e ora di fine manutenzione sono una stima,\npotrebbe terminare in anticipo o più tardi.`, - "pt-BR": ` - INFORMATION -\nServer maintenance is scheduled for the following period:\n${startDateLocalized} until ${endDateLocalized}\nEnd date and hour are an estimate.\nMaintenance may end at an earlier or later time.`, - "zh-TW": ` - 通知 -\n伺服器預計在以下時間維護:\n${startDateLocalized} 至 ${endDateLocalized}\n維護結束時間是預計時間\n維護可能稍早或稍晚結束。`, - "zh-CN": ` - 通知 -\n服务器预计在以下时间维护:\n${startDateLocalized} 至 ${endDateLocalized}\n维护结束时间是预计时间\n维护可能稍早或稍晚结束。`, - "ko": ` - 공지사항 -\n아래 기간동안 점검 예정입니다. :\n${startDateLocalized} ~ ${endDateLocalized}\n종료시각은 예상시간입니다.\n점검은 예상했던 것보다 빠르게 혹은 늦게 끝날 수 있습니다.`, - "ja": ` - 情報 -\nサーバーメンテナンスの予定は以下の期間:\n${startDateLocalized} から ${endDateLocalized} まで\n終了日・時間は推定です。\nメンテナンスはこの時期より早く終了する場合も\n遅く終了する場合もあります。`, - }; - const announcementString = localizedAnnouncementString[Object.keys(localizedAnnouncementString).find(lang => currentLanguage.includes(lang)) ?? "en"]; - this.announcementText = addTextObject(logo.x - 148, logo.y + logo.displayHeight + 116, announcementString, TextStyle.MONEY, { fontSize: "76px", wordWrap: { width: 200 * 6 }}); - this.announcementText.setOrigin(0, 1); - this.announcementText.setAngle(0); - const heightOffset = currentLanguage === "ja" ? -2 : 12; - this.announcementBg = addWindow(this.announcementText.x - 8, this.announcementText.y + 6, this.announcementText.width / 6 + 14, this.announcementText.height / 6 + heightOffset); - this.announcementBg.setName("announcement-bg"); - this.announcementBg.setOrigin(0, 1); - this.titleContainer.add(this.announcementText); - this.titleContainer.add(this.announcementBg); - this.titleContainer.bringToTop(this.announcementText); - // #endregion } updateTitleStats(): void {