From 2436ba3bce5b9425d10f90538832faa53ebe1684 Mon Sep 17 00:00:00 2001 From: pkmnbumba Date: Tue, 21 Feb 2017 21:11:51 -0800 Subject: [PATCH] hopefully last fixes --- src/checks/hyper-training-31.js | 14 ++++++++++++++ src/checks/hyper-training.js | 12 ++++++++++++ src/helpers/gameId.js | 7 ++++++- test/pk7/illegal/6iv-hypertrained.pk7 | Bin 0 -> 232 bytes test/pk7/illegal/underleveled-hypertrained.pk7 | Bin 0 -> 232 bytes test/pk7/legal/sumo-hyper-trained.pk7 | Bin 0 -> 232 bytes 6 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/checks/hyper-training-31.js create mode 100644 src/checks/hyper-training.js create mode 100644 test/pk7/illegal/6iv-hypertrained.pk7 create mode 100644 test/pk7/illegal/underleveled-hypertrained.pk7 create mode 100644 test/pk7/legal/sumo-hyper-trained.pk7 diff --git a/src/checks/hyper-training-31.js b/src/checks/hyper-training-31.js new file mode 100644 index 0000000..095af42 --- /dev/null +++ b/src/checks/hyper-training-31.js @@ -0,0 +1,14 @@ +module.exports = { + description: 'A maxed IV (31) cannot be hypertrained.', + field: 'iv', + test (pkmn) { + return !( + pkmn.ivHp === 31 && pkmn.hyperTrainedHp || + pkmn.ivAtk === 31 && pkmn.hyperTrainedAtk || + pkmn.ivDef === 31 && pkmn.hyperTrainedDef || + pkmn.ivSpAtk === 31 && pkmn.hyperTrainedSpAtk || + pkmn.ivSpDef === 31 && pkmn.hyperTrainedSpDef || + pkmn.ivSpe === 31 && pkmn.hyperTrainedSpe +); + } +}; diff --git a/src/checks/hyper-training.js b/src/checks/hyper-training.js new file mode 100644 index 0000000..ff2532b --- /dev/null +++ b/src/checks/hyper-training.js @@ -0,0 +1,12 @@ +module.exports = { + description: 'A Pokémon from SuMo can only be hyper trained if level 100.', + filter (pkmn) { + return pkmn.level !== 100; + }, + field: 'level', + test (pkmn) { + return !(pkmn.hyperTrainedHp || pkmn.hyperTrainedAtk || + pkmn.hyperTrainedDef || pkmn.hyperTrainedSpAtk || + pkmn.hyperTrainedSpDef || pkmn.hyperTrainedSpe); + } +}; diff --git a/src/helpers/gameId.js b/src/helpers/gameId.js index 4234640..d6ae099 100644 --- a/src/helpers/gameId.js +++ b/src/helpers/gameId.js @@ -2,7 +2,8 @@ const genMap = { 1: 3, 2: 3, 3: 3, 4: 3, 5: 3, 15: 3, /* S, R, E, FR, LG, XD/Colo */ 7: 4, 8: 4, 10: 4, 11: 4, 12: 4, /* HG, SS, D, P, Pt */ 20: 5, 21: 5, 22: 5, 23: 5, /* W, B, W2, B2 */ - 24: 6, 25: 6, 26: 6, 27: 6 /* X, Y, OR, AS */ + 24: 6, 25: 6, 26: 6, 27: 6, /* X, Y, OR, AS */ + 28: 7, 29: 7 /* Su, Mo */ }; exports.isFromXY = function (gameId) { @@ -13,6 +14,10 @@ exports.isFromORAS = function (gameId) { return [26, 27].indexOf(gameId) > -1; }; +exports.isFromSuMo = function (gameId) { + return [28, 29].indexOf(gameId) > -1; +}; + exports.originGen = function (gameId) { return genMap[gameId]; }; diff --git a/test/pk7/illegal/6iv-hypertrained.pk7 b/test/pk7/illegal/6iv-hypertrained.pk7 new file mode 100644 index 0000000000000000000000000000000000000000..fa1e0d436f17872ee82b5795c5da011d075c2886 GIT binary patch literal 232 zcmdmgCT1oBLs9=F1_p+@?>hwhw@ocI~;GBGez6d!Zv;Q|U004@xr4CxFd3`Go?4EZQ( zxtUrSS250G6lUh+M3G=HlwYfhDuT=dT8;2$2mlwa6zBi| literal 0 HcmV?d00001