From f50a9e4c4ffcaaf4ae55953e087ebcf582cbe342 Mon Sep 17 00:00:00 2001 From: Ice Date: Fri, 17 May 2024 18:57:11 -0500 Subject: [PATCH] Select banner texture based on bannerFilename --- .../events/{banner.png => 5-18-banner.png} | Bin src/loading-scene.ts | 2 +- src/timed-event-manager.ts | 21 +++++++++++++++++- src/ui/title-ui-handler.ts | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) rename public/images/events/{banner.png => 5-18-banner.png} (100%) diff --git a/public/images/events/banner.png b/public/images/events/5-18-banner.png similarity index 100% rename from public/images/events/banner.png rename to public/images/events/5-18-banner.png diff --git a/src/loading-scene.ts b/src/loading-scene.ts index a3d89113ea5..c270a443669 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -31,7 +31,7 @@ export class LoadingScene extends SceneBase { // Load menu images this.loadAtlas('bg', 'ui'); if (new TimedEventManager().isEventActive()) { - this.loadImage('banner', 'events') + this.loadImage(new TimedEventManager().getEventBannerFilename(), 'events') } this.loadImage('command_fight_labels', 'ui'); this.loadAtlas('prompt', 'ui'); diff --git a/src/timed-event-manager.ts b/src/timed-event-manager.ts index 3c56422af45..0bcb22378cf 100644 --- a/src/timed-event-manager.ts +++ b/src/timed-event-manager.ts @@ -4,11 +4,17 @@ interface TimedEvent { value: number; startDate: string; endDate: string; + bannerFilename: string } +/* +example: +{"name": "3x Shiny Weekend", "eventType": "shiny", "value": 3, +"startDate": "2024-05-18", "endDate": "2024-05-21", "bannerFilename": "5-18-banner"}, +*/ const timedEvents: TimedEvent[] = [ {"name": "3x Shiny Weekend", "eventType": "shiny", "value": 3, - "startDate": "2024-05-18", "endDate": "2024-05-21"}, + "startDate": "2024-05-17", "endDate": "2024-05-21", "bannerFilename": "5-18-banner"}, ]; export class TimedEventManager { @@ -38,4 +44,17 @@ export class TimedEventManager { } return multiplier; } + + getEventBannerFilename(): string { + for (const timedEvent of timedEvents) { + const eventStart = new Date(timedEvent.startDate); + const now = new Date(); + const eventEnd = new Date(timedEvent.endDate); + + if (eventStart < now && now < eventEnd) { + return timedEvent.bannerFilename; + } + } + return null + } } diff --git a/src/ui/title-ui-handler.ts b/src/ui/title-ui-handler.ts index 9c690d3a053..031f2a67c07 100644 --- a/src/ui/title-ui-handler.ts +++ b/src/ui/title-ui-handler.ts @@ -36,7 +36,7 @@ export default class TitleUiHandler extends OptionSelectUiHandler { this.titleContainer.add(logo); if (new TimedEventManager().isEventActive()) { - const banner = this.scene.add.image((this.scene.game.canvas.width / 6.5) / 2, (this.scene.game.canvas.height / 4.65) / 2, 'banner'); + const banner = this.scene.add.image((this.scene.game.canvas.width / 6.5) / 2, (this.scene.game.canvas.height / 4.65) / 2, new TimedEventManager().getEventBannerFilename()); banner.displayWidth = this.scene.game.canvas.width / 18.33 banner.displayHeight = banner.displayWidth / 3 banner.setOrigin(0.315, -0.8);