Skip to content

Commit 3514c74

Browse files
committed
fix
1 parent 1025ccd commit 3514c74

File tree

2 files changed

+98
-8
lines changed

2 files changed

+98
-8
lines changed

build-tools/build-indexes-custom-v2

Lines changed: 76 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,11 @@ function requireNoCache(pathSpec) {
9191
index = index.concat(Object.keys(DawnDex.mod('gen9rebalanced').data.Moves).map(x => x + ' move'));
9292
index = index.concat(Object.keys(DawnDex.mod('gen9rebalanced').data.Items).map(x => x + ' item'));
9393
index = index.concat(Object.keys(DawnDex.mod('gen9rebalanced').data.Abilities).map(x => x + ' ability'));
94+
// Gen 9 GPT
95+
index = index.concat(Object.keys(DawnDex.mod('gen9gpt').data.Pokedex).map(x => x + ' pokemon'));
96+
index = index.concat(Object.keys(DawnDex.mod('gen9gpt').data.Moves).map(x => x + ' move'));
97+
index = index.concat(Object.keys(DawnDex.mod('gen9gpt').data.Items).map(x => x + ' item'));
98+
index = index.concat(Object.keys(DawnDex.mod('gen9gpt').data.Abilities).map(x => x + ' ability'));
9499
// Remove dupes
95100
index = [...new Set(index)];
96101

@@ -365,7 +370,7 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
365370
const LC = GENS.map(num => num + 0.7);
366371
const STADIUM = [2.04, 1.04];
367372
const NATDEX = [9.1, 8.1];
368-
const OTHER = [9.9, 9.69, 9.68, 9.67, 9.66, 9.65, 9.411, 9.41, 9.401, 9.4, 9.2, -9.4, -9.401, 8.6, 8.4, 8.2, 8.1, -8.4, -8.6, 7.1];
373+
const OTHER = [9.9, 9.69, 9.68, 9.67, 9.66, 9.65, 9.64, 9.411, 9.41, 9.401, 9.4, 9.2, -9.4, -9.401, 8.6, 8.4, 8.2, 8.1, -8.4, -8.6, 7.1];
369374

370375
// process.stdout.write("\n ");
371376
for (const genIdent of [...GENS, ...DOUBLES, ...VGC, ...NFE, ...STADIUM, ...OTHER, ...NATDEX, ...LC]) {
@@ -376,6 +381,7 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
376381
const isOmnifield = (genIdent === 9.67);
377382
const isEspionage = (genIdent === 9.66);
378383
const isRebalanced = (genIdent === 9.65);
384+
const isGPT = (genIdent === 9.64);
379385
const isMetBattle = ('' + genIdent).endsWith('.2');
380386
const isNFE = ('' + genIdent).endsWith('.3');
381387
const isLC = ('' + genIdent).endsWith('.7');
@@ -405,12 +411,14 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
405411
const OmnifieldPokemon = Object.keys(DawnDex.mod('omnifield').data.Pokedex);
406412
const EspionagePokemon = Object.keys(DawnDex.mod('gen9espionage').data.Pokedex);
407413
const RebalancedPokemon = Object.keys(DawnDex.mod('gen9rebalanced').data.Pokedex);
414+
const GPTPokemon = Object.keys(DawnDex.mod('gen9gpt').data.Pokedex);
408415
pokemon.sort();
409416
SanctifiedPokemon.sort();
410417
UniversalPokemon.sort();
411418
OmnifieldPokemon.sort();
412419
EspionagePokemon.sort();
413420
RebalancedPokemon.sort();
421+
GPTPokemon.sort();
414422
const tierTable = {};
415423
const overrideTier = {};
416424
const ubersUUBans = {};
@@ -425,6 +433,7 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
425433
if (isOmnifield) continue;
426434
if (isEspionage) continue;
427435
if (isRebalanced) continue;
436+
if (isGPT) continue;
428437
const tier = (() => {
429438
if (isMetBattle) {
430439
let tier = species.tier;
@@ -607,6 +616,20 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
607616
tierTable[tier].push(id);
608617
}
609618

619+
const GPTFormatsData = requireNoCache(dawnPath + 'dist/data/mods/gen9gpt/formats-data.js').FormatsData;
620+
for (const id of GPTFormatsData) {
621+
const species = DawnDex.mod('gen9gpt').species.get(id);
622+
if (!isGPT) continue;
623+
let tier = species.tier;
624+
const entry = GPTFormatsData[id];
625+
if (entry && entry.tier && typeof entry.tier === "string") {
626+
tier = entry.tier;
627+
}
628+
overrideTier[species.id] = tier;
629+
if (!tierTable[tier]) tierTable[tier] = [];
630+
tierTable[tier].push(id);
631+
}
632+
610633
nonstandardMoves.push(...Object.keys(Dex.data.Moves).filter(id => {
611634
const move = Dex.mod(isSSDLC1 ? 'gen8dlc1' : isPreDLC ? 'gen9predlc' : 'gen9dlc1').moves.get(id);
612635
const bMove = Dex.mod(isSSDLC1 ? 'gen8' : 'gen9').moves.get(id);
@@ -688,6 +711,13 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
688711
BattleTeambuilderTable['gen9universal'].tiers = tiers;
689712
BattleTeambuilderTable['gen9universal'].overrideTier = overrideTier;
690713
BattleTeambuilderTable['gen9universal'].formatSlices = formatSlices;
714+
} else if (isGPT) {
715+
BattleTeambuilderTable['gen9gpt'] = {};
716+
BattleTeambuilderTable['gen9gpt'].learnsets = {};
717+
BattleTeambuilderTable['gen9gpt'].items = items;
718+
BattleTeambuilderTable['gen9gpt'].tiers = tiers;
719+
BattleTeambuilderTable['gen9gpt'].overrideTier = overrideTier;
720+
BattleTeambuilderTable['gen9gpt'].formatSlices = formatSlices;
691721
} else if (isVGC) {
692722
BattleTeambuilderTable[gen + 'vgc'] = {};
693723
BattleTeambuilderTable[gen + 'vgc'].tiers = tiers;
@@ -725,7 +755,7 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
725755
}
726756

727757
const tierOrder = (() => {
728-
if (isSanctified || isUniversal || isRebalanced) {
758+
if (isSanctified || isUniversal || isRebalanced || isGPT) {
729759
return ["AG", "Uber", "(Uber)", "OUBL", "OU", "(OU)", "UUBL", "UU", "RUBL", "RU", 'HUBL', 'HU', "NUBL", "NU", "AUBL", "AU", "PUBL", "PU", "ZUBL", "ZU", "FUBL", "FU", "NFE", "LC"];
730760
}
731761
if (isVGC || isGen9BH) {
@@ -785,7 +815,7 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
785815
continue;
786816
}
787817
if (item.isNonstandard && !isMetBattle) {
788-
if (isNatDex || isSanctified || isOmnifield || isUniversal || isEspionage || isRebalanced) {
818+
if (isNatDex || isSanctified || isOmnifield || isUniversal || isEspionage || isRebalanced || isGPT) {
789819
let curItem = item;
790820
let curGen = genNum;
791821
while (item.isNonstandard && curGen >= 7) {
@@ -992,11 +1022,13 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
9921022
const UniversalItemList = Object.keys(DawnDex.mod('gen9universal').data.Items);
9931023
const OmnifieldItemList = Object.keys(DawnDex.mod('omnifield').data.Items);
9941024
const RebalancedItemList = Object.keys(DawnDex.mod('gen9rebalanced').data.Items);
1025+
const GPTItemList = Object.keys(DawnDex.mod('gen9gpt').data.Items);
9951026
EspionageItemList.sort();
9961027
SanctifiedItemList.sort();
9971028
UniversalItemList.sort();
9981029
OmnifieldItemList.sort();
9991030
RebalancedItemList.sort();
1031+
GPTItemList.sort();
10001032
for (const id of EspionageItemList) {
10011033
if (itemList.includes(id)) continue;
10021034
if (!isEspionage) continue;
@@ -1022,6 +1054,11 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
10221054
if (!isRebalanced) continue;
10231055
greatItems.push(id);
10241056
}
1057+
for (const id of GPTItemList) {
1058+
if (itemList.includes(id)) continue;
1059+
if (!isGPT) continue;
1060+
greatItems.push(id);
1061+
}
10251062
items.push(...greatItems);
10261063
items.push(...goodItems);
10271064
items.push(...specificItems);
@@ -1318,6 +1355,18 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
13181355
}
13191356
}
13201357

1358+
const GPTLearnsets = DawnDex.mod('gen9gpt').data.Learnsets;
1359+
for (const id in GPTLearnsets) {
1360+
const learnset = GPTLearnsets[id].learnset;
1361+
if (!learnset) continue;
1362+
BattleTeambuilderTable['gen9gpt'].learnsets[id] = {};
1363+
for (const moveid in learnset) {
1364+
const gens = learnset[moveid].map(x => Number(x[0]));
1365+
const minGen = Math.min(...gens);
1366+
BattleTeambuilderTable['gen9gpt'].learnsets[id][moveid] = '0123456789'.slice(minGen) + 'a';
1367+
}
1368+
}
1369+
13211370
// Client relevant data that should be overriden by past gens and mods
13221371
const overrideSpeciesKeys = ['abilities', 'baseStats', 'cosmeticFormes', 'isNonstandard', 'requiredItems', 'types', 'unreleasedHidden'];
13231372
const overrideMoveKeys = ['accuracy', 'basePower', 'category', 'desc', 'flags', 'isNonstandard', 'noSketch', 'pp', 'priority', 'shortDesc', 'target', 'type'];
@@ -1406,7 +1455,7 @@ process.stdout.write("Building `data/teambuilder-tables.js`... ");
14061455
// Mods
14071456
//
14081457

1409-
for (const mod of ['gen7letsgo', 'gen8bdsp', 'gen9sanctified', 'gen9universal', 'omnifield', 'gen9espionage', 'gen9rebalanced']) {
1458+
for (const mod of ['gen7letsgo', 'gen8bdsp', 'gen9sanctified', 'gen9universal', 'omnifield', 'gen9espionage', 'gen9rebalanced', 'gen9gpt']) {
14101459
const modDex = DawnDex.mod(mod);
14111460
const modData = modDex.data;
14121461
const parentDex = DawnDex.forGen(modDex.gen);
@@ -1478,16 +1527,20 @@ process.stdout.write("Building `data/pokedex.js`... ");
14781527
const EspionageFormatsData = requireNoCache(dawnPath + 'dist/data/mods/gen9espionage/formats-data.js').FormatsData;
14791528
const RebalancedDex = requireNoCache(dawnPath + 'dist/data/mods/gen9rebalanced/pokedex.js').Pokedex;
14801529
const RebalancedFormatsData = requireNoCache(dawnPath + 'dist/data/mods/gen9rebalanced/formats-data.js').FormatsData;
1530+
const GPTDex = requireNoCache(dawnPath + 'dist/data/mods/gen9gpt/pokedex.js').Pokedex;
1531+
const GPTFormatsData = requireNoCache(dawnPath + 'dist/data/mods/gen9gpt/formats-data.js').FormatsData;
14811532
DawnDex.data.FormatsData = Object.assign(SanctifiedFormatsData, DawnDex.data.FormatsData);
14821533
DawnDex.data.FormatsData = Object.assign(UniversalFormatsData, DawnDex.data.FormatsData);
14831534
DawnDex.data.FormatsData = Object.assign(OmnifieldFormatsData, DawnDex.data.FormatsData);
14841535
DawnDex.data.FormatsData = Object.assign(EspionageFormatsData, DawnDex.data.FormatsData);
14851536
DawnDex.data.FormatsData = Object.assign(RebalancedFormatsData, DawnDex.data.FormatsData);
1537+
DawnDex.data.FormatsData = Object.assign(GPTFormatsData, DawnDex.data.FormatsData);
14861538
Pokedex = Object.assign(SanctifiedDex, Pokedex);
14871539
Pokedex = Object.assign(UniversalDex, Pokedex);
14881540
Pokedex = Object.assign(OmnifieldDex, Pokedex);
14891541
Pokedex = Object.assign(EspionageDex, Pokedex);
14901542
Pokedex = Object.assign(RebalancedDex, Pokedex);
1543+
Pokedex = Object.assign(GPTDex, Pokedex);
14911544
for (const id in Pokedex) {
14921545
const entry = Pokedex[id];
14931546
if (DawnDex.data.FormatsData[id]) {
@@ -1518,10 +1571,12 @@ process.stdout.write("Building `data/moves,items,abilities,typechart,learnsets.j
15181571
const UniversalMoves = requireNoCache(dawnPath + 'dist/data/mods/gen9universal/moves.js').Moves;
15191572
const OmnifieldMoves = requireNoCache(dawnPath + 'dist/data/mods/omnifield/moves.js').Moves;
15201573
const RebalancedMoves = requireNoCache(dawnPath + 'dist/data/mods/gen9rebalanced/moves.js').Moves;
1574+
const GPTMoves = requireNoCache(dawnPath + 'dist/data/mods/gen9gpt/moves.js').Moves;
15211575
Moves = Object.assign(SanctifiedMoves, Moves);
15221576
Moves = Object.assign(UniversalMoves, Moves);
15231577
Moves = Object.assign(OmnifieldMoves, Moves);
15241578
Moves = Object.assign(RebalancedMoves, Moves);
1579+
Moves = Object.assign(GPTMoves, Moves);
15251580

15261581
for (const id in Moves) {
15271582
let move = Dex.moves.get(Moves[id].name);
@@ -1535,6 +1590,9 @@ process.stdout.write("Building `data/moves,items,abilities,typechart,learnsets.j
15351590
move = DawnDex.mod('gen9espionage').moves.get(id);
15361591
if (!move) {
15371592
move = DawnDex.mod('gen9rebalanced').moves.get(id);
1593+
if (!move) {
1594+
move = DawnDex.mod('gen9gpt').moves.get(id);
1595+
}
15381596
}
15391597
}
15401598
}
@@ -1562,11 +1620,13 @@ process.stdout.write("Building `data/moves,items,abilities,typechart,learnsets.j
15621620
const OmnifieldItems = requireNoCache(dawnPath + 'dist/data/mods/omnifield/items.js').Items;
15631621
const EspionageItems = requireNoCache(dawnPath + 'dist/data/mods/gen9espionage/items.js').Items;
15641622
const RebalancedItems = requireNoCache(dawnPath + 'dist/data/mods/gen9rebalanced/items.js').Items;
1623+
const GPTItems = requireNoCache(dawnPath + 'dist/data/mods/gen9gpt/items.js').Items;
15651624
Items = Object.assign(SanctifiedItems, Items);
15661625
Items = Object.assign(UniversalItems, Items);
15671626
Items = Object.assign(OmnifieldItems, Items);
15681627
Items = Object.assign(EspionageItems, Items);
15691628
Items = Object.assign(RebalancedItems, Items);
1629+
Items = Object.assign(GPTItems, Items);
15701630
for (const id in Items) {
15711631
let item = DawnDex.items.get(Items[id].name);
15721632
if (!item) {
@@ -1579,6 +1639,9 @@ process.stdout.write("Building `data/moves,items,abilities,typechart,learnsets.j
15791639
item = DawnDex.mod('gen9espionage').items.get(id);
15801640
if (!item) {
15811641
item = DawnDex.mod('gen9rebalanced').items.get(id);
1642+
if (!item) {
1643+
item = DawnDex.mod('gen9gpt').items.get(id);
1644+
}
15821645
}
15831646
}
15841647
}
@@ -1604,10 +1667,12 @@ process.stdout.write("Building `data/moves,items,abilities,typechart,learnsets.j
16041667
const UniversalAbilities = requireNoCache(dawnPath + 'dist/data/mods/gen9universal/abilities.js').Abilities;
16051668
const OmnifieldAbilities = requireNoCache(dawnPath + 'dist/data/mods/omnifield/abilities.js').Abilities;
16061669
const RebalancedAbilities = requireNoCache(dawnPath + 'dist/data/mods/gen9rebalanced/abilities.js').Abilities;
1670+
const GPTAbilities = requireNoCache(dawnPath + 'dist/data/mods/gen9gpt/abilities.js').Abilities;
16071671
Abilities = Object.assign(SanctifiedAbilities, Abilities);
16081672
Abilities = Object.assign(UniversalAbilities, Abilities);
16091673
Abilities = Object.assign(OmnifieldAbilities, Abilities);
16101674
Abilities = Object.assign(RebalancedAbilities, Abilities);
1675+
Abilities = Object.assign(GPTAbilities, Abilities);
16111676

16121677
for (const id in Abilities) {
16131678
let ability = DawnDex.abilities.get(Abilities[id].name);
@@ -1621,6 +1686,9 @@ process.stdout.write("Building `data/moves,items,abilities,typechart,learnsets.j
16211686
ability = DawnDex.mod('gen9espionage').abilities.get(id);
16221687
if (!ability) {
16231688
ability = DawnDex.mod('gen9rebalanced').abilities.get(id);
1689+
if (!ability) {
1690+
ability = DawnDex.mod('gen9gpt').abilities.get(id);
1691+
}
16241692
}
16251693
}
16261694
}
@@ -1670,11 +1738,13 @@ process.stdout.write("Building `data/moves,items,abilities,typechart,learnsets.j
16701738
const OmnifieldFormatsData = requireNoCache(dawnPath + 'dist/data/mods/omnifield/formats-data.js').FormatsData;
16711739
const EspionageFormatsData = requireNoCache(dawnPath + 'dist/data/mods/gen9espionage/formats-data.js').FormatsData;
16721740
const RebalancedFormatsData = requireNoCache(dawnPath + 'dist/data/mods/gen9rebalanced/formats-data.js').FormatsData;
1741+
const GPTFormatsData = requireNoCache(dawnPath + 'dist/data/mods/gen9gpt/formats-data.js').FormatsData;
16731742
FormatsData = Object.assign(SanctifiedFormatsData, FormatsData);
16741743
FormatsData = Object.assign(UniversalFormatsData, FormatsData);
16751744
FormatsData = Object.assign(OmnifieldFormatsData, FormatsData);
16761745
FormatsData = Object.assign(EspionageFormatsData, FormatsData);
16771746
FormatsData = Object.assign(RebalancedFormatsData, FormatsData);
1747+
FormatsData = Object.assign(GPTFormatsData, FormatsData);
16781748
const buf = 'exports.BattleFormatsData = ' + es3stringify(FormatsData) + ';';
16791749
fs.writeFileSync('play.pokemonshowdown.com/data/formats-data.js', buf);
16801750
}
@@ -1700,11 +1770,13 @@ process.stdout.write("Building `data/moves,items,abilities,typechart,learnsets.j
17001770
const OmnifieldLearnsets = requireNoCache(dawnPath + 'dist/data/mods/omnifield/learnsets.js').Learnsets;
17011771
const EspionageLearnsets = requireNoCache(dawnPath + 'dist/data/mods/gen9espionage/learnsets.js').Learnsets;
17021772
const RebalancedLearnsets = requireNoCache(dawnPath + 'dist/data/mods/gen9rebalanced/learnsets.js').Learnsets;
1773+
const GPTLearnsets = requireNoCache(dawnPath + 'dist/data/mods/gen9gpt/learnsets.js').Learnsets;
17031774
Learnsets = Object.assign(SanctifiedLearnsets, Learnsets);
17041775
Learnsets = Object.assign(UniversalLearnsets, Learnsets);
17051776
Learnsets = Object.assign(OmnifieldLearnsets, Learnsets);
17061777
Learnsets = Object.assign(EspionageLearnsets, Learnsets);
17071778
Learnsets = Object.assign(RebalancedLearnsets, Learnsets);
1779+
Learnsets = Object.assign(GPTLearnsets, Learnsets);
17081780
const buf = 'exports.BattleLearnsets = ' + es3stringify(Learnsets) + ';';
17091781
fs.writeFileSync('play.pokemonshowdown.com/data/learnsets.js', buf);
17101782
fs.writeFileSync('play.pokemonshowdown.com/data/learnsets.json', JSON.stringify(Learnsets));

0 commit comments

Comments
 (0)