From fa15819572f6d5e4d39bb3de2e10e044b683f7b0 Mon Sep 17 00:00:00 2001 From: Guangcong Luo Date: Tue, 22 Dec 2015 04:45:09 -0500 Subject: [PATCH] Teambuilder: Improve move selection - Aerial Ace is only considered non-useless if you have Technician - DynamicPunch is now considered non-useless if you have No Guard - Icy Wind is now considered non-useless on Keldeo - Focus Punch is now considered non-useless on Breloom - Counter is now non-useless if you have Chansey, Skarmory, Clefable, or Wobbuffet - Moves learned by prevos (mainly egg moves) are now properly shown as legal --- js/search.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/js/search.js b/js/search.js index 2422c68ae..b0071e702 100644 --- a/js/search.js +++ b/js/search.js @@ -526,9 +526,10 @@ case 'move': template = Tools.getTemplate(set.species); + if (!(toId(template.species)) in BattleLearnsets) template = Tools.getTemplate(template.baseSpecies); var moves = []; while (true) { - var learnsetTemplate = BattleLearnsets[toId(template.baseSpecies)]; + var learnsetTemplate = BattleLearnsets[toId(template.species)]; if (learnsetTemplate) { for (var l in learnsetTemplate.learnset) { if (requirePentagon && !learnsetTemplate.learnset[l].length) continue; @@ -539,9 +540,8 @@ } } } - if (template.baseSpecies && !learnsetTemplate) template = BattlePokedex[toId(template.baseSpecies)]; - else if (template.prevo) template = BattlePokedex[template.prevo]; - else break; + if (!template.prevo) break; + template = BattlePokedex[template.prevo]; } moves.sort(); @@ -549,7 +549,14 @@ var uselessMoves = []; for (var i = 0; i < moves.length; i++) { var id = moves[i]; - if (BattleMovedex[id] && BattleMovedex[id].isViable) { + var isViable = BattleMovedex[id] && BattleMovedex[id].isViable; + if (id === 'aerialace') isViable = (toId(set.ability) === 'technician'); + if (id === 'dynamicpunch') isViable = (toId(set.ability) === 'noguard'); + if (id === 'icywind') isViable = (toId(set.species).substr(0, 6) === 'keldeo'); + if (id === 'focuspunch') isViable = (toId(set.species) === 'breloom'); + if (id === 'skyattack') isViable = (toId(set.species) === 'hawlucha'); + if (id === 'counter') isViable = (toId(set.species) in {chansey:1, skarmory:1, clefable:1, wobbuffet:1}); + if (isViable) { if (!usableMoves.length) usableMoves.push(['header', "Moves", 0]); usableMoves.push(['move', id, 0]); } else {