예제 #1
0
        public static async Task MoveScreenNew(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 num = user.Char.MoveScreenNum;

            if (emote.Name == "1\u20E3")
            {
                if (user.Char.ActiveMons[num].ActiveMoves[0].Name != "None")
                {
                    user.ReactionMessages.Remove(messageId);
                    await CombatHandler2.ParseMoveSelection(user, 0);
                }
            }
            else if (emote.Name == "2\u20E3")
            {
                if (user.Char.ActiveMons[num].ActiveMoves[1].Name != "None")
                {
                    user.ReactionMessages.Remove(messageId);
                    await CombatHandler2.ParseMoveSelection(user, 1);
                }
            }
            else if (emote.Name == "3\u20E3")
            {
                if (user.Char.ActiveMons[num].ActiveMoves[2].Name != "None")
                {
                    user.ReactionMessages.Remove(messageId);
                    await CombatHandler2.ParseMoveSelection(user, 2);
                }
            }
            else if (emote.Name == "4\u20E3")
            {
                if (user.Char.ActiveMons[num].ActiveMoves[3].Name != "None")
                {
                    user.ReactionMessages.Remove(messageId);
                    await CombatHandler2.ParseMoveSelection(user, 3);
                }
            }
            else if (emote.Name == "⏮")
            {
                if (user.Char.MoveScreenNum > 0)
                {
                    user.ReactionMessages.Remove(messageId);
                    user.Char.MoveScreenNum--;
                    await MessageHandler.MoveScreenNew(user.UserId);
                }
                else
                {
                    user.ReactionMessages.Remove(messageId);
                    await MessageHandler.FightScreenNew(user.UserId);
                }
            }
        }