File size: 2,076 Bytes
5c2ed06
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = {
	// Belly Drum no longer boosts attack by 2 stages if under 50% health.
	bellydrum: {
		inherit: true,
		onHit(target) {
			if (target.boosts.atk >= 6 || target.hp <= target.maxhp / 2) {
				return false;
			}
			this.directDamage(target.maxhp / 2);
			const originalStage = target.boosts.atk;
			let currentStage = originalStage;
			let boosts = 0;
			let loopStage = 0;
			while (currentStage < 6) {
				loopStage = currentStage;
				currentStage++;
				if (currentStage < 6) currentStage++;
				target.boosts.atk = loopStage;
				if (target.getStat('atk', false, true) < 999) {
					target.boosts.atk = currentStage;
					continue;
				}
				target.boosts.atk = currentStage - 1;
				break;
			}
			boosts = target.boosts.atk - originalStage;
			target.boosts.atk = originalStage;
			this.boost({ atk: boosts });
		},
	},
	destinybond: {
		inherit: true,
		onPrepareHit(pokemon) {
			if (pokemon.side.pokemonLeft === 1) {
				this.hint("In Pokemon Stadium 2, Destiny Bond fails if it is being used by your last Pokemon.");
				return false;
			}
		},
	},
	/**
	 * In Stadium 2, moves which affect the stat stages of a Pokemon, such as moves which boost ones own stats,
	 * lower the targets stats, or Haze, causes the afflicted stat to be re-calculated without factoring in
	 * status aliments, thus if a Pokemon is burned or paralyzed and either active Pokemon uses Haze, then their
	 * attack and speed are re-calculated while ignoring their status ailments, so their attack would go from 50% to normal
	 */
	haze: {
		inherit: true,
		onHitField() {
			this.add('-clearallboost');
			for (const pokemon of this.getAllActive()) {
				pokemon.clearBoosts();
				pokemon.removeVolatile('brnattackdrop');
				pokemon.removeVolatile('parspeeddrop');
			}
		},
	},
	perishsong: {
		inherit: true,
		onPrepareHit(pokemon) {
			if (pokemon.side.pokemonLeft === 1) {
				this.hint("In Pokemon Stadium 2, Perish Song fails if it is being used by your last Pokemon.");
				return false;
			}
		},
	},
};