Skip to content

Instantly share code, notes, and snippets.

@scheibo
Created July 9, 2024 21:18
Show Gist options
  • Save scheibo/7d56004c9266bd9903d48c0d3ff20b6d to your computer and use it in GitHub Desktop.
Save scheibo/7d56004c9266bd9903d48c0d3ff20b6d to your computer and use it in GitHub Desktop.
const fs = require('fs');
const spreads = {};
const IV = 30;
const POWER = 70;
const HP = {
Bug: {ivs: {atk: 30, def: 30, spd: 30}, dvs: {atk: 13, def: 13}},
Dark: {ivs: {}, dvs: {}},
Dragon: {ivs: {atk: 30}, dvs: {def: 14}},
Electric: {ivs: {spa: 30}, dvs: {atk: 14}},
Fighting: {ivs: {def: 30, spa: 30, spd: 30, spe: 30}, dvs: {atk: 12, def: 12}},
Fire: {ivs: {atk: 30, spa: 30, spe: 30}, dvs: {atk: 14, def: 12}},
Flying: {ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30}, dvs: {atk: 12, def: 13}},
Ghost: {ivs: {def: 30, spd: 30}, dvs: {atk: 13, def: 14}},
Grass: {ivs: {atk: 30, spa: 30}, dvs: {atk: 14, def: 14}},
Ground: {ivs: {spa: 30, spd: 30}, dvs: {atk: 12}},
Ice: {ivs: {atk: 30, def: 30}, dvs: {def: 13}},
Poison: {ivs: {def: 30, spa: 30, spd: 30}, dvs: {atk: 12, def: 14}},
Psychic: {ivs: {atk: 30, spe: 30}, dvs: {def: 12}},
Rock: {ivs: {def: 30, spd: 30, spe: 30}, dvs: {atk: 13, def: 12}},
Steel: {ivs: {spd: 30}, dvs: {atk: 13}},
Water: {ivs: {atk: 30, def: 30, spa: 30}, dvs: {atk: 14, def: 13}},
};
const types = [
'Fighting', 'Flying', 'Poison', 'Ground', 'Rock', 'Bug', 'Ghost', 'Steel',
'Fire', 'Water', 'Grass', 'Electric', 'Psychic', 'Ice', 'Dragon', 'Dark',
];
const USAGE = {
"Sassy:252/0/76/0/180/0": 0.0679,
"Bold:252/0/224/0/0/32": 0.0636,
"Timid:4/0/0/252/0/252": 0.052,
"Brave:240/248/0/20/0/0": 0.0443,
"Timid:0/0/4/252/0/252": 0.0408,
"Modest:252/0/40/80/0/136": 0.0362,
"Rash:252/0/0/224/0/32": 0.0341,
"Timid:252/0/0/80/0/176": 0.0289,
"Modest:252/0/0/80/0/176": 0.0272,
"Modest:224/0/0/252/0/32": 0.0226,
"Modest:252/0/40/152/0/64": 0.0195,
"Timid:252/0/0/4/0/252": 0.0165,
"Bold:252/0/220/0/0/36": 0.0156,
"Sassy:248/44/68/0/100/48": 0.014,
"Modest:248/0/40/152/0/68": 0.0135,
"Mild:0/136/0/236/0/136": 0.0122,
"Timid:80/0/0/252/0/176": 0.0119,
"Mild:64/86/0/194/0/164": 0.0115,
"Timid:44/0/0/212/0/252": 0.0112,
"Modest:252/0/40/76/0/140": 0.011,
"Modest:248/0/40/180/0/40": 0.0107,
"Lonely:0/120/0/136/52/200": 0.0105,
"Sassy:248/44/68/0/148/0": 0.0097,
"Sassy:244/0/148/0/116/0": 0.0095,
"Timid:0/0/0/252/4/252": 0.0089,
"Timid:252/0/40/40/0/176": 0.0084,
"Modest:240/0/0/236/0/32": 0.0077,
"Hasty:0/104/0/252/0/152": 0.0076,
"Relaxed:252/16/240/0/0/0": 0.0075,
"Bold:252/0/252/0/0/4": 0.0072,
"Calm:252/0/76/0/148/32": 0.0065,
"Timid:252/0/0/108/0/148": 0.0065,
"Sassy:252/0/120/0/136/0": 0.0063,
"Calm:240/0/84/0/152/32": 0.0061,
"Rash:0/80/0/252/0/176": 0.0061,
"Bold:248/0/148/88/0/24": 0.006,
"Bold:248/0/220/0/0/40": 0.0059,
"Bold:248/0/216/0/28/16": 0.0057,
"Calm:252/0/76/0/180/0": 0.0055,
"Sassy:248/0/80/0/180/0": 0.0054,
"Sassy:252/0/116/0/140/0": 0.0053,
"Adamant:104/252/0/0/0/152": 0.0052,
"Calm:252/0/40/0/152/64": 0.0051,
"Bold:240/0/236/0/0/32": 0.005,
"Sassy:252/0/76/0/176/4": 0.0048,
"Bold:252/0/136/0/120/0": 0.0048,
"Timid:252/0/0/76/0/180": 0.0047,
"Timid:76/0/0/252/0/180": 0.0046,
"Bold:252/0/72/96/0/88": 0.0045,
"Timid:252/0/4/0/0/252": 0.004,
"Calm:248/0/84/0/176/0": 0.0039,
"Adamant:116/252/0/0/0/140": 0.0038,
"Quiet:244/40/0/224/0/0": 0.0037,
"Hasty:0/64/0/192/0/252": 0.0037,
"Bold:248/0/224/0/0/36": 0.0035,
"Modest:0/0/4/252/0/252": 0.0035,
"Modest:252/0/40/40/0/176": 0.0034,
"Modest:252/0/0/120/0/136": 0.0033,
"Sassy:252/0/124/0/132/0": 0.0033,
"Naive:0/104/0/252/0/152": 0.0032,
"Sassy:248/0/76/0/176/8": 0.0031,
"Bold:252/0/172/0/52/32": 0.0031,
"Bold:248/0/228/0/0/32": 0.0031,
"Modest:80/0/0/252/0/176": 0.003,
"Calm:248/0/92/0/148/20": 0.0029,
"Modest:252/0/0/96/0/160": 0.0029,
"Modest:108/0/0/224/0/176": 0.0027,
"Rash:112/0/32/188/0/176": 0.0025,
"Modest:252/0/8/136/0/112": 0.0025,
"Bold:252/0/252/0/4/0": 0.0025,
"Modest:248/0/0/192/0/68": 0.0025,
"Relaxed:252/0/252/0/4/0": 0.0024,
"Bold:248/0/184/24/32/20": 0.0024,
"Bold:248/0/184/8/48/20": 0.0024,
"Sassy:252/0/40/0/216/0": 0.0024,
"Bold:248/0/176/0/64/20": 0.0024,
"Calm:248/0/84/0/136/40": 0.0024,
"Bold:248/0/176/48/0/32": 0.0023,
"Modest:252/0/0/224/0/32": 0.0022,
"Sassy:252/40/68/0/148/0": 0.0021,
"Modest:252/0/40/64/0/152": 0.0021,
"Calm:248/0/76/0/176/8": 0.002,
"Lonely:0/208/0/148/0/152": 0.002,
"Modest:252/0/40/180/0/36": 0.002,
"Adamant:0/252/0/0/4/252": 0.0019,
"Calm:252/0/0/0/224/32": 0.0018,
"Bold:252/0/216/0/8/32": 0.0018,
"Rash:112/0/0/220/0/176": 0.0018,
"Calm:252/0/0/0/220/36": 0.0018,
"Calm:248/0/76/0/148/36": 0.0018,
"Timid:252/0/36/144/0/76": 0.0017,
"Sassy:252/36/76/0/144/0": 0.0017,
"Sassy:248/0/68/0/148/44": 0.0017,
"Modest:252/0/0/0/0/176": 0.0017,
"Mild:0/120/0/252/0/136": 0.0017,
"Bold:252/0/252/4/0/0": 0.0016,
"Timid:252/0/40/140/0/76": 0.0016,
"Calm:252/0/88/0/136/32": 0.0015,
"Calm:252/0/40/0/216/0": 0.0015,
"Adamant:196/252/0/0/0/60": 0.0015,
"Bold:252/0/236/0/0/20": 0.0015,
"Bold:252/0/248/0/0/8": 0.0014,
"Timid:252/0/36/32/0/188": 0.0014,
"Modest:0/0/0/252/4/252": 0.0014,
"Relaxed:252/0/176/0/80/0": 0.0014,
"Quiet:252/32/36/188/0/0": 0.0013,
"Modest:96/0/140/224/0/48": 0.0013,
"Bold:252/0/4/0/252/0": 0.0013,
"Timid:252/0/0/172/0/84": 0.0013,
"Modest:252/0/64/152/0/40": 0.0012,
"Modest:252/0/36/40/0/180": 0.0012,
"Calm:248/0/76/0/164/20": 0.0012,
"Modest:252/0/40/140/0/76": 0.0012,
"Mild:0/84/0/240/0/184": 0.0012,
"Modest:252/0/0/216/0/40": 0.0012,
"Bold:252/0/164/76/4/12": 0.0012,
"Mild:0/84/0/224/0/200": 0.0011,
"Modest:252/0/0/72/0/184": 0.0011,
"Adamant:0/252/0/0/12/244": 0.0011,
"Modest:252/0/32/48/0/176": 0.0011,
"Modest:252/0/36/80/0/140": 0.0011,
"Sassy:252/0/80/0/176/0": 0.0011,
"Sassy:252/0/44/0/212/0": 0.0011,
"Calm:252/0/0/0/252/4": 0.001,
"Calm:252/0/108/0/136/12": 0.001,
"Modest:252/0/0/104/0/152": 0.001,
"Modest:116/20/172/152/8/40": 0.001,
"Calm:252/0/108/0/132/16": 0.001,
"Modest:252/0/0/4/0/252": 0.001,
"Timid:0/0/0/252/0/252": 0.001,
"Bold:240/0/20/208/0/40": 0.001,
"Timid:252/0/36/40/0/180": 0.001,
"Quiet:116/124/32/228/0/8": 0.001,
"Calm:252/0/88/32/136/0": 0.001,
"Calm:248/0/48/56/136/20": 0.001,
"Timid:128/0/0/204/0/176": 0.0009,
"Modest:252/0/44/136/12/64": 0.0009,
"Modest:176/0/24/252/20/36": 0.0009,
"Modest:252/0/36/180/0/40": 0.0009,
"Mild:112/40/0/180/0/176": 0.0009,
"Modest:252/0/0/112/0/144": 0.0009,
"Modest:12/0/108/212/0/176": 0.0009,
"Modest:120/0/0/252/0/136": 0.0009,
"Bold:252/0/216/4/0/36": 0.0009,
"Lonely:252/252/0/4/0/0": 0.0008,
"Modest:100/0/0/252/0/156": 0.0008,
"Sassy:252/16/56/0/184/0": 0.0008,
"Sassy:252/0/36/0/220/0": 0.0008,
"Modest:60/0/0/252/0/196": 0.0008,
"Rash:0/68/0/252/0/188": 0.0008,
"Calm:252/0/128/0/96/32": 0.0008,
"Mild:224/0/0/252/0/32": 0.0008,
"Modest:252/0/0/100/0/156": 0.0008,
"Calm:252/0/104/0/96/56": 0.0007,
"Rash:0/76/0/252/0/180": 0.0007,
"Timid:44/0/200/84/0/180": 0.0007,
"Modest:212/0/0/252/0/44": 0.0007,
"Calm:252/0/76/0/144/36": 0.0007,
"Modest:112/0/4/252/0/140": 0.0007,
"Modest:252/0/36/84/0/136": 0.0007,
"Modest:252/0/0/180/0/76": 0.0007,
"Sassy:252/0/72/20/164/0": 0.0007,
"Calm:252/0/96/0/160/0": 0.0007,
"Modest:60/0/92/180/0/176": 0.0007,
"Sassy:252/4/76/0/176/0": 0.0007,
"Rash:248/0/0/224/0/36": 0.0007,
"Sassy:252/32/88/0/136/0": 0.0007,
"Modest:252/0/40/96/56/64": 0.0007,
"Adamant:100/252/0/0/0/158": 0.0006,
"Timid:248/0/76/36/0/148": 0.0006,
"Naive:0/172/0/180/0/156": 0.0006,
"Hasty:0/4/0/252/0/252": 0.0006,
"Modest:16/0/200/116/0/176": 0.0006,
"Bold:248/0/84/68/0/108": 0.0006,
"Rash:200/52/112/104/0/40": 0.0006,
"Bold:248/0/216/0/0/44": 0.0006,
"Sassy:252/36/68/0/152/0": 0.0006,
"Mild:0/116/0/252/0/140": 0.0006,
"Lonely:0/252/0/116/0/140": 0.0006,
"Bold:240/0/228/0/8/32": 0.0006,
"Calm:240/0/0/0/228/40": 0.0006,
"Modest:252/0/40/136/16/64": 0.0006,
"Bold:252/0/136/88/0/32": 0.0005,
"Modest:252/0/0/184/0/72": 0.0005,
"Bold:248/0/136/88/0/36": 0.0005,
"Calm:248/0/68/8/148/36": 0.0005,
"Modest:252/0/0/252/0/4": 0.0005,
"Rash:80/0/0/252/0/176": 0.0005,
"Gentle:252/0/0/0/224/32": 0.0005,
"Sassy:248/0/84/0/176/0": 0.0005,
"Naive:0/76/0/252/0/180": 0.0005,
"Modest:252/0/76/44/0/136": 0.0005,
"Modest:252/0/0/136/0/120": 0.0005,
"Bold:252/0/100/156/0/0": 0.0005,
"Bold:252/0/240/0/0/16": 0.0005,
"Modest:252/0/8/152/40/56": 0.0005,
"Bold:248/0/200/40/0/20": 0.0005,
"Bold:252/0/216/0/0/40": 0.0005,
"Bold:252/0/200/0/24/32": 0.0005,
"Adamant:252/76/40/0/0/140": 0.0005,
"Modest:252/0/0/60/0/198": 0.0005,
"Naughty:0/120/0/188/0/200": 0.0005,
"Rash:248/80/0/140/0/40": 0.0005,
"Mild:0/76/0/252/0/180": 0.0005,
"Bold:240/0/188/0/44/36": 0.0005,
"Modest:252/0/40/148/0/68": 0.0005,
"Hasty:0/136/0/220/0/152": 0.0005,
"Bold:252/0/148/0/52/56": 0.0005,
"Modest:252/0/0/148/0/108": 0.0004,
"Sassy:252/80/56/0/120/0": 0.0004,
"Bold:252/0/108/0/92/56": 0.0004,
"Naive:0/104/0/224/0/180": 0.0004,
"Modest:248/0/40/176/0/44": 0.0004,
"Calm:252/0/120/0/124/12": 0.0004,
"Modest:252/0/72/8/0/176": 0.0004,
"Bold:252/0/188/0/68/0": 0.0004,
"Sassy:252/0/72/0/180/4": 0.0004,
"Jolly:0/252/0/0/4/252": 0.0004,
"Rash:40/0/108/216/0/144": 0.0004,
"Timid:176/0/80/68/0/184": 0.0004,
"Quiet:252/0/0/252/0/4": 0.0004,
"Naughty:0/252/0/76/0/180": 0.0004,
"Modest:252/0/40/108/0/108": 0.0004,
"Calm:252/0/0/0/240/16": 0.0004,
"Bold:252/0/204/0/16/36": 0.0004,
"Sassy:248/0/92/0/168/0": 0.0004,
"Naughty:0/252/0/116/0/140": 0.0004,
"Timid:104/0/4/248/4/148": 0.0004,
"Bold:240/0/216/0/0/0": 0.0004,
"Sassy:252/0/4/0/252/0": 0.0004,
"Sassy:252/0/12/56/188/0": 0.0004,
"Bold:248/0/180/44/0/36": 0.0004,
"Bold:176/0/216/0/0/116": 0.0003,
"Modest:80/0/0/248/0/180": 0.0003,
"Modest:44/0/4/252/12/196": 0.0003,
"Modest:252/0/0/200/0/56": 0.0003,
"Careful:252/0/128/0/96/32": 0.0003,
"Modest:252/0/48/152/0/56": 0.0003,
"Bold:252/0/92/132/0/32": 0.0003,
"Modest:252/0/52/28/0/176": 0.0003,
"Calm:252/0/0/8/72/176": 0.0003,
"Modest:252/0/0/188/0/68": 0.0003,
"Bold:240/0/248/0/0/20": 0.0003,
"Hardy:252/0/252/0/4/0": 0.0003,
"Sassy:248/0/76/0/184/0": 0.0003,
"Modest:12/0/96/224/0/176": 0.0003,
"Sassy:252/8/72/0/176/0": 0.0003,
"Relaxed:252/32/224/0/0/0": 0.0003,
"Modest:252/0/128/96/0/32": 0.0003,
"Modest:44/0/0/220/0/244": 0.0003,
"Modest:208/0/76/84/0/140": 0.0003,
"Timid:0/0/148/108/0/252": 0.0003,
"Sassy:240/56/76/0/136/0": 0.0003,
"Bold:248/0/88/64/0/108": 0.0003,
"Hardy:252/0/80/104/32/40": 0.0003,
"Mild:0/100/0/252/16/140": 0.0003,
"Bold:252/0/160/0/96/0": 0.0003,
"Calm:252/0/88/0/152/16": 0.0003,
"Sassy:240/0/44/0/176/48": 0.0003,
"Mild:20/0/0/236/0/252": 0.0003,
"Sassy:248/32/0/0/228/0": 0.0003,
"Bold:252/0/176/0/80/0": 0.0003,
"Careful:252/0/76/0/180/0": 0.0003,
"Calm:252/0/80/0/140/36": 0.0003,
"Modest:252/0/12/188/0/56": 0.0003,
"Modest:240/0/40/92/0/136": 0.0002,
"Timid:240/0/0/172/0/96": 0.0002,
"Rash:100/0/44/220/0/144": 0.0002,
"Bold:240/0/232/0/0/36": 0.0002,
"Sassy:248/0/8/0/252/0": 0.0002,
"Relaxed:248/0/136/56/24/44": 0.0002,
"Modest:240/0/0/252/0/16": 0.0002,
"Bold:252/0/220/0/4/32": 0.0002,
"Modest:240/0/0/124/0/144": 0.0002,
"Bold:248/0/232/8/0/20": 0.0002,
"Relaxed:252/0/180/0/76/0": 0.0002,
"Bold:252/0/60/0/0/196": 0.0002,
"Timid:248/0/0/8/0/252": 0.0002,
"Timid:252/0/76/0/0/180": 0.0002,
"Bold:252/0/204/16/0/36": 0.0002,
"Modest:252/0/4/252/0/0": 0.0002,
"Bold:240/0/216/32/0/20": 0.0002,
"Modest:252/0/80/140/0/36": 0.0002,
"Calm:248/0/0/0/224/36": 0.0002,
"Modest:112/0/0/252/0/144": 0.0002,
"Modest:252/0/0/116/0/140": 0.0002,
"Sassy:248/0/128/0/132/0": 0.0002,
"Modest:252/0/72/84/0/100": 0.0002,
"Modest:252/0/8/140/0/108": 0.0002,
"Timid:252/0/40/80/0/136": 0.0002,
"Hasty:0/80/0/244/0/184": 0.0002,
"Gentle:252/32/0/0/224/0": 0.0002,
"Rash:100/0/44/228/0/136": 0.0002,
"Timid:0/0/0/168/88/252": 0.0002,
"Calm:252/0/60/0/164/32": 0.0002,
"Bold:252/0/76/0/182/0": 0.0002,
"Bold:248/0/184/44/0/32": 0.0002,
"Relaxed:252/12/244/0/0/0": 0.0002,
"Modest:248/0/48/148/0/64": 0.0002,
"Relaxed:252/0/76/0/180/0": 0.0002,
"Timid:252/0/40/120/0/96": 0.0002,
"Timid:252/0/40/68/0/148": 0.0002,
"Bold:252/0/192/0/0/64": 0.0002,
"Modest:252/0/104/108/8/36": 0.0002,
"Adamant:0/252/0/0/80/176": 0.0002,
"Naughty:0/252/0/80/0/176": 0.0002,
"Modest:252/0/48/150/0/58": 0.0002,
"Calm:248/0/68/0/144/48": 0.0002,
"Sassy:252/80/64/0/112/0": 0.0002,
"Timid:56/0/56/252/0/144": 0.0002,
"Quiet:112/120/72/152/4/48": 0.0002,
"Modest:252/0/0/192/0/64": 0.0002,
"Brave:40/184/112/172/0/0": 0.0002,
"Modest:252/0/44/148/0/64": 0.0002,
"Modest:0/0/184/156/168/0": 0.0002,
"Modest:140/0/4/252/0/112": 0.0001,
"Calm:240/0/36/0/176/56": 0.0001,
"Quiet:116/124/32/236/0/0": 0.0001,
"Calm:240/0/0/104/124/40": 0.0001,
"Calm:252/0/88/0/132/36": 0.0001,
"Calm:252/0/4/0/252/0": 0.0001,
"Modest:248/0/40/110/0/110": 0.0001,
"Calm:252/0/92/0/140/24": 0.0001,
"Modest:252/0/68/148/0/40": 0.0001,
"Modest:252/0/36/152/0/68": 0.0001,
"Adamant:220/252/0/0/0/36": 0.0001,
"Bold:248/0/148/80/0/32": 0.0001,
"Timid:252/0/40/64/0/152": 0.0001,
"Modest:0/0/0/252/224/32": 0.0001,
"Calm:252/0/60/44/120/32": 0.0001,
"Bold:252/0/180/0/76/0": 0.0001,
"Modest:252/0/28/76/0/152": 0.0001,
"Bold:252/0/108/0/84/64": 0.0001,
"Modest:4/0/0/252/0/252": 0.0001,
"Timid:252/0/0/160/0/96": 0.0001,
"Timid:252/0/68/112/0/76": 0.0001,
"Sassy:248/0/76/0/182/0": 0.0001,
"Timid:104/0/0/252/0/152": 0.0001,
"Modest:252/0/0/252/4/0": 0.0001,
"Bold:0/0/4/0/252/252": 0.0001,
"Bold:252/0/136/80/0/40": 0.0001,
"Sassy:252/0/96/0/160/0": 0.0001,
"Calm:252/0/120/0/136/0": 0.0001,
"Rash:76/0/0/252/0/180": 0.0001,
"Adamant:0/252/76/0/0/180": 0.0001,
"Modest:248/0/40/156/0/64": 0.0001,
"Bold:252/0/144/0/112/0": 0.0001,
"Adamant:252/216/0/0/20/16": 0.0001,
"Timid:116/0/112/128/0/152": 0.0001,
"Rash:0/136/0/236/0/136": 0.0001,
"Sassy:248/0/68/0/192/0": 0.0001,
"Timid:252/0/0/164/0/92": 0.0001,
"Calm:248/0/88/0/136/36": 0.0001,
"Modest:116/0/0/252/0/140": 0.0001,
"Bold:252/0/220/0/36/0": 0.0001,
"Calm:248/0/68/0/148/44": 0.0001,
"Calm:240/0/76/0/172/20": 0.0001,
"Modest:252/0/140/80/0/36": 0.0001,
"Modest:252/0/20/128/0/108": 0.0001,
"Bold:248/0/196/0/44/20": 0.0001,
"Modest:252/0/72/32/0/152": 0.0001,
"Impish:240/0/220/0/0/48": 0.0001,
"Mild:0/136/0/232/0/140": 0.0001,
"Timid:76/0/0/248/0/184": 0.0001,
"Relaxed:252/0/252/4/0/0": 0.0001,
"Quirky:252/84/0/64/0/108": 0.0001,
"Calm:252/0/100/0/152/4": 0.0001,
"Modest:252/0/72/148/0/36": 0.0001,
"Modest:252/0/60/152/0/44": 0.0001,
"Modest:252/0/176/80/0/0": 0.0001,
"Calm:240/0/24/56/148/40": 0.0001,
"Lonely:144/252/0/0/0/112": 0.0001,
"Calm:248/0/0/0/252/8": 0.0001,
"Timid:48/0/224/88/0/148": 0.0001,
"Calm:252/0/92/0/164/0": 0.0001,
"Sassy:248/44/68/0/144/4": 0.0001,
"Rash:20/0/120/216/0/152": 0.0001,
"Lonely:12/252/0/0/0/244": 0.0001,
"Bold:252/0/112/0/144/0": 0.0001,
"Modest:252/0/40/76/0/136": 0.0001,
"Bold:252/0/20/196/0/40": 0.0001,
"Timid:68/0/44/252/0/144": 0.0001,
"Modest:240/0/0/156/0/112": 0.0001,
"Timid:252/0/40/136/0/76": 0.0001,
"Calm:248/0/0/0/84/176": 0.0001,
"Bold:252/0/196/40/0/20": 0.0001,
"Calm:252/0/0/0/148/108": 0.0001,
"Timid:0/0/76/252/0/180": 0.0001,
"Careful:252/0/0/0/224/32": 0.0001,
"Bold:252/0/144/72/0/40": 0.0001,
"Calm:240/0/116/0/120/32": 0.0001,
"Jolly:72/252/0/0/0/184": 0.0001,
"Calm:248/0/76/0/184/0": 0.0001,
"Serious:252/0/136/104/16/0": 0.0001,
"Naive:0/104/0/216/0/188": 0.0001,
"Timid:72/0/0/252/0/184": 0.0001,
"Bold:244/0/148/0/116/0": 0.0001,
"Calm:248/0/68/0/160/32": 0.0001,
"Adamant:0/252/0/0/76/180": 0.0001,
"Bold:252/0/208/8/4/36": 0.0001,
"Jolly:4/252/0/0/0/252": 0.0001,
"Bold:240/0/184/52/0/32": 0.0001,
"Sassy:0/132/108/228/40/0": 0.0001,
"Relaxed:252/20/120/0/116/0": 0.0001,
"Bold:252/0/224/32/0/0": 0.0001,
"Lonely:224/252/0/0/0/32": 0.0001,
"Mild:0/60/0/196/0/252": 0.0001,
"Modest:0/0/164/156/136/52": 0.0001,
"Sassy:240/0/88/0/180/0": 0.0001,
"Timid:72/0/4/252/0/180": 0.0001,
"Bold:248/0/136/0/92/32": 0.0001,
"Timid:252/0/16/140/28/72": 0.0001,
"Naughty:0/112/4/252/0/140": 0.0001,
"Bold:240/0/56/76/96/40": 0.0001
};
const natures = {
"adamant": {"name": "Adamant", "plus": "atk", "minus": "spa"},
"bashful": {"name": "Bashful"},
"bold": {"name": "Bold", "plus": "def", "minus": "atk"},
"brave": {"name": "Brave", "plus": "atk", "minus": "spe"},
"calm": {"name": "Calm", "plus": "spd", "minus": "atk"},
"careful": {"name": "Careful", "plus": "spd", "minus": "spa"},
"docile": {"name": "Docile"},
"gentle": {"name": "Gentle", "plus": "spd", "minus": "def"},
"hardy": {"name": "Hardy"},
"hasty": {"name": "Hasty", "plus": "spe", "minus": "def"},
"impish": {"name": "Impish", "plus": "def", "minus": "spa"},
"jolly": {"name": "Jolly", "plus": "spe", "minus": "spa"},
"lax": {"name": "Lax", "plus": "def", "minus": "spd"},
"lonely": {"name": "Lonely", "plus": "atk", "minus": "def"},
"mild": {"name": "Mild", "plus": "spa", "minus": "def"},
"modest": {"name": "Modest", "plus": "spa", "minus": "atk"},
"naive": {"name": "Naive", "plus": "spe", "minus": "spd"},
"naughty": {"name": "Naughty", "plus": "atk", "minus": "spd"},
"quiet": {"name": "Quiet", "plus": "spa", "minus": "spe"},
"quirky": {"name": "Quirky"},
"rash": {"name": "Rash", "plus": "spa", "minus": "spd"},
"relaxed": {"name": "Relaxed", "plus": "def", "minus": "spe"},
"sassy": {"name": "Sassy", "plus": "spd", "minus": "spe"},
"serious": {"name": "Serious"},
"timid": {"name": "Timid", "plus": "spe", "minus": "atk"}
};
const neutral = ['Quirky', 'Hardy', 'Serious', 'Docile', 'Bashful'];
outer: for (const line of fs.readFileSync(process.argv[2], 'utf8').trim().split('\n')) {
const [nat, hp, atk, def, spa, spd, spe, type, power, rest] = line.trim().split(', ');
if (neutral.includes(nat)) continue;
const ivs = {hp, atk, def, spa, spd, spe};
for (const iv in ivs) {
// const nature = natures[nat.toLowerCase()];
// if (iv === 'spa' && nature.minus === 'spa') continue;
// if (iv === 'atk' && nature.minus === 'atk') {
// // if (+ivs[iv] > 5) continue outer;
// continue;
// }
// if (iv === 'spe' && nature.minus !== 'spe') {
// const min = HP[types[type]].ivs.spe || 31
// if (+ivs[iv] < min) continue outer;
// }
if (+ivs[iv] < IV) continue outer;
}
// if (+power < POWER) continue;
spreads[nat] = spreads[nat] || new Set();
spreads[nat].add(Object.values(ivs).join('/'));
// spreads[nat].add(+type);
}
const ns = {};
for (const spread in USAGE) {
const n = spread.split(':')[0];
ns[n] = (ns[n] || 0) + USAGE[spread];
}
for (const n in ns) {
if (ns[n] < 0.01) continue;
if (!spreads[n]) continue;
// console.log(`${n}: ${Array.from(spreads[n]).sort().map(t => types[t]).join(', ')}`);
console.log(`${n} (+${natures[n.toLowerCase()].plus},-${natures[n.toLowerCase()].minus}): ${Array.from(spreads[n])}`);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment