@pkmn/mods 0.4.19 → 0.4.23

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.
Files changed (76) hide show
  1. package/README.md +3 -3
  2. package/build/gen1stadium/scripts.js +17 -23
  3. package/build/gen1stadium/scripts.js.map +1 -1
  4. package/build/gen2stadium2/scripts.js +16 -23
  5. package/build/gen2stadium2/scripts.js.map +1 -1
  6. package/build/gen7letsgo/formats-data.js +0 -201
  7. package/build/gen7letsgo/formats-data.js.map +1 -1
  8. package/build/gen7letsgo/pokedex.js +8 -21
  9. package/build/gen7letsgo/pokedex.js.map +1 -1
  10. package/build/gen7letsgo/scripts.js +0 -9
  11. package/build/gen7letsgo/scripts.js.map +1 -1
  12. package/build/gen7sm/formats-data.d.ts +4 -0
  13. package/build/gen7sm/formats-data.js +62 -0
  14. package/build/gen7sm/formats-data.js.map +1 -0
  15. package/build/gen7sm/index.d.ts +5 -0
  16. package/build/gen7sm/index.js +14 -0
  17. package/build/gen7sm/index.js.map +1 -0
  18. package/build/gen7sm/items.d.ts +4 -0
  19. package/build/gen7sm/items.js +30 -0
  20. package/build/gen7sm/items.js.map +1 -0
  21. package/build/gen7sm/learnsets.d.ts +4 -0
  22. package/build/gen7sm/learnsets.js +60345 -0
  23. package/build/gen7sm/learnsets.js.map +1 -0
  24. package/build/gen7sm/pokedex.d.ts +4 -0
  25. package/build/gen7sm/pokedex.js +50 -0
  26. package/build/gen7sm/pokedex.js.map +1 -0
  27. package/build/gen7sm/scripts.d.ts +2 -0
  28. package/build/gen7sm/scripts.js +7 -0
  29. package/build/gen7sm/scripts.js.map +1 -0
  30. package/build/gen8bdsp/formats-data.d.ts +4 -0
  31. package/build/gen8bdsp/formats-data.js +2148 -0
  32. package/build/gen8bdsp/formats-data.js.map +1 -0
  33. package/build/gen8bdsp/index.d.ts +7 -0
  34. package/build/gen8bdsp/index.js +18 -0
  35. package/build/gen8bdsp/index.js.map +1 -0
  36. package/build/gen8bdsp/items.d.ts +4 -0
  37. package/build/gen8bdsp/items.js +803 -0
  38. package/build/gen8bdsp/items.js.map +1 -0
  39. package/build/gen8bdsp/learnsets.d.ts +4 -0
  40. package/build/gen8bdsp/learnsets.js +25254 -0
  41. package/build/gen8bdsp/learnsets.js.map +1 -0
  42. package/build/gen8bdsp/moves.d.ts +4 -0
  43. package/build/gen8bdsp/moves.js +910 -0
  44. package/build/gen8bdsp/moves.js.map +1 -0
  45. package/build/gen8bdsp/pokedex.d.ts +4 -0
  46. package/build/gen8bdsp/pokedex.js +30 -0
  47. package/build/gen8bdsp/pokedex.js.map +1 -0
  48. package/build/gen8bdsp/rulesets.d.ts +4 -0
  49. package/build/gen8bdsp/rulesets.js +14 -0
  50. package/build/gen8bdsp/rulesets.js.map +1 -0
  51. package/build/gen8bdsp/scripts.d.ts +2 -0
  52. package/build/gen8bdsp/scripts.js +13 -0
  53. package/build/gen8bdsp/scripts.js.map +1 -0
  54. package/package.json +10 -8
  55. package/src/gen1stadium/scripts.ts +22 -19
  56. package/src/gen2stadium2/scripts.ts +20 -19
  57. package/src/gen7letsgo/formats-data.ts +0 -201
  58. package/src/gen7letsgo/pokedex.ts +8 -21
  59. package/src/gen7letsgo/scripts.ts +0 -9
  60. package/src/gen7sm/formats-data.ts +60 -0
  61. package/src/gen7sm/index.ts +5 -0
  62. package/src/{vgc17 → gen7sm}/items.ts +6 -6
  63. package/src/gen7sm/learnsets.ts +60343 -0
  64. package/src/{vgc17 → gen7sm}/pokedex.ts +0 -0
  65. package/src/{vgc17 → gen7sm}/scripts.ts +0 -0
  66. package/src/gen8bdsp/formats-data.ts +2146 -0
  67. package/src/{vgc17 → gen8bdsp}/index.ts +1 -0
  68. package/src/gen8bdsp/items.ts +799 -0
  69. package/src/gen8bdsp/learnsets.ts +25252 -0
  70. package/src/gen8bdsp/moves.ts +908 -0
  71. package/src/gen8bdsp/pokedex.ts +28 -0
  72. package/src/gen8bdsp/rulesets.ts +12 -0
  73. package/src/gen8bdsp/scripts.ts +11 -0
  74. package/src/vgc17/formats-data.ts +0 -56
  75. package/src/vgc17/learnsets.ts +0 -60476
  76. package/src/vgc17/rulesets.ts +0 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moves.js","sourceRoot":"","sources":["../../src/gen8bdsp/moves.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ModdedSpeciesData } from '@pkmn/sim';
2
+ export declare const Pokedex: {
3
+ [k: string]: ModdedSpeciesData;
4
+ };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pokedex = void 0;
4
+ exports.Pokedex = {
5
+ eevee: {
6
+ inherit: true,
7
+ evos: ["Vaporeon", "Jolteon", "Flareon", "Espeon", "Umbreon", "Leafeon", "Glaceon"],
8
+ },
9
+ milotic: {
10
+ inherit: true,
11
+ evoType: "other",
12
+ evoCondition: "trade holding Prism Scale or level-up with high Beauty",
13
+ },
14
+ magnezone: {
15
+ inherit: true,
16
+ evoType: "other",
17
+ evoCondition: "Thunder Stone or level-up in a special magnetic field",
18
+ },
19
+ leafeon: {
20
+ inherit: true,
21
+ evoType: "other",
22
+ evoCondition: "Leaf Stone or level-up near a Moss Rock",
23
+ },
24
+ glaceon: {
25
+ inherit: true,
26
+ evoType: "levelExtra",
27
+ evoCondition: "near an Ice Rock",
28
+ },
29
+ };
30
+ //# sourceMappingURL=pokedex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pokedex.js","sourceRoot":"","sources":["../../src/gen8bdsp/pokedex.ts"],"names":[],"mappings":";;;AAEa,QAAA,OAAO,GAAqC;IACxD,KAAK,EAAE;QACN,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;KACnF;IACD,OAAO,EAAE;QACR,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,wDAAwD;KACtE;IACD,SAAS,EAAE;QACV,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,uDAAuD;KACrE;IACD,OAAO,EAAE;QACR,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,yCAAyC;KACvD;IACD,OAAO,EAAE;QACR,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,YAAY;QACrB,YAAY,EAAE,kBAAkB;KAChC;CACD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ModdedFormatData } from '@pkmn/sim';
2
+ export declare const Rulesets: {
3
+ [k: string]: ModdedFormatData;
4
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Rulesets = void 0;
4
+ exports.Rulesets = {
5
+ obtainablemoves: {
6
+ inherit: true,
7
+ banlist: [
8
+ // No valid fathers and can't get in Grand Underground
9
+ 'Taillow + Boomburst', 'Swellow + Boomburst',
10
+ 'Chatot + Boomburst',
11
+ ],
12
+ },
13
+ };
14
+ //# sourceMappingURL=rulesets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rulesets.js","sourceRoot":"","sources":["../../src/gen8bdsp/rulesets.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAoC;IACxD,eAAe,EAAE;QAChB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACR,sDAAsD;YACtD,qBAAqB,EAAE,qBAAqB;YAC5C,oBAAoB;SACpB;KACD;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ModdedBattleScriptsData } from '@pkmn/sim';
2
+ export declare const Scripts: ModdedBattleScriptsData;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Scripts = void 0;
4
+ exports.Scripts = {
5
+ gen: 8,
6
+ side: {
7
+ canDynamaxNow() {
8
+ // Dynamaxing is not in BDSP
9
+ return false;
10
+ },
11
+ },
12
+ };
13
+ //# sourceMappingURL=scripts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/gen8bdsp/scripts.ts"],"names":[],"mappings":";;;AAEa,QAAA,OAAO,GAA4B;IAC/C,GAAG,EAAE,CAAC;IACN,IAAI,EAAE;QACL,aAAa;YACZ,4BAA4B;YAC5B,OAAO,KAAK,CAAC;QACd,CAAC;KACD;CACD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pkmn/mods",
3
- "version": "0.4.19",
3
+ "version": "0.4.23",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "exports": {
@@ -12,8 +12,9 @@
12
12
  "./gen5bw1": "./build/gen5bw1/index.js",
13
13
  "./gen6xy": "./build/gen6xy/index.js",
14
14
  "./gen7letsgo": "./build/gen7letsgo/index.js",
15
- "./gen8dlc1": "./build/gen8dlc1/index.js",
16
- "./vgc17": "./build/vgc17/index.js"
15
+ "./gen7sm": "./build/gen7sm/index.js",
16
+ "./gen8bdsp": "./build/gen8bdsp/index.js",
17
+ "./gen8dlc1": "./build/gen8dlc1/index.js"
17
18
  },
18
19
  "description": "Support for non-standard mods to @pkmn/sim and @pkmn/dex",
19
20
  "repository": "github:pkmn/ps",
@@ -33,11 +34,11 @@
33
34
  "!src/*.test.*"
34
35
  ],
35
36
  "dependencies": {
36
- "@pkmn/dex-types": "^0.4.19"
37
+ "@pkmn/dex-types": "^0.4.23"
37
38
  },
38
39
  "devDependencies": {
39
- "@pkmn/dex": "^0.4.19",
40
- "@pkmn/sim": "^0.4.19"
40
+ "@pkmn/dex": "^0.4.23",
41
+ "@pkmn/sim": "^0.4.23"
41
42
  },
42
43
  "scripts": {
43
44
  "lint": "eslint --cache src --ext ts",
@@ -68,8 +69,9 @@
68
69
  "./src/gen5bw1/*.ts",
69
70
  "./src/gen6xy/*.ts",
70
71
  "./src/gen7letsgo/*.ts",
71
- "./src/gen8dlc1/*.ts",
72
- "./src/vgc17/*.ts"
72
+ "./src/gen7sm/*.ts",
73
+ "./src/gen8bdsp/*.ts",
74
+ "./src/gen8dlc1/*.ts"
73
75
  ],
74
76
  "rules": {
75
77
  "@typescript-eslint/quotes": "off",
@@ -129,7 +129,7 @@ export const Scripts: ModdedBattleScriptsData = {
129
129
  // First, check if the target is semi-invulnerable
130
130
  let hitResult = this.battle.runEvent('Invulnerability', target, pokemon, move);
131
131
  if (hitResult === false) {
132
- if (!move.spreadHit) this.battle.attrLastMove('[miss]');
132
+ this.battle.attrLastMove('[miss]');
133
133
  this.battle.add('-miss', pokemon);
134
134
  return false;
135
135
  }
@@ -407,7 +407,7 @@ export const Scripts: ModdedBattleScriptsData = {
407
407
 
408
408
  return damage;
409
409
  },
410
- getDamage(pokemon, target, move, suppressMessages) {
410
+ getDamage(source, target, move, suppressMessages) {
411
411
  // First of all, we get the move.
412
412
  if (typeof move === 'string') {
413
413
  move = this.dex.getActiveMove(move);
@@ -435,12 +435,12 @@ export const Scripts: ModdedBattleScriptsData = {
435
435
 
436
436
  // We edit the damage through move's damage callback if necessary.
437
437
  if (move.damageCallback) {
438
- return move.damageCallback.call(this.battle, pokemon, target);
438
+ return move.damageCallback.call(this.battle, source, target);
439
439
  }
440
440
 
441
441
  // We take damage from damage=level moves (seismic toss).
442
442
  if (move.damage === 'level') {
443
- return pokemon.level;
443
+ return source.level;
444
444
  }
445
445
 
446
446
  // If there's a fix move damage, we return that.
@@ -454,13 +454,12 @@ export const Scripts: ModdedBattleScriptsData = {
454
454
  }
455
455
 
456
456
  // Let's check if we are in middle of a partial trap sequence to return the previous damage.
457
- if (pokemon.volatiles['partialtrappinglock'] && (target === pokemon.volatiles['partialtrappinglock'].locked)) {
458
- return pokemon.volatiles['partialtrappinglock'].damage;
457
+ if (source.volatiles['partialtrappinglock'] && (target === source.volatiles['partialtrappinglock'].locked)) {
458
+ return source.volatiles['partialtrappinglock'].damage;
459
459
  }
460
460
 
461
461
  // We check the category and typing to calculate later on the damage.
462
462
  if (!move.category) move.category = 'Physical';
463
- if (!move.defensiveCategory) move.defensiveCategory = move.category;
464
463
  // '???' is typeless damage: used for Struggle and Confusion etc
465
464
  if (!move.type) move.type = '???';
466
465
  const type = move.type;
@@ -468,7 +467,7 @@ export const Scripts: ModdedBattleScriptsData = {
468
467
  // We get the base power and apply basePowerCallback if necessary.
469
468
  let basePower: number | false | null = move.basePower;
470
469
  if (move.basePowerCallback) {
471
- basePower = move.basePowerCallback.call(this.battle, pokemon, target, move);
470
+ basePower = move.basePowerCallback.call(this.battle, source, target, move);
472
471
  }
473
472
  if (!basePower) {
474
473
  return basePower === 0 ? undefined : basePower;
@@ -480,13 +479,13 @@ export const Scripts: ModdedBattleScriptsData = {
480
479
  if (!isCrit) {
481
480
  // In Stadium, the critical chance is based on speed.
482
481
  // First, we get the base speed and store it. Then we add 76. This is our current crit chance.
483
- let critChance = pokemon.species.baseStats['spe'] + 76;
482
+ let critChance = source.species.baseStats['spe'] + 76;
484
483
 
485
484
  // Now we right logical shift it two places, essentially dividing by 4 and flooring it.
486
485
  critChance = critChance >> 2;
487
486
 
488
487
  // Now we check for focus energy volatile.
489
- if (pokemon.volatiles['focusenergy']) {
488
+ if (source.volatiles['focusenergy']) {
490
489
  // If it exists, crit chance is multiplied by 4 and floored with a logical left shift.
491
490
  critChance = critChance << 2;
492
491
  // Then we add 160.
@@ -522,7 +521,7 @@ export const Scripts: ModdedBattleScriptsData = {
522
521
 
523
522
  // Happens after crit calculation.
524
523
  if (basePower) {
525
- basePower = this.battle.runEvent('BasePower', pokemon, target, move, basePower);
524
+ basePower = this.battle.runEvent('BasePower', source, target, move, basePower);
526
525
  if (basePower && move.basePowerModifier) {
527
526
  basePower *= move.basePowerModifier;
528
527
  }
@@ -531,15 +530,17 @@ export const Scripts: ModdedBattleScriptsData = {
531
530
  basePower = this.battle.clampIntRange(basePower, 1);
532
531
 
533
532
  // We now check attacker's and defender's stats.
534
- let level = pokemon.level;
535
- let attacker = pokemon;
536
- const defender = target;
537
- if (move.useTargetOffensive) attacker = target;
538
- let atkType: StatIDExceptHP = (move.category === 'Physical') ? 'atk' : 'spa';
539
- const defType: StatIDExceptHP = (move.defensiveCategory === 'Physical') ? 'def' : 'spd';
540
- if (move.useSourceDefensiveAsOffensive) atkType = defType;
533
+ let level = source.level;
534
+ const attacker = move.overrideOffensivePokemon === 'target' ? target : source;
535
+ const defender = move.overrideDefensivePokemon === 'source' ? source : target;
536
+
537
+ const isPhysical = move.category === 'Physical';
538
+ const atkType: StatIDExceptHP = move.overrideOffensiveStat || (isPhysical ? 'atk' : 'spa');
539
+ const defType: StatIDExceptHP = move.overrideDefensiveStat || (isPhysical ? 'def' : 'spd');
540
+
541
541
  let attack = attacker.getStat(atkType);
542
542
  let defense = defender.getStat(defType);
543
+
543
544
  // In gen 1, screen effect is applied here.
544
545
  if ((defType === 'def' && defender.volatiles['reflect']) || (defType === 'spd' && defender.volatiles['lightscreen'])) {
545
546
  this.battle.debug('Screen doubling (Sp)Def');
@@ -556,10 +557,12 @@ export const Scripts: ModdedBattleScriptsData = {
556
557
  level *= 2;
557
558
  if (!suppressMessages) this.battle.add('-crit', target);
558
559
  }
560
+
559
561
  if (move.ignoreOffensive) {
560
562
  this.battle.debug('Negating (sp)atk boost/penalty.');
561
563
  attack = attacker.getStat(atkType, true);
562
564
  }
565
+
563
566
  if (move.ignoreDefensive) {
564
567
  this.battle.debug('Negating (sp)def boost/penalty.');
565
568
  defense = target.getStat(defType, true);
@@ -590,7 +593,7 @@ export const Scripts: ModdedBattleScriptsData = {
590
593
  damage += 2;
591
594
 
592
595
  // STAB damage bonus, the "???" type never gets STAB
593
- if (type !== '???' && pokemon.hasType(type)) {
596
+ if (type !== '???' && source.hasType(type)) {
594
597
  damage += Math.floor(damage / 2);
595
598
  }
596
599
 
@@ -106,7 +106,7 @@ export const Scripts: ModdedBattleScriptsData = {
106
106
 
107
107
  hitResult = this.battle.runEvent('Invulnerability', target, pokemon, move);
108
108
  if (hitResult === false) {
109
- if (!move.spreadHit) this.battle.attrLastMove('[miss]');
109
+ this.battle.attrLastMove('[miss]');
110
110
  this.battle.add('-miss', pokemon);
111
111
  return false;
112
112
  }
@@ -236,7 +236,7 @@ export const Scripts: ModdedBattleScriptsData = {
236
236
  }
237
237
  return damage;
238
238
  },
239
- getDamage(pokemon, target, move, suppressMessages) {
239
+ getDamage(source, target, move, suppressMessages) {
240
240
  // First of all, we get the move.
241
241
  if (typeof move === 'string') {
242
242
  move = this.dex.getActiveMove(move);
@@ -264,12 +264,12 @@ export const Scripts: ModdedBattleScriptsData = {
264
264
 
265
265
  // We edit the damage through move's damage callback
266
266
  if (move.damageCallback) {
267
- return move.damageCallback.call(this.battle, pokemon, target);
267
+ return move.damageCallback.call(this.battle, source, target);
268
268
  }
269
269
 
270
270
  // We take damage from damage=level moves
271
271
  if (move.damage === 'level') {
272
- return pokemon.level;
272
+ return source.level;
273
273
  }
274
274
 
275
275
  // If there's a fix move damage, we run it
@@ -279,7 +279,6 @@ export const Scripts: ModdedBattleScriptsData = {
279
279
 
280
280
  // We check the category and typing to calculate later on the damage
281
281
  move.category = this.battle.getCategory(move);
282
- if (!move.defensiveCategory) move.defensiveCategory = move.category;
283
282
  // '???' is typeless damage: used for Struggle and Confusion etc
284
283
  if (!move.type) move.type = '???';
285
284
  const type = move.type;
@@ -287,7 +286,7 @@ export const Scripts: ModdedBattleScriptsData = {
287
286
  // We get the base power and apply basePowerCallback if necessary
288
287
  let basePower: number | false | null | undefined = move.basePower;
289
288
  if (move.basePowerCallback) {
290
- basePower = move.basePowerCallback.call(this.battle, pokemon, target, move);
289
+ basePower = move.basePowerCallback.call(this.battle, source, target, move);
291
290
  }
292
291
 
293
292
  // We check for Base Power
@@ -298,7 +297,7 @@ export const Scripts: ModdedBattleScriptsData = {
298
297
  basePower = this.battle.clampIntRange(basePower, 1);
299
298
 
300
299
  // Checking for the move's Critical Hit ratio
301
- let critRatio = this.battle.runEvent('ModifyCritRatio', pokemon, target, move, move.critRatio || 0);
300
+ let critRatio = this.battle.runEvent('ModifyCritRatio', source, target, move, move.critRatio || 0);
302
301
  critRatio = this.battle.clampIntRange(critRatio, 0, 5);
303
302
  const critMult = [0, 16, 8, 4, 3, 2];
304
303
  let isCrit = move.willCrit || false;
@@ -317,10 +316,10 @@ export const Scripts: ModdedBattleScriptsData = {
317
316
  // confusion damage
318
317
  if (move.isConfusionSelfHit) {
319
318
  move.type = move.baseMoveType!;
320
- basePower = this.battle.runEvent('BasePower', pokemon, target, move, basePower, true);
319
+ basePower = this.battle.runEvent('BasePower', source, target, move, basePower, true);
321
320
  move.type = '???';
322
321
  } else {
323
- basePower = this.battle.runEvent('BasePower', pokemon, target, move, basePower, true);
322
+ basePower = this.battle.runEvent('BasePower', source, target, move, basePower, true);
324
323
  }
325
324
  if (basePower && move.basePowerModifier) {
326
325
  basePower *= move.basePowerModifier;
@@ -330,20 +329,21 @@ export const Scripts: ModdedBattleScriptsData = {
330
329
  basePower = this.battle.clampIntRange(basePower, 1);
331
330
 
332
331
  // We now check for attacker and defender
333
- let level = pokemon.level;
332
+ let level = source.level;
334
333
 
335
334
  // Using Beat Up
336
335
  if (move.allies) {
337
- this.battle.add('-activate', pokemon, 'move: Beat Up', '[of] ' + move.allies[0].name);
336
+ this.battle.add('-activate', source, 'move: Beat Up', '[of] ' + move.allies[0].name);
338
337
  level = move.allies[0].level;
339
338
  }
340
339
 
341
- let attacker = pokemon;
342
- const defender = target;
343
- if (move.useTargetOffensive) attacker = target;
344
- let atkType: StatIDExceptHP = (move.category === 'Physical') ? 'atk' : 'spa';
345
- const defType: StatIDExceptHP = (move.defensiveCategory === 'Physical') ? 'def' : 'spd';
346
- if (move.useSourceDefensiveAsOffensive) atkType = defType;
340
+ const attacker = move.overrideOffensivePokemon === 'target' ? target : source;
341
+ const defender = move.overrideDefensivePokemon === 'source' ? source : target;
342
+
343
+ const isPhysical = move.category === 'Physical';
344
+ const atkType: StatIDExceptHP = move.overrideOffensiveStat || (isPhysical ? 'atk' : 'spa');
345
+ const defType: StatIDExceptHP = move.overrideDefensiveStat || (isPhysical ? 'def' : 'spd');
346
+
347
347
  let unboosted = false;
348
348
  let noburndrop = false;
349
349
 
@@ -356,7 +356,7 @@ export const Scripts: ModdedBattleScriptsData = {
356
356
  noburndrop = true;
357
357
  }
358
358
  }
359
- // Get stats now.
359
+
360
360
  let attack = attacker.getStat(atkType, unboosted, noburndrop);
361
361
  let defense = defender.getStat(defType, unboosted);
362
362
 
@@ -373,6 +373,7 @@ export const Scripts: ModdedBattleScriptsData = {
373
373
  // The attack drop from the burn is only applied when attacker's attack level is higher than defender's defense level.
374
374
  attack = attacker.getStat(atkType, true, true);
375
375
  }
376
+
376
377
  if (move.ignoreDefensive) {
377
378
  this.battle.debug('Negating (sp)def boost/penalty.');
378
379
  defense = target.getStat(defType, true, true);
@@ -416,7 +417,7 @@ export const Scripts: ModdedBattleScriptsData = {
416
417
  }
417
418
 
418
419
  // STAB damage bonus, the "???" type never gets STAB
419
- if (type !== '???' && pokemon.hasType(type)) {
420
+ if (type !== '???' && source.hasType(type)) {
420
421
  damage += Math.floor(damage / 2);
421
422
  }
422
423