public CacheItemGemEntry(ItemGemEntry entry) { SnoId = entry.SnoId; var pluginGemType = (PluginGemType)entry.Type; Type = (GemType)Enum.Parse(typeof(GemType), pluginGemType.ToString()); Quality = entry.Quality; }
public ItemGemEntry(int snoid, PluginGemType type, GemQualityTypes quality) { SnoId = snoid; Type = type; Quality=quality; }
public CacheItemGemEntry(int snoid, GemType type, GemQualityTypes quality) { SnoId = snoid; Type = type; Quality = quality; }
public CacheItemGemEntry() { SnoId = -1; Type = GemType.Amethyst; Quality = GemQualityTypes.Unknown; }
public ItemGemEntry(int snoid, PluginGemType type, GemQualityTypes quality) { SnoId = snoid; Type = type; Quality = quality; }
public ItemGemEntry() { SnoId = -1; Type = PluginGemType.Amethyst; Quality = GemQualityTypes.Unknown; }
internal static bool PickupItemValidation(CacheItem item) { //if (FunkyTownRunPlugin.ItemRulesEval != null) //{ // Interpreter.InterpreterAction action = FunkyTownRunPlugin.ItemRulesEval.checkPickUpItem(item.DynamicID.Value, item.BalanceData.thisItemType, item.ref_DiaItem.Name, item.InternalName, item.Itemquality.Value, item.BalanceData.iThisItemLevel, item.BalanceData.bThisOneHand, item.BalanceData.bThisTwoHand, item.BalanceID.Value, ItemEvaluationType.PickUp); // if (action== Interpreter.InterpreterAction.PICKUP) // { // return true; // } //} // Calculate giles item types and base types etc. PluginItemTypes thisPluginItemType = PluginItemTypes.Unknown; PluginBaseItemTypes thisGilesBaseType = PluginBaseItemTypes.Unknown; if (item.BalanceID.HasValue && item.BalanceData != null) { thisPluginItemType = item.BalanceData.PluginType; thisGilesBaseType = item.BalanceData.PluginBase; } else { thisPluginItemType = ItemFunc.DetermineItemType(item.InternalName, ItemType.Unknown, FollowerType.None, item.SNOID); thisGilesBaseType = ItemFunc.DetermineBaseType(thisPluginItemType); } if (thisPluginItemType == PluginItemTypes.MiscBook) { return(FunkyBaseExtension.Settings.Loot.ExpBooks); } if (thisPluginItemType == PluginItemTypes.RamaladnisGift) { return(true); } // Error logging for DemonBuddy item mis-reading ItemType gilesDBItemType = ItemFunc.PluginItemTypeToDBItemType(thisPluginItemType); if (item.BalanceID.HasValue && item.BalanceData != null && gilesDBItemType != item.BalanceData.Type) { Logger.DBLog.InfoFormat("GSError: Item type mis-match detected: Item Internal=" + item.InternalName + ". DemonBuddy ItemType thinks item type is=" + item.BalanceData.Type + ". Giles thinks item type is=" + gilesDBItemType + ". [pickup]", true); } switch (thisGilesBaseType) { case PluginBaseItemTypes.WeaponTwoHand: case PluginBaseItemTypes.WeaponOneHand: case PluginBaseItemTypes.WeaponRange: case PluginBaseItemTypes.Armor: case PluginBaseItemTypes.Offhand: case PluginBaseItemTypes.Jewelry: case PluginBaseItemTypes.FollowerItem: if (FunkyBaseExtension.Settings.Loot.PickupWhiteItems == 1 && FunkyBaseExtension.Settings.Loot.PickupMagicItems == 1 && FunkyBaseExtension.Settings.Loot.PickupRareItems == 1 && FunkyBaseExtension.Settings.Loot.PickupLegendaryItems == 1) { return(true); } if (item.Itemquality.HasValue && item.BalanceID.HasValue && item.BalanceData != null) { switch (item.Itemquality.Value) { case ItemQuality.Inferior: case ItemQuality.Normal: case ItemQuality.Superior: return(FunkyBaseExtension.Settings.Loot.PickupWhiteItems > 0 && (item.BalanceData.ItemLevel >= FunkyBaseExtension.Settings.Loot.PickupWhiteItems)); case ItemQuality.Magic1: case ItemQuality.Magic2: case ItemQuality.Magic3: return(FunkyBaseExtension.Settings.Loot.PickupMagicItems > 0 && (item.BalanceData.ItemLevel >= FunkyBaseExtension.Settings.Loot.PickupMagicItems)); case ItemQuality.Rare4: case ItemQuality.Rare5: case ItemQuality.Rare6: return(FunkyBaseExtension.Settings.Loot.PickupRareItems > 0 && (item.BalanceData.ItemLevel >= FunkyBaseExtension.Settings.Loot.PickupRareItems)); case ItemQuality.Legendary: return(FunkyBaseExtension.Settings.Loot.PickupLegendaryItems > 0 && (item.BalanceData.ItemLevel >= FunkyBaseExtension.Settings.Loot.PickupLegendaryItems)); } } return(false); case PluginBaseItemTypes.Gem: if (thisPluginItemType == PluginItemTypes.LegendaryGem) { return(true); } GemQualityTypes qualityType = ItemFunc.ReturnGemQualityType(item.SNOID, item.BalanceData != null?item.BalanceData.ItemLevel:-1); int qualityLevel = (int)qualityType; if (qualityLevel < FunkyBaseExtension.Settings.Loot.MinimumGemItemLevel || (thisPluginItemType == PluginItemTypes.Ruby && !FunkyBaseExtension.Settings.Loot.PickupGems[0]) || (thisPluginItemType == PluginItemTypes.Emerald && !FunkyBaseExtension.Settings.Loot.PickupGems[1]) || (thisPluginItemType == PluginItemTypes.Amethyst && !FunkyBaseExtension.Settings.Loot.PickupGems[2]) || (thisPluginItemType == PluginItemTypes.Topaz && !FunkyBaseExtension.Settings.Loot.PickupGems[3]) || (thisPluginItemType == PluginItemTypes.Diamond && !FunkyBaseExtension.Settings.Loot.PickupGemDiamond)) { return(false); } break; case PluginBaseItemTypes.Misc: // Note; Infernal keys are misc, so should be picked up here - we aren't filtering them out, so should default to true at the end of this function if (thisPluginItemType == PluginItemTypes.CraftingMaterial) { return(FunkyBaseExtension.Settings.Loot.PickupCraftMaterials); } if (thisPluginItemType == PluginItemTypes.LegendaryCraftingMaterial) { return(true); } if (thisPluginItemType == PluginItemTypes.CraftingPlan) { if (!FunkyBaseExtension.Settings.Loot.PickupCraftPlans) { return(false); } if (item.BalanceID.HasValue && item.BalanceData != null) { if (item.BalanceData.IsBlacksmithPlanSixProperties && !FunkyBaseExtension.Settings.Loot.PickupBlacksmithPlanSix) { return(false); } if (item.BalanceData.IsBlacksmithPlanFiveProperties && !FunkyBaseExtension.Settings.Loot.PickupBlacksmithPlanFive) { return(false); } if (item.BalanceData.IsBlacksmithPlanFourProperties && !FunkyBaseExtension.Settings.Loot.PickupBlacksmithPlanFour) { return(false); } if (item.BalanceData.IsBlacksmithPlanArchonSpaulders && !FunkyBaseExtension.Settings.Loot.PickupBlacksmithPlanArchonSpaulders) { return(false); } if (item.BalanceData.IsBlacksmithPlanArchonGauntlets && !FunkyBaseExtension.Settings.Loot.PickupBlacksmithPlanArchonGauntlets) { return(false); } if (item.BalanceData.IsBlacksmithPlanRazorspikes && !FunkyBaseExtension.Settings.Loot.PickupBlacksmithPlanRazorspikes) { return(false); } if (item.BalanceData.IsJewelcraftDesignAmulet && !FunkyBaseExtension.Settings.Loot.PickupJewelerDesignAmulet) { return(false); } if (item.BalanceData.IsJewelcraftDesignFlawlessStarGem && !FunkyBaseExtension.Settings.Loot.PickupJewelerDesignFlawlessStar) { return(false); } if (item.BalanceData.IsJewelcraftDesignMarquiseGem && !FunkyBaseExtension.Settings.Loot.PickupJewelerDesignMarquise) { return(false); } if (item.BalanceData.IsJewelcraftDesignPerfectStarGem && !FunkyBaseExtension.Settings.Loot.PickupJewelerDesignPerfectStar) { return(false); } if (item.BalanceData.IsJewelcraftDesignRadiantStarGem && !FunkyBaseExtension.Settings.Loot.PickupJewelerDesignRadiantStar) { return(false); } } } if (thisPluginItemType == PluginItemTypes.InfernalKey) { return(FunkyBaseExtension.Settings.Loot.PickupInfernalKeys); } if (thisPluginItemType == PluginItemTypes.KeyStone) { return(FunkyBaseExtension.Settings.Loot.PickupKeystoneFragments); } if (thisPluginItemType == PluginItemTypes.BloodShard) { return(Backpack.GetBloodShardCount() < 500); } // Potion filtering if (thisPluginItemType == PluginItemTypes.HealthPotion || thisPluginItemType == PluginItemTypes.LegendaryHealthPotion) { PotionTypes potionType = ItemFunc.ReturnPotionType(item.SNOID); if (potionType == PotionTypes.Regular) { if (FunkyBaseExtension.Settings.Loot.MaximumHealthPotions <= 0) { return(false); } var BestPotionToUse = Backpack.ReturnBestPotionToUse(); if (BestPotionToUse == null) { return(true); } var Potions = Backpack.ReturnRegularPotions(); if (Potions.Sum(potions => potions.ThisItemStackQuantity) >= FunkyBaseExtension.Settings.Loot.MaximumHealthPotions) { return(false); } } } break; case PluginBaseItemTypes.HealthGlobe: return(false); case PluginBaseItemTypes.Unknown: return(false); default: return(false); } // Switch giles base item type // Didn't cancel it, so default to true! return(true); }