Exemple #1
0
        public static async Task AttackScreenNew(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;
            }

            if (emote.Name == "⚔")
            {
                if (user.Char.ActiveMons[user.Char.MoveScreenNum].BufferedMove != null)
                {
                    user.Char.MoveScreenNum++;
                    if (user.Char.MoveScreenNum > CombatHandler2.GetInstance(user.Char.CombatId).GetTeam(user).MultiNum - 1)
                    {
                        user.Char.MoveScreenNum = 0;
                    }
                }
                else
                {
                    await MessageHandler.MoveScreenNew(user.UserId);
                }
                user.ReactionMessages.Remove(messageId);
            }
            else if (emote.Name == "👜")
            {
                await MessageHandler.SendDM(user.UserId, "BAG not implemented yet!");
            }
            else if (emote.Name == "🔁")
            {
                await MessageHandler.SendDM(user.UserId, "SWITCH not implemented yet!");
            }
            else if (emote.Name == "🏃")
            {
                await MessageHandler.SendDM(user.UserId, "RUN not implemented yet!");
            }
        }
Exemple #2
0
        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);
            }
        }