protected WowBasicItem(IWowInventoryItem item) { if (item == null) { return; } BagId = item.BagId; BagSlot = item.BagSlot; Count = item.Count; Durability = item.Durability; EquipLocation = item.EquipLocation; EquipSlot = item.EquipSlot; Id = item.Id; ItemLevel = item.ItemLevel; ItemLink = item.ItemLink; ItemQuality = item.ItemQuality; MaxDurability = item.MaxDurability; MaxStack = item.MaxStack; Name = item.Name; Price = item.Price; RequiredLevel = item.RequiredLevel; Stats = item.Stats; Subtype = item.Subtype; Type = item.Type; }
public WowArmor(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { Id = wowBasicItem.Id; BagId = wowBasicItem.BagId; BagSlot = wowBasicItem.BagSlot; Type = wowBasicItem.Type; Subtype = wowBasicItem.Subtype; Name = wowBasicItem.Name; ItemLink = wowBasicItem.ItemLink; EquipSlot = wowBasicItem.EquipSlot; ItemQuality = wowBasicItem.ItemQuality; ItemLevel = wowBasicItem.ItemLevel; RequiredLevel = wowBasicItem.RequiredLevel; Price = wowBasicItem.Price; Count = wowBasicItem.Count; MaxStack = wowBasicItem.MaxStack; Durability = wowBasicItem.Durability; MaxDurability = wowBasicItem.MaxDurability; EquipLocation = wowBasicItem.EquipLocation; if (Subtype.EndsWith("s")) { Subtype = Subtype.Remove(Subtype.Length - 1); } ArmorType = Enum.TryParse(Subtype, out WowArmorType armorType) ? armorType : WowArmorType.Misc; }
public WowArmor(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { if (Subtype.ToLowerInvariant().EndsWith("s")) { Subtype = Subtype.Remove(Subtype.Length - 1); } ArmorType = Enum.TryParse(Subtype, true, out WowArmorType armorType) ? armorType : WowArmorType.Misc; }
public bool IsBetter(IWowInventoryItem current, IWowInventoryItem item) { if (!CharacterManager.IsAbleToUseItem(item)) { return(false); } double scoreCurrent = GearscoreFactory.Calculate(current); double scoreNew = GearscoreFactory.Calculate(item); return(scoreCurrent < scoreNew); }
public bool IsBetter(IWowInventoryItem current, IWowInventoryItem item) { if ((ArmorTypeBlacklist != null && item.GetType() == typeof(WowArmor) && ArmorTypeBlacklist.Contains(((WowArmor)item).ArmorType)) || (WeaponTypeBlacklist != null && item.GetType() == typeof(WowWeapon) && WeaponTypeBlacklist.Contains(((WowWeapon)item).WeaponType))) { return(false); } double scoreCurrent = GearscoreFactory.Calculate(current); double scoreNew = GearscoreFactory.Calculate(item); return(scoreCurrent < scoreNew); }
public bool IsBlacklistedItem(IWowInventoryItem item) { if (ArmorTypeBlacklist != null && string.Equals(item.Type, "Armor", StringComparison.OrdinalIgnoreCase) && ArmorTypeBlacklist.Contains(((WowArmor)item).ArmorType)) { return(true); } else if (WeaponTypeBlacklist != null && string.Equals(item.Type, "Weapon", StringComparison.OrdinalIgnoreCase) && WeaponTypeBlacklist.Contains(((WowWeapon)item).WeaponType)) { return(true); } return(false); }
public void Execute() { if (Finished || Bot.Player.IsCasting) { return; } IWowInventoryItem item = Bot.Character.Inventory.Items.FirstOrDefault(e => e.Id == ItemId); if (item != null) { Bot.Movement.Reset(); Bot.Wow.StopClickToMove(); Bot.Wow.UseContainerItem(item.BagId, item.BagSlot); } }
public WowQuiver(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { Id = wowBasicItem.Id; BagId = wowBasicItem.BagId; BagSlot = wowBasicItem.BagSlot; Type = wowBasicItem.Type; Subtype = wowBasicItem.Subtype; Name = wowBasicItem.Name; ItemLink = wowBasicItem.ItemLink; EquipSlot = wowBasicItem.EquipSlot; ItemQuality = wowBasicItem.ItemQuality; ItemLevel = wowBasicItem.ItemLevel; RequiredLevel = wowBasicItem.RequiredLevel; Price = wowBasicItem.Price; Count = wowBasicItem.Count; MaxStack = wowBasicItem.MaxStack; Durability = wowBasicItem.Durability; MaxDurability = wowBasicItem.MaxDurability; EquipLocation = wowBasicItem.EquipLocation; }
public WowWeapon(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { Id = wowBasicItem.Id; BagId = wowBasicItem.BagId; BagSlot = wowBasicItem.BagSlot; Type = wowBasicItem.Type; Subtype = wowBasicItem.Subtype; Name = wowBasicItem.Name; ItemLink = wowBasicItem.ItemLink; EquipSlot = wowBasicItem.EquipSlot; ItemQuality = wowBasicItem.ItemQuality; ItemLevel = wowBasicItem.ItemLevel; RequiredLevel = wowBasicItem.RequiredLevel; Price = wowBasicItem.Price; Count = wowBasicItem.Count; MaxStack = wowBasicItem.MaxStack; Durability = wowBasicItem.Durability; MaxDurability = wowBasicItem.MaxDurability; EquipLocation = wowBasicItem.EquipLocation; WeaponType = Enum.TryParse(GetWeaponTypeName(Subtype), out WowWeaponType weaponType) ? weaponType : WowWeaponType.Misc; }
public double Calculate(IWowInventoryItem item) { double score = 0; for (int i = 0; i < StatMultiplicators.Count; ++i) { KeyValuePair <string, double> keyValuePair = StatMultiplicators.ElementAt(i); if (item.Stats.TryGetValue(keyValuePair.Key, out string stat)) { if ((stat.Contains('.') || stat.Contains(',')) && double.TryParse(stat, NumberStyles.Any, CultureInfo.InvariantCulture, out double statDoubleValue)) { score += statDoubleValue * keyValuePair.Value; } else if (int.TryParse(stat, out int statIntValue)) { score += statIntValue * keyValuePair.Value; } } } return(score); }
public bool IsBetter(IWowInventoryItem current, IWowInventoryItem item) { if (item == null) { return(false); } else if (current == null) { return(true); } else if (item.Stats == null) { return(false); } else if (current.Stats == null) { return(true); } double currentRating = GetRating(current, (WowEquipmentSlot)current.EquipSlot); double newItemRating = GetRating(item, (WowEquipmentSlot)current.EquipSlot); return(currentRating < newItemRating); }
public WowTradeGoods(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { }
public bool IsBlacklistedItem(IWowInventoryItem item) { return(!CharacterManager.IsAbleToUseItem(item)); }
public WowProjectile(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { }
public WowContainer(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { }
public WowQuiver(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { }
public WowKey(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { }
public WowWeapon(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { WeaponType = Enum.TryParse(GetWeaponTypeName(Subtype.ToLowerInvariant()), true, out WowWeaponType weaponType) ? weaponType : WowWeaponType.Misc; }
public WowConsumable(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { }
public WowMoneyItem(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { }
private double GetRating(IWowInventoryItem item, WowEquipmentSlot slot) { double rating = 0; if (item.Stats.TryGetValue("ITEM_MOD_CRIT_MELEE_RATING_SHORT", out string meleeCritString) && double.TryParse(meleeCritString, NumberStyles.Any, CultureInfo.InvariantCulture, out double meleeCrit)) { rating += 0.5f * meleeCrit; } if (item.Stats.TryGetValue("ITEM_MOD_CRIT_RATING_SHORT", out string critString) && double.TryParse(critString, NumberStyles.Any, CultureInfo.InvariantCulture, out double crit)) { rating += 0.5f * crit; } if (item.Stats.TryGetValue("ITEM_MOD_AGILITY_SHORT", out string agilityString) && double.TryParse(agilityString, NumberStyles.Any, CultureInfo.InvariantCulture, out double agility)) { rating += 0.5f * agility; } if (item.Stats.TryGetValue("ITEM_MOD_ATTACK_POWER_SHORT", out string attackString) && double.TryParse(attackString, NumberStyles.Any, CultureInfo.InvariantCulture, out double attack)) { rating += 0.5f * attack; } if (item.Stats.TryGetValue("ITEM_MOD_STRENGTH_SHORT", out string strengthString) && double.TryParse(strengthString, NumberStyles.Any, CultureInfo.InvariantCulture, out double strength)) { rating += 1f * strength; } if (slot.Equals(WowEquipmentSlot.INVSLOT_OFFHAND) || slot.Equals(WowEquipmentSlot.INVSLOT_MAINHAND)) { // also 2nd weapons if (item.GetType() == typeof(WowWeapon) && (Bot.Player.IsAlliance() ? ((WowWeapon)item).WeaponType.Equals(WowWeaponType.Sword) : ((WowWeapon)item).WeaponType.Equals(WowWeaponType.Axe) || (Bot.Character.SpellBook.IsSpellKnown("Titan's Grip") && Bot.Player.IsAlliance() ? ((WowWeapon)item).WeaponType.Equals(WowWeaponType.SwordTwoHand) : ((WowWeapon)item).WeaponType.Equals(WowWeaponType.AxeTwoHand)))) { if (item.Stats.TryGetValue("ITEM_MOD_DAMAGE_PER_SECOND_SHORT", out string dpsString) && double.TryParse(dpsString, NumberStyles.Any, CultureInfo.InvariantCulture, out double dps)) { rating += 2f * dps; } } } else if (!(slot.Equals(WowEquipmentSlot.INVSLOT_NECK) || slot.Equals(WowEquipmentSlot.INVSLOT_RING1) || slot.Equals(WowEquipmentSlot.INVSLOT_RING2) || slot.Equals(WowEquipmentSlot.INVSLOT_TRINKET1) || slot.Equals(WowEquipmentSlot.INVSLOT_TRINKET2))) { // armor stats if (item.Stats.TryGetValue("RESISTANCE0_NAME", out string armorString) && double.TryParse(armorString, NumberStyles.Any, CultureInfo.InvariantCulture, out double armor)) { rating += 0.1f * armor; } } return(rating); }
private static double GetRating(IWowInventoryItem item, WowEquipmentSlot slot) { double rating = 0; if (item.Stats.TryGetValue("ITEM_MOD_CRIT_MELEE_RATING_SHORT", out string meleeCritString) && double.TryParse(meleeCritString, NumberStyles.Any, CultureInfo.InvariantCulture, out double meleeCrit)) { rating += 2f * meleeCrit; } if (item.Stats.TryGetValue("ITEM_MOD_CRIT_RATING_SHORT", out string critString) && double.TryParse(critString, NumberStyles.Any, CultureInfo.InvariantCulture, out double crit)) { rating += 2f * crit; } if (item.Stats.TryGetValue("ITEM_MOD_AGILITY_SHORT", out string agilityString) && double.TryParse(agilityString, NumberStyles.Any, CultureInfo.InvariantCulture, out double agility)) { rating += 1f * agility; } if (item.Stats.TryGetValue("ITEM_MOD_ATTACK_POWER_SHORT", out string attackString) && double.TryParse(attackString, NumberStyles.Any, CultureInfo.InvariantCulture, out double attack)) { rating += 0.25f * attack; } if (item.Stats.TryGetValue("ITEM_MOD_STRENGTH_SHORT", out string strengthString) && double.TryParse(strengthString, NumberStyles.Any, CultureInfo.InvariantCulture, out double strength)) { rating += 0.5f * strength; } if (slot.Equals(WowEquipmentSlot.INVSLOT_OFFHAND) || slot.Equals(WowEquipmentSlot.INVSLOT_MAINHAND)) { // also 2nd weapons if (item.GetType() == typeof(WowWeapon) && ((WowWeapon)item).WeaponType.Equals(WowWeaponType.Dagger)) { if (item.Stats.TryGetValue("ITEM_MOD_DAMAGE_PER_SECOND_SHORT", out string dpsString) && double.TryParse(dpsString, NumberStyles.Any, CultureInfo.InvariantCulture, out double dps)) { rating += 2f * dps; } } else { rating = 0; } } else if (!(slot.Equals(WowEquipmentSlot.INVSLOT_NECK) || slot.Equals(WowEquipmentSlot.INVSLOT_RING1) || slot.Equals(WowEquipmentSlot.INVSLOT_RING2) || slot.Equals(WowEquipmentSlot.INVSLOT_TRINKET1) || slot.Equals(WowEquipmentSlot.INVSLOT_TRINKET2))) { // armor stats if (item.Stats.TryGetValue("RESISTANCE0_NAME", out string armorString) && double.TryParse(armorString, NumberStyles.Any, CultureInfo.InvariantCulture, out double armor)) { rating += 0.05f * armor; } if (item.Stats.TryGetValue("ITEM_MOD_DODGE_RATING_SHORT", out string dodgeString) && double.TryParse(dodgeString, NumberStyles.Any, CultureInfo.InvariantCulture, out double dodge)) { rating += 0.5f * dodge; } } return(rating); }
public WowMiscellaneousItem(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { }
public WowReagent(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { }
public bool IsBlacklistedItem(IWowInventoryItem item) { return(false); }
private double GetRating(IWowInventoryItem item, WowEquipmentSlot slot) { double rating = 0; if (slot.Equals(WowEquipmentSlot.INVSLOT_OFFHAND)) { // don't use shields or 2nd weapons return(0); } else if (slot.Equals(WowEquipmentSlot.INVSLOT_MAINHAND)) { // axes if (item.GetType() == typeof(WowWeapon) && Bot.Player.IsAlliance() ? (((WowWeapon)item).WeaponType.Equals(WowWeaponType.AxeTwoHand) || ((WowWeapon)item).WeaponType.Equals(WowWeaponType.Axe)) : (((WowWeapon)item).WeaponType.Equals(WowWeaponType.MaceTwoHand) || ((WowWeapon)item).WeaponType.Equals(WowWeaponType.Mace))) { if (item.Stats.TryGetValue("ITEM_MOD_ATTACK_POWER_SHORT", out string attackString) && double.TryParse(attackString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double attack)) { rating += 0.5f * attack; } if (item.Stats.TryGetValue("ITEM_MOD_DAMAGE_PER_SECOND_SHORT", out string dpsString) && double.TryParse(dpsString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double dps)) { rating += 2f * dps; } if (item.Stats.TryGetValue("ITEM_MOD_STRENGTH_SHORT", out string strengthString) && double.TryParse(strengthString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double strength)) { rating += 1f * strength; } } } else if (slot.Equals(WowEquipmentSlot.INVSLOT_NECK) || slot.Equals(WowEquipmentSlot.INVSLOT_RING1) || slot.Equals(WowEquipmentSlot.INVSLOT_RING2) || slot.Equals(WowEquipmentSlot.INVSLOT_TRINKET1) || slot.Equals(WowEquipmentSlot.INVSLOT_TRINKET2)) { // jewelry stats if (item.Stats.TryGetValue("ITEM_MOD_ATTACK_POWER_SHORT", out string attackString) && double.TryParse(attackString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double attack)) { rating += 0.5f * attack; } if (item.Stats.TryGetValue("ITEM_MOD_STRENGTH_SHORT", out string strengthString) && double.TryParse(strengthString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double strength)) { rating += 1f * strength; } } else { // armor stats if (item.Stats.TryGetValue("RESISTANCE0_NAME", out string armorString) && double.TryParse(armorString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double armor)) { rating += 0.5f * armor; } if (item.Stats.TryGetValue("ITEM_MOD_ATTACK_POWER_SHORT", out string attackString) && double.TryParse(attackString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double attack)) { rating += 0.5f * attack; } if (item.Stats.TryGetValue("ITEM_MOD_STRENGTH_SHORT", out string strengthString) && double.TryParse(strengthString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double strength)) { rating += 1f * strength; } } return(rating); }
public ItemDisplay(IWowInventoryItem wowItem) { WowItem = wowItem; InitializeComponent(); }
private static double GetRating(IWowInventoryItem item, WowEquipmentSlot slot) { double rating = 0; if (slot.Equals(WowEquipmentSlot.INVSLOT_OFFHAND)) { // shields if (item.GetType() == typeof(WowArmor) && ((WowArmor)item).ArmorType.Equals(WowArmorType.Shield)) { if (item.Stats.TryGetValue("RESISTANCE0_NAME", out string armorString) && double.TryParse(armorString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double armor)) { rating += 0.5 * armor; } if (item.Stats.TryGetValue("ITEM_MOD_STAMINA_SHORT", out string staminaString) && double.TryParse(staminaString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double stamina)) { rating += 1f * stamina; } if (item.Stats.TryGetValue("ITEM_MOD_DEFENSE_SKILL_RATING_SHORT", out string defenseString) && double.TryParse(defenseString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double defense)) { rating += 1f * defense; } if (item.Stats.TryGetValue("ITEM_MOD_BLOCK_VALUE_SHORT", out string blockString) && double.TryParse(blockString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double blockValue)) { rating += 5f * blockValue; } if (item.Stats.TryGetValue("ITEM_MOD_BLOCK_RATING_SHORT", out string blockChanceString) && double.TryParse(blockChanceString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double blockChance)) { rating += 10f * blockChance; } } } else if (slot.Equals(WowEquipmentSlot.INVSLOT_MAINHAND)) { // swords if (item.GetType() == typeof(WowWeapon) && ((WowWeapon)item).WeaponType.Equals(WowWeaponType.Sword)) { if (item.Stats.TryGetValue("ITEM_MOD_STRENGTH_SHORT", out string strengthString) && double.TryParse(strengthString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double strength)) { rating += 0.5f * strength; } if (item.Stats.TryGetValue("ITEM_MOD_DAMAGE_PER_SECOND_SHORT", out string dpsString) && double.TryParse(dpsString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double dps)) { rating += 1f * dps; } if (item.Stats.TryGetValue("ITEM_MOD_DEFENSE_SKILL_RATING_SHORT", out string defenseString) && double.TryParse(defenseString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double defense)) { rating += 5f * defense; } if (item.Stats.TryGetValue("ITEM_MOD_PARRY_RATING_SHORT", out string parryString) && double.TryParse(parryString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double parry)) { rating += 10f * parry; } } } else if (slot.Equals(WowEquipmentSlot.INVSLOT_NECK) || slot.Equals(WowEquipmentSlot.INVSLOT_RING1) || slot.Equals(WowEquipmentSlot.INVSLOT_RING2) || slot.Equals(WowEquipmentSlot.INVSLOT_TRINKET1) || slot.Equals(WowEquipmentSlot.INVSLOT_TRINKET2)) { // jewelry stats if (item.Stats.TryGetValue("ITEM_MOD_STRENGTH_SHORT", out string strengthString) && double.TryParse(strengthString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double strength)) { rating += 0.5f * strength; } if (item.Stats.TryGetValue("ITEM_MOD_STAMINA_SHORT", out string staminaString) && double.TryParse(staminaString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double stamina)) { rating += 1f * stamina; } } else { // armor stats if (item.Stats.TryGetValue("RESISTANCE0_NAME", out string armorString) && double.TryParse(armorString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double armor)) { rating += 0.5f * armor; } if (item.Stats.TryGetValue("ITEM_MOD_STRENGTH_SHORT", out string strengthString) && double.TryParse(strengthString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double strength)) { rating += 0.5f * strength; } if (item.Stats.TryGetValue("ITEM_MOD_PARRY_RATING_SHORT", out string parryString) && double.TryParse(parryString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double parry)) { rating += 0.5f * parry; } if (item.Stats.TryGetValue("ITEM_MOD_BLOCK_RATING_SHORT", out string blockChanceString) && double.TryParse(blockChanceString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double blockChance)) { rating += 0.5f * blockChance; } if (item.Stats.TryGetValue("ITEM_MOD_BLOCK_VALUE_SHORT", out string blockString) && double.TryParse(blockString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double blockValue)) { rating += 0.5f * blockValue; } if (item.Stats.TryGetValue("ITEM_MOD_STAMINA_SHORT", out string staminaString) && double.TryParse(staminaString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double stamina)) { rating += 1f * stamina; } if (item.Stats.TryGetValue("ITEM_MOD_DEFENSE_SKILL_RATING_SHORT", out string defenseString) && double.TryParse(defenseString, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out double defense)) { rating += 1f * defense; } } return(rating); }
public bool IsBetter(IWowInventoryItem current, IWowInventoryItem item) { return(current == null || current.ItemLevel < item.ItemLevel); }
public WowRecipe(IWowInventoryItem wowBasicItem) : base(wowBasicItem) { }