using System; using System.Collections.Generic; using System.Text; using D2Data; namespace Chief { class PickIt { public static bool Evaluate(Item item, Hero hero) { #region Uniques if(item.Quality == ItemQuality.Unique) { switch (item.UniqueItem.Id) { #region Normal // helm case UniqueItemType.Tarnhelm: case UniqueItemType.UndeadCrown: case UniqueItemType.Wormskull: // armor case UniqueItemType.Twitchthroe: case UniqueItemType.VictorsSilk: // gloves case UniqueItemType.Bloodfist: case UniqueItemType.Magefist: case UniqueItemType.Frostburn: return true; case UniqueItemType.ChanceGuards: // You have to ID it first dumbass. /*if(item.UniqueItem.Param2 > 35) return true; else return false;*/ // belt case UniqueItemType.Bladebuckle: case UniqueItemType.Nightsmoke: case UniqueItemType.Goldwrap: // daggers case UniqueItemType.Gull: case UniqueItemType.IricesShard: return true; // maces (if ethereal) case UniqueItemType.Bonesob: case UniqueItemType.Steeldriver: if(item.Flags == ItemFlags.Ethereal) return true; return false; // scepters case UniqueItemType.Rusthandle: // bow case UniqueItemType.Wizendraw: // wand case UniqueItemType.UmesLament: #endregion #region Exceptional // Helm case UniqueItemType.PeasentCrown: case UniqueItemType.CrownofThieves: case UniqueItemType.Vampiregaze: // Armor case UniqueItemType.SkinoftheVipermagi: case UniqueItemType.Shaftstop: case UniqueItemType.SkulldersIre: case UniqueItemType.QueHegansWisdon: case UniqueItemType.GuardianAngel: // Shields case UniqueItemType.Visceratuant: case UniqueItemType.MosersBlessedCircle: case UniqueItemType.LidlessWall: case UniqueItemType.KerkesSanctuary: // Boots case UniqueItemType.Waterwalk: case UniqueItemType.Silkweave: case UniqueItemType.Wartraveler: case UniqueItemType.Gorerider: // Belt case UniqueItemType.StringofEars: case UniqueItemType.Gloomstrap: case UniqueItemType.Snowclash: case UniqueItemType.ThudergodsVigor: // Scepters case UniqueItemType.ZakarumsHand: case UniqueItemType.TheFetidSprinkler: case UniqueItemType.HandofBlessedLight: // Stave case UniqueItemType.Ribcracker: // Sword case UniqueItemType.Bloodletter: // Wand case UniqueItemType.ArmofKingLeoric: case UniqueItemType.BlackhandKey: case UniqueItemType.CarinShard: case UniqueItemType.SuicideBranch: return true; #endregion #region Elite // Helms case UniqueItemType.HarlequinCrest: case UniqueItemType.NightwingsVeil: case UniqueItemType.AndarielsVisage: case UniqueItemType.CrownofAges: case UniqueItemType.Giantskull: // Armor case UniqueItemType.OrmusRobes: case UniqueItemType.ArkainesValor: case UniqueItemType.Leviathan: case UniqueItemType.TemplarsMight: case UniqueItemType.TyraelsMight: // Shields case UniqueItemType.BlackoakShield: case UniqueItemType.Stormshield: case UniqueItemType.MedusasGaze: case UniqueItemType.HeadhuntersGlory: case UniqueItemType.SpiritWard: // Gloves case UniqueItemType.DraculsGrasp: case UniqueItemType.Souldrain: case UniqueItemType.Steelrend: // Boots case UniqueItemType.SandstormTrek: case UniqueItemType.Marrowwalk: case UniqueItemType.Shadowdancer: // Belts case UniqueItemType.ArachnidMesh: case UniqueItemType.NosferatusCoil: case UniqueItemType.VerdugosHeartyCord: // Axes case UniqueItemType.Runemaster: case UniqueItemType.Deathcleaver: case UniqueItemType.EtherealEdge: case UniqueItemType.ExecutionersJustice: // Bows case UniqueItemType.Eaglehorn: case UniqueItemType.Widowmaker: case UniqueItemType.Windforce: // Daggers case UniqueItemType.Wizardspike: case UniqueItemType.Fleshripper: case UniqueItemType.Ghostflame: // Javelins case UniqueItemType.DemonsArch: case UniqueItemType.Wraithflight: case UniqueItemType.GargoylesBite: // Maces case UniqueItemType.BaranarsStar: case UniqueItemType.Windhammer: case UniqueItemType.Earthshifter: // Polearms case UniqueItemType.TheReapersToll: case UniqueItemType.TombReaver: // Scepters case UniqueItemType.HeavensLight: case UniqueItemType.TheReedeemer: // Staves case UniqueItemType.OndalsWisdom: case UniqueItemType.MangSongsLesson: // Swords case UniqueItemType.TheGrandfather: case UniqueItemType.Doombringer: case UniqueItemType.Lightsabre: case UniqueItemType.Azurewrath: return true; #endregion } } #endregion #region Sets if(item.Quality == ItemQuality.Set) { switch (item.SetItem.Id) { // Angelic case SetItemType.AngelicHalo: case SetItemType.AngelicWings: // Aldur's case SetItemType.AldursAdvance: case SetItemType.AldursGauntlet: case SetItemType.AldursDeception: // Bul-Kathos' Children case SetItemType.BulKathosSacredCharge: case SetItemType.BulKathosTribalGuardian: // Griswold's Legacy case SetItemType.GriswoldsHeart: case SetItemType.GriswoldsHonor: case SetItemType.GriswoldssRedemption: case SetItemType.GriswoldsValor: // Immortal King case SetItemType.ImmortalKingsDetail: case SetItemType.ImmortalKingsForge: case SetItemType.ImmortalKingsPillar: case SetItemType.ImmortalKingsSoulCage: case SetItemType.ImmortalKingsStoneCrusher: case SetItemType.ImmortalKingsWill: // Nat's case SetItemType.NatalyasTotem: case SetItemType.NatalyasSoul: // Orphan's Call case SetItemType.GuillaumesFace: case SetItemType.WihtstansGuard: // Tals case SetItemType.TalRashasAdjudication: case SetItemType.TalRashasFireSpunCloth: case SetItemType.TalRashasHoradricCrest: case SetItemType.TalRashasHowlingWind: case SetItemType.TalRashasLidlessEye: // Trangs case SetItemType.TrangOulsGuise: case SetItemType.TrangOulsScales: case SetItemType.TrangOulsGirth: case SetItemType.TrangOulsClaws: return true; } } #endregion #region Socketables if ((item.Flags & ItemFlags.Socketed) == ItemFlags.Socketed) { switch (item.BaseItem.Type) { // TEST case ItemType.FieldPlate: if (item.GetSockets() == 2) return true; break; // Enigma case ItemType.MagePlate: case ItemType.ArchonPlate: if(item.GetSockets() == 3) return true; break; // Heart of the Oak case ItemType.Flail: case ItemType.Knout: if(item.GetSockets() == 3) return true; break; // Call to Arms case ItemType.CrystalSword: if(item.GetSockets() == 5) return true; break; // Spirit case ItemType.Monarch: if(item.GetSockets() == 4) return true; break; // Zerker weapons case ItemType.BerserkerAxe: if(item.GetSockets() >= 4) return true; break; // Zerker weapons case ItemType.PhaseBlade: if(item.GetSockets() >= 5) return true; break; // Faiths case ItemType.MatriarchalBow: case ItemType.GrandMatronBow: case ItemType.DiamondBow: case ItemType.BladeBow: if(item.GetSockets() >= 4) return true; break; // Merc weapons case ItemType.OgreAxe: case ItemType.ColossusVoulge: case ItemType.Thresher: case ItemType.CrypticAxe: case ItemType.GreatPoleaxe: case ItemType.GiantThresher: if((item.Flags&ItemFlags.Ethereal) == ItemFlags.Ethereal) if(item.GetSockets() >= 4) return true; break; } // Spirit if(item.Class == CharacterClass.Paladin) { if(item.GetSockets() == 4 && item.GetTotalResistances() > 60) return true; } } #endregion #region Jewelry switch(item.BaseItem.Type) { case ItemType.Ring: case ItemType.Amulet: if(item.Quality == ItemQuality.Rare || item.Quality == ItemQuality.Set || item.Quality == ItemQuality.Unique || item.Quality == ItemQuality.Set) return true; return false; case ItemType.Jewel: return true; } #endregion #region Runes switch (item.BaseItem.Type) { case ItemType.RalRune: case ItemType.OrtRune: case ItemType.ThulRune: case ItemType.AmnRune: case ItemType.SolRune: case ItemType.ShaelRune: case ItemType.DolRune: case ItemType.HelRune: case ItemType.LumRune: case ItemType.KoRune: case ItemType.FalRune: case ItemType.LemRune: case ItemType.PulRune: case ItemType.UmRune: case ItemType.MalRune: case ItemType.IstRune: case ItemType.GulRune: case ItemType.VexRune: case ItemType.OhmRune: case ItemType.LoRune: case ItemType.SurRune: case ItemType.BerRune: case ItemType.JahRune: case ItemType.ChamRune: case ItemType.ZodRune: return true; } #endregion #region Other switch (item.BaseItem.Type) { case ItemType.KeyOfDestruction: case ItemType.KeyOfHate: case ItemType.KeyOfTerror: return true; case ItemType.Gold: return true; case ItemType.FullRejuvenationPotion: case ItemType.RejuvenationPotion: if (!hero.IsBeltFull()) return true; return false; } #endregion return false; } } }