private void GetLearnset() { int formx = form; learnset = new List <int>(); if (!(number == Ps.WORMADAM || number == Ps.ROTOM || number == Ps.KYUREM || number == Ps.FLOETTE && formx == 5 || number == Ps.MEOWSTIC || number == Ps.Lycanroc || GameHelper.Alola(number))) { formx = 0; } GetGenericLearnset(number, formx); switch (number) { case Ps.SMEARGLE: for (var m = 1; m <= RomData.Moves.Count(); ++m) { if (m != Ms.STRUGGLE && m != Ms.CHATTER) { GetLearnVM(m); } } break; case Ps.ROTOM: if (formx != 0) { GetLearnVM(formx == 1 ? Ms.OVERHEAT : formx == 2 ? Ms.HYDRO_PUMP : formx == 3 ? Ms.BLIZZARD : formx == 4 ? Ms.AIR_SLASH : Ms.LEAF_STORM); } break; case Ps.SHAYMIN: GetGenericLearnset(Ps.SHAYMIN, 1 - formx); break; default: if (!(number == Ps.FLOETTE && formx == 5)) { foreach (var e1 in RomData.Evolutions) { if (e1.To == number) { int x = 0; if (GameHelper.Alola(number)) { x = formx; } GetGenericLearnset(e1.From, x); foreach (var e2 in RomData.Evolutions) { if (e2.To == e1.From) { GetGenericLearnset(e2.From, x); break; } } break; } } } break; } }