From 1b33f0d8e30f46a05e1e12b8b137fdc703067e06 Mon Sep 17 00:00:00 2001 From: Austin Fontaine <36677462+Fontbane@users.noreply.github.com> Date: Mon, 27 Oct 2025 23:06:06 -0400 Subject: [PATCH] [Balance] Add functionality for Daily Run starting item event bonus (#6698) --- src/phases/title-phase.ts | 4 ++++ src/timed-event-manager.ts | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/phases/title-phase.ts b/src/phases/title-phase.ts index 464f9211d61..bc530d6f0b0 100644 --- a/src/phases/title-phase.ts +++ b/src/phases/title-phase.ts @@ -1,5 +1,6 @@ import { loggedInUser } from "#app/account"; import { GameMode, getGameMode } from "#app/game-mode"; +import { timedEventManager } from "#app/global-event-manager"; import { globalScene } from "#app/global-scene"; import Overrides from "#app/overrides"; import { Phase } from "#app/phase"; @@ -259,6 +260,9 @@ export class TitlePhase extends Phase { for (const m of modifiers) { globalScene.addModifier(m, true, false, false, true); } + for (const m of timedEventManager.getEventDailyStartingItems()) { + globalScene.addModifier(modifierTypes[m]().newModifier(), true, false, false, true); + } globalScene.updateModifiers(true, true); Promise.all(loadPokemonAssets).then(() => { diff --git a/src/timed-event-manager.ts b/src/timed-event-manager.ts index 926a65837cb..391b68d414e 100644 --- a/src/timed-event-manager.ts +++ b/src/timed-event-manager.ts @@ -75,6 +75,7 @@ interface TimedEvent extends EventBanner { readonly trainerShinyChance?: number; // Odds over 65536 of trainer mon generating as shiny readonly music?: readonly EventMusicReplacement[]; readonly dailyRunChallenges?: readonly EventChallenge[]; + readonly dailyRunStartingItems?: readonly ModifierTypeKeys[]; } const timedEvents: readonly TimedEvent[] = [ @@ -387,6 +388,7 @@ const timedEvents: readonly TimedEvent[] = [ { wave: 8, type: "CATCHING_CHARM" }, { wave: 25, type: "SHINY_CHARM" }, ], + dailyRunStartingItems: ["SHINY_CHARM", "ABILITY_CHARM"], }, ]; @@ -566,6 +568,10 @@ export class TimedEventManager { globalScene.gameMode.setChallengeValue(eventChal.challenge, eventChal.value); } } + + getEventDailyStartingItems(): readonly ModifierTypeKeys[] { + return this.activeEvent()?.dailyRunStartingItems ?? []; + } } export class TimedEventDisplay extends Phaser.GameObjects.Container {