// For those of you who just found this by scrolling through Pastebin,
// this is for Pokémon Essentials. And I guess if you can find other uses
// for this code that's cool too.
"use strict";
const fs=require("fs");
// Choose your available Pokémon and put them in an array.
// I'd suggest making a few of them as templates for default Trainers,
// noob Trainers and strong Trainers.
var generic=[
"Absol", "Arcanine", "Milotic", "Ampharos", "Gastrodon", "Jellicent",
"Seismitoad", "Lapras", "Poliwrath", "Politoed", "Castform", "Tentacruel", "Ludicolo",
"Galvantula", "Shuckle", "Stunfisk", "Crawdaunt", "Lanturn",
"Gyarados", "Manectric", "Raticate", "Clefable", "Parasect", "Dragonite",
"Tyranitar", "Aggron", "Ninjask", "Shedinja", "Dustox", "Beautifly", "Sawsbuck",
"Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Glaceon", "Leafeon",
"Altaria", "Quagsire", "Swellow", "Gardevoir", "Gallade", "Scrafty",
"Hitmonlee", "Hitmonchan", "Hitmontop"
]
var genericSuper=[
"Absol", "Arcanine", "Milotic", "Ampharos", "Gastrodon", "Jellicent",
"Seismitoad", "Lapras", "Poliwrath", "Politoed", "Castform", "Tentacruel", "Ludicolo",
"Galvantula", "Shuckle", "Stunfisk", "Crawdaunt", "Lanturn",
"Gyarados", "Manectric", "Raticate", "Clefairy", "Parasect", "Dragonite",
"Tyranitar", "Aggron", "Ninjask", "Dustox", "Beautifly", "Sawsbuck",
"Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Glaceon", "Leafeon",
"Altaria", "Quagsire", "Swellow", "Gardevoir", "Gallade", "Scrafty",
"Hitmonlee", "Hitmonchan", "Hitmontop"
]
var genericGimped=[
"Gastrodon", "Jellicent",
"Seismitoad", "Tentacruel", "Ludicolo",
"Galvantula", "Shuckle", "Stunfisk", "Crawdaunt", "Lanturn",
"Raticate", "Clefairy", "Parasect",
"Ninjask", "Dustox", "Beautifly", "Sawsbuck",
"Altaria", "Quagsire", "Swellow", "Scrafty"
]
// Make arrays for all of the trainer classes.
var blackBelt=[
"Scrafty", "Gallade", "Hitmonlee", "Hitmonchan", "Hitmontop"
]
var crushGirl=blackBelt;
var camper=[
"Sawsbuck", "Castform", "Seismitoad", "Poliwrath", "Politoed", "Ludicolo", "Galvantula",
"Stunfisk", "Crawdaunt", "Ninjask", "Shedinja", "Swellow", "Scyther", "Scizor"
]
// If you copy any of the arrays you should probably call .splice() on it first.
var picnicker=camper.splice();
var youngster=camper.slice();
youngster.push("Raticate");
youngster.push("Raticate");
youngster.push("Raticate");
var acetrainer_m=genericSuper.splice();
var acetrainer_f=genericSuper.splice();
var lass=camper.splice();
var pokemonranger_m=camper.splice();
var pokemonranger_f=camper.splice();
var psychic_m=[
"Gardevoir", "Gallade", "Jellicent", "Gengar"
]
var psychic_f=psychic_m.splice();
var aromaLady=[
"Ludicolo", "Sawsbuck", "Castform",
]
var beauty=[
"Clefairy", "Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Glaceon", "Leafeon", "Sawsbuck"
]
var biker=[
"absol", "Arcanine", "Stunfisk", "Crawdaunt", "Tyranitar", "Aggron", "Scrafty"
]
var birdkeeper=[
"Swellow"
]
var bugCatcher=[
"Ninjask", "Shedinja", "Dustox", "Beautifly", "Galvantula", "Scyther", "Scizor"
]
var burglar=genericGimped.splice();
var chaneller=psychic_m.splice();
var cueball=biker.splice();
var engineer=[
"Ampharos", "Galvantula", "Manectric", "Scizor"
]
var fisherman=[
"Milotic", "Jellicent", "Lapras", "Poliwrath", "Politoed", "Tentacruel",
"Crawdaunt", "Lanturn", "Gyarados", "Magikarp", "Gyarados"
]
var gambler=genericGimped.splice();
var gentleman=[
"Gastrodon", "Jellicent",
"Seismitoad", "Tentacruel", "Ludicolo",
"Lanturn",
"Clefairy",
"Sawsbuck",
"Altaria", "Quagsire", "Swellow"
]
var hiker=[
"Arcanine", "shuckle", "Tyranitar", "aggron", "Scizor"
]
var juggler=genericGimped.splice();
var lady=gentleman.slice();
// Gentlemen get extra Arcanine, because of course they do
for (var i=0; i<5; i++){
gentleman.push("Arcanine");
}
var painter=[
"no"
]
var nurse=[
"Clefairy", "Clefable", "Eevee"
]
var pokemaniac=generic.splice();
var pokemonbreeder=genericGimped.splice();
var professor=genericSuper.splice();
var rocket=generic.splice();
var ruinManiac=hiker.splice();
var sailor=fisherman.splice();
var scientist=engineer.splice();
var supernerd=pokemaniac.splice();
var tamer=pokemaniac.slice();
for (var i=0; i<5; i++){
tamer.push("Arcanine");
}
var swimmer_m=fisherman.splice();
var swimmer_f=fisherman.splice();
var swimmer2_m=fisherman.splice();
var swimmer2_f=fisherman.splice();
var tuber_m=[
"Feebas", "Frillish", "Poliwag", "Tentacool",
"Corphish", "Chinchou", "Magikarp", "Magikarp"
]
var tuber_f=tuber_m.splice();
var tuber2_m=tuber_m.splice();
var tuber2_f=tuber_m.splice();
var teamaqua_m=fisherman.slice();
teamaqua_m.push("hydreigon");
var teamaqua_f=teamaqua_m.splice();
var teamaquaBoss=teamaqua_m.splice();
var teamaquaAdmin_M=teamaqua_m.splice();
var teamaquaAdmin_F=teamaqua_f.splice();
/*
* Call via the command line like:
* node random_teams.js input.txt output.txt
* where input.txt is formatted something like:
* ACETRAINER_M,Bob,0,4
* The arguments go like:
* 1. Trainer class
* 2. Trainer name
* 3. Battle ID
* 4. Number of Pokémon the trainer has
*
* Note that all levels are set to "1" until you manually change them.
* I may or may not do something about this in an update.
*/
function go(){
if (process.argv.length<4){
console.log("Needs two command line arguments, sorry.");
console.log("One input file and one output file.");
} else {
var lines;
// Read the input file
fs.readFile(process.argv[2], function(err, data){
if(err){
throw err;
}
lines=data.toString().split('\n');
var outString="";
for (var i=0; i<lines.length; i++){
var split=lines[i].replace("\r", "").trim().split(",");
// Only (try) to parse lines that have the proper number of arguments
if (split.length>=4){
var trainerClass=split[0];
var name=split[1];
var battleID=split[2];
var teamMembers=Number(split[3]);
// Read the trainer class and append to the outString
outString=outString+"# ---------------\r\n";
outString=outString+trainerClass.toUpperCase()+"\r\n";
outString=outString+name+","+battleID+"\r\n";
outString=outString+teamMembers+"\r\n";
// Choose a random element from the array that goes with the trainer class
var array=get(trainerClass);
for (var j=0; j<teamMembers; j++){
outString=outString+array[Math.floor(Math.random()*array.length)].toUpperCase()+",1\r\n";
}
fs.writeFile(process.argv[3], outString);
}
}
});
}
}
function get(name){
// There has got to be a better way to do this.
var n=name.toLowerCase();
if (n==="blackbelt")
return blackBelt;
if (n==="crushgirl")
return crushGirl;
if (n==="camper")
return camper;
if (n==="picnicker")
return picnicker;
if (n==="acetrainer_m")
return acetrainer_m;
if (n==="acetrainer_f")
return acetrainer_f;
if (n==="youngster")
return youngster;
if (n==="lass")
return lass;
if (n==="pokemonranger_m")
return pokemonranger_m;
if (n==="pokemonranger_f")
return pokemonranger_f;
if (n==="psychic_m")
return psychic_m;
if (n==="psychic_f")
return psychic_f;
if (n==="aromalady")
return aromaLady;
if (n==="beauty")
return beauty;
if (n==="biker")
return biker;
if (n==="birdkeeper")
return birdkeeper;
if (n==="bugcatcher")
return bugCatcher;
if (n==="burglar")
return burglar;
if (n==="chaneller")
return chaneller;
if (n==="cueball")
return cueball;
if (n==="engineer")
return engineer;
if (n==="fisherman")
return fisherman;
if (n==="gambler")
return gambler;
if (n==="gentleman")
return gentleman;
if (n==="hiker")
return hiker;
if (n==="juggler")
return juggler;
if (n==="lady")
return lady;
if (n==="painter")
return painter;
if (n==="pokemaniac")
return pokemaniac;
if (n==="aquaboss")
return teamaquaBoss;
if (n=="aquaadmin_m")
return teamaquaAdmin_M;
if (n=="aquaadmin_f")
return teamaquaAdmin_F;
if (n==="teamaqua_f")
return teamaqua_f;
if (n==="teamaqua_m")
return teamaqua_m;
if (n==="tuber2_f")
return tuber2_f;
if (n==="tuber2_m")
return tuber2_m;
if (n==="tuber_f")
return tuber_f;
if (n==="tuber_m")
return tuber_m;
if (n==="swimmer2_f")
return swimmer2_f;
if (n==="swimmer2_m")
return swimmer2_m;
if (n==="swimmer_f")
return swimmer_f;
if (n==="swimmer_m")
return swimmer_m;
if (n==="tamer")
return tamer;
if (n==="supernerd")
return supernerd;
if (n==="scientist")
return scientist;
if (n==="sailor")
return sailor;
if (n==="ruinmaniac")
return ruinManiac;
if (n==="rocket")
return rocket;
if (n==="professor")
return professor;
if (n==="pokemonbreeder")
return pokemonbreeder;
if (n=="nurse")
return nurse;
console.log("Not found: "+name);
return generic; // return generic
}
go();
Comments