277 lines
18 KiB
C#
277 lines
18 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Server.Items;
|
|
|
|
namespace Server.Engines.VendorSearching
|
|
{
|
|
public class SearchCriteriaCategory
|
|
{
|
|
public Category Category { get; set; }
|
|
public int PageID { get; set; }
|
|
public int Cliloc { get; set; }
|
|
public SearchCriterionEntry[] Criteria { get; set; }
|
|
|
|
public SearchCriteriaCategory(Category cat, int pid, int cliloc, SearchCriterionEntry[] criteria)
|
|
{
|
|
Category = cat;
|
|
PageID = pid;
|
|
Cliloc = cliloc;
|
|
Criteria = criteria;
|
|
}
|
|
|
|
public static SearchCriteriaCategory[] AllCategories = new SearchCriteriaCategory[]
|
|
{
|
|
new SearchCriteriaCategory(Category.PriceRange, 2, 1154512, new SearchCriterionEntry[] { /* Price Range */
|
|
}),
|
|
new SearchCriteriaCategory(Category.Equipment, 3, 1154531, new SearchCriterionEntry[] { // Equipment
|
|
new SearchCriterionEntry(Layer.Shoes, 1154602),
|
|
new SearchCriterionEntry(Layer.Pants, 1154603),
|
|
new SearchCriterionEntry(Layer.Shirt, 1154604),
|
|
new SearchCriterionEntry(Layer.Helm, 1154605),
|
|
new SearchCriterionEntry(Layer.Gloves, 1154606),
|
|
new SearchCriterionEntry(Layer.Ring, 1154607),
|
|
new SearchCriterionEntry(Layer.Talisman, 1154608),
|
|
new SearchCriterionEntry(Layer.Neck, 1154609),
|
|
new SearchCriterionEntry(Layer.Waist, 1154611),
|
|
new SearchCriterionEntry(Layer.InnerTorso, 1154612),
|
|
new SearchCriterionEntry(Layer.Bracelet, 1154613),
|
|
new SearchCriterionEntry(Layer.MiddleTorso, 1154616),
|
|
new SearchCriterionEntry(Layer.Earrings, 1154617),
|
|
new SearchCriterionEntry(Layer.Arms, 1154618),
|
|
new SearchCriterionEntry(Layer.Cloak, 1154619),
|
|
new SearchCriterionEntry(Layer.OuterTorso, 1154621),
|
|
new SearchCriterionEntry(Layer.OuterLegs, 1154622),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Combat, 4, 1154541, new SearchCriterionEntry[] { // Combat
|
|
new SearchCriterionEntry(AosAttribute.WeaponDamage, 1079760, 1060401),
|
|
new SearchCriterionEntry(AosAttribute.DefendChance, 1075620, 1060408),
|
|
new SearchCriterionEntry(AosAttribute.AttackChance, 1075616, 1060415),
|
|
new SearchCriterionEntry(AosAttribute.WeaponSpeed, 1075629, 1060486),
|
|
new SearchCriterionEntry(AosArmorAttribute.SoulCharge, 1116536, 1113630),
|
|
new SearchCriterionEntry(AosWeaponAttribute.UseBestSkill, 1079592),
|
|
new SearchCriterionEntry(AosWeaponAttribute.ReactiveParalyze, 1154660),
|
|
new SearchCriterionEntry(ExtendedWeaponAttribute.AssassinHoned, 1152206),
|
|
new SearchCriterionEntry("SearingWeapon", 1151183),
|
|
new SearchCriterionEntry(AosWeaponAttribute.BloodDrinker, 1113591),
|
|
new SearchCriterionEntry(AosWeaponAttribute.BattleLust, 1113710),
|
|
new SearchCriterionEntry(AosAttribute.BalancedWeapon, 1072792),
|
|
new SearchCriterionEntry(ExtendedWeaponAttribute.Focus, 1150018),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.EaterFire, 1154662, 1113593),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.EaterCold, 1154663, 1113594),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.EaterPoison, 1154664, 1113595),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.EaterEnergy, 1154665, 1113596),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.EaterKinetic, 1154666, 1113597),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.EaterDamage, 1154667, 1113598),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Casting, 5, 1154538, new SearchCriterionEntry[] { // Casting
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.ResonanceFire, 1154655, 1113691),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.ResonanceCold, 1154656, 1113692),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.ResonancePoison, 1154657, 1113693),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.ResonanceEnergy, 1154658, 1113692),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.ResonanceKinetic, 1154659, 1113695),
|
|
new SearchCriterionEntry(AosAttribute.SpellDamage, 1075628, 1060483),
|
|
new SearchCriterionEntry(SAAbsorptionAttribute.CastingFocus, 1116535, 1113696),
|
|
new SearchCriterionEntry(AosAttribute.CastRecovery, 1075618, 1060412),
|
|
new SearchCriterionEntry(AosAttribute.CastSpeed, 1075617, 1060413),
|
|
new SearchCriterionEntry(AosAttribute.LowerManaCost, 1075621, 1060433),
|
|
new SearchCriterionEntry(AosAttribute.LowerRegCost, 1075625, 1060434),
|
|
new SearchCriterionEntry(AosWeaponAttribute.MageWeapon, 1079759, 1060438),
|
|
new SearchCriterionEntry(AosArmorAttribute.MageArmor, 1079758),
|
|
new SearchCriterionEntry(AosAttribute.SpellChanneling, 1079766),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Misc, 6, 1154647, new SearchCriterionEntry[] { // Miscellaneous
|
|
new SearchCriterionEntry(Misc.ExcludeFel, 1154646),
|
|
new SearchCriterionEntry(Misc.GargoyleOnly, 1154648),
|
|
new SearchCriterionEntry(Misc.NotGargoyleOnly, 1154704),
|
|
new SearchCriterionEntry(Misc.ElvesOnly, 1154650),
|
|
new SearchCriterionEntry(Misc.NotElvesOnly, 1154703),
|
|
new SearchCriterionEntry(Misc.FactionItem, 1154661),
|
|
new SearchCriterionEntry(Misc.PromotionalToken, 1154682),
|
|
new SearchCriterionEntry(AosAttribute.NightSight, 1075643),
|
|
new SearchCriterionEntry(Misc.Cursed, 1116639),
|
|
new SearchCriterionEntry(Misc.NotCursed, 1154701),
|
|
new SearchCriterionEntry(Misc.CannotRepair, 1151826),
|
|
new SearchCriterionEntry(Misc.NotCannotBeRepaired, 1154705),
|
|
new SearchCriterionEntry(Misc.Brittle, 1116209),
|
|
new SearchCriterionEntry(Misc.NotBrittle, 1154702),
|
|
new SearchCriterionEntry(Misc.Antique, 1152714),
|
|
new SearchCriterionEntry(Misc.NotAntique, 1156479),
|
|
new SearchCriterionEntry(AosAttribute.EnhancePotions, 1075624, 1060411),
|
|
new SearchCriterionEntry(AosArmorAttribute.LowerStatReq, 1079757, 1060435),
|
|
new SearchCriterionEntry(AosAttribute.Luck, 1061153, 1060436),
|
|
new SearchCriterionEntry(AosAttribute.ReflectPhysical, 1075626, 1060442),
|
|
new SearchCriterionEntry(AosArmorAttribute.SelfRepair, 1079709, 1060450),
|
|
new SearchCriterionEntry("ArtifactRarity", 1154693, 1061078),
|
|
}),
|
|
new SearchCriteriaCategory(Category.DamageType, 9, 1154535, new SearchCriterionEntry[] { // Damage Type
|
|
new SearchCriterionEntry(AosElementAttribute.Physical, 1151800, 1060403),
|
|
new SearchCriterionEntry(AosElementAttribute.Cold, 1151802, 1060404),
|
|
new SearchCriterionEntry(AosElementAttribute.Fire, 1151801, 1060405),
|
|
new SearchCriterionEntry(AosElementAttribute.Poison, 1151803, 1060406),
|
|
new SearchCriterionEntry(AosElementAttribute.Energy, 1151804, 1060407),
|
|
}),
|
|
new SearchCriteriaCategory(Category.HitSpell, 10, 1154536, new SearchCriterionEntry[] { // Hit Spell
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitDispel, 1079702, 1060417),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitFireball, 1079703, 1060420),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitHarm, 1079704, 1060421),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitCurse, 1154673, 1113712),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitLeechHits, 1079698, 1060422),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitLightning, 1079705, 1060423),
|
|
new SearchCriterionEntry("WeaponVelocity", 1080416, 1072793),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitLowerAttack, 1079699, 1060424),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitLowerDefend, 1079700, 1060425),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitMagicArrow, 1079706, 1060426),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitLeechMana, 1079701, 1060427),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitLeechStam, 1079707, 1060430),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitFatigue, 1154668, 1113700),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitManaDrain, 1154669, 1113699),
|
|
new SearchCriterionEntry(AosWeaponAttribute.SplinteringWeapon, 1154670, 1112857),
|
|
new SearchCriterionEntry(ExtendedWeaponAttribute.Bane, 1154671),
|
|
}),
|
|
new SearchCriteriaCategory(Category.HitArea, 11, 1154537, new SearchCriterionEntry[] { // Hit Area
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitColdArea, 1079693, 1060416),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitEnergyArea, 1079694, 1060418),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitFireArea, 1079695, 1060419),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitPhysicalArea, 1079696, 1060428),
|
|
new SearchCriterionEntry(AosWeaponAttribute.HitPoisonArea, 1079697, 1060429),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Resists, 12, 1154539, new SearchCriterionEntry[] { // Resists
|
|
new SearchCriterionEntry(AosElementAttribute.Cold, 1079761, 1060445),
|
|
new SearchCriterionEntry(AosElementAttribute.Energy, 1079762, 1060446),
|
|
new SearchCriterionEntry(AosElementAttribute.Fire, 1079763, 1060447),
|
|
new SearchCriterionEntry(AosElementAttribute.Physical, 1079764, 1060448),
|
|
new SearchCriterionEntry(AosElementAttribute.Poison, 1079765, 1060449),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Stats, 13, 1154540, new SearchCriterionEntry[] { // Stats
|
|
new SearchCriterionEntry(AosAttribute.BonusStr, 1079767, 1060485),
|
|
new SearchCriterionEntry(AosAttribute.BonusDex, 1079732, 1060409),
|
|
new SearchCriterionEntry(AosAttribute.BonusInt, 1079756, 1060432),
|
|
new SearchCriterionEntry(AosAttribute.BonusHits, 1079404, 1060415),
|
|
new SearchCriterionEntry(AosAttribute.BonusStam, 1079405, 1060484),
|
|
new SearchCriterionEntry(AosAttribute.BonusMana, 1079406, 1060439),
|
|
new SearchCriterionEntry(AosAttribute.RegenHits, 1075627, 1060444),
|
|
new SearchCriterionEntry(AosAttribute.RegenStam, 1079411, 1060443),
|
|
new SearchCriterionEntry(AosAttribute.RegenMana, 1079410, 1060440),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Slayer1, 15, 1154683, new SearchCriterionEntry[] { // Arachnid/Reptile Slayers
|
|
new SearchCriterionEntry(SlayerName.ReptilianDeath, 1079751),
|
|
new SearchCriterionEntry(SlayerName.DragonSlaying, 1061284),
|
|
new SearchCriterionEntry(SlayerName.LizardmanSlaughter, 1079738),
|
|
new SearchCriterionEntry(SlayerName.Ophidian, 1079740),
|
|
new SearchCriterionEntry(SlayerName.SnakesBane, 1079744),
|
|
new SearchCriterionEntry(SlayerName.ArachnidDoom, 1079747),
|
|
new SearchCriterionEntry(SlayerName.ScorpionsBane, 1079743),
|
|
new SearchCriterionEntry(SlayerName.SpidersDeath, 1079746),
|
|
new SearchCriterionEntry(SlayerName.Terathan, 1079753),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Slayer2, 16, 1154684, new SearchCriterionEntry[] { // Repond/Undead Slayers
|
|
new SearchCriterionEntry(SlayerName.Repond, 1079750),
|
|
new SearchCriterionEntry(TalismanSlayerName.Bat, 1072506),
|
|
new SearchCriterionEntry(TalismanSlayerName.Bear, 1072504),
|
|
new SearchCriterionEntry(TalismanSlayerName.Beetle, 1072508),
|
|
new SearchCriterionEntry(TalismanSlayerName.Bird, 1072509),
|
|
new SearchCriterionEntry(TalismanSlayerName.Bovine, 1072512),
|
|
new SearchCriterionEntry(TalismanSlayerName.Flame, 1072511),
|
|
new SearchCriterionEntry(TalismanSlayerName.Goblin, 1095010),
|
|
new SearchCriterionEntry(TalismanSlayerName.Ice, 1072510),
|
|
new SearchCriterionEntry(TalismanSlayerName.Mage, 1072507),
|
|
new SearchCriterionEntry(SlayerName.OgreTrashing, 1079739),
|
|
new SearchCriterionEntry(SlayerName.OrcSlaying, 1079741),
|
|
new SearchCriterionEntry(SlayerName.TrollSlaughter, 1079754),
|
|
new SearchCriterionEntry(TalismanSlayerName.Vermin, 1072505),
|
|
new SearchCriterionEntry(TalismanSlayerName.Undead, 1079752),
|
|
new SearchCriterionEntry(TalismanSlayerName.Wolf, 1075462),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Slayer3, 17, 1154685, new SearchCriterionEntry[] { // Demon/Fey/Elemental Slayers
|
|
new SearchCriterionEntry(SlayerName.Exorcism, 1079748),
|
|
new SearchCriterionEntry(SlayerName.GargoylesFoe, 1079737),
|
|
new SearchCriterionEntry(SlayerName.Fey, 1154652),
|
|
new SearchCriterionEntry(SlayerName.ElementalBan, 1079749),
|
|
new SearchCriterionEntry(SlayerName.Vacuum, 1079733),
|
|
new SearchCriterionEntry(SlayerName.BloodDrinking, 1079734),
|
|
new SearchCriterionEntry(SlayerName.EarthShatter, 1079735),
|
|
new SearchCriterionEntry(SlayerName.FlameDousing, 1079736),
|
|
new SearchCriterionEntry(SlayerName.ElementalHealth, 1079742),
|
|
new SearchCriterionEntry(SlayerName.SummerWind, 1079745),
|
|
new SearchCriterionEntry(SlayerName.WaterDissipation, 1079755),
|
|
}),
|
|
new SearchCriteriaCategory(Category.RequiredSkill, 18, 1154543, new SearchCriterionEntry[] { // Required Skill
|
|
new SearchCriterionEntry(SkillName.Swords, 1044100),
|
|
new SearchCriterionEntry(SkillName.Macing, 1044101),
|
|
new SearchCriterionEntry(SkillName.Fencing, 1044102),
|
|
new SearchCriterionEntry(SkillName.Archery, 1044091),
|
|
new SearchCriterionEntry(SkillName.Throwing, 1044117),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Skill1, 19, 1114255, new SearchCriterionEntry[] { // Skill Group 1
|
|
new SearchCriterionEntry(SkillName.Swords, 1044100),
|
|
new SearchCriterionEntry(SkillName.Fencing, 1044102),
|
|
new SearchCriterionEntry(SkillName.Macing, 1044101),
|
|
new SearchCriterionEntry(SkillName.Magery, 1044085),
|
|
new SearchCriterionEntry(SkillName.Musicianship, 1044089),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Skill2, 20, 1114256, new SearchCriterionEntry[] { // Skill Group 2
|
|
new SearchCriterionEntry(SkillName.Wrestling, 1044103),
|
|
new SearchCriterionEntry(SkillName.Tactics, 1044087),
|
|
new SearchCriterionEntry(SkillName.AnimalTaming, 1044095),
|
|
new SearchCriterionEntry(SkillName.Provocation, 1044082),
|
|
new SearchCriterionEntry(SkillName.SpiritSpeak, 1044092),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Skill3, 21, 1114257, new SearchCriterionEntry[] { // Skill Group 3
|
|
new SearchCriterionEntry(SkillName.Stealth, 1044107),
|
|
new SearchCriterionEntry(SkillName.Parry, 1044065),
|
|
new SearchCriterionEntry(SkillName.Meditation, 1044106),
|
|
new SearchCriterionEntry(SkillName.AnimalLore, 1044062),
|
|
new SearchCriterionEntry(SkillName.Discordance, 1044075),
|
|
new SearchCriterionEntry(SkillName.Focus, 1044110),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Skill4, 22, 1114258, new SearchCriterionEntry[] { // Skill Group 4
|
|
new SearchCriterionEntry(SkillName.Stealing, 1044093),
|
|
new SearchCriterionEntry(SkillName.Anatomy, 1044061),
|
|
new SearchCriterionEntry(SkillName.EvalInt, 1044076),
|
|
new SearchCriterionEntry(SkillName.Veterinary, 1044099),
|
|
new SearchCriterionEntry(SkillName.Necromancy, 1044109),
|
|
new SearchCriterionEntry(SkillName.Bushido, 1044112),
|
|
new SearchCriterionEntry(SkillName.Mysticism, 1044115),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Skill5, 23, 1114259, new SearchCriterionEntry[] { // Skill Group 5
|
|
new SearchCriterionEntry(SkillName.Healing, 1044077),
|
|
new SearchCriterionEntry(SkillName.MagicResist, 1044086),
|
|
new SearchCriterionEntry(SkillName.Peacemaking, 1044069),
|
|
new SearchCriterionEntry(SkillName.Archery, 1044091),
|
|
new SearchCriterionEntry(SkillName.Chivalry, 1044111),
|
|
new SearchCriterionEntry(SkillName.Ninjitsu, 1044113),
|
|
new SearchCriterionEntry(SkillName.Throwing, 1044117),
|
|
}),
|
|
new SearchCriteriaCategory(Category.Skill6, 24, 1114260, new SearchCriterionEntry[] { // Skill Group 6
|
|
new SearchCriterionEntry(SkillName.Lumberjacking, 1044104),
|
|
new SearchCriterionEntry(SkillName.Snooping, 1044088),
|
|
new SearchCriterionEntry(SkillName.Mining, 1044105)
|
|
}),
|
|
new SearchCriteriaCategory(Category.Sort, 25, 1154695, new SearchCriterionEntry[] { /* Sort */
|
|
}),
|
|
new SearchCriteriaCategory(Category.Auction, 26, 1159353, new SearchCriterionEntry[] { /* Auction Item */
|
|
}),
|
|
};
|
|
}
|
|
|
|
public class SearchCriterionEntry
|
|
{
|
|
public object Object { get; set; }
|
|
public int Cliloc { get; set; }
|
|
public int PropCliloc { get; set; }
|
|
|
|
public SearchCriterionEntry(object obj, int cliloc)
|
|
: this(obj, cliloc, 0)
|
|
{
|
|
}
|
|
|
|
public SearchCriterionEntry(object obj, int cliloc, int pcliloc)
|
|
{
|
|
Object = obj;
|
|
Cliloc = cliloc;
|
|
PropCliloc = pcliloc;
|
|
}
|
|
}
|
|
}
|