diff --git a/src/arena.ts b/src/arena.ts index 9828186b92f..563f7809583 100644 --- a/src/arena.ts +++ b/src/arena.ts @@ -12,6 +12,8 @@ import { ArenaTag, ArenaTagType, getArenaTag } from "./data/arena-tag"; import { GameMode } from "./game-mode"; import { TrainerType } from "./data/trainer-type"; +const WEATHER_OVERRIDE = WeatherType.RAIN + export class Arena { public scene: BattleScene; public biomeType: Biome; @@ -183,13 +185,26 @@ export class Arena { } } + trySetWeatherOverride(weather: WeatherType): boolean { + this.weather = new Weather(weather, 0); + this.scene.unshiftPhase(new CommonAnimPhase(this.scene, undefined, undefined, CommonAnim.SUNNY + (weather - 1))); + this.scene.queueMessage(getWeatherStartMessage(weather)); + return true + } + trySetWeather(weather: WeatherType, viaMove: boolean): boolean { + // override hook for debugging + if (WEATHER_OVERRIDE) { + return this.trySetWeatherOverride(WEATHER_OVERRIDE); + } + if (this.weather?.weatherType === (weather || undefined)) return false; const oldWeatherType = this.weather?.weatherType || WeatherType.NONE; - this.weather = weather ? new Weather(weather, viaMove ? 5 : 0) : null; + this.weather = weather ? new Weather(weather, viaMove ? 5 : 0) : null; + if (this.weather) { this.scene.unshiftPhase(new CommonAnimPhase(this.scene, undefined, undefined, CommonAnim.SUNNY + (weather - 1))); this.scene.queueMessage(getWeatherStartMessage(weather)); diff --git a/src/battle-phases.ts b/src/battle-phases.ts index 7cd146bb1cc..d9ad0002423 100644 --- a/src/battle-phases.ts +++ b/src/battle-phases.ts @@ -35,8 +35,6 @@ import { HealAchv, LevelAchv, MoneyAchv, achvs } from "./system/achv"; import { DexEntry } from "./system/game-data"; import { pokemonPrevolutions } from "./data/pokemon-evolutions"; -const WEATHER_OVERRIDE = WeatherType.NONE - export class CheckLoadPhase extends BattlePhase { private loaded: boolean; @@ -320,11 +318,7 @@ export class EncounterPhase extends BattlePhase { this.scene.updateModifiers(true); } - if(WEATHER_OVERRIDE){ - this.scene.arena.trySetWeather(WEATHER_OVERRIDE, false); - } else { - this.scene.arena.trySetWeather(getRandomWeatherType(this.scene.arena.biomeType), false); - } + this.scene.arena.trySetWeather(getRandomWeatherType(this.scene.arena.biomeType), false); const enemyField = this.scene.getEnemyField(); this.scene.tweens.add({