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; } } } }
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); }