Advertisement
Guest User

Untitled

a guest
Nov 27th, 2018
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // run from within Pokemon-Showdown/data
  2.  
  3. const dex = require('./pokedex.js').BattlePokedex;
  4. const moves = require('./learnsets.js').BattleLearnsets;
  5. const movedex = require('./moves.js').BattleMovedex;
  6.  
  7. const gen6 = require('../mods/gen6/pokedex.js').BattlePokedex;
  8. const gen5 = require('../mods/gen5/pokedex.js').BattlePokedex;
  9. const gen4 = require('../mods/gen4/pokedex.js').BattlePokedex;
  10.  
  11. let cap_mons = [];
  12.  
  13. for (let i in dex) {
  14.     if (dex[i].num < 0 && dex[i].num > -200) cap_mons.push(i);
  15. }
  16.  
  17. function intro(mon) {
  18.     let num = mon.num;
  19.     if (num >= -11) return 4;
  20.     if (num >= -18) return 5;
  21.     if (num >= -22) return 6;
  22.     if (num > -65) return 7;
  23.     return 0;
  24. }
  25.  
  26. const genNames = {0: 'idk', 4: 'dp', 5: 'bw', 6: 'xy', 7: 'sm',};
  27.  
  28. function isInGen(moveLearnset, gen) {
  29.     for (let i in moveLearnset)
  30.         if (+moveLearnset[i].slice(0,1) <= gen) return true;
  31. }
  32.  
  33. const types = ['Bug', 'Dark', 'Dragon', 'Electric', 'Fighting', 'Fire', 'Flying',
  34.                'Ghost', 'Grass', 'Ground', 'Ice', 'Poison', 'Psychic', 'Rock',
  35.                'Steel', 'Water'];
  36.  
  37. function get_moves(mon_name, gen) {
  38.     if (mon_name === 'crucibellemega') return '';
  39.     let hidden_powers = '';
  40.     for (let i in types)
  41.         hidden_powers += `Hidden Power ${types[i]}, `;
  42.     res = '';
  43.     for (let move in moves[mon_name].learnset) {
  44.         if (!isInGen(moves[mon_name].learnset[move], gen))
  45.             continue;
  46.         if (movedex[move].name=== 'Hidden Power')
  47.             res += hidden_powers;
  48.         else res += `${movedex[move].name}, `;
  49.     }
  50.     return res.slice(0, -2);
  51. }
  52.  
  53. let outputs = {};
  54. for (let i = 0; i < cap_mons.length; i++) {
  55.     let mon_name = cap_mons[i];
  56.     let mon = dex[mon_name];
  57.     let res = `${mon.species}:
  58.     abilities:
  59.     - [`;
  60.     for (let j in mon.abilities) {
  61.         res += mon.abilities[j] + ', ';
  62.     }
  63.     res = res.slice(0, -2);
  64.     res += `]
  65.     egggroups:
  66.     - [${mon.eggGroups[0]}`;
  67.     if (mon.eggGroups.length === 2) {
  68.         res += `, ${mon.eggGroups[1]}`;
  69.     }
  70.     res += `]
  71.     evolvesFrom: [${mon.prevo ? dex[mon.prevo].species : ''}]
  72.     height: [${mon.heightm}]
  73.     introduction: ${genNames[intro(mon)]}
  74.     moves:`;
  75.     let thisgen = 7
  76.     do {
  77.         res += `\n    -${genNames[thisgen]}: [${get_moves(mon_name, thisgen)}]`;
  78.     } while (intro(mon) && --thisgen >= intro(mon));
  79.     res += `\n    stats:
  80.     - [${mon.baseStats.hp}, ${mon.baseStats.atk}, ${mon.baseStats.def}, ${mon.baseStats.spa}, ${mon.baseStats.spd}, ${mon.baseStats.spe}]
  81.     tags:
  82.     - [CAP]
  83.     - sm: [CAP]
  84.     - cap: [true]
  85.     types:
  86.     - [${mon.types[0]}`;
  87.     mon.types.length === 2 ? res += ', ' + mon.types[1] : res += '';
  88.     res += `]
  89.     weight: [${mon.weightkg}]`;
  90.     outputs[mon_name] = res;
  91. }
  92. const fs = require('fs');
  93. var str = '';
  94. for (let i in outputs) {
  95.     str += outputs[i] + '\n\n';
  96. }
  97. fs.writeFile('cap_smogdex.txt', str, ()=>{});
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement