@pkmn/mods 0.6.1 → 0.6.3

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.
@@ -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 or dealt 0 damage.
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 &&
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;
@@ -208,6 +318,8 @@ exports.Scripts = {
208
318
  let i;
209
319
  for (i = 0; i < hits && target.hp && pokemon.hp; i++) {
210
320
  move.hit = i + 1;
321
+ if (move.hit === hits)
322
+ move.lastHit = true;
211
323
  moveDamage = this.moveHit(target, pokemon, move);
212
324
  if (moveDamage === false)
213
325
  break;
@@ -383,14 +495,17 @@ exports.Scripts = {
383
495
  // Apply move secondaries.
384
496
  if (moveData.secondaries) {
385
497
  for (const secondary of moveData.secondaries) {
386
- // We check here whether to negate the probable secondary status if it's para, burn, or freeze.
387
- // In the game, this is checked and if true, the random number generator is not called.
388
- // That means that a move that does not share the type of the target can status it.
389
- // If a move that was not fire-type would exist on Gen 1, it could burn a Pokémon.
390
- if (!(secondary.status && ['par', 'brn', 'frz'].includes(secondary.status) && target && target.hasType(move.type))) {
391
- const effectChance = Math.floor((secondary.chance || 100) * 255 / 100);
392
- if (typeof secondary.chance === 'undefined' || this.battle.randomChance(effectChance + 1, 256)) {
393
- this.moveHit(target, pokemon, move, secondary, true, isSelf);
498
+ // Multi-hit moves only roll for status once
499
+ if (!move.multihit || move.lastHit) {
500
+ // We check here whether to negate the probable secondary status if it's para, burn, or freeze.
501
+ // In the game, this is checked and if true, the random number generator is not called.
502
+ // That means that a move that does not share the type of the target can status it.
503
+ // If a move that was not fire-type would exist on Gen 1, it could burn a Pokémon.
504
+ if (!(secondary.status && ['par', 'brn', 'frz'].includes(secondary.status) && target && target.hasType(move.type))) {
505
+ const effectChance = Math.floor((secondary.chance || 100) * 255 / 100);
506
+ if (typeof secondary.chance === 'undefined' || this.battle.randomChance(effectChance + 1, 256)) {
507
+ this.moveHit(target, pokemon, move, secondary, true, isSelf);
508
+ }
394
509
  }
395
510
  }
396
511
  }
@@ -597,7 +712,7 @@ exports.Scripts = {
597
712
  // This occurs when damage was either 2 or 3 prior to applying STAB/Type matchup, and target is 4x resistant to the move.
598
713
  if (damage === 0)
599
714
  return damage;
600
- // Apply random factor is damage is greater than 1
715
+ // Apply random factor if damage is greater than 1
601
716
  if (damage > 1) {
602
717
  damage *= this.battle.random(217, 256);
603
718
  damage = Math.floor(damage / 255);
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/gen1stadium/scripts.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,OAAO,GAA4B;IAC/C,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,CAAC;IACN,uFAAuF;IACvF,OAAO,EAAE;QACR,OAAO,EAAE,IAAI;QACb,0DAA0D;QAC1D,gBAAgB;YACf,IAAI,QAAwB,CAAC;YAC7B,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClC,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,GAAG,IAAI,CAAC,KAAK,CAChB,IAAI,CAAC,KAAK,CACT,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC1E,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CACxB,CAAC;gBACF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/E,IAAI,CAAC,aAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjD,gCAAgC;gBAChC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK;oBAAE,IAAI,CAAC,UAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK;oBAAE,IAAI,CAAC,UAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC9E,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAChC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;wBAC/B,IAAI,CAAC,UAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBAC/E;yBAAM;wBACN,IAAI,CAAC,UAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;qBACxF;iBACD;aACD;QACF,CAAC;QACD,qCAAqC;QACrC,OAAO,CAAC,KAAK;YACZ,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,CAAU,CAAC;YACf,KAAK,CAAC,IAAI,KAAK,EAAE;gBAChB,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAS;gBAClC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;gBACxB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;oBACvB,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBACnB;gBACD,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;oBACxB,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBACpB;gBACD,IAAI,KAAK;oBAAE,OAAO,GAAG,IAAI,CAAC;aAC1B;YACD,IAAI,CAAC,gBAAiB,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,6CAA6C;QAC7C,WAAW;YACV,IAAI,CAAU,CAAC;YACf,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACnB;QACF,CAAC;KACD;IACD,OAAO,EAAE;QACR,OAAO,EAAE,IAAI;QACb,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC/D,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU;gBAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;YAEjD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAEjD,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;gBACvF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,oCAAoC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;gBACvG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAClC,6BAA6B;gBAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC7D,OAAO;aACP;YACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;oBACrE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAClC,OAAO;iBACP;aACD;YACD,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;YACvB,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3D,IAAI,UAAU,KAAK,IAAI;gBAAE,UAAU,GAAG,KAAK,CAAC;YAC5C,IACC,CAAC,UAAU;gBACX,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EACxG;gBACD,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;iBAAM;gBACN,YAAY,GAAG,IAAI,CAAC;aACpB;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAExE,oBAAoB;YACpB,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE;gBAC7B,oBAAoB;gBACpB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;aAC/C;iBAAM;gBACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;aAC7D;YACD,IAAI,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAEjF,wDAAwD;YACxD,IAAI,IAAI,CAAC,cAAc,KAAK,kBAAkB,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE;gBAC1E,gFAAgF;gBAChF,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBACtC,iCAAiC;gBACjC,IAAI,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;oBACrF,iEAAiE;oBACjE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,MAAM,EAAE;wBACrD,4CAA4C;wBAC5C,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;qBACzD;iBACD,CAAC,2EAA2E;aAC7E;QACF,CAAC;QACD,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI;YAC/B,IAAI,MAAM,GAA+B,CAAC,CAAC;YAE3C,kDAAkD;YAClD,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/E,IAAI,SAAS,KAAK,KAAK,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClC,OAAO,KAAK,CAAC;aACb;YAED,qDAAqD;YACrD,IACC,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3F,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EACnC;gBACD,IAAI,IAAI,CAAC,YAAY,EAAE;oBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBAC1C;gBACD,OAAO,KAAK,CAAC;aACb;YACD,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACtF,IAAI,SAAS,KAAK,KAAK,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACnC,OAAO,KAAK,CAAC;aACb;YAED,qCAAqC;YACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE7B,uDAAuD;YACvD,IAAI,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE;gBAC7C,IAAI,IAAI,CAAC,cAAc,KAAK,kBAAkB,IAAI,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,MAAM,EAAE;oBAC7G,QAAQ,GAAG,IAAI,CAAC;iBAChB;qBAAM,IAAI,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE;oBACtE,sDAAsD;oBACtD,OAAO,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;oBAChD,OAAO,KAAK,CAAC;iBACb;aACD;YAED,qFAAqF;YACrF,IAAI,IAAI,CAAC,IAAI,EAAE;gBACd,IAAI,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE;oBACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;oBAC7C,OAAO,KAAK,CAAC;iBACb;aACD;YAED,uDAAuD;YACvD,kGAAkG;YAClG,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,IAAI,QAAQ,KAAK,IAAI,EAAE;gBACtB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC5C,qCAAqC;gBACrC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;oBACzB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC1E;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBACxB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;iBACzE;gBACD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;aACnC;YACD,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAE7E,wCAAwC;YACxC,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE;gBACtE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClC,MAAM,GAAG,KAAK,CAAC;aACf;YAED,oEAAoE;YACpE,IAAI,MAAM,KAAK,KAAK,EAAE;gBACrB,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;gBACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAClB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACxB,6BAA6B;wBAC7B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;4BACnC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;yBAC9C;6BAAM;4BACN,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;yBAChD;qBACD;oBACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxB,iEAAiE;oBACjE,IAAI,UAAU,GAA+B,CAAC,CAAC;oBAC/C,IAAI,CAAS,CAAC;oBACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;wBACrD,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;wBACjB,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;wBACjD,IAAI,UAAU,KAAK,KAAK;4BAAE,MAAM;wBAChC,MAAM,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;wBAC3B,qDAAqD;wBACrD,IAAI,CAAC,KAAK,CAAC;4BAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;wBAClC,IAAI,MAAM,CAAC,UAAU,EAAE;4BACtB,CAAC,EAAE,CAAC;4BACJ,MAAM;yBACN;qBACD;oBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,IAAI,CAAC,KAAK,CAAC;wBAAE,OAAO,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;iBACxC;qBAAM;oBACN,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBAC7C;aACD;YAED,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAE1E,IAAI,IAAI,CAAC,YAAY,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aAC1C;YAED,mBAAmB;YACnB,IAAI,MAAM,KAAK,KAAK,EAAE;gBACrB,6CAA6C;gBAC7C,OAAO,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;gBAChD,OAAO,KAAK,CAAC;aACb;YAED,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAExC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACjF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aAClE;YAED,OAAO,MAAM,CAAC;QACf,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM;YACrE,IAAI,MAAM,GAAsC,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAEpD,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC9E,IAAI,SAAS,GAAqB,IAAI,CAAC;YACvC,IAAI,CAAC,QAAQ;gBAAE,QAAQ,GAAG,IAAI,CAAC;YAE/B,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;gBACtC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;aACnD;YAED,IAAI,MAAM,EAAE;gBACX,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAEnF,4EAA4E;gBAC5E,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACtD,IAAI,YAAY,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,KAAK,kBAAkB,EAAE;oBAC9F,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBAC3D;gBAED,IAAI,CAAC,SAAS,EAAE;oBACf,IAAI,SAAS,KAAK,KAAK;wBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC1D,OAAO,KAAK,CAAC;iBACb;gBAED,6EAA6E;gBAC7E,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE;oBAC5B,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAClE,IAAI,CAAC,SAAS,EAAE;wBACf,IAAI,SAAS,KAAK,KAAK;4BAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBAC1D,8BAA8B;wBAC9B,IAAI,SAAS,KAAK,CAAC,EAAE;4BACpB,OAAO,KAAK,CAAC;yBACb;qBACD;oBACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;wBAChE,OAAO,KAAK,CAAC;qBACb;iBACD;qBAAM,IAAI,WAAW,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACzC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;iBAC/E;gBAED,IAAI,SAAS,KAAK,CAAC,EAAE;oBACpB,MAAM,GAAG,IAAI,CAAC;iBACd;qBAAM,IAAI,CAAC,SAAS,EAAE;oBACtB,IAAI,SAAS,KAAK,KAAK;wBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC1D,OAAO,KAAK,CAAC;iBACb;aACD;YAED,IAAI,MAAM,EAAE;gBACX,IAAI,YAAY,GAAG,KAAK,CAAC;gBAEzB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBAChD,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3D,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,KAAK,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC5C,YAAY,GAAG,IAAI,CAAC;iBACpB;qBAAM,IAAI,MAAM,KAAK,KAAK,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;oBAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;iBACjC;gBACD,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,IAAI,EAAE;oBACxC,OAAO,KAAK,CAAC;iBACb;gBACD,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBAC1D;gBACD,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACrC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtF,IAAI,CAAC,CAAC,EAAE;wBACP,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBACjC,OAAO,KAAK,CAAC;qBACb;oBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;oBACnD,YAAY,GAAG,IAAI,CAAC;iBACpB;gBACD,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACpB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;wBACnB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;wBACjD,MAAM,CAAC,gBAAiB,EAAE,CAAC;qBAC3B;yBAAM,IAAI,CAAC,WAAW,EAAE;wBACxB,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;4BACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;yBAChD;6BAAM;4BACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;yBACjC;qBACD;oBACD,YAAY,GAAG,IAAI,CAAC;iBACpB;gBACD,IAAI,QAAQ,CAAC,WAAW,EAAE;oBACzB,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;wBAC1D,MAAM,CAAC,gBAAiB,EAAE,CAAC;wBAC3B,YAAY,GAAG,IAAI,CAAC;qBACpB;iBACD;gBACD,IAAI,QAAQ,CAAC,cAAc,EAAE;oBAC5B,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;wBAC/D,YAAY,GAAG,IAAI,CAAC;qBACpB;iBACD;gBACD,IAAI,QAAQ,CAAC,aAAa,EAAE;oBAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;wBACxE,YAAY,GAAG,IAAI,CAAC;qBACpB;iBACD;gBACD,IAAI,QAAQ,CAAC,aAAa,EAAE;oBAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;wBAC9E,YAAY,GAAG,IAAI,CAAC;qBACpB;iBACD;gBACD,aAAa;gBACb,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAChF,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE;oBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBACnD;gBACD,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE;oBAChC,IAAI,SAAS,KAAK,KAAK;wBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC1D,OAAO,KAAK,CAAC;iBACb;aACD;YAED,yCAAyC;YACzC,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAClB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;aACvE;YAED,+CAA+C;YAC/C,IAAI,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE;gBAC7C,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;aACrE;YAED,0BAA0B;YAC1B,IAAI,QAAQ,CAAC,WAAW,EAAE;gBACzB,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,WAAW,EAAE;oBAC7C,+FAA+F;oBAC/F,uFAAuF;oBACvF,mFAAmF;oBACnF,kFAAkF;oBAClF,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;wBACnH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;wBACvE,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE;4BAC/F,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;yBAC7D;qBACD;iBACD;aACD;YACD,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,EAAE,EAAE;gBAClC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;aACrC;YAED,OAAO,MAAM,CAAC;QACf,CAAC;QACD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB;YAC/C,iCAAiC;YACjC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC7B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aACpC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBACpC,IAAI,GAAG;oBACN,SAAS,EAAE,IAAI;oBACf,IAAI,EAAE,KAAK;oBACX,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,EAAE;iBACK,CAAC;aAChB;YAED,iDAAiD;YACjD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBAC9F,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;oBACzC,OAAO,KAAK,CAAC;iBACb;aACD;YAED,sBAAsB;YACtB,IAAI,IAAI,CAAC,IAAI,EAAE;gBACd,OAAO,MAAM,CAAC,KAAK,CAAC;aACpB;YAED,kEAAkE;YAClE,IAAI,IAAI,CAAC,cAAc,EAAE;gBACxB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;aAC7D;YAED,yDAAyD;YACzD,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;gBAC5B,OAAO,MAAM,CAAC,KAAK,CAAC;aACpB;YAED,gDAAgD;YAChD,IAAI,IAAI,CAAC,MAAM,EAAE;gBAChB,OAAO,IAAI,CAAC,MAAM,CAAC;aACnB;YAED,sGAAsG;YACtG,IAAI,IAAI,CAAC,cAAc,KAAK,kBAAkB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpG,OAAO,CAAC,CAAC;aACT;YAED,4FAA4F;YAC5F,IAAI,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,EAAE;gBAC3G,OAAO,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC;aACtD;YAED,qEAAqE;YACrE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;YAC/C,gEAAgE;YAChE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEvB,kEAAkE;YAClE,IAAI,SAAS,GAA0B,IAAI,CAAC,SAAS,CAAC;YACtD,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC3B,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;aAC3E;YACD,IAAI,CAAC,SAAS,EAAE;gBACf,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;aAC/C;YACD,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEpD,0HAA0H;YAC1H,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE;gBACZ,qDAAqD;gBACrD,8FAA8F;gBAC9F,IAAI,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBAEtD,uFAAuF;gBACvF,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC;gBAE7B,0CAA0C;gBAC1C,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;oBACpC,sFAAsF;oBACtF,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC;oBAC7B,mBAAmB;oBACnB,UAAU,IAAI,GAAG,CAAC;iBAClB;qBAAM;oBACN,8CAA8C;oBAC9C,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC;iBAC7B;gBAED,kDAAkD;gBAClD,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;oBACzB,uDAAuD;oBACvD,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC;iBAC7B;qBAAM,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;oBAChC,+EAA+E;oBAC/E,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC;iBAC7B;gBAED,oDAAoD;gBACpD,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAE3D,uEAAuE;gBACvE,gFAAgF;gBAChF,6HAA6H;gBAC7H,IAAI,UAAU,GAAG,CAAC,EAAE;oBACnB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;iBACnD;aACD;YACD,2BAA2B;YAC3B,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;gBACtE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;aACxC;YAED,kCAAkC;YAClC,IAAI,SAAS,EAAE;gBACd,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC/E,IAAI,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACxC,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC;iBACpC;aACD;YACD,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,CAAC;YACzB,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEpD,gDAAgD;YAChD,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAE9E,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;YAChD,MAAM,OAAO,GAAmB,IAAI,CAAC,qBAAqB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3F,MAAM,OAAO,GAAmB,IAAI,CAAC,qBAAqB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAE3F,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAExC,2CAA2C;YAC3C,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE;gBACrH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;aACtD;YAED,+EAA+E;YAC/E,yCAAyC;YACzC,gDAAgD;YAChD,IAAI,MAAM,EAAE;gBACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,KAAK,IAAI,CAAC,CAAC;gBACX,IAAI,CAAC,gBAAgB;oBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aACxD;YAED,IAAI,IAAI,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACrD,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACzC;YAED,IAAI,IAAI,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACrD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACxC;YAED,kGAAkG;YAClG,0CAA0C;YAC1C,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,EAAE;gBACpC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;gBACpE,uFAAuF;gBACvF,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;aACtE;YAED,mDAAmD;YACnD,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,KAAK,KAAK,EAAE;gBAC3C,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAChE;YAED,+DAA+D;YAC/D,iDAAiD;YACjD,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YACvB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAChC,MAAM,IAAI,CAAC,CAAC;YACZ,MAAM,IAAI,SAAS,CAAC;YACpB,MAAM,IAAI,MAAM,CAAC;YACjB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;YACtC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,CAAC;YAEZ,oDAAoD;YACpD,IAAI,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC3C,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aACjC;YAED,sBAAsB;YACtB,iFAAiF;YACjF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7D,yBAAyB;YACzB,IAAI,YAAY,GAAG,CAAC,EAAE;gBACrB,IAAI,CAAC,gBAAgB;oBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;gBAClE,MAAM,IAAI,EAAE,CAAC;gBACb,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBACjC,IAAI,YAAY,IAAI,CAAC,EAAE;oBACtB,MAAM,IAAI,EAAE,CAAC;oBACb,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;iBACjC;aACD;YACD,IAAI,YAAY,GAAG,CAAC,EAAE;gBACrB,IAAI,CAAC,gBAAgB;oBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAC5D,MAAM,IAAI,CAAC,CAAC;gBACZ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBACjC,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE;oBACvB,MAAM,IAAI,CAAC,CAAC;oBACZ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;iBACjC;aACD;YAED,iDAAiD;YACjD,yHAAyH;YACzH,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC;YAEhC,kDAAkD;YAClD,IAAI,MAAM,GAAG,CAAC,EAAE;gBACf,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;gBAClC,IAAI,MAAM,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;oBAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC9E,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE;oBACjF,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACD;YAED,yCAAyC;YACzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;KACD;CACD,CAAC"}
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/build/index.d.ts CHANGED
@@ -36,23 +36,23 @@ export declare class ModdedDex<A extends Ability = Ability, AD extends AbilityDa
36
36
  } | null;
37
37
  Types: {
38
38
  Normal: TypeData;
39
- Fighting: TypeData;
39
+ Ghost: TypeData;
40
+ Bug: TypeData;
40
41
  Flying: TypeData;
42
+ Fairy: TypeData;
43
+ Grass: TypeData;
44
+ Dragon: TypeData;
45
+ Fighting: TypeData;
41
46
  Poison: TypeData;
42
47
  Ground: TypeData;
43
48
  Rock: TypeData;
44
- Bug: TypeData;
45
- Ghost: TypeData;
46
49
  Steel: TypeData;
47
50
  Fire: TypeData;
48
51
  Water: TypeData;
49
- Grass: TypeData;
50
52
  Electric: TypeData;
51
53
  Psychic: TypeData;
52
54
  Ice: TypeData;
53
- Dragon: TypeData;
54
55
  Dark: TypeData;
55
- Fairy: TypeData;
56
56
  };
57
57
  };
58
58
  mod(genid: GenID): ModdedDex;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pkmn/mods",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
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.1"
37
+ "@pkmn/dex-types": "^0.6.3"
38
38
  },
39
39
  "devDependencies": {
40
- "@pkmn/dex": "^0.6.1",
41
- "@pkmn/sim": "^0.6.1"
40
+ "@pkmn/dex": "^0.6.3",
41
+ "@pkmn/sim": "^0.6.3"
42
42
  },
43
43
  "scripts": {
44
44
  "lint": "eslint --cache src --ext ts",
@@ -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 or dealt 0 damage.
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 &&
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;
@@ -215,6 +331,7 @@ export const Scripts: ModdedBattleScriptsData = {
215
331
  let i: number;
216
332
  for (i = 0; i < hits && target.hp && pokemon.hp; i++) {
217
333
  move.hit = i + 1;
334
+ if (move.hit === hits) move.lastHit = true;
218
335
  moveDamage = this.moveHit(target, pokemon, move);
219
336
  if (moveDamage === false) break;
220
337
  damage = (moveDamage || 0);
@@ -390,14 +507,17 @@ export const Scripts: ModdedBattleScriptsData = {
390
507
  // Apply move secondaries.
391
508
  if (moveData.secondaries) {
392
509
  for (const secondary of moveData.secondaries) {
393
- // We check here whether to negate the probable secondary status if it's para, burn, or freeze.
394
- // In the game, this is checked and if true, the random number generator is not called.
395
- // That means that a move that does not share the type of the target can status it.
396
- // If a move that was not fire-type would exist on Gen 1, it could burn a Pokémon.
397
- if (!(secondary.status && ['par', 'brn', 'frz'].includes(secondary.status) && target && target.hasType(move.type))) {
398
- const effectChance = Math.floor((secondary.chance || 100) * 255 / 100);
399
- if (typeof secondary.chance === 'undefined' || this.battle.randomChance(effectChance + 1, 256)) {
400
- this.moveHit(target, pokemon, move, secondary, true, isSelf);
510
+ // Multi-hit moves only roll for status once
511
+ if (!move.multihit || move.lastHit) {
512
+ // We check here whether to negate the probable secondary status if it's para, burn, or freeze.
513
+ // In the game, this is checked and if true, the random number generator is not called.
514
+ // That means that a move that does not share the type of the target can status it.
515
+ // If a move that was not fire-type would exist on Gen 1, it could burn a Pokémon.
516
+ if (!(secondary.status && ['par', 'brn', 'frz'].includes(secondary.status) && target && target.hasType(move.type))) {
517
+ const effectChance = Math.floor((secondary.chance || 100) * 255 / 100);
518
+ if (typeof secondary.chance === 'undefined' || this.battle.randomChance(effectChance + 1, 256)) {
519
+ this.moveHit(target, pokemon, move, secondary, true, isSelf);
520
+ }
401
521
  }
402
522
  }
403
523
  }
@@ -625,7 +745,7 @@ export const Scripts: ModdedBattleScriptsData = {
625
745
  // This occurs when damage was either 2 or 3 prior to applying STAB/Type matchup, and target is 4x resistant to the move.
626
746
  if (damage === 0) return damage;
627
747
 
628
- // Apply random factor is damage is greater than 1
748
+ // Apply random factor if damage is greater than 1
629
749
  if (damage > 1) {
630
750
  damage *= this.battle.random(217, 256);
631
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);