private void QuickText_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { var text = QuickText.Text.Trim(); int end; LOOP: var r = GameString.Find(text, out end); if (end == 0) { QuickText.Text = text; return; } var n = int.Parse(r.Substring(1)); switch (r[0]) { case 'p': VM.PokemonForm = RomData.GetPokemon(n / 100, n % 100); break; case 'm': VM.AddMove(RomData.GetMove(n)); break; case 'a': VM.Model.Ability = n; break; case 'i': VM.HeldItem = n; break; case 'n': VM.Model.Nature = (PokemonNature)n; break; } text = text.Substring(end); goto LOOP; } }
void AutoTeam(string text) { int end; LOOP: var r = GameString.Find(text, out end); if (end == 0) { if (!string.IsNullOrWhiteSpace(text)) { Console.WriteLine(@"<ERROR> """ + text + @""""); } return; } var n = int.Parse(r.Substring(1)); switch (r[0]) { case 'p': Team.Add(new PokemonData(n / 100, n % 100)); break; case 'm': { var pm = Team.LastOrDefault(); if (pm == null) { pm = new PokemonData(235, 0); Team.Add(pm); } pm.AddMove(RomData.GetMove(n)); } break; case 'a': { var pm = Team.LastOrDefault(); if (pm == null || !pm.Form.Data.Abilities.Contains(n)) { foreach (var p in RomData.Pokemons) { if (p.Forms.First().Data.Abilities.Contains(n)) { pm = new PokemonData(p.Number, 0); Team.Add(pm); break; } } } pm.Ability = n; } break; case 'i': { var pm = Team.LastOrDefault(); if (pm == null || pm.Item != 0) { pm = new PokemonData(235, 0); Team.Add(pm); } pm.Item = n; } break; } text = text.Substring(end); goto LOOP; }