All pastes #587997 Raw Edit

Something

public text v1 · immutable
#587997 ·published 2007-06-25 09:04 UTC
rendered paste body
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;
        }
    }
}