@pkmn/mods 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,7 +18,7 @@ exports.Moves = {
18
18
  duration: 2,
19
19
  onLockMove: 'dig',
20
20
  onInvulnerability(target, source, move) {
21
- if (move.id === 'swift' && target.volatiles['substitute'])
21
+ if ((move.id === 'swift' && target.volatiles['substitute']) || move.id === 'transform')
22
22
  return true;
23
23
  this.add('-message', `The foe ${target.name} can't be hit underground!`);
24
24
  return false;
@@ -41,7 +41,7 @@ exports.Moves = {
41
41
  duration: 2,
42
42
  onLockMove: 'fly',
43
43
  onInvulnerability(target, source, move) {
44
- if (move.id === 'swift' && target.volatiles['substitute'])
44
+ if ((move.id === 'swift' && target.volatiles['substitute']) || move.id === 'transform')
45
45
  return true;
46
46
  this.add('-message', `The foe ${target.name} can't be hit while flying!`);
47
47
  return false;
@@ -95,6 +95,7 @@ exports.Moves = {
95
95
  if (!uncappedDamage)
96
96
  return uncappedDamage;
97
97
  source.lastDamage = uncappedDamage;
98
+ this.lastDamage = uncappedDamage;
98
99
  target.volatiles['substitute'].hp -= uncappedDamage > target.volatiles['substitute'].hp ?
99
100
  target.volatiles['substitute'].hp : uncappedDamage;
100
101
  if (target.volatiles['substitute'].hp <= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"moves.js","sourceRoot":"","sources":["../../src/gen1jpn/moves.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"moves.js","sourceRoot":"","sources":["../../src/gen1jpn/moves.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,92 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Moves = void 0;
4
4
  exports.Moves = {
5
+ bide: {
6
+ inherit: true,
7
+ priority: 0,
8
+ accuracy: true,
9
+ ignoreEvasion: true,
10
+ condition: {
11
+ duration: 2,
12
+ durationCallback(target, source, effect) {
13
+ return this.random(3, 5);
14
+ },
15
+ onStart(pokemon) {
16
+ this.effectState.totalDamage = 0;
17
+ this.effectState.lastDamage = 0;
18
+ this.add('-start', pokemon, 'Bide');
19
+ },
20
+ onHit(target, source, move) {
21
+ if (source && source !== target && move.category !== 'Physical' && move.category !== 'Special') {
22
+ const damage = this.effectState.totalDamage;
23
+ this.effectState.totalDamage += damage;
24
+ this.effectState.lastDamage = damage;
25
+ this.effectState.sourceSlot = source.getSlot();
26
+ }
27
+ },
28
+ onDamage(damage, target, source, move) {
29
+ if (!source || source.isAlly(target))
30
+ return;
31
+ if (!move || move.effectType !== 'Move')
32
+ return;
33
+ if (!damage && this.effectState.lastDamage > 0) {
34
+ damage = this.effectState.totalDamage;
35
+ }
36
+ this.effectState.totalDamage += damage;
37
+ this.effectState.lastDamage = damage;
38
+ this.effectState.sourceSlot = source.getSlot();
39
+ },
40
+ onAfterSetStatus(status, pokemon) {
41
+ // Sleep, freeze, and partial trap will just pause duration.
42
+ if (pokemon.volatiles['flinch']) {
43
+ this.effectState.duration++;
44
+ }
45
+ else if (pokemon.volatiles['partiallytrapped']) {
46
+ this.effectState.duration++;
47
+ }
48
+ else {
49
+ switch (status.id) {
50
+ case 'slp':
51
+ case 'frz':
52
+ this.effectState.duration++;
53
+ break;
54
+ }
55
+ }
56
+ },
57
+ onBeforeMove(pokemon, t, move) {
58
+ if (this.effectState.duration === 1) {
59
+ this.add('-end', pokemon, 'Bide');
60
+ if (!this.effectState.totalDamage) {
61
+ this.debug("Bide failed because no damage was taken");
62
+ this.add('-fail', pokemon);
63
+ return false;
64
+ }
65
+ const target = this.getAtSlot(this.effectState.sourceSlot);
66
+ if (target.isSemiInvulnerable()) {
67
+ this.add('-message', 'The foe ' + target.name + ' can\'t be hit while flying!');
68
+ pokemon.removeVolatile('bide');
69
+ return false;
70
+ }
71
+ this.actions.moveHit(target, pokemon, move, { damage: this.effectState.totalDamage * 2 });
72
+ pokemon.removeVolatile('bide');
73
+ return false;
74
+ }
75
+ this.add('-activate', pokemon, 'Bide');
76
+ return false;
77
+ },
78
+ onDisableMove(pokemon) {
79
+ if (!pokemon.hasMove('bide')) {
80
+ return;
81
+ }
82
+ for (const moveSlot of pokemon.moveSlots) {
83
+ if (moveSlot.id !== 'bide') {
84
+ pokemon.disableMove(moveSlot.id);
85
+ }
86
+ }
87
+ },
88
+ },
89
+ type: "???", // Will look as Normal but it's STAB-less
90
+ },
5
91
  bind: {
6
92
  inherit: true,
7
93
  // FIXME: onBeforeMove() {},
@@ -181,6 +267,7 @@ exports.Moves = {
181
267
  return damage;
182
268
  target.volatiles['substitute'].hp -= damage;
183
269
  source.lastDamage = damage;
270
+ this.lastDamage = damage;
184
271
  if (target.volatiles['substitute'].hp <= 0) {
185
272
  this.debug('Substitute broke');
186
273
  target.removeVolatile('substitute');
@@ -1 +1 @@
1
- {"version":3,"file":"moves.js","sourceRoot":"","sources":["../../src/gen1stadium/moves.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"moves.js","sourceRoot":"","sources":["../../src/gen1stadium/moves.ts"],"names":[],"mappings":"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"}
@@ -99,31 +99,141 @@ exports.Scripts = {
99
99
  sourceEffect = move;
100
100
  }
101
101
  this.battle.actions.useMove(move, pokemon, target, sourceEffect);
102
- this.battle.singleEvent('AfterMove', move, null, pokemon, target, move);
103
- // If target fainted
104
- if (target && target.hp <= 0) {
105
- // We remove screens
106
- target.side.removeSideCondition('reflect');
107
- target.side.removeSideCondition('lightscreen');
102
+ },
103
+ // This function deals with AfterMoveSelf events.
104
+ // This leads with partial trapping moves shenanigans after the move has been used.
105
+ useMove(moveOrMoveName, pokemon, target, sourceEffect) {
106
+ var _a, _b;
107
+ const moveResult = this.useMoveInner(moveOrMoveName, pokemon, target, sourceEffect);
108
+ if (!sourceEffect && this.battle.effect.id)
109
+ sourceEffect = this.battle.effect;
110
+ const baseMove = this.battle.dex.moves.get(moveOrMoveName);
111
+ let move = this.battle.dex.getActiveMove(baseMove);
112
+ if (target === undefined)
113
+ target = this.battle.getRandomTarget(pokemon, move);
114
+ if (move.target === 'self') {
115
+ target = pokemon;
116
+ }
117
+ if (sourceEffect)
118
+ move.sourceEffect = sourceEffect.id;
119
+ this.battle.singleEvent('ModifyMove', move, null, pokemon, target, move, move);
120
+ if (baseMove.target !== move.target) {
121
+ // Target changed in ModifyMove, so we must adjust it here
122
+ target = this.battle.getRandomTarget(pokemon, move);
123
+ }
124
+ move = this.battle.runEvent('ModifyMove', pokemon, target, move, move);
125
+ if (baseMove.target !== move.target) {
126
+ // Check again, this shouldn't ever happen on Gen 1.
127
+ target = this.battle.getRandomTarget(pokemon, move);
128
+ }
129
+ if (move.id !== 'metronome') {
130
+ if (move.id !== 'mirrormove' ||
131
+ (!((_a = pokemon.side.foe.active[0]) === null || _a === void 0 ? void 0 : _a.lastMove) || ((_b = pokemon.side.foe.active[0].lastMove) === null || _b === void 0 ? void 0 : _b.id) === 'mirrormove')) {
132
+ // The move is our 'final' move (a failed Mirror Move, or any move that isn't Metronome or Mirror Move).
133
+ this.battle.singleEvent('AfterMove', move, null, pokemon, target, move);
134
+ // If target fainted
135
+ if (target && target.hp <= 0) {
136
+ // We remove screens
137
+ target.side.removeSideCondition('reflect');
138
+ target.side.removeSideCondition('lightscreen');
139
+ }
140
+ else {
141
+ this.battle.runEvent('AfterMoveSelf', pokemon, target, move);
142
+ }
143
+ if (pokemon.volatiles['mustrecharge'])
144
+ this.battle.add('-mustrecharge', pokemon);
145
+ // For partial trapping moves, we are saving the target.
146
+ if (move.volatileStatus === 'partiallytrapped' && target && target.hp > 0) {
147
+ // It hit, so let's remove must recharge volatile. Yup, this happens on Stadium.
148
+ target.removeVolatile('mustrecharge');
149
+ // Let's check if the lock exists
150
+ if (pokemon.volatiles['partialtrappinglock'] && target.volatiles['partiallytrapped']) {
151
+ // Here the partialtrappinglock volatile has been already applied
152
+ if (!pokemon.volatiles['partialtrappinglock'].locked) {
153
+ // If it's the first hit, we save the target
154
+ pokemon.volatiles['partialtrappinglock'].locked = target;
155
+ }
156
+ } // If we move to here, the move failed and there's no partial trapping lock
157
+ }
158
+ }
108
159
  }
109
- else {
110
- this.battle.runEvent('AfterMoveSelf', pokemon, target, move);
160
+ return moveResult;
161
+ },
162
+ // This is the function that actually uses the move, running ModifyMove events.
163
+ // It uses the move and then deals with the effects after the move.
164
+ useMoveInner(moveOrMoveName, pokemon, target, sourceEffect) {
165
+ if (!sourceEffect && this.battle.effect.id)
166
+ sourceEffect = this.battle.effect;
167
+ const baseMove = this.battle.dex.moves.get(moveOrMoveName);
168
+ let move = this.battle.dex.getActiveMove(baseMove);
169
+ if (target === undefined)
170
+ target = this.battle.getRandomTarget(pokemon, move);
171
+ if (move.target === 'self') {
172
+ target = pokemon;
173
+ }
174
+ if (sourceEffect)
175
+ move.sourceEffect = sourceEffect.id;
176
+ this.battle.setActiveMove(move, pokemon, target);
177
+ this.battle.singleEvent('ModifyMove', move, null, pokemon, target, move, move);
178
+ if (baseMove.target !== move.target) {
179
+ // Target changed in ModifyMove, so we must adjust it here
180
+ target = this.battle.getRandomTarget(pokemon, move);
181
+ }
182
+ move = this.battle.runEvent('ModifyMove', pokemon, target, move, move);
183
+ if (baseMove.target !== move.target) {
184
+ // Check again, this shouldn't ever happen on Gen 1.
185
+ target = this.battle.getRandomTarget(pokemon, move);
186
+ this.battle.debug('not a gen 1 mechanic');
187
+ }
188
+ if (!move)
189
+ return false;
190
+ let attrs = '';
191
+ if (pokemon.fainted) {
192
+ // Removing screens upon faint.
193
+ pokemon.side.removeSideCondition('reflect');
194
+ pokemon.side.removeSideCondition('lightscreen');
195
+ return false;
111
196
  }
112
- if (pokemon.volatiles['mustrecharge'])
113
- this.battle.add('-mustrecharge', pokemon);
114
- // For partial trapping moves, we are saving the target.
115
- if (move.volatileStatus === 'partiallytrapped' && target && target.hp > 0) {
116
- // It hit, so let's remove must recharge volatile. Yup, this happens on Stadium.
117
- target.removeVolatile('mustrecharge');
118
- // Let's check if the lock exists
119
- if (pokemon.volatiles['partialtrappinglock'] && target.volatiles['partiallytrapped']) {
120
- // Here the partialtrappinglock volatile has been already applied
121
- if (!pokemon.volatiles['partialtrappinglock'].locked) {
122
- // If it's the first hit, we save the target
123
- pokemon.volatiles['partialtrappinglock'].locked = target;
124
- }
125
- } // If we move to here, the move failed and there's no partial trapping lock
197
+ if (sourceEffect)
198
+ attrs += '|[from]' + this.battle.dex.conditions.get(sourceEffect);
199
+ this.battle.addMove('move', pokemon, move.name, target + attrs);
200
+ if (!this.battle.singleEvent('Try', move, null, pokemon, target, move)) {
201
+ return true;
202
+ }
203
+ if (!this.battle.singleEvent('TryMove', move, null, pokemon, target, move) ||
204
+ !this.battle.runEvent('TryMove', pokemon, target, move)) {
205
+ return true;
206
+ }
207
+ if (move.ignoreImmunity === undefined) {
208
+ move.ignoreImmunity = (move.category === 'Status');
209
+ }
210
+ let damage = false;
211
+ if (!target || target.fainted) {
212
+ this.battle.attrLastMove('[notarget]');
213
+ this.battle.add('-notarget');
214
+ return true;
215
+ }
216
+ damage = this.tryMoveHit(target, pokemon, move);
217
+ // Store 0 damage for last damage if move failed.
218
+ // This only happens on moves that don't deal damage but call GetDamageVarsForPlayerAttack (disassembly).
219
+ const neverDamageMoves = [
220
+ 'conversion', 'haze', 'mist', 'focusenergy', 'confuseray', 'supersonic', 'transform', 'lightscreen', 'reflect', 'substitute', 'mimic', 'leechseed', 'splash', 'softboiled', 'recover', 'rest',
221
+ ];
222
+ if (!damage && damage !== 0 &&
223
+ (move.category !== 'Status' || (move.status && !['psn', 'tox', 'par'].includes(move.status))) &&
224
+ !neverDamageMoves.includes(move.id)) {
225
+ this.battle.lastDamage = 0;
226
+ }
227
+ // Go ahead with results of the used move.
228
+ if (damage === false) {
229
+ this.battle.singleEvent('MoveFail', move, null, target, pokemon, move);
230
+ return true;
231
+ }
232
+ if (!move.negateSecondary) {
233
+ this.battle.singleEvent('AfterMoveSecondarySelf', move, null, pokemon, target, move);
234
+ this.battle.runEvent('AfterMoveSecondarySelf', pokemon, target, move);
126
235
  }
236
+ return true;
127
237
  },
128
238
  tryMoveHit(target, pokemon, move) {
129
239
  let damage = 0;
@@ -602,7 +712,7 @@ exports.Scripts = {
602
712
  // This occurs when damage was either 2 or 3 prior to applying STAB/Type matchup, and target is 4x resistant to the move.
603
713
  if (damage === 0)
604
714
  return damage;
605
- // Apply random factor is damage is greater than 1
715
+ // Apply random factor if damage is greater than 1
606
716
  if (damage > 1) {
607
717
  damage *= this.battle.random(217, 256);
608
718
  damage = Math.floor(damage / 255);
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/gen1stadium/scripts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/gen1stadium/scripts.ts"],"names":[],"mappings":"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"}
@@ -429,7 +429,7 @@ exports.Scripts = {
429
429
  damage = Math.floor(damage / 2);
430
430
  }
431
431
  }
432
- // Apply random factor is damage is greater than 1, except for Flail and Reversal
432
+ // Apply random factor if damage is greater than 1, except for Flail and Reversal
433
433
  if (!move.noDamageVariance && damage > 1) {
434
434
  damage *= this.battle.random(217, 256);
435
435
  damage = Math.floor(damage / 255);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pkmn/mods",
3
- "version": "0.6.2",
3
+ "version": "0.6.4",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "exports": {
@@ -34,11 +34,11 @@
34
34
  "!src/*.test.*"
35
35
  ],
36
36
  "dependencies": {
37
- "@pkmn/dex-types": "^0.6.2"
37
+ "@pkmn/dex-types": "^0.6.4"
38
38
  },
39
39
  "devDependencies": {
40
- "@pkmn/dex": "^0.6.2",
41
- "@pkmn/sim": "^0.6.2"
40
+ "@pkmn/dex": "^0.6.4",
41
+ "@pkmn/sim": "^0.6.4"
42
42
  },
43
43
  "scripts": {
44
44
  "lint": "eslint --cache src --ext ts",
@@ -18,7 +18,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
18
18
  duration: 2,
19
19
  onLockMove: 'dig',
20
20
  onInvulnerability(target, source, move) {
21
- if (move.id === 'swift' && target.volatiles['substitute']) return true;
21
+ if ((move.id === 'swift' && target.volatiles['substitute']) || move.id === 'transform') return true;
22
22
  this.add('-message', `The foe ${target.name} can't be hit underground!`);
23
23
  return false;
24
24
  },
@@ -38,7 +38,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
38
38
  duration: 2,
39
39
  onLockMove: 'fly',
40
40
  onInvulnerability(target, source, move) {
41
- if (move.id === 'swift' && target.volatiles['substitute']) return true;
41
+ if ((move.id === 'swift' && target.volatiles['substitute']) || move.id === 'transform') return true;
42
42
  this.add('-message', `The foe ${target.name} can't be hit while flying!`);
43
43
  return false;
44
44
  },
@@ -86,6 +86,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
86
86
  uncappedDamage = this.runEvent('SubDamage', target, source, move, uncappedDamage);
87
87
  if (!uncappedDamage) return uncappedDamage;
88
88
  source.lastDamage = uncappedDamage;
89
+ this.lastDamage = uncappedDamage;
89
90
  target.volatiles['substitute'].hp -= uncappedDamage > target.volatiles['substitute'].hp ?
90
91
  target.volatiles['substitute'].hp : uncappedDamage;
91
92
  if (target.volatiles['substitute'].hp <= 0) {
@@ -1,6 +1,88 @@
1
- import type {ModdedMoveData} from '@pkmn/sim';
1
+ import type {ActiveMove, ModdedMoveData} from '@pkmn/sim';
2
2
 
3
3
  export const Moves: {[k: string]: ModdedMoveData} = {
4
+ bide: {
5
+ inherit: true,
6
+ priority: 0,
7
+ accuracy: true,
8
+ ignoreEvasion: true,
9
+ condition: {
10
+ duration: 2,
11
+ durationCallback(target, source, effect) {
12
+ return this.random(3, 5);
13
+ },
14
+ onStart(pokemon) {
15
+ this.effectState.totalDamage = 0;
16
+ this.effectState.lastDamage = 0;
17
+ this.add('-start', pokemon, 'Bide');
18
+ },
19
+ onHit(target, source, move) {
20
+ if (source && source !== target && move.category !== 'Physical' && move.category !== 'Special') {
21
+ const damage = this.effectState.totalDamage;
22
+ this.effectState.totalDamage += damage;
23
+ this.effectState.lastDamage = damage;
24
+ this.effectState.sourceSlot = source.getSlot();
25
+ }
26
+ },
27
+ onDamage(damage, target, source, move) {
28
+ if (!source || source.isAlly(target)) return;
29
+ if (!move || move.effectType !== 'Move') return;
30
+ if (!damage && this.effectState.lastDamage > 0) {
31
+ damage = this.effectState.totalDamage;
32
+ }
33
+ this.effectState.totalDamage += damage;
34
+ this.effectState.lastDamage = damage;
35
+ this.effectState.sourceSlot = source.getSlot();
36
+ },
37
+ onAfterSetStatus(status, pokemon) {
38
+ // Sleep, freeze, and partial trap will just pause duration.
39
+ if (pokemon.volatiles['flinch']) {
40
+ this.effectState.duration++;
41
+ } else if (pokemon.volatiles['partiallytrapped']) {
42
+ this.effectState.duration++;
43
+ } else {
44
+ switch (status.id) {
45
+ case 'slp':
46
+ case 'frz':
47
+ this.effectState.duration++;
48
+ break;
49
+ }
50
+ }
51
+ },
52
+ onBeforeMove(pokemon, t, move) {
53
+ if (this.effectState.duration === 1) {
54
+ this.add('-end', pokemon, 'Bide');
55
+ if (!this.effectState.totalDamage) {
56
+ this.debug("Bide failed because no damage was taken");
57
+ this.add('-fail', pokemon);
58
+ return false;
59
+ }
60
+ const target = this.getAtSlot(this.effectState.sourceSlot);
61
+ if (target.isSemiInvulnerable()) {
62
+ this.add('-message', 'The foe ' + target.name + ' can\'t be hit while flying!');
63
+ pokemon.removeVolatile('bide');
64
+ return false;
65
+ }
66
+ this.actions.moveHit(target, pokemon, move, {damage: this.effectState.totalDamage * 2} as ActiveMove);
67
+ pokemon.removeVolatile('bide');
68
+ return false;
69
+ }
70
+ this.add('-activate', pokemon, 'Bide');
71
+ return false;
72
+ },
73
+ onDisableMove(pokemon) {
74
+ if (!pokemon.hasMove('bide')) {
75
+ return;
76
+ }
77
+ for (const moveSlot of pokemon.moveSlots) {
78
+ if (moveSlot.id !== 'bide') {
79
+ pokemon.disableMove(moveSlot.id);
80
+ }
81
+ }
82
+ },
83
+ },
84
+ type: "???", // Will look as Normal but it's STAB-less
85
+ },
4
86
  bind: {
5
87
  inherit: true,
6
88
  // FIXME: onBeforeMove() {},
@@ -178,6 +260,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
178
260
  if (!damage) return damage;
179
261
  target.volatiles['substitute'].hp -= damage;
180
262
  source.lastDamage = damage;
263
+ this.lastDamage = damage;
181
264
  if (target.volatiles['substitute'].hp <= 0) {
182
265
  this.debug('Substitute broke');
183
266
  target.removeVolatile('substitute');
@@ -98,31 +98,147 @@ export const Scripts: ModdedBattleScriptsData = {
98
98
  sourceEffect = move;
99
99
  }
100
100
  this.battle.actions.useMove(move, pokemon, target, sourceEffect);
101
- this.battle.singleEvent('AfterMove', move, null, pokemon, target, move);
101
+ },
102
+ // This function deals with AfterMoveSelf events.
103
+ // This leads with partial trapping moves shenanigans after the move has been used.
104
+ useMove(moveOrMoveName, pokemon, target, sourceEffect) {
105
+ const moveResult = this.useMoveInner(moveOrMoveName, pokemon, target, sourceEffect);
106
+
107
+ if (!sourceEffect && this.battle.effect.id) sourceEffect = this.battle.effect;
108
+ const baseMove = this.battle.dex.moves.get(moveOrMoveName);
109
+ let move = this.battle.dex.getActiveMove(baseMove);
110
+ if (target === undefined) target = this.battle.getRandomTarget(pokemon, move);
111
+ if (move.target === 'self') {
112
+ target = pokemon;
113
+ }
114
+ if (sourceEffect) move.sourceEffect = sourceEffect.id;
115
+
116
+ this.battle.singleEvent('ModifyMove', move, null, pokemon, target, move, move);
117
+ if (baseMove.target !== move.target) {
118
+ // Target changed in ModifyMove, so we must adjust it here
119
+ target = this.battle.getRandomTarget(pokemon, move);
120
+ }
121
+ move = this.battle.runEvent('ModifyMove', pokemon, target, move, move);
122
+ if (baseMove.target !== move.target) {
123
+ // Check again, this shouldn't ever happen on Gen 1.
124
+ target = this.battle.getRandomTarget(pokemon, move);
125
+ }
126
+
127
+ if (move.id !== 'metronome') {
128
+ if (move.id !== 'mirrormove' ||
129
+ (!pokemon.side.foe.active[0]?.lastMove || pokemon.side.foe.active[0].lastMove?.id === 'mirrormove')) {
130
+ // The move is our 'final' move (a failed Mirror Move, or any move that isn't Metronome or Mirror Move).
131
+ this.battle.singleEvent('AfterMove', move, null, pokemon, target, move);
132
+
133
+ // If target fainted
134
+ if (target && target.hp <= 0) {
135
+ // We remove screens
136
+ target.side.removeSideCondition('reflect');
137
+ target.side.removeSideCondition('lightscreen');
138
+ } else {
139
+ this.battle.runEvent('AfterMoveSelf', pokemon, target, move);
140
+ }
141
+ if (pokemon.volatiles['mustrecharge']) this.battle.add('-mustrecharge', pokemon);
142
+
143
+ // For partial trapping moves, we are saving the target.
144
+ if (move.volatileStatus === 'partiallytrapped' && target && target.hp > 0) {
145
+ // It hit, so let's remove must recharge volatile. Yup, this happens on Stadium.
146
+ target.removeVolatile('mustrecharge');
147
+ // Let's check if the lock exists
148
+ if (pokemon.volatiles['partialtrappinglock'] && target.volatiles['partiallytrapped']) {
149
+ // Here the partialtrappinglock volatile has been already applied
150
+ if (!pokemon.volatiles['partialtrappinglock'].locked) {
151
+ // If it's the first hit, we save the target
152
+ pokemon.volatiles['partialtrappinglock'].locked = target;
153
+ }
154
+ } // If we move to here, the move failed and there's no partial trapping lock
155
+ }
156
+ }
157
+ }
158
+ return moveResult;
159
+ },
160
+ // This is the function that actually uses the move, running ModifyMove events.
161
+ // It uses the move and then deals with the effects after the move.
162
+ useMoveInner(moveOrMoveName, pokemon, target, sourceEffect) {
163
+ if (!sourceEffect && this.battle.effect.id) sourceEffect = this.battle.effect;
164
+ const baseMove = this.battle.dex.moves.get(moveOrMoveName);
165
+ let move = this.battle.dex.getActiveMove(baseMove);
166
+ if (target === undefined) target = this.battle.getRandomTarget(pokemon, move);
167
+ if (move.target === 'self') {
168
+ target = pokemon;
169
+ }
170
+ if (sourceEffect) move.sourceEffect = sourceEffect.id;
102
171
 
103
- // If target fainted
104
- if (target && target.hp <= 0) {
105
- // We remove screens
106
- target.side.removeSideCondition('reflect');
107
- target.side.removeSideCondition('lightscreen');
108
- } else {
109
- this.battle.runEvent('AfterMoveSelf', pokemon, target, move);
172
+ this.battle.setActiveMove(move, pokemon, target);
173
+
174
+ this.battle.singleEvent('ModifyMove', move, null, pokemon, target, move, move);
175
+ if (baseMove.target !== move.target) {
176
+ // Target changed in ModifyMove, so we must adjust it here
177
+ target = this.battle.getRandomTarget(pokemon, move);
110
178
  }
111
- if (pokemon.volatiles['mustrecharge']) this.battle.add('-mustrecharge', pokemon);
112
-
113
- // For partial trapping moves, we are saving the target.
114
- if (move.volatileStatus === 'partiallytrapped' && target && target.hp > 0) {
115
- // It hit, so let's remove must recharge volatile. Yup, this happens on Stadium.
116
- target.removeVolatile('mustrecharge');
117
- // Let's check if the lock exists
118
- if (pokemon.volatiles['partialtrappinglock'] && target.volatiles['partiallytrapped']) {
119
- // Here the partialtrappinglock volatile has been already applied
120
- if (!pokemon.volatiles['partialtrappinglock'].locked) {
121
- // If it's the first hit, we save the target
122
- pokemon.volatiles['partialtrappinglock'].locked = target;
123
- }
124
- } // If we move to here, the move failed and there's no partial trapping lock
179
+ move = this.battle.runEvent('ModifyMove', pokemon, target, move, move);
180
+ if (baseMove.target !== move.target) {
181
+ // Check again, this shouldn't ever happen on Gen 1.
182
+ target = this.battle.getRandomTarget(pokemon, move);
183
+ this.battle.debug('not a gen 1 mechanic');
184
+ }
185
+ if (!move) return false;
186
+
187
+ let attrs = '';
188
+ if (pokemon.fainted) {
189
+ // Removing screens upon faint.
190
+ pokemon.side.removeSideCondition('reflect');
191
+ pokemon.side.removeSideCondition('lightscreen');
192
+ return false;
193
+ }
194
+
195
+ if (sourceEffect) attrs += '|[from]' + this.battle.dex.conditions.get(sourceEffect);
196
+ this.battle.addMove('move', pokemon, move.name, target + attrs);
197
+
198
+ if (!this.battle.singleEvent('Try', move, null, pokemon, target, move)) {
199
+ return true;
200
+ }
201
+ if (!this.battle.singleEvent('TryMove', move, null, pokemon, target, move) ||
202
+ !this.battle.runEvent('TryMove', pokemon, target, move)) {
203
+ return true;
204
+ }
205
+
206
+ if (move.ignoreImmunity === undefined) {
207
+ move.ignoreImmunity = (move.category === 'Status');
208
+ }
209
+
210
+ let damage: number | undefined | false | '' = false;
211
+ if (!target || target.fainted) {
212
+ this.battle.attrLastMove('[notarget]');
213
+ this.battle.add('-notarget');
214
+ return true;
215
+ }
216
+ damage = this.tryMoveHit(target, pokemon, move);
217
+
218
+ // Store 0 damage for last damage if move failed.
219
+ // This only happens on moves that don't deal damage but call GetDamageVarsForPlayerAttack (disassembly).
220
+ const neverDamageMoves = [
221
+ 'conversion', 'haze', 'mist', 'focusenergy', 'confuseray', 'supersonic', 'transform', 'lightscreen', 'reflect', 'substitute', 'mimic', 'leechseed', 'splash', 'softboiled', 'recover', 'rest',
222
+ ];
223
+ if (
224
+ !damage && damage !== 0 &&
225
+ (move.category !== 'Status' || (move.status && !['psn', 'tox', 'par'].includes(move.status))) &&
226
+ !neverDamageMoves.includes(move.id)
227
+ ) {
228
+ this.battle.lastDamage = 0;
229
+ }
230
+
231
+ // Go ahead with results of the used move.
232
+ if (damage === false) {
233
+ this.battle.singleEvent('MoveFail', move, null, target, pokemon, move);
234
+ return true;
235
+ }
236
+
237
+ if (!move.negateSecondary) {
238
+ this.battle.singleEvent('AfterMoveSecondarySelf', move, null, pokemon, target, move);
239
+ this.battle.runEvent('AfterMoveSecondarySelf', pokemon, target, move);
125
240
  }
241
+ return true;
126
242
  },
127
243
  tryMoveHit(target, pokemon, move) {
128
244
  let damage: number | false | undefined = 0;
@@ -629,7 +745,7 @@ export const Scripts: ModdedBattleScriptsData = {
629
745
  // This occurs when damage was either 2 or 3 prior to applying STAB/Type matchup, and target is 4x resistant to the move.
630
746
  if (damage === 0) return damage;
631
747
 
632
- // Apply random factor is damage is greater than 1
748
+ // Apply random factor if damage is greater than 1
633
749
  if (damage > 1) {
634
750
  damage *= this.battle.random(217, 256);
635
751
  damage = Math.floor(damage / 255);
@@ -456,7 +456,7 @@ export const Scripts: ModdedBattleScriptsData = {
456
456
  }
457
457
  }
458
458
 
459
- // Apply random factor is damage is greater than 1, except for Flail and Reversal
459
+ // Apply random factor if damage is greater than 1, except for Flail and Reversal
460
460
  if (!move.noDamageVariance && damage > 1) {
461
461
  damage *= this.battle.random(217, 256);
462
462
  damage = Math.floor(damage / 255);