public static async Task TargetingScreen(UserAccount user, ulong messageId, IEmote emote, ContextIds idList) { //Tests each case to make sure all circumstances for the execution of this command are valid (character exists, in correct location) try { await UserHandler.CharacterExists(idList); await UserHandler.CharacterInCombat(idList); } catch (InvalidCharacterStateException) { return; } var mon = user.Char.ActiveMons[user.Char.MoveScreenNum]; var inst = CombatHandler2.GetInstance(user.Char.CombatId); switch (emote.Name) { case "1\u20E3": user.ReactionMessages.Remove(messageId); mon.SelectedMove.Targets.Add(mon.SelectedMove.ValidTargets[0 + user.Char.TargetPage * 9]); break; case "2\u20E3": user.ReactionMessages.Remove(messageId); mon.SelectedMove.Targets.Add(mon.SelectedMove.ValidTargets[1 + user.Char.TargetPage * 9]); break; case "3\u20E3": user.ReactionMessages.Remove(messageId); mon.SelectedMove.Targets.Add(mon.SelectedMove.ValidTargets[2 + user.Char.TargetPage * 9]); break; case "4\u20E3": user.ReactionMessages.Remove(messageId); mon.SelectedMove.Targets.Add(mon.SelectedMove.ValidTargets[3 + user.Char.TargetPage * 9]); break; case "5\u20E3": user.ReactionMessages.Remove(messageId); mon.SelectedMove.Targets.Add(mon.SelectedMove.ValidTargets[4 + user.Char.TargetPage * 9]); break; case "6\u20E3": user.ReactionMessages.Remove(messageId); mon.SelectedMove.Targets.Add(mon.SelectedMove.ValidTargets[5 + user.Char.TargetPage * 9]); break; case "7\u20E3": user.ReactionMessages.Remove(messageId); mon.SelectedMove.Targets.Add(mon.SelectedMove.ValidTargets[6 + user.Char.TargetPage * 9]); break; case "8\u20E3": user.ReactionMessages.Remove(messageId); mon.SelectedMove.Targets.Add(mon.SelectedMove.ValidTargets[7 + user.Char.TargetPage * 9]); break; case "9\u20E3": user.ReactionMessages.Remove(messageId); mon.SelectedMove.Targets.Add(mon.SelectedMove.ValidTargets[8 + user.Char.TargetPage * 9]); break; case "⏮": user.ReactionMessages.Remove(messageId); await MessageHandler.MoveScreenNew(user.UserId); return; case "⏭️": user.ReactionMessages.Remove(messageId); user.Char.TargetPage++; if (user.Char.TargetPage > (Math.Ceiling(mon.SelectedMove.ValidTargets.Count / 9.0))) { user.Char.TargetPage = 0; } await MessageHandler.TargetingScreen(user.UserId); return; } user.Char.MoveScreenNum++; if (user.Char.MoveScreenNum > inst.GetTeam(user).MultiNum--) { user.Char.MoveScreenNum = 0; await inst.ResolvePhase(); } else { await MessageHandler.MoveScreenNew(user.UserId); } }