diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 289c9a8f051..59da590e9b0 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -299,7 +299,11 @@ export class BattleScene extends SceneBase { public seed: string; public waveSeed: string; public waveCycleOffset: number; - public offsetGym: boolean; + /** + * Whether to offset Gym Leader waves by 10 (30, 50, 70 instead of 20, 40, 60). + * Determined at the start of the run, and is unused for non-Classic game modes. + */ + public offsetGym = false; public damageNumberHandler: DamageNumberHandler; private spriteSparkleHandler: PokemonSpriteSparkleHandler; diff --git a/src/field/arena.ts b/src/field/arena.ts index 3e214ff1ea7..fcdaa89370d 100644 --- a/src/field/arena.ts +++ b/src/field/arena.ts @@ -543,22 +543,24 @@ export class Arena { } } - getTimeOfDay(): TimeOfDay { + public getTimeOfDay(): TimeOfDay { switch (this.biomeType) { case BiomeId.ABYSS: return TimeOfDay.NIGHT; } - const waveCycle = ((globalScene.currentBattle?.waveIndex || 0) + globalScene.waveCycleOffset) % 40; + if (Overrides.TIME_OF_DAY_OVERRIDE != null) { + return Overrides.TIME_OF_DAY_OVERRIDE; + } + + const waveCycle = ((globalScene.currentBattle?.waveIndex ?? 0) + globalScene.waveCycleOffset) % 40; if (waveCycle < 15) { return TimeOfDay.DAY; } - if (waveCycle < 20) { return TimeOfDay.DUSK; } - if (waveCycle < 35) { return TimeOfDay.NIGHT; } @@ -566,6 +568,10 @@ export class Arena { return TimeOfDay.DAWN; } + /** + * @returns Whether the current biome takes place "outdoors" + * (for the purposes of time of day tints) + */ isOutside(): boolean { switch (this.biomeType) { case BiomeId.SEABED: @@ -584,23 +590,7 @@ export class Arena { } } - overrideTint(): [number, number, number] { - switch (Overrides.ARENA_TINT_OVERRIDE) { - case TimeOfDay.DUSK: - return [98, 48, 73].map(c => Math.round((c + 128) / 2)) as [number, number, number]; - case TimeOfDay.NIGHT: - return [64, 64, 64]; - case TimeOfDay.DAWN: - case TimeOfDay.DAY: - default: - return [128, 128, 128]; - } - } - getDayTint(): [number, number, number] { - if (Overrides.ARENA_TINT_OVERRIDE !== null) { - return this.overrideTint(); - } switch (this.biomeType) { case BiomeId.ABYSS: return [64, 64, 64]; @@ -610,23 +600,14 @@ export class Arena { } getDuskTint(): [number, number, number] { - if (Overrides.ARENA_TINT_OVERRIDE) { - return this.overrideTint(); - } if (!this.isOutside()) { return [0, 0, 0]; } - switch (this.biomeType) { - default: - return [98, 48, 73].map(c => Math.round((c + 128) / 2)) as [number, number, number]; - } + return [113, 88, 101]; } getNightTint(): [number, number, number] { - if (Overrides.ARENA_TINT_OVERRIDE) { - return this.overrideTint(); - } switch (this.biomeType) { case BiomeId.ABYSS: case BiomeId.SPACE: @@ -638,10 +619,7 @@ export class Arena { return [64, 64, 64]; } - switch (this.biomeType) { - default: - return [48, 48, 98]; - } + return [48, 48, 98]; } setIgnoreAbilities(ignoreAbilities: boolean, ignoringEffectSource: BattlerIndex | null = null): void { diff --git a/src/overrides.ts b/src/overrides.ts index 3f61196f0b4..77b594ff748 100644 --- a/src/overrides.ts +++ b/src/overrides.ts @@ -76,7 +76,11 @@ class DefaultOverrides { readonly BATTLE_STYLE_OVERRIDE: BattleStyle | null = null; readonly STARTING_WAVE_OVERRIDE: number = 0; readonly STARTING_BIOME_OVERRIDE: BiomeId | null = null; - readonly ARENA_TINT_OVERRIDE: TimeOfDay | null = null; + /** + * Overrides the Time of Day for the given biome. + * Set to `null` to disable. + */ + readonly TIME_OF_DAY_OVERRIDE: Exclude | null = null; /** Multiplies XP gained by this value including 0. Set to null to ignore the override. */ readonly XP_MULTIPLIER_OVERRIDE: number | null = null; /**