@pkmn/sim 0.5.19 → 0.5.22
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.
- package/build/config/formats.js +354 -294
- package/build/config/formats.js.map +1 -1
- package/build/data/abilities.js +1 -3
- package/build/data/abilities.js.map +1 -1
- package/build/data/aliases.js +2 -2
- package/build/data/aliases.js.map +1 -1
- package/build/data/conditions.js +4 -1
- package/build/data/conditions.js.map +1 -1
- package/build/data/formats-data.js +16 -12
- package/build/data/formats-data.js.map +1 -1
- package/build/data/learnsets.js +29 -0
- package/build/data/learnsets.js.map +1 -1
- package/build/data/mods/gen1/conditions.js +7 -0
- package/build/data/mods/gen1/conditions.js.map +1 -1
- package/build/data/mods/gen1/formats-data.js +3 -3
- package/build/data/mods/gen1/formats-data.js.map +1 -1
- package/build/data/mods/gen1/moves.js +0 -6
- package/build/data/mods/gen1/moves.js.map +1 -1
- package/build/data/mods/gen2/conditions.js +3 -0
- package/build/data/mods/gen2/conditions.js.map +1 -1
- package/build/data/mods/gen2/learnsets.js +2 -2
- package/build/data/mods/gen2/learnsets.js.map +1 -1
- package/build/data/mods/gen2/scripts.js +16 -0
- package/build/data/mods/gen2/scripts.js.map +1 -1
- package/build/data/mods/gen3/conditions.js +3 -0
- package/build/data/mods/gen3/conditions.js.map +1 -1
- package/build/data/mods/gen4/abilities.js +1 -1
- package/build/data/mods/gen4/abilities.js.map +1 -1
- package/build/data/mods/gen4/conditions.js +3 -0
- package/build/data/mods/gen4/conditions.js.map +1 -1
- package/build/data/mods/gen4/formats-data.js +1 -1
- package/build/data/mods/gen4/formats-data.js.map +1 -1
- package/build/data/mods/gen4/moves.js +9 -2
- package/build/data/mods/gen4/moves.js.map +1 -1
- package/build/data/mods/gen5/moves.js +4 -7
- package/build/data/mods/gen5/moves.js.map +1 -1
- package/build/data/mods/gen5/pokedex.js +24 -0
- package/build/data/mods/gen5/pokedex.js.map +1 -1
- package/build/data/mods/gen6/formats-data.js +1 -1
- package/build/data/mods/gen6/formats-data.js.map +1 -1
- package/build/data/mods/gen6/learnsets.js +0 -75
- package/build/data/mods/gen6/learnsets.js.map +1 -1
- package/build/data/mods/gen7/abilities.js +8 -0
- package/build/data/mods/gen7/abilities.js.map +1 -1
- package/build/data/mods/gen7/moves.js +2 -2
- package/build/data/mods/gen7/moves.js.map +1 -1
- package/build/data/moves.js +8 -3
- package/build/data/moves.js.map +1 -1
- package/build/data/pokedex.js +12 -0
- package/build/data/pokedex.js.map +1 -1
- package/build/data/rulesets.js +68 -0
- package/build/data/rulesets.js.map +1 -1
- package/build/data/tags.js +2 -2
- package/build/data/tags.js.map +1 -1
- package/build/sim/battle.js +1 -7
- package/build/sim/battle.js.map +1 -1
- package/build/sim/pokemon.js +8 -2
- package/build/sim/pokemon.js.map +1 -1
- package/build/sim/side.js +21 -0
- package/build/sim/side.js.map +1 -1
- package/config/formats.ts +346 -291
- package/data/abilities.ts +1 -3
- package/data/aliases.ts +2 -2
- package/data/conditions.ts +5 -1
- package/data/formats-data.ts +16 -12
- package/data/learnsets.ts +29 -0
- package/data/mods/gen1/conditions.ts +8 -0
- package/data/mods/gen1/formats-data.ts +3 -3
- package/data/mods/gen1/moves.ts +0 -4
- package/data/mods/gen2/conditions.ts +4 -0
- package/data/mods/gen2/learnsets.ts +2 -2
- package/data/mods/gen2/scripts.ts +16 -0
- package/data/mods/gen3/conditions.ts +4 -0
- package/data/mods/gen4/abilities.ts +1 -1
- package/data/mods/gen4/conditions.ts +4 -0
- package/data/mods/gen4/formats-data.ts +1 -1
- package/data/mods/gen4/moves.ts +9 -2
- package/data/mods/gen5/moves.ts +4 -7
- package/data/mods/gen5/pokedex.ts +24 -0
- package/data/mods/gen6/formats-data.ts +1 -1
- package/data/mods/gen6/learnsets.ts +0 -75
- package/data/mods/gen7/abilities.ts +8 -0
- package/data/mods/gen7/moves.ts +2 -2
- package/data/moves.ts +8 -3
- package/data/pokedex.ts +12 -0
- package/data/rulesets.ts +64 -0
- package/data/tags.ts +2 -2
- package/package.json +1 -1
- package/sim/battle.ts +1 -7
- package/sim/pokemon.ts +7 -2
- package/sim/side.ts +20 -0
package/data/abilities.ts
CHANGED
|
@@ -642,7 +642,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = {
|
|
|
642
642
|
if (move.auraBooster !== this.effectState.target) return;
|
|
643
643
|
return this.chainModify([move.hasAuraBreak ? 3072 : 5448, 4096]);
|
|
644
644
|
},
|
|
645
|
-
isBreakable: true,
|
|
646
645
|
name: "Dark Aura",
|
|
647
646
|
rating: 3,
|
|
648
647
|
num: 186,
|
|
@@ -956,7 +955,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = {
|
|
|
956
955
|
if (move.auraBooster !== this.effectState.target) return;
|
|
957
956
|
return this.chainModify([move.hasAuraBreak ? 3072 : 5448, 4096]);
|
|
958
957
|
},
|
|
959
|
-
isBreakable: true,
|
|
960
958
|
name: "Fairy Aura",
|
|
961
959
|
rating: 3,
|
|
962
960
|
num: 187,
|
|
@@ -2326,7 +2324,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = {
|
|
|
2326
2324
|
if (pokemon.showCure === undefined) pokemon.showCure = true;
|
|
2327
2325
|
|
|
2328
2326
|
if (pokemon.showCure) this.add('-curestatus', pokemon, pokemon.status, '[from] ability: Natural Cure');
|
|
2329
|
-
pokemon.
|
|
2327
|
+
pokemon.clearStatus();
|
|
2330
2328
|
|
|
2331
2329
|
// only reset .showCure if it's false
|
|
2332
2330
|
// (once you know a Pokemon has Natural Cure, its cures are always known)
|
package/data/aliases.ts
CHANGED
|
@@ -68,8 +68,8 @@ export const Aliases: {[alias: string]: string} = {
|
|
|
68
68
|
gen6ag: "[Gen 6] Anything Goes",
|
|
69
69
|
crossevo: "[Gen 8] Cross Evolution",
|
|
70
70
|
mayhem: "[Gen 8] Random Battle Mayhem",
|
|
71
|
-
omotm: "[Gen 8]
|
|
72
|
-
lcotm: "[Gen 8]
|
|
71
|
+
omotm: "[Gen 8] Broken Record",
|
|
72
|
+
lcotm: "[Gen 8] Inheritance",
|
|
73
73
|
|
|
74
74
|
// mega evos
|
|
75
75
|
fabio: "Ampharos-Mega",
|
package/data/conditions.ts
CHANGED
|
@@ -57,6 +57,10 @@ export const Conditions: {[k: string]: ConditionData} = {
|
|
|
57
57
|
// 1-3 turns
|
|
58
58
|
this.effectState.startTime = this.random(2, 5);
|
|
59
59
|
this.effectState.time = this.effectState.startTime;
|
|
60
|
+
|
|
61
|
+
if (target.removeVolatile('nightmare')) {
|
|
62
|
+
this.add('-end', target, 'Nightmare', '[silent]');
|
|
63
|
+
}
|
|
60
64
|
},
|
|
61
65
|
onBeforeMovePriority: 10,
|
|
62
66
|
onBeforeMove(pokemon, target, move) {
|
|
@@ -101,7 +105,7 @@ export const Conditions: {[k: string]: ConditionData} = {
|
|
|
101
105
|
onModifyMove(move, pokemon) {
|
|
102
106
|
if (move.flags['defrost']) {
|
|
103
107
|
this.add('-curestatus', pokemon, 'frz', '[from] move: ' + move);
|
|
104
|
-
pokemon.
|
|
108
|
+
pokemon.clearStatus();
|
|
105
109
|
}
|
|
106
110
|
},
|
|
107
111
|
onAfterMoveSecondary(target, source, move) {
|
package/data/formats-data.ts
CHANGED
|
@@ -949,7 +949,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
949
949
|
randomDoubleBattleMoves: ["clearsmog", "defog", "fireblast", "painsplit", "strangesteam", "toxicspikes", "willowisp"],
|
|
950
950
|
randomDoubleBattleLevel: 89,
|
|
951
951
|
tier: "RU",
|
|
952
|
-
doublesTier: "DUU",
|
|
952
|
+
doublesTier: "(DUU)",
|
|
953
953
|
},
|
|
954
954
|
rhyhorn: {
|
|
955
955
|
tier: "LC",
|
|
@@ -2153,7 +2153,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
2153
2153
|
randomBattleLevel: 86,
|
|
2154
2154
|
randomDoubleBattleMoves: ["acrobatics", "defog", "leechlife", "protect", "swordsdance"],
|
|
2155
2155
|
randomDoubleBattleLevel: 88,
|
|
2156
|
-
tier: "PU",
|
|
2156
|
+
tier: "(PU)",
|
|
2157
2157
|
doublesTier: "(DUU)",
|
|
2158
2158
|
},
|
|
2159
2159
|
shedinja: {
|
|
@@ -2494,7 +2494,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
2494
2494
|
randomDoubleBattleMoves: ["coil", "hypnosis", "muddywater", "recover"],
|
|
2495
2495
|
randomDoubleBattleLevel: 80,
|
|
2496
2496
|
tier: "RU",
|
|
2497
|
-
doublesTier: "
|
|
2497
|
+
doublesTier: "DUU",
|
|
2498
2498
|
},
|
|
2499
2499
|
castform: {
|
|
2500
2500
|
isNonstandard: "Past",
|
|
@@ -2932,7 +2932,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
2932
2932
|
randomBattleLevel: 84,
|
|
2933
2933
|
randomDoubleBattleMoves: ["clearsmog", "earthpower", "icywind", "protect", "recover", "scald", "yawn"],
|
|
2934
2934
|
randomDoubleBattleLevel: 80,
|
|
2935
|
-
tier: "
|
|
2935
|
+
tier: "NU",
|
|
2936
2936
|
doublesTier: "DOU",
|
|
2937
2937
|
},
|
|
2938
2938
|
drifloon: {
|
|
@@ -2989,7 +2989,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
2989
2989
|
randomDoubleBattleMoves: ["allyswitch", "bodypress", "explosion", "ironhead", "trickroom"],
|
|
2990
2990
|
randomDoubleBattleLevel: 88,
|
|
2991
2991
|
tier: "RU",
|
|
2992
|
-
doublesTier: "DUU",
|
|
2992
|
+
doublesTier: "(DUU)",
|
|
2993
2993
|
},
|
|
2994
2994
|
chatot: {
|
|
2995
2995
|
isNonstandard: "Past",
|
|
@@ -4445,7 +4445,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
4445
4445
|
doublade: {
|
|
4446
4446
|
randomBattleMoves: ["closecombat", "ironhead", "shadowclaw", "shadowsneak", "swordsdance"],
|
|
4447
4447
|
randomBattleLevel: 82,
|
|
4448
|
-
tier: "
|
|
4448
|
+
tier: "PU",
|
|
4449
4449
|
doublesTier: "NFE",
|
|
4450
4450
|
},
|
|
4451
4451
|
aegislash: {
|
|
@@ -4453,7 +4453,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
4453
4453
|
randomBattleLevel: 80,
|
|
4454
4454
|
randomDoubleBattleMoves: ["flashcannon", "kingsshield", "shadowball", "shadowsneak"],
|
|
4455
4455
|
randomDoubleBattleLevel: 84,
|
|
4456
|
-
tier: "
|
|
4456
|
+
tier: "UUBL",
|
|
4457
4457
|
doublesTier: "(DUU)",
|
|
4458
4458
|
},
|
|
4459
4459
|
aegislashblade: {
|
|
@@ -4514,7 +4514,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
4514
4514
|
randomBattleLevel: 86,
|
|
4515
4515
|
randomDoubleBattleMoves: ["dracometeor", "dragonpulse", "focusblast", "protect", "sludgebomb"],
|
|
4516
4516
|
randomDoubleBattleLevel: 86,
|
|
4517
|
-
tier: "
|
|
4517
|
+
tier: "NUBL",
|
|
4518
4518
|
doublesTier: "(DUU)",
|
|
4519
4519
|
},
|
|
4520
4520
|
clauncher: {
|
|
@@ -4962,7 +4962,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
4962
4962
|
randomBattleLevel: 80,
|
|
4963
4963
|
randomDoubleBattleMoves: ["leechlife", "liquidation", "lunge", "protect", "stickyweb", "wideguard"],
|
|
4964
4964
|
randomDoubleBattleLevel: 84,
|
|
4965
|
-
tier: "
|
|
4965
|
+
tier: "PU",
|
|
4966
4966
|
doublesTier: "DUU",
|
|
4967
4967
|
},
|
|
4968
4968
|
araquanidtotem: {
|
|
@@ -5078,7 +5078,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
5078
5078
|
randomBattleLevel: 86,
|
|
5079
5079
|
randomDoubleBattleMoves: ["hypnosis", "protect", "scorchingsands", "shadowball", "shoreup", "stealthrock"],
|
|
5080
5080
|
randomDoubleBattleLevel: 88,
|
|
5081
|
-
tier: "PU",
|
|
5081
|
+
tier: "(PU)",
|
|
5082
5082
|
doublesTier: "(DUU)",
|
|
5083
5083
|
},
|
|
5084
5084
|
pyukumuku: {
|
|
@@ -5433,7 +5433,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
5433
5433
|
randomBattleLevel: 84,
|
|
5434
5434
|
randomDoubleBattleMoves: ["dracometeor", "fireblast", "knockoff", "protect", "sludgebomb"],
|
|
5435
5435
|
randomDoubleBattleLevel: 88,
|
|
5436
|
-
tier: "
|
|
5436
|
+
tier: "PU",
|
|
5437
5437
|
doublesTier: "(DUU)",
|
|
5438
5438
|
},
|
|
5439
5439
|
necrozma: {
|
|
@@ -5594,7 +5594,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
5594
5594
|
randomBattleLevel: 80,
|
|
5595
5595
|
randomDoubleBattleMoves: ["airslash", "hydropump", "icebeam", "muddywater", "shadowball", "uturn"],
|
|
5596
5596
|
randomDoubleBattleLevel: 84,
|
|
5597
|
-
tier: "
|
|
5597
|
+
tier: "PUBL",
|
|
5598
5598
|
doublesTier: "(DUU)",
|
|
5599
5599
|
},
|
|
5600
5600
|
inteleongmax: {
|
|
@@ -6531,6 +6531,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
|
|
|
6531
6531
|
isNonstandard: "CAP",
|
|
6532
6532
|
tier: "CAP",
|
|
6533
6533
|
},
|
|
6534
|
+
saharaja: {
|
|
6535
|
+
isNonstandard: "CAP",
|
|
6536
|
+
tier: "CAP",
|
|
6537
|
+
},
|
|
6534
6538
|
pokestarsmeargle: {
|
|
6535
6539
|
isNonstandard: "Custom",
|
|
6536
6540
|
tier: "Illegal",
|
package/data/learnsets.ts
CHANGED
|
@@ -82889,6 +82889,35 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = {
|
|
|
82889
82889
|
withdraw: ["8L5"],
|
|
82890
82890
|
},
|
|
82891
82891
|
},
|
|
82892
|
+
saharaja: {
|
|
82893
|
+
learnset: {
|
|
82894
|
+
attract: ["8M"],
|
|
82895
|
+
bodypress: ["8M"],
|
|
82896
|
+
diamondstorm: ["8L1"],
|
|
82897
|
+
earthquake: ["8M"],
|
|
82898
|
+
endure: ["8M"],
|
|
82899
|
+
facade: ["8M"],
|
|
82900
|
+
healbell: ["8L1"],
|
|
82901
|
+
hornleech: ["8L1"],
|
|
82902
|
+
leechseed: ["8L1"],
|
|
82903
|
+
painsplit: ["8L1"],
|
|
82904
|
+
poisonjab: ["8M"],
|
|
82905
|
+
powerwhip: ["8M"],
|
|
82906
|
+
protect: ["8M"],
|
|
82907
|
+
rapidspin: ["8L1"],
|
|
82908
|
+
rest: ["8M"],
|
|
82909
|
+
rockslide: ["8M"],
|
|
82910
|
+
round: ["8M"],
|
|
82911
|
+
sleeptalk: ["8M"],
|
|
82912
|
+
snore: ["8M"],
|
|
82913
|
+
stealthrock: ["8M"],
|
|
82914
|
+
substitute: ["8M"],
|
|
82915
|
+
suckerpunch: ["8L1"],
|
|
82916
|
+
swordsdance: ["8M"],
|
|
82917
|
+
taunt: ["8M"],
|
|
82918
|
+
thunderwave: ["8M"],
|
|
82919
|
+
},
|
|
82920
|
+
},
|
|
82892
82921
|
pokestarsmeargle: {
|
|
82893
82922
|
eventData: [
|
|
82894
82923
|
{generation: 5, level: 60, gender: "M", abilities: ["owntempo"], moves: ["mindreader", "guillotine", "tailwhip", "gastroacid"]},
|
|
@@ -68,6 +68,10 @@ export const Conditions: {[id: string]: ModdedConditionData} = {
|
|
|
68
68
|
// 1-7 turns
|
|
69
69
|
this.effectState.startTime = this.random(1, 8);
|
|
70
70
|
this.effectState.time = this.effectState.startTime;
|
|
71
|
+
|
|
72
|
+
if (target.removeVolatile('nightmare')) {
|
|
73
|
+
this.add('-end', target, 'Nightmare', '[silent]');
|
|
74
|
+
}
|
|
71
75
|
},
|
|
72
76
|
onBeforeMovePriority: 10,
|
|
73
77
|
onBeforeMove(pokemon, target, move) {
|
|
@@ -78,6 +82,7 @@ export const Conditions: {[id: string]: ModdedConditionData} = {
|
|
|
78
82
|
pokemon.lastMove = null;
|
|
79
83
|
return false;
|
|
80
84
|
},
|
|
85
|
+
onAfterMoveSelfPriority: 3,
|
|
81
86
|
onAfterMoveSelf(pokemon) {
|
|
82
87
|
if (pokemon.statusState.time <= 0) pokemon.cureStatus();
|
|
83
88
|
},
|
|
@@ -164,6 +169,9 @@ export const Conditions: {[id: string]: ModdedConditionData} = {
|
|
|
164
169
|
flinch: {
|
|
165
170
|
name: 'flinch',
|
|
166
171
|
duration: 1,
|
|
172
|
+
onStart(target) {
|
|
173
|
+
target.removeVolatile('mustrecharge');
|
|
174
|
+
},
|
|
167
175
|
onBeforeMovePriority: 4,
|
|
168
176
|
onBeforeMove(pokemon) {
|
|
169
177
|
if (!this.runEvent('Flinch', pokemon)) {
|
|
@@ -370,7 +370,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
370
370
|
randomBattleMoves: ["bodyslam", "sleeppowder", "stunspore"],
|
|
371
371
|
essentialMove: "razorleaf",
|
|
372
372
|
comboMoves: ["hyperbeam", "swordsdance"],
|
|
373
|
-
tier: "
|
|
373
|
+
tier: "UU",
|
|
374
374
|
},
|
|
375
375
|
tentacool: {
|
|
376
376
|
randomBattleMoves: ["barrier", "hydropump", "surf"],
|
|
@@ -414,7 +414,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
414
414
|
slowbro: {
|
|
415
415
|
randomBattleMoves: ["amnesia", "surf", "thunderwave"],
|
|
416
416
|
exclusiveMoves: ["blizzard", "psychic", "rest", "rest"],
|
|
417
|
-
tier: "
|
|
417
|
+
tier: "UUBL",
|
|
418
418
|
},
|
|
419
419
|
magnemite: {
|
|
420
420
|
randomBattleMoves: ["thunder", "thunderbolt", "thunderwave"],
|
|
@@ -667,7 +667,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
667
667
|
randomBattleMoves: ["bodyslam", "confuseray", "rest", "sing", "surf"],
|
|
668
668
|
essentialMove: "blizzard",
|
|
669
669
|
exclusiveMoves: ["thunderbolt", "thunderbolt"],
|
|
670
|
-
tier: "
|
|
670
|
+
tier: "UUBL",
|
|
671
671
|
},
|
|
672
672
|
ditto: {
|
|
673
673
|
randomBattleMoves: ["transform"],
|
package/data/mods/gen1/moves.ts
CHANGED
|
@@ -538,15 +538,12 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
538
538
|
onBoost(boost, target, source, effect) {
|
|
539
539
|
if (effect.effectType === 'Move' && effect.category !== 'Status') return;
|
|
540
540
|
if (source && target !== source) {
|
|
541
|
-
let showMsg = false;
|
|
542
541
|
let i: BoostID;
|
|
543
542
|
for (i in boost) {
|
|
544
543
|
if (boost[i]! < 0) {
|
|
545
544
|
delete boost[i];
|
|
546
|
-
showMsg = true;
|
|
547
545
|
}
|
|
548
546
|
}
|
|
549
|
-
if (showMsg) this.add('-activate', target, 'move: Mist');
|
|
550
547
|
}
|
|
551
548
|
},
|
|
552
549
|
},
|
|
@@ -762,7 +759,6 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
762
759
|
}
|
|
763
760
|
// We only prevent when hp is less than one quarter.
|
|
764
761
|
// If you use substitute at exactly one quarter, you faint.
|
|
765
|
-
if (target.hp === target.maxhp / 4) target.faint();
|
|
766
762
|
if (target.hp < target.maxhp / 4) {
|
|
767
763
|
this.add('-fail', target, 'move: Substitute', '[weak]');
|
|
768
764
|
return null;
|
|
@@ -35,6 +35,10 @@ export const Conditions: {[k: string]: ModdedConditionData} = {
|
|
|
35
35
|
}
|
|
36
36
|
// 1-6 turns
|
|
37
37
|
this.effectState.time = this.random(2, 8);
|
|
38
|
+
|
|
39
|
+
if (target.removeVolatile('nightmare')) {
|
|
40
|
+
this.add('-end', target, 'Nightmare', '[silent]');
|
|
41
|
+
}
|
|
38
42
|
},
|
|
39
43
|
onBeforeMovePriority: 10,
|
|
40
44
|
onBeforeMove(pokemon, target, move) {
|
|
@@ -7593,11 +7593,11 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = {
|
|
|
7593
7593
|
dragonrage: ["1S0"],
|
|
7594
7594
|
flail: ["2L30"],
|
|
7595
7595
|
reversal: ["2S2"],
|
|
7596
|
-
splash: ["2L1", "2S2", "2S1", "1L1"],
|
|
7596
|
+
splash: ["2L1", "2S2", "2S1", "1L1", "1S0"],
|
|
7597
7597
|
tackle: ["2L15", "1L15"],
|
|
7598
7598
|
},
|
|
7599
7599
|
eventData: [
|
|
7600
|
-
{generation: 1, level:
|
|
7600
|
+
{generation: 1, level: 15, moves: ["splash", "dragonrage"], japan: true},
|
|
7601
7601
|
{generation: 2, level: 5, shiny: 1, moves: ["splash", "bubble"]},
|
|
7602
7602
|
{generation: 2, level: 5, shiny: 1, moves: ["splash", "reversal"]},
|
|
7603
7603
|
],
|
|
@@ -160,6 +160,22 @@ export const Scripts: ModdedBattleScriptsData = {
|
|
|
160
160
|
return false;
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
+
if (move.target === 'all' || move.target === 'foeSide' || move.target === 'allySide' || move.target === 'allyTeam') {
|
|
164
|
+
if (move.target === 'all') {
|
|
165
|
+
hitResult = this.battle.runEvent('TryHitField', target, pokemon, move);
|
|
166
|
+
} else {
|
|
167
|
+
hitResult = this.battle.runEvent('TryHitSide', target, pokemon, move);
|
|
168
|
+
}
|
|
169
|
+
if (!hitResult) {
|
|
170
|
+
if (hitResult === false) {
|
|
171
|
+
this.battle.add('-fail', pokemon);
|
|
172
|
+
this.battle.attrLastMove('[still]');
|
|
173
|
+
}
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
return this.moveHit(target, pokemon, move);
|
|
177
|
+
}
|
|
178
|
+
|
|
163
179
|
hitResult = this.battle.runEvent('Invulnerability', target, pokemon, move);
|
|
164
180
|
if (hitResult === false) {
|
|
165
181
|
this.battle.attrLastMove('[miss]');
|
|
@@ -12,6 +12,10 @@ export const Conditions: {[k: string]: ModdedConditionData} = {
|
|
|
12
12
|
this.effectState.time = this.random(2, 6);
|
|
13
13
|
// Turns spent using Sleep Talk/Snore immediately before switching out while asleep
|
|
14
14
|
this.effectState.skippedTime = 0;
|
|
15
|
+
|
|
16
|
+
if (target.removeVolatile('nightmare')) {
|
|
17
|
+
this.add('-end', target, 'Nightmare', '[silent]');
|
|
18
|
+
}
|
|
15
19
|
},
|
|
16
20
|
onSwitchIn(target) {
|
|
17
21
|
this.effectState.time += this.effectState.skippedTime;
|
|
@@ -281,7 +281,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = {
|
|
|
281
281
|
// in gen 3-4, Natural Cure's curing is always known to both players
|
|
282
282
|
|
|
283
283
|
this.add('-curestatus', pokemon, pokemon.status, '[from] ability: Natural Cure');
|
|
284
|
-
pokemon.
|
|
284
|
+
pokemon.clearStatus();
|
|
285
285
|
},
|
|
286
286
|
},
|
|
287
287
|
normalize: {
|
|
@@ -30,6 +30,10 @@ export const Conditions: {[k: string]: ModdedConditionData} = {
|
|
|
30
30
|
}
|
|
31
31
|
// 1-4 turns
|
|
32
32
|
this.effectState.time = this.random(2, 6);
|
|
33
|
+
|
|
34
|
+
if (target.removeVolatile('nightmare')) {
|
|
35
|
+
this.add('-end', target, 'Nightmare', '[silent]');
|
|
36
|
+
}
|
|
33
37
|
},
|
|
34
38
|
onBeforeMovePriority: 10,
|
|
35
39
|
onBeforeMove(pokemon, target, move) {
|
|
@@ -882,7 +882,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
882
882
|
},
|
|
883
883
|
mamoswine: {
|
|
884
884
|
randomBattleMoves: ["earthquake", "endeavor", "iceshard", "stealthrock", "stoneedge", "superpower"],
|
|
885
|
-
tier: "OU",
|
|
885
|
+
tier: "(OU)",
|
|
886
886
|
},
|
|
887
887
|
corsola: {
|
|
888
888
|
randomBattleMoves: ["recover", "reflect", "stealthrock", "surf", "toxic"],
|
package/data/mods/gen4/moves.ts
CHANGED
|
@@ -759,7 +759,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
759
759
|
onSwitchIn(target) {
|
|
760
760
|
if (target.hp > 0) {
|
|
761
761
|
target.heal(target.maxhp);
|
|
762
|
-
target.
|
|
762
|
+
target.clearStatus();
|
|
763
763
|
this.add('-heal', target, target.getHealth, '[from] move: Healing Wish');
|
|
764
764
|
target.side.removeSlotCondition(target, 'healingwish');
|
|
765
765
|
target.lastMove = this.lastMove;
|
|
@@ -940,7 +940,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
940
940
|
}
|
|
941
941
|
if (target.hp > 0) {
|
|
942
942
|
target.heal(target.maxhp);
|
|
943
|
-
target.
|
|
943
|
+
target.clearStatus();
|
|
944
944
|
for (const moveSlot of target.moveSlots) {
|
|
945
945
|
moveSlot.pp = moveSlot.maxpp;
|
|
946
946
|
}
|
|
@@ -1395,6 +1395,13 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
1395
1395
|
inherit: true,
|
|
1396
1396
|
accuracy: 90,
|
|
1397
1397
|
},
|
|
1398
|
+
secretpower: {
|
|
1399
|
+
inherit: true,
|
|
1400
|
+
secondary: {
|
|
1401
|
+
chance: 30,
|
|
1402
|
+
status: 'par',
|
|
1403
|
+
},
|
|
1404
|
+
},
|
|
1398
1405
|
sketch: {
|
|
1399
1406
|
inherit: true,
|
|
1400
1407
|
onHit(target, source) {
|
package/data/mods/gen5/moves.ts
CHANGED
|
@@ -753,13 +753,10 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
753
753
|
},
|
|
754
754
|
secretpower: {
|
|
755
755
|
inherit: true,
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
this.boost({accuracy: -1}, target, source);
|
|
761
|
-
}
|
|
762
|
-
source.removeVolatile('secretpower');
|
|
756
|
+
secondary: {
|
|
757
|
+
chance: 30,
|
|
758
|
+
boosts: {
|
|
759
|
+
accuracy: -1,
|
|
763
760
|
},
|
|
764
761
|
},
|
|
765
762
|
},
|
|
@@ -422,6 +422,30 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = {
|
|
|
422
422
|
inherit: true,
|
|
423
423
|
baseStats: {hp: 85, atk: 100, def: 90, spa: 45, spd: 90, spe: 80},
|
|
424
424
|
},
|
|
425
|
+
pansage: {
|
|
426
|
+
inherit: true,
|
|
427
|
+
maleOnlyHidden: true,
|
|
428
|
+
},
|
|
429
|
+
simisage: {
|
|
430
|
+
inherit: true,
|
|
431
|
+
maleOnlyHidden: true,
|
|
432
|
+
},
|
|
433
|
+
pansear: {
|
|
434
|
+
inherit: true,
|
|
435
|
+
maleOnlyHidden: true,
|
|
436
|
+
},
|
|
437
|
+
simisear: {
|
|
438
|
+
inherit: true,
|
|
439
|
+
maleOnlyHidden: true,
|
|
440
|
+
},
|
|
441
|
+
panpour: {
|
|
442
|
+
inherit: true,
|
|
443
|
+
maleOnlyHidden: true,
|
|
444
|
+
},
|
|
445
|
+
simipour: {
|
|
446
|
+
inherit: true,
|
|
447
|
+
maleOnlyHidden: true,
|
|
448
|
+
},
|
|
425
449
|
unfezant: {
|
|
426
450
|
inherit: true,
|
|
427
451
|
baseStats: {hp: 80, atk: 105, def: 80, spa: 65, spd: 55, spe: 93},
|
|
@@ -3918,7 +3918,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
3918
3918
|
volcanion: {
|
|
3919
3919
|
randomBattleMoves: ["earthpower", "fireblast", "hiddenpowerice", "sludgewave", "steameruption", "substitute", "superpower"],
|
|
3920
3920
|
randomDoubleBattleMoves: ["earthquake", "heatwave", "protect", "rockslide", "sludgebomb", "steameruption", "substitute"],
|
|
3921
|
-
tier: "
|
|
3921
|
+
tier: "OU",
|
|
3922
3922
|
doublesTier: "DOU",
|
|
3923
3923
|
},
|
|
3924
3924
|
};
|
|
@@ -172,79 +172,4 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = {
|
|
|
172
172
|
zenheadbutt: ["7T", "5T"],
|
|
173
173
|
},
|
|
174
174
|
},
|
|
175
|
-
crucibelle: {
|
|
176
|
-
inherit: true,
|
|
177
|
-
learnset: {
|
|
178
|
-
acidarmor: ["7L32", "6L32"],
|
|
179
|
-
astonish: ["7L1", "6L1"],
|
|
180
|
-
attract: ["7M", "6M"],
|
|
181
|
-
block: ["6T"],
|
|
182
|
-
coil: ["7E", "6E"],
|
|
183
|
-
confuseray: ["7L16", "6L16"],
|
|
184
|
-
confusion: ["7L14", "6L14"],
|
|
185
|
-
defensecurl: ["7E", "6E"],
|
|
186
|
-
doubleteam: ["7M", "6M"],
|
|
187
|
-
embargo: ["7M", "6M"],
|
|
188
|
-
endure: ["7L1", "6L1"],
|
|
189
|
-
explosion: ["7M", "7L60", "6M", "6L60"],
|
|
190
|
-
facade: ["7M", "6M"],
|
|
191
|
-
faketears: ["7L10", "6L10"],
|
|
192
|
-
frustration: ["7M", "6M"],
|
|
193
|
-
gigaimpact: ["7M", "6M"],
|
|
194
|
-
grassknot: ["7M", "6M"],
|
|
195
|
-
gravity: ["6T"],
|
|
196
|
-
gunkshot: ["7L56", "6T", "6L56"],
|
|
197
|
-
headsmash: ["6L1"],
|
|
198
|
-
helpinghand: ["6T"],
|
|
199
|
-
hex: ["7L44", "6L44"],
|
|
200
|
-
hiddenpower: ["7M", "6M"],
|
|
201
|
-
hyperbeam: ["7M", "6M"],
|
|
202
|
-
infestation: ["7M", "6M"],
|
|
203
|
-
ironhead: ["6T"],
|
|
204
|
-
lowkick: ["6T"],
|
|
205
|
-
magicroom: ["6T"],
|
|
206
|
-
payback: ["7M", "6M"],
|
|
207
|
-
poisonjab: ["7M", "6M"],
|
|
208
|
-
protect: ["7M", "7L1", "6M", "6L1"],
|
|
209
|
-
psybeam: ["7L40", "6L40"],
|
|
210
|
-
psychic: ["7M", "6M"],
|
|
211
|
-
reflect: ["7M", "7L25", "6M", "6L25"],
|
|
212
|
-
rest: ["7M", "6M"],
|
|
213
|
-
return: ["7M", "6M"],
|
|
214
|
-
rockblast: ["7L52", "6L52"],
|
|
215
|
-
rockpolish: ["7M", "6M"],
|
|
216
|
-
rockslide: ["7M", "7L36", "6M", "6L36"],
|
|
217
|
-
rocksmash: ["7M", "6M"],
|
|
218
|
-
rockthrow: ["7L5", "6L5"],
|
|
219
|
-
rocktomb: ["7M", "6M"],
|
|
220
|
-
rollout: ["7E", "6E"],
|
|
221
|
-
round: ["7M", "6M"],
|
|
222
|
-
safeguard: ["7M", "6M"],
|
|
223
|
-
sandstorm: ["7M", "6M"],
|
|
224
|
-
secretpower: ["7M"],
|
|
225
|
-
shadowball: ["7M", "6M"],
|
|
226
|
-
skillswap: ["6T"],
|
|
227
|
-
sleeptalk: ["7M", "6M"],
|
|
228
|
-
sludge: ["7L28", "6L28"],
|
|
229
|
-
sludgebomb: ["7M", "6M"],
|
|
230
|
-
sludgewave: ["7M", "6M"],
|
|
231
|
-
smackdown: ["7M", "7L23", "6M", "6L23"],
|
|
232
|
-
snatch: ["6T"],
|
|
233
|
-
snore: ["6T"],
|
|
234
|
-
stealthrock: ["6T"],
|
|
235
|
-
stoneedge: ["7M", "6M"],
|
|
236
|
-
substitute: ["7M", "6M"],
|
|
237
|
-
swagger: ["7M", "6M"],
|
|
238
|
-
torment: ["7M", "7L48", "6M", "6L48"],
|
|
239
|
-
toxic: ["7M", "7L7", "6M", "6L7"],
|
|
240
|
-
toxicspikes: ["7L19", "6L19"],
|
|
241
|
-
trick: ["6T"],
|
|
242
|
-
uturn: ["7M", "6M"],
|
|
243
|
-
venoshock: ["7M", "6M"],
|
|
244
|
-
withdraw: ["7L1", "6L1"],
|
|
245
|
-
wonderroom: ["6T"],
|
|
246
|
-
woodhammer: ["7E", "6E"],
|
|
247
|
-
zenheadbutt: ["6T"],
|
|
248
|
-
},
|
|
249
|
-
},
|
|
250
175
|
};
|
package/data/mods/gen7/moves.ts
CHANGED
|
@@ -381,7 +381,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
381
381
|
onSwitchIn(target) {
|
|
382
382
|
if (!target.fainted) {
|
|
383
383
|
target.heal(target.maxhp);
|
|
384
|
-
target.
|
|
384
|
+
target.clearStatus();
|
|
385
385
|
this.add('-heal', target, target.getHealth, '[from] move: Healing Wish');
|
|
386
386
|
target.side.removeSlotCondition(target, 'healingwish');
|
|
387
387
|
}
|
|
@@ -608,7 +608,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
608
608
|
onSwitchIn(target) {
|
|
609
609
|
if (!target.fainted) {
|
|
610
610
|
target.heal(target.maxhp);
|
|
611
|
-
target.
|
|
611
|
+
target.clearStatus();
|
|
612
612
|
for (const moveSlot of target.moveSlots) {
|
|
613
613
|
moveSlot.pp = moveSlot.maxpp;
|
|
614
614
|
}
|
package/data/moves.ts
CHANGED
|
@@ -7828,7 +7828,7 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
7828
7828
|
onSwap(target) {
|
|
7829
7829
|
if (!target.fainted && (target.hp < target.maxhp || target.status)) {
|
|
7830
7830
|
target.heal(target.maxhp);
|
|
7831
|
-
target.
|
|
7831
|
+
target.clearStatus();
|
|
7832
7832
|
this.add('-heal', target, target.getHealth, '[from] move: Healing Wish');
|
|
7833
7833
|
target.side.removeSlotCondition(target, 'healingwish');
|
|
7834
7834
|
}
|
|
@@ -9081,7 +9081,12 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
9081
9081
|
return false;
|
|
9082
9082
|
}
|
|
9083
9083
|
this.add('-singleturn', target, 'move: Instruct', '[of] ' + source);
|
|
9084
|
-
this.
|
|
9084
|
+
this.queue.prioritizeAction(this.queue.resolveAction({
|
|
9085
|
+
choice: 'move',
|
|
9086
|
+
pokemon: target,
|
|
9087
|
+
moveid: target.lastMove.id,
|
|
9088
|
+
targetLoc: target.lastMoveTargetLoc!,
|
|
9089
|
+
})[0] as MoveAction);
|
|
9085
9090
|
},
|
|
9086
9091
|
secondary: null,
|
|
9087
9092
|
target: "normal",
|
|
@@ -9929,7 +9934,7 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
9929
9934
|
)
|
|
9930
9935
|
) {
|
|
9931
9936
|
target.heal(target.maxhp);
|
|
9932
|
-
target.
|
|
9937
|
+
target.clearStatus();
|
|
9933
9938
|
for (const moveSlot of target.moveSlots) {
|
|
9934
9939
|
moveSlot.pp = moveSlot.maxpp;
|
|
9935
9940
|
}
|
package/data/pokedex.ts
CHANGED
|
@@ -17419,6 +17419,18 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = {
|
|
|
17419
17419
|
changesFrom: "Venomicon",
|
|
17420
17420
|
gen: 8,
|
|
17421
17421
|
},
|
|
17422
|
+
saharaja: {
|
|
17423
|
+
num: -68,
|
|
17424
|
+
name: "Saharaja",
|
|
17425
|
+
types: ["Ground"],
|
|
17426
|
+
baseStats: {hp: 70, atk: 120, def: 105, spa: 65, spd: 130, spe: 90},
|
|
17427
|
+
abilities: {0: "Water Absorb", 1: "Serene Grace"},
|
|
17428
|
+
heightm: 2.3,
|
|
17429
|
+
weightkg: 303.9,
|
|
17430
|
+
color: "White",
|
|
17431
|
+
eggGroups: ["Undiscovered"],
|
|
17432
|
+
gen: 8,
|
|
17433
|
+
},
|
|
17422
17434
|
// NOTE: PokeStar "formes" are not actually formes and thus do not have a formeOrder
|
|
17423
17435
|
pokestarsmeargle: {
|
|
17424
17436
|
num: -5000,
|