MediaWiki:Gadget-BulbaTools.js — различия между версиями

Материал из ПокеВики
Перейти к: навигация, поиск
Строка 21: Строка 21:
 
function BulbaParser(WikiEditorContext)
 
function BulbaParser(WikiEditorContext)
 
{
 
{
// WIP
+
var textarea = WikiEditorContext.$textarea;
console.log(WikiEditorContext);
+
var start = textarea.selectionStart;
 +
var end = textarea.selectionEnd;
 +
var selected = textarea.value.substring(start, end);
 +
var converted = convertLearnset(selected);
 +
var newValue = textarea.value.substring(0, start) + converted + textarea.value.substring(end + 1);
 
}
 
}
  
Строка 38: Строка 42:
  
 
console.log("BulbaTools ready");
 
console.log("BulbaTools ready");
 +
 +
const Types = {
 +
'Bug': 'Насекомый',
 +
'Dark': 'Тёмный',
 +
'Dragon': 'Драконий',
 +
'Electric': 'Электрический',
 +
'Fairy': 'Волшебный',
 +
'Fighting': 'Боевой',
 +
'Fire': 'Огненный',
 +
'Flying': 'Летающий',
 +
'Ghost': 'Призрачный',
 +
'Grass': 'Травяной',
 +
'Ground': 'Земляной',
 +
'Ice': 'Ледяной',
 +
'Normal': 'Нормальный',
 +
'Poison': 'Ядовитый',
 +
'Psychic': 'Психический',
 +
'Rock': 'Каменный',
 +
'Steel': 'Стальной',
 +
'Water': 'Водный',
 +
};
 +
const NUMBER_OF_GENS = 8;
 +
const PokemonNames = {
 +
'Bulbasaur': 'Бульбазавр',
 +
'Ivysaur': 'Ивизавр',
 +
'Venusaur': 'Венузавр',
 +
'Charmander': 'Чармандер',
 +
'Charmeleon': 'Чармилион',
 +
'Charizard': 'Чаризард',
 +
'Squirtle': 'Сквиртл',
 +
'Wartortle': 'Вортортл',
 +
'Blastoise': 'Бластойз',
 +
'Caterpie': 'Катерпи',
 +
'Metapod': 'Метапод',
 +
'Butterfree': 'Баттерфри',
 +
'Weedle': 'Видл',
 +
'Kakuna': 'Какуна',
 +
'Beedrill': 'Бидрилла',
 +
'Pidgey': 'Пиджи',
 +
'Pidgeotto': 'Пиджеотто',
 +
'Pidgeot': 'Пиджеот',
 +
'Rattata': 'Раттата',
 +
'Raticate': 'Ратикат',
 +
'Spearow': 'Спироу',
 +
'Fearow': 'Фироу',
 +
'Ekans': 'Иканс',
 +
'Arbok': 'Эрбок',
 +
'Pikachu': 'Пикачу',
 +
'Raichu': 'Райчу',
 +
'Sandshrew': 'Сендшрю',
 +
'Sandslash': 'Сендслэш',
 +
'Nidoran♀': 'Нидоранка',
 +
'Nidorina': 'Нидорина',
 +
'Nidoqueen': 'Нидоквин',
 +
'Nidoran♂': 'Нидоран',
 +
'Nidorino': 'Нидорино',
 +
'Nidoking': 'Нидокинг',
 +
'Clefairy': 'Клефейри',
 +
'Clefable': 'Клефабл',
 +
'Vulpix': 'Вульпикс',
 +
'Ninetales': 'Найнтэйлз',
 +
'Jigglypuff': 'Джигглипуф',
 +
'Wigglytuff': 'Вигглитуф',
 +
'Zubat': 'Зубат',
 +
'Golbat': 'Голбат',
 +
'Oddish': 'Оддиш',
 +
'Gloom': 'Глум',
 +
'Vileplume': 'Вилплум',
 +
'Paras': 'Парас',
 +
'Parasect': 'Парасект',
 +
'Venonat': 'Венонат',
 +
'Venomoth': 'Веномот',
 +
'Diglett': 'Диглетт',
 +
'Dugtrio': 'Дагтрио',
 +
'Meowth': 'Мяут',
 +
'Persian': 'Перс',
 +
'Psyduck': 'Псидак',
 +
'Golduck': 'Голдак',
 +
'Mankey': 'Мэнки',
 +
'Primeape': 'Примап',
 +
'Growlithe': 'Гроулит',
 +
'Arcanine': 'Арканин',
 +
'Poliwag': 'Поливаг',
 +
'Poliwhirl': 'Поливћрл',
 +
'Poliwrath': 'Полирас',
 +
'Abra': 'Абра',
 +
'Kadabra': 'Кадабра',
 +
'Alakazam': 'Алаказам',
 +
'Machop': 'Мачоп',
 +
'Machoke': 'Мачок',
 +
'Machamp': 'Мачемп',
 +
'Bellsprout': 'Беллспраут',
 +
'Weepinbell': 'Випинбелл',
 +
'Victreebel': 'Виктрибел',
 +
'Tentacool': 'Тентакул',
 +
'Tentacruel': 'Тентакруэль',
 +
'Geodude': 'Джеодуд',
 +
'Graveler': 'Гравелер',
 +
'Golem': 'Голем',
 +
'Ponyta': 'Понита',
 +
'Rapidash': 'Рапидаш',
 +
'Slowpoke': 'Слоупок',
 +
'Slowbro': 'Слоубро',
 +
'Magnemite': 'Магнемайт',
 +
'Magneton': 'Магнетон',
 +
"Farfetch'd": "Фарфеч'д",
 +
'Doduo': 'Додуо',
 +
'Dodrio': 'Додрио',
 +
'Seel': 'Силл',
 +
'Dewgong': 'Дюгонг',
 +
'Grimer': 'Граймер',
 +
'Muk': 'Макк',
 +
'Shellder': 'Шеллдер',
 +
'Cloyster': 'Клойстер',
 +
'Gastly': 'Гастли',
 +
'Haunter': 'Хонтер',
 +
'Gengar': 'Генгар',
 +
'Onix': 'Оникс',
 +
'Drowzee': 'Дроузи',
 +
'Hypno': 'Гипно',
 +
'Krabby': 'Крабби',
 +
'Kingler': 'Кинглер',
 +
'Voltorb': 'Волторб',
 +
'Electrode': 'Электрод',
 +
'Exeggcute': 'Экзегкут',
 +
'Exeggutor': 'Экзеггутор',
 +
'Cubone': 'Кубон',
 +
'Marowak': 'Маровак',
 +
'Hitmonlee': 'Хитмонли',
 +
'Hitmonchan': 'Хитмончан',
 +
'Lickitung': 'Ликитунг',
 +
'Koffing': 'Коффинг',
 +
'Weezing': 'Визинг',
 +
'Rhyhorn': 'Райхорн',
 +
'Rhydon': 'Райдон',
 +
'Chansey': 'Ченси',
 +
'Tangela': 'Тангела',
 +
'Kangaskhan': 'Кангасханна',
 +
'Horsea': 'Хорси',
 +
'Seadra': 'Сидра',
 +
'Goldeen': 'Голдин',
 +
'Seaking': 'Сикинг',
 +
'Staryu': 'Старью',
 +
'Starmie': 'Старми',
 +
'Mr. Mime': 'Майм',
 +
'Scyther': 'Сайтер',
 +
'Jynx': 'Джинкс',
 +
'Electabuzz': 'Электабузз',
 +
'Magmar': 'Магмар',
 +
'Pinsir': 'Пинсир',
 +
'Tauros': 'Таурос',
 +
'Magikarp': 'Магикарп',
 +
'Gyarados': 'Гярадос',
 +
'Lapras': 'Лапрас',
 +
'Ditto': 'Дитто',
 +
'Eevee': 'Иви',
 +
'Vaporeon': 'Вапореон',
 +
'Jolteon': 'Джолтеон',
 +
'Flareon': 'Флареон',
 +
'Porygon': 'Поригон',
 +
'Omanyte': 'Оманит',
 +
'Omastar': 'Омастар',
 +
'Kabuto': 'Кабуто',
 +
'Kabutops': 'Кабутопс',
 +
'Aerodactyl': 'Аэродактиль',
 +
'Snorlax': 'Снорлакс',
 +
'Articuno': 'Артикуно',
 +
'Zapdos': 'Запдос',
 +
'Moltres': 'Молтрес',
 +
'Dratini': 'Дратини',
 +
'Dragonair': 'Драгонир',
 +
'Dragonite': 'Драгонит',
 +
'Mewtwo': 'Мьюту',
 +
'Mew': 'Мью',
 +
'Chikorita': 'Чикорита',
 +
'Bayleef': 'Бэйлиф',
 +
'Meganium': 'Меганиум',
 +
'Cyndaquil': 'Синдаквил',
 +
'Quilava': 'Квилава',
 +
'Typhlosion': 'Тифложн',
 +
'Totodile': 'Тотодил',
 +
'Croconaw': 'Кроконав',
 +
'Feraligatr': 'Фералигатр',
 +
'Sentret': 'Сентрет',
 +
'Furret': 'Фуррет',
 +
'Hoothoot': 'Хут-хут',
 +
'Noctowl': 'Ноктаул',
 +
'Ledyba': 'Ледиба',
 +
'Ledian': 'Ледиан',
 +
'Spinarak': 'Спинарак',
 +
'Ariados': 'Ариадос',
 +
'Crobat': 'Кробат',
 +
'Chinchou': 'Чинчоу',
 +
'Lanturn': 'Лантурн',
 +
'Pichu': 'Пичу',
 +
'Cleffa': 'Клеффа',
 +
'Igglybuff': 'Игглибуф',
 +
'Togepi': 'Тогепи',
 +
'Togetic': 'Тогетик',
 +
'Natu': 'Нату',
 +
'Xatu': 'Ксату',
 +
'Mareep': 'Мариип',
 +
'Flaaffy': 'Флаафи',
 +
'Ampharos': 'Амфарос',
 +
'Bellossom': 'Беллоссом',
 +
'Marill': 'Мэрилл',
 +
'Azumarill': 'Азумэрилл',
 +
'Sudowoodo': 'Судовудо',
 +
'Politoed': 'Политоед',
 +
'Hoppip': 'Хоппип',
 +
'Skiploom': 'Скиплум',
 +
'Jumpluff': 'Джамплафф',
 +
'Aipom': 'Айпом',
 +
'Sunkern': 'Санкерн',
 +
'Sunflora': 'Санфлора',
 +
'Yanma': 'Янма',
 +
'Wooper': 'Вупер',
 +
'Quagsire': 'Квагсир',
 +
'Espeon': 'Эспеон',
 +
'Umbreon': 'Умбреон',
 +
'Murkrow': 'Мћркроу',
 +
'Slowking': 'Слоукинг',
 +
'Misdreavus': 'Мисдривус',
 +
'Unown': 'Аноун',
 +
'Wobbuffet': 'Воббуффет',
 +
'Girafarig': 'Жирафариж',
 +
'Pineco': 'Пинеко',
 +
'Forretress': 'Форретресс',
 +
'Dunsparce': 'Данспарс',
 +
'Gligar': 'Глигар',
 +
'Steelix': 'Стиликс',
 +
'Snubbull': 'Снаббул',
 +
'Granbull': 'Грэнбул',
 +
'Qwilfish': 'Квилфиш',
 +
'Scizor': 'Сизор',
 +
'Shuckle': 'Шакл',
 +
'Heracross': 'Геракросс',
 +
'Sneasel': 'Снизил',
 +
'Teddiursa': 'Теддиурса',
 +
'Ursaring': 'Урсаринг',
 +
'Slugma': 'Слагма',
 +
'Magcargo': 'Магкарго',
 +
'Swinub': 'Свинуб',
 +
'Piloswine': 'Пилосвин',
 +
'Corsola': 'Корсола',
 +
'Remoraid': 'Реморейд',
 +
'Octillery': 'Октилерия',
 +
'Delibird': 'Делибћрд',
 +
'Mantine': 'Мантин',
 +
'Skarmory': 'Скармори',
 +
'Houndour': 'Хондар',
 +
'Houndoom': 'Хондум',
 +
'Kingdra': 'Кингдра',
 +
'Phanpy': 'Фанпи',
 +
'Donphan': 'Донфан',
 +
'Porygon2': 'Поригон2',
 +
'Stantler': 'Стантлер',
 +
'Smeargle': 'Смиргл',
 +
'Tyrogue': 'Тирог',
 +
'Hitmontop': 'Хитмонтоп',
 +
'Smoochum': 'Смучум',
 +
'Elekid': 'Элекид',
 +
'Magby': 'Магби',
 +
'Miltank': 'Милтанк',
 +
'Blissey': 'Блисси',
 +
'Raikou': 'Райко',
 +
'Entei': 'Энтей',
 +
'Suicune': 'Суйкун',
 +
'Larvitar': 'Ларвитар',
 +
'Pupitar': 'Пупитар',
 +
'Tyranitar': 'Тиранитар',
 +
'Lugia': 'Лугия',
 +
'Ho-Oh': 'Хо-ох',
 +
'Celebi': 'Селеби',
 +
'Treecko': 'Трикко',
 +
'Grovyle': 'Гроувил',
 +
'Sceptile': 'Септил',
 +
'Torchic': 'Торчик',
 +
'Combusken': 'Комбускен',
 +
'Blaziken': 'Блазикен',
 +
'Mudkip': 'Мадкип',
 +
'Marshtomp': 'Марштомп',
 +
'Swampert': 'Свамперт',
 +
'Poochyena': 'Почена',
 +
'Mightyena': 'Майтена',
 +
'Zigzagoon': 'Зигзагун',
 +
'Linoone': 'Линун',
 +
'Wurmple': 'Вурмпл',
 +
'Silcoon': 'Силкун',
 +
'Beautifly': 'Бьютифлай',
 +
'Cascoon': 'Каскун',
 +
'Dustox': 'Дастокс',
 +
'Lotad': 'Лотад',
 +
'Lombre': 'Ломбрэ',
 +
'Ludicolo': 'Лудиколо',
 +
'Seedot': 'Сидот',
 +
'Nuzleaf': 'Назлиф',
 +
'Shiftry': 'Шифтри',
 +
'Taillow': 'Тэйллоу',
 +
'Swellow': 'Свеллоу',
 +
'Wingull': 'Вингал',
 +
'Pelipper': 'Пелиппер',
 +
'Ralts': 'Ральтс',
 +
'Kirlia': 'Кирлия',
 +
'Gardevoir': 'Гардевуар',
 +
'Surskit': 'Сурскит',
 +
'Masquerain': 'Маскирейн',
 +
'Shroomish': 'Шрумиш',
 +
'Breloom': 'Брелум',
 +
'Slakoth': 'Слакос',
 +
'Vigoroth': 'Вигорос',
 +
'Slaking': 'Слакинг',
 +
'Nincada': 'Нинкада',
 +
'Ninjask': 'Нинджаск',
 +
'Shedinja': 'Шединья',
 +
'Whismur': 'Висмур',
 +
'Loudred': 'Лаудред',
 +
'Exploud': 'Эксплауд',
 +
'Makuhita': 'Макухита',
 +
'Hariyama': 'Харияма',
 +
'Azurill': 'Азурилл',
 +
'Nosepass': 'Носпасс',
 +
'Skitty': 'Скитти',
 +
'Delcatty': 'Деликатти',
 +
'Sableye': 'Саблай',
 +
'Mawile': 'Мавиль',
 +
'Aron': 'Арон',
 +
'Lairon': 'Лайрон',
 +
'Aggron': 'Аггрон',
 +
'Meditite': 'Медитит',
 +
'Medicham': 'Медичам',
 +
'Electrike': 'Электрайк',
 +
'Manectric': 'Манектрик',
 +
'Plusle': 'Плюсл',
 +
'Minun': 'Минун',
 +
'Volbeat': 'Волбит',
 +
'Illumise': 'Иллюмайз',
 +
'Roselia': 'Розалия',
 +
'Gulpin': 'Гульпин',
 +
'Swalot': 'Свалот',
 +
'Carvanha': 'Карванья',
 +
'Sharpedo': 'Шарпедо',
 +
'Wailmer': 'Вэйлмир',
 +
'Wailord': 'Вэйлорд',
 +
'Numel': 'Нумель',
 +
'Camerupt': 'Камерупт',
 +
'Torkoal': 'Торкол',
 +
'Spoink': 'Споинк',
 +
'Grumpig': 'Грумпиг',
 +
'Spinda': 'Спинда',
 +
'Trapinch': 'Трапинч',
 +
'Vibrava': 'Вибрава',
 +
'Flygon': 'Флайгон',
 +
'Cacnea': 'Какнея',
 +
'Cacturne': 'Кактурн',
 +
'Swablu': 'Сваблю',
 +
'Altaria': 'Алтария',
 +
'Zangoose': 'Зангус',
 +
'Seviper': 'Севипер',
 +
'Lunatone': 'Лунатон',
 +
'Solrock': 'Солрок',
 +
'Barboach': 'Барбоч',
 +
'Whiscash': 'Вискаш',
 +
'Corphish': 'Корфиш',
 +
'Crawdaunt': 'Крадонт',
 +
'Baltoy': 'Балтой',
 +
'Claydol': 'Клэйдол',
 +
'Lileep': 'Лилип',
 +
'Cradily': 'Крадили',
 +
'Anorith': 'Анорит',
 +
'Armaldo': 'Армальдо',
 +
'Feebas': 'Фибас',
 +
'Milotic': 'Милотик',
 +
'Castform': 'Кастформ',
 +
'Kecleon': 'Кеклеон',
 +
'Shuppet': 'Шаппет',
 +
'Banette': 'Банетта',
 +
'Duskull': 'Даскалл',
 +
'Dusclops': 'Дасклопс',
 +
'Tropius': 'Тропиус',
 +
'Chimecho': 'Чимеко',
 +
'Absol': 'Абсол',
 +
'Wynaut': 'Вайнот',
 +
'Snorunt': 'Снорант',
 +
'Glalie': 'Глали',
 +
'Spheal': 'Сфил',
 +
'Sealeo': 'Силео',
 +
'Walrein': 'Валрейн',
 +
'Clamperl': 'Кламперл',
 +
'Huntail': 'Хантейл',
 +
'Gorebyss': 'Горбисс',
 +
'Relicanth': 'Реликант',
 +
'Luvdisc': 'Лавдиск',
 +
'Bagon': 'Багон',
 +
'Shelgon': 'Шеллгон',
 +
'Salamence': 'Саламенс',
 +
'Beldum': 'Белдам',
 +
'Metang': 'Метанг',
 +
'Metagross': 'Метагросс',
 +
'Regirock': 'Реджирок',
 +
'Regice': 'Реджиайс',
 +
'Registeel': 'Реджистил',
 +
'Latias': 'Латиас',
 +
'Latios': 'Латиос',
 +
'Kyogre': 'Кайогр',
 +
'Groudon': 'Градон',
 +
'Rayquaza': 'Рекваза',
 +
'Jirachi': 'Джирачи',
 +
'Deoxys': 'Деоксис',
 +
'Deoxys': 'Деоксис',
 +
'Deoxys': 'Деоксис',
 +
'Deoxys': 'Деоксис',
 +
'Turtwig': 'Туртвиг',
 +
'Grotle': 'Гротл',
 +
'Torterra': 'Тортерра',
 +
'Chimchar': 'Чимчар',
 +
'Monferno': 'Монферно',
 +
'Infernape': 'Инфернейп',
 +
'Piplup': 'Пиплап',
 +
'Prinplup': 'Принплап',
 +
'Empoleon': 'Эмполеон',
 +
'Starly': 'Старли',
 +
'Staravia': 'Старэвия',
 +
'Staraptor': 'Стараптор',
 +
'Bidoof': 'Бидуф',
 +
'Bibarel': 'Бибарель',
 +
'Kricketot': 'Крикетот',
 +
'Kricketune': 'Крикетьюн',
 +
'Shinx': 'Шинкс',
 +
'Luxio': 'Люксио',
 +
'Luxray': 'Люксрэй',
 +
'Budew': 'Бадью',
 +
'Roserade': 'Роузрейд',
 +
'Cranidos': 'Крэнидос',
 +
'Rampardos': 'Рампардос',
 +
'Shieldon': 'Шилдон',
 +
'Bastiodon': 'Баститодон',
 +
'Burmy': 'Бћрми',
 +
'Wormadam': 'Вормадам',
 +
'Mothim': 'Мотим',
 +
'Combee': 'Комби',
 +
'Vespiquen': 'Веспиквин',
 +
'Pachirisu': 'Пачирису',
 +
'Buizel': 'Буизель',
 +
'Floatzel': 'Флотзел',
 +
'Cherubi': 'Черуби',
 +
'Cherrim': 'Черрим',
 +
'Shellos': 'Шеллос',
 +
'Gastrodon': 'Гастродон',
 +
'Ambipom': 'Эмбипом',
 +
'Drifloon': 'Дрифлун',
 +
'Drifblim': 'Дрифблим',
 +
'Buneary': 'Банири',
 +
'Lopunny': 'Лопанни',
 +
'Mismagius': 'Мисмагиус',
 +
'Honchkrow': 'Ханчкроу',
 +
'Glameow': 'Глэймяу',
 +
'Purugly': 'Парагли',
 +
'Chingling': 'Чинлинг',
 +
'Stunky': 'Станки',
 +
'Skuntank': 'Скантанк',
 +
'Bronzor': 'Бронзор',
 +
'Bronzong': 'Бронзонг',
 +
'Bonsly': 'Бонслай',
 +
'Mime Jr.': 'Майм Мл.',
 +
'Happiny': 'Хэппини',
 +
'Chatot': 'Чатот',
 +
'Spiritomb': 'Спиритомб',
 +
'Gible': 'Гибл',
 +
'Gabite': 'Габит',
 +
'Garchomp': 'Гарчомп',
 +
'Munchlax': 'Манчлакс',
 +
'Riolu': 'Риолу',
 +
'Lucario': 'Лукарио',
 +
'Hippopotas': 'Гиппопотас',
 +
'Hippowdon': 'Гипподон',
 +
'Skorupi': 'Скорупи',
 +
'Drapion': 'Драпион',
 +
'Croagunk': 'Кроганк',
 +
'Toxicroak': 'Токсикроук',
 +
'Carnivine': 'Карнивайн',
 +
'Finneon': 'Финнеон',
 +
'Lumineon': 'Люминеон',
 +
'Mantyke': 'Мэнтайк',
 +
'Snover': 'Сновер',
 +
'Abomasnow': 'Абомасноу',
 +
'Weavile': 'Вивайл',
 +
'Magnezone': 'Магнезон',
 +
'Lickilicky': 'Ликилики',
 +
'Rhyperior': 'Райпериор',
 +
'Tangrowth': 'Тангроу',
 +
'Electivire': 'Элективайр',
 +
'Magmortar': 'Магмотар',
 +
'Togekiss': 'Тогекисс',
 +
'Yanmega': 'Янмега',
 +
'Leafeon': 'Лифеон',
 +
'Glaceon': 'Глэсеон',
 +
'Gliscor': 'Глайскор',
 +
'Mamoswine': 'Мамосвин',
 +
'Porygon-Z': 'Поригон-Z',
 +
'Gallade': 'Галлэйд',
 +
'Probopass': 'Пробопасс',
 +
'Dusknoir': 'Даскнуар',
 +
'Froslass': 'Фросласс',
 +
'Rotom': 'Ротом',
 +
'Uxie': 'Юкси',
 +
'Mesprit': 'Месприт',
 +
'Azelf': 'Азелф',
 +
'Dialga': 'Диалга',
 +
'Palkia': 'Палкиа',
 +
'Heatran': 'Хитран',
 +
'Regigigas': 'Реджигигас',
 +
'Giratina (Altered)': 'Гиратина',
 +
'Cresselia': 'Кресселия',
 +
'Phione': 'Фионе',
 +
'Manaphy': 'Манафи',
 +
'Darkrai': 'Даркрай',
 +
'Shaymin': 'Шеймин',
 +
'Arceus': 'Арсеус',
 +
'Victini': 'Виктини',
 +
'Snivy': 'Снайви',
 +
'Servine': 'Сервайн',
 +
'Serperior': 'Серпериор',
 +
'Tepig': 'Тепиг',
 +
'Pignite': 'Пигнит',
 +
'Emboar': 'Эмбор',
 +
'Oshawott': 'Ошавот',
 +
'Dewott': 'Девот',
 +
'Samurott': 'Самурот',
 +
'Patrat': 'Патрат',
 +
'Watchog': 'Вачог',
 +
'Lillipup': 'Лилипап',
 +
'Herdier': 'Гердьер',
 +
'Stoutland': 'Штотланд',
 +
'Purrloin': 'Пурлойн',
 +
'Liepard': 'Лайпард',
 +
'Pansage': 'Пансейж',
 +
'Simisage': 'Симисейж',
 +
'Pansear': 'Пансир',
 +
'Simisear': 'Симисир',
 +
'Panpour': 'Панпур',
 +
'Simipour': 'Симипур',
 +
'Munna': 'Мунна',
 +
'Musharna': 'Мушарна',
 +
'Pidove': 'Пидав',
 +
'Tranquill': 'Транквил',
 +
'Unfezant': 'Анфезант',
 +
'Blitzle': 'Блицил',
 +
'Zebstrika': 'Зебстрика',
 +
'Roggenrola': 'Роггенрола',
 +
'Boldore': 'Болдор',
 +
'Gigalith': 'Гигалит',
 +
'Woobat': 'Вубат',
 +
'Swoobat': 'Свубат',
 +
'Drilbur': 'Дрилбур',
 +
'Excadrill': 'Эскадрил',
 +
'Audino': 'Аудино',
 +
'Timburr': 'Тимбур',
 +
'Gurdurr': 'Гурдур',
 +
'Conkeldurr': 'Конкельдур',
 +
'Tympole': 'Таймпол',
 +
'Palpitoad': 'Палпитод',
 +
'Seismitoad': 'Сейсмитод',
 +
'Throh': 'Тро',
 +
'Sawk': 'Соук',
 +
'Sewaddle': 'Сивадл',
 +
'Swadloon': 'Свадлун',
 +
'Leavanny': 'Ливанни',
 +
'Venipede': 'Венипед',
 +
'Whirlipede': 'Вћрлипед',
 +
'Scolipede': 'Сколипед',
 +
'Cottonee': 'Коттони',
 +
'Whimsicott': 'Вимсикотт',
 +
'Petilil': 'Питилил',
 +
'Lilligant': 'Лилигант',
 +
'Basculin': 'Баскулин',
 +
'Sandile': 'Сандил',
 +
'Krokorok': 'Крокорок',
 +
'Krookodile': 'Крукодил',
 +
'Darumaka': 'Дарумака',
 +
'Darmanitan': 'Дарманитан',
 +
'Maractus': 'Марактус',
 +
'Dwebble': 'Двебл',
 +
'Crustle': 'Крастл',
 +
'Scraggy': 'Скрагги',
 +
'Scrafty': 'Скрафти',
 +
'Sigilyph': 'Сигилиф',
 +
'Yamask': 'Ямаск',
 +
'Cofagrigus': 'Кофагриг',
 +
'Tirtouga': 'Тиртога',
 +
'Carracosta': 'Карракоста',
 +
'Archen': 'Архен',
 +
'Archeops': 'Археопс',
 +
'Trubbish': 'Труббиш',
 +
'Garbodor': 'Гарбодор',
 +
'Zorua': 'Зоруа',
 +
'Zoroark': 'Зороарк',
 +
'Minccino': 'Минцино',
 +
'Cinccino': 'Синцино',
 +
'Gothita': 'Готита',
 +
'Gothorita': 'Готорита',
 +
'Gothitelle': 'Готитель',
 +
'Solosis': 'Солосий',
 +
'Duosion': 'Дуосион',
 +
'Reuniclus': 'Реюниклий',
 +
'Ducklett': 'Даклетта',
 +
'Swanna': 'Свана',
 +
'Vanillite': 'Ванилит',
 +
'Vanillish': 'Ванилиш',
 +
'Vanilluxe': 'Ванилюкс',
 +
'Deerling': 'Дирлинг',
 +
'Sawsbuck': 'Сосбак',
 +
'Emolga': 'Эмолга',
 +
'Karrablast': 'Каррабласт',
 +
'Escavalier': 'Эскавальер',
 +
'Foongus': 'Фунг',
 +
'Amoonguss': 'Амунг',
 +
'Frillish': 'Фриллиш',
 +
'Jellicent': 'Желесент',
 +
'Alomomola': 'Аломомола',
 +
'Joltik': 'Джолтик',
 +
'Galvantula': 'Гальвантул',
 +
'Ferroseed': 'Ферросид',
 +
'Ferrothorn': 'Ферроторн',
 +
'Klink': 'Клинк',
 +
'Klang': 'Кланг',
 +
'Klinklang': 'Клинкланг',
 +
'Tynamo': 'Тайнамо',
 +
'Eelektrik': 'Илектрик',
 +
'Eelektross': 'Илектрос',
 +
'Elgyem': 'Элгайем',
 +
'Beheeyem': 'Бейием',
 +
'Litwick': 'Литвик',
 +
'Lampent': 'Лампент',
 +
'Chandelure': 'Канделюр',
 +
'Axew': 'Аксю',
 +
'Fraxure': 'Фраксюр',
 +
'Haxorus': 'Гаксорий',
 +
'Cubchoo': 'Кабчу',
 +
'Beartic': 'Беартик',
 +
'Cryogonal': 'Криогонал',
 +
'Shelmet': 'Шелм',
 +
'Accelgor': 'Акселгор',
 +
'Stunfisk': 'Станфиск',
 +
'Mienfoo': 'Мин-фу',
 +
'Mienshao': 'Мин-сяо',
 +
'Druddigon': 'Друдигон',
 +
'Golett': 'Голет',
 +
'Golurk': 'Голюрк',
 +
'Pawniard': 'Поньярд',
 +
'Bisharp': 'Бишарп',
 +
'Bouffalant': 'Буфалант',
 +
'Rufflet': 'Рафлет',
 +
'Braviary': 'Бравьяри',
 +
'Vullaby': 'Вуллаби',
 +
'Mandibuzz': 'Мандибазз',
 +
'Heatmor': 'Хитмор',
 +
'Durant': 'Дюрант',
 +
'Deino': 'Дайно',
 +
'Zweilous': 'Цвайлус',
 +
'Hydreigon': 'Гидрайгон',
 +
'Larvesta': 'Ларвеста',
 +
'Volcarona': 'Вулкарона',
 +
'Cobalion': 'Кобальћн',
 +
'Terrakion': 'Терракьћн',
 +
'Virizion': 'Виризьћн',
 +
'Tornadus': 'Торнадий',
 +
'Thundurus': 'Тандерий',
 +
'Reshiram': 'Реширам',
 +
'Zekrom': 'Зекром',
 +
'Landorus': 'Ландорий',
 +
'Kyurem': 'Кюрем',
 +
'Keldeo': 'Келдио',
 +
'Meloetta': 'Мелоэтта',
 +
'Genesect': 'Генесект',
 +
'Chespin': 'Чеспин',
 +
'Quilladin': 'Квилладин',
 +
'Chesnaught': 'Чеснаут',
 +
'Fennekin': 'Феннекин',
 +
'Braixen': 'Брейксен',
 +
'Delphox': 'Дельфокс',
 +
'Froakie': 'Фроки',
 +
'Frogadier': 'Фрогадир',
 +
'Greninja': 'Грениндзя',
 +
'Bunnelby': 'Баннелби',
 +
'Diggersby': 'Диггерсби',
 +
'Fletchling': 'Флетчлинг',
 +
'Fletchinder': 'Флетчиндер',
 +
'Talonflame': 'Тэлонфлейм',
 +
'Scatterbug': 'Скаттербаг',
 +
'Spewpa': 'Спьюпа',
 +
'Vivillon': 'Вивийон',
 +
'Litleo': 'Литлео',
 +
'Pyroar': 'Пироар',
 +
'Flabebe': 'Флабебе',
 +
'Floette': 'Флоэтта',
 +
'Florges': 'Флорджес',
 +
'Skiddo': 'Скиддо',
 +
'Gogoat': 'Гогоат',
 +
'Pancham': 'Панчем',
 +
'Pangoro': 'Пангоро',
 +
'Furfrou': 'Фурфру',
 +
'Espurr': 'Эспурр',
 +
'Meowstic': 'Мяустик',
 +
'Honedge': 'Хонэдж',
 +
'Doublade': 'Даблэйд',
 +
'Aegislash': 'Эгислэш',
 +
'Spritzee': 'Спритзи',
 +
'Aromatisse': 'Ароматисс',
 +
'Swirlix': 'Свћрликс',
 +
'Slurpuff': 'Слћрпафф',
 +
'Inkay': 'Инкей',
 +
'Malamar': 'Маламар',
 +
'Binacle': 'Бинакл',
 +
'Barbaracle': 'Барбаракл',
 +
'Skrelp': 'Скрелп',
 +
'Dragalge': 'Драгалге',
 +
'Clauncher': 'Клончер',
 +
'Clawitzer': 'Кловитцер',
 +
'Helioptile': 'Гелиоптил',
 +
'Heliolisk': 'Гелиолиск',
 +
'Tyrunt': 'Тирант',
 +
'Tyrantrum': 'Тирантрум',
 +
'Amaura': 'Амаура',
 +
'Aurorus': 'Аврорий',
 +
'Sylveon': 'Сильвеон',
 +
'Hawlucha': 'Холуча',
 +
'Dedenne': 'Деденне',
 +
'Carbink': 'Карбинк',
 +
'Goomy': 'Гуми',
 +
'Sliggoo': 'Слиггу',
 +
'Goodra': 'Гудра',
 +
'Klefki': 'Клефки',
 +
'Phantump': 'Фантамп',
 +
'Trevenant': 'Тревенант',
 +
'Pumpkaboo': 'Пампкабу',
 +
'Gourgeist': 'Горгайст',
 +
'Bergmite': 'Бергмайт',
 +
'Avalugg': 'Авалагг',
 +
'Noibat': 'Нойбат',
 +
'Noivern': 'Нойверн',
 +
'Xerneas': 'Ксерний',
 +
'Yveltal': 'Ивелталь',
 +
'Zygarde': 'Зигард',
 +
'Diancie': 'Дианси',
 +
'Hoopa': 'Хупа',
 +
'Volcanion': 'Вулканьон',
 +
'Rowlet': 'Раулет',
 +
'Dartrix': 'Дартрикс',
 +
'Decidueye': 'Десиджуай',
 +
'Litten': 'Литтен',
 +
'Torracat': 'Торракэт',
 +
'Incineroar': 'Инсинероар',
 +
'Popplio': 'Попплио',
 +
'Brionne': 'Брионна',
 +
'Primarina': 'Примарина',
 +
'Pikipek': 'Пикипек',
 +
'Trumbeak': 'Трамбик',
 +
'Toucannon': 'Тукэннон',
 +
'Yungoos': 'Янгус',
 +
'Gumshoos': 'Гамшус',
 +
'Grubbin': 'Граббин',
 +
'Charjabug': 'Чарджабаг',
 +
'Vikavolt': 'Викавольт',
 +
'Crabrawler': 'Краброулер',
 +
'Crabominable': 'Крабоминэбл',
 +
'Oricorio': 'Орикорио',
 +
'Cutiefly': 'Кьютифлай',
 +
'Ribombee': 'Рибомби',
 +
'Rockruff': 'Рокрафф',
 +
'Lycanroc': 'Ликанрок',
 +
'Wishiwashi': 'Вишиваши',
 +
'Mareanie': 'Марини',
 +
'Toxapex': 'Токсапекс',
 +
'Mudbray': 'Мадбрэй',
 +
'Mudsdale': 'Мадсдэйл',
 +
'Dewpider': 'Дьюпайдер',
 +
'Araquanid': 'Аракванид',
 +
'Fomantis': 'Фомантис',
 +
'Lurantis': 'Лурантис',
 +
'Morelull': 'Морелалл',
 +
'Shiinotic': 'Шиинотик',
 +
'Salandit': 'Саландит',
 +
'Salazzle': 'Салаззл',
 +
'Stufful': 'Стаффул',
 +
'Bewear': 'Бевеар',
 +
'Bounsweet': 'Баунсвит',
 +
'Steenee': 'Стини',
 +
'Tsareena': 'Царина',
 +
'Comfey': 'Комфей',
 +
'Oranguru': 'Орангуру',
 +
'Passimian': 'Пассимиан',
 +
'Wimpod': 'Вимпод',
 +
'Golisopod': 'Голизопод',
 +
'Sandygast': 'Сэндигаст',
 +
'Palossand': 'Палоссэнд',
 +
'Pyukumuku': 'Пюкумуку',
 +
'Type: Null': 'Тип: Нуль',
 +
'Silvally': 'Сильвалли',
 +
'Minior': 'Миниор',
 +
'Komala': 'Комала',
 +
'Turtonator': 'Туртонатор',
 +
'Togedemaru': 'Тогедемару',
 +
'Mimikyu': 'Мимикю',
 +
'Bruxish': 'Браксиш',
 +
'Drampa': 'Дрампа',
 +
'Dhelmise': 'Делмайз',
 +
'Jangmo-o': 'Джангмо-о',
 +
'Hakamo-o': 'Хакамо-о',
 +
'Kommo-o': 'Коммо-о',
 +
'Tapu Koko': 'Тапу Коко',
 +
'Tapu Lele': 'Тапу Леле',
 +
'Tapu Bulu': 'Тапу Булу',
 +
'Tapu Fini': 'Тапу Фини',
 +
'Cosmog': 'Космог',
 +
'Cosmoem': 'Космоэм',
 +
'Solgaleo': 'Солгалео',
 +
'Lunala': 'Лунала',
 +
'Nihilego': 'Нихилэго',
 +
'Buzzwole': 'Баззвоул',
 +
'Pheromosa': 'Феромоза',
 +
'Xurkitree': 'Зћркитри',
 +
'Celesteela': 'Селестила',
 +
'Kartana': 'Картана',
 +
'Guzzlord': 'Газзлорд',
 +
'Necrozma': 'Некрозма',
 +
'Magearna': 'Магиана',
 +
'Marshadow': 'Маршедоу',
 +
'Poipole': 'Пойпоул',
 +
'Naganadel': 'Наганадел',
 +
'Stakataka': 'Стакатака',
 +
'Blacephalon': 'Блацефалон',
 +
'Zeraora': 'Зераора',
 +
'Meltan': 'Мелтан',
 +
'Melmetal': 'Мелметал',
 +
'Grookey': 'Груки',
 +
'Thwackey': 'Твеки',
 +
'Rillaboom': 'Риллабум',
 +
'Scorbunny': 'Скорбанни',
 +
'Raboot': 'Рэбут',
 +
'Cinderace': 'Синдерейс',
 +
'Sobble': 'Соббл',
 +
'Drizzile': 'Дриззайл',
 +
'Inteleon': 'Интелеон',
 +
'Skwovet': 'Сквовет',
 +
'Greedent': 'Гридент',
 +
'Rookidee': 'Рукиди',
 +
'Corvisquire': 'Корвисквайр',
 +
'Corviknight': 'Корвинайт',
 +
'Blipbug': 'Блипбаг',
 +
'Dottler': 'Доттлер',
 +
'Orbeetle': 'Орбитл',
 +
'Nickit': 'Никит',
 +
'Thievul': 'Тивул',
 +
'Gossifleur': 'Госсифлћр',
 +
'Eldegoss': 'Элдегосс',
 +
'Wooloo': 'Вулу',
 +
'Dubwool': 'Дабвул',
 +
'Chewtle': 'Чьютл',
 +
'Drednaw': 'Дредно',
 +
'Yamper': 'Ямпер',
 +
'Boltund': 'Болтунд',
 +
'Rolycoly': 'Роликоли',
 +
'Carkol': 'Каркол',
 +
'Coalossal': 'Коалоссал',
 +
'Applin': 'Эпплин',
 +
'Flapple': 'Флэппл',
 +
'Appletun': 'Эпплтан',
 +
'Silicobra': 'Силикобра',
 +
'Sandaconda': 'Сандаконда',
 +
'Cramorant': 'Краморант',
 +
'Arrokuda': 'Аррокуда',
 +
'Barraskewda': 'Барраскюда',
 +
'Toxel': 'Токсел',
 +
'Toxtricity': 'Токстрисити',
 +
'Sizzlipede': 'Сиззлипед',
 +
'Centiskorch': 'Сентискорч',
 +
'Clobbopus': 'Клоббопус',
 +
'Grapploct': 'Грапплокт',
 +
'Sinistea': 'Синисти',
 +
'Polteageist': 'Полтигейст',
 +
'Hatenna': 'Хаттена',
 +
'Hattrem': 'Хаттрем',
 +
'Hatterene': 'Хаттерин',
 +
'Impidimp': 'Импидимп',
 +
'Morgrem': 'Моргрем',
 +
'Grimmsnarl': 'Гриммснарл',
 +
'Obstagoon': 'Обстагун',
 +
'Perrserker': 'Перрсеркер',
 +
'Cursola': 'Кћрсола',
 +
"Sirfetch'd": "Сэрфеч'д",
 +
'Mr. Rime': 'Райм',
 +
'Runerigus': 'Рунриг',
 +
'Milcery': 'Милсери',
 +
'Alcremie': 'Алкрими',
 +
'Falinks': 'Фалинкс',
 +
'Pincurchin': 'Пинкћрчин',
 +
'Snom': 'Сном',
 +
'Frosmoth': 'Фросмос',
 +
'Stonjourner': 'Стонджорнер',
 +
'Eiscue': 'Айскью',
 +
'Indeedee': 'Индиди',
 +
'Morpeko': 'Морпеко',
 +
'Cufant': 'Куфант',
 +
'Copperajah': 'Коппераджа',
 +
'Dracozolt': 'Дракозолт',
 +
'Arctozolt': 'Арктозолт',
 +
'Dracovish': 'Драковиш',
 +
'Arctovish': 'Арктовиш',
 +
'Duraludon': 'Дюралудон',
 +
'Dreepy': 'Дрипи',
 +
'Drakloak': 'Драклоук',
 +
'Dragapult': 'Драгапульт',
 +
'Zacian': 'Зациан',
 +
'Zamazenta': 'Замазента',
 +
'Eternatus': 'Этернатий'
 +
}
 +
 +
function convertType(type) {
 +
return Types[type];
 +
}
 +
 +
function convertPokemonName(pokemonName) {
 +
return PokemonNames[pokemonName];
 +
}
 +
 +
function convertPokemonAttributes(bulbapediaParams, pokewikiParams, numberOfTypes) {
 +
pokewikiParams.push(bulbapediaParams[1]) // dex number
 +
pokewikiParams.push(convertPokemonName(bulbapediaParams[2])) // name
 +
 +
let types = [];
 +
for (let i = 1; i <= numberOfTypes; i++) {
 +
let prefix = 'type' + (i > 1 ? i : '') + '=';
 +
types.push(bulbapediaParams[2 + i].startsWith(prefix) ? bulbapediaParams[2 + i].substr(prefix.length) : bulbapediaParams[2 + i]);
 +
}
 +
if (types.length === 1) types.push(types[0]);
 +
 +
pokewikiParams.push(numberOfTypes);
 +
for (let type of types) {
 +
pokewikiParams.push(convertType(type));
 +
}
 +
 +
return pokewikiParams;
 +
}
 +
 +
function convertLearnsetHeaderLine(line) {
 +
if (line.indexOf('Learnset') >= 0) {
 +
return '==Изучение==';
 +
}
 +
 +
if (line.indexOf('By [[Level|leveling up]]') >= 0) {
 +
return '===При [[Уровень|повышении уровня]]===';
 +
}
 +
 +
if (line.indexOf('By [[TM]]') >= 0 || line.indexOf('By [[HM]]') >= 0 || line.indexOf('By [[TR]]') >= 0) {
 +
source = line.split('By ')[1].split('=')[0];
 +
return '===С помощью ' + source + '===';
 +
}
 +
 +
return line;
 +
}
 +
 +
function convertLearnsetLine(line) {
 +
let bulbapediaParams = line.substr(2, line.length - 4).split('|');
 +
 +
if (bulbapediaParams[0] === 'Movehead/Level') {
 +
return '{{Приемышапка/уровень|' + convertType(bulbapediaParams[1]) + '|' + bulbapediaParams[2] + '}}';
 +
}
 +
 +
if (bulbapediaParams[0] === 'Movehead/TM') {
 +
let pokewikiParams = ['Приемышапка/ТМ', convertType(bulbapediaParams[1])];
 +
for (let i = 2; i < bulbapediaParams.length; i++) {
 +
pokewikiParams.push(bulbapediaParams[i] === 'no' ? 'нет' : bulbapediaParams[i]);
 +
}
 +
return '{{' + pokewikiParams.join('|') + '}}';
 +
}
 +
 +
if (bulbapediaParams[0] === 'Movefoot') {
 +
return '{{Приемыниз|' + convertType(bulbapediaParams[1]) + '|1}}';
 +
}
 +
 +
if (!bulbapediaParams[0].startsWith('Moveentry/')) return line;
 +
 +
let pokewikiParams = [];
 +
 +
let gens = parseInt(bulbapediaParams[0].split('/')[1], 10);
 +
pokewikiParams.push('Приемы/Поколение' + (NUMBER_OF_GENS - gens + 1));
 +
 +
let numberOfTypes = bulbapediaParams[4].startsWith('type2=') ? 2 : 1;
 +
pokewikiParams = convertPokemonAttributes(bulbapediaParams, pokewikiParams, numberOfTypes);
 +
 +
let levelsParam = bulbapediaParams.slice(6 + numberOfTypes).join('|');
 +
let numberOfParams = pokewikiParams.length + gens;
 +
 +
let subParams = [''];
 +
let tagMode = false;
 +
let tag = '';
 +
 +
for (let i = 0; i <= levelsParam.length; i++) {
 +
let char = i < levelsParam.length ? levelsParam[i] : '';
 +
let prevChar = i > 0 ? levelsParam[i - 1] : '';
 +
 +
if (char === '{' && prevChar === '{') {
 +
while (subParams[subParams.length-1].endsWith('{')) {
 +
subParams[subParams.length-1] = subParams[subParams.length-1].substr(0, subParams.length - 1);
 +
}
 +
tagMode = true;
 +
tag = '';
 +
}
 +
 +
if (tagMode && char === '}' && prevChar === '}') {
 +
if (tag.startsWith('Learned upon evolving')) {
 +
subParams[subParams.length-1] = subParams[subParams.length-1] + '{{tt|ЭВ|Изучается при эволюции}}';
 +
} else {
 +
subParams[subParams.length-1] = '{{tt|' + subParams[subParams.length-1].replace('{{tt|ЭВ|Изучается при эволюции}}', 'ЭВ') + '|' + tag + '}}';
 +
}
 +
tagMode = false;
 +
}
 +
 +
if (!tagMode && prevChar === '>' && subParams[subParams.length-1].endsWith('<br>')) {
 +
subParams[subParams.length-1] = subParams[subParams.length-1].replace('<br>', '');
 +
subParams.push('');
 +
}
 +
 +
if (!(char in {'{':1, '}':1})) {
 +
if (tagMode) {
 +
tag = (char === '|' ? '' : tag + char);
 +
} else {
 +
if (!(char in {'|':1, '':1})) {
 +
subParams[subParams.length-1] = subParams[subParams.length-1] + char;
 +
} else {
 +
let param = subParams.join('/');
 +
subParams = [''];
 +
 +
if (param.startsWith('STAB=')) continue;
 +
if (param.length === 0) param = '-';
 +
param = param.replace('Evo.', 'ЭВ')
 +
 +
pokewikiParams.push(param);
 +
if (pokewikiParams.length >= numberOfParams) break;
 +
}
 +
}
 +
}
 +
}
 +
 +
while (pokewikiParams.length < numberOfParams) {
 +
pokewikiParams.push('-');
 +
}
 +
 +
return '{{' + pokewikiParams.join('|') + '}}';
 +
}
 +
 +
function convertLearnset(bulbapediaTable) {
 +
let pokewikiTable = [];
 +
for (let line of bulbapediaTable.split('\n')) {
 +
if (line.startsWith('=') && line.endsWith('=')) {
 +
pokewikiTable.push(convertLearnsetHeaderLine(line));
 +
} else if (line.startsWith('{{') && line.endsWith('}}')) {
 +
pokewikiTable.push(convertLearnsetLine(line));
 +
} else pokewikiTable.push(line);
 +
}
 +
return pokewikiTable.join('\n');
 +
}

Версия 02:16, 25 февраля 2020

var customizeToolbar = function() {
 
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
    'section': 'advanced',
    'group': 'insert',
    'tools':
    {
    	'bulba':
    	{
            label: 'Бульба-парсер',
            type: 'button',
            icon: 'http://pokeliga.com/pictures/icons/wikiball.png',
		    'action': {
		        'type': 'callback',
		            'execute': BulbaParser
		        }
    	}
    }
});

function BulbaParser(WikiEditorContext)
{
 var textarea = WikiEditorContext.$textarea;
 var start = textarea.selectionStart;
 var end = textarea.selectionEnd;
 var selected = textarea.value.substring(start, end);
 var converted = convertLearnset(selected);
 var newValue = textarea.value.substring(0, start) + converted + textarea.value.substring(end + 1);
}

};
 
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
        mw.loader.using( 'user.options', function () {
                if ( mw.user.options.get('usebetatoolbar') ) {
                        mw.loader.using( 'ext.wikiEditor.toolbar', function () {
                                $(document).ready( customizeToolbar );
                        } );
                }
        } );
}

console.log("BulbaTools ready");

const Types = {
	'Bug': 'Насекомый',
	'Dark': 'Тёмный',
	'Dragon': 'Драконий',
	'Electric': 'Электрический',
	'Fairy': 'Волшебный',
	'Fighting': 'Боевой',
	'Fire': 'Огненный',
	'Flying': 'Летающий',
	'Ghost': 'Призрачный',
	'Grass': 'Травяной',
	'Ground': 'Земляной',
	'Ice': 'Ледяной',
	'Normal': 'Нормальный',
	'Poison': 'Ядовитый',
	'Psychic': 'Психический',
	'Rock': 'Каменный',
	'Steel': 'Стальной',
	'Water': 'Водный',
};
const NUMBER_OF_GENS = 8;
const PokemonNames = {
	'Bulbasaur': 'Бульбазавр',
	'Ivysaur': 'Ивизавр',
	'Venusaur': 'Венузавр',
	'Charmander': 'Чармандер',
	'Charmeleon': 'Чармилион',
	'Charizard': 'Чаризард',
	'Squirtle': 'Сквиртл',
	'Wartortle': 'Вортортл',
	'Blastoise': 'Бластойз',
	'Caterpie': 'Катерпи',
	'Metapod': 'Метапод',
	'Butterfree': 'Баттерфри',
	'Weedle': 'Видл',
	'Kakuna': 'Какуна',
	'Beedrill': 'Бидрилла',
	'Pidgey': 'Пиджи',
	'Pidgeotto': 'Пиджеотто',
	'Pidgeot': 'Пиджеот',
	'Rattata': 'Раттата',
	'Raticate': 'Ратикат',
	'Spearow': 'Спироу',
	'Fearow': 'Фироу',
	'Ekans': 'Иканс',
	'Arbok': 'Эрбок',
	'Pikachu': 'Пикачу',
	'Raichu': 'Райчу',
	'Sandshrew': 'Сендшрю',
	'Sandslash': 'Сендслэш',
	'Nidoran♀': 'Нидоранка',
	'Nidorina': 'Нидорина',
	'Nidoqueen': 'Нидоквин',
	'Nidoran♂': 'Нидоран',
	'Nidorino': 'Нидорино',
	'Nidoking': 'Нидокинг',
	'Clefairy': 'Клефейри',
	'Clefable': 'Клефабл',
	'Vulpix': 'Вульпикс',
	'Ninetales': 'Найнтэйлз',
	'Jigglypuff': 'Джигглипуф',
	'Wigglytuff': 'Вигглитуф',
	'Zubat': 'Зубат',
	'Golbat': 'Голбат',
	'Oddish': 'Оддиш',
	'Gloom': 'Глум',
	'Vileplume': 'Вилплум',
	'Paras': 'Парас',
	'Parasect': 'Парасект',
	'Venonat': 'Венонат',
	'Venomoth': 'Веномот',
	'Diglett': 'Диглетт',
	'Dugtrio': 'Дагтрио',
	'Meowth': 'Мяут',
	'Persian': 'Перс',
	'Psyduck': 'Псидак',
	'Golduck': 'Голдак',
	'Mankey': 'Мэнки',
	'Primeape': 'Примап',
	'Growlithe': 'Гроулит',
	'Arcanine': 'Арканин',
	'Poliwag': 'Поливаг',
	'Poliwhirl': 'Поливћрл',
	'Poliwrath': 'Полирас',
	'Abra': 'Абра',
	'Kadabra': 'Кадабра',
	'Alakazam': 'Алаказам',
	'Machop': 'Мачоп',
	'Machoke': 'Мачок',
	'Machamp': 'Мачемп',
	'Bellsprout': 'Беллспраут',
	'Weepinbell': 'Випинбелл',
	'Victreebel': 'Виктрибел',
	'Tentacool': 'Тентакул',
	'Tentacruel': 'Тентакруэль',
	'Geodude': 'Джеодуд',
	'Graveler': 'Гравелер',
	'Golem': 'Голем',
	'Ponyta': 'Понита',
	'Rapidash': 'Рапидаш',
	'Slowpoke': 'Слоупок',
	'Slowbro': 'Слоубро',
	'Magnemite': 'Магнемайт',
	'Magneton': 'Магнетон',
	"Farfetch'd": "Фарфеч'д",
	'Doduo': 'Додуо',
	'Dodrio': 'Додрио',
	'Seel': 'Силл',
	'Dewgong': 'Дюгонг',
	'Grimer': 'Граймер',
	'Muk': 'Макк',
	'Shellder': 'Шеллдер',
	'Cloyster': 'Клойстер',
	'Gastly': 'Гастли',
	'Haunter': 'Хонтер',
	'Gengar': 'Генгар',
	'Onix': 'Оникс',
	'Drowzee': 'Дроузи',
	'Hypno': 'Гипно',
	'Krabby': 'Крабби',
	'Kingler': 'Кинглер',
	'Voltorb': 'Волторб',
	'Electrode': 'Электрод',
	'Exeggcute': 'Экзегкут',
	'Exeggutor': 'Экзеггутор',
	'Cubone': 'Кубон',
	'Marowak': 'Маровак',
	'Hitmonlee': 'Хитмонли',
	'Hitmonchan': 'Хитмончан',
	'Lickitung': 'Ликитунг',
	'Koffing': 'Коффинг',
	'Weezing': 'Визинг',
	'Rhyhorn': 'Райхорн',
	'Rhydon': 'Райдон',
	'Chansey': 'Ченси',
	'Tangela': 'Тангела',
	'Kangaskhan': 'Кангасханна',
	'Horsea': 'Хорси',
	'Seadra': 'Сидра',
	'Goldeen': 'Голдин',
	'Seaking': 'Сикинг',
	'Staryu': 'Старью',
	'Starmie': 'Старми',
	'Mr. Mime': 'Майм',
	'Scyther': 'Сайтер',
	'Jynx': 'Джинкс',
	'Electabuzz': 'Электабузз',
	'Magmar': 'Магмар',
	'Pinsir': 'Пинсир',
	'Tauros': 'Таурос',
	'Magikarp': 'Магикарп',
	'Gyarados': 'Гярадос',
	'Lapras': 'Лапрас',
	'Ditto': 'Дитто',
	'Eevee': 'Иви',
	'Vaporeon': 'Вапореон',
	'Jolteon': 'Джолтеон',
	'Flareon': 'Флареон',
	'Porygon': 'Поригон',
	'Omanyte': 'Оманит',
	'Omastar': 'Омастар',
	'Kabuto': 'Кабуто',
	'Kabutops': 'Кабутопс',
	'Aerodactyl': 'Аэродактиль',
	'Snorlax': 'Снорлакс',
	'Articuno': 'Артикуно',
	'Zapdos': 'Запдос',
	'Moltres': 'Молтрес',
	'Dratini': 'Дратини',
	'Dragonair': 'Драгонир',
	'Dragonite': 'Драгонит',
	'Mewtwo': 'Мьюту',
	'Mew': 'Мью',
	'Chikorita': 'Чикорита',
	'Bayleef': 'Бэйлиф',
	'Meganium': 'Меганиум',
	'Cyndaquil': 'Синдаквил',
	'Quilava': 'Квилава',
	'Typhlosion': 'Тифложн',
	'Totodile': 'Тотодил',
	'Croconaw': 'Кроконав',
	'Feraligatr': 'Фералигатр',
	'Sentret': 'Сентрет',
	'Furret': 'Фуррет',
	'Hoothoot': 'Хут-хут',
	'Noctowl': 'Ноктаул',
	'Ledyba': 'Ледиба',
	'Ledian': 'Ледиан',
	'Spinarak': 'Спинарак',
	'Ariados': 'Ариадос',
	'Crobat': 'Кробат',
	'Chinchou': 'Чинчоу',
	'Lanturn': 'Лантурн',
	'Pichu': 'Пичу',
	'Cleffa': 'Клеффа',
	'Igglybuff': 'Игглибуф',
	'Togepi': 'Тогепи',
	'Togetic': 'Тогетик',
	'Natu': 'Нату',
	'Xatu': 'Ксату',
	'Mareep': 'Мариип',
	'Flaaffy': 'Флаафи',
	'Ampharos': 'Амфарос',
	'Bellossom': 'Беллоссом',
	'Marill': 'Мэрилл',
	'Azumarill': 'Азумэрилл',
	'Sudowoodo': 'Судовудо',
	'Politoed': 'Политоед',
	'Hoppip': 'Хоппип',
	'Skiploom': 'Скиплум',
	'Jumpluff': 'Джамплафф',
	'Aipom': 'Айпом',
	'Sunkern': 'Санкерн',
	'Sunflora': 'Санфлора',
	'Yanma': 'Янма',
	'Wooper': 'Вупер',
	'Quagsire': 'Квагсир',
	'Espeon': 'Эспеон',
	'Umbreon': 'Умбреон',
	'Murkrow': 'Мћркроу',
	'Slowking': 'Слоукинг',
	'Misdreavus': 'Мисдривус',
	'Unown': 'Аноун',
	'Wobbuffet': 'Воббуффет',
	'Girafarig': 'Жирафариж',
	'Pineco': 'Пинеко',
	'Forretress': 'Форретресс',
	'Dunsparce': 'Данспарс',
	'Gligar': 'Глигар',
	'Steelix': 'Стиликс',
	'Snubbull': 'Снаббул',
	'Granbull': 'Грэнбул',
	'Qwilfish': 'Квилфиш',
	'Scizor': 'Сизор',
	'Shuckle': 'Шакл',
	'Heracross': 'Геракросс',
	'Sneasel': 'Снизил',
	'Teddiursa': 'Теддиурса',
	'Ursaring': 'Урсаринг',
	'Slugma': 'Слагма',
	'Magcargo': 'Магкарго',
	'Swinub': 'Свинуб',
	'Piloswine': 'Пилосвин',
	'Corsola': 'Корсола',
	'Remoraid': 'Реморейд',
	'Octillery': 'Октилерия',
	'Delibird': 'Делибћрд',
	'Mantine': 'Мантин',
	'Skarmory': 'Скармори',
	'Houndour': 'Хондар',
	'Houndoom': 'Хондум',
	'Kingdra': 'Кингдра',
	'Phanpy': 'Фанпи',
	'Donphan': 'Донфан',
	'Porygon2': 'Поригон2',
	'Stantler': 'Стантлер',
	'Smeargle': 'Смиргл',
	'Tyrogue': 'Тирог',
	'Hitmontop': 'Хитмонтоп',
	'Smoochum': 'Смучум',
	'Elekid': 'Элекид',
	'Magby': 'Магби',
	'Miltank': 'Милтанк',
	'Blissey': 'Блисси',
	'Raikou': 'Райко',
	'Entei': 'Энтей',
	'Suicune': 'Суйкун',
	'Larvitar': 'Ларвитар',
	'Pupitar': 'Пупитар',
	'Tyranitar': 'Тиранитар',
	'Lugia': 'Лугия',
	'Ho-Oh': 'Хо-ох',
	'Celebi': 'Селеби',
	'Treecko': 'Трикко',
	'Grovyle': 'Гроувил',
	'Sceptile': 'Септил',
	'Torchic': 'Торчик',
	'Combusken': 'Комбускен',
	'Blaziken': 'Блазикен',
	'Mudkip': 'Мадкип',
	'Marshtomp': 'Марштомп',
	'Swampert': 'Свамперт',
	'Poochyena': 'Почена',
	'Mightyena': 'Майтена',
	'Zigzagoon': 'Зигзагун',
	'Linoone': 'Линун',
	'Wurmple': 'Вурмпл',
	'Silcoon': 'Силкун',
	'Beautifly': 'Бьютифлай',
	'Cascoon': 'Каскун',
	'Dustox': 'Дастокс',
	'Lotad': 'Лотад',
	'Lombre': 'Ломбрэ',
	'Ludicolo': 'Лудиколо',
	'Seedot': 'Сидот',
	'Nuzleaf': 'Назлиф',
	'Shiftry': 'Шифтри',
	'Taillow': 'Тэйллоу',
	'Swellow': 'Свеллоу',
	'Wingull': 'Вингал',
	'Pelipper': 'Пелиппер',
	'Ralts': 'Ральтс',
	'Kirlia': 'Кирлия',
	'Gardevoir': 'Гардевуар',
	'Surskit': 'Сурскит',
	'Masquerain': 'Маскирейн',
	'Shroomish': 'Шрумиш',
	'Breloom': 'Брелум',
	'Slakoth': 'Слакос',
	'Vigoroth': 'Вигорос',
	'Slaking': 'Слакинг',
	'Nincada': 'Нинкада',
	'Ninjask': 'Нинджаск',
	'Shedinja': 'Шединья',
	'Whismur': 'Висмур',
	'Loudred': 'Лаудред',
	'Exploud': 'Эксплауд',
	'Makuhita': 'Макухита',
	'Hariyama': 'Харияма',
	'Azurill': 'Азурилл',
	'Nosepass': 'Носпасс',
	'Skitty': 'Скитти',
	'Delcatty': 'Деликатти',
	'Sableye': 'Саблай',
	'Mawile': 'Мавиль',
	'Aron': 'Арон',
	'Lairon': 'Лайрон',
	'Aggron': 'Аггрон',
	'Meditite': 'Медитит',
	'Medicham': 'Медичам',
	'Electrike': 'Электрайк',
	'Manectric': 'Манектрик',
	'Plusle': 'Плюсл',
	'Minun': 'Минун',
	'Volbeat': 'Волбит',
	'Illumise': 'Иллюмайз',
	'Roselia': 'Розалия',
	'Gulpin': 'Гульпин',
	'Swalot': 'Свалот',
	'Carvanha': 'Карванья',
	'Sharpedo': 'Шарпедо',
	'Wailmer': 'Вэйлмир',
	'Wailord': 'Вэйлорд',
	'Numel': 'Нумель',
	'Camerupt': 'Камерупт',
	'Torkoal': 'Торкол',
	'Spoink': 'Споинк',
	'Grumpig': 'Грумпиг',
	'Spinda': 'Спинда',
	'Trapinch': 'Трапинч',
	'Vibrava': 'Вибрава',
	'Flygon': 'Флайгон',
	'Cacnea': 'Какнея',
	'Cacturne': 'Кактурн',
	'Swablu': 'Сваблю',
	'Altaria': 'Алтария',
	'Zangoose': 'Зангус',
	'Seviper': 'Севипер',
	'Lunatone': 'Лунатон',
	'Solrock': 'Солрок',
	'Barboach': 'Барбоч',
	'Whiscash': 'Вискаш',
	'Corphish': 'Корфиш',
	'Crawdaunt': 'Крадонт',
	'Baltoy': 'Балтой',
	'Claydol': 'Клэйдол',
	'Lileep': 'Лилип',
	'Cradily': 'Крадили',
	'Anorith': 'Анорит',
	'Armaldo': 'Армальдо',
	'Feebas': 'Фибас',
	'Milotic': 'Милотик',
	'Castform': 'Кастформ',
	'Kecleon': 'Кеклеон',
	'Shuppet': 'Шаппет',
	'Banette': 'Банетта',
	'Duskull': 'Даскалл',
	'Dusclops': 'Дасклопс',
	'Tropius': 'Тропиус',
	'Chimecho': 'Чимеко',
	'Absol': 'Абсол',
	'Wynaut': 'Вайнот',
	'Snorunt': 'Снорант',
	'Glalie': 'Глали',
	'Spheal': 'Сфил',
	'Sealeo': 'Силео',
	'Walrein': 'Валрейн',
	'Clamperl': 'Кламперл',
	'Huntail': 'Хантейл',
	'Gorebyss': 'Горбисс',
	'Relicanth': 'Реликант',
	'Luvdisc': 'Лавдиск',
	'Bagon': 'Багон',
	'Shelgon': 'Шеллгон',
	'Salamence': 'Саламенс',
	'Beldum': 'Белдам',
	'Metang': 'Метанг',
	'Metagross': 'Метагросс',
	'Regirock': 'Реджирок',
	'Regice': 'Реджиайс',
	'Registeel': 'Реджистил',
	'Latias': 'Латиас',
	'Latios': 'Латиос',
	'Kyogre': 'Кайогр',
	'Groudon': 'Градон',
	'Rayquaza': 'Рекваза',
	'Jirachi': 'Джирачи',
	'Deoxys': 'Деоксис',
	'Deoxys': 'Деоксис',
	'Deoxys': 'Деоксис',
	'Deoxys': 'Деоксис',
	'Turtwig': 'Туртвиг',
	'Grotle': 'Гротл',
	'Torterra': 'Тортерра',
	'Chimchar': 'Чимчар',
	'Monferno': 'Монферно',
	'Infernape': 'Инфернейп',
	'Piplup': 'Пиплап',
	'Prinplup': 'Принплап',
	'Empoleon': 'Эмполеон',
	'Starly': 'Старли',
	'Staravia': 'Старэвия',
	'Staraptor': 'Стараптор',
	'Bidoof': 'Бидуф',
	'Bibarel': 'Бибарель',
	'Kricketot': 'Крикетот',
	'Kricketune': 'Крикетьюн',
	'Shinx': 'Шинкс',
	'Luxio': 'Люксио',
	'Luxray': 'Люксрэй',
	'Budew': 'Бадью',
	'Roserade': 'Роузрейд',
	'Cranidos': 'Крэнидос',
	'Rampardos': 'Рампардос',
	'Shieldon': 'Шилдон',
	'Bastiodon': 'Баститодон',
	'Burmy': 'Бћрми',
	'Wormadam': 'Вормадам',
	'Mothim': 'Мотим',
	'Combee': 'Комби',
	'Vespiquen': 'Веспиквин',
	'Pachirisu': 'Пачирису',
	'Buizel': 'Буизель',
	'Floatzel': 'Флотзел',
	'Cherubi': 'Черуби',
	'Cherrim': 'Черрим',
	'Shellos': 'Шеллос',
	'Gastrodon': 'Гастродон',
	'Ambipom': 'Эмбипом',
	'Drifloon': 'Дрифлун',
	'Drifblim': 'Дрифблим',
	'Buneary': 'Банири',
	'Lopunny': 'Лопанни',
	'Mismagius': 'Мисмагиус',
	'Honchkrow': 'Ханчкроу',
	'Glameow': 'Глэймяу',
	'Purugly': 'Парагли',
	'Chingling': 'Чинлинг',
	'Stunky': 'Станки',
	'Skuntank': 'Скантанк',
	'Bronzor': 'Бронзор',
	'Bronzong': 'Бронзонг',
	'Bonsly': 'Бонслай',
	'Mime Jr.': 'Майм Мл.',
	'Happiny': 'Хэппини',
	'Chatot': 'Чатот',
	'Spiritomb': 'Спиритомб',
	'Gible': 'Гибл',
	'Gabite': 'Габит',
	'Garchomp': 'Гарчомп',
	'Munchlax': 'Манчлакс',
	'Riolu': 'Риолу',
	'Lucario': 'Лукарио',
	'Hippopotas': 'Гиппопотас',
	'Hippowdon': 'Гипподон',
	'Skorupi': 'Скорупи',
	'Drapion': 'Драпион',
	'Croagunk': 'Кроганк',
	'Toxicroak': 'Токсикроук',
	'Carnivine': 'Карнивайн',
	'Finneon': 'Финнеон',
	'Lumineon': 'Люминеон',
	'Mantyke': 'Мэнтайк',
	'Snover': 'Сновер',
	'Abomasnow': 'Абомасноу',
	'Weavile': 'Вивайл',
	'Magnezone': 'Магнезон',
	'Lickilicky': 'Ликилики',
	'Rhyperior': 'Райпериор',
	'Tangrowth': 'Тангроу',
	'Electivire': 'Элективайр',
	'Magmortar': 'Магмотар',
	'Togekiss': 'Тогекисс',
	'Yanmega': 'Янмега',
	'Leafeon': 'Лифеон',
	'Glaceon': 'Глэсеон',
	'Gliscor': 'Глайскор',
	'Mamoswine': 'Мамосвин',
	'Porygon-Z': 'Поригон-Z',
	'Gallade': 'Галлэйд',
	'Probopass': 'Пробопасс',
	'Dusknoir': 'Даскнуар',
	'Froslass': 'Фросласс',
	'Rotom': 'Ротом',
	'Uxie': 'Юкси',
	'Mesprit': 'Месприт',
	'Azelf': 'Азелф',
	'Dialga': 'Диалга',
	'Palkia': 'Палкиа',
	'Heatran': 'Хитран',
	'Regigigas': 'Реджигигас',
	'Giratina (Altered)': 'Гиратина',
	'Cresselia': 'Кресселия',
	'Phione': 'Фионе',
	'Manaphy': 'Манафи',
	'Darkrai': 'Даркрай',
	'Shaymin': 'Шеймин',
	'Arceus': 'Арсеус',
	'Victini': 'Виктини',
	'Snivy': 'Снайви',
	'Servine': 'Сервайн',
	'Serperior': 'Серпериор',
	'Tepig': 'Тепиг',
	'Pignite': 'Пигнит',
	'Emboar': 'Эмбор',
	'Oshawott': 'Ошавот',
	'Dewott': 'Девот',
	'Samurott': 'Самурот',
	'Patrat': 'Патрат',
	'Watchog': 'Вачог',
	'Lillipup': 'Лилипап',
	'Herdier': 'Гердьер',
	'Stoutland': 'Штотланд',
	'Purrloin': 'Пурлойн',
	'Liepard': 'Лайпард',
	'Pansage': 'Пансейж',
	'Simisage': 'Симисейж',
	'Pansear': 'Пансир',
	'Simisear': 'Симисир',
	'Panpour': 'Панпур',
	'Simipour': 'Симипур',
	'Munna': 'Мунна',
	'Musharna': 'Мушарна',
	'Pidove': 'Пидав',
	'Tranquill': 'Транквил',
	'Unfezant': 'Анфезант',
	'Blitzle': 'Блицил',
	'Zebstrika': 'Зебстрика',
	'Roggenrola': 'Роггенрола',
	'Boldore': 'Болдор',
	'Gigalith': 'Гигалит',
	'Woobat': 'Вубат',
	'Swoobat': 'Свубат',
	'Drilbur': 'Дрилбур',
	'Excadrill': 'Эскадрил',
	'Audino': 'Аудино',
	'Timburr': 'Тимбур',
	'Gurdurr': 'Гурдур',
	'Conkeldurr': 'Конкельдур',
	'Tympole': 'Таймпол',
	'Palpitoad': 'Палпитод',
	'Seismitoad': 'Сейсмитод',
	'Throh': 'Тро',
	'Sawk': 'Соук',
	'Sewaddle': 'Сивадл',
	'Swadloon': 'Свадлун',
	'Leavanny': 'Ливанни',
	'Venipede': 'Венипед',
	'Whirlipede': 'Вћрлипед',
	'Scolipede': 'Сколипед',
	'Cottonee': 'Коттони',
	'Whimsicott': 'Вимсикотт',
	'Petilil': 'Питилил',
	'Lilligant': 'Лилигант',
	'Basculin': 'Баскулин',
	'Sandile': 'Сандил',
	'Krokorok': 'Крокорок',
	'Krookodile': 'Крукодил',
	'Darumaka': 'Дарумака',
	'Darmanitan': 'Дарманитан',
	'Maractus': 'Марактус',
	'Dwebble': 'Двебл',
	'Crustle': 'Крастл',
	'Scraggy': 'Скрагги',
	'Scrafty': 'Скрафти',
	'Sigilyph': 'Сигилиф',
	'Yamask': 'Ямаск',
	'Cofagrigus': 'Кофагриг',
	'Tirtouga': 'Тиртога',
	'Carracosta': 'Карракоста',
	'Archen': 'Архен',
	'Archeops': 'Археопс',
	'Trubbish': 'Труббиш',
	'Garbodor': 'Гарбодор',
	'Zorua': 'Зоруа',
	'Zoroark': 'Зороарк',
	'Minccino': 'Минцино',
	'Cinccino': 'Синцино',
	'Gothita': 'Готита',
	'Gothorita': 'Готорита',
	'Gothitelle': 'Готитель',
	'Solosis': 'Солосий',
	'Duosion': 'Дуосион',
	'Reuniclus': 'Реюниклий',
	'Ducklett': 'Даклетта',
	'Swanna': 'Свана',
	'Vanillite': 'Ванилит',
	'Vanillish': 'Ванилиш',
	'Vanilluxe': 'Ванилюкс',
	'Deerling': 'Дирлинг',
	'Sawsbuck': 'Сосбак',
	'Emolga': 'Эмолга',
	'Karrablast': 'Каррабласт',
	'Escavalier': 'Эскавальер',
	'Foongus': 'Фунг',
	'Amoonguss': 'Амунг',
	'Frillish': 'Фриллиш',
	'Jellicent': 'Желесент',
	'Alomomola': 'Аломомола',
	'Joltik': 'Джолтик',
	'Galvantula': 'Гальвантул',
	'Ferroseed': 'Ферросид',
	'Ferrothorn': 'Ферроторн',
	'Klink': 'Клинк',
	'Klang': 'Кланг',
	'Klinklang': 'Клинкланг',
	'Tynamo': 'Тайнамо',
	'Eelektrik': 'Илектрик',
	'Eelektross': 'Илектрос',
	'Elgyem': 'Элгайем',
	'Beheeyem': 'Бейием',
	'Litwick': 'Литвик',
	'Lampent': 'Лампент',
	'Chandelure': 'Канделюр',
	'Axew': 'Аксю',
	'Fraxure': 'Фраксюр',
	'Haxorus': 'Гаксорий',
	'Cubchoo': 'Кабчу',
	'Beartic': 'Беартик',
	'Cryogonal': 'Криогонал',
	'Shelmet': 'Шелм',
	'Accelgor': 'Акселгор',
	'Stunfisk': 'Станфиск',
	'Mienfoo': 'Мин-фу',
	'Mienshao': 'Мин-сяо',
	'Druddigon': 'Друдигон',
	'Golett': 'Голет',
	'Golurk': 'Голюрк',
	'Pawniard': 'Поньярд',
	'Bisharp': 'Бишарп',
	'Bouffalant': 'Буфалант',
	'Rufflet': 'Рафлет',
	'Braviary': 'Бравьяри',
	'Vullaby': 'Вуллаби',
	'Mandibuzz': 'Мандибазз',
	'Heatmor': 'Хитмор',
	'Durant': 'Дюрант',
	'Deino': 'Дайно',
	'Zweilous': 'Цвайлус',
	'Hydreigon': 'Гидрайгон',
	'Larvesta': 'Ларвеста',
	'Volcarona': 'Вулкарона',
	'Cobalion': 'Кобальћн',
	'Terrakion': 'Терракьћн',
	'Virizion': 'Виризьћн',
	'Tornadus': 'Торнадий',
	'Thundurus': 'Тандерий',
	'Reshiram': 'Реширам',
	'Zekrom': 'Зекром',
	'Landorus': 'Ландорий',
	'Kyurem': 'Кюрем',
	'Keldeo': 'Келдио',
	'Meloetta': 'Мелоэтта',
	'Genesect': 'Генесект',
	'Chespin': 'Чеспин',
	'Quilladin': 'Квилладин',
	'Chesnaught': 'Чеснаут',
	'Fennekin': 'Феннекин',
	'Braixen': 'Брейксен',
	'Delphox': 'Дельфокс',
	'Froakie': 'Фроки',
	'Frogadier': 'Фрогадир',
	'Greninja': 'Грениндзя',
	'Bunnelby': 'Баннелби',
	'Diggersby': 'Диггерсби',
	'Fletchling': 'Флетчлинг',
	'Fletchinder': 'Флетчиндер',
	'Talonflame': 'Тэлонфлейм',
	'Scatterbug': 'Скаттербаг',
	'Spewpa': 'Спьюпа',
	'Vivillon': 'Вивийон',
	'Litleo': 'Литлео',
	'Pyroar': 'Пироар',
	'Flabebe': 'Флабебе',
	'Floette': 'Флоэтта',
	'Florges': 'Флорджес',
	'Skiddo': 'Скиддо',
	'Gogoat': 'Гогоат',
	'Pancham': 'Панчем',
	'Pangoro': 'Пангоро',
	'Furfrou': 'Фурфру',
	'Espurr': 'Эспурр',
	'Meowstic': 'Мяустик',
	'Honedge': 'Хонэдж',
	'Doublade': 'Даблэйд',
	'Aegislash': 'Эгислэш',
	'Spritzee': 'Спритзи',
	'Aromatisse': 'Ароматисс',
	'Swirlix': 'Свћрликс',
	'Slurpuff': 'Слћрпафф',
	'Inkay': 'Инкей',
	'Malamar': 'Маламар',
	'Binacle': 'Бинакл',
	'Barbaracle': 'Барбаракл',
	'Skrelp': 'Скрелп',
	'Dragalge': 'Драгалге',
	'Clauncher': 'Клончер',
	'Clawitzer': 'Кловитцер',
	'Helioptile': 'Гелиоптил',
	'Heliolisk': 'Гелиолиск',
	'Tyrunt': 'Тирант',
	'Tyrantrum': 'Тирантрум',
	'Amaura': 'Амаура',
	'Aurorus': 'Аврорий',
	'Sylveon': 'Сильвеон',
	'Hawlucha': 'Холуча',
	'Dedenne': 'Деденне',
	'Carbink': 'Карбинк',
	'Goomy': 'Гуми',
	'Sliggoo': 'Слиггу',
	'Goodra': 'Гудра',
	'Klefki': 'Клефки',
	'Phantump': 'Фантамп',
	'Trevenant': 'Тревенант',
	'Pumpkaboo': 'Пампкабу',
	'Gourgeist': 'Горгайст',
	'Bergmite': 'Бергмайт',
	'Avalugg': 'Авалагг',
	'Noibat': 'Нойбат',
	'Noivern': 'Нойверн',
	'Xerneas': 'Ксерний',
	'Yveltal': 'Ивелталь',
	'Zygarde': 'Зигард',
	'Diancie': 'Дианси',
	'Hoopa': 'Хупа',
	'Volcanion': 'Вулканьон',
	'Rowlet': 'Раулет',
	'Dartrix': 'Дартрикс',
	'Decidueye': 'Десиджуай',
	'Litten': 'Литтен',
	'Torracat': 'Торракэт',
	'Incineroar': 'Инсинероар',
	'Popplio': 'Попплио',
	'Brionne': 'Брионна',
	'Primarina': 'Примарина',
	'Pikipek': 'Пикипек',
	'Trumbeak': 'Трамбик',
	'Toucannon': 'Тукэннон',
	'Yungoos': 'Янгус',
	'Gumshoos': 'Гамшус',
	'Grubbin': 'Граббин',
	'Charjabug': 'Чарджабаг',
	'Vikavolt': 'Викавольт',
	'Crabrawler': 'Краброулер',
	'Crabominable': 'Крабоминэбл',
	'Oricorio': 'Орикорио',
	'Cutiefly': 'Кьютифлай',
	'Ribombee': 'Рибомби',
	'Rockruff': 'Рокрафф',
	'Lycanroc': 'Ликанрок',
	'Wishiwashi': 'Вишиваши',
	'Mareanie': 'Марини',
	'Toxapex': 'Токсапекс',
	'Mudbray': 'Мадбрэй',
	'Mudsdale': 'Мадсдэйл',
	'Dewpider': 'Дьюпайдер',
	'Araquanid': 'Аракванид',
	'Fomantis': 'Фомантис',
	'Lurantis': 'Лурантис',
	'Morelull': 'Морелалл',
	'Shiinotic': 'Шиинотик',
	'Salandit': 'Саландит',
	'Salazzle': 'Салаззл',
	'Stufful': 'Стаффул',
	'Bewear': 'Бевеар',
	'Bounsweet': 'Баунсвит',
	'Steenee': 'Стини',
	'Tsareena': 'Царина',
	'Comfey': 'Комфей',
	'Oranguru': 'Орангуру',
	'Passimian': 'Пассимиан',
	'Wimpod': 'Вимпод',
	'Golisopod': 'Голизопод',
	'Sandygast': 'Сэндигаст',
	'Palossand': 'Палоссэнд',
	'Pyukumuku': 'Пюкумуку',
	'Type: Null': 'Тип: Нуль',
	'Silvally': 'Сильвалли',
	'Minior': 'Миниор',
	'Komala': 'Комала',
	'Turtonator': 'Туртонатор',
	'Togedemaru': 'Тогедемару',
	'Mimikyu': 'Мимикю',
	'Bruxish': 'Браксиш',
	'Drampa': 'Дрампа',
	'Dhelmise': 'Делмайз',
	'Jangmo-o': 'Джангмо-о',
	'Hakamo-o': 'Хакамо-о',
	'Kommo-o': 'Коммо-о',
	'Tapu Koko': 'Тапу Коко',
	'Tapu Lele': 'Тапу Леле',
	'Tapu Bulu': 'Тапу Булу',
	'Tapu Fini': 'Тапу Фини',
	'Cosmog': 'Космог',
	'Cosmoem': 'Космоэм',
	'Solgaleo': 'Солгалео',
	'Lunala': 'Лунала',
	'Nihilego': 'Нихилэго',
	'Buzzwole': 'Баззвоул',
	'Pheromosa': 'Феромоза',
	'Xurkitree': 'Зћркитри',
	'Celesteela': 'Селестила',
	'Kartana': 'Картана',
	'Guzzlord': 'Газзлорд',
	'Necrozma': 'Некрозма',
	'Magearna': 'Магиана',
	'Marshadow': 'Маршедоу',
	'Poipole': 'Пойпоул',
	'Naganadel': 'Наганадел',
	'Stakataka': 'Стакатака',
	'Blacephalon': 'Блацефалон',
	'Zeraora': 'Зераора',
	'Meltan': 'Мелтан',
	'Melmetal': 'Мелметал',
	'Grookey': 'Груки',
	'Thwackey': 'Твеки',
	'Rillaboom': 'Риллабум',
	'Scorbunny': 'Скорбанни',
	'Raboot': 'Рэбут',
	'Cinderace': 'Синдерейс',
	'Sobble': 'Соббл',
	'Drizzile': 'Дриззайл',
	'Inteleon': 'Интелеон',
	'Skwovet': 'Сквовет',
	'Greedent': 'Гридент',
	'Rookidee': 'Рукиди',
	'Corvisquire': 'Корвисквайр',
	'Corviknight': 'Корвинайт',
	'Blipbug': 'Блипбаг',
	'Dottler': 'Доттлер',
	'Orbeetle': 'Орбитл',
	'Nickit': 'Никит',
	'Thievul': 'Тивул',
	'Gossifleur': 'Госсифлћр',
	'Eldegoss': 'Элдегосс',
	'Wooloo': 'Вулу',
	'Dubwool': 'Дабвул',
	'Chewtle': 'Чьютл',
	'Drednaw': 'Дредно',
	'Yamper': 'Ямпер',
	'Boltund': 'Болтунд',
	'Rolycoly': 'Роликоли',
	'Carkol': 'Каркол',
	'Coalossal': 'Коалоссал',
	'Applin': 'Эпплин',
	'Flapple': 'Флэппл',
	'Appletun': 'Эпплтан',
	'Silicobra': 'Силикобра',
	'Sandaconda': 'Сандаконда',
	'Cramorant': 'Краморант',
	'Arrokuda': 'Аррокуда',
	'Barraskewda': 'Барраскюда',
	'Toxel': 'Токсел',
	'Toxtricity': 'Токстрисити',
	'Sizzlipede': 'Сиззлипед',
	'Centiskorch': 'Сентискорч',
	'Clobbopus': 'Клоббопус',
	'Grapploct': 'Грапплокт',
	'Sinistea': 'Синисти',
	'Polteageist': 'Полтигейст',
	'Hatenna': 'Хаттена',
	'Hattrem': 'Хаттрем',
	'Hatterene': 'Хаттерин',
	'Impidimp': 'Импидимп',
	'Morgrem': 'Моргрем',
	'Grimmsnarl': 'Гриммснарл',
	'Obstagoon': 'Обстагун',
	'Perrserker': 'Перрсеркер',
	'Cursola': 'Кћрсола',
	"Sirfetch'd": "Сэрфеч'д",
	'Mr. Rime': 'Райм',
	'Runerigus': 'Рунриг',
	'Milcery': 'Милсери',
	'Alcremie': 'Алкрими',
	'Falinks': 'Фалинкс',
	'Pincurchin': 'Пинкћрчин',
	'Snom': 'Сном',
	'Frosmoth': 'Фросмос',
	'Stonjourner': 'Стонджорнер',
	'Eiscue': 'Айскью',
	'Indeedee': 'Индиди',
	'Morpeko': 'Морпеко',
	'Cufant': 'Куфант',
	'Copperajah': 'Коппераджа',
	'Dracozolt': 'Дракозолт',
	'Arctozolt': 'Арктозолт',
	'Dracovish': 'Драковиш',
	'Arctovish': 'Арктовиш',
	'Duraludon': 'Дюралудон',
	'Dreepy': 'Дрипи',
	'Drakloak': 'Драклоук',
	'Dragapult': 'Драгапульт',
	'Zacian': 'Зациан',
	'Zamazenta': 'Замазента',
	'Eternatus': 'Этернатий'
}

function convertType(type) {
	return Types[type];
}

function convertPokemonName(pokemonName) {
	return PokemonNames[pokemonName];
}

function convertPokemonAttributes(bulbapediaParams, pokewikiParams, numberOfTypes) {
	pokewikiParams.push(bulbapediaParams[1]) // dex number
	pokewikiParams.push(convertPokemonName(bulbapediaParams[2])) // name

	let types = [];
	for (let i = 1; i <= numberOfTypes; i++) {
		let prefix = 'type' + (i > 1 ? i : '') + '=';
		types.push(bulbapediaParams[2 + i].startsWith(prefix) ? bulbapediaParams[2 + i].substr(prefix.length) : bulbapediaParams[2 + i]);
	}
	if (types.length === 1) types.push(types[0]);

	pokewikiParams.push(numberOfTypes);
	for (let type of types) {
		pokewikiParams.push(convertType(type));
	}

	return pokewikiParams;
}

function convertLearnsetHeaderLine(line) {
	if (line.indexOf('Learnset') >= 0) {
		return '==Изучение==';
	}

	if (line.indexOf('By [[Level|leveling up]]') >= 0) {
		return '===При [[Уровень|повышении уровня]]===';
	}

	if (line.indexOf('By [[TM]]') >= 0 || line.indexOf('By [[HM]]') >= 0 || line.indexOf('By [[TR]]') >= 0) {
		source = line.split('By ')[1].split('=')[0];
		return '===С помощью ' + source + '===';
	}

	return line;
}

function convertLearnsetLine(line) {
	let bulbapediaParams = line.substr(2, line.length - 4).split('|');

	if (bulbapediaParams[0] === 'Movehead/Level') {
		return '{{Приемышапка/уровень|' + convertType(bulbapediaParams[1]) + '|' + bulbapediaParams[2] + '}}';
	}

	if (bulbapediaParams[0] === 'Movehead/TM') {
		let pokewikiParams = ['Приемышапка/ТМ', convertType(bulbapediaParams[1])];
		for (let i = 2; i < bulbapediaParams.length; i++) {
			pokewikiParams.push(bulbapediaParams[i] === 'no' ? 'нет' : bulbapediaParams[i]);
		}
		return '{{' + pokewikiParams.join('|') + '}}';
	}

	if (bulbapediaParams[0] === 'Movefoot') {
		return '{{Приемыниз|' + convertType(bulbapediaParams[1]) + '|1}}';
	}

	if (!bulbapediaParams[0].startsWith('Moveentry/')) return line;

	let pokewikiParams = [];

	let gens = parseInt(bulbapediaParams[0].split('/')[1], 10);
	pokewikiParams.push('Приемы/Поколение' + (NUMBER_OF_GENS - gens + 1));

	let numberOfTypes = bulbapediaParams[4].startsWith('type2=') ? 2 : 1;
	pokewikiParams = convertPokemonAttributes(bulbapediaParams, pokewikiParams, numberOfTypes);

	let levelsParam = bulbapediaParams.slice(6 + numberOfTypes).join('|');
	let numberOfParams = pokewikiParams.length + gens;

	let subParams = [''];
	let tagMode = false;
	let tag = '';

	for (let i = 0; i <= levelsParam.length; i++) {
		let char = i < levelsParam.length ? levelsParam[i] : '';
		let prevChar = i > 0 ? levelsParam[i - 1] : '';

		if (char === '{' && prevChar === '{') {
			while (subParams[subParams.length-1].endsWith('{')) {
				subParams[subParams.length-1] = subParams[subParams.length-1].substr(0, subParams.length - 1);
			}
			tagMode = true;
			tag = '';
		}

		if (tagMode && char === '}' && prevChar === '}') {
			if (tag.startsWith('Learned upon evolving')) {
				subParams[subParams.length-1] = subParams[subParams.length-1] + '{{tt|ЭВ|Изучается при эволюции}}';
			} else {
				subParams[subParams.length-1] = '{{tt|' + subParams[subParams.length-1].replace('{{tt|ЭВ|Изучается при эволюции}}', 'ЭВ') + '|' + tag + '}}';
			}
			tagMode = false;
		}

		if (!tagMode && prevChar === '>' && subParams[subParams.length-1].endsWith('<br>')) {
			subParams[subParams.length-1] = subParams[subParams.length-1].replace('<br>', '');
			subParams.push('');
		}

		if (!(char in {'{':1, '}':1})) {
			if (tagMode) {
				tag = (char === '|' ? '' : tag + char);
			} else {
				if (!(char in {'|':1, '':1})) {
					subParams[subParams.length-1] = subParams[subParams.length-1] + char;
				} else {
					let param = subParams.join('/');
					subParams = [''];

					if (param.startsWith('STAB=')) continue;
					if (param.length === 0) param = '-';
					param = param.replace('Evo.', 'ЭВ')

					pokewikiParams.push(param);
					if (pokewikiParams.length >= numberOfParams) break;
				}
			}
		}
	}

	while (pokewikiParams.length < numberOfParams) {
		pokewikiParams.push('-');
	}

	return '{{' + pokewikiParams.join('|') + '}}';
}

function convertLearnset(bulbapediaTable) {
	let pokewikiTable = [];
	for (let line of bulbapediaTable.split('\n')) {
		if (line.startsWith('=') && line.endsWith('=')) {
			pokewikiTable.push(convertLearnsetHeaderLine(line));
		} else if (line.startsWith('{{') && line.endsWith('}}')) {
			pokewikiTable.push(convertLearnsetLine(line));
		} else pokewikiTable.push(line);
	}
	return pokewikiTable.join('\n');
}