1213 lines
		
	
	
		
			95 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			1213 lines
		
	
	
		
			95 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| id_to_mon = {1: 'Rhydon', 2: 'Kangaskhan', 3: 'Nidoran M', 4: 'Clefairy', 5: 'Spearow', 6: 'Voltorb', 7: 'Nidoking',
 | |
|              8: 'Slowbro', 9: 'Ivysaur', 10: 'Exeggutor', 11: 'Lickitung', 12: 'Exeggcute', 13: 'Grimer', 14: 'Gengar',
 | |
|              15: 'Nidoran F', 16: 'Nidoqueen', 17: 'Cubone', 18: 'Rhyhorn', 19: 'Lapras', 20: 'Arcanine', 21: 'Mew',
 | |
|              22: 'Gyarados', 23: 'Shellder', 24: 'Tentacool', 25: 'Gastly', 26: 'Scyther', 27: 'Staryu',
 | |
|              28: 'Blastoise', 29: 'Pinsir', 30: 'Tangela', 33: 'Growlithe', 34: 'Onix', 35: 'Fearow', 36: 'Pidgey',
 | |
|              37: 'Slowpoke', 38: 'Kadabra', 39: 'Graveler', 40: 'Chansey', 41: 'Machoke', 42: 'Mr Mime',
 | |
|              43: 'Hitmonlee', 44: 'Hitmonchan', 45: 'Arbok', 46: 'Parasect', 47: 'Psyduck', 48: 'Drowzee', 49: 'Golem',
 | |
|              51: 'Magmar', 53: 'Electabuzz', 54: 'Magneton', 55: 'Koffing', 57: 'Mankey', 58: 'Seel', 59: 'Diglett',
 | |
|              60: 'Tauros', 64: 'Farfetchd', 65: 'Venonat', 66: 'Dragonite', 70: 'Doduo', 71: 'Poliwag', 72: 'Jynx',
 | |
|              73: 'Moltres', 74: 'Articuno', 75: 'Zapdos', 76: 'Ditto', 77: 'Meowth', 78: 'Krabby', 82: 'Vulpix',
 | |
|              83: 'Ninetales', 84: 'Pikachu', 85: 'Raichu', 88: 'Dratini', 89: 'Dragonair', 90: 'Kabuto', 91: 'Kabutops',
 | |
|              92: 'Horsea', 93: 'Seadra', 96: 'Sandshrew', 97: 'Sandslash', 98: 'Omanyte', 99: 'Omastar',
 | |
|              100: 'Jigglypuff', 101: 'Wigglytuff', 102: 'Eevee', 103: 'Flareon', 104: 'Jolteon', 105: 'Vaporeon',
 | |
|              106: 'Machop', 107: 'Zubat', 108: 'Ekans', 109: 'Paras', 110: 'Poliwhirl', 111: 'Poliwrath', 112: 'Weedle',
 | |
|              113: 'Kakuna', 114: 'Beedrill', 116: 'Dodrio', 117: 'Primeape', 118: 'Dugtrio', 119: 'Venomoth',
 | |
|              120: 'Dewgong', 123: 'Caterpie', 124: 'Metapod', 125: 'Butterfree', 126: 'Machamp', 128: 'Golduck',
 | |
|              129: 'Hypno', 130: 'Golbat', 131: 'Mewtwo', 132: 'Snorlax', 133: 'Magikarp', 136: 'Muk', 138: 'Kingler',
 | |
|              139: 'Cloyster', 141: 'Electrode', 142: 'Clefable', 143: 'Weezing', 144: 'Persian', 145: 'Marowak',
 | |
|              147: 'Haunter', 148: 'Abra', 149: 'Alakazam', 150: 'Pidgeotto', 151: 'Pidgeot', 152: 'Starmie',
 | |
|              153: 'Bulbasaur', 154: 'Venusaur', 155: 'Tentacruel', 157: 'Goldeen', 158: 'Seaking', 163: 'Ponyta',
 | |
|              164: 'Rapidash', 165: 'Rattata', 166: 'Raticate', 167: 'Nidorino', 168: 'Nidorina', 169: 'Geodude',
 | |
|              170: 'Porygon', 171: 'Aerodactyl', 173: 'Magnemite', 176: 'Charmander', 177: 'Squirtle', 178: 'Charmeleon',
 | |
|              179: 'Wartortle', 180: 'Charizard', 185: 'Oddish', 186: 'Gloom', 187: 'Vileplume', 188: 'Bellsprout',
 | |
|              189: 'Weepinbell', 190: 'Victreebel'}
 | |
| 
 | |
| 
 | |
| pokemon_dex = {
 | |
|     'Bulbasaur': 1, 'Ivysaur': 2, 'Venusaur': 3, 'Charmander': 4, 'Charmeleon': 5, 'Charizard': 6, 'Squirtle': 7,
 | |
|     'Wartortle': 8, 'Blastoise': 9, 'Caterpie': 10, 'Metapod': 11, 'Butterfree': 12, 'Weedle': 13, 'Kakuna': 14,
 | |
|     'Beedrill': 15, 'Pidgey': 16, 'Pidgeotto': 17, 'Pidgeot': 18, 'Rattata': 19, 'Raticate': 20, 'Spearow': 21,
 | |
|     'Fearow': 22, 'Ekans': 23, 'Arbok': 24, 'Pikachu': 25, 'Raichu': 26, 'Sandshrew': 27, 'Sandslash': 28,
 | |
|     'Nidoran F': 29, 'Nidorina': 30, 'Nidoqueen': 31, 'Nidoran M': 32, 'Nidorino': 33, 'Nidoking': 34, 'Clefairy': 35,
 | |
|     'Clefable': 36, 'Vulpix': 37, 'Ninetales': 38, 'Jigglypuff': 39, 'Wigglytuff': 40, 'Zubat': 41, 'Golbat': 42,
 | |
|     'Oddish': 43, 'Gloom': 44, 'Vileplume': 45, 'Paras': 46, 'Parasect': 47, 'Venonat': 48, 'Venomoth': 49,
 | |
|     'Diglett': 50, 'Dugtrio': 51, 'Meowth': 52, 'Persian': 53, 'Psyduck': 54, 'Golduck': 55, 'Mankey': 56,
 | |
|     'Primeape': 57, 'Growlithe': 58, 'Arcanine': 59, 'Poliwag': 60, 'Poliwhirl': 61, 'Poliwrath': 62, 'Abra': 63,
 | |
|     'Kadabra': 64, 'Alakazam': 65, 'Machop': 66, 'Machoke': 67, 'Machamp': 68, 'Bellsprout': 69, 'Weepinbell': 70,
 | |
|     'Victreebel': 71, 'Tentacool': 72, 'Tentacruel': 73, 'Geodude': 74, 'Graveler': 75, 'Golem': 76, 'Ponyta': 77,
 | |
|     'Rapidash': 78, 'Slowpoke': 79, 'Slowbro': 80, 'Magnemite': 81, 'Magneton': 82, 'Farfetchd': 83, 'Doduo': 84,
 | |
|     'Dodrio': 85, 'Seel': 86, 'Dewgong': 87, 'Grimer': 88, 'Muk': 89, 'Shellder': 90, 'Cloyster': 91, 'Gastly': 92,
 | |
|     'Haunter': 93, 'Gengar': 94, 'Onix': 95, 'Drowzee': 96, 'Hypno': 97, 'Krabby': 98, 'Kingler': 99, 'Voltorb': 100,
 | |
|     'Electrode': 101, 'Exeggcute': 102, 'Exeggutor': 103, 'Cubone': 104, 'Marowak': 105, 'Hitmonlee': 106,
 | |
|     'Hitmonchan': 107, 'Lickitung': 108, 'Koffing': 109, 'Weezing': 110, 'Rhyhorn': 111, 'Rhydon': 112, 'Chansey': 113,
 | |
|     'Tangela': 114, 'Kangaskhan': 115, 'Horsea': 116, 'Seadra': 117, 'Goldeen': 118, 'Seaking': 119, 'Staryu': 120,
 | |
|     'Starmie': 121, 'Mr Mime': 122, 'Scyther': 123, 'Jynx': 124, 'Electabuzz': 125, 'Magmar': 126, 'Pinsir': 127,
 | |
|     'Tauros': 128, 'Magikarp': 129, 'Gyarados': 130, 'Lapras': 131, 'Ditto': 132, 'Eevee': 133, 'Vaporeon': 134,
 | |
|     'Jolteon': 135, 'Flareon': 136, 'Porygon': 137, 'Omanyte': 138, 'Omastar': 139, 'Kabuto': 140, 'Kabutops': 141,
 | |
|     'Aerodactyl': 142, 'Snorlax': 143, 'Articuno': 144, 'Zapdos': 145, 'Moltres': 146, 'Dratini': 147, 'Dragonair': 148,
 | |
|     'Dragonite': 149, 'Mewtwo': 150, 'Mew': 151
 | |
| }
 | |
| 
 | |
| 
 | |
| type_ids = {
 | |
|     "Normal": 0x0,
 | |
|     "Fighting": 0x1,
 | |
|     "Flying": 0x2,
 | |
|     "Poison": 0x3,
 | |
|     "Ground": 0x4,
 | |
|     "Rock": 0x5,
 | |
|     "Bug": 0x7,
 | |
|     "Ghost": 0x8,
 | |
|     "Fire": 0x14,
 | |
|     "Water": 0x15,
 | |
|     "Grass": 0x16,
 | |
|     "Electric": 0x17,
 | |
|     "Psychic": 0x18,
 | |
|     "Ice": 0x19,
 | |
|     "Dragon": 0x1A
 | |
| }
 | |
| type_names = {
 | |
|     0x0: "Normal",
 | |
|     0x1: "Fighting",
 | |
|     0x2: "Flying",
 | |
|     0x3: "Poison",
 | |
|     0x4: "Ground",
 | |
|     0x5: "Rock",
 | |
|     0x7: "Bug",
 | |
|     0x8: "Ghost",
 | |
|     0x14: "Fire",
 | |
|     0x15: "Water",
 | |
|     0x16: "Grass",
 | |
|     0x17: "Electric",
 | |
|     0x18: "Psychic",
 | |
|     0x19: "Ice",
 | |
|     0x1a: "Dragon"
 | |
| }
 | |
| 
 | |
| type_chart = [
 | |
|     ["Water", "Fire", 20],
 | |
|     ["Fire", "Grass", 20],
 | |
|     ["Fire", "Ice", 20],
 | |
|     ["Grass", "Water", 20],
 | |
|     ["Electric", "Water", 20],
 | |
|     ["Water", "Rock", 20],
 | |
|     ["Ground", "Flying", 0],
 | |
|     ["Water", "Water", 5],
 | |
|     ["Fire", "Fire", 5],
 | |
|     ["Electric", "Electric", 5],
 | |
|     ["Ice", "Ice", 5],
 | |
|     ["Grass", "Grass", 5],
 | |
|     ["Psychic", "Psychic", 5],
 | |
|     ["Fire", "Water", 5],
 | |
|     ["Grass", "Fire", 5],
 | |
|     ["Water", "Grass", 5],
 | |
|     ["Electric", "Grass", 5],
 | |
|     ["Normal", "Rock", 5],
 | |
|     ["Normal", "Ghost", 0],
 | |
|     ["Ghost", "Ghost", 20],
 | |
|     ["Fire", "Bug", 20],
 | |
|     ["Fire", "Rock", 5],
 | |
|     ["Water", "Ground", 20],
 | |
|     ["Electric", "Ground", 0],
 | |
|     ["Electric", "Flying", 20],
 | |
|     ["Grass", "Ground", 20],
 | |
|     ["Grass", "Bug", 5],
 | |
|     ["Grass", "Poison", 5],
 | |
|     ["Grass", "Rock", 20],
 | |
|     ["Grass", "Flying", 5],
 | |
|     ["Ice", "Water", 5],
 | |
|     ["Ice", "Grass", 20],
 | |
|     ["Ice", "Ground", 20],
 | |
|     ["Ice", "Flying", 20],
 | |
|     ["Fighting", "Normal", 20],
 | |
|     ["Fighting", "Poison", 5],
 | |
|     ["Fighting", "Flying", 5],
 | |
|     ["Fighting", "Psychic", 5],
 | |
|     ["Fighting", "Bug", 5],
 | |
|     ["Fighting", "Rock", 20],
 | |
|     ["Fighting", "Ice", 20],
 | |
|     ["Fighting", "Ghost", 0],
 | |
|     ["Poison", "Grass", 20],
 | |
|     ["Poison", "Poison", 5],
 | |
|     ["Poison", "Ground", 5],
 | |
|     ["Poison", "Bug", 20],
 | |
|     ["Poison", "Rock", 5],
 | |
|     ["Poison", "Ghost", 5],
 | |
|     ["Ground", "Fire", 20],
 | |
|     ["Ground", "Electric", 20],
 | |
|     ["Ground", "Grass", 5],
 | |
|     ["Ground", "Bug", 5],
 | |
|     ["Ground", "Rock", 20],
 | |
|     ["Ground", "Poison", 20],
 | |
|     ["Flying", "Electric", 5],
 | |
|     ["Flying", "Fighting", 20],
 | |
|     ["Flying", "Bug", 20],
 | |
|     ["Flying", "Grass", 20],
 | |
|     ["Flying", "Rock", 5],
 | |
|     ["Psychic", "Fighting", 20],
 | |
|     ["Psychic", "Poison", 20],
 | |
|     ["Bug", "Fire", 5],
 | |
|     ["Bug", "Grass", 20],
 | |
|     ["Bug", "Fighting", 5],
 | |
|     ["Bug", "Flying", 5],
 | |
|     ["Bug", "Psychic", 20],
 | |
|     ["Bug", "Ghost", 5],
 | |
|     ["Bug", "Poison", 20],
 | |
|     ["Rock", "Fire", 20],
 | |
|     ["Rock", "Fighting", 5],
 | |
|     ["Rock", "Ground", 5],
 | |
|     ["Rock", "Flying", 20],
 | |
|     ["Rock", "Bug", 20],
 | |
|     ["Rock", "Ice", 20],
 | |
|     ["Ghost", "Normal", 0],
 | |
|     ["Ghost", "Psychic", 0],
 | |
|     ["Fire", "Dragon", 5],
 | |
|     ["Water", "Dragon", 5],
 | |
|     ["Electric", "Dragon", 5],
 | |
|     ["Grass", "Dragon", 5],
 | |
|     ["Ice", "Dragon", 20],
 | |
|     ["Dragon", "Dragon", 20]
 | |
| ]
 | |
| 
 | |
| pokemon_data = {
 | |
|     'Bulbasaur': {'id': 153, 'dex': 1, 'hp': 45, 'atk': 49, 'def': 49, 'spd': 45, 'spc': 65, 'type1': 'Grass',
 | |
|                   'type2': 'Poison', 'catch rate': 45, 'base exp': 64, 'start move 1': 'Tackle',
 | |
|                   'start move 2': 'Growl', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                   'tms': bytearray(b'\xa4\x038\xc0\x03\x08\x06')},
 | |
|     'Ivysaur': {'id': 9, 'dex': 2, 'hp': 60, 'atk': 62, 'def': 63, 'spd': 60, 'spc': 80, 'type1': 'Grass',
 | |
|                 'type2': 'Poison', 'catch rate': 45, 'base exp': 141, 'start move 1': 'Tackle', 'start move 2': 'Growl',
 | |
|                 'start move 3': 'Leech Seed', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                 'tms': bytearray(b'\xa4\x038\xc0\x03\x08\x06')},
 | |
|     'Venusaur': {'id': 154, 'dex': 3, 'hp': 80, 'atk': 82, 'def': 83, 'spd': 80, 'spc': 100, 'type1': 'Grass',
 | |
|                  'type2': 'Poison', 'catch rate': 45, 'base exp': 208, 'start move 1': 'Tackle',
 | |
|                  'start move 2': 'Growl', 'start move 3': 'Leech Seed', 'start move 4': 'Vine Whip', 'growth rate': 3,
 | |
|                  'tms': bytearray(b'\xa4C8\xc0\x03\x08\x06')},
 | |
|     'Charmander': {'id': 176, 'dex': 4, 'hp': 39, 'atk': 52, 'def': 43, 'spd': 65, 'spc': 50, 'type1': 'Fire',
 | |
|                    'type2': 'Fire', 'catch rate': 45, 'base exp': 65, 'start move 1': 'Scratch',
 | |
|                    'start move 2': 'Growl', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                    'tms': bytearray(b'\xb5\x03O\xc8\xe3\x08&')},
 | |
|     'Charmeleon': {'id': 178, 'dex': 5, 'hp': 58, 'atk': 64, 'def': 58, 'spd': 80, 'spc': 65, 'type1': 'Fire',
 | |
|                    'type2': 'Fire', 'catch rate': 45, 'base exp': 142, 'start move 1': 'Scratch',
 | |
|                    'start move 2': 'Growl', 'start move 3': 'Ember', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                    'tms': bytearray(b'\xb5\x03O\xc8\xe3\x08&')},
 | |
|     'Charizard': {'id': 180, 'dex': 6, 'hp': 78, 'atk': 84, 'def': 78, 'spd': 100, 'spc': 85, 'type1': 'Fire',
 | |
|                   'type2': 'Flying', 'catch rate': 45, 'base exp': 209, 'start move 1': 'Scratch',
 | |
|                   'start move 2': 'Growl', 'start move 3': 'Ember', 'start move 4': 'Leer', 'growth rate': 3,
 | |
|                   'tms': bytearray(b'\xb5CO\xce\xe3\x08&')},
 | |
|     'Squirtle': {'id': 177, 'dex': 7, 'hp': 44, 'atk': 48, 'def': 65, 'spd': 43, 'spc': 50, 'type1': 'Water',
 | |
|                  'type2': 'Water', 'catch rate': 45, 'base exp': 66, 'start move 1': 'Tackle',
 | |
|                  'start move 2': 'Tail Whip', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                  'tms': bytearray(b'\xb1?\x0f\xc8\x83\x082')},
 | |
|     'Wartortle': {'id': 179, 'dex': 8, 'hp': 59, 'atk': 63, 'def': 80, 'spd': 58, 'spc': 65, 'type1': 'Water',
 | |
|                   'type2': 'Water', 'catch rate': 45, 'base exp': 143, 'start move 1': 'Tackle',
 | |
|                   'start move 2': 'Tail Whip', 'start move 3': 'Bubble', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                   'tms': bytearray(b'\xb1?\x0f\xc8\x83\x082')},
 | |
|     'Blastoise': {'id': 28, 'dex': 9, 'hp': 79, 'atk': 83, 'def': 100, 'spd': 78, 'spc': 85, 'type1': 'Water',
 | |
|                   'type2': 'Water', 'catch rate': 45, 'base exp': 210, 'start move 1': 'Tackle',
 | |
|                   'start move 2': 'Tail Whip', 'start move 3': 'Bubble', 'start move 4': 'Water Gun', 'growth rate': 3,
 | |
|                   'tms': bytearray(b'\xb1\x7f\x0f\xce\x83\x082')},
 | |
|     'Caterpie': {'id': 123, 'dex': 10, 'hp': 45, 'atk': 30, 'def': 35, 'spd': 45, 'spc': 20, 'type1': 'Bug',
 | |
|                  'type2': 'Bug', 'catch rate': 255, 'base exp': 53, 'start move 1': 'Tackle',
 | |
|                  'start move 2': 'String Shot', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                  'tms': bytearray(b'\x00\x00\x00\x00\x00\x00\x00')},
 | |
|     'Metapod': {'id': 124, 'dex': 11, 'hp': 50, 'atk': 20, 'def': 55, 'spd': 30, 'spc': 25, 'type1': 'Bug',
 | |
|                 'type2': 'Bug', 'catch rate': 120, 'base exp': 72, 'start move 1': 'Harden', 'start move 2': 'No Move',
 | |
|                 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\x00\x00\x00\x00\x00\x00\x00')},
 | |
|     'Butterfree': {'id': 125, 'dex': 12, 'hp': 60, 'atk': 45, 'def': 50, 'spd': 70, 'spc': 80, 'type1': 'Bug',
 | |
|                    'type2': 'Flying', 'catch rate': 45, 'base exp': 160, 'start move 1': 'Confusion',
 | |
|                    'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                    'tms': bytearray(b'*C8\xf0C(\x02')},
 | |
|     'Weedle': {'id': 112, 'dex': 13, 'hp': 40, 'atk': 35, 'def': 30, 'spd': 50, 'spc': 20, 'type1': 'Bug',
 | |
|                'type2': 'Poison', 'catch rate': 255, 'base exp': 52, 'start move 1': 'Poison Sting',
 | |
|                'start move 2': 'String Shot', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\x00\x00\x00\x00\x00\x00\x00')},
 | |
|     'Kakuna': {'id': 113, 'dex': 14, 'hp': 45, 'atk': 25, 'def': 50, 'spd': 35, 'spc': 25, 'type1': 'Bug',
 | |
|                'type2': 'Poison', 'catch rate': 120, 'base exp': 71, 'start move 1': 'Harden',
 | |
|                'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\x00\x00\x00\x00\x00\x00\x00')},
 | |
|     'Beedrill': {'id': 114, 'dex': 15, 'hp': 65, 'atk': 80, 'def': 40, 'spd': 75, 'spc': 45, 'type1': 'Bug',
 | |
|                  'type2': 'Poison', 'catch rate': 45, 'base exp': 159, 'start move 1': 'Fury Attack',
 | |
|                  'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                  'tms': bytearray(b'$C\x18\xc0\xc3\x08\x06')},
 | |
|     'Pidgey': {'id': 36, 'dex': 16, 'hp': 40, 'atk': 45, 'def': 40, 'spd': 56, 'spc': 35, 'type1': 'Normal',
 | |
|                'type2': 'Flying', 'catch rate': 255, 'base exp': 55, 'start move 1': 'Gust', 'start move 2': 'No Move',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                'tms': bytearray(b'*\x03\x08\xc0C\x0c\n')},
 | |
|     'Pidgeotto': {'id': 150, 'dex': 17, 'hp': 63, 'atk': 60, 'def': 55, 'spd': 71, 'spc': 50, 'type1': 'Normal',
 | |
|                   'type2': 'Flying', 'catch rate': 120, 'base exp': 113, 'start move 1': 'Gust',
 | |
|                   'start move 2': 'Sand Attack', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                   'tms': bytearray(b'*\x03\x08\xc0C\x0c\n')},
 | |
|     'Pidgeot': {'id': 151, 'dex': 18, 'hp': 83, 'atk': 80, 'def': 75, 'spd': 91, 'spc': 70, 'type1': 'Normal',
 | |
|                 'type2': 'Flying', 'catch rate': 45, 'base exp': 172, 'start move 1': 'Gust',
 | |
|                 'start move 2': 'Sand Attack', 'start move 3': 'Quick Attack', 'start move 4': 'No Move',
 | |
|                 'growth rate': 3, 'tms': bytearray(b'*C\x08\xc0C\x0c\n')},
 | |
|     'Rattata': {'id': 165, 'dex': 19, 'hp': 30, 'atk': 56, 'def': 35, 'spd': 72, 'spc': 25, 'type1': 'Normal',
 | |
|                 'type2': 'Normal', 'catch rate': 255, 'base exp': 57, 'start move 1': 'Tackle',
 | |
|                 'start move 2': 'Tail Whip', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xa0/\x88\xc9\xc2\x08\x02')},
 | |
|     'Raticate': {'id': 166, 'dex': 20, 'hp': 55, 'atk': 81, 'def': 60, 'spd': 97, 'spc': 50, 'type1': 'Normal',
 | |
|                  'type2': 'Normal', 'catch rate': 90, 'base exp': 116, 'start move 1': 'Tackle',
 | |
|                  'start move 2': 'Tail Whip', 'start move 3': 'Quick Attack', 'start move 4': 'No Move',
 | |
|                  'growth rate': 0, 'tms': bytearray(b'\xa0\x7f\x88\xc9\xc2\x08\x02')},
 | |
|     'Spearow': {'id': 5, 'dex': 21, 'hp': 40, 'atk': 60, 'def': 30, 'spd': 70, 'spc': 31, 'type1': 'Normal',
 | |
|                 'type2': 'Flying', 'catch rate': 255, 'base exp': 58, 'start move 1': 'Peck', 'start move 2': 'Growl',
 | |
|                 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'*\x03\x08\xc0B\x0c\n')},
 | |
|     'Fearow': {'id': 35, 'dex': 22, 'hp': 65, 'atk': 90, 'def': 65, 'spd': 100, 'spc': 61, 'type1': 'Normal',
 | |
|                'type2': 'Flying', 'catch rate': 90, 'base exp': 162, 'start move 1': 'Peck', 'start move 2': 'Growl',
 | |
|                'start move 3': 'Leer', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'*C\x08\xc0B\x0c\n')},
 | |
|     'Ekans': {'id': 108, 'dex': 23, 'hp': 35, 'atk': 60, 'def': 44, 'spd': 55, 'spc': 40, 'type1': 'Poison',
 | |
|               'type2': 'Poison', 'catch rate': 255, 'base exp': 62, 'start move 1': 'Wrap', 'start move 2': 'Leer',
 | |
|               'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|               'tms': bytearray(b'\xa0\x03\x18\xce\x82\x88"')},
 | |
|     'Arbok': {'id': 45, 'dex': 24, 'hp': 60, 'atk': 85, 'def': 69, 'spd': 80, 'spc': 65, 'type1': 'Poison',
 | |
|               'type2': 'Poison', 'catch rate': 90, 'base exp': 147, 'start move 1': 'Wrap', 'start move 2': 'Leer',
 | |
|               'start move 3': 'Poison Sting', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|               'tms': bytearray(b'\xa0C\x18\xce\x82\x88"')},
 | |
|     'Pikachu': {'id': 84, 'dex': 25, 'hp': 35, 'atk': 55, 'def': 30, 'spd': 90, 'spc': 50, 'type1': 'Electric',
 | |
|                 'type2': 'Electric', 'catch rate': 190, 'base exp': 82, 'start move 1': 'Thundershock',
 | |
|                 'start move 2': 'Growl', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xb1\x83\x8d\xc1\xc3\x18B')},
 | |
|     'Raichu': {'id': 85, 'dex': 26, 'hp': 60, 'atk': 90, 'def': 55, 'spd': 100, 'spc': 90, 'type1': 'Electric',
 | |
|                'type2': 'Electric', 'catch rate': 75, 'base exp': 122, 'start move 1': 'Thundershock',
 | |
|                'start move 2': 'Growl', 'start move 3': 'Thunder Wave', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xb1\xc3\x8d\xc1\xc3\x18B')},
 | |
|     'Sandshrew': {'id': 96, 'dex': 27, 'hp': 50, 'atk': 75, 'def': 85, 'spd': 40, 'spc': 30, 'type1': 'Ground',
 | |
|                   'type2': 'Ground', 'catch rate': 255, 'base exp': 93, 'start move 1': 'Scratch',
 | |
|                   'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                   'tms': bytearray(b'\xa4\x03\r\xce\xc2\x88&')},
 | |
|     'Sandslash': {'id': 97, 'dex': 28, 'hp': 75, 'atk': 100, 'def': 110, 'spd': 65, 'spc': 55, 'type1': 'Ground',
 | |
|                   'type2': 'Ground', 'catch rate': 90, 'base exp': 163, 'start move 1': 'Scratch',
 | |
|                   'start move 2': 'Sand Attack', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                   'tms': bytearray(b'\xa4C\r\xce\xc2\x88&')},
 | |
|     'Nidoran F': {'id': 15, 'dex': 29, 'hp': 55, 'atk': 47, 'def': 52, 'spd': 41, 'spc': 40, 'type1': 'Poison',
 | |
|                   'type2': 'Poison', 'catch rate': 235, 'base exp': 59, 'start move 1': 'Growl',
 | |
|                   'start move 2': 'Tackle', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                   'tms': bytearray(b'\xa0#\x88\xc1\x83\x08\x02')},
 | |
|     'Nidorina': {'id': 168, 'dex': 30, 'hp': 70, 'atk': 62, 'def': 67, 'spd': 56, 'spc': 55, 'type1': 'Poison',
 | |
|                  'type2': 'Poison', 'catch rate': 120, 'base exp': 117, 'start move 1': 'Growl',
 | |
|                  'start move 2': 'Tackle', 'start move 3': 'Scratch', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                  'tms': bytearray(b'\xe0?\x88\xc1\x83\x08\x02')},
 | |
|     'Nidoqueen': {'id': 16, 'dex': 31, 'hp': 90, 'atk': 82, 'def': 87, 'spd': 76, 'spc': 75, 'type1': 'Poison',
 | |
|                   'type2': 'Ground', 'catch rate': 45, 'base exp': 194, 'start move 1': 'Tackle',
 | |
|                   'start move 2': 'Scratch', 'start move 3': 'Tail Whip', 'start move 4': 'Body Slam', 'growth rate': 3,
 | |
|                   'tms': bytearray(b'\xf1\xff\x8f\xc7\xa3\x882')},
 | |
|     'Nidoran M': {'id': 3, 'dex': 32, 'hp': 46, 'atk': 57, 'def': 40, 'spd': 50, 'spc': 40, 'type1': 'Poison',
 | |
|                   'type2': 'Poison', 'catch rate': 235, 'base exp': 60, 'start move 1': 'Leer',
 | |
|                   'start move 2': 'Tackle', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                   'tms': bytearray(b'\xe0#\x88\xc1\x83\x08\x02')},
 | |
|     'Nidorino': {'id': 167, 'dex': 33, 'hp': 61, 'atk': 72, 'def': 57, 'spd': 65, 'spc': 55, 'type1': 'Poison',
 | |
|                  'type2': 'Poison', 'catch rate': 120, 'base exp': 118, 'start move 1': 'Leer',
 | |
|                  'start move 2': 'Tackle', 'start move 3': 'Horn Attack', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                  'tms': bytearray(b'\xe0?\x88\xc1\x83\x08\x02')},
 | |
|     'Nidoking': {'id': 7, 'dex': 34, 'hp': 81, 'atk': 92, 'def': 77, 'spd': 85, 'spc': 75, 'type1': 'Poison',
 | |
|                  'type2': 'Ground', 'catch rate': 45, 'base exp': 195, 'start move 1': 'Tackle',
 | |
|                  'start move 2': 'Horn Attack', 'start move 3': 'Poison Sting', 'start move 4': 'Thrash',
 | |
|                  'growth rate': 3, 'tms': bytearray(b'\xf1\xff\x8f\xc7\xa3\x882')},
 | |
|     'Clefairy': {'id': 4, 'dex': 35, 'hp': 70, 'atk': 45, 'def': 48, 'spd': 35, 'spc': 60, 'type1': 'Normal',
 | |
|                  'type2': 'Normal', 'catch rate': 150, 'base exp': 68, 'start move 1': 'Pound', 'start move 2': 'Growl',
 | |
|                  'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 4,
 | |
|                  'tms': bytearray(b'\xb1?\xaf\xf1\xa78c')},
 | |
|     'Clefable': {'id': 142, 'dex': 36, 'hp': 95, 'atk': 70, 'def': 73, 'spd': 60, 'spc': 85, 'type1': 'Normal',
 | |
|                  'type2': 'Normal', 'catch rate': 25, 'base exp': 129, 'start move 1': 'Sing',
 | |
|                  'start move 2': 'Doubleslap', 'start move 3': 'Minimize', 'start move 4': 'Metronome',
 | |
|                  'growth rate': 4, 'tms': bytearray(b'\xb1\x7f\xaf\xf1\xa78c')},
 | |
|     'Vulpix': {'id': 82, 'dex': 37, 'hp': 38, 'atk': 41, 'def': 40, 'spd': 65, 'spc': 65, 'type1': 'Fire',
 | |
|                'type2': 'Fire', 'catch rate': 190, 'base exp': 63, 'start move 1': 'Ember', 'start move 2': 'Tail Whip',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xa0\x03\x08\xc8\xe3\x08\x02')},
 | |
|     'Ninetales': {'id': 83, 'dex': 38, 'hp': 73, 'atk': 76, 'def': 75, 'spd': 100, 'spc': 100, 'type1': 'Fire',
 | |
|                   'type2': 'Fire', 'catch rate': 75, 'base exp': 178, 'start move 1': 'Ember',
 | |
|                   'start move 2': 'Tail Whip', 'start move 3': 'Quick Attack', 'start move 4': 'Roar', 'growth rate': 0,
 | |
|                   'tms': bytearray(b'\xa0C\x08\xc8\xe3\x08\x02')},
 | |
|     'Jigglypuff': {'id': 100, 'dex': 39, 'hp': 115, 'atk': 45, 'def': 20, 'spd': 20, 'spc': 25, 'type1': 'Normal',
 | |
|                    'type2': 'Normal', 'catch rate': 170, 'base exp': 76, 'start move 1': 'Sing',
 | |
|                    'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 4,
 | |
|                    'tms': bytearray(b'\xb1?\xaf\xf1\xa38c')},
 | |
|     'Wigglytuff': {'id': 101, 'dex': 40, 'hp': 140, 'atk': 70, 'def': 45, 'spd': 45, 'spc': 50, 'type1': 'Normal',
 | |
|                    'type2': 'Normal', 'catch rate': 50, 'base exp': 109, 'start move 1': 'Sing',
 | |
|                    'start move 2': 'Disable', 'start move 3': 'Defense Curl', 'start move 4': 'Doubleslap',
 | |
|                    'growth rate': 4, 'tms': bytearray(b'\xb1\x7f\xaf\xf1\xa38c')},
 | |
|     'Zubat': {'id': 107, 'dex': 41, 'hp': 40, 'atk': 45, 'def': 35, 'spd': 55, 'spc': 40, 'type1': 'Poison',
 | |
|               'type2': 'Flying', 'catch rate': 255, 'base exp': 54, 'start move 1': 'Leech Life',
 | |
|               'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|               'tms': bytearray(b'*\x03\x18\xc0B\x08\x02')},
 | |
|     'Golbat': {'id': 130, 'dex': 42, 'hp': 75, 'atk': 80, 'def': 70, 'spd': 90, 'spc': 75, 'type1': 'Poison',
 | |
|                'type2': 'Flying', 'catch rate': 90, 'base exp': 171, 'start move 1': 'Leech Life',
 | |
|                'start move 2': 'Screech', 'start move 3': 'Bite', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'*C\x18\xc0B\x08\x02')},
 | |
|     'Oddish': {'id': 185, 'dex': 43, 'hp': 45, 'atk': 50, 'def': 55, 'spd': 30, 'spc': 75, 'type1': 'Grass',
 | |
|                'type2': 'Poison', 'catch rate': 255, 'base exp': 78, 'start move 1': 'Absorb',
 | |
|                'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                'tms': bytearray(b'$\x038\xc0\x03\x08\x06')},
 | |
|     'Gloom': {'id': 186, 'dex': 44, 'hp': 60, 'atk': 65, 'def': 70, 'spd': 40, 'spc': 85, 'type1': 'Grass',
 | |
|               'type2': 'Poison', 'catch rate': 120, 'base exp': 132, 'start move 1': 'Absorb',
 | |
|               'start move 2': 'Poisonpowder', 'start move 3': 'Stun Spore', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|               'tms': bytearray(b'$\x038\xc0\x03\x08\x06')},
 | |
|     'Vileplume': {'id': 187, 'dex': 45, 'hp': 75, 'atk': 80, 'def': 85, 'spd': 50, 'spc': 100, 'type1': 'Grass',
 | |
|                   'type2': 'Poison', 'catch rate': 45, 'base exp': 184, 'start move 1': 'Stun Spore',
 | |
|                   'start move 2': 'Sleep Powder', 'start move 3': 'Acid', 'start move 4': 'Petal Dance',
 | |
|                   'growth rate': 3, 'tms': bytearray(b'\xa4C8\xc0\x03\x08\x06')},
 | |
|     'Paras': {'id': 109, 'dex': 46, 'hp': 35, 'atk': 70, 'def': 55, 'spd': 25, 'spc': 55, 'type1': 'Bug',
 | |
|               'type2': 'Grass', 'catch rate': 190, 'base exp': 70, 'start move 1': 'Scratch', 'start move 2': 'No Move',
 | |
|               'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|               'tms': bytearray(b'\xa4\x038\xc8\x83\x08\x06')},
 | |
|     'Parasect': {'id': 46, 'dex': 47, 'hp': 60, 'atk': 95, 'def': 80, 'spd': 30, 'spc': 80, 'type1': 'Bug',
 | |
|                  'type2': 'Grass', 'catch rate': 75, 'base exp': 128, 'start move 1': 'Scratch',
 | |
|                  'start move 2': 'Stun Spore', 'start move 3': 'Leech Life', 'start move 4': 'No Move',
 | |
|                  'growth rate': 0, 'tms': bytearray(b'\xa4C8\xc8\x83\x08\x06')},
 | |
|     'Venonat': {'id': 65, 'dex': 48, 'hp': 60, 'atk': 55, 'def': 50, 'spd': 45, 'spc': 40, 'type1': 'Bug',
 | |
|                 'type2': 'Poison', 'catch rate': 190, 'base exp': 75, 'start move 1': 'Tackle',
 | |
|                 'start move 2': 'Disable', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b' \x038\xd0\x03(\x02')},
 | |
|     'Venomoth': {'id': 119, 'dex': 49, 'hp': 70, 'atk': 65, 'def': 60, 'spd': 90, 'spc': 90, 'type1': 'Bug',
 | |
|                  'type2': 'Poison', 'catch rate': 75, 'base exp': 138, 'start move 1': 'Tackle',
 | |
|                  'start move 2': 'Disable', 'start move 3': 'Poisonpowder', 'start move 4': 'Leech Life',
 | |
|                  'growth rate': 0, 'tms': bytearray(b'*C8\xf0C(\x02')},
 | |
|     'Diglett': {'id': 59, 'dex': 50, 'hp': 10, 'atk': 55, 'def': 25, 'spd': 95, 'spc': 45, 'type1': 'Ground',
 | |
|                 'type2': 'Ground', 'catch rate': 255, 'base exp': 81, 'start move 1': 'Scratch',
 | |
|                 'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xa0\x03\x08\xce\x02\x88\x02')},
 | |
|     'Dugtrio': {'id': 118, 'dex': 51, 'hp': 35, 'atk': 80, 'def': 50, 'spd': 120, 'spc': 70, 'type1': 'Ground',
 | |
|                 'type2': 'Ground', 'catch rate': 50, 'base exp': 153, 'start move 1': 'Scratch',
 | |
|                 'start move 2': 'Growl', 'start move 3': 'Dig', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xa0C\x08\xce\x02\x88\x02')},
 | |
|     'Meowth': {'id': 77, 'dex': 52, 'hp': 40, 'atk': 45, 'def': 35, 'spd': 90, 'spc': 40, 'type1': 'Normal',
 | |
|                'type2': 'Normal', 'catch rate': 255, 'base exp': 69, 'start move 1': 'Scratch', 'start move 2': 'Growl',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xa0\x8f\x88\xc1\xc2\x08\x02')},
 | |
|     'Persian': {'id': 144, 'dex': 53, 'hp': 65, 'atk': 70, 'def': 60, 'spd': 115, 'spc': 65, 'type1': 'Normal',
 | |
|                 'type2': 'Normal', 'catch rate': 90, 'base exp': 148, 'start move 1': 'Scratch',
 | |
|                 'start move 2': 'Growl', 'start move 3': 'Bite', 'start move 4': 'Screech', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xa0\xcf\x88\xc1\xc2\x08\x02')},
 | |
|     'Psyduck': {'id': 47, 'dex': 54, 'hp': 50, 'atk': 52, 'def': 48, 'spd': 55, 'spc': 50, 'type1': 'Water',
 | |
|                 'type2': 'Water', 'catch rate': 190, 'base exp': 80, 'start move 1': 'Scratch',
 | |
|                 'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xb1\xbf\x0f\xc8\xc2\x082')},
 | |
|     'Golduck': {'id': 128, 'dex': 55, 'hp': 80, 'atk': 82, 'def': 78, 'spd': 85, 'spc': 80, 'type1': 'Water',
 | |
|                 'type2': 'Water', 'catch rate': 75, 'base exp': 174, 'start move 1': 'Scratch',
 | |
|                 'start move 2': 'Tail Whip', 'start move 3': 'Disable', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xb1\xff\x0f\xc8\xc2\x082')},
 | |
|     'Mankey': {'id': 57, 'dex': 56, 'hp': 40, 'atk': 80, 'def': 35, 'spd': 70, 'spc': 35, 'type1': 'Fighting',
 | |
|                'type2': 'Fighting', 'catch rate': 190, 'base exp': 74, 'start move 1': 'Scratch',
 | |
|                'start move 2': 'Leer', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xb1\x83\x8f\xc9\xc6\x88"')},
 | |
|     'Primeape': {'id': 117, 'dex': 57, 'hp': 65, 'atk': 105, 'def': 60, 'spd': 95, 'spc': 60, 'type1': 'Fighting',
 | |
|                  'type2': 'Fighting', 'catch rate': 75, 'base exp': 149, 'start move 1': 'Scratch',
 | |
|                  'start move 2': 'Leer', 'start move 3': 'Karate Chop', 'start move 4': 'Fury Swipes', 'growth rate': 0,
 | |
|                  'tms': bytearray(b'\xb1\xc3\x8f\xc9\xc6\x88"')},
 | |
|     'Growlithe': {'id': 33, 'dex': 58, 'hp': 55, 'atk': 70, 'def': 45, 'spd': 60, 'spc': 50, 'type1': 'Fire',
 | |
|                   'type2': 'Fire', 'catch rate': 190, 'base exp': 91, 'start move 1': 'Bite', 'start move 2': 'Roar',
 | |
|                   'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                   'tms': bytearray(b'\xa0\x03H\xc8\xe3\x08\x02')},
 | |
|     'Arcanine': {'id': 20, 'dex': 59, 'hp': 90, 'atk': 110, 'def': 80, 'spd': 95, 'spc': 80, 'type1': 'Fire',
 | |
|                  'type2': 'Fire', 'catch rate': 75, 'base exp': 213, 'start move 1': 'Roar', 'start move 2': 'Ember',
 | |
|                  'start move 3': 'Leer', 'start move 4': 'Take Down', 'growth rate': 5,
 | |
|                  'tms': bytearray(b'\xa0CH\xe8\xe3\x08\x02')},
 | |
|     'Poliwag': {'id': 71, 'dex': 60, 'hp': 40, 'atk': 50, 'def': 40, 'spd': 90, 'spc': 40, 'type1': 'Water',
 | |
|                 'type2': 'Water', 'catch rate': 255, 'base exp': 77, 'start move 1': 'Bubble',
 | |
|                 'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                 'tms': bytearray(b'\xa0?\x08\xd0\x82(\x12')},
 | |
|     'Poliwhirl': {'id': 110, 'dex': 61, 'hp': 65, 'atk': 65, 'def': 65, 'spd': 90, 'spc': 50, 'type1': 'Water',
 | |
|                   'type2': 'Water', 'catch rate': 120, 'base exp': 131, 'start move 1': 'Bubble',
 | |
|                   'start move 2': 'Hypnosis', 'start move 3': 'Water Gun', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                   'tms': bytearray(b'\xb1?\x0f\xd6\x86(2')},
 | |
|     'Poliwrath': {'id': 111, 'dex': 62, 'hp': 90, 'atk': 85, 'def': 95, 'spd': 70, 'spc': 70, 'type1': 'Water',
 | |
|                   'type2': 'Fighting', 'catch rate': 45, 'base exp': 185, 'start move 1': 'Hypnosis',
 | |
|                   'start move 2': 'Water Gun', 'start move 3': 'Doubleslap', 'start move 4': 'Body Slam',
 | |
|                   'growth rate': 3, 'tms': bytearray(b'\xb1\x7f\x0f\xd6\x86(2')},
 | |
|     'Abra': {'id': 148, 'dex': 63, 'hp': 25, 'atk': 20, 'def': 15, 'spd': 90, 'spc': 105, 'type1': 'Psychic',
 | |
|              'type2': 'Psychic', 'catch rate': 200, 'base exp': 73, 'start move 1': 'Teleport',
 | |
|              'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|              'tms': bytearray(b'\xb1\x03\x0f\xf0\x878C')},
 | |
|     'Kadabra': {'id': 38, 'dex': 64, 'hp': 40, 'atk': 35, 'def': 30, 'spd': 105, 'spc': 120, 'type1': 'Psychic',
 | |
|                 'type2': 'Psychic', 'catch rate': 100, 'base exp': 145, 'start move 1': 'Teleport',
 | |
|                 'start move 2': 'Confusion', 'start move 3': 'Disable', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                 'tms': bytearray(b'\xb1\x03\x0f\xf8\x878C')},
 | |
|     'Alakazam': {'id': 149, 'dex': 65, 'hp': 55, 'atk': 50, 'def': 45, 'spd': 120, 'spc': 135, 'type1': 'Psychic',
 | |
|                  'type2': 'Psychic', 'catch rate': 50, 'base exp': 186, 'start move 1': 'Teleport',
 | |
|                  'start move 2': 'Confusion', 'start move 3': 'Disable', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                  'tms': bytearray(b'\xb1C\x0f\xf8\x878C')},
 | |
|     'Machop': {'id': 106, 'dex': 66, 'hp': 70, 'atk': 80, 'def': 50, 'spd': 35, 'spc': 35, 'type1': 'Fighting',
 | |
|                'type2': 'Fighting', 'catch rate': 180, 'base exp': 88, 'start move 1': 'Karate Chop',
 | |
|                'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                'tms': bytearray(b'\xb1\x03\x0f\xce\xa6\x88"')},
 | |
|     'Machoke': {'id': 41, 'dex': 67, 'hp': 80, 'atk': 100, 'def': 70, 'spd': 45, 'spc': 50, 'type1': 'Fighting',
 | |
|                 'type2': 'Fighting', 'catch rate': 90, 'base exp': 146, 'start move 1': 'Karate Chop',
 | |
|                 'start move 2': 'Low Kick', 'start move 3': 'Leer', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                 'tms': bytearray(b'\xb1\x03\x0f\xce\xa6\x88"')},
 | |
|     'Machamp': {'id': 126, 'dex': 68, 'hp': 90, 'atk': 130, 'def': 80, 'spd': 55, 'spc': 65, 'type1': 'Fighting',
 | |
|                 'type2': 'Fighting', 'catch rate': 45, 'base exp': 193, 'start move 1': 'Karate Chop',
 | |
|                 'start move 2': 'Low Kick', 'start move 3': 'Leer', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                 'tms': bytearray(b'\xb1C\x0f\xce\xa6\x88"')},
 | |
|     'Bellsprout': {'id': 188, 'dex': 69, 'hp': 50, 'atk': 75, 'def': 35, 'spd': 40, 'spc': 70, 'type1': 'Grass',
 | |
|                    'type2': 'Poison', 'catch rate': 255, 'base exp': 84, 'start move 1': 'Vine Whip',
 | |
|                    'start move 2': 'Growth', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                    'tms': bytearray(b'$\x038\xc0\x03\x08\x06')},
 | |
|     'Weepinbell': {'id': 189, 'dex': 70, 'hp': 65, 'atk': 90, 'def': 50, 'spd': 55, 'spc': 85, 'type1': 'Grass',
 | |
|                    'type2': 'Poison', 'catch rate': 120, 'base exp': 151, 'start move 1': 'Vine Whip',
 | |
|                    'start move 2': 'Growth', 'start move 3': 'Wrap', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                    'tms': bytearray(b'$\x038\xc0\x03\x08\x06')},
 | |
|     'Victreebel': {'id': 190, 'dex': 71, 'hp': 80, 'atk': 105, 'def': 65, 'spd': 70, 'spc': 100, 'type1': 'Grass',
 | |
|                    'type2': 'Poison', 'catch rate': 45, 'base exp': 191, 'start move 1': 'Sleep Powder',
 | |
|                    'start move 2': 'Stun Spore', 'start move 3': 'Acid', 'start move 4': 'Razor Leaf', 'growth rate': 3,
 | |
|                    'tms': bytearray(b'\xa4C8\xc0\x03\x08\x06')},
 | |
|     'Tentacool': {'id': 24, 'dex': 72, 'hp': 40, 'atk': 40, 'def': 35, 'spd': 70, 'spc': 100, 'type1': 'Water',
 | |
|                   'type2': 'Poison', 'catch rate': 190, 'base exp': 105, 'start move 1': 'Acid',
 | |
|                   'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                   'tms': bytearray(b'$?\x18\xc0\x83\x08\x16')},
 | |
|     'Tentacruel': {'id': 155, 'dex': 73, 'hp': 80, 'atk': 70, 'def': 65, 'spd': 100, 'spc': 120, 'type1': 'Water',
 | |
|                    'type2': 'Poison', 'catch rate': 60, 'base exp': 205, 'start move 1': 'Acid',
 | |
|                    'start move 2': 'Supersonic', 'start move 3': 'Wrap', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                    'tms': bytearray(b'$\x7f\x18\xc0\x83\x08\x16')},
 | |
|     'Geodude': {'id': 169, 'dex': 74, 'hp': 40, 'atk': 80, 'def': 100, 'spd': 20, 'spc': 30, 'type1': 'Rock',
 | |
|                 'type2': 'Ground', 'catch rate': 255, 'base exp': 86, 'start move 1': 'Tackle',
 | |
|                 'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                 'tms': bytearray(b'\xa1\x03\x0f\xce.\xc8"')},
 | |
|     'Graveler': {'id': 39, 'dex': 75, 'hp': 55, 'atk': 95, 'def': 115, 'spd': 35, 'spc': 45, 'type1': 'Rock',
 | |
|                  'type2': 'Ground', 'catch rate': 120, 'base exp': 134, 'start move 1': 'Tackle',
 | |
|                  'start move 2': 'Defense Curl', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|                  'tms': bytearray(b'\xa1\x03\x0f\xce.\xc8"')},
 | |
|     'Golem': {'id': 49, 'dex': 76, 'hp': 80, 'atk': 110, 'def': 130, 'spd': 45, 'spc': 55, 'type1': 'Rock',
 | |
|               'type2': 'Ground', 'catch rate': 45, 'base exp': 177, 'start move 1': 'Tackle',
 | |
|               'start move 2': 'Defense Curl', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|               'tms': bytearray(b'\xb1C\x0f\xce.\xc8"')},
 | |
|     'Ponyta': {'id': 163, 'dex': 77, 'hp': 50, 'atk': 85, 'def': 55, 'spd': 90, 'spc': 65, 'type1': 'Fire',
 | |
|                'type2': 'Fire', 'catch rate': 190, 'base exp': 152, 'start move 1': 'Ember', 'start move 2': 'No Move',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xe0\x03\x08\xc0\xe3\x08\x02')},
 | |
|     'Rapidash': {'id': 164, 'dex': 78, 'hp': 65, 'atk': 100, 'def': 70, 'spd': 105, 'spc': 80, 'type1': 'Fire',
 | |
|                  'type2': 'Fire', 'catch rate': 60, 'base exp': 192, 'start move 1': 'Ember',
 | |
|                  'start move 2': 'Tail Whip', 'start move 3': 'Stomp', 'start move 4': 'Growl', 'growth rate': 0,
 | |
|                  'tms': bytearray(b'\xe0C\x08\xc0\xe3\x08\x02')},
 | |
|     'Slowpoke': {'id': 37, 'dex': 79, 'hp': 90, 'atk': 65, 'def': 65, 'spd': 15, 'spc': 40, 'type1': 'Water',
 | |
|                  'type2': 'Psychic', 'catch rate': 190, 'base exp': 99, 'start move 1': 'Confusion',
 | |
|                  'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                  'tms': bytearray(b'\xa0\xbf\x08\xfe\xe38s')},
 | |
|     'Slowbro': {'id': 8, 'dex': 80, 'hp': 95, 'atk': 75, 'def': 110, 'spd': 30, 'spc': 80, 'type1': 'Water',
 | |
|                 'type2': 'Psychic', 'catch rate': 75, 'base exp': 164, 'start move 1': 'Confusion',
 | |
|                 'start move 2': 'Disable', 'start move 3': 'Headbutt', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xb1\xff\x0f\xfe\xe38s')},
 | |
|     'Magnemite': {'id': 173, 'dex': 81, 'hp': 25, 'atk': 35, 'def': 70, 'spd': 45, 'spc': 95, 'type1': 'Electric',
 | |
|                   'type2': 'Electric', 'catch rate': 190, 'base exp': 89, 'start move 1': 'Tackle',
 | |
|                   'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                   'tms': bytearray(b' \x03\x88\xe1C\x18B')},
 | |
|     'Magneton': {'id': 54, 'dex': 82, 'hp': 50, 'atk': 60, 'def': 95, 'spd': 70, 'spc': 120, 'type1': 'Electric',
 | |
|                  'type2': 'Electric', 'catch rate': 60, 'base exp': 161, 'start move 1': 'Tackle',
 | |
|                  'start move 2': 'Sonicboom', 'start move 3': 'Thundershock', 'start move 4': 'No Move',
 | |
|                  'growth rate': 0, 'tms': bytearray(b' C\x88\xe1C\x18B')},
 | |
|     'Farfetchd': {'id': 64, 'dex': 83, 'hp': 52, 'atk': 65, 'def': 55, 'spd': 60, 'spc': 58, 'type1': 'Normal',
 | |
|                   'type2': 'Flying', 'catch rate': 45, 'base exp': 94, 'start move 1': 'Peck',
 | |
|                   'start move 2': 'Sand Attack', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                   'tms': bytearray(b'\xae\x03\x08\xc0\xc3\x08\x0e')},
 | |
|     'Doduo': {'id': 70, 'dex': 84, 'hp': 35, 'atk': 85, 'def': 45, 'spd': 75, 'spc': 35, 'type1': 'Normal',
 | |
|               'type2': 'Flying', 'catch rate': 190, 'base exp': 96, 'start move 1': 'Peck', 'start move 2': 'No Move',
 | |
|               'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|               'tms': bytearray(b'\xa8\x03\x08\xc0\x83\x0c\x0b')},
 | |
|     'Dodrio': {'id': 116, 'dex': 85, 'hp': 60, 'atk': 110, 'def': 70, 'spd': 100, 'spc': 60, 'type1': 'Normal',
 | |
|                'type2': 'Flying', 'catch rate': 45, 'base exp': 158, 'start move 1': 'Peck', 'start move 2': 'Growl',
 | |
|                'start move 3': 'Fury Attack', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xa8C\x08\xc0\x83\x0c\x0b')},
 | |
|     'Seel': {'id': 58, 'dex': 86, 'hp': 65, 'atk': 45, 'def': 55, 'spd': 45, 'spc': 70, 'type1': 'Water',
 | |
|              'type2': 'Water', 'catch rate': 190, 'base exp': 100, 'start move 1': 'Headbutt',
 | |
|              'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|              'tms': bytearray(b'\xe0\xbf\x08\xc0\x82\x082')},
 | |
|     'Dewgong': {'id': 120, 'dex': 87, 'hp': 90, 'atk': 70, 'def': 80, 'spd': 70, 'spc': 95, 'type1': 'Water',
 | |
|                 'type2': 'Ice', 'catch rate': 75, 'base exp': 176, 'start move 1': 'Headbutt', 'start move 2': 'Growl',
 | |
|                 'start move 3': 'Aurora Beam', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xe0\xff\x08\xc0\x82\x082')},
 | |
|     'Grimer': {'id': 13, 'dex': 88, 'hp': 80, 'atk': 80, 'def': 50, 'spd': 25, 'spc': 40, 'type1': 'Poison',
 | |
|                'type2': 'Poison', 'catch rate': 190, 'base exp': 90, 'start move 1': 'Pound', 'start move 2': 'Disable',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xa0\x00\x98\xc1*H\x02')},
 | |
|     'Muk': {'id': 136, 'dex': 89, 'hp': 105, 'atk': 105, 'def': 75, 'spd': 50, 'spc': 65, 'type1': 'Poison',
 | |
|             'type2': 'Poison', 'catch rate': 75, 'base exp': 157, 'start move 1': 'Pound', 'start move 2': 'Disable',
 | |
|             'start move 3': 'Poison Gas', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|             'tms': bytearray(b'\xa0@\x98\xc1*H\x02')},
 | |
|     'Shellder': {'id': 23, 'dex': 90, 'hp': 30, 'atk': 65, 'def': 100, 'spd': 40, 'spc': 45, 'type1': 'Water',
 | |
|                  'type2': 'Water', 'catch rate': 190, 'base exp': 97, 'start move 1': 'Tackle',
 | |
|                  'start move 2': 'Withdraw', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                  'tms': bytearray(b' ?\x08\xe0KH\x13')},
 | |
|     'Cloyster': {'id': 139, 'dex': 91, 'hp': 50, 'atk': 95, 'def': 180, 'spd': 70, 'spc': 85, 'type1': 'Water',
 | |
|                  'type2': 'Ice', 'catch rate': 60, 'base exp': 203, 'start move 1': 'Withdraw',
 | |
|                  'start move 2': 'Supersonic', 'start move 3': 'Clamp', 'start move 4': 'Aurora Beam', 'growth rate': 5,
 | |
|                  'tms': bytearray(b' \x7f\x08\xe0KH\x13')},
 | |
|     'Gastly': {'id': 25, 'dex': 92, 'hp': 30, 'atk': 35, 'def': 30, 'spd': 80, 'spc': 100, 'type1': 'Ghost',
 | |
|                'type2': 'Poison', 'catch rate': 190, 'base exp': 95, 'start move 1': 'Lick',
 | |
|                'start move 2': 'Confuse Ray', 'start move 3': 'Night Shade', 'start move 4': 'No Move',
 | |
|                'growth rate': 3, 'tms': bytearray(b' \x00\x98\xd1\nj\x02')},
 | |
|     'Haunter': {'id': 147, 'dex': 93, 'hp': 45, 'atk': 50, 'def': 45, 'spd': 95, 'spc': 115, 'type1': 'Ghost',
 | |
|                 'type2': 'Poison', 'catch rate': 90, 'base exp': 126, 'start move 1': 'Lick',
 | |
|                 'start move 2': 'Confuse Ray', 'start move 3': 'Night Shade', 'start move 4': 'No Move',
 | |
|                 'growth rate': 3, 'tms': bytearray(b' \x00\x98\xd1\nj\x02')},
 | |
|     'Gengar': {'id': 14, 'dex': 94, 'hp': 60, 'atk': 65, 'def': 60, 'spd': 110, 'spc': 130, 'type1': 'Ghost',
 | |
|                'type2': 'Poison', 'catch rate': 45, 'base exp': 190, 'start move 1': 'Lick',
 | |
|                'start move 2': 'Confuse Ray', 'start move 3': 'Night Shade', 'start move 4': 'No Move',
 | |
|                'growth rate': 3, 'tms': bytearray(b'\xb1C\x9f\xd1\x8ej"')},
 | |
|     'Onix': {'id': 34, 'dex': 95, 'hp': 35, 'atk': 45, 'def': 160, 'spd': 70, 'spc': 30, 'type1': 'Rock',
 | |
|              'type2': 'Ground', 'catch rate': 45, 'base exp': 108, 'start move 1': 'Tackle', 'start move 2': 'Screech',
 | |
|              'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|              'tms': bytearray(b'\xa0\x03\x08\xce\x8a\xc8"')},
 | |
|     'Drowzee': {'id': 48, 'dex': 96, 'hp': 60, 'atk': 48, 'def': 45, 'spd': 42, 'spc': 90, 'type1': 'Psychic',
 | |
|                 'type2': 'Psychic', 'catch rate': 190, 'base exp': 102, 'start move 1': 'Pound',
 | |
|                 'start move 2': 'Hypnosis', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xb1\x03\x0f\xf0\x87:C')},
 | |
|     'Hypno': {'id': 129, 'dex': 97, 'hp': 85, 'atk': 73, 'def': 70, 'spd': 67, 'spc': 115, 'type1': 'Psychic',
 | |
|               'type2': 'Psychic', 'catch rate': 75, 'base exp': 165, 'start move 1': 'Pound',
 | |
|               'start move 2': 'Hypnosis', 'start move 3': 'Disable', 'start move 4': 'Confusion', 'growth rate': 0,
 | |
|               'tms': bytearray(b'\xb1C\x0f\xf0\x87:C')},
 | |
|     'Krabby': {'id': 78, 'dex': 98, 'hp': 30, 'atk': 105, 'def': 90, 'spd': 50, 'spc': 25, 'type1': 'Water',
 | |
|                'type2': 'Water', 'catch rate': 225, 'base exp': 115, 'start move 1': 'Bubble', 'start move 2': 'Leer',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xa4?\x08\xc0\x02\x086')},
 | |
|     'Kingler': {'id': 138, 'dex': 99, 'hp': 55, 'atk': 130, 'def': 115, 'spd': 75, 'spc': 50, 'type1': 'Water',
 | |
|                 'type2': 'Water', 'catch rate': 60, 'base exp': 206, 'start move 1': 'Bubble', 'start move 2': 'Leer',
 | |
|                 'start move 3': 'Vicegrip', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xa4\x7f\x08\xc0\x02\x086')},
 | |
|     'Voltorb': {'id': 6, 'dex': 100, 'hp': 40, 'atk': 30, 'def': 50, 'spd': 100, 'spc': 55, 'type1': 'Electric',
 | |
|                 'type2': 'Electric', 'catch rate': 190, 'base exp': 103, 'start move 1': 'Tackle',
 | |
|                 'start move 2': 'Screech', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b' \x01\x88\xe1KXB')},
 | |
|     'Electrode': {'id': 141, 'dex': 101, 'hp': 60, 'atk': 50, 'def': 70, 'spd': 140, 'spc': 80, 'type1': 'Electric',
 | |
|                   'type2': 'Electric', 'catch rate': 60, 'base exp': 150, 'start move 1': 'Tackle',
 | |
|                   'start move 2': 'Screech', 'start move 3': 'Sonicboom', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                   'tms': bytearray(b' A\x88\xe1\xcbXB')},
 | |
|     'Exeggcute': {'id': 12, 'dex': 102, 'hp': 60, 'atk': 40, 'def': 80, 'spd': 40, 'spc': 60, 'type1': 'Grass',
 | |
|                   'type2': 'Psychic', 'catch rate': 90, 'base exp': 98, 'start move 1': 'Barrage',
 | |
|                   'start move 2': 'Hypnosis', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                   'tms': bytearray(b' \x03\x08\xf0\x1bh\x02')},
 | |
|     'Exeggutor': {'id': 10, 'dex': 103, 'hp': 95, 'atk': 95, 'def': 85, 'spd': 55, 'spc': 125, 'type1': 'Grass',
 | |
|                   'type2': 'Psychic', 'catch rate': 45, 'base exp': 212, 'start move 1': 'Barrage',
 | |
|                   'start move 2': 'Hypnosis', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                   'tms': bytearray(b' C8\xf0\x1bh"')},
 | |
|     'Cubone': {'id': 17, 'dex': 104, 'hp': 50, 'atk': 50, 'def': 95, 'spd': 35, 'spc': 40, 'type1': 'Ground',
 | |
|                'type2': 'Ground', 'catch rate': 190, 'base exp': 87, 'start move 1': 'Bone Club',
 | |
|                'start move 2': 'Growl', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xb1?\x0f\xce\xa2\x08"')},
 | |
|     'Marowak': {'id': 145, 'dex': 105, 'hp': 60, 'atk': 80, 'def': 110, 'spd': 45, 'spc': 50, 'type1': 'Ground',
 | |
|                 'type2': 'Ground', 'catch rate': 75, 'base exp': 124, 'start move 1': 'Bone Club',
 | |
|                 'start move 2': 'Growl', 'start move 3': 'Leer', 'start move 4': 'Focus Energy', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xb1\x7f\x0f\xce\xa2\x08"')},
 | |
|     'Hitmonlee': {'id': 43, 'dex': 106, 'hp': 50, 'atk': 120, 'def': 53, 'spd': 87, 'spc': 35, 'type1': 'Fighting',
 | |
|                   'type2': 'Fighting', 'catch rate': 45, 'base exp': 139, 'start move 1': 'Double Kick',
 | |
|                   'start move 2': 'Meditate', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                   'tms': bytearray(b'\xb1\x03\x0f\xc0\xc6\x08"')},
 | |
|     'Hitmonchan': {'id': 44, 'dex': 107, 'hp': 50, 'atk': 105, 'def': 79, 'spd': 76, 'spc': 35, 'type1': 'Fighting',
 | |
|                    'type2': 'Fighting', 'catch rate': 45, 'base exp': 140, 'start move 1': 'Comet Punch',
 | |
|                    'start move 2': 'Agility', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                    'tms': bytearray(b'\xb1\x03\x0f\xc0\xc6\x08"')},
 | |
|     'Lickitung': {'id': 11, 'dex': 108, 'hp': 90, 'atk': 55, 'def': 75, 'spd': 30, 'spc': 60, 'type1': 'Normal',
 | |
|                   'type2': 'Normal', 'catch rate': 45, 'base exp': 127, 'start move 1': 'Wrap',
 | |
|                   'start move 2': 'Supersonic', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                   'tms': bytearray(b'\xb5\x7f\x8f\xc7\xa2\x086')},
 | |
|     'Koffing': {'id': 55, 'dex': 109, 'hp': 40, 'atk': 65, 'def': 95, 'spd': 35, 'spc': 60, 'type1': 'Poison',
 | |
|                 'type2': 'Poison', 'catch rate': 190, 'base exp': 114, 'start move 1': 'Tackle', 'start move 2': 'Smog',
 | |
|                 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b' \x00\x88\xc1*H\x02')},
 | |
|     'Weezing': {'id': 143, 'dex': 110, 'hp': 65, 'atk': 90, 'def': 120, 'spd': 60, 'spc': 85, 'type1': 'Poison',
 | |
|                 'type2': 'Poison', 'catch rate': 60, 'base exp': 173, 'start move 1': 'Tackle', 'start move 2': 'Smog',
 | |
|                 'start move 3': 'Sludge', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b' @\x88\xc1*H\x02')},
 | |
|     'Rhyhorn': {'id': 18, 'dex': 111, 'hp': 80, 'atk': 85, 'def': 95, 'spd': 25, 'spc': 30, 'type1': 'Ground',
 | |
|                 'type2': 'Rock', 'catch rate': 120, 'base exp': 135, 'start move 1': 'Horn Attack',
 | |
|                 'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                 'tms': bytearray(b'\xe0\x03\x88\xcf\xa2\x88"')},
 | |
|     'Rhydon': {'id': 1, 'dex': 112, 'hp': 105, 'atk': 130, 'def': 120, 'spd': 40, 'spc': 45, 'type1': 'Ground',
 | |
|                'type2': 'Rock', 'catch rate': 60, 'base exp': 204, 'start move 1': 'Horn Attack',
 | |
|                'start move 2': 'Stomp', 'start move 3': 'Tail Whip', 'start move 4': 'Fury Attack', 'growth rate': 5,
 | |
|                'tms': bytearray(b'\xf1\xff\x8f\xcf\xa2\x882')},
 | |
|     'Chansey': {'id': 40, 'dex': 113, 'hp': 250, 'atk': 5, 'def': 5, 'spd': 50, 'spc': 105, 'type1': 'Normal',
 | |
|                 'type2': 'Normal', 'catch rate': 30, 'base exp': 255, 'start move 1': 'Pound',
 | |
|                 'start move 2': 'Doubleslap', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 4,
 | |
|                 'tms': bytearray(b'\xb1\x7f\xaf\xf1\xb79c')},
 | |
|     'Tangela': {'id': 30, 'dex': 114, 'hp': 65, 'atk': 55, 'def': 115, 'spd': 60, 'spc': 100, 'type1': 'Grass',
 | |
|                 'type2': 'Grass', 'catch rate': 45, 'base exp': 166, 'start move 1': 'Constrict',
 | |
|                 'start move 2': 'Bind', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xa4C8\xc0\x82\x08\x06')},
 | |
|     'Kangaskhan': {'id': 2, 'dex': 115, 'hp': 105, 'atk': 95, 'def': 80, 'spd': 90, 'spc': 40, 'type1': 'Normal',
 | |
|                    'type2': 'Normal', 'catch rate': 45, 'base exp': 175, 'start move 1': 'Comet Punch',
 | |
|                    'start move 2': 'Rage', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                    'tms': bytearray(b'\xb1\x7f\x8f\xc7\xa2\x882')},
 | |
|     'Horsea': {'id': 92, 'dex': 116, 'hp': 30, 'atk': 40, 'def': 70, 'spd': 60, 'spc': 70, 'type1': 'Water',
 | |
|                'type2': 'Water', 'catch rate': 225, 'base exp': 83, 'start move 1': 'Bubble', 'start move 2': 'No Move',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b' ?\x08\xc0\xc2\x08\x12')},
 | |
|     'Seadra': {'id': 93, 'dex': 117, 'hp': 55, 'atk': 65, 'def': 95, 'spd': 85, 'spc': 95, 'type1': 'Water',
 | |
|                'type2': 'Water', 'catch rate': 75, 'base exp': 155, 'start move 1': 'Bubble',
 | |
|                'start move 2': 'Smokescreen', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b' \x7f\x08\xc0\xc2\x08\x12')},
 | |
|     'Goldeen': {'id': 157, 'dex': 118, 'hp': 45, 'atk': 67, 'def': 60, 'spd': 63, 'spc': 50, 'type1': 'Water',
 | |
|                 'type2': 'Water', 'catch rate': 225, 'base exp': 111, 'start move 1': 'Peck',
 | |
|                 'start move 2': 'Tail Whip', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'`?\x08\xc0\xc2\x08\x12')},
 | |
|     'Seaking': {'id': 158, 'dex': 119, 'hp': 80, 'atk': 92, 'def': 65, 'spd': 68, 'spc': 80, 'type1': 'Water',
 | |
|                 'type2': 'Water', 'catch rate': 60, 'base exp': 170, 'start move 1': 'Peck',
 | |
|                 'start move 2': 'Tail Whip', 'start move 3': 'Supersonic', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'`\x7f\x08\xc0\xc2\x08\x12')},
 | |
|     'Staryu': {'id': 27, 'dex': 120, 'hp': 30, 'atk': 45, 'def': 55, 'spd': 85, 'spc': 70, 'type1': 'Water',
 | |
|                'type2': 'Water', 'catch rate': 225, 'base exp': 106, 'start move 1': 'Tackle',
 | |
|                'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                'tms': bytearray(b' ?\x88\xf1\xc38S')},
 | |
|     'Starmie': {'id': 152, 'dex': 121, 'hp': 60, 'atk': 75, 'def': 85, 'spd': 115, 'spc': 100, 'type1': 'Water',
 | |
|                 'type2': 'Psychic', 'catch rate': 60, 'base exp': 207, 'start move 1': 'Tackle',
 | |
|                 'start move 2': 'Water Gun', 'start move 3': 'Harden', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                 'tms': bytearray(b' \x7f\x88\xf1\xc38S')},
 | |
|     'Mr Mime': {'id': 42, 'dex': 122, 'hp': 40, 'atk': 45, 'def': 65, 'spd': 90, 'spc': 100, 'type1': 'Psychic',
 | |
|                 'type2': 'Psychic', 'catch rate': 45, 'base exp': 136, 'start move 1': 'Confusion',
 | |
|                 'start move 2': 'Barrier', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xb1C\xaf\xf1\x878B')},
 | |
|     'Scyther': {'id': 26, 'dex': 123, 'hp': 70, 'atk': 110, 'def': 80, 'spd': 105, 'spc': 55, 'type1': 'Bug',
 | |
|                 'type2': 'Flying', 'catch rate': 45, 'base exp': 187, 'start move 1': 'Quick Attack',
 | |
|                 'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'$C\x08\xc0\xc2\x08\x06')},
 | |
|     'Jynx': {'id': 72, 'dex': 124, 'hp': 65, 'atk': 50, 'def': 35, 'spd': 95, 'spc': 95, 'type1': 'Ice',
 | |
|              'type2': 'Psychic', 'catch rate': 45, 'base exp': 137, 'start move 1': 'Pound',
 | |
|              'start move 2': 'Lovely Kiss', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|              'tms': bytearray(b'\xb1\x7f\x0f\xf0\x87(\x02')},
 | |
|     'Electabuzz': {'id': 53, 'dex': 125, 'hp': 65, 'atk': 83, 'def': 57, 'spd': 105, 'spc': 85, 'type1': 'Electric',
 | |
|                    'type2': 'Electric', 'catch rate': 45, 'base exp': 156, 'start move 1': 'Quick Attack',
 | |
|                    'start move 2': 'Leer', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                    'tms': bytearray(b'\xb1C\x8f\xf1\xc78b')},
 | |
|     'Magmar': {'id': 51, 'dex': 126, 'hp': 65, 'atk': 95, 'def': 57, 'spd': 93, 'spc': 85, 'type1': 'Fire',
 | |
|                'type2': 'Fire', 'catch rate': 45, 'base exp': 167, 'start move 1': 'Ember', 'start move 2': 'No Move',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xb1C\x0f\xf0\xa6("')},
 | |
|     'Pinsir': {'id': 29, 'dex': 127, 'hp': 65, 'atk': 125, 'def': 100, 'spd': 85, 'spc': 55, 'type1': 'Bug',
 | |
|                'type2': 'Bug', 'catch rate': 45, 'base exp': 200, 'start move 1': 'Vicegrip', 'start move 2': 'No Move',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                'tms': bytearray(b'\xa4C\r\xc0\x02\x08&')},
 | |
|     'Tauros': {'id': 60, 'dex': 128, 'hp': 75, 'atk': 100, 'def': 95, 'spd': 110, 'spc': 70, 'type1': 'Normal',
 | |
|                'type2': 'Normal', 'catch rate': 45, 'base exp': 211, 'start move 1': 'Tackle',
 | |
|                'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                'tms': bytearray(b'\xe0s\x88\xc7\xa2\x08"')},
 | |
|     'Magikarp': {'id': 133, 'dex': 129, 'hp': 20, 'atk': 10, 'def': 55, 'spd': 80, 'spc': 20, 'type1': 'Water',
 | |
|                  'type2': 'Water', 'catch rate': 255, 'base exp': 20, 'start move 1': 'Splash',
 | |
|                  'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                  'tms': bytearray(b'\x00\x00\x00\x00\x00\x00\x00')},
 | |
|     'Gyarados': {'id': 22, 'dex': 130, 'hp': 95, 'atk': 125, 'def': 79, 'spd': 81, 'spc': 100, 'type1': 'Water',
 | |
|                  'type2': 'Flying', 'catch rate': 45, 'base exp': 214, 'start move 1': 'Bite',
 | |
|                  'start move 2': 'Dragon Rage', 'start move 3': 'Leer', 'start move 4': 'Hydro Pump', 'growth rate': 5,
 | |
|                  'tms': bytearray(b'\xa0\x7f\xc8\xc1\xa3\x082')},
 | |
|     'Lapras': {'id': 19, 'dex': 131, 'hp': 130, 'atk': 85, 'def': 80, 'spd': 60, 'spc': 95, 'type1': 'Water',
 | |
|                'type2': 'Ice', 'catch rate': 45, 'base exp': 219, 'start move 1': 'Water Gun', 'start move 2': 'Growl',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                'tms': bytearray(b'\xe0\x7f\xe8\xd1\x83(2')},
 | |
|     'Ditto': {'id': 76, 'dex': 132, 'hp': 48, 'atk': 48, 'def': 48, 'spd': 48, 'spc': 48, 'type1': 'Normal',
 | |
|               'type2': 'Normal', 'catch rate': 35, 'base exp': 61, 'start move 1': 'Transform',
 | |
|               'start move 2': 'No Move', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|               'tms': bytearray(b'\x00\x00\x00\x00\x00\x00\x00')},
 | |
|     'Eevee': {'id': 102, 'dex': 133, 'hp': 55, 'atk': 55, 'def': 50, 'spd': 55, 'spc': 65, 'type1': 'Normal',
 | |
|               'type2': 'Normal', 'catch rate': 45, 'base exp': 92, 'start move 1': 'Tackle',
 | |
|               'start move 2': 'Sand Attack', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|               'tms': bytearray(b'\xa0\x03\x08\xc0\xc3\x08\x02')},
 | |
|     'Vaporeon': {'id': 105, 'dex': 134, 'hp': 130, 'atk': 65, 'def': 60, 'spd': 65, 'spc': 110, 'type1': 'Water',
 | |
|                  'type2': 'Water', 'catch rate': 45, 'base exp': 196, 'start move 1': 'Tackle',
 | |
|                  'start move 2': 'Sand Attack', 'start move 3': 'Quick Attack', 'start move 4': 'Water Gun',
 | |
|                  'growth rate': 0, 'tms': bytearray(b'\xa0\x7f\x08\xc0\xc3\x08\x12')},
 | |
|     'Jolteon': {'id': 104, 'dex': 135, 'hp': 65, 'atk': 65, 'def': 60, 'spd': 130, 'spc': 110, 'type1': 'Electric',
 | |
|                 'type2': 'Electric', 'catch rate': 45, 'base exp': 197, 'start move 1': 'Tackle',
 | |
|                 'start move 2': 'Sand Attack', 'start move 3': 'Quick Attack', 'start move 4': 'Thundershock',
 | |
|                 'growth rate': 0, 'tms': bytearray(b'\xa0C\x88\xc1\xc3\x18B')},
 | |
|     'Flareon': {'id': 103, 'dex': 136, 'hp': 65, 'atk': 130, 'def': 60, 'spd': 65, 'spc': 110, 'type1': 'Fire',
 | |
|                 'type2': 'Fire', 'catch rate': 45, 'base exp': 198, 'start move 1': 'Tackle',
 | |
|                 'start move 2': 'Sand Attack', 'start move 3': 'Quick Attack', 'start move 4': 'Ember',
 | |
|                 'growth rate': 0, 'tms': bytearray(b'\xa0C\x08\xc0\xe3\x08\x02')},
 | |
|     'Porygon': {'id': 170, 'dex': 137, 'hp': 65, 'atk': 60, 'def': 70, 'spd': 40, 'spc': 75, 'type1': 'Normal',
 | |
|                 'type2': 'Normal', 'catch rate': 45, 'base exp': 130, 'start move 1': 'Tackle',
 | |
|                 'start move 2': 'Sharpen', 'start move 3': 'Conversion', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b' s\x88\xf1\xc38C')},
 | |
|     'Omanyte': {'id': 98, 'dex': 138, 'hp': 35, 'atk': 40, 'def': 100, 'spd': 35, 'spc': 90, 'type1': 'Rock',
 | |
|                 'type2': 'Water', 'catch rate': 45, 'base exp': 120, 'start move 1': 'Water Gun',
 | |
|                 'start move 2': 'Withdraw', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xa0?\x08\xc0\x03\x08\x12')},
 | |
|     'Omastar': {'id': 99, 'dex': 139, 'hp': 70, 'atk': 60, 'def': 125, 'spd': 55, 'spc': 115, 'type1': 'Rock',
 | |
|                 'type2': 'Water', 'catch rate': 45, 'base exp': 199, 'start move 1': 'Water Gun',
 | |
|                 'start move 2': 'Withdraw', 'start move 3': 'Horn Attack', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                 'tms': bytearray(b'\xe0\x7f\r\xc0\x83\x08\x12')},
 | |
|     'Kabuto': {'id': 90, 'dex': 140, 'hp': 30, 'atk': 80, 'def': 90, 'spd': 55, 'spc': 45, 'type1': 'Rock',
 | |
|                'type2': 'Water', 'catch rate': 45, 'base exp': 119, 'start move 1': 'Scratch', 'start move 2': 'Harden',
 | |
|                'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                'tms': bytearray(b'\xa0?\x08\xc0\x03\x08\x12')},
 | |
|     'Kabutops': {'id': 91, 'dex': 141, 'hp': 60, 'atk': 115, 'def': 105, 'spd': 80, 'spc': 70, 'type1': 'Rock',
 | |
|                  'type2': 'Water', 'catch rate': 45, 'base exp': 201, 'start move 1': 'Scratch',
 | |
|                  'start move 2': 'Harden', 'start move 3': 'Absorb', 'start move 4': 'No Move', 'growth rate': 0,
 | |
|                  'tms': bytearray(b'\xb6\x7f\r\xc0\x83\x08\x12')},
 | |
|     'Aerodactyl': {'id': 171, 'dex': 142, 'hp': 80, 'atk': 105, 'def': 65, 'spd': 130, 'spc': 60, 'type1': 'Rock',
 | |
|                    'type2': 'Flying', 'catch rate': 45, 'base exp': 202, 'start move 1': 'Wing Attack',
 | |
|                    'start move 2': 'Agility', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                    'tms': bytearray(b'*CH\xc0c\x0c\n')},
 | |
|     'Snorlax': {'id': 132, 'dex': 143, 'hp': 160, 'atk': 110, 'def': 65, 'spd': 30, 'spc': 65, 'type1': 'Normal',
 | |
|                 'type2': 'Normal', 'catch rate': 25, 'base exp': 154, 'start move 1': 'Headbutt',
 | |
|                 'start move 2': 'Amnesia', 'start move 3': 'Rest', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                 'tms': bytearray(b'\xb1\xff\xaf\xd7\xaf\xa82')},
 | |
|     'Articuno': {'id': 74, 'dex': 144, 'hp': 90, 'atk': 85, 'def': 100, 'spd': 85, 'spc': 125, 'type1': 'Ice',
 | |
|                  'type2': 'Flying', 'catch rate': 3, 'base exp': 215, 'start move 1': 'Peck',
 | |
|                  'start move 2': 'Ice Beam', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                  'tms': bytearray(b'*\x7f\x08\xc0C\x0c\n')},
 | |
|     'Zapdos': {'id': 75, 'dex': 145, 'hp': 90, 'atk': 90, 'def': 85, 'spd': 100, 'spc': 125, 'type1': 'Electric',
 | |
|                'type2': 'Flying', 'catch rate': 3, 'base exp': 216, 'start move 1': 'Thundershock',
 | |
|                'start move 2': 'Drill Peck', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                'tms': bytearray(b'*C\x88\xc1C\x1cJ')},
 | |
|     'Moltres': {'id': 73, 'dex': 146, 'hp': 90, 'atk': 100, 'def': 90, 'spd': 90, 'spc': 125, 'type1': 'Fire',
 | |
|                 'type2': 'Flying', 'catch rate': 3, 'base exp': 217, 'start move 1': 'Peck',
 | |
|                 'start move 2': 'Fire Spin', 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                 'tms': bytearray(b'*C\x08\xc0c\x0c\n')},
 | |
|     'Dratini': {'id': 88, 'dex': 147, 'hp': 41, 'atk': 64, 'def': 45, 'spd': 50, 'spc': 50, 'type1': 'Dragon',
 | |
|                 'type2': 'Dragon', 'catch rate': 45, 'base exp': 67, 'start move 1': 'Wrap', 'start move 2': 'Leer',
 | |
|                 'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                 'tms': bytearray(b'\xa0?\xc8\xc1\xe3\x18\x12')},
 | |
|     'Dragonair': {'id': 89, 'dex': 148, 'hp': 61, 'atk': 84, 'def': 65, 'spd': 70, 'spc': 70, 'type1': 'Dragon',
 | |
|                   'type2': 'Dragon', 'catch rate': 45, 'base exp': 144, 'start move 1': 'Wrap', 'start move 2': 'Leer',
 | |
|                   'start move 3': 'Thunder Wave', 'start move 4': 'No Move', 'growth rate': 5,
 | |
|                   'tms': bytearray(b'\xe0?\xc8\xc1\xe3\x18\x12')},
 | |
|     'Dragonite': {'id': 66, 'dex': 149, 'hp': 91, 'atk': 134, 'def': 95, 'spd': 80, 'spc': 100, 'type1': 'Dragon',
 | |
|                   'type2': 'Flying', 'catch rate': 45, 'base exp': 218, 'start move 1': 'Wrap', 'start move 2': 'Leer',
 | |
|                   'start move 3': 'Thunder Wave', 'start move 4': 'Agility', 'growth rate': 5,
 | |
|                   'tms': bytearray(b'\xe2\x7f\xc8\xc1\xe3\x182')},
 | |
|     'Mewtwo': {'id': 131, 'dex': 150, 'hp': 106, 'atk': 110, 'def': 90, 'spd': 130, 'spc': 154, 'type1': 'Psychic',
 | |
|                'type2': 'Psychic', 'catch rate': 3, 'base exp': 220, 'start move 1': 'Confusion',
 | |
|                'start move 2': 'Disable', 'start move 3': 'Swift', 'start move 4': 'Psychic', 'growth rate': 5,
 | |
|                'tms': bytearray(b'\xb1\xff\xaf\xf1\xaf8c')},
 | |
|     'Mew': {'id': 21, 'dex': 151, 'hp': 100, 'atk': 100, 'def': 100, 'spd': 100, 'spc': 100, 'type1': 'Psychic',
 | |
|             'type2': 'Psychic', 'catch rate': 45, 'base exp': 64, 'start move 1': 'Pound', 'start move 2': 'No Move',
 | |
|             'start move 3': 'No Move', 'start move 4': 'No Move', 'growth rate': 3,
 | |
|             'tms': bytearray(b'\xff\xff\xff\xff\xff\xff\xff')}}
 | |
| 
 | |
| 
 | |
| 
 | |
| evolves_from = {
 | |
|     "Ivysaur": "Bulbasaur",
 | |
|     "Venusaur": "Ivysaur",
 | |
|     "Charmeleon": "Charmander",
 | |
|     "Charizard": "Charmeleon",
 | |
|     "Wartortle": "Squirtle",
 | |
|     "Blastoise": "Wartortle",
 | |
|     "Metapod": "Caterpie",
 | |
|     "Butterfree": "Metapod",
 | |
|     "Kakuna": "Weedle",
 | |
|     "Beedrill": "Kakuna",
 | |
|     "Pidgeotto": "Pidgey",
 | |
|     "Pidgeot": "Pidgeotto",
 | |
|     "Raticate": "Rattata",
 | |
|     "Fearow": "Spearow",
 | |
|     "Arbok": "Ekans",
 | |
|     "Raichu": "Pikachu",
 | |
|     "Sandslash": "Sandshrew",
 | |
|     "Nidorina": "Nidoran F",
 | |
|     "Nidoqueen": "Nidorina",
 | |
|     "Nidorino": "Nidoran M",
 | |
|     "Nidoking": "Nidorino",
 | |
|     "Clefable": "Clefairy",
 | |
|     "Ninetales": "Vulpix",
 | |
|     "Wigglytuff": "Jigglypuff",
 | |
|     "Golbat": "Zubat",
 | |
|     "Gloom": "Oddish",
 | |
|     "Vileplume": "Gloom",
 | |
|     "Parasect": "Paras",
 | |
|     "Venomoth": "Venonat",
 | |
|     "Dugtrio": "Diglett",
 | |
|     "Persian": "Meowth",
 | |
|     "Golduck": "Psyduck",
 | |
|     "Primeape": "Mankey",
 | |
|     "Arcanine": "Growlithe",
 | |
|     "Poliwhirl": "Poliwag",
 | |
|     "Poliwrath": "Poliwhirl",
 | |
|     "Kadabra": "Abra",
 | |
|     "Alakazam": "Kadabra",
 | |
|     "Machoke": "Machop",
 | |
|     "Machamp": "Machoke",
 | |
|     "Weepinbell": "Bellsprout",
 | |
|     "Victreebel": "Weepinbell",
 | |
|     "Tentacruel": "Tentacool",
 | |
|     "Graveler": "Geodude",
 | |
|     "Golem": "Graveler",
 | |
|     "Rapidash": "Ponyta",
 | |
|     "Slowbro": "Slowpoke",
 | |
|     "Magneton": "Magnemite",
 | |
|     "Dodrio": "Doduo",
 | |
|     "Dewgong": "Seel",
 | |
|     "Muk": "Grimer",
 | |
|     "Cloyster": "Shellder",
 | |
|     "Haunter": "Gastly",
 | |
|     "Gengar": "Haunter",
 | |
|     "Hypno": "Drowzee",
 | |
|     "Kingler": "Krabby",
 | |
|     "Electrode": "Voltorb",
 | |
|     "Exeggutor": "Exeggcute",
 | |
|     "Marowak": "Cubone",
 | |
|     "Weezing": "Koffing",
 | |
|     "Rhydon": "Rhyhorn",
 | |
|     "Seadra": "Horsea",
 | |
|     "Seaking": "Goldeen",
 | |
|     "Starmie": "Staryu",
 | |
|     "Gyarados": "Magikarp",
 | |
|     "Vaporeon": "Eevee",
 | |
|     "Jolteon": "Eevee",
 | |
|     "Flareon": "Eevee",
 | |
|     "Omastar": "Omanyte",
 | |
|     "Kabutops": "Kabuto",
 | |
|     "Dragonair": "Dratini",
 | |
|     "Dragonite": "Dragonair"
 | |
| }
 | |
| 
 | |
| evolves_to = {}
 | |
| for from_mon, to_mon in zip(evolves_from.values(), evolves_from.keys()):
 | |
|     if from_mon != "Eevee":
 | |
|         evolves_to[from_mon] = to_mon
 | |
| 
 | |
| # basic_three_stage_pokemon = []
 | |
| # for mon in evolves_to.keys():
 | |
| #     if evolves_to[mon] in evolves_to.keys():
 | |
| #         basic_three_stage_pokemon.append(mon)
 | |
| # print(basic_three_stage_pokemon)
 | |
| 
 | |
| learnsets = {
 | |
|     'Rhydon': ['Stomp', 'Tail Whip', 'Fury Attack', 'Horn Drill', 'Leer', 'Take Down'],
 | |
|     'Kangaskhan': ['Bite', 'Tail Whip', 'Mega Punch', 'Leer', 'Dizzy Punch'],
 | |
|     'Nidoran M': ['Horn Attack', 'Poison Sting', 'Focus Energy', 'Fury Attack', 'Horn Drill', 'Double Kick'],
 | |
|     'Clefairy': ['Sing', 'Doubleslap', 'Minimize', 'Metronome', 'Defense Curl', 'Light Screen'],
 | |
|     'Spearow': ['Leer', 'Fury Attack', 'Mirror Move', 'Drill Peck', 'Agility'],
 | |
|     'Voltorb': ['Sonicboom', 'Selfdestruct', 'Light Screen', 'Swift', 'Explosion'],
 | |
|     'Nidoking': ['Horn Attack', 'Poison Sting', 'Thrash'],
 | |
|     'Slowbro': ['Disable', 'Headbutt', 'Growl', 'Water Gun', 'Withdraw', 'Amnesia', 'Psychic'],
 | |
|     'Ivysaur': ['Leech Seed', 'Vine Whip', 'Poisonpowder', 'Razor Leaf', 'Growth', 'Sleep Powder', 'Solarbeam'],
 | |
|     'Exeggutor': ['Stomp'], 'Lickitung': ['Stomp', 'Disable', 'Defense Curl', 'Slam', 'Screech'],
 | |
|     'Exeggcute': ['Reflect', 'Leech Seed', 'Stun Spore', 'Poisonpowder', 'Solarbeam', 'Sleep Powder'],
 | |
|     'Grimer': ['Poison Gas', 'Minimize', 'Sludge', 'Harden', 'Screech', 'Acid Armor'],
 | |
|     'Gengar': ['Hypnosis', 'Dream Eater'],
 | |
|     'Nidoran F': ['Scratch', 'Poison Sting', 'Tail Whip', 'Bite', 'Fury Swipes', 'Double Kick'],
 | |
|     'Nidoqueen': ['Scratch', 'Poison Sting', 'Body Slam'],
 | |
|     'Cubone': ['Leer', 'Focus Energy', 'Thrash', 'Bonemerang', 'Rage'],
 | |
|     'Rhyhorn': ['Stomp', 'Tail Whip', 'Fury Attack', 'Horn Drill', 'Leer', 'Take Down'],
 | |
|     'Lapras': ['Sing', 'Mist', 'Body Slam', 'Confuse Ray', 'Ice Beam', 'Hydro Pump'],
 | |
|     'Mew': ['Transform', 'Mega Punch', 'Metronome', 'Psychic'],
 | |
|     'Gyarados': ['Bite', 'Dragon Rage', 'Leer', 'Hydro Pump', 'Hyper Beam'],
 | |
|     'Shellder': ['Supersonic', 'Clamp', 'Aurora Beam', 'Leer', 'Ice Beam'],
 | |
|     'Tentacool': ['Supersonic', 'Wrap', 'Poison Sting', 'Water Gun', 'Constrict', 'Barrier', 'Screech', 'Hydro Pump'],
 | |
|     'Gastly': ['Hypnosis', 'Dream Eater'],
 | |
|     'Scyther': ['Leer', 'Focus Energy', 'Double Team', 'Slash', 'Swords Dance', 'Agility'],
 | |
|     'Staryu': ['Water Gun', 'Harden', 'Recover', 'Swift', 'Minimize', 'Light Screen', 'Hydro Pump'],
 | |
|     'Blastoise': ['Bubble', 'Water Gun', 'Bite', 'Withdraw', 'Skull Bash', 'Hydro Pump'],
 | |
|     'Pinsir': ['Seismic Toss', 'Guillotine', 'Focus Energy', 'Harden', 'Slash', 'Swords Dance'],
 | |
|     'Tangela': ['Absorb', 'Poisonpowder', 'Stun Spore', 'Sleep Powder', 'Slam', 'Growth'],
 | |
|     'Growlithe': ['Ember', 'Leer', 'Take Down', 'Agility', 'Flamethrower'],
 | |
|     'Onix': ['Bind', 'Rock Throw', 'Rage', 'Slam', 'Harden'],
 | |
|     'Fearow': ['Leer', 'Fury Attack', 'Mirror Move', 'Drill Peck', 'Agility'],
 | |
|     'Pidgey': ['Sand Attack', 'Quick Attack', 'Whirlwind', 'Wing Attack', 'Agility', 'Mirror Move'],
 | |
|     'Slowpoke': ['Disable', 'Headbutt', 'Growl', 'Water Gun', 'Amnesia', 'Psychic'],
 | |
|     'Kadabra': ['Confusion', 'Disable', 'Psybeam', 'Recover', 'Psychic', 'Reflect'],
 | |
|     'Graveler': ['Defense Curl', 'Rock Throw', 'Selfdestruct', 'Harden', 'Earthquake', 'Explosion'],
 | |
|     'Chansey': ['Sing', 'Growl', 'Minimize', 'Defense Curl', 'Light Screen', 'Double Edge'],
 | |
|     'Machoke': ['Low Kick', 'Leer', 'Focus Energy', 'Seismic Toss', 'Submission'],
 | |
|     'Mr Mime': ['Confusion', 'Light Screen', 'Doubleslap', 'Meditate', 'Substitute'],
 | |
|     'Hitmonlee': ['Rolling Kick', 'Jump Kick', 'Focus Energy', 'Hi Jump Kick', 'Mega Kick'],
 | |
|     'Hitmonchan': ['Fire Punch', 'Ice Punch', 'Thunderpunch', 'Mega Punch', 'Counter'],
 | |
|     'Arbok': ['Poison Sting', 'Bite', 'Glare', 'Screech', 'Acid'],
 | |
|     'Parasect': ['Stun Spore', 'Leech Life', 'Spore', 'Slash', 'Growth'],
 | |
|     'Psyduck': ['Tail Whip', 'Disable', 'Confusion', 'Fury Swipes', 'Hydro Pump'],
 | |
|     'Drowzee': ['Disable', 'Confusion', 'Headbutt', 'Poison Gas', 'Psychic', 'Meditate'],
 | |
|     'Golem': ['Defense Curl', 'Rock Throw', 'Selfdestruct', 'Harden', 'Earthquake', 'Explosion'],
 | |
|     'Magmar': ['Leer', 'Confuse Ray', 'Fire Punch', 'Smokescreen', 'Smog', 'Flamethrower'],
 | |
|     'Electabuzz': ['Thundershock', 'Screech', 'Thunderpunch', 'Light Screen', 'Thunder'],
 | |
|     'Magneton': ['Sonicboom', 'Thundershock', 'Supersonic', 'Thunder Wave', 'Swift', 'Screech'],
 | |
|     'Koffing': ['Sludge', 'Smokescreen', 'Selfdestruct', 'Haze', 'Explosion'],
 | |
|     'Mankey': ['Karate Chop', 'Fury Swipes', 'Focus Energy', 'Seismic Toss', 'Thrash'],
 | |
|     'Seel': ['Growl', 'Aurora Beam', 'Rest', 'Take Down', 'Ice Beam'],
 | |
|     'Diglett': ['Growl', 'Dig', 'Sand Attack', 'Slash', 'Earthquake'],
 | |
|     'Tauros': ['Stomp', 'Tail Whip', 'Leer', 'Rage', 'Take Down'],
 | |
|     'Farfetchd': ['Leer', 'Fury Attack', 'Swords Dance', 'Agility', 'Slash'],
 | |
|     'Venonat': ['Poisonpowder', 'Leech Life', 'Stun Spore', 'Psybeam', 'Sleep Powder', 'Psychic'],
 | |
|     'Dragonite': ['Thunder Wave', 'Agility', 'Slam', 'Dragon Rage', 'Hyper Beam'],
 | |
|     'Doduo': ['Growl', 'Fury Attack', 'Drill Peck', 'Rage', 'Tri Attack', 'Agility'],
 | |
|     'Poliwag': ['Hypnosis', 'Water Gun', 'Doubleslap', 'Body Slam', 'Amnesia', 'Hydro Pump'],
 | |
|     'Jynx': ['Lick', 'Doubleslap', 'Ice Punch', 'Body Slam', 'Thrash', 'Blizzard'],
 | |
|     'Moltres': ['Leer', 'Agility', 'Sky Attack'],
 | |
|     'Articuno': ['Blizzard', 'Agility', 'Mist'],
 | |
|     'Zapdos': ['Thunder', 'Agility', 'Light Screen'],
 | |
|     'Meowth': ['Bite', 'Pay Day', 'Screech', 'Fury Swipes', 'Slash'],
 | |
|     'Krabby': ['Vicegrip', 'Guillotine', 'Stomp', 'Crabhammer', 'Harden'],
 | |
|     'Vulpix': ['Quick Attack', 'Roar', 'Confuse Ray', 'Flamethrower', 'Fire Spin'],
 | |
|     'Pikachu': ['Thunder Wave', 'Quick Attack', 'Swift', 'Agility', 'Thunder'],
 | |
|     'Dratini': ['Thunder Wave', 'Agility', 'Slam', 'Dragon Rage', 'Hyper Beam'],
 | |
|     'Dragonair': ['Thunder Wave', 'Agility', 'Slam', 'Dragon Rage', 'Hyper Beam'],
 | |
|     'Kabuto': ['Absorb', 'Slash', 'Leer', 'Hydro Pump'],
 | |
|     'Kabutops': ['Absorb', 'Slash', 'Leer', 'Hydro Pump'],
 | |
|     'Horsea': ['Smokescreen', 'Leer', 'Water Gun', 'Agility', 'Hydro Pump'],
 | |
|     'Seadra': ['Smokescreen', 'Leer', 'Water Gun', 'Agility', 'Hydro Pump'],
 | |
|     'Sandshrew': ['Sand Attack', 'Slash', 'Poison Sting', 'Swift', 'Fury Swipes'],
 | |
|     'Sandslash': ['Sand Attack', 'Slash', 'Poison Sting', 'Swift', 'Fury Swipes'],
 | |
|     'Omanyte': ['Horn Attack', 'Leer', 'Spike Cannon', 'Hydro Pump'],
 | |
|     'Omastar': ['Horn Attack', 'Leer', 'Spike Cannon', 'Hydro Pump'],
 | |
|     'Jigglypuff': ['Pound', 'Disable', 'Defense Curl', 'Doubleslap', 'Rest', 'Body Slam', 'Double Edge'],
 | |
|     'Eevee': ['Quick Attack', 'Tail Whip', 'Bite', 'Take Down'],
 | |
|     'Flareon': ['Quick Attack', 'Ember', 'Tail Whip', 'Bite', 'Leer', 'Fire Spin', 'Rage', 'Flamethrower'],
 | |
|     'Jolteon': ['Quick Attack', 'Thundershock', 'Tail Whip', 'Thunder Wave', 'Double Kick', 'Agility', 'Pin Missile', 'Thunder'],
 | |
|     'Vaporeon': ['Quick Attack', 'Water Gun', 'Tail Whip', 'Bite', 'Acid Armor', 'Haze', 'Mist', 'Hydro Pump'],
 | |
|     'Machop': ['Low Kick', 'Leer', 'Focus Energy', 'Seismic Toss', 'Submission'],
 | |
|     'Zubat': ['Supersonic', 'Bite', 'Confuse Ray', 'Wing Attack', 'Haze'],
 | |
|     'Ekans': ['Poison Sting', 'Bite', 'Glare', 'Screech', 'Acid'],
 | |
|     'Paras': ['Stun Spore', 'Leech Life', 'Spore', 'Slash', 'Growth'],
 | |
|     'Poliwhirl': ['Hypnosis', 'Water Gun', 'Doubleslap', 'Body Slam', 'Amnesia', 'Hydro Pump'],
 | |
|     'Poliwrath': ['Hypnosis', 'Water Gun'],
 | |
|     'Beedrill': ['Fury Attack', 'Focus Energy', 'Twineedle', 'Rage', 'Pin Missile', 'Agility'],
 | |
|     'Dodrio': ['Growl', 'Fury Attack', 'Drill Peck', 'Rage', 'Tri Attack', 'Agility'],
 | |
|     'Primeape': ['Karate Chop', 'Fury Swipes', 'Focus Energy', 'Seismic Toss', 'Thrash'],
 | |
|     'Dugtrio': ['Growl', 'Dig', 'Sand Attack', 'Slash', 'Earthquake'],
 | |
|     'Venomoth': ['Poisonpowder', 'Leech Life', 'Stun Spore', 'Psybeam', 'Sleep Powder', 'Psychic'],
 | |
|     'Dewgong': ['Growl', 'Aurora Beam', 'Rest', 'Take Down', 'Ice Beam'],
 | |
|     'Butterfree': ['Confusion', 'Poisonpowder', 'Stun Spore', 'Sleep Powder', 'Supersonic', 'Whirlwind', 'Psybeam'],
 | |
|     'Machamp': ['Low Kick', 'Leer', 'Focus Energy', 'Seismic Toss', 'Submission'],
 | |
|     'Golduck': ['Tail Whip', 'Disable', 'Confusion', 'Fury Swipes', 'Hydro Pump'],
 | |
|     'Hypno': ['Disable', 'Confusion', 'Headbutt', 'Poison Gas', 'Psychic', 'Meditate'],
 | |
|     'Golbat': ['Supersonic', 'Bite', 'Confuse Ray', 'Wing Attack', 'Haze'],
 | |
|     'Mewtwo': ['Barrier', 'Psychic', 'Recover', 'Mist', 'Amnesia'],
 | |
|     'Snorlax': ['Body Slam', 'Harden', 'Double Edge', 'Hyper Beam'],
 | |
|     'Magikarp': ['Tackle'],
 | |
|     'Muk': ['Poison Gas', 'Minimize', 'Sludge', 'Harden', 'Screech', 'Acid Armor'],
 | |
|     'Kingler': ['Vicegrip', 'Guillotine', 'Stomp', 'Crabhammer', 'Harden'],
 | |
|     'Cloyster': ['Spike Cannon'],
 | |
|     'Electrode': ['Sonicboom', 'Selfdestruct', 'Light Screen', 'Swift', 'Explosion'],
 | |
|     'Weezing': ['Sludge', 'Smokescreen', 'Selfdestruct', 'Haze', 'Explosion'],
 | |
|     'Persian': ['Bite', 'Pay Day', 'Screech', 'Fury Swipes', 'Slash'],
 | |
|     'Marowak': ['Leer', 'Focus Energy', 'Thrash', 'Bonemerang', 'Rage'],
 | |
|     'Haunter': ['Hypnosis', 'Dream Eater'],
 | |
|     'Alakazam': ['Confusion', 'Disable', 'Psybeam', 'Recover', 'Psychic', 'Reflect'],
 | |
|     'Pidgeotto': ['Sand Attack', 'Quick Attack', 'Whirlwind', 'Wing Attack', 'Agility', 'Mirror Move'],
 | |
|     'Pidgeot': ['Sand Attack', 'Quick Attack', 'Whirlwind', 'Wing Attack', 'Agility', 'Mirror Move'],
 | |
|     'Bulbasaur': ['Leech Seed', 'Vine Whip', 'Poisonpowder', 'Razor Leaf', 'Growth', 'Sleep Powder', 'Solarbeam'],
 | |
|     'Venusaur': ['Leech Seed', 'Vine Whip', 'Poisonpowder', 'Razor Leaf', 'Growth', 'Sleep Powder', 'Solarbeam'],
 | |
|     'Tentacruel': ['Supersonic', 'Wrap', 'Poison Sting', 'Water Gun', 'Constrict', 'Barrier', 'Screech', 'Hydro Pump'],
 | |
|     'Goldeen': ['Supersonic', 'Horn Attack', 'Fury Attack', 'Waterfall', 'Horn Drill', 'Agility'],
 | |
|     'Seaking': ['Supersonic', 'Horn Attack', 'Fury Attack', 'Waterfall', 'Horn Drill', 'Agility'],
 | |
|     'Ponyta': ['Tail Whip', 'Stomp', 'Growl', 'Fire Spin', 'Take Down', 'Agility'],
 | |
|     'Rapidash': ['Tail Whip', 'Stomp', 'Growl', 'Fire Spin', 'Take Down', 'Agility'],
 | |
|     'Rattata': ['Quick Attack', 'Hyper Fang', 'Focus Energy', 'Super Fang'],
 | |
|     'Raticate': ['Quick Attack', 'Hyper Fang', 'Focus Energy', 'Super Fang'],
 | |
|     'Nidorino': ['Horn Attack', 'Poison Sting', 'Focus Energy', 'Fury Attack', 'Horn Drill', 'Double Kick'],
 | |
|     'Nidorina': ['Scratch', 'Poison Sting', 'Tail Whip', 'Bite', 'Fury Swipes', 'Double Kick'],
 | |
|     'Geodude': ['Defense Curl', 'Rock Throw', 'Selfdestruct', 'Harden', 'Earthquake', 'Explosion'],
 | |
|     'Porygon': ['Psybeam', 'Recover', 'Agility', 'Tri Attack'],
 | |
|     'Aerodactyl': ['Supersonic', 'Bite', 'Take Down', 'Hyper Beam'],
 | |
|     'Magnemite': ['Sonicboom', 'Thundershock', 'Supersonic', 'Thunder Wave', 'Swift', 'Screech'],
 | |
|     'Charmander': ['Ember', 'Leer', 'Rage', 'Slash', 'Flamethrower', 'Fire Spin'],
 | |
|     'Squirtle': ['Bubble', 'Water Gun', 'Bite', 'Withdraw', 'Skull Bash', 'Hydro Pump'],
 | |
|     'Charmeleon': ['Ember', 'Leer', 'Rage', 'Slash', 'Flamethrower', 'Fire Spin'],
 | |
|     'Wartortle': ['Bubble', 'Water Gun', 'Bite', 'Withdraw', 'Skull Bash', 'Hydro Pump'],
 | |
|     'Charizard': ['Ember', 'Leer', 'Rage', 'Slash', 'Flamethrower', 'Fire Spin'],
 | |
|     'Oddish': ['Poisonpowder', 'Stun Spore', 'Sleep Powder', 'Acid', 'Petal Dance', 'Solarbeam'],
 | |
|     'Gloom': ['Poisonpowder', 'Stun Spore', 'Sleep Powder', 'Acid', 'Petal Dance', 'Solarbeam'],
 | |
|     'Vileplume': ['Poisonpowder', 'Stun Spore', 'Sleep Powder'],
 | |
|     'Bellsprout': ['Wrap', 'Poisonpowder', 'Sleep Powder', 'Stun Spore', 'Acid', 'Razor Leaf', 'Slam'],
 | |
|     'Weepinbell': ['Wrap', 'Poisonpowder', 'Sleep Powder', 'Stun Spore', 'Acid', 'Razor Leaf', 'Slam'],
 | |
|     'Victreebel': ['Wrap', 'Poisonpowder', 'Sleep Powder']
 | |
| }
 | |
| 
 | |
| moves = {
 | |
|      'No Move': {'id': 0, 'power': 0, 'type': 'Typeless', 'accuracy': 0, 'pp': 0},
 | |
|      'Pound': {'id': 1, 'power': 40, 'type': 'Normal', 'accuracy': 100, 'pp': 35},
 | |
|      'Karate Chop': {'id': 2, 'power': 50, 'type': 'Normal', 'accuracy': 100, 'pp': 25},
 | |
|      'Doubleslap': {'id': 3, 'power': 15, 'type': 'Normal', 'accuracy': 85, 'pp': 10},
 | |
|      'Comet Punch': {'id': 4, 'power': 18, 'type': 'Normal', 'accuracy': 85, 'pp': 15},
 | |
|      'Mega Punch': {'id': 5, 'power': 80, 'type': 'Normal', 'accuracy': 85, 'pp': 20},
 | |
|      'Pay Day': {'id': 6, 'power': 40, 'type': 'Normal', 'accuracy': 100, 'pp': 20},
 | |
|      'Fire Punch': {'id': 7, 'power': 75, 'type': 'Fire', 'accuracy': 100, 'pp': 15},
 | |
|      'Ice Punch': {'id': 8, 'power': 75, 'type': 'Ice', 'accuracy': 100, 'pp': 15},
 | |
|      'Thunderpunch': {'id': 9, 'power': 75, 'type': 'Electric', 'accuracy': 100, 'pp': 15},
 | |
|      'Scratch': {'id': 10, 'power': 40, 'type': 'Normal', 'accuracy': 100, 'pp': 35},
 | |
|      'Vicegrip': {'id': 11, 'power': 55, 'type': 'Normal', 'accuracy': 100, 'pp': 30},
 | |
|      'Guillotine': {'id': 12, 'power': 1, 'type': 'Normal', 'accuracy': 30, 'pp': 5},
 | |
|      'Razor Wind': {'id': 13, 'power': 80, 'type': 'Normal', 'accuracy': 75, 'pp': 10},
 | |
|      'Swords Dance': {'id': 14, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 30},
 | |
|      'Cut': {'id': 15, 'power': 50, 'type': 'Normal', 'accuracy': 95, 'pp': 30},
 | |
|      'Gust': {'id': 16, 'power': 40, 'type': 'Normal', 'accuracy': 100, 'pp': 35},
 | |
|      'Wing Attack': {'id': 17, 'power': 35, 'type': 'Flying', 'accuracy': 100, 'pp': 35},
 | |
|      'Whirlwind': {'id': 18, 'power': 0, 'type': 'Normal', 'accuracy': 85, 'pp': 20},
 | |
|      'Fly': {'id': 19, 'power': 70, 'type': 'Flying', 'accuracy': 95, 'pp': 15},
 | |
|      'Bind': {'id': 20, 'power': 15, 'type': 'Normal', 'accuracy': 75, 'pp': 20},
 | |
|      'Slam': {'id': 21, 'power': 80, 'type': 'Normal', 'accuracy': 75, 'pp': 20},
 | |
|      'Vine Whip': {'id': 22, 'power': 35, 'type': 'Grass', 'accuracy': 100, 'pp': 10},
 | |
|      'Stomp': {'id': 23, 'power': 65, 'type': 'Normal', 'accuracy': 100, 'pp': 20},
 | |
|      'Double Kick': {'id': 24, 'power': 30, 'type': 'Fighting', 'accuracy': 100, 'pp': 30},
 | |
|      'Mega Kick': {'id': 25, 'power': 120, 'type': 'Normal', 'accuracy': 75, 'pp': 5},
 | |
|      'Jump Kick': {'id': 26, 'power': 70, 'type': 'Fighting', 'accuracy': 95, 'pp': 25},
 | |
|      'Rolling Kick': {'id': 27, 'power': 60, 'type': 'Fighting', 'accuracy': 85, 'pp': 15},
 | |
|      'Sand Attack': {'id': 28, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 15},
 | |
|      'Headbutt': {'id': 29, 'power': 70, 'type': 'Normal', 'accuracy': 100, 'pp': 15},
 | |
|      'Horn Attack': {'id': 30, 'power': 65, 'type': 'Normal', 'accuracy': 100, 'pp': 25},
 | |
|      'Fury Attack': {'id': 31, 'power': 15, 'type': 'Normal', 'accuracy': 85, 'pp': 20},
 | |
|      'Horn Drill': {'id': 32, 'power': 1, 'type': 'Normal', 'accuracy': 30, 'pp': 5},
 | |
|      'Tackle': {'id': 33, 'power': 35, 'type': 'Normal', 'accuracy': 95, 'pp': 35},
 | |
|      'Body Slam': {'id': 34, 'power': 85, 'type': 'Normal', 'accuracy': 100, 'pp': 15},
 | |
|      'Wrap': {'id': 35, 'power': 15, 'type': 'Normal', 'accuracy': 85, 'pp': 20},
 | |
|      'Take Down': {'id': 36, 'power': 90, 'type': 'Normal', 'accuracy': 85, 'pp': 20},
 | |
|      'Thrash': {'id': 37, 'power': 90, 'type': 'Normal', 'accuracy': 100, 'pp': 20},
 | |
|      'Double Edge': {'id': 38, 'power': 100, 'type': 'Normal', 'accuracy': 100, 'pp': 15},
 | |
|      'Tail Whip': {'id': 39, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 30},
 | |
|      'Poison Sting': {'id': 40, 'power': 15, 'type': 'Poison', 'accuracy': 100, 'pp': 35},
 | |
|      'Twineedle': {'id': 41, 'power': 25, 'type': 'Bug', 'accuracy': 100, 'pp': 20},
 | |
|      'Pin Missile': {'id': 42, 'power': 14, 'type': 'Bug', 'accuracy': 85, 'pp': 20},
 | |
|      'Leer': {'id': 43, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 30},
 | |
|      'Bite': {'id': 44, 'power': 60, 'type': 'Normal', 'accuracy': 100, 'pp': 25},
 | |
|      'Growl': {'id': 45, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 40},
 | |
|      'Roar': {'id': 46, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 20},
 | |
|      'Sing': {'id': 47, 'power': 0, 'type': 'Normal', 'accuracy': 55, 'pp': 15},
 | |
|      'Supersonic': {'id': 48, 'power': 0, 'type': 'Normal', 'accuracy': 55, 'pp': 20},
 | |
|      'Sonicboom': {'id': 49, 'power': 1, 'type': 'Normal', 'accuracy': 90, 'pp': 20},
 | |
|      'Disable': {'id': 50, 'power': 0, 'type': 'Normal', 'accuracy': 55, 'pp': 20},
 | |
|      'Acid': {'id': 51, 'power': 40, 'type': 'Poison', 'accuracy': 100, 'pp': 30},
 | |
|      'Ember': {'id': 52, 'power': 40, 'type': 'Fire', 'accuracy': 100, 'pp': 25},
 | |
|      'Flamethrower': {'id': 53, 'power': 95, 'type': 'Fire', 'accuracy': 100, 'pp': 15},
 | |
|      'Mist': {'id': 54, 'power': 0, 'type': 'Ice', 'accuracy': 100, 'pp': 30},
 | |
|      'Water Gun': {'id': 55, 'power': 40, 'type': 'Water', 'accuracy': 100, 'pp': 25},
 | |
|      'Hydro Pump': {'id': 56, 'power': 120, 'type': 'Water', 'accuracy': 80, 'pp': 5},
 | |
|      'Surf': {'id': 57, 'power': 95, 'type': 'Water', 'accuracy': 100, 'pp': 15},
 | |
|      'Ice Beam': {'id': 58, 'power': 95, 'type': 'Ice', 'accuracy': 100, 'pp': 10},
 | |
|      'Blizzard': {'id': 59, 'power': 120, 'type': 'Ice', 'accuracy': 90, 'pp': 5},
 | |
|      'Psybeam': {'id': 60, 'power': 65, 'type': 'Psychic', 'accuracy': 100, 'pp': 20},
 | |
|      'Bubblebeam': {'id': 61, 'power': 65, 'type': 'Water', 'accuracy': 100, 'pp': 20},
 | |
|      'Aurora Beam': {'id': 62, 'power': 65, 'type': 'Ice', 'accuracy': 100, 'pp': 20},
 | |
|      'Hyper Beam': {'id': 63, 'power': 150, 'type': 'Normal', 'accuracy': 90, 'pp': 5},
 | |
|      'Peck': {'id': 64, 'power': 35, 'type': 'Flying', 'accuracy': 100, 'pp': 35},
 | |
|      'Drill Peck': {'id': 65, 'power': 80, 'type': 'Flying', 'accuracy': 100, 'pp': 20},
 | |
|      'Submission': {'id': 66, 'power': 80, 'type': 'Fighting', 'accuracy': 80, 'pp': 25},
 | |
|      'Low Kick': {'id': 67, 'power': 50, 'type': 'Fighting', 'accuracy': 90, 'pp': 20},
 | |
|      'Counter': {'id': 68, 'power': 1, 'type': 'Fighting', 'accuracy': 100, 'pp': 20},
 | |
|      'Seismic Toss': {'id': 69, 'power': 1, 'type': 'Fighting', 'accuracy': 100, 'pp': 20},
 | |
|      'Strength': {'id': 70, 'power': 80, 'type': 'Normal', 'accuracy': 100, 'pp': 15},
 | |
|      'Absorb': {'id': 71, 'power': 20, 'type': 'Grass', 'accuracy': 100, 'pp': 20},
 | |
|      'Mega Drain': {'id': 72, 'power': 40, 'type': 'Grass', 'accuracy': 100, 'pp': 10},
 | |
|      'Leech Seed': {'id': 73, 'power': 0, 'type': 'Grass', 'accuracy': 90, 'pp': 10},
 | |
|      'Growth': {'id': 74, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 40},
 | |
|      'Razor Leaf': {'id': 75, 'power': 55, 'type': 'Grass', 'accuracy': 95, 'pp': 25},
 | |
|      'Solarbeam': {'id': 76, 'power': 120, 'type': 'Grass', 'accuracy': 100, 'pp': 10},
 | |
|      'Poisonpowder': {'id': 77, 'power': 0, 'type': 'Poison', 'accuracy': 75, 'pp': 35},
 | |
|      'Stun Spore': {'id': 78, 'power': 0, 'type': 'Grass', 'accuracy': 75, 'pp': 30},
 | |
|      'Sleep Powder': {'id': 79, 'power': 0, 'type': 'Grass', 'accuracy': 75, 'pp': 15},
 | |
|      'Petal Dance': {'id': 80, 'power': 70, 'type': 'Grass', 'accuracy': 100, 'pp': 20},
 | |
|      'String Shot': {'id': 81, 'power': 0, 'type': 'Bug', 'accuracy': 95, 'pp': 40},
 | |
|      'Dragon Rage': {'id': 82, 'power': 1, 'type': 'Dragon', 'accuracy': 100, 'pp': 10},
 | |
|      'Fire Spin': {'id': 83, 'power': 15, 'type': 'Fire', 'accuracy': 70, 'pp': 15},
 | |
|      'Thundershock': {'id': 84, 'power': 40, 'type': 'Electric', 'accuracy': 100, 'pp': 30},
 | |
|      'Thunderbolt': {'id': 85, 'power': 95, 'type': 'Electric', 'accuracy': 100, 'pp': 15},
 | |
|      'Thunder Wave': {'id': 86, 'power': 0, 'type': 'Electric', 'accuracy': 100, 'pp': 20},
 | |
|      'Thunder': {'id': 87, 'power': 120, 'type': 'Electric', 'accuracy': 70, 'pp': 10},
 | |
|      'Rock Throw': {'id': 88, 'power': 50, 'type': 'Rock', 'accuracy': 65, 'pp': 15},
 | |
|      'Earthquake': {'id': 89, 'power': 100, 'type': 'Ground', 'accuracy': 100, 'pp': 10},
 | |
|      'Fissure': {'id': 90, 'power': 1, 'type': 'Ground', 'accuracy': 30, 'pp': 5},
 | |
|      'Dig': {'id': 91, 'power': 100, 'type': 'Ground', 'accuracy': 100, 'pp': 10},
 | |
|      'Toxic': {'id': 92, 'power': 0, 'type': 'Poison', 'accuracy': 85, 'pp': 10},
 | |
|      'Confusion': {'id': 93, 'power': 50, 'type': 'Psychic', 'accuracy': 100, 'pp': 25},
 | |
|      'Psychic': {'id': 94, 'power': 90, 'type': 'Psychic', 'accuracy': 100, 'pp': 10},
 | |
|      'Hypnosis': {'id': 95, 'power': 0, 'type': 'Psychic', 'accuracy': 60, 'pp': 20},
 | |
|      'Meditate': {'id': 96, 'power': 0, 'type': 'Psychic', 'accuracy': 100, 'pp': 40},
 | |
|      'Agility': {'id': 97, 'power': 0, 'type': 'Psychic', 'accuracy': 100, 'pp': 30},
 | |
|      'Quick Attack': {'id': 98, 'power': 40, 'type': 'Normal', 'accuracy': 100, 'pp': 30},
 | |
|      'Rage': {'id': 99, 'power': 20, 'type': 'Normal', 'accuracy': 100, 'pp': 20},
 | |
|      'Teleport': {'id': 100, 'power': 0, 'type': 'Psychic', 'accuracy': 100, 'pp': 20},
 | |
|      'Night Shade': {'id': 101, 'power': 0, 'type': 'Ghost', 'accuracy': 100, 'pp': 15},
 | |
|      'Mimic': {'id': 102, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 10},
 | |
|      'Screech': {'id': 103, 'power': 0, 'type': 'Normal', 'accuracy': 85, 'pp': 40},
 | |
|      'Double Team': {'id': 104, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 15},
 | |
|      'Recover': {'id': 105, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 20},
 | |
|      'Harden': {'id': 106, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 30},
 | |
|      'Minimize': {'id': 107, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 20},
 | |
|      'Smokescreen': {'id': 108, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 20},
 | |
|      'Confuse Ray': {'id': 109, 'power': 0, 'type': 'Ghost', 'accuracy': 100, 'pp': 10},
 | |
|      'Withdraw': {'id': 110, 'power': 0, 'type': 'Water', 'accuracy': 100, 'pp': 40},
 | |
|      'Defense Curl': {'id': 111, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 40},
 | |
|      'Barrier': {'id': 112, 'power': 0, 'type': 'Psychic', 'accuracy': 100, 'pp': 30},
 | |
|      'Light Screen': {'id': 113, 'power': 0, 'type': 'Psychic', 'accuracy': 100, 'pp': 30},
 | |
|      'Haze': {'id': 114, 'power': 0, 'type': 'Ice', 'accuracy': 100, 'pp': 30},
 | |
|      'Reflect': {'id': 115, 'power': 0, 'type': 'Psychic', 'accuracy': 100, 'pp': 20},
 | |
|      'Focus Energy': {'id': 116, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 30},
 | |
|      'Bide': {'id': 117, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 10},
 | |
|      'Metronome': {'id': 118, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 10},
 | |
|      'Mirror Move': {'id': 119, 'power': 0, 'type': 'Flying', 'accuracy': 100, 'pp': 20},
 | |
|      'Selfdestruct': {'id': 120, 'power': 130, 'type': 'Normal', 'accuracy': 100, 'pp': 5},
 | |
|      'Egg Bomb': {'id': 121, 'power': 100, 'type': 'Normal', 'accuracy': 75, 'pp': 10},
 | |
|      'Lick': {'id': 122, 'power': 20, 'type': 'Ghost', 'accuracy': 100, 'pp': 30},
 | |
|      'Smog': {'id': 123, 'power': 20, 'type': 'Poison', 'accuracy': 70, 'pp': 20},
 | |
|      'Sludge': {'id': 124, 'power': 65, 'type': 'Poison', 'accuracy': 100, 'pp': 20},
 | |
|      'Bone Club': {'id': 125, 'power': 65, 'type': 'Ground', 'accuracy': 85, 'pp': 20},
 | |
|      'Fire Blast': {'id': 126, 'power': 120, 'type': 'Fire', 'accuracy': 85, 'pp': 5},
 | |
|      'Waterfall': {'id': 127, 'power': 80, 'type': 'Water', 'accuracy': 100, 'pp': 15},
 | |
|      'Clamp': {'id': 128, 'power': 35, 'type': 'Water', 'accuracy': 75, 'pp': 10},
 | |
|      'Swift': {'id': 129, 'power': 60, 'type': 'Normal', 'accuracy': 100, 'pp': 20},
 | |
|      'Skull Bash': {'id': 130, 'power': 100, 'type': 'Normal', 'accuracy': 100, 'pp': 15},
 | |
|      'Spike Cannon': {'id': 131, 'power': 20, 'type': 'Normal', 'accuracy': 100, 'pp': 15},
 | |
|      'Constrict': {'id': 132, 'power': 10, 'type': 'Normal', 'accuracy': 100, 'pp': 35},
 | |
|      'Amnesia': {'id': 133, 'power': 0, 'type': 'Psychic', 'accuracy': 100, 'pp': 20},
 | |
|      'Kinesis': {'id': 134, 'power': 0, 'type': 'Psychic', 'accuracy': 80, 'pp': 15},
 | |
|      'Softboiled': {'id': 135, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 10},
 | |
|      'Hi Jump Kick': {'id': 136, 'power': 85, 'type': 'Fighting', 'accuracy': 90, 'pp': 20},
 | |
|      'Glare': {'id': 137, 'power': 0, 'type': 'Normal', 'accuracy': 75, 'pp': 30},
 | |
|      'Dream Eater': {'id': 138, 'power': 100, 'type': 'Psychic', 'accuracy': 100, 'pp': 15},
 | |
|      'Poison Gas': {'id': 139, 'power': 0, 'type': 'Poison', 'accuracy': 55, 'pp': 40},
 | |
|      'Barrage': {'id': 140, 'power': 15, 'type': 'Normal', 'accuracy': 85, 'pp': 20},
 | |
|      'Leech Life': {'id': 141, 'power': 20, 'type': 'Bug', 'accuracy': 100, 'pp': 15},
 | |
|      'Lovely Kiss': {'id': 142, 'power': 0, 'type': 'Normal', 'accuracy': 75, 'pp': 10},
 | |
|      'Sky Attack': {'id': 143, 'power': 140, 'type': 'Flying', 'accuracy': 90, 'pp': 5},
 | |
|      'Transform': {'id': 144, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 10},
 | |
|      'Bubble': {'id': 145, 'power': 20, 'type': 'Water', 'accuracy': 100, 'pp': 30},
 | |
|      'Dizzy Punch': {'id': 146, 'power': 70, 'type': 'Normal', 'accuracy': 100, 'pp': 10},
 | |
|      'Spore': {'id': 147, 'power': 0, 'type': 'Grass', 'accuracy': 100, 'pp': 15},
 | |
|      'Flash': {'id': 148, 'power': 0, 'type': 'Normal', 'accuracy': 70, 'pp': 20},
 | |
|      'Psywave': {'id': 149, 'power': 1, 'type': 'Psychic', 'accuracy': 80, 'pp': 15},
 | |
|      'Splash': {'id': 150, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 40},
 | |
|      'Acid Armor': {'id': 151, 'power': 0, 'type': 'Poison', 'accuracy': 100, 'pp': 40},
 | |
|      'Crabhammer': {'id': 152, 'power': 90, 'type': 'Water', 'accuracy': 85, 'pp': 10},
 | |
|      'Explosion': {'id': 153, 'power': 170, 'type': 'Normal', 'accuracy': 100, 'pp': 5},
 | |
|      'Fury Swipes': {'id': 154, 'power': 18, 'type': 'Normal', 'accuracy': 80, 'pp': 15},
 | |
|      'Bonemerang': {'id': 155, 'power': 50, 'type': 'Ground', 'accuracy': 90, 'pp': 10},
 | |
|      'Rest': {'id': 156, 'power': 0, 'type': 'Psychic', 'accuracy': 100, 'pp': 10},
 | |
|      'Rock Slide': {'id': 157, 'power': 75, 'type': 'Rock', 'accuracy': 90, 'pp': 10},
 | |
|      'Hyper Fang': {'id': 158, 'power': 80, 'type': 'Normal', 'accuracy': 90, 'pp': 15},
 | |
|      'Sharpen': {'id': 159, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 30},
 | |
|      'Conversion': {'id': 160, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 30},
 | |
|      'Tri Attack': {'id': 161, 'power': 80, 'type': 'Normal', 'accuracy': 100, 'pp': 10},
 | |
|      'Super Fang': {'id': 162, 'power': 1, 'type': 'Normal', 'accuracy': 90, 'pp': 10},
 | |
|      'Slash': {'id': 163, 'power': 70, 'type': 'Normal', 'accuracy': 100, 'pp': 20},
 | |
|      'Substitute': {'id': 164, 'power': 0, 'type': 'Normal', 'accuracy': 100, 'pp': 10},
 | |
|      #'Struggle': {'id': 165, 'power': 50, 'type': 'Struggle_Type', 'accuracy': 100, 'pp': 10}
 | |
| }
 | |
| 
 | |
| encounter_tables = {'Wild_Super_Rod_A': 2, 'Wild_Super_Rod_B': 2, 'Wild_Super_Rod_C': 3, 'Wild_Super_Rod_D': 2,
 | |
|                     'Wild_Super_Rod_E': 2, 'Wild_Super_Rod_F': 4, 'Wild_Super_Rod_G': 4, 'Wild_Super_Rod_H': 4,
 | |
|                     'Wild_Super_Rod_I': 4, 'Wild_Super_Rod_J': 4, 'Wild_Route1': 10, 'Wild_Route2': 10,
 | |
|                     'Wild_Route22': 10, 'Wild_ViridianForest': 10, 'Wild_Route3': 10, 'Wild_MtMoon1F': 10,
 | |
|                     'Wild_MtMoonB1F': 10, 'Wild_MtMoonB2F': 10, 'Wild_Route4': 10, 'Wild_Route24': 10,
 | |
|                     'Wild_Route25': 10, 'Wild_Route9': 10, 'Wild_Route5': 10, 'Wild_Route6': 10,
 | |
|                     'Wild_Route11': 10, 'Wild_RockTunnel1F': 10, 'Wild_RockTunnelB1F': 10, 'Wild_Route10': 10,
 | |
|                     'Wild_Route12': 10, 'Wild_Route8': 10, 'Wild_Route7': 10, 'Wild_PokemonTower3F': 10,
 | |
|                     'Wild_PokemonTower4F': 10, 'Wild_PokemonTower5F': 10, 'Wild_PokemonTower6F': 10,
 | |
|                     'Wild_PokemonTower7F': 10, 'Wild_Route13': 10, 'Wild_Route14': 10, 'Wild_Route15': 10,
 | |
|                     'Wild_Route16': 10, 'Wild_Route17': 10, 'Wild_Route18': 10, 'Wild_SafariZoneCenter': 10,
 | |
|                     'Wild_SafariZoneEast': 10, 'Wild_SafariZoneNorth': 10, 'Wild_SafariZoneWest': 10,
 | |
|                     'Wild_SeaRoutes': 10, 'Wild_SeafoamIslands1F': 10, 'Wild_SeafoamIslandsB1F': 10,
 | |
|                     'Wild_SeafoamIslandsB2F': 10, 'Wild_SeafoamIslandsB3F': 10, 'Wild_SeafoamIslandsB4F': 10,
 | |
|                     'Wild_PokemonMansion1F': 10, 'Wild_PokemonMansion2F': 10, 'Wild_PokemonMansion3F': 10,
 | |
|                     'Wild_PokemonMansionB1F': 10, 'Wild_Route21': 10, 'Wild_CeruleanCave1F': 10,
 | |
|                     'Wild_CeruleanCave2F': 10, 'Wild_CeruleanCaveB1F': 10, 'Wild_PowerPlant': 10,
 | |
|                     'Wild_Route23': 10, 'Wild_VictoryRoad2F': 10, 'Wild_VictoryRoad3F': 10,
 | |
|                     'Wild_VictoryRoad1F': 10, 'Wild_DiglettsCave': 10, 'Wild_Good_Rod': 2}
 | |
| 
 | |
| hm_moves = ["Cut", "Fly", "Surf", "Strength", "Flash"]
 | |
| 
 | |
| tm_moves = [
 | |
|     'Mega Punch', 'Razor Wind', 'Swords Dance', 'Whirlwind', 'Mega Kick', 'Toxic', 'Horn Drill', 'Body Slam',
 | |
|     'Take Down', 'Double Edge', 'Bubblebeam', 'Water Gun', 'Ice Beam', 'Blizzard', 'Hyper Beam', 'Pay Day',
 | |
|     'Submission', 'Counter', 'Seismic Toss', 'Rage', 'Mega Drain', 'Solarbeam', 'Dragon Rage', 'Thunderbolt', 'Thunder',
 | |
|     'Earthquake', 'Fissure', 'Dig', 'Psychic', 'Teleport', 'Mimic', 'Double Team', 'Reflect', 'Bide', 'Metronome',
 | |
|     'Selfdestruct', 'Egg Bomb', 'Fire Blast', 'Swift', 'Skull Bash', 'Softboiled', 'Dream Eater', 'Sky Attack', 'Rest',
 | |
|     'Thunder Wave', 'Psywave', 'Explosion', 'Rock Slide', 'Tri Attack', 'Substitute'
 | |
| ]
 | |
| 
 | |
| 
 | |
| 
 | |
| first_stage_pokemon = [pokemon for pokemon in pokemon_data.keys() if pokemon not in evolves_from]
 | |
| legendary_pokemon = ["Articuno", "Zapdos", "Moltres", "Mewtwo", "Mew"]
 | |
| 
 | 
