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