diff --git a/play.pokemonshowdown.com/src/battle.ts b/play.pokemonshowdown.com/src/battle.ts index 3e00bc4c7..78b492b68 100644 --- a/play.pokemonshowdown.com/src/battle.ts +++ b/play.pokemonshowdown.com/src/battle.ts @@ -715,6 +715,12 @@ export class Side { case 'luckychant': this.sideConditions[condition] = [effect.name, 1, 5, 0]; break; + case 'futuresight': + this.sideConditions[condition] = ['Future Sight', 1, 3, 0]; + break; + case 'doomdesire': + this.sideConditions[condition] = ['Doom Desire', 1, 3, 0]; + break; case 'stealthrock': case 'spikes': case 'toxicspikes': @@ -2738,8 +2744,17 @@ export class Battle { case 'reflect': this.scene.resultAnim(poke, 'Reflect', 'good'); break; + case 'futuresight': + poke.side.addSideCondition(effect, false); + this.scene.updateWeather(); + break; + case 'doomdesire': + poke.side.addSideCondition(effect, false); + this.scene.updateWeather(); + break; } - if (!(effect.id === 'typechange' && poke.terastallized)) { + if (!(effect.id === 'typechange' && poke.terastallized) && + effect.id !== 'futuresight' && effect.id !== 'doomdesire') { poke.addVolatile(effect.id); } this.scene.updateStatbar(poke); @@ -2838,9 +2853,13 @@ export class Battle { if (effect.effectType === 'Move') { if (effect.name === 'Doom Desire') { this.scene.runOtherAnim('doomdesirehit' as ID, [poke]); + poke.side.foe.removeSideCondition('Doom Desire'); + this.scene.updateWeather(); } if (effect.name === 'Future Sight') { this.scene.runOtherAnim('futuresighthit' as ID, [poke]); + poke.side.foe.removeSideCondition('Future Sight'); + this.scene.updateWeather(); } } } @@ -3068,6 +3087,8 @@ export class Battle { case 'lightscreen': case 'safeguard': case 'mist': + case 'futuresight': + case 'doomdesire': case 'gmaxwildfire': case 'gmaxvolcalith': case 'gmaxvinelash':