Advertisement
wartab

Drampa

Mar 7th, 2021
951
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let route = [
  2.     {type: "init", level: 7, curve: "Medium Fast", name: "Drampa", tradeExp: true},
  3.     {type: "kill", pokemon: "Skwovet", level: 6},
  4.     {type: "kill", pokemon: "Blipbug", level: 5},
  5.     {type: "kill", pokemon: "Nickit", level: 7},
  6.     {type: "kill", pokemon: "Wooloo", level: 6},
  7.     {type: "kill", pokemon: "Grookey", level: 8},
  8.     {type: "kill", pokemon: "Rookidee", level: 5},
  9.     {type: "kill", pokemon: "Zigzagoon", level: 9},
  10.     {type: "kill", pokemon: "Nickit", level: 9},
  11.     {type: "kill", pokemon: "Zigzagoon", level: 9},
  12.     {type: "kill", pokemon: "Nickit", level: 9},
  13.     {type: "kill", pokemon: "Wooloo", level: 11},
  14.     {type: "kill", pokemon: "Grookey", level: 14},
  15.     {type: "kill", pokemon: "Rookidee", level: 12},
  16.     {type: "kill", pokemon: "Sizzlipede", level: 13},
  17.     {type: "kill", pokemon: "Dottler", level: 14},
  18.     {type: "kill", pokemon: "Diglett", level: 14},
  19.     {type: "kill", pokemon: "Drilbur", level: 15},
  20.     {type: "kill", pokemon: "Solosis", level: 13},
  21.     {type: "kill", pokemon: "Gothita", level: 15},
  22.     {type: "kill", pokemon: "Hatenna", level: 16},
  23.     {type: "kill", pokemon: "Gossifleur", level: 16, expShare: false},
  24.     {type: "kill", pokemon: "Gossifleur", level: 19, expShare: false},
  25.     {type: "kill", pokemon: "Eldegoss", level: 20, expShare: false},
  26.     {type: "kill", pokemon: "Zigzagoon", level: 17},
  27.     {type: "kill", pokemon: "Thievul", level: 18},
  28.     {type: "kill", pokemon: "Sableye", level: 18},
  29.     {type: "kill", pokemon: "Wooloo", level: 18},
  30.     {type: "kill", pokemon: "Corvisquire", level: 19},
  31.     {type: "kill", pokemon: "Thwackey", level: 21},
  32.     {type: "kill", pokemon: "Tympole", level: 21},
  33.     {type: "kill", pokemon: "Krabby", level: 20},
  34.     {type: "kill", pokemon: "Corphish", level: 20},
  35.     {type: "kill", pokemon: "Goldeen", level: 22},
  36.     {type: "kill", pokemon: "Arrokuda", level: 23},
  37.     {type: "kill", pokemon: "Drednaw", level: 24},
  38.     {type: "kill", pokemon: "Solosis", level: 21},
  39.     {type: "kill", pokemon: "Gothita", level: 22},
  40.     {type: "kill", pokemon: "Hatenna", level: 23},
  41.     {type: "kill", pokemon: "Ponyta", level: 22},
  42.     {type: "kill", pokemon: "Carkol", level: 21},
  43.     {type: "rare-candy"},
  44.     {type: "kill", pokemon: "Linoone", level: 22},
  45.     {type: "kill", pokemon: "Thievul", level: 21},
  46.     {type: "kill", pokemon: "Pancham", level: 21},
  47.     {type: "kill", pokemon: "Liepard", level: 22},
  48.     {type: "kill", pokemon: "Croagunk", level: 24},
  49.     {type: "kill", pokemon: "Scraggy", level: 24},
  50.     {type: "kill", pokemon: "Morpeko", level: 26},
  51.     {type: "catch", pokemon: "Litwick", level: 25},
  52.     {type: "catch", pokemon: "Vulpix", level: 24},
  53.     {type: "catch", pokemon: "Litwick", level: 25},
  54.     {type: "kill", pokemon: "Ninetales", level: 25},
  55.     {type: "kill", pokemon: "Arcanine", level: 25},
  56.     {type: "kill", pokemon: "Centiskorch", level: 27},
  57.     // {type: "rare-candy"},
  58.     // {type: "rare-candy"},
  59.     {type: "kill", pokemon: "Stunky", level: 29},
  60.     {type: "kill", pokemon: "Linoone", level: 30},
  61.     {type: "kill", pokemon: "Liepard", level: 30},
  62.     {type: "kill", pokemon: "Clefairy", level: 29},
  63.     {type: "kill", pokemon: "Clefable", level: 30},
  64.     // {type: "rare-candy"},
  65.     {type: "kill", pokemon: "Koffing", level: 29},
  66.     {type: "kill", pokemon: "Sudowoodo", level: 31},
  67.     // {type: "rare-candy"},
  68.     // {type: "rare-candy"},
  69.     {type: "kill", pokemon: "Cramorant", level: 29},
  70.     {type: "kill", pokemon: "Silicobra", level: 30},
  71.     {type: "kill", pokemon: "Toxel", level: 29},
  72.     {type: "kill", pokemon: "Thwackey", level: 33},
  73.     {type: "kill", pokemon: "Stufful", level: 31},
  74.     {type: "kill", pokemon: "Bewear", level: 32},
  75.     // {type: "evolve"},
  76.     {type: "kill", pokemon: "Farfetch'd", level: 32},
  77.     {type: "kill", pokemon: "Hitmonlee", level: 33},
  78.     {type: "kill", pokemon: "Hitmonchan", level: 33},
  79.  
  80.     {type: "kill", pokemon: "Hitmontop", level: 34},
  81.     {type: "kill", pokemon: "Pangoro", level: 34},
  82.     {type: "kill", pokemon: "Sirfetch'd", level: 35},
  83.     {type: "kill", pokemon: "Machamp", level: 35},
  84.     {type: "kill", pokemon: "Duosion", level: 32},
  85.     {type: "kill", pokemon: "Hattrem", level: 35},
  86.     {type: "kill", pokemon: "Gothorita", level: 32},
  87.     {type: "kill", pokemon: "Ponyta", level: 33},
  88.     {type: "kill", pokemon: "Spritzee", level: 34},
  89.     {type: "kill", pokemon: "Slurpuff", level: 34},
  90.     {type: "kill", pokemon: "Swirlix", level: 34},
  91.     {type: "kill", pokemon: "Aromatisse", level: 34},
  92.     {type: "kill", pokemon: "Morgrem", level: 35},
  93.     {type: "kill", pokemon: "Gardevoir", level: 35},
  94.     {type: "kill", pokemon: "Weezing", level: 36},
  95.     {type: "kill", pokemon: "Mawile", level: 36},
  96.     {type: "kill", pokemon: "Togekiss", level: 37},
  97.     {type: "kill", pokemon: "Alcremie", level: 38},
  98.  
  99.  
  100.     {type: "kill", pokemon: "Trevenant", level: 34},
  101.     {type: "kill", pokemon: "Snorlax", level: 35},
  102.     {type: "kill", pokemon: "Boltund", level: 35},
  103.     {type: "kill", pokemon: "Rillaboom", level: 37},
  104.     {type: "kill", pokemon: "Heatmor", level: 34},
  105.  
  106.     {type: "rare-candy"},
  107.     {type: "rare-candy"},
  108.     // {type: "rare-candy"},
  109.  
  110.     {type: "kill", pokemon: "Roselia", level: 36},
  111.     {type: "kill", pokemon: "Hattrem", level: 36},
  112.     {type: "catch", pokemon: "Pawniard", level: 39},
  113.  
  114.     // {type: "kill", pokemon: "Boldore", level: 38},
  115.     {type: "kill", pokemon: "Barbaracle", level: 40},
  116.     {type: "kill", pokemon: "Shuckle", level: 40},
  117.     {type: "kill", pokemon: "Stonjourner", level: 41},
  118.     {type: "kill", pokemon: "Coalossal", level: 42},
  119.     {type: "kill", pokemon: "Dubwool", level: 40},
  120.     {type: "kill", pokemon: "Rillaboom", level: 41},
  121.     {type: "kill", pokemon: "Snorlax", level: 39},
  122.     {type: "kill", pokemon: "Corviknight", level: 40},
  123.     {type: "kill", pokemon: "Pincurchin", level: 39},
  124.  
  125.     {type: "kill", pokemon: "Linoone", level: 39},
  126.     {type: "kill", pokemon: "Pangoro", level: 40},
  127.  
  128.     {type: "kill", pokemon: "Liepard", level: 42},
  129.     {type: "kill", pokemon: "Scrafty", level: 43},
  130.     {type: "kill", pokemon: "Toxicroak", level: 43},
  131.     {type: "kill", pokemon: "Morpeko", level: 44},
  132.  
  133.     {type: "kill", pokemon: "Linoone", level: 42},
  134.     {type: "kill", pokemon: "Thievul", level: 42},
  135.     {type: "kill", pokemon: "Scrafty", level: 42},
  136.     {type: "kill", pokemon: "Weavile", level: 43},
  137.  
  138.     {type: "kill", pokemon: "Liepard", level: 43, skipLevel: true},
  139.     {type: "kill", pokemon: "Drapion", level: 43},
  140.  
  141.     {type: "kill", pokemon: "Scrafty", level: 44},
  142.     {type: "kill", pokemon: "Obstagoon", level: 46},
  143.     {type: "kill", pokemon: "Malamar", level: 45},
  144.     {type: "kill", pokemon: "Skuntank", level: 46},
  145.  
  146.     {type: "kill", pokemon: "Sliggoo", level: 45, skipLevel: true},
  147.     {type: "kill", pokemon: "Pelipper", level: 45},
  148.  
  149.     {type: "kill", pokemon: "Ninetales", level: 45},
  150.     {type: "kill", pokemon: "Turtonator", level: 45},
  151.     {type: "kill", pokemon: "Abomasnow", level: 45},
  152.     {type: "kill", pokemon: "Hakamo-o", level: 45},
  153.     {type: "kill", pokemon: "Gigalith", level: 46},
  154.     {type: "kill", pokemon: "Flygon", level: 47, skipLevel: true},
  155.     {type: "kill", pokemon: "Sandaconda", level: 46},
  156.     {type: "kill", pokemon: "Duraludon", level: 48},
  157.  
  158.  
  159.     // // {type: "item-equip", item: "Choice Specs"},
  160.     {type: "kill", pokemon: "Gardevoir", level: 45},
  161.     {type: "kill", pokemon: "Pelipper", level: 46},
  162.     {type: "kill", pokemon: "Noctowl", level: 46},
  163.     {type: "kill", pokemon: "Gigalith", level: 46},
  164.     {type: "kill", pokemon: "Rhydon", level: 46},
  165.  
  166.     {type: "kill", pokemon: "Darmanitan", level: 46},
  167.     {type: "kill", pokemon: "Falinks", level: 46},
  168.     {type: "kill", pokemon: "Grapploct", level: 46},
  169.  
  170.  
  171.     {type: "kill", pokemon: "Liepard", level: 47},
  172.     {type: "kill", pokemon: "Scrafty", level: 47},
  173.     {type: "kill", pokemon: "Toxicroak", level: 47},
  174.     {type: "kill", pokemon: "Morpeko", level: 48},
  175.     {type: "kill", pokemon: "Grimmsnarl", level: 49},
  176.  
  177.     {type: "kill", pokemon: "Dubwool", level: 48},
  178.     {type: "kill", pokemon: "Snorlax", level: 47},
  179.     {type: "kill", pokemon: "Corviknight", level: 48},
  180.     {type: "kill", pokemon: "Pincurchin", level: 47},
  181.     {type: "kill", pokemon: "Rillaboom", level: 49},
  182.  
  183.  
  184.     {type: "kill", pokemon: "Meowth", level: 47},
  185.     {type: "kill", pokemon: "Durant", level: 47},
  186.  
  187.     {type: "ev-gain", spAtk: 160, spd: 10},
  188.  
  189.     {type: "kill", pokemon: "Mawile", level: 47},
  190.     {type: "kill", pokemon: "Excadrill", level: 47},
  191.     {type: "kill", pokemon: "Ferroseed", level: 47},
  192.     {type: "kill", pokemon: "Steelix", level: 47},
  193.  
  194.  
  195.     {type: "kill", pokemon: "Durant", level: 48},
  196.  
  197.  
  198.     {type: "kill", pokemon: "Cufant", level: 48},
  199.     {type: "kill", pokemon: "Bronzong", level: 48},
  200.     {type: "kill", pokemon: "Mawile", level: 48},
  201.     {type: "kill", pokemon: "Klang", level: 48},
  202.     {type: "kill", pokemon: "Stunfisk", level: 49},
  203.     {type: "kill", pokemon: "Steelix", level: 49},
  204.  
  205.     {type: "kill", pokemon: "Froslass", level: 50},
  206.     {type: "kill", pokemon: "Salazzle", level: 50},
  207.     {type: "kill", pokemon: "Tsareena", level: 50},
  208.     {type: "kill", pokemon: "Milotic", level: 51},
  209.     {type: "kill", pokemon: "Garbador", level: 52},
  210.  
  211.  
  212.     {type: "kill", pokemon: "Mawile", level: 51},
  213.     {type: "kill", pokemon: "Gardevoir", level: 51},
  214.     {type: "kill", pokemon: "Rapidash", level: 52},
  215.     {type: "kill", pokemon: "Hatterene", level: 53},
  216.  
  217.     {type: "kill", pokemon: "Golisopod", level: 51},
  218.     {type: "kill", pokemon: "Barraskewda", level: 52},
  219.     {type: "kill", pokemon: "Seaking", level: 52},
  220.     {type: "kill", pokemon: "Pelipper", level: 51},
  221.     {type: "kill", pokemon: "Drednaw", level: 53},
  222.  
  223.     {type: "kill", pokemon: "Hawlucha", level: 52},
  224.     {type: "kill", pokemon: "Falinks", level: 53},
  225.     {type: "kill", pokemon: "Grapploct", level: 52},
  226.     {type: "kill", pokemon: "Sirfetch'd", level: 53},
  227.     {type: "kill", pokemon: "Machamp", level: 54},
  228.  
  229.     {type: "kill", pokemon: "Torkoal", level: 53},
  230.     {type: "kill", pokemon: "Turtonator", level: 54},
  231.     {type: "kill", pokemon: "Goodra", level: 54},
  232.     {type: "kill", pokemon: "Flygon", level: 54},
  233.     {type: "kill", pokemon: "Duraludon", level: 55},
  234.  
  235.     {type: "kill", pokemon: "Escavalier", level: 55},
  236.     {type: "kill", pokemon: "Ferrothorn", level: 55},
  237.     {type: "kill", pokemon: "Klinklang", level: 56},
  238.     {type: "kill", pokemon: "Perrserker", level: 55},
  239.     {type: "kill", pokemon: "Copperajah", level: 57},
  240. ];
  241.  
  242. let requiredExperience = {
  243.     "Erratic": [0, 15, 52, 122, 237, 406, 637, 942, 1326, 1800, 2369, 3041, 3822, 4719, 5737, 6881, 8155, 9564, 11111, 12800, 14632, 16610, 18737, 21012, 23437, 26012, 28737, 31610, 34632, 37800, 41111, 44564, 48155, 51881, 55737, 59719, 63822, 68041, 72369, 76800, 81326, 85942, 90637, 95406, 100237, 105122, 110052, 115015, 120001, 125000, 131324, 137795, 144410, 151165, 158056, 165079, 172229, 179503, 186894, 194400, 202013, 209728, 217540, 225443, 233431, 241496, 249633, 257834, 267406, 276458, 286328, 296358, 305767, 316074, 326531, 336255, 346965, 357812, 367807, 378880, 390077, 400293, 411686, 423190, 433572, 445239, 457001, 467489, 479378, 491346, 501878, 513934, 526049, 536557, 548720, 560922, 571333, 583539, 591882, 60000],
  244.     "Fast": [0, 6, 21, 51, 100, 172, 274, 409, 583, 800, 1064, 1382, 1757, 2195, 2700, 3276, 3930, 4665, 5487, 6400, 7408, 8518, 9733, 11059, 12500, 14060, 15746, 17561, 19511, 21600, 23832, 26214, 28749, 31443, 34300, 37324, 40522, 43897, 47455, 51200, 55136, 59270, 63605, 68147, 72900, 77868, 83058, 88473, 94119, 100000, 106120, 112486, 119101, 125971, 133100, 140492, 148154, 156089, 164303, 172800, 181584, 190662, 200037, 209715, 219700, 229996, 240610, 251545, 262807, 274400, 286328, 298598, 311213, 324179, 337500, 351180, 365226, 379641, 394431, 409600, 425152, 441094, 457429, 474163, 491300, 508844, 526802, 545177, 563975, 583200, 602856, 622950, 643485, 664467, 685900, 707788, 730138, 752953, 776239, 800000],
  245.     "Medium Fast": [0, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 1331, 1728, 2197, 2744, 3375, 4096, 4913, 5832, 6859, 8000, 9261, 10648, 12167, 13824, 15625, 17576, 19683, 21952, 24389, 27000, 29791, 32768, 35937, 39304, 42875, 46656, 50653, 54872, 59319, 64000, 68921, 74088, 79507, 85184, 91125, 97336, 103823, 110592, 117649, 125000, 132651, 140608, 148877, 157464, 166375, 175616, 185193, 195112, 205379, 216000, 226981, 238328, 250047, 262144, 274625, 287496, 300763, 314432, 328509, 343000, 357911, 373248, 389017, 405224, 421875, 438976, 456533, 474552, 493039, 512000, 531441, 551368, 571787, 592704, 614125, 636056, 658503, 681472, 704969, 729000, 753571, 778688, 804357, 830584, 857375, 884736, 912673, 941192, 970299, 1000000],
  246.     "Medium Slow": [0, 9, 57, 96, 135, 179, 236, 314, 419, 560, 742, 973, 1261, 1612, 2035, 2535, 3120, 3798, 4575, 5460, 6458, 7577, 8825, 10208, 11735, 13411, 15244, 17242, 19411, 21760, 24294, 27021, 29949, 33084, 36435, 40007, 43808, 47846, 52127, 56660, 61450, 66505, 71833, 77440, 83335, 89523, 96012, 102810, 109923, 117360, 125126, 133229, 141677, 150476, 159635, 169159, 179056, 189334, 199999, 211060, 222522, 234393, 246681, 259392, 272535, 286115, 300140, 314618, 329555, 344960, 360838, 377197, 394045, 411388, 429235, 447591, 466464, 485862, 505791, 526260, 547274, 568841, 590969, 613664, 636935, 660787, 685228, 710266, 735907, 762160, 789030, 816525, 844653, 873420, 902835, 932903, 963632, 995030, 1027103, 1059860],
  247.     "Slow": [0, 10, 33, 80, 156, 270, 428, 640, 911, 1250, 1663, 2160, 2746, 3430, 4218, 5120, 6141, 7290, 8573, 10000, 11576, 13310, 15208, 17280, 19531, 21970, 24603, 27440, 30486, 33750, 37238, 40960, 44921, 49130, 53593, 58320, 63316, 68590, 74148, 80000, 86151, 92610, 99383, 106480, 113906, 121670, 129778, 138240, 147061, 156250, 165813, 175760, 186096, 196830, 207968, 219520, 231491, 243890, 256723, 270000, 283726, 297910, 312558, 327680, 343281, 359370, 375953, 393040, 410636, 428750, 447388, 466560, 486271, 506530, 527343, 548720, 570666, 593190, 616298, 640000, 664301, 689210, 714733, 740880, 767656, 795070, 823128, 851840, 881211, 911250, 941963, 973360, 1005446, 1038230, 1071718, 1105920, 1140841, 1176490, 1212873, 1250000],
  248.     "Fluctuating": [0, 4, 13, 32, 65, 112, 178, 276, 393, 540, 745, 967, 1230, 1591, 1957, 2457, 3046, 3732, 4526, 5440, 6482, 7666, 9003, 10506, 12187, 14060, 16140, 18439, 20974, 23760, 26811, 30146, 33780, 37731, 42017, 46656, 50653, 55969, 60505, 66560, 71677, 78533, 84277, 91998, 98415, 107069, 114205, 123863, 131766, 142500, 151222, 163105, 172697, 185807, 196322, 210739, 222231, 238036, 250562, 267840, 281456, 300293, 315059, 335544, 351520, 373744, 390991, 415050, 433631, 459620, 479600, 507617, 529063, 559209, 582187, 614566, 639146, 673863, 700115, 737280, 765275, 804997, 834809, 877201, 908905, 954084, 987754, 1035837, 1071552, 1122660, 1160499, 1214753, 1254796, 1312322, 1354652, 1415577, 1460276, 1524731, 1571884, 1640000],
  249. };
  250.  
  251. let experienceYields = {
  252.     "Rattata": 51,
  253.     "Raticate": 145,
  254.     "Pikachu": 112,
  255.     "Zubat": 49,
  256.     "Machop": 61,
  257.     "Drowzee": 66,
  258.     "Eevee": 65,
  259.     "Makuhita": 47,
  260.     "Zorua": 66,
  261.     "Furfrou": 165,
  262.     "Noibat": 49,
  263.     "Litten": 64,
  264.     "Torracat": 147,
  265.     "Crabrawler": 68,
  266.     "Wishiwashi": 61,
  267.     "Wishiwashi-School": 217,
  268.     "Dewpider": 54,
  269.     "Araquanid": 159,
  270.     "Type: Null": 107,
  271.     "Poipole": 189,
  272.     "Spearow": 52,
  273.     "Mawile": 133,
  274.     "Roggenrola": 56,
  275.     "Carbink": 100,
  276.     "Sableye": 133,
  277.     "Spinda": 126,
  278.     "Abra": 62,
  279.     "Meowth": 58,
  280.     "Mime Jr.": 62,
  281.     "Ekans": 58,
  282.     "Murkrow": 81,
  283.     "Mareep": 56,
  284.     "Lycanroc": 170,
  285.     "Granbull": 158,
  286.     "Ribombee": 162,
  287.     "Gumshoos": 146,
  288.     "Smeargle": 88,
  289.     "Komala": 168,
  290.     "Lanturn": 161,
  291.     "Cloyster": 184,
  292.     "Arcanine": 194,
  293.     "Talonflame": 175,
  294.     "Marowak": 149,
  295.     "Magmar": 173,
  296.     "Kecleon": 154,
  297.     "Goldeen": 64,
  298.     "Tropius": 161,
  299.     "Exeggcute": 65,
  300.     "Golurk": 169,
  301.     "Gastrodon": 166,
  302.     "Flygon": 260,
  303.     "Mudsdale": 175,
  304.     "Crobat": 241,
  305.     "Silvally": 257,
  306.     "Lucario": 184,
  307.     "Zoroark": 179,
  308.     "Pikipek": 53,
  309.     "Caterpie": 39,
  310.     "Yungoos": 51,
  311.     "Pichu": 41,
  312.     "Metapod": 72,
  313.     "Bonsly": 58,
  314.     "Grimer": 58,
  315.     "Magnemite": 65,
  316.     "Grubbin": 60,
  317.     "Gastly": 62,
  318.     "Psyduck": 64,
  319.     "Petilil": 56,
  320.     "Growlithe": 70,
  321.     "Mankey": 61,
  322.     "Diglett": 53,
  323.     "Delibird": 116,
  324.     "Glaceon": 184,
  325.     "Drifloon": 70,
  326.     "Munchlax": 78,
  327.     "Bagon": 60,
  328.     "Cutiefly": 61,
  329.     "Tauros": 172,
  330.     "Mudbray": 77,
  331.     "Lillipup": 55,
  332.     "Magby": 73,
  333.     "Sudowoodo": 144,
  334.     "Cubone": 64,
  335.     "Oricorio": 167,
  336.     "Salazzle": 168,
  337.     "Kadabra": 140,
  338.     "Bounsweet": 42,
  339.     "Trumbeak": 124,
  340.     "Miltank": 172,
  341.     "Archen": 71,
  342.     "Shieldon": 70,
  343.     "Rockruff": 56,
  344.     "Shiinotic": 142,
  345.     "Fomantis": 50,
  346.     "Lurantis": 168,
  347.     "Charjabug": 140,
  348.     "Goomy": 60,
  349.     "Sylveon": 184,
  350.     "Salandit": 64,
  351.     "Umbreon": 184,
  352.     "Jigglypuff": 95,
  353.     "Ledian": 137,
  354.     "Comfey": 170,
  355.     "Ariados": 140,
  356.     "Staryu": 68,
  357.     "Gyarados": 189,
  358.     "Hariyama": 166,
  359.     "Golbat": 159,
  360.     "Nosepass": 75,
  361.     "Boldore": 137,
  362.     "Raichu": 218,
  363.     "Leafeon": 184,
  364.     "Persian": 154,
  365.     "Cleffa": 44,
  366.     "Trubbish": 66,
  367.     "Muk": 175,
  368.     "Poliwhirl": 135,
  369.     "Steenee": 102,
  370.     "Skarmory": 163,
  371.     "Dugtrio": 149,
  372.     "Metang": 147,
  373.     "Vikavolt": 225,
  374.     "Clefairy": 113,
  375.     "Geodude": 60,
  376.     "Oranguru": 172,
  377.     "Passimian": 172,
  378.     "Absol": 163,
  379.     "Golisopod": 186,
  380.     "Weedle": 39,
  381.     "Pidgey": 50,
  382.     "NidoranF": 55,
  383.     "Herdier": 130,
  384.     "Fletchinder": 134,
  385.     "Stufful": 68,
  386.     "Pancham": 70,
  387.     "Krokorok": 123,
  388.     "Tirtouga": 71,
  389.     "Cranidos": 70,
  390.     "Porygon": 79,
  391.     "Magneton": 163,
  392.     "Alomomola": 165,
  393.     "Whiscash": 164,
  394.     "Sandygast": 64,
  395.     "Elekid": 72,
  396.     "Feebas": 40,
  397.     "Haunter": 142,
  398.     "Gengar": 225,
  399.     "Mimikyu": 167,
  400.     "Togedemaru": 152,
  401.     "Gabite": 144,
  402.     "Pyukumuku": 144,
  403.     "Sandshrew": 60,
  404.     "Vulpix": 60,
  405.     "Wigglytuff": 196,
  406.     "Tentacruel": 180,
  407.     "Slowbro": 172,
  408.     "Golduck": 175,
  409.     "Luvdisc": 116,
  410.     "Corsola": 144,
  411.     "Torkoal": 165,
  412.     "Seaking": 158,
  413.     "Sneasel": 86,
  414.     "Alakazam": 225,
  415.     "Mareanie": 61,
  416.     "Spinarak": 50,
  417.     "Wimpod": 46,
  418.     "Wooloo": 122,
  419.     "Scorbunny": 62,
  420.     "Raboot": 147,
  421.     "Cinderace": 265,
  422.     "Skwovet": 55,
  423.     "Rookidee": 49,
  424.     "Blipbug": 36,
  425.     "Nickit": 49,
  426.     "Zigzagoon": 56,
  427.     "Sizzlipede": 61,
  428.     "Dottler": 117,
  429.     "Drilbur": 66,
  430.     "Rolycoly": 49,
  431.     "Solosis": 58,
  432.     "Hatenna": 53,
  433.     "Gothita": 58,
  434.     "Gossifleur": 50,
  435.     "Eldegoss": 161,
  436.     "Thievul": 159,
  437.     "Corvisquire": 128,
  438.     "Corviknight": 248,
  439.     "Tympole": 59,
  440.     "Krabby": 65,
  441.     "Corphish": 62,
  442.     "Arrokuda": 56,
  443.     "Drednaw": 170,
  444.     "Ponyta": 82,
  445.     "Carkol": 144,
  446.     "Linoone": 147,
  447.     "Liepard": 156,
  448.     "Croagunk": 60,
  449.     "Scraggy": 70,
  450.     "Morpeko": 153,
  451.     "Litwick": 55,
  452.     "Ninetales": 177,
  453.     "Centiskorch": 184,
  454.     "Stunky": 66,
  455.     "Clefable": 242,
  456.     // "Clefable": 217,
  457.     "Koffing": 68,
  458.     "Cramorant": 166,
  459.     "Silicobra": 63,
  460.     "Toxel": 48,
  461.     "Bewear": 175,
  462.     "Farfetch'd": 132,
  463.     "Hitmonlee": 159,
  464.     "Hitmonchan": 159,
  465.     "Hitmontop": 159,
  466.     "Pangoro": 173,
  467.     "Sirfetch'd": 177,
  468.     "Machamp": 253,
  469.     "Duosion": 130,
  470.     "Hattrem": 130,
  471.     "Gothorita": 137,
  472.     "Spritzee": 68,
  473.     "Slurpuff": 168,
  474.     "Swirlix": 68,
  475.     "Aromatisse": 162,
  476.     "Morgrem": 130,
  477.     "Gardevoir": 259,
  478.     "Weezing": 172,
  479.     "Togekiss": 273,
  480.     "Alcremie": 173,
  481.     "Trevenant": 166,
  482.     "Boltund": 172,
  483.     "Heatmor": 169,
  484.     "Snorlax": 189,
  485.     "Roselia": 140,
  486.     "Barbaracle": 175,
  487.     "Shuckle": 177,
  488.     "Stonjourner": 165,
  489.     "Coalossal": 255,
  490.     "Dubwool": 172,
  491.     "Pincurchin": 152,
  492.     "Toxicroak": 172,
  493.     "Scrafty": 171,
  494.     "Weavile": 179,
  495.     "Drapion": 175,
  496.     "Malamar": 169,
  497.     "Obstagoon": 260,
  498.     "Pelipper": 154,
  499.     "Sliggoo": 158,
  500.     "Skuntank": 168,
  501.     "Turtonator": 170,
  502.     "Hakamo-o": 147,
  503.     "Abomasnow": 173,
  504.     "Sandaconda": 179,
  505.     "Gigalith": 258,
  506.     "Duraludon": 187,
  507.     "Rhydon": 170,
  508.     "Darmanitan": 168,
  509.     "Falinks": 165,
  510.     "Grapploct": 168,
  511.     "Grimmsnarl": 255,
  512.     "Durant": 169,
  513.     "Excadrill": 178,
  514.     "Ferroseed": 61,
  515.     "Steelix": 179,
  516.     "Cufant": 66,
  517.     "Bronzong": 175,
  518.     "Stunfisk": 165,
  519.     "Klang": 154,
  520.     "Froslass": 168,
  521.     "Tsareena": 255,
  522.     "Milotic": 189,
  523.     "Garbador": 166,
  524.     "Hatterene": 255,
  525.     "Rapidash": 175,
  526.     "Barraskewda": 172,
  527.     "Onix": 77,
  528.     "Hawlucha": 175,
  529.     "Noctowl": 158,
  530.     "Goodra": 300,
  531.     "Escavalier": 173,
  532.     "Ferrothorn": 171,
  533.     "Klinklang": 260,
  534.     "Perrserker": 154,
  535.     "Copperajah": 175,
  536.     "Grookey": 62,
  537.     "Thwackey": 147,
  538.     "Rillaboom": 265,
  539.     "Pawniard": 68,
  540. };
  541.  
  542. let evYields = {
  543.     "Pawniard": {atk: 1},
  544.     "Grookey": {atk: 1},
  545.     "Thwackey": {atk: 2},
  546.     "Rillaboom": {atk: 3},
  547.     "Torkoal": {def: 2},
  548.     "Copperajah": {atk: 2},
  549.     "Perrserker": {atk: 2},
  550.     "Klinklang": {def: 3},
  551.     "Ferrothorn": {def: 2},
  552.     "Escavalier": {atk: 2},
  553.     "Goodra": {spDef: 3},
  554.     "Seaking": {atk: 2},
  555.     "Salazzle": {spd: 2},
  556.     "Golisopod": {def: 2},
  557.     "Flygon": {atk: 1, spd: 2},
  558.     "Meowth": {spd: 1},
  559.     "Wooloo": {def: 1},
  560.     "Scorbunny": {spd: 1},
  561.     "Skwovet": {hp: 1},
  562.     "Rookidee": {spd: 1},
  563.     "Blipbug": {spDef: 1},
  564.     "Nickit": {spDef: 1},
  565.     "Zigzagoon": {spd: 1},
  566.     "Sizzlipede": {atk: 1},
  567.     "Dottler": {spDef: 2},
  568.     "Diglett": {spd: 1},
  569.     "Drilbur": {atk: 1},
  570.     "Rolycoly": {def: 1},
  571.     "Solosis": {spAtk: 1},
  572.     "Gothita": {spDef: 1},
  573.     "Hatenna": {spAtk: 1},
  574.     "Gossifleur": {spDef: 1},
  575.     "Eldegoss": {spDef: 2},
  576.     "Thievul": {spDef: 2},
  577.     "Sableye": {atk: 1, def: 1},
  578.     "Corvisquire": {spd: 2},
  579.     "Corviknight": {def: 3},
  580.     "Raboot": {spd: 2},
  581.     "Tympole": {spd: 1},
  582.     "Krabby": {atk: 1},
  583.     "Corphish": {atk: 1},
  584.     "Goldeen": {atk: 1},
  585.     "Arrokuda": {spd: 1},
  586.     "Drednaw": {atk: 2},
  587.     "Ponyta": {spd: 1},
  588.     "Carkol": {def: 2},
  589.     "Linoone": {spd: 2},
  590.     "Pancham": {atk: 1},
  591.     "Liepard": {spd: 2},
  592.     "Croagunk": {atk: 1},
  593.     "Scraggy": {atk: 1},
  594.     "Morpeko": {spd: 2},
  595.     "Vulpix": {spd: 1},
  596.     "Litwick": {spAtk: 1},
  597.     "Ninetales": {spDef: 1, spd: 1},
  598.     "Arcanine": {atk: 2},
  599.     "Centiskorch": {atk: 2},
  600.     "Stunky": {spd: 1},
  601.     "Clefairy": {hp: 2},
  602.     "Clefable": {hp: 3},
  603.     "Koffing": {def: 1},
  604.     "Sudowoodo": {def: 2},
  605.     "Cramorant": {spDef: 2},
  606.     "Silicobra": {def: 1},
  607.     "Toxel": {spAtk: 1},
  608.     "Stufful": {atk: 1},
  609.     "Bewear": {atk: 2},
  610.     "Farfetch'd": {atk: 1},
  611.     "Hitmonlee": {atk: 2},
  612.     "Hitmonchan": {spDef: 2},
  613.     "Hitmontop": {spDef: 2},
  614.     "Pangoro": {atk: 2},
  615.     "Sirfetch'd": {atk: 2},
  616.     "Machamp": {atk: 3},
  617.     "Duosion": {spAtk: 2},
  618.     "Hattrem": {spAtk: 2},
  619.     "Gothorita": {spDef: 2},
  620.     "Spritzee": {hp: 1},
  621.     "Slurpuff": {def: 2},
  622.     "Swirlix": {def: 1},
  623.     "Aromatisse": {hp: 2},
  624.     "Morgrem": {spAtk: 2},
  625.     "Gardevoir": {spAtk: 3},
  626.     "Weezing": {def: 2},
  627.     "Mawile": {atk: 1, def: 1},
  628.     "Togekiss": {spAtk: 2, spDef: 1},
  629.     "Alcremie": {spDef: 2},
  630.     "Trevenant": {atk: 2},
  631.     "Boltund": {spd: 2},
  632.     "Heatmor": {spAtk: 2},
  633.     "Snorlax": {hp: 2},
  634.     "Cinderace": {spd: 3},
  635.     "Roselia": {spAtk: 2},
  636.     "Boldore": {atk: 1, def: 1},
  637.     "Barbaracle": {atk: 2},
  638.     "Shuckle": {def: 1, spDef: 1},
  639.     "Stonjourner": {def: 2},
  640.     "Coalossal": {def: 3},
  641.     "Dubwool": {def: 2},
  642.     "Pincurchin": {atk: 2},
  643.     "Toxicroak": {atk: 2},
  644.     "Scrafty": {def: 1, spDef: 1},
  645.     "Weavile": {atk: 1, spd: 1},
  646.     "Drapion": {def: 2},
  647.     "Malamar": {atk: 2},
  648.     "Obstagoon": {def: 3},
  649.     "Pelipper": {def: 2},
  650.     "Sliggoo": {spDef: 2},
  651.     "Skuntank": {hp: 2},
  652.     "Turtonator": {def: 2},
  653.     "Hakamo-o": {def: 2},
  654.     "Abomasnow": {atk: 1, spAtk: 1},
  655.     "Sandaconda": {def: 2},
  656.     "Gigalith": {atk: 3},
  657.     "Duraludon": {spAtk: 2},
  658.     "Rhydon": {atk: 2},
  659.     "Darmanitan": {atk: 2},
  660.     "Grapploct": {atk: 2},
  661.     "Falinks": {atk: 2, spDef: 1},
  662.     "Grimmsnarl": {atk: 3},
  663.     "Durant": {def: 2},
  664.     "Excadrill": {atk: 2},
  665.     "Ferroseed": {def: 1},
  666.     "Steelix": {def: 2},
  667.     "Cufant": {atk: 1},
  668.     "Bronzong": {def: 1, spDef: 1},
  669.     "Stunfisk": {hp: 2},
  670.     "Klang": {def: 2},
  671.     "Froslass": {spd: 2},
  672.     "Tsareena": {atk: 3},
  673.     "Milotic": {spDef: 2},
  674.     "Garbador": {atk: 2},
  675.     "Hatterene": {spAtk: 3},
  676.     "Rapidash": {spd: 2},
  677.     "Barraskewda": {spd: 2},
  678.     "Onix": {def: 1},
  679.     "Hawlucha": {atk: 2},
  680.     "Noctowl": {hp: 2},
  681. };
  682.  
  683.  
  684. processActions(route);
  685.  
  686. function computeExperienceForLevel(level, curve) {
  687.     return requiredExperience[curve][level - 1];
  688. }
  689.  
  690. function powerOf2AndAHalf(value) {
  691.     value = Math.fround(value);
  692.     let F32 = new Float32Array(3);
  693.     const sqrt = 0;
  694.     const square = 1;
  695.     const result = 2;
  696.  
  697.     F32[sqrt] = Math.sqrt(value);
  698.     F32[square] = value * value;
  699.  
  700.     F32[result] = F32[square] * F32[sqrt];
  701.  
  702.     return F32[result];
  703. }
  704.  
  705. function scaleExp(baseExpInt, levelInt, foeLevelInt) {
  706.     let F32 = new Float32Array(7);
  707.     const baseExp = 0;
  708.     const level = 1;
  709.     const foeLevel = 2;
  710.     const numerator = 3;
  711.     const denominator = 4;
  712.     const ratio = 5;
  713.     const result = 6;
  714.  
  715.     F32[baseExp] = baseExpInt;
  716.     F32[level] = levelInt;
  717.     F32[foeLevel] = foeLevelInt;
  718.  
  719.     F32[foeLevel] = foeLevelInt;
  720.  
  721.  
  722.     F32[numerator] = F32[foeLevel] * Math.fround(2.0) + Math.fround(10.0);
  723.     F32[denominator] = F32[foeLevel] + F32[level] + Math.fround(10.0);
  724.  
  725.     F32[numerator] = powerOf2AndAHalf(F32[numerator]);
  726.     F32[denominator] = powerOf2AndAHalf(F32[denominator]);
  727.  
  728.     F32[ratio] = F32[numerator] / F32[denominator];
  729.     F32[result] = Math.fround(F32[baseExp] * F32[ratio]) + Math.fround(1);
  730.  
  731.     return Math.floor(F32[result]);
  732. }
  733.  
  734. function FX32(x) {
  735.     return Math.floor(x * (1 << 12) + 0.5);
  736. }
  737.  
  738. function mulRatio(a, b) {
  739.  
  740.     a *= b;
  741.  
  742.     let d = a & ((1 << 12) - 1);
  743.     a >>= 12;
  744.  
  745.     if (d > (1 << 11)) {
  746.         ++a;
  747.     }
  748.  
  749.     return a;
  750. }
  751.  
  752.  
  753. function getExperienceForKill(foeName, foeLevel, level, luckyEgg, affection, rotoExp, expShare, tradeExp, evolutionDue, expScaling, bonusForTrainer, wild) {
  754.     let expYield = experienceYields[foeName];
  755.  
  756.     if (typeof expYield === "undefined") {
  757.         throw new Error("Unknown Pokémon: " + foeName);
  758.     }
  759.  
  760.     let exp = 0;
  761.  
  762.     if (expScaling) {
  763.  
  764.         let baseExp = Math.floor(expYield * foeLevel / 5);
  765.         if (baseExp === 0) {
  766.             baseExp = 1;
  767.         }
  768.  
  769.         if (expShare) {
  770.             exp = Math.floor(baseExp / 2);
  771.             if (exp === 0) {
  772.                 exp = 1;
  773.             }
  774.         } else {
  775.             exp = baseExp;
  776.         }
  777.  
  778.         exp = scaleExp(exp, level, foeLevel);
  779.  
  780.         console.log(exp);
  781.  
  782.     } else {
  783.         exp = Math.floor(expYield * foeLevel / 7);
  784.     }
  785.  
  786.     if (bonusForTrainer && !wild) {
  787.         exp = mulRatio(exp, FX32(1.5));
  788.         console.log("bonusForTrainer");
  789.     }
  790.  
  791.     if (tradeExp) {
  792.         exp = mulRatio(exp, FX32(1.5));
  793.         console.log("trade");
  794.     }
  795.  
  796.     if (luckyEgg) {
  797.         exp = mulRatio(exp, FX32(1.5));
  798.         console.log("luckyegg");
  799.     }
  800.  
  801.     if (evolutionDue) {
  802.         exp = mulRatio(exp, FX32(1.2));
  803.         console.log("evolutionDue");
  804.     }
  805.  
  806.     if (affection) {
  807.         exp = mulRatio(exp, FX32(1.2));
  808.         console.log("affection");
  809.  
  810.     }
  811.  
  812.     if (rotoExp) {
  813.         exp = Math.floor((exp * 150) / 100);
  814.         console.log("rotoExp");
  815.  
  816.     }
  817.  
  818.     return exp;
  819. }
  820.  
  821. function processActions(actions) {
  822.  
  823.     if (!actions || !actions[0] || actions[0].type !== "init") {
  824.         throw new Error("First action must be init");
  825.     }
  826.  
  827.     let affectionBoost = false;
  828.     let luckyEgg = false;
  829.     let rotoExp = false;
  830.     let tradeExp = !!actions[0].tradeExp;
  831.  
  832.     let pokemonName = actions[0].name;
  833.     let currentLevel = actions[0].level;
  834.     let curve = actions[0].curve;
  835.     let stage = 1;
  836.     let evolution1 = actions[0].evolution1;
  837.     let evolution2 = actions[0].evolution2;
  838.     let evolution1Name = actions[0].evolution1Name;
  839.     let evolution2Name = actions[0].evolution2Name;
  840.     let currentExp = computeExperienceForLevel(currentLevel, curve);
  841.     let currentHpEvs = 0;
  842.     let currentAtkEvs = 0;
  843.     let currentDefEvs = 0;
  844.     let currentSpAtkEvs = 0;
  845.     let currentSpDefEvs = 0;
  846.     let currentSpdEvs = 0;
  847.     let currentItem = "";
  848.  
  849.     function printDumpFormat() {
  850.         if (currentItem) {
  851.             console.log(`${pokemonName} (Lv. ${currentLevel}) @${currentItem} (Nature: Modest) (Moves: (None)/(None)/(None)/(None)) IVs: 31/31/31/31/31/31 EVs: ${currentHpEvs}/${currentAtkEvs}/${currentDefEvs}/${currentSpAtkEvs}/${currentSpDefEvs}/${currentSpdEvs}`);
  852.         } else {
  853.             console.log(`${pokemonName} (Lv. ${currentLevel})  (Nature: Modest) (Moves: (None)/(None)/(None)/(None)) IVs: 31/31/31/31/31/31 EVs: ${currentHpEvs}/${currentAtkEvs}/${currentDefEvs}/${currentSpAtkEvs}/${currentSpDefEvs}/${currentSpdEvs}`);
  854.         }
  855.     }
  856.  
  857.     function printIvCalcFormat() {
  858.         console.log(`${currentLevel}\t${currentHpEvs}\t${currentAtkEvs}\t${currentDefEvs}\t${currentSpAtkEvs}\t${currentSpDefEvs}\t${currentSpdEvs}`);
  859.     }
  860.  
  861.     for (let i = 1; i < actions.length; ++i) {
  862.         let action = actions[i];
  863.         if (!action) {
  864.             continue;
  865.         }
  866.         switch (action.type) {
  867.             case "kill":
  868.             case "catch":
  869.                 let evolutionDue = false;
  870.                 if ((stage === 1 && evolution1 && evolution1 <= currentLevel) || (stage <= 2 && evolution2 && evolution2 <= currentLevel)) {
  871.                     evolutionDue = true;
  872.                     console.log("[LEVEL BONUS]");
  873.                 }
  874.  
  875.                 let receivedExp = action.overrideExperience;
  876.                 if (typeof receivedExp === "undefined") {
  877.                     receivedExp = getExperienceForKill(action.pokemon, action.level, currentLevel, luckyEgg, affectionBoost, rotoExp, !!action.expShare, tradeExp, evolutionDue, true, false);
  878.                 }
  879.                 if (action.type === "kill") {
  880.                     console.log(`[KILL]: Got ${receivedExp} Exp for killing Lv. ${action.level} ${action.pokemon}`);
  881.                 } else {
  882.                     console.log(`[CATCH]: Got ${receivedExp} Exp for catching Lv. ${action.level} ${action.pokemon}`);
  883.                 }
  884.  
  885.                 if (evYields[action.pokemon]) {
  886.                     for (let stat in evYields[action.pokemon]) {
  887.                         if (evYields[action.pokemon].hasOwnProperty(stat)) {
  888.                             switch (stat) {
  889.                                 case "hp": currentHpEvs+= evYields[action.pokemon][stat]; break;
  890.                                 case "atk": currentAtkEvs+= evYields[action.pokemon][stat]; break;
  891.                                 case "def": currentDefEvs+= evYields[action.pokemon][stat]; break;
  892.                                 case "spAtk": currentSpAtkEvs+= evYields[action.pokemon][stat]; break;
  893.                                 case "spDef": currentSpDefEvs+= evYields[action.pokemon][stat]; break;
  894.                                 case "spd": currentSpdEvs+= evYields[action.pokemon][stat]; break;
  895.                             }
  896.                         }
  897.                     }
  898.                     console.log("EV yield: " + JSON.stringify(evYields[action.pokemon]));
  899.                 } else {
  900.                     console.warn("Could not find EV Yield for: " + action.pokemon);
  901.                 }
  902.  
  903.                 currentExp+= receivedExp;
  904.  
  905.                 if (!action.skipLevel) {
  906.                     while (currentLevel < 100 && computeExperienceForLevel(currentLevel + 1, curve) <= currentExp) {
  907.                         ++currentLevel;
  908.                         console.log(`[LEVELUP] Now level ${currentLevel}`);
  909.                         printIvCalcFormat();
  910.                     }
  911.                 }
  912.  
  913.                 printDumpFormat();
  914.  
  915.                 break;
  916.             case "evolve":
  917.                 ++stage;
  918.                 if (stage === 2) {
  919.                     pokemonName = evolution1Name;
  920.                 } else if (stage === 3) {
  921.                     pokemonName = evolution2Name;
  922.                 }
  923.                 console.log(`[EVOLUTION]`);
  924.                 printDumpFormat();
  925.                 break;
  926.  
  927.             case "affection-boost":
  928.                 affectionBoost = !!action.value;
  929.                 console.log(`[AFFECTION BOOST] ${affectionBoost}`);
  930.                 break;
  931.  
  932.             case "roto-exp":
  933.                 rotoExp = !!action.value;
  934.                 console.log(`[ROTO EXP] ${rotoExp}`);
  935.                 break;
  936.  
  937.             case "rare-candy":
  938.                 currentExp = computeExperienceForLevel(currentLevel + 1, curve);
  939.                 ++currentLevel;
  940.                 console.log(`[RARE CANDY] Now level ${currentLevel}`);
  941.                 printIvCalcFormat();
  942.                 printDumpFormat();
  943.                 break;
  944.  
  945.             case "exp-candy":
  946.                 currentExp+= action.experience;
  947.  
  948.                 console.log(`[EXP CANDY] Added ${action.experience} Exp`);
  949.  
  950.                 while (currentLevel < 100 && computeExperienceForLevel(currentLevel + 1, curve) <= currentExp) {
  951.                     ++currentLevel;
  952.                     console.log(`[LEVELUP] Now level ${currentLevel}`);
  953.                     printIvCalcFormat();
  954.                 }
  955.                 printDumpFormat();
  956.                 break;
  957.  
  958.             case "item-equip":
  959.                 if (currentItem === "Lucky Egg" && action.item !== "Lucky Egg") {
  960.                     luckyEgg = false;
  961.                 }
  962.  
  963.                 currentItem = action.item || "";
  964.                 console.log("[ITEM EQUIP] " + (currentItem || "(none)"));
  965.  
  966.                 if (currentItem === "Lucky Egg") {
  967.                     luckyEgg = true;
  968.                 }
  969.                 break;
  970.  
  971.             case "ev-gain":
  972.                 currentHpEvs+= action.hp || 0;
  973.                 currentAtkEvs+= action.atk || 0;
  974.                 currentDefEvs+= action.def || 0;
  975.                 currentSpAtkEvs+= action.spAtk || 0;
  976.                 currentSpDefEvs+= action.spDef || 0;
  977.                 currentSpdEvs+= action.spd || 0;
  978.                 printIvCalcFormat();
  979.                 printDumpFormat();
  980.                 break;
  981.         }
  982.         console.log();
  983.     }
  984.  
  985.     let addendum = "";
  986.     if (currentLevel < 100) {
  987.         let currentLevelExp =  computeExperienceForLevel(currentLevel, curve);
  988.         let nextLevelExp = computeExperienceForLevel(currentLevel + 1, curve);
  989.  
  990.         let percentage = (currentExp - currentLevelExp) / (nextLevelExp - currentLevelExp);
  991.         addendum = " (" + (percentage * 100).toFixed(2) + "%)";
  992.     }
  993.  
  994.  
  995.     console.log("Final Exp: " + currentExp + addendum);
  996.     console.log();
  997.  
  998.     return currentExp;
  999. }
  1000.  
  1001. let possibleActions = [
  1002.     {type: "rare-candy"},
  1003.     {type: "rare-candy"},
  1004.     {type: "rare-candy"},
  1005.     {type: "exp-candy", experience: 700},
  1006.     {type: "exp-candy", experience: 800},
  1007.     {type: "exp-candy", experience: 800},
  1008. ];
  1009. //
  1010. // console.log = () => {};
  1011. //
  1012. // let highestExp = 0;
  1013. //
  1014. // for (let a = 0; a < 6; ++a) {
  1015. //     for (let b = 0; b < 6; ++b) {
  1016. //         if (a === b) {
  1017. //             continue;
  1018. //         }
  1019. //
  1020. //         for (let c = 0; c < 6; ++c) {
  1021. //             if (a === c || b === c) {
  1022. //                 continue;
  1023. //             }
  1024. //
  1025. //             for (let d = 0; d < 6; ++d) {
  1026. //                 if (a === d || b === d || c === d) {
  1027. //                     continue;
  1028. //                 }
  1029. //
  1030. //                 for (let e = 0; e < 6; ++e) {
  1031. //                     if (a === e || b === e || c === e || d === e) {
  1032. //                         continue;
  1033. //                     }
  1034. //
  1035. //                     for (let f = 0; f < 6; ++f) {
  1036. //                         if (a === f || b === f || c === f || d === f || e === f) {
  1037. //                             continue;
  1038. //                         }
  1039. //
  1040. //                         let r = [
  1041. //                             {type: "init", level: 3, curve: "Medium Slow", name: "Lucario"},
  1042. //                             possibleActions[a],
  1043. //                             possibleActions[b],
  1044. //                             possibleActions[c],
  1045. //                             possibleActions[d],
  1046. //                             possibleActions[e],
  1047. //                             possibleActions[f],
  1048. //                         ];
  1049. //
  1050. //                         let exp = processActions(r);
  1051. //                         if (exp >= highestExp) {
  1052. //                             // if (exp === 7958) {
  1053. //                             highestExp = exp;
  1054. //                             console.warn("Found newest best combo: " + exp + ": " + a + b + c + d + e + f);
  1055. //                         }
  1056. //                     }
  1057. //                 }
  1058. //             }
  1059. //         }
  1060. //     }
  1061. // }
  1062. //
  1063. //
  1064.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement