@pkmn/sim 0.5.3 → 0.5.7
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 +402 -332
- package/build/config/formats.js.map +1 -1
- package/build/data/aliases.js +4 -4
- package/build/data/aliases.js.map +1 -1
- package/build/data/formats-data.js +183 -70
- 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 +13 -13
- 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 +173 -156
- package/build/data/mods/gen5/formats-data.js.map +1 -1
- package/build/data/mods/gen6/formats-data.js +4 -3
- package/build/data/mods/gen6/formats-data.js.map +1 -1
- package/build/data/mods/gen7/formats-data.js +3 -2
- 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/pokedex.js +480 -11
- package/build/data/pokedex.js.map +1 -1
- package/build/data/rulesets.js +12 -1
- package/build/data/rulesets.js.map +1 -1
- package/build/data/tags.d.ts +1 -0
- package/build/data/tags.js +4 -3
- package/build/data/tags.js.map +1 -1
- package/build/data/text/abilities.js +4 -4
- package/build/data/text/abilities.js.map +1 -1
- package/build/data/text/moves.js +18 -18
- package/build/data/text/moves.js.map +1 -1
- package/build/sim/battle-actions.js +4 -1
- package/build/sim/battle-actions.js.map +1 -1
- package/build/sim/battle.js +23 -22
- package/build/sim/battle.js.map +1 -1
- package/build/sim/dex-formats.d.ts +1 -0
- package/build/sim/dex-formats.js +3 -2
- package/build/sim/dex-formats.js.map +1 -1
- package/build/sim/dex-species.js +5 -2
- package/build/sim/dex-species.js.map +1 -1
- package/build/sim/exported-global-types.d.ts +1 -0
- package/build/sim/global-types.d.ts +1 -0
- package/build/sim/index.d.ts +1 -0
- package/build/sim/index.js +3 -1
- package/build/sim/index.js.map +1 -1
- package/build/sim/team-validator.js +13 -0
- package/build/sim/team-validator.js.map +1 -1
- package/config/formats.ts +422 -352
- package/data/aliases.ts +4 -4
- package/data/formats-data.ts +183 -70
- 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 +13 -13
- package/data/mods/gen4/moves.ts +21 -0
- package/data/mods/gen5/formats-data.ts +173 -156
- package/data/mods/gen6/formats-data.ts +4 -3
- package/data/mods/gen7/formats-data.ts +3 -2
- package/data/mods/gen7/moves.ts +150 -0
- package/data/moves.ts +37 -7
- package/data/pokedex.ts +480 -11
- package/data/rulesets.ts +11 -1
- package/data/tags.ts +6 -3
- package/data/text/abilities.ts +4 -4
- package/data/text/moves.ts +18 -18
- package/package.json +2 -2
- package/sim/battle-actions.ts +4 -1
- package/sim/battle.ts +24 -23
- package/sim/dex-formats.ts +4 -1
- package/sim/dex-species.ts +5 -2
- package/sim/exported-global-types.ts +1 -0
- package/sim/global-types.ts +1 -0
- package/sim/index.ts +1 -0
- package/sim/team-validator.ts +12 -0
|
@@ -623,11 +623,12 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
623
623
|
tier: "LC",
|
|
624
624
|
},
|
|
625
625
|
rhydon: {
|
|
626
|
+
randomBattleMoves: ["earthquake", "megahorn", "rockblast", "stealthrock", "stoneedge", "toxic"],
|
|
626
627
|
tier: "NU",
|
|
627
628
|
doublesTier: "NFE",
|
|
628
629
|
},
|
|
629
630
|
rhyperior: {
|
|
630
|
-
randomBattleMoves: ["dragontail", "earthquake", "icepunch", "megahorn", "rockblast", "rockpolish", "
|
|
631
|
+
randomBattleMoves: ["dragontail", "earthquake", "icepunch", "megahorn", "rockblast", "rockpolish", "stoneedge"],
|
|
631
632
|
randomDoubleBattleMoves: ["earthquake", "hammerarm", "megahorn", "protect", "rockslide", "stealthrock", "stoneedge"],
|
|
632
633
|
tier: "RU",
|
|
633
634
|
doublesTier: "DUU",
|
|
@@ -664,7 +665,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
664
665
|
doublesTier: "(DUU)",
|
|
665
666
|
},
|
|
666
667
|
kangaskhanmega: {
|
|
667
|
-
randomBattleMoves: ["crunch", "earthquake", "fakeout", "poweruppunch", "return", "
|
|
668
|
+
randomBattleMoves: ["crunch", "earthquake", "fakeout", "poweruppunch", "return", "seismictoss", "suckerpunch"],
|
|
668
669
|
randomDoubleBattleMoves: ["crunch", "doubleedge", "drainpunch", "earthquake", "fakeout", "poweruppunch", "protect", "return", "suckerpunch"],
|
|
669
670
|
tier: "Uber",
|
|
670
671
|
doublesTier: "DOU",
|
|
@@ -3860,7 +3861,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
3860
3861
|
avalugg: {
|
|
3861
3862
|
randomBattleMoves: ["avalanche", "earthquake", "rapidspin", "recover", "roar", "toxic"],
|
|
3862
3863
|
randomDoubleBattleMoves: ["avalanche", "earthquake", "protect", "recover"],
|
|
3863
|
-
tier: "
|
|
3864
|
+
tier: "PU",
|
|
3864
3865
|
doublesTier: "(DUU)",
|
|
3865
3866
|
},
|
|
3866
3867
|
noibat: {
|
|
@@ -717,11 +717,12 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
717
717
|
tier: "LC",
|
|
718
718
|
},
|
|
719
719
|
rhydon: {
|
|
720
|
+
randomBattleMoves: ["earthquake", "megahorn", "rockblast", "stealthrock", "stoneedge", "toxic"],
|
|
720
721
|
tier: "NU",
|
|
721
722
|
doublesTier: "NFE",
|
|
722
723
|
},
|
|
723
724
|
rhyperior: {
|
|
724
|
-
randomBattleMoves: ["dragontail", "earthquake", "icepunch", "megahorn", "rockblast", "rockpolish", "
|
|
725
|
+
randomBattleMoves: ["dragontail", "earthquake", "icepunch", "megahorn", "rockblast", "rockpolish", "stoneedge"],
|
|
725
726
|
randomDoubleBattleMoves: ["earthquake", "icepunch", "megahorn", "protect", "rockslide", "stealthrock", "stoneedge"],
|
|
726
727
|
tier: "RU",
|
|
727
728
|
doublesTier: "(DUU)",
|
|
@@ -2300,7 +2301,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|
|
2300
2301
|
doublesTier: "DUber",
|
|
2301
2302
|
},
|
|
2302
2303
|
deoxys: {
|
|
2303
|
-
randomBattleMoves: ["extremespeed", "
|
|
2304
|
+
randomBattleMoves: ["extremespeed", "firepunch", "icebeam", "knockoff", "psychoboost", "stealthrock", "superpower"],
|
|
2304
2305
|
randomDoubleBattleMoves: ["extremespeed", "firepunch", "icebeam", "knockoff", "protect", "psychoboost", "superpower"],
|
|
2305
2306
|
tier: "Uber",
|
|
2306
2307
|
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",
|