Dimenticare icon

Random Pokémon Teams

Dimenticare | PRO | 08/08/17 03:53:50 PM UTC | 0 ⭐ | 1425 👁️ | Never ⏰ | []
JavaScript |

8.96 KB

|

None

|

0 👍

/

0 👎

// 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