Add snow as a weather

pull/151/head
prateau 2024-04-15 22:35:35 +02:00 committed by Samuel H
parent 7275876120
commit 0196cf8310
3 changed files with 16 additions and 4 deletions

View File

@ -777,6 +777,7 @@ export class PlantHealAttr extends WeatherHealAttr {
case WeatherType.RAIN:
case WeatherType.SANDSTORM:
case WeatherType.HAIL:
case WeatherType.SNOW:
case WeatherType.HEAVY_RAIN:
return 0.25;
default:
@ -1756,6 +1757,7 @@ export class AntiSunlightPowerDecreaseAttr extends VariablePowerAttr {
case WeatherType.RAIN:
case WeatherType.SANDSTORM:
case WeatherType.HAIL:
case WeatherType.SNOW:
case WeatherType.HEAVY_RAIN:
power.value *= 0.5;
return true;
@ -1905,7 +1907,7 @@ export class BlizzardAccuracyAttr extends VariableAccuracyAttr {
if (!user.scene.arena.weather?.isEffectSuppressed(user.scene)) {
const accuracy = args[0] as Utils.NumberHolder;
const weatherType = user.scene.arena.weather?.weatherType || WeatherType.NONE;
if (weatherType === WeatherType.HAIL) {
if (weatherType === WeatherType.HAIL || weatherType === WeatherType.SNOW) {
accuracy.value = -1;
return true;
}
@ -2074,6 +2076,7 @@ export class WeatherBallTypeAttr extends VariableMoveTypeAttr {
type.value = Type.ROCK;
break;
case WeatherType.HAIL:
case WeatherType.SNOW:
type.value = Type.ICE;
break;
default:
@ -4199,7 +4202,7 @@ export function initMoves() {
.attr(FlinchAttr),
new AttackMove(Moves.WEATHER_BALL, "Weather Ball", Type.NORMAL, MoveCategory.SPECIAL, 50, 100, 10, "This attack move varies in power and type depending on the weather.", -1, 0, 3)
.attr(WeatherBallTypeAttr)
.attr(MovePowerMultiplierAttr, (user, target, move) => [WeatherType.SUNNY, WeatherType.RAIN, WeatherType.SANDSTORM, WeatherType.HAIL, WeatherType.FOG, WeatherType.HEAVY_RAIN, WeatherType.HARSH_SUN].includes(user.scene.arena.weather?.weatherType) && !user.scene.arena.weather?.isEffectSuppressed(user.scene) ? 2 : 1)
.attr(MovePowerMultiplierAttr, (user, target, move) => [WeatherType.SUNNY, WeatherType.RAIN, WeatherType.SANDSTORM, WeatherType.HAIL, WeatherType.SNOW, WeatherType.FOG, WeatherType.HEAVY_RAIN, WeatherType.HARSH_SUN].includes(user.scene.arena.weather?.weatherType) && !user.scene.arena.weather?.isEffectSuppressed(user.scene) ? 2 : 1)
.ballBombMove(),
new StatusMove(Moves.AROMATHERAPY, "Aromatherapy (N)", Type.GRASS, -1, 5, "The user releases a soothing scent that heals all status conditions affecting the user's party.", -1, 0, 3)
.target(MoveTarget.USER_AND_ALLIES),
@ -5601,13 +5604,13 @@ export function initMoves() {
.makesContact(),
new SelfStatusMove(Moves.SHED_TAIL, "Shed Tail (N)", Type.NORMAL, -1, 10, "The user creates a substitute for itself using its own HP before switching places with a party Pokémon in waiting.", -1, 0, 9),
new StatusMove(Moves.CHILLY_RECEPTION, "Chilly Reception", Type.ICE, -1, 10, "The user tells a chillingly bad joke before switching places with a party Pokémon in waiting. This summons a snowstorm lasting five turns.", -1, 0, 9)
.attr(WeatherChangeAttr, WeatherType.HAIL) // Set to Hail for now, if Snow is added in the future, change this
.attr(WeatherChangeAttr, WeatherType.SNOW)
.attr(ForceSwitchOutAttr, true, false)
.target(MoveTarget.BOTH_SIDES),
new SelfStatusMove(Moves.TIDY_UP, "Tidy Up (P)", Type.NORMAL, -1, 10, "The user tidies up and removes the effects of Spikes, Stealth Rock, Sticky Web, Toxic Spikes, and Substitute. This also boosts the user's Attack and Speed stats.", 100, 0, 9)
.attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPD ], 1, true),
new StatusMove(Moves.SNOWSCAPE, "Snowscape", Type.ICE, -1, 10, "The user summons a snowstorm lasting five turns. This boosts the Defense stats of Ice types.", -1, 0, 9)
.attr(WeatherChangeAttr, WeatherType.HAIL) // Set to Hail for now, if Snow is added in the future, change this
.attr(WeatherChangeAttr, WeatherType.SNOW)
.target(MoveTarget.BOTH_SIDES),
new AttackMove(Moves.POUNCE, "Pounce", Type.BUG, MoveCategory.PHYSICAL, 50, 100, 20, "The user attacks by pouncing on the target. This also lowers the target's Speed stat.", 100, 0, 9)
.attr(StatChangeAttr, BattleStat.SPD, -1),

View File

@ -14,6 +14,7 @@ export enum WeatherType {
RAIN,
SANDSTORM,
HAIL,
SNOW,
FOG,
HEAVY_RAIN,
HARSH_SUN,
@ -127,6 +128,8 @@ export function getWeatherStartMessage(weatherType: WeatherType): string {
return 'A sandstorm brewed!';
case WeatherType.HAIL:
return 'It started to hail!';
case WeatherType.SNOW:
return 'It started to snow!';
case WeatherType.FOG:
return 'A thick fog emerged!'
case WeatherType.HEAVY_RAIN:
@ -150,6 +153,8 @@ export function getWeatherLapseMessage(weatherType: WeatherType): string {
return 'The sandstorm rages.';
case WeatherType.HAIL:
return 'Hail continues to fall.';
case WeatherType.SNOW:
return 'The snow is falling down.';
case WeatherType.FOG:
return 'The fog continues.';
case WeatherType.HEAVY_RAIN:
@ -184,6 +189,8 @@ export function getWeatherClearMessage(weatherType: WeatherType): string {
return 'The sandstorm subsided.';
case WeatherType.HAIL:
return 'The hail stopped.';
case WeatherType.SNOW:
return 'The snow stopped.';
case WeatherType.FOG:
return 'The fog disappeared.'
case WeatherType.HEAVY_RAIN:

View File

@ -523,6 +523,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
ret >>= 1;
break;
case Stat.DEF:
if (this.isOfType(Type.ICE) && this.scene.arena.weather?.weatherType === WeatherType.SNOW)
ret *= 1.5;
break;
case Stat.SPATK:
break;