@pkmn/sim 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/config/formats.js +114 -63
- package/build/config/formats.js.map +1 -1
- package/build/data/aliases.js +2 -2
- package/build/data/aliases.js.map +1 -1
- package/build/data/formats-data.js +56 -56
- package/build/data/formats-data.js.map +1 -1
- package/build/data/mods/gen1/formats-data.js +190 -190
- package/build/data/mods/gen1/formats-data.js.map +1 -1
- package/build/data/mods/gen1/moves.js +1 -2
- package/build/data/mods/gen1/moves.js.map +1 -1
- package/build/data/mods/gen2/formats-data.js +1 -1
- package/build/data/mods/gen2/formats-data.js.map +1 -1
- package/build/data/mods/gen3/formats-data.js +12 -12
- package/build/data/mods/gen3/formats-data.js.map +1 -1
- package/build/data/mods/gen4/moves.js +22 -0
- package/build/data/mods/gen4/moves.js.map +1 -1
- package/build/data/mods/gen5/formats-data.js +15 -15
- package/build/data/mods/gen5/formats-data.js.map +1 -1
- package/build/data/mods/gen6/formats-data.js +1 -1
- package/build/data/mods/gen7/formats-data.js +1 -1
- package/build/data/mods/gen7/formats-data.js.map +1 -1
- package/build/data/mods/gen7/moves.js +154 -0
- package/build/data/mods/gen7/moves.js.map +1 -1
- package/build/data/moves.js +38 -7
- package/build/data/moves.js.map +1 -1
- package/build/data/rulesets.js +9 -0
- package/build/data/rulesets.js.map +1 -1
- package/build/data/tags.js +3 -2
- package/build/data/tags.js.map +1 -1
- package/config/formats.ts +118 -66
- package/data/aliases.ts +2 -2
- package/data/formats-data.ts +56 -56
- package/data/mods/gen1/formats-data.ts +190 -190
- package/data/mods/gen1/moves.ts +1 -2
- package/data/mods/gen2/formats-data.ts +1 -1
- package/data/mods/gen3/formats-data.ts +12 -12
- package/data/mods/gen4/moves.ts +21 -0
- package/data/mods/gen5/formats-data.ts +15 -15
- package/data/mods/gen6/formats-data.ts +1 -1
- package/data/mods/gen7/formats-data.ts +1 -1
- package/data/mods/gen7/moves.ts +150 -0
- package/data/moves.ts +37 -7
- package/data/rulesets.ts +9 -0
- package/data/tags.ts +3 -2
- package/package.json +1 -1
package/data/mods/gen1/moves.ts
CHANGED
|
@@ -407,8 +407,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
407
407
|
pokemon.clearBoosts();
|
|
408
408
|
|
|
409
409
|
if (pokemon !== source) {
|
|
410
|
-
|
|
411
|
-
pokemon.setStatus('');
|
|
410
|
+
pokemon.cureStatus(true);
|
|
412
411
|
}
|
|
413
412
|
if (pokemon.status === 'tox') {
|
|
414
413
|
pokemon.setStatus('psn');
|
|
@@ -885,7 +885,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
885
885
|
tier: "Uber",
|
|
886
886
|
},
|
|
887
887
|
hooh: {
|
|
888
|
-
randomBattleMoves: ["curse", "earthquake", "hiddenpowerflying", "
|
|
888
|
+
randomBattleMoves: ["curse", "earthquake", "hiddenpowerflying", "recover", "sacredfire", "thunder", "thunderbolt"],
|
|
889
889
|
tier: "Uber",
|
|
890
890
|
},
|
|
891
891
|
celebi: {
|
|
@@ -215,7 +215,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
215
215
|
tier: "LC",
|
|
216
216
|
},
|
|
217
217
|
arcanine: {
|
|
218
|
-
randomBattleMoves: ["
|
|
218
|
+
randomBattleMoves: ["extremespeed", "fireblast", "flamethrower", "hiddenpowergrass", "rest", "sleeptalk", "toxic"],
|
|
219
219
|
tier: "UUBL",
|
|
220
220
|
},
|
|
221
221
|
poliwag: {
|
|
@@ -294,14 +294,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
294
294
|
tier: "UUBL",
|
|
295
295
|
},
|
|
296
296
|
slowking: {
|
|
297
|
-
randomBattleMoves: ["calmmind", "flamethrower", "icebeam", "psychic", "
|
|
297
|
+
randomBattleMoves: ["calmmind", "flamethrower", "icebeam", "psychic", "rest", "sleeptalk", "surf", "thunderwave"],
|
|
298
298
|
tier: "UU",
|
|
299
299
|
},
|
|
300
300
|
magnemite: {
|
|
301
301
|
tier: "LC",
|
|
302
302
|
},
|
|
303
303
|
magneton: {
|
|
304
|
-
randomBattleMoves: ["hiddenpowergrass", "hiddenpowerice", "rest", "sleeptalk", "
|
|
304
|
+
randomBattleMoves: ["hiddenpowergrass", "hiddenpowerice", "rest", "sleeptalk", "thunderbolt", "toxic"],
|
|
305
305
|
tier: "OU",
|
|
306
306
|
},
|
|
307
307
|
farfetchd: {
|
|
@@ -326,14 +326,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
326
326
|
tier: "LC",
|
|
327
327
|
},
|
|
328
328
|
muk: {
|
|
329
|
-
randomBattleMoves: ["
|
|
329
|
+
randomBattleMoves: ["brickbreak", "curse", "explosion", "fireblast", "hiddenpowerghost", "rest", "sludgebomb"],
|
|
330
330
|
tier: "UU",
|
|
331
331
|
},
|
|
332
332
|
shellder: {
|
|
333
333
|
tier: "LC",
|
|
334
334
|
},
|
|
335
335
|
cloyster: {
|
|
336
|
-
randomBattleMoves: ["explosion", "icebeam", "
|
|
336
|
+
randomBattleMoves: ["explosion", "icebeam", "rapidspin", "spikes", "surf", "toxic"],
|
|
337
337
|
tier: "OU",
|
|
338
338
|
},
|
|
339
339
|
gastly: {
|
|
@@ -565,7 +565,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
565
565
|
tier: "OU",
|
|
566
566
|
},
|
|
567
567
|
snorlax: {
|
|
568
|
-
randomBattleMoves: ["bodyslam", "curse", "earthquake", "
|
|
568
|
+
randomBattleMoves: ["bodyslam", "curse", "earthquake", "rest", "return", "selfdestruct", "shadowball", "sleeptalk"],
|
|
569
569
|
tier: "OU",
|
|
570
570
|
},
|
|
571
571
|
articuno: {
|
|
@@ -764,7 +764,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
764
764
|
tier: "OU",
|
|
765
765
|
},
|
|
766
766
|
dunsparce: {
|
|
767
|
-
randomBattleMoves: ["bodyslam", "curse", "headbutt", "
|
|
767
|
+
randomBattleMoves: ["bodyslam", "curse", "headbutt", "rest", "rockslide", "shadowball", "thunderwave"],
|
|
768
768
|
tier: "NU",
|
|
769
769
|
},
|
|
770
770
|
gligar: {
|
|
@@ -831,7 +831,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
831
831
|
tier: "NU",
|
|
832
832
|
},
|
|
833
833
|
mantine: {
|
|
834
|
-
randomBattleMoves: ["haze", "hiddenpowergrass", "icebeam", "
|
|
834
|
+
randomBattleMoves: ["haze", "hiddenpowergrass", "icebeam", "raindance", "rest", "sleeptalk", "surf", "toxic"],
|
|
835
835
|
tier: "UU",
|
|
836
836
|
},
|
|
837
837
|
skarmory: {
|
|
@@ -891,7 +891,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
891
891
|
tier: "Uber",
|
|
892
892
|
},
|
|
893
893
|
hooh: {
|
|
894
|
-
randomBattleMoves: ["calmmind", "earthquake", "
|
|
894
|
+
randomBattleMoves: ["calmmind", "earthquake", "recover", "sacredfire", "substitute", "thunderbolt", "toxic"],
|
|
895
895
|
tier: "Uber",
|
|
896
896
|
},
|
|
897
897
|
celebi: {
|
|
@@ -1053,7 +1053,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
1053
1053
|
tier: "LC",
|
|
1054
1054
|
},
|
|
1055
1055
|
hariyama: {
|
|
1056
|
-
randomBattleMoves: ["bulkup", "crosschop", "fakeout", "
|
|
1056
|
+
randomBattleMoves: ["bulkup", "crosschop", "fakeout", "hiddenpowerghost", "rest", "rockslide", "sleeptalk"],
|
|
1057
1057
|
tier: "UUBL",
|
|
1058
1058
|
},
|
|
1059
1059
|
nosepass: {
|
|
@@ -1206,7 +1206,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
1206
1206
|
tier: "LC",
|
|
1207
1207
|
},
|
|
1208
1208
|
whiscash: {
|
|
1209
|
-
randomBattleMoves: ["earthquake", "hiddenpowerbug", "icebeam", "
|
|
1209
|
+
randomBattleMoves: ["earthquake", "hiddenpowerbug", "icebeam", "rest", "rockslide", "sleeptalk", "spark", "surf", "toxic"],
|
|
1210
1210
|
tier: "NU",
|
|
1211
1211
|
},
|
|
1212
1212
|
corphish: {
|
|
@@ -1241,7 +1241,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
1241
1241
|
tier: "LC",
|
|
1242
1242
|
},
|
|
1243
1243
|
milotic: {
|
|
1244
|
-
randomBattleMoves: ["icebeam", "mirrorcoat", "recover", "
|
|
1244
|
+
randomBattleMoves: ["icebeam", "mirrorcoat", "recover", "surf", "toxic"],
|
|
1245
1245
|
tier: "OU",
|
|
1246
1246
|
},
|
|
1247
1247
|
castform: {
|
package/data/mods/gen4/moves.ts
CHANGED
|
@@ -1433,6 +1433,27 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
1433
1433
|
return !pokemon.volatiles['choicelock'] && !pokemon.volatiles['encore'];
|
|
1434
1434
|
},
|
|
1435
1435
|
},
|
|
1436
|
+
snatch: {
|
|
1437
|
+
inherit: true,
|
|
1438
|
+
condition: {
|
|
1439
|
+
duration: 1,
|
|
1440
|
+
onStart(pokemon) {
|
|
1441
|
+
this.add('-singleturn', pokemon, 'Snatch');
|
|
1442
|
+
},
|
|
1443
|
+
onAnyPrepareHitPriority: -1,
|
|
1444
|
+
onAnyPrepareHit(source, target, move) {
|
|
1445
|
+
const snatchUser = this.effectState.source;
|
|
1446
|
+
if (snatchUser.isSkyDropped()) return;
|
|
1447
|
+
if (!move || move.isZ || move.isMax || !move.flags['snatch']) {
|
|
1448
|
+
return;
|
|
1449
|
+
}
|
|
1450
|
+
snatchUser.removeVolatile('snatch');
|
|
1451
|
+
this.add('-activate', snatchUser, 'move: Snatch', '[of] ' + source);
|
|
1452
|
+
this.actions.useMove(move.id, snatchUser);
|
|
1453
|
+
return null;
|
|
1454
|
+
},
|
|
1455
|
+
},
|
|
1456
|
+
},
|
|
1436
1457
|
spikes: {
|
|
1437
1458
|
inherit: true,
|
|
1438
1459
|
flags: {},
|
|
@@ -983,7 +983,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
983
983
|
doublesTier: "DUU",
|
|
984
984
|
},
|
|
985
985
|
heracross: {
|
|
986
|
-
randomBattleMoves: ["closecombat", "
|
|
986
|
+
randomBattleMoves: ["closecombat", "earthquake", "facade", "megahorn", "stoneedge"],
|
|
987
987
|
tier: "UU",
|
|
988
988
|
doublesTier: "DUU",
|
|
989
989
|
},
|
|
@@ -1363,12 +1363,12 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
1363
1363
|
doublesTier: "DUU",
|
|
1364
1364
|
},
|
|
1365
1365
|
plusle: {
|
|
1366
|
-
randomBattleMoves: ["batonpass", "hiddenpowerice", "nastyplot", "
|
|
1366
|
+
randomBattleMoves: ["batonpass", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"],
|
|
1367
1367
|
tier: "(NU)",
|
|
1368
1368
|
doublesTier: "DUU",
|
|
1369
1369
|
},
|
|
1370
1370
|
minun: {
|
|
1371
|
-
randomBattleMoves: ["batonpass", "encore", "nastyplot", "
|
|
1371
|
+
randomBattleMoves: ["batonpass", "encore", "nastyplot", "substitute", "thunderbolt"],
|
|
1372
1372
|
tier: "(NU)",
|
|
1373
1373
|
doublesTier: "DUU",
|
|
1374
1374
|
},
|
|
@@ -1572,7 +1572,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
1572
1572
|
doublesTier: "NFE",
|
|
1573
1573
|
},
|
|
1574
1574
|
dusknoir: {
|
|
1575
|
-
randomBattleMoves: ["earthquake", "icepunch", "painsplit", "shadowsneak", "
|
|
1575
|
+
randomBattleMoves: ["earthquake", "icepunch", "painsplit", "shadowsneak", "trick", "willowisp"],
|
|
1576
1576
|
tier: "RU",
|
|
1577
1577
|
doublesTier: "DUU",
|
|
1578
1578
|
},
|
|
@@ -1637,7 +1637,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
1637
1637
|
doublesTier: "DUU",
|
|
1638
1638
|
},
|
|
1639
1639
|
luvdisc: {
|
|
1640
|
-
randomBattleMoves: ["icebeam", "protect", "surf", "
|
|
1640
|
+
randomBattleMoves: ["icebeam", "protect", "surf", "sweetkiss", "toxic"],
|
|
1641
1641
|
tier: "(NU)",
|
|
1642
1642
|
doublesTier: "DUU",
|
|
1643
1643
|
},
|
|
@@ -1670,12 +1670,12 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
1670
1670
|
doublesTier: "DUU",
|
|
1671
1671
|
},
|
|
1672
1672
|
regice: {
|
|
1673
|
-
randomBattleMoves: ["focusblast", "icebeam", "
|
|
1673
|
+
randomBattleMoves: ["focusblast", "icebeam", "rest", "rockpolish", "sleeptalk", "thunderbolt"],
|
|
1674
1674
|
tier: "NU",
|
|
1675
1675
|
doublesTier: "DUU",
|
|
1676
1676
|
},
|
|
1677
1677
|
registeel: {
|
|
1678
|
-
randomBattleMoves: ["
|
|
1678
|
+
randomBattleMoves: ["curse", "ironhead", "protect", "rest", "sleeptalk", "stealthrock", "toxic"],
|
|
1679
1679
|
tier: "UU",
|
|
1680
1680
|
doublesTier: "DUU",
|
|
1681
1681
|
},
|
|
@@ -1715,7 +1715,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
1715
1715
|
doublesTier: "DUU",
|
|
1716
1716
|
},
|
|
1717
1717
|
deoxysattack: {
|
|
1718
|
-
randomBattleMoves: ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "
|
|
1718
|
+
randomBattleMoves: ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "stealthrock", "superpower"],
|
|
1719
1719
|
tier: "Uber",
|
|
1720
1720
|
doublesTier: "DUU",
|
|
1721
1721
|
},
|
|
@@ -1994,7 +1994,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
1994
1994
|
doublesTier: "DOU",
|
|
1995
1995
|
},
|
|
1996
1996
|
rotom: {
|
|
1997
|
-
randomBattleMoves: ["hiddenpowerice", "
|
|
1997
|
+
randomBattleMoves: ["hiddenpowerice", "painsplit", "shadowball", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"],
|
|
1998
1998
|
tier: "RU",
|
|
1999
1999
|
doublesTier: "DUU",
|
|
2000
2000
|
},
|
|
@@ -2059,7 +2059,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
2059
2059
|
doublesTier: "DUU",
|
|
2060
2060
|
},
|
|
2061
2061
|
giratina: {
|
|
2062
|
-
randomBattleMoves: ["calmmind", "
|
|
2062
|
+
randomBattleMoves: ["calmmind", "dragonpulse", "dragontail", "rest", "sleeptalk", "willowisp"],
|
|
2063
2063
|
tier: "Uber",
|
|
2064
2064
|
doublesTier: "DUber",
|
|
2065
2065
|
},
|
|
@@ -2089,7 +2089,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
2089
2089
|
doublesTier: "DUU",
|
|
2090
2090
|
},
|
|
2091
2091
|
shaymin: {
|
|
2092
|
-
randomBattleMoves: ["earthpower", "hiddenpowerfire", "leechseed", "psychic", "
|
|
2092
|
+
randomBattleMoves: ["earthpower", "hiddenpowerfire", "leechseed", "psychic", "rest", "seedflare", "substitute"],
|
|
2093
2093
|
tier: "UU",
|
|
2094
2094
|
doublesTier: "DUU",
|
|
2095
2095
|
},
|
|
@@ -2143,7 +2143,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
2143
2143
|
randomBattleMoves: ["calmmind", "darkpulse", "judgment", "recover", "willowisp"],
|
|
2144
2144
|
},
|
|
2145
2145
|
arceusrock: {
|
|
2146
|
-
randomBattleMoves: ["earthquake", "
|
|
2146
|
+
randomBattleMoves: ["earthquake", "recover", "stoneedge", "swordsdance"],
|
|
2147
2147
|
},
|
|
2148
2148
|
arceussteel: {
|
|
2149
2149
|
randomBattleMoves: ["calmmind", "judgment", "recover", "thunderbolt", "willowisp"],
|
|
@@ -2655,7 +2655,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
2655
2655
|
tier: "LC",
|
|
2656
2656
|
},
|
|
2657
2657
|
mienshao: {
|
|
2658
|
-
randomBattleMoves: ["batonpass", "highjumpkick", "stoneedge", "
|
|
2658
|
+
randomBattleMoves: ["batonpass", "highjumpkick", "stoneedge", "substitute", "swordsdance", "uturn"],
|
|
2659
2659
|
tier: "UU",
|
|
2660
2660
|
doublesTier: "DUU",
|
|
2661
2661
|
},
|
|
@@ -2741,7 +2741,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
2741
2741
|
doublesTier: "DOU",
|
|
2742
2742
|
},
|
|
2743
2743
|
virizion: {
|
|
2744
|
-
randomBattleMoves: ["calmmind", "closecombat", "focusblast", "gigadrain", "
|
|
2744
|
+
randomBattleMoves: ["calmmind", "closecombat", "focusblast", "gigadrain", "hiddenpowerice", "leafblade", "stoneedge", "swordsdance"],
|
|
2745
2745
|
tier: "UU",
|
|
2746
2746
|
doublesTier: "DUU",
|
|
2747
2747
|
},
|
|
@@ -2781,7 +2781,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
2781
2781
|
doublesTier: "DUU",
|
|
2782
2782
|
},
|
|
2783
2783
|
landorustherian: {
|
|
2784
|
-
randomBattleMoves: ["earthquake", "hiddenpowerice", "rockpolish", "stealthrock", "stoneedge", "
|
|
2784
|
+
randomBattleMoves: ["earthquake", "hiddenpowerice", "rockpolish", "stealthrock", "stoneedge", "superpower", "swordsdance", "uturn"],
|
|
2785
2785
|
tier: "OU",
|
|
2786
2786
|
doublesTier: "DOU",
|
|
2787
2787
|
},
|
|
@@ -664,7 +664,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
664
664
|
doublesTier: "(DUU)",
|
|
665
665
|
},
|
|
666
666
|
kangaskhanmega: {
|
|
667
|
-
randomBattleMoves: ["crunch", "earthquake", "fakeout", "poweruppunch", "return", "
|
|
667
|
+
randomBattleMoves: ["crunch", "earthquake", "fakeout", "poweruppunch", "return", "seismictoss", "suckerpunch"],
|
|
668
668
|
randomDoubleBattleMoves: ["crunch", "doubleedge", "drainpunch", "earthquake", "fakeout", "poweruppunch", "protect", "return", "suckerpunch"],
|
|
669
669
|
tier: "Uber",
|
|
670
670
|
doublesTier: "DOU",
|
|
@@ -2300,7 +2300,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
2300
2300
|
doublesTier: "DUber",
|
|
2301
2301
|
},
|
|
2302
2302
|
deoxys: {
|
|
2303
|
-
randomBattleMoves: ["extremespeed", "
|
|
2303
|
+
randomBattleMoves: ["extremespeed", "firepunch", "icebeam", "knockoff", "psychoboost", "stealthrock", "superpower"],
|
|
2304
2304
|
randomDoubleBattleMoves: ["extremespeed", "firepunch", "icebeam", "knockoff", "protect", "psychoboost", "superpower"],
|
|
2305
2305
|
tier: "Uber",
|
|
2306
2306
|
doublesTier: "(DUU)",
|
package/data/mods/gen7/moves.ts
CHANGED
|
@@ -240,6 +240,25 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
240
240
|
inherit: true,
|
|
241
241
|
isNonstandard: null,
|
|
242
242
|
},
|
|
243
|
+
floralhealing: {
|
|
244
|
+
inherit: true,
|
|
245
|
+
onHit(target, source) {
|
|
246
|
+
let success = false;
|
|
247
|
+
if (this.field.isTerrain('grassyterrain')) {
|
|
248
|
+
success = !!this.heal(this.modify(target.baseMaxhp, 0.667));
|
|
249
|
+
} else {
|
|
250
|
+
success = !!this.heal(Math.ceil(target.baseMaxhp * 0.5));
|
|
251
|
+
}
|
|
252
|
+
if (success && !target.isAlly(source)) {
|
|
253
|
+
target.staleness = 'external';
|
|
254
|
+
}
|
|
255
|
+
if (!success) {
|
|
256
|
+
this.add('-fail', target, 'heal');
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
return success;
|
|
260
|
+
},
|
|
261
|
+
},
|
|
243
262
|
foresight: {
|
|
244
263
|
inherit: true,
|
|
245
264
|
isNonstandard: null,
|
|
@@ -359,6 +378,25 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
359
378
|
inherit: true,
|
|
360
379
|
isNonstandard: null,
|
|
361
380
|
},
|
|
381
|
+
healpulse: {
|
|
382
|
+
inherit: true,
|
|
383
|
+
onHit(target, source) {
|
|
384
|
+
let success = false;
|
|
385
|
+
if (source.hasAbility('megalauncher')) {
|
|
386
|
+
success = !!this.heal(this.modify(target.baseMaxhp, 0.75));
|
|
387
|
+
} else {
|
|
388
|
+
success = !!this.heal(Math.ceil(target.baseMaxhp * 0.5));
|
|
389
|
+
}
|
|
390
|
+
if (success && !target.isAlly(source)) {
|
|
391
|
+
target.staleness = 'external';
|
|
392
|
+
}
|
|
393
|
+
if (!success) {
|
|
394
|
+
this.add('-fail', target, 'heal');
|
|
395
|
+
return null;
|
|
396
|
+
}
|
|
397
|
+
return success;
|
|
398
|
+
},
|
|
399
|
+
},
|
|
362
400
|
heartstamp: {
|
|
363
401
|
inherit: true,
|
|
364
402
|
isNonstandard: null,
|
|
@@ -608,6 +646,54 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
608
646
|
inherit: true,
|
|
609
647
|
isNonstandard: null,
|
|
610
648
|
},
|
|
649
|
+
moonlight: {
|
|
650
|
+
inherit: true,
|
|
651
|
+
onHit(pokemon) {
|
|
652
|
+
let factor = 0.5;
|
|
653
|
+
switch (pokemon.effectiveWeather()) {
|
|
654
|
+
case 'sunnyday':
|
|
655
|
+
case 'desolateland':
|
|
656
|
+
factor = 0.667;
|
|
657
|
+
break;
|
|
658
|
+
case 'raindance':
|
|
659
|
+
case 'primordialsea':
|
|
660
|
+
case 'sandstorm':
|
|
661
|
+
case 'hail':
|
|
662
|
+
factor = 0.25;
|
|
663
|
+
break;
|
|
664
|
+
}
|
|
665
|
+
const success = !!this.heal(this.modify(pokemon.maxhp, factor));
|
|
666
|
+
if (!success) {
|
|
667
|
+
this.add('-fail', pokemon, 'heal');
|
|
668
|
+
return null;
|
|
669
|
+
}
|
|
670
|
+
return success;
|
|
671
|
+
},
|
|
672
|
+
},
|
|
673
|
+
morningsun: {
|
|
674
|
+
inherit: true,
|
|
675
|
+
onHit(pokemon) {
|
|
676
|
+
let factor = 0.5;
|
|
677
|
+
switch (pokemon.effectiveWeather()) {
|
|
678
|
+
case 'sunnyday':
|
|
679
|
+
case 'desolateland':
|
|
680
|
+
factor = 0.667;
|
|
681
|
+
break;
|
|
682
|
+
case 'raindance':
|
|
683
|
+
case 'primordialsea':
|
|
684
|
+
case 'sandstorm':
|
|
685
|
+
case 'hail':
|
|
686
|
+
factor = 0.25;
|
|
687
|
+
break;
|
|
688
|
+
}
|
|
689
|
+
const success = !!this.heal(this.modify(pokemon.maxhp, factor));
|
|
690
|
+
if (!success) {
|
|
691
|
+
this.add('-fail', pokemon, 'heal');
|
|
692
|
+
return null;
|
|
693
|
+
}
|
|
694
|
+
return success;
|
|
695
|
+
},
|
|
696
|
+
},
|
|
611
697
|
mudbomb: {
|
|
612
698
|
inherit: true,
|
|
613
699
|
isNonstandard: null,
|
|
@@ -651,6 +737,14 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
651
737
|
pollenpuff: {
|
|
652
738
|
inherit: true,
|
|
653
739
|
flags: {bullet: 1, protect: 1, mirror: 1},
|
|
740
|
+
onHit(target, source) {
|
|
741
|
+
if (source.isAlly(target)) {
|
|
742
|
+
if (!this.heal(Math.floor(target.baseMaxhp * 0.5))) {
|
|
743
|
+
this.add('-immune', target);
|
|
744
|
+
return null;
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
},
|
|
654
748
|
},
|
|
655
749
|
powder: {
|
|
656
750
|
inherit: true,
|
|
@@ -722,6 +816,13 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
722
816
|
inherit: true,
|
|
723
817
|
isNonstandard: null,
|
|
724
818
|
},
|
|
819
|
+
purify: {
|
|
820
|
+
inherit: true,
|
|
821
|
+
onHit(target, source) {
|
|
822
|
+
if (!target.cureStatus()) return false;
|
|
823
|
+
this.heal(Math.ceil(source.maxhp * 0.5), source);
|
|
824
|
+
},
|
|
825
|
+
},
|
|
725
826
|
pursuit: {
|
|
726
827
|
inherit: true,
|
|
727
828
|
isNonstandard: null,
|
|
@@ -815,6 +916,21 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
815
916
|
inherit: true,
|
|
816
917
|
isNonstandard: null,
|
|
817
918
|
},
|
|
919
|
+
shoreup: {
|
|
920
|
+
inherit: true,
|
|
921
|
+
onHit(pokemon) {
|
|
922
|
+
let factor = 0.5;
|
|
923
|
+
if (this.field.isWeather('sandstorm')) {
|
|
924
|
+
factor = 0.667;
|
|
925
|
+
}
|
|
926
|
+
const success = !!this.heal(this.modify(pokemon.maxhp, factor));
|
|
927
|
+
if (!success) {
|
|
928
|
+
this.add('-fail', pokemon, 'heal');
|
|
929
|
+
return null;
|
|
930
|
+
}
|
|
931
|
+
return success;
|
|
932
|
+
},
|
|
933
|
+
},
|
|
818
934
|
signalbeam: {
|
|
819
935
|
inherit: true,
|
|
820
936
|
isNonstandard: null,
|
|
@@ -898,6 +1014,16 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
898
1014
|
inherit: true,
|
|
899
1015
|
isNonstandard: null,
|
|
900
1016
|
},
|
|
1017
|
+
swallow: {
|
|
1018
|
+
inherit: true,
|
|
1019
|
+
onHit(pokemon) {
|
|
1020
|
+
const healAmount = [0.25, 0.5, 1];
|
|
1021
|
+
const success = !!this.heal(this.modify(pokemon.maxhp, healAmount[(pokemon.volatiles['stockpile'].layers - 1)]));
|
|
1022
|
+
if (!success) this.add('-fail', pokemon, 'heal');
|
|
1023
|
+
pokemon.removeVolatile('stockpile');
|
|
1024
|
+
return success || null;
|
|
1025
|
+
},
|
|
1026
|
+
},
|
|
901
1027
|
switcheroo: {
|
|
902
1028
|
inherit: true,
|
|
903
1029
|
onHit(target, source, move) {
|
|
@@ -935,6 +1061,30 @@ export const Moves: {[k: string]: ModdedMoveData} = {
|
|
|
935
1061
|
inherit: true,
|
|
936
1062
|
isNonstandard: null,
|
|
937
1063
|
},
|
|
1064
|
+
synthesis: {
|
|
1065
|
+
inherit: true,
|
|
1066
|
+
onHit(pokemon) {
|
|
1067
|
+
let factor = 0.5;
|
|
1068
|
+
switch (pokemon.effectiveWeather()) {
|
|
1069
|
+
case 'sunnyday':
|
|
1070
|
+
case 'desolateland':
|
|
1071
|
+
factor = 0.667;
|
|
1072
|
+
break;
|
|
1073
|
+
case 'raindance':
|
|
1074
|
+
case 'primordialsea':
|
|
1075
|
+
case 'sandstorm':
|
|
1076
|
+
case 'hail':
|
|
1077
|
+
factor = 0.25;
|
|
1078
|
+
break;
|
|
1079
|
+
}
|
|
1080
|
+
const success = !!this.heal(this.modify(pokemon.maxhp, factor));
|
|
1081
|
+
if (!success) {
|
|
1082
|
+
this.add('-fail', pokemon, 'heal');
|
|
1083
|
+
return null;
|
|
1084
|
+
}
|
|
1085
|
+
return success;
|
|
1086
|
+
},
|
|
1087
|
+
},
|
|
938
1088
|
tailglow: {
|
|
939
1089
|
inherit: true,
|
|
940
1090
|
isNonstandard: null,
|
package/data/moves.ts
CHANGED
|
@@ -5320,6 +5320,10 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
5320
5320
|
if (success && !target.isAlly(source)) {
|
|
5321
5321
|
target.staleness = 'external';
|
|
5322
5322
|
}
|
|
5323
|
+
if (!success) {
|
|
5324
|
+
this.add('-fail', target, 'heal');
|
|
5325
|
+
return this.NOT_FAIL;
|
|
5326
|
+
}
|
|
5323
5327
|
return success;
|
|
5324
5328
|
},
|
|
5325
5329
|
secondary: null,
|
|
@@ -7854,6 +7858,10 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
7854
7858
|
if (success && !target.isAlly(source)) {
|
|
7855
7859
|
target.staleness = 'external';
|
|
7856
7860
|
}
|
|
7861
|
+
if (!success) {
|
|
7862
|
+
this.add('-fail', target, 'heal');
|
|
7863
|
+
return this.NOT_FAIL;
|
|
7864
|
+
}
|
|
7857
7865
|
return success;
|
|
7858
7866
|
},
|
|
7859
7867
|
secondary: null,
|
|
@@ -11514,7 +11522,12 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
11514
11522
|
factor = 0.25;
|
|
11515
11523
|
break;
|
|
11516
11524
|
}
|
|
11517
|
-
|
|
11525
|
+
const success = !!this.heal(this.modify(pokemon.maxhp, factor));
|
|
11526
|
+
if (!success) {
|
|
11527
|
+
this.add('-fail', pokemon, 'heal');
|
|
11528
|
+
return this.NOT_FAIL;
|
|
11529
|
+
}
|
|
11530
|
+
return success;
|
|
11518
11531
|
},
|
|
11519
11532
|
secondary: null,
|
|
11520
11533
|
target: "self",
|
|
@@ -11545,7 +11558,12 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
11545
11558
|
factor = 0.25;
|
|
11546
11559
|
break;
|
|
11547
11560
|
}
|
|
11548
|
-
|
|
11561
|
+
const success = !!this.heal(this.modify(pokemon.maxhp, factor));
|
|
11562
|
+
if (!success) {
|
|
11563
|
+
this.add('-fail', pokemon, 'heal');
|
|
11564
|
+
return this.NOT_FAIL;
|
|
11565
|
+
}
|
|
11566
|
+
return success;
|
|
11549
11567
|
},
|
|
11550
11568
|
secondary: null,
|
|
11551
11569
|
target: "self",
|
|
@@ -12734,6 +12752,7 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
12734
12752
|
if (source.isAlly(target)) {
|
|
12735
12753
|
if (!this.heal(Math.floor(target.baseMaxhp * 0.5))) {
|
|
12736
12754
|
this.add('-immune', target);
|
|
12755
|
+
return this.NOT_FAIL;
|
|
12737
12756
|
}
|
|
12738
12757
|
}
|
|
12739
12758
|
},
|
|
@@ -13396,7 +13415,7 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
13396
13415
|
priority: 0,
|
|
13397
13416
|
flags: {protect: 1, reflectable: 1, heal: 1},
|
|
13398
13417
|
onHit(target, source) {
|
|
13399
|
-
if (!target.cureStatus()) return
|
|
13418
|
+
if (!target.cureStatus()) return this.NOT_FAIL;
|
|
13400
13419
|
this.heal(Math.ceil(source.maxhp * 0.5), source);
|
|
13401
13420
|
},
|
|
13402
13421
|
secondary: null,
|
|
@@ -15255,7 +15274,12 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
15255
15274
|
if (this.field.isWeather('sandstorm')) {
|
|
15256
15275
|
factor = 0.667;
|
|
15257
15276
|
}
|
|
15258
|
-
|
|
15277
|
+
const success = !!this.heal(this.modify(pokemon.maxhp, factor));
|
|
15278
|
+
if (!success) {
|
|
15279
|
+
this.add('-fail', pokemon, 'heal');
|
|
15280
|
+
return this.NOT_FAIL;
|
|
15281
|
+
}
|
|
15282
|
+
return success;
|
|
15259
15283
|
},
|
|
15260
15284
|
secondary: null,
|
|
15261
15285
|
target: "self",
|
|
@@ -17385,9 +17409,10 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
17385
17409
|
},
|
|
17386
17410
|
onHit(pokemon) {
|
|
17387
17411
|
const healAmount = [0.25, 0.5, 1];
|
|
17388
|
-
const
|
|
17412
|
+
const success = !!this.heal(this.modify(pokemon.maxhp, healAmount[(pokemon.volatiles['stockpile'].layers - 1)]));
|
|
17413
|
+
if (!success) this.add('-fail', pokemon, 'heal');
|
|
17389
17414
|
pokemon.removeVolatile('stockpile');
|
|
17390
|
-
return
|
|
17415
|
+
return success || this.NOT_FAIL;
|
|
17391
17416
|
},
|
|
17392
17417
|
secondary: null,
|
|
17393
17418
|
target: "self",
|
|
@@ -17550,7 +17575,12 @@ export const Moves: {[moveid: string]: MoveData} = {
|
|
|
17550
17575
|
factor = 0.25;
|
|
17551
17576
|
break;
|
|
17552
17577
|
}
|
|
17553
|
-
|
|
17578
|
+
const success = !!this.heal(this.modify(pokemon.maxhp, factor));
|
|
17579
|
+
if (!success) {
|
|
17580
|
+
this.add('-fail', pokemon, 'heal');
|
|
17581
|
+
return this.NOT_FAIL;
|
|
17582
|
+
}
|
|
17583
|
+
return success;
|
|
17554
17584
|
},
|
|
17555
17585
|
secondary: null,
|
|
17556
17586
|
target: "self",
|
package/data/rulesets.ts
CHANGED
|
@@ -791,6 +791,15 @@ export const Rulesets: {[k: string]: FormatData} = {
|
|
|
791
791
|
];
|
|
792
792
|
},
|
|
793
793
|
},
|
|
794
|
+
onebatonpassclause: {
|
|
795
|
+
effectType: 'ValidatorRule',
|
|
796
|
+
name: 'One Baton Pass Clause',
|
|
797
|
+
desc: "Stops teams from having more than one Pokémon with Baton Pass",
|
|
798
|
+
banlist: ["Baton Pass > 1"],
|
|
799
|
+
onBegin() {
|
|
800
|
+
this.add('rule', 'One Baton Pass Clause: Limit one Baton Passer');
|
|
801
|
+
},
|
|
802
|
+
},
|
|
794
803
|
oneboostpasserclause: {
|
|
795
804
|
effectType: 'ValidatorRule',
|
|
796
805
|
name: 'One Boost Passer Clause',
|
package/data/tags.ts
CHANGED
|
@@ -196,8 +196,9 @@ export const Tags: {[id: string]: TagData} = {
|
|
|
196
196
|
name: "ND UUBL",
|
|
197
197
|
speciesFilter: species => [
|
|
198
198
|
'Aerodactyl-Mega', 'Azumarill', 'Blacephalon', 'Diancie-Mega', 'Gallade-Mega', 'Gardevoir-Mega', 'Gengar', 'Gyarados', 'Gyarados-Mega',
|
|
199
|
-
'Hawlucha', 'Heracross-Mega', 'Hoopa-Unbound', 'Hydreigon', 'Jirachi', 'Latias', 'Latias-Mega', 'Latios', 'Latios-Mega', 'Manaphy',
|
|
200
|
-
'Pinsir-Mega', 'Sableye-Mega', 'Slowbro-Mega', 'Slowking-Galar', 'Thundurus', 'Thundurus-Therian', 'Venusaur-Mega',
|
|
199
|
+
'Hawlucha', 'Heracross-Mega', 'Hoopa-Unbound', 'Hydreigon', 'Jirachi', 'Latias', 'Latias-Mega', 'Latios', 'Latios-Mega', 'Manaphy',
|
|
200
|
+
'Medicham-Mega', 'Mew', 'Pinsir-Mega', 'Sableye-Mega', 'Slowbro-Mega', 'Slowking-Galar', 'Thundurus', 'Thundurus-Therian', 'Venusaur-Mega',
|
|
201
|
+
'Xurkitree', 'Zapdos-Galar',
|
|
201
202
|
].includes(species.name),
|
|
202
203
|
},
|
|
203
204
|
|
package/package.json
CHANGED