Files
abysmal-isle/Scripts/Services/Vendor Searching/VendorSearchCriteria.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

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