Advertisement
Dimenticare

Random Pokémon Teams

Aug 8th, 2017
721
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // For those of you who just found this by scrolling through Pastebin,
  2. // this is for Pokémon Essentials. And I guess if you can find other uses
  3. // for this code that's cool too.
  4.  
  5. "use strict";
  6. const fs=require("fs");
  7.  
  8. // Choose your available Pokémon and put them in an array.
  9. // I'd suggest making a few of them as templates for default Trainers,
  10. // noob Trainers and strong Trainers.
  11.  
  12. var generic=[
  13.     "Absol", "Arcanine", "Milotic", "Ampharos", "Gastrodon", "Jellicent",
  14.     "Seismitoad", "Lapras", "Poliwrath", "Politoed", "Castform", "Tentacruel", "Ludicolo",
  15.     "Galvantula", "Shuckle", "Stunfisk", "Crawdaunt", "Lanturn",
  16.     "Gyarados", "Manectric", "Raticate", "Clefable", "Parasect", "Dragonite",
  17.     "Tyranitar", "Aggron", "Ninjask", "Shedinja", "Dustox", "Beautifly", "Sawsbuck",
  18.     "Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Glaceon", "Leafeon",
  19.     "Altaria", "Quagsire", "Swellow", "Gardevoir", "Gallade", "Scrafty",
  20.     "Hitmonlee", "Hitmonchan", "Hitmontop"
  21. ]
  22.  
  23. var genericSuper=[
  24.     "Absol", "Arcanine", "Milotic", "Ampharos", "Gastrodon", "Jellicent",
  25.     "Seismitoad", "Lapras", "Poliwrath", "Politoed", "Castform", "Tentacruel", "Ludicolo",
  26.     "Galvantula", "Shuckle", "Stunfisk", "Crawdaunt", "Lanturn",
  27.     "Gyarados", "Manectric", "Raticate", "Clefairy", "Parasect", "Dragonite",
  28.     "Tyranitar", "Aggron", "Ninjask", "Dustox", "Beautifly", "Sawsbuck",
  29.     "Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Glaceon", "Leafeon",
  30.     "Altaria", "Quagsire", "Swellow", "Gardevoir", "Gallade", "Scrafty",
  31.     "Hitmonlee", "Hitmonchan", "Hitmontop"
  32. ]
  33.  
  34. var genericGimped=[
  35.     "Gastrodon", "Jellicent",
  36.     "Seismitoad", "Tentacruel", "Ludicolo",
  37.     "Galvantula", "Shuckle", "Stunfisk", "Crawdaunt", "Lanturn",
  38.     "Raticate", "Clefairy", "Parasect",
  39.     "Ninjask", "Dustox", "Beautifly", "Sawsbuck",
  40.     "Altaria", "Quagsire", "Swellow", "Scrafty"
  41. ]
  42.  
  43. // Make arrays for all of the trainer classes.
  44.  
  45. var blackBelt=[
  46.     "Scrafty", "Gallade", "Hitmonlee", "Hitmonchan", "Hitmontop"
  47. ]
  48.  
  49. var crushGirl=blackBelt;
  50.  
  51. var camper=[
  52.     "Sawsbuck", "Castform", "Seismitoad", "Poliwrath", "Politoed", "Ludicolo", "Galvantula",
  53.     "Stunfisk", "Crawdaunt", "Ninjask", "Shedinja", "Swellow", "Scyther", "Scizor"
  54. ]
  55.  
  56. // If you copy any of the arrays you should probably call .splice() on it first.
  57.  
  58. var picnicker=camper.splice();
  59.  
  60. var youngster=camper.slice();
  61. youngster.push("Raticate");
  62. youngster.push("Raticate");
  63. youngster.push("Raticate");
  64.  
  65. var acetrainer_m=genericSuper.splice();
  66. var acetrainer_f=genericSuper.splice();
  67.  
  68. var lass=camper.splice();
  69.  
  70. var pokemonranger_m=camper.splice();
  71. var pokemonranger_f=camper.splice();
  72.  
  73. var psychic_m=[
  74.     "Gardevoir", "Gallade", "Jellicent", "Gengar"
  75. ]
  76.  
  77. var psychic_f=psychic_m.splice();
  78.  
  79. var aromaLady=[
  80.     "Ludicolo", "Sawsbuck", "Castform",
  81. ]
  82.  
  83. var beauty=[
  84.     "Clefairy", "Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Glaceon", "Leafeon",  "Sawsbuck"
  85. ]
  86.  
  87. var biker=[
  88.     "absol", "Arcanine", "Stunfisk", "Crawdaunt", "Tyranitar", "Aggron", "Scrafty"
  89. ]
  90.  
  91. var birdkeeper=[
  92.     "Swellow"
  93. ]
  94.  
  95. var bugCatcher=[
  96.     "Ninjask", "Shedinja", "Dustox", "Beautifly", "Galvantula", "Scyther", "Scizor"
  97. ]
  98.  
  99. var burglar=genericGimped.splice();
  100.  
  101. var chaneller=psychic_m.splice();
  102.  
  103. var cueball=biker.splice();
  104.  
  105. var engineer=[
  106.     "Ampharos", "Galvantula", "Manectric", "Scizor"
  107. ]
  108.  
  109. var fisherman=[
  110.     "Milotic", "Jellicent", "Lapras", "Poliwrath", "Politoed", "Tentacruel",
  111.     "Crawdaunt", "Lanturn", "Gyarados", "Magikarp", "Gyarados"
  112. ]
  113.  
  114. var gambler=genericGimped.splice();
  115.  
  116. var gentleman=[
  117.     "Gastrodon", "Jellicent",
  118.     "Seismitoad", "Tentacruel", "Ludicolo",
  119.     "Lanturn",
  120.     "Clefairy",
  121.     "Sawsbuck",
  122.     "Altaria", "Quagsire", "Swellow"
  123. ]
  124.  
  125. var hiker=[
  126.     "Arcanine", "shuckle", "Tyranitar", "aggron", "Scizor"
  127. ]
  128.  
  129. var juggler=genericGimped.splice();
  130.  
  131. var lady=gentleman.slice();
  132.  
  133. // Gentlemen get extra Arcanine, because of course they do
  134.  
  135. for (var i=0; i<5; i++){
  136.     gentleman.push("Arcanine");
  137. }
  138.  
  139. var painter=[
  140.     "no"
  141. ]
  142.  
  143. var nurse=[
  144.     "Clefairy", "Clefable", "Eevee"
  145. ]
  146.  
  147. var pokemaniac=generic.splice();
  148.  
  149. var pokemonbreeder=genericGimped.splice();
  150.  
  151. var professor=genericSuper.splice();
  152.  
  153. var rocket=generic.splice();
  154.  
  155. var ruinManiac=hiker.splice();
  156.  
  157. var sailor=fisherman.splice();
  158.  
  159. var scientist=engineer.splice();
  160.  
  161. var supernerd=pokemaniac.splice();
  162.  
  163. var tamer=pokemaniac.slice();
  164. for (var i=0; i<5; i++){
  165.     tamer.push("Arcanine");
  166. }
  167.  
  168. var swimmer_m=fisherman.splice();
  169. var swimmer_f=fisherman.splice();
  170. var swimmer2_m=fisherman.splice();
  171. var swimmer2_f=fisherman.splice();
  172.  
  173. var tuber_m=[
  174.     "Feebas", "Frillish", "Poliwag", "Tentacool",
  175.     "Corphish", "Chinchou", "Magikarp", "Magikarp"
  176. ]
  177. var tuber_f=tuber_m.splice();
  178. var tuber2_m=tuber_m.splice();
  179. var tuber2_f=tuber_m.splice();
  180.  
  181. var teamaqua_m=fisherman.slice();
  182. teamaqua_m.push("hydreigon");
  183. var teamaqua_f=teamaqua_m.splice();
  184.  
  185. var teamaquaBoss=teamaqua_m.splice();
  186. var teamaquaAdmin_M=teamaqua_m.splice();
  187. var teamaquaAdmin_F=teamaqua_f.splice();
  188.  
  189. /*
  190.  * Call via the command line like:
  191.  *      node random_teams.js input.txt output.txt
  192.  * where input.txt is formatted something like:
  193.  *      ACETRAINER_M,Bob,0,4
  194.  * The arguments go like:
  195.  *      1. Trainer class
  196.  *      2. Trainer name
  197.  *      3. Battle ID
  198.  *      4. Number of Pokémon the trainer has
  199.  *
  200.  * Note that all levels are set to "1" until you manually change them.
  201.  * I may or may not do something about this in an update.
  202.  */
  203.  
  204. function go(){
  205.     if (process.argv.length<4){
  206.         console.log("Needs two command line arguments, sorry.");
  207.         console.log("One input file and one output file.");
  208.     } else {
  209.         var lines;
  210.         // Read the input file
  211.         fs.readFile(process.argv[2], function(err, data){
  212.             if(err){
  213.                 throw err;
  214.             }
  215.             lines=data.toString().split('\n');
  216.             var outString="";
  217.             for (var i=0; i<lines.length; i++){
  218.                 var split=lines[i].replace("\r", "").trim().split(",");
  219.                 // Only (try) to parse lines that have the proper number of arguments
  220.                 if (split.length>=4){
  221.                     var trainerClass=split[0];
  222.                     var name=split[1];
  223.                     var battleID=split[2];
  224.                     var teamMembers=Number(split[3]);
  225.                     // Read the trainer class and append to the outString
  226.                     outString=outString+"# ---------------\r\n";
  227.                     outString=outString+trainerClass.toUpperCase()+"\r\n";
  228.                     outString=outString+name+","+battleID+"\r\n";
  229.                     outString=outString+teamMembers+"\r\n";
  230.                     // Choose a random element from the array that goes with the trainer class
  231.                     var array=get(trainerClass);
  232.                     for (var j=0; j<teamMembers; j++){
  233.                         outString=outString+array[Math.floor(Math.random()*array.length)].toUpperCase()+",1\r\n";
  234.                     }
  235.                     fs.writeFile(process.argv[3], outString);
  236.                 }
  237.             }
  238.         });
  239.     }
  240. }
  241.  
  242. function get(name){
  243.     // There has got to be a better way to do this.
  244.     var n=name.toLowerCase();
  245.     if (n==="blackbelt")
  246.         return blackBelt;
  247.     if (n==="crushgirl")
  248.         return crushGirl;
  249.     if (n==="camper")
  250.         return camper;
  251.     if (n==="picnicker")
  252.         return picnicker;
  253.     if (n==="acetrainer_m")
  254.         return acetrainer_m;
  255.     if (n==="acetrainer_f")
  256.         return acetrainer_f;
  257.     if (n==="youngster")
  258.         return youngster;
  259.     if (n==="lass")
  260.         return lass;
  261.     if (n==="pokemonranger_m")
  262.         return pokemonranger_m;
  263.     if (n==="pokemonranger_f")
  264.         return pokemonranger_f;
  265.     if (n==="psychic_m")
  266.         return psychic_m;
  267.     if (n==="psychic_f")
  268.         return psychic_f;
  269.     if (n==="aromalady")
  270.         return aromaLady;
  271.     if (n==="beauty")
  272.         return beauty;
  273.     if (n==="biker")
  274.         return biker;
  275.     if (n==="birdkeeper")
  276.         return birdkeeper;
  277.     if (n==="bugcatcher")
  278.         return bugCatcher;
  279.     if (n==="burglar")
  280.         return burglar;
  281.     if (n==="chaneller")
  282.         return chaneller;
  283.     if (n==="cueball")
  284.         return cueball;
  285.     if (n==="engineer")
  286.         return engineer;
  287.     if (n==="fisherman")
  288.         return fisherman;
  289.     if (n==="gambler")
  290.         return gambler;
  291.     if (n==="gentleman")
  292.         return gentleman;
  293.     if (n==="hiker")
  294.         return hiker;
  295.     if (n==="juggler")
  296.         return juggler;
  297.     if (n==="lady")
  298.         return lady;
  299.     if (n==="painter")
  300.         return painter;
  301.     if (n==="pokemaniac")
  302.         return pokemaniac;
  303.     if (n==="aquaboss")
  304.         return teamaquaBoss;
  305.     if (n=="aquaadmin_m")
  306.         return teamaquaAdmin_M;
  307.     if (n=="aquaadmin_f")
  308.         return teamaquaAdmin_F;
  309.     if (n==="teamaqua_f")
  310.         return teamaqua_f;
  311.     if (n==="teamaqua_m")
  312.         return teamaqua_m;
  313.     if (n==="tuber2_f")
  314.         return tuber2_f;
  315.     if (n==="tuber2_m")
  316.         return tuber2_m;
  317.     if (n==="tuber_f")
  318.         return tuber_f;
  319.     if (n==="tuber_m")
  320.         return tuber_m;
  321.     if (n==="swimmer2_f")
  322.         return swimmer2_f;
  323.     if (n==="swimmer2_m")
  324.         return swimmer2_m;
  325.     if (n==="swimmer_f")
  326.         return swimmer_f;
  327.     if (n==="swimmer_m")
  328.         return swimmer_m;
  329.     if (n==="tamer")
  330.         return tamer;
  331.     if (n==="supernerd")
  332.         return supernerd;
  333.     if (n==="scientist")
  334.         return scientist;
  335.     if (n==="sailor")
  336.         return sailor;
  337.     if (n==="ruinmaniac")
  338.         return ruinManiac;
  339.     if (n==="rocket")
  340.         return rocket;
  341.     if (n==="professor")
  342.         return professor;
  343.     if (n==="pokemonbreeder")
  344.         return pokemonbreeder;
  345.     if (n=="nurse")
  346.         return nurse;
  347.     console.log("Not found: "+name);
  348.     return generic; // return generic
  349. }
  350.  
  351. go();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement