mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-05-19 05:31:16 -05:00
47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
/**@type {ModdedBattleScriptsData} */
|
|
exports.BattleScripts = {
|
|
init() {
|
|
let learnsets = Object.assign({}, this.data.Learnsets);
|
|
let dex = [];
|
|
for (let i in this.data.Pokedex) {
|
|
if (this.data.Pokedex[i].num <= 0 || this.data.FormatsData[i].isUnreleased) continue;
|
|
if (this.data.Pokedex[i].evos) continue;
|
|
if (!this.data.FormatsData[i].tier || !learnsets[i]) continue;
|
|
if (this.data.FormatsData[i].tier === 'Illegal') continue;
|
|
dex.push(i);
|
|
}
|
|
for (let i = 0; i < dex.length; i++) {
|
|
let pokemon = dex[i];
|
|
while (this.data.Pokedex[pokemon].prevo) {
|
|
pokemon = this.data.Pokedex[pokemon].prevo;
|
|
}
|
|
let target = dex[(i === 0 ? dex.length - 1 : i - 1)];
|
|
while (this.data.Pokedex[pokemon].num === this.data.Pokedex[target].num) {
|
|
target = dex[dex.indexOf(target) - 1];
|
|
}
|
|
let merge = false;
|
|
do {
|
|
let learnset = learnsets[target].learnset;
|
|
for (let move in learnset) {
|
|
if (move === 'shellsmash') continue;
|
|
let source = learnset[move][0].charAt(0) + 'L0';
|
|
if (!(move in learnsets[pokemon].learnset)) this.modData('Learnsets', pokemon).learnset[move] = [source];
|
|
}
|
|
if (this.data.Pokedex[target].prevo) {
|
|
target = this.data.Pokedex[target].prevo;
|
|
} else if (!merge) {
|
|
merge = true;
|
|
target = dex[(i === dex.length - 1 ? 0 : i + 1)];
|
|
while (this.data.Pokedex[pokemon].num === this.data.Pokedex[target].num) {
|
|
target = dex[dex.indexOf(target) + 1];
|
|
}
|
|
} else {
|
|
target = '';
|
|
}
|
|
} while (target && learnsets[target]);
|
|
}
|
|
},
|
|
};
|