Пример #1
0
        public static async Task PassiveItem(SocketUser user)
        {
            var select = GetInventory(user);
            var acc    = UserAccounts.UserAccounts.GetUserAccount(user);

            foreach (var item in select.Items)
            {
                if (!item.Active)
                {
                    switch (item.Name)
                    {
                    case "Armlet Of Greed":
                        await ItemTech.ArmletOfGreed(acc, item);

                        break;
                    }
                }
            }
        }
Пример #2
0
        public static async Task UseActiveItem(SocketUser user, int index, UserAccount target = null, int optional = 0)
        {
            var select = GetInventory(user);

            if (select.Items.Count < index)
            {
                await GlobalVar.ChannelSelect.SendMessageAsync("No Item Selected");

                return;
            }
            var use = select.Items[index - 1];
            var me  = UserAccounts.UserAccounts.GetUserAccount(user);

            if (!use.Active)
            {
                await GlobalVar.ChannelSelect.SendMessageAsync("Can't use passive item");

                return;
            }
            List <UserAccount> despacito = new List <UserAccount>();

            #region List active items
            switch (use.Name)
            {
            case "Booby Trap":
                target = UserAccounts.UserAccounts.GetRandomBesideMe(me);
                if (target == null)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("There is no more Survivor to target");

                    return;
                }
                if (UserAccounts.UserAccounts.CheckHaveThisBuff(target, "Stealth"))
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("That target can't be targeted");

                    return;
                }
                await ItemTech.UseDecreasingHPItem(me, use, target);

                despacito.Add(target);
                break;

            case "Broken Arrow":
                target = UserAccounts.UserAccounts.GetRandomBesideMe(me);
                if (target == null)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("There is no more Survivor to target");

                    return;
                }
                if (UserAccounts.UserAccounts.CheckHaveThisBuff(target, "Stealth"))
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("That target can't be targeted");

                    return;
                }
                await ItemTech.UseDecreasingHPItem(me, use, target);

                despacito.Add(target);
                break;

            case "Combat Kit":
                target = UserAccounts.UserAccounts.GetRandomBesideMe(me);
                if (target == null)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("There is no more Survivor to target");

                    return;
                }
                if (UserAccounts.UserAccounts.CheckHaveThisBuff(target, "Stealth"))
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("That target can't be targeted");

                    return;
                }
                await ItemTech.UseDecreasingHPItem(me, use, target);

                await ItemTech.UseIncreasingHPItem(use, me);

                despacito.Add(target);
                break;

            case "Converter":
                await ItemTech.UseDecreasingPointItem(use, me);

                await ItemTech.UseIncreasingHPItem(use, me);

                break;

            case "Copycat Generator":
                if (select.Items.Count < optional)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("No Item Selected");
                }
                var copy = select.Items[optional - 1];
                await GiveItem(user, copy, GlobalVar.ChannelSelect);

                break;

            case "Dagger":
                if (target == null)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("Tag a Survivor to use this item");

                    return;
                }
                if (UserAccounts.UserAccounts.CheckHaveThisBuff(target, "Stealth"))
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("That target can't be targeted");

                    return;
                }
                if (target.HP > 3)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("Tag a Survivor with HP less than 3 to use this item");

                    return;
                }
                await ItemTech.AutoKO(me, target);

                despacito.Add(target);
                break;

            case "Ejector":
                if (select.Items.Count <= 1)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("There is no item to drop");

                    return;
                }
                for (int i = 0; i < select.Items.Count; i++)
                {
                    if (select.Items[i] == use)
                    {
                        continue;
                    }
                    await DropItem(user, i);
                }
                break;

            case "Energy Drink":
                await ItemTech.UseIncreasingHPItem(use, me);

                break;

            case "First Aid Kit":
                await ItemTech.UseIncreasingHPItem(use, me);

                break;

            case "Frag Grenade":
                List <UserAccount> alives = UserAccounts.UserAccounts.GetAllAliveUsers();
                int x = 5;
                if (alives.Count - 1 <= 5)
                {
                    x = alives.Count;
                    foreach (var a in alives)
                    {
                        if (a == null)
                        {
                            await GlobalVar.ChannelSelect.SendMessageAsync("There is no more Survivor to target");

                            return;
                        }
                        if (a == me)
                        {
                            continue;
                        }
                        await ItemTech.UseDecreasingHPItem(me, use, a);

                        despacito.Add(a);
                    }
                    break;
                }
                List <UserAccount> targets = new List <UserAccount>();
                for (int i = 0; i < x; i++)
                {
                    target = UserAccounts.UserAccounts.GetRandomBesideMe(me);
                    if (target == null)
                    {
                        await GlobalVar.ChannelSelect.SendMessageAsync("There is no more Survivor to target");

                        return;
                    }
                    if (targets.Contains(target))
                    {
                        i--;
                        continue;
                    }
                    await ItemTech.UseDecreasingHPItem(me, use, target);

                    targets.Add(target);
                }
                despacito = targets;
                break;

            case "Fresh Drink":
                await ItemTech.UseIncreasingHPItem(use, me);

                break;

            case "Homemade Dynamite":
                if (target == null)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("Tag a Survivor to use this item");

                    return;
                }
                if (UserAccounts.UserAccounts.CheckHaveThisBuff(target, "Stealth"))
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("That target can't be targeted");

                    return;
                }
                if (optional <= 0)
                {
                    return;
                }
                await ItemTech.UseDecreasingHPItem(me, optional, target);

                despacito.Add(target);
                break;

            case "Legendary Katana":
                if (target == null)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("Tag a Survivor to use this item");

                    return;
                }
                if (UserAccounts.UserAccounts.CheckHaveThisBuff(target, "Stealth"))
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("That target can't be targeted");

                    return;
                }
                var alive = UserAccounts.UserAccounts.GetAllAliveUsers();
                if (alive.Count <= 1)
                {
                    return;
                }
                await ItemTech.UseDecreasingHPItem(me, use, target);

                await ItemTech.UseDecreasingHPAOE(me, 2, alive);

                alive.Remove(me);
                despacito = alive;
                break;

            case "Mini Catapult":
                SocketUser realtarget = GlobalVar.GuildSelect.GetUser(target.ID);
                if (realtarget == null)
                {
                    return;
                }
                var select2 = GetInventory(realtarget);
                if (select2.Items.Count < optional)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("Target doesnt have that item");

                    return;
                }
                Item drop = select2.Items[optional - 1];
                if (drop == use)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("Target doesnt have that item");

                    return;
                }
                await DropAnyItem(realtarget, drop);

                break;

            case "Napalm Flare":
                if (target == null)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("Tag a Survivor to use this item");

                    return;
                }
                if (UserAccounts.UserAccounts.CheckHaveThisBuff(target, "Stealth"))
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("That target can't be targeted");

                    return;
                }
                despacito.Add(target);
                break;

            case "Nullifier":
                if (target == null)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("Tag a Survivor to use this item");

                    return;
                }
                if (UserAccounts.UserAccounts.CheckHaveThisBuff(target, "Stealth"))
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("That target can't be targeted");

                    return;
                }
                if (target.Buffs.Count <= 0)
                {
                    await GlobalVar.ChannelSelect.SendMessageAsync("This Survivor doesn't have buff to remove");

                    return;
                }
                await ItemTech.RemoveRandomTargetBuff(target);

                despacito.Add(target);
                break;
            }
            #endregion
            foreach (var d in use.Debuffs)
            {
                foreach (var u in despacito)
                {
                    await ItemTech.InflictDebuff(u, d);
                }
            }
            await DropItem(user, index);
        }