database

package
v0.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2024 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AtlasLootDifficulties = map[string]proto.DungeonDifficulty{
	"NORMAL_DIFF": proto.DungeonDifficulty_DifficultyNormal,
}
View Source
var DenyListNameRegexes = []*regexp.Regexp{
	regexp.MustCompile(`30 Epic`),
	regexp.MustCompile(`63 Blue`),
	regexp.MustCompile(`63 Green`),
	regexp.MustCompile(`66 Epic`),
	regexp.MustCompile(`90 Epic`),
	regexp.MustCompile(`90 Green`),
	regexp.MustCompile(`Boots 1`),
	regexp.MustCompile(`Boots 2`),
	regexp.MustCompile(`Boots 3`),
	regexp.MustCompile(`Bracer 1`),
	regexp.MustCompile(`Bracer 2`),
	regexp.MustCompile(`Bracer 3`),
	regexp.MustCompile(`DB\d`),
	regexp.MustCompile(`DEPRECATED`),
	regexp.MustCompile(`Deprecated: Keanna`),
	regexp.MustCompile(`Indalamar`),
	regexp.MustCompile(`Monster -`),
	regexp.MustCompile(`NEW`),
	regexp.MustCompile(`PH`),
	regexp.MustCompile(`QR XXXX`),
	regexp.MustCompile(`TEST`),
	regexp.MustCompile(`Test`),
	regexp.MustCompile(`zOLD`),
}

If any of these match the item name, don't include it.

View Source
var EnchantOverrides = []*proto.UIEnchant{

	{EffectId: 15, ItemId: 2304, SpellId: 2831, Name: "Light Armor Kit", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.BonusArmor: 8}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest, ExtraTypes: []proto.ItemType{proto.ItemType_ItemTypeLegs, proto.ItemType_ItemTypeHands, proto.ItemType_ItemTypeFeet}, EnchantType: proto.EnchantType_EnchantTypeKit},
	{EffectId: 16, ItemId: 2313, SpellId: 2832, Name: "Medium Armor Kit", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.BonusArmor: 16}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest, ExtraTypes: []proto.ItemType{proto.ItemType_ItemTypeLegs, proto.ItemType_ItemTypeHands, proto.ItemType_ItemTypeFeet}, EnchantType: proto.EnchantType_EnchantTypeKit},
	{EffectId: 17, ItemId: 4265, SpellId: 2833, Name: "Heavy Armor Kit", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.BonusArmor: 24}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest, ExtraTypes: []proto.ItemType{proto.ItemType_ItemTypeLegs, proto.ItemType_ItemTypeHands, proto.ItemType_ItemTypeFeet}, EnchantType: proto.EnchantType_EnchantTypeKit},
	{EffectId: 18, ItemId: 8173, SpellId: 10344, Name: "Thick Armor Kit", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.BonusArmor: 32}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest, ExtraTypes: []proto.ItemType{proto.ItemType_ItemTypeLegs, proto.ItemType_ItemTypeHands, proto.ItemType_ItemTypeFeet}, EnchantType: proto.EnchantType_EnchantTypeKit},
	{EffectId: 1843, ItemId: 15564, SpellId: 19057, Name: "Rugged Armor Kit", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.BonusArmor: 40}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest, ExtraTypes: []proto.ItemType{proto.ItemType_ItemTypeLegs, proto.ItemType_ItemTypeHands, proto.ItemType_ItemTypeFeet}, EnchantType: proto.EnchantType_EnchantTypeKit},

	{EffectId: 2, SpellId: 7454, Name: "Enchant Cloak - Minor Resistance", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.ArcaneResistance: 1, stats.FrostResistance: 1, stats.FireResistance: 1, stats.NatureResistance: 1, stats.ShadowResistance: 1}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},
	{EffectId: 783, SpellId: 7771, Name: "Enchant Cloak - Minor Protection", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Armor: 10}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},
	{EffectId: 247, SpellId: 13419, Name: "Enchant Cloak - Minor Agility", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Agility: 1}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},
	{EffectId: 744, SpellId: 13421, Name: "Enchant Cloak - Lesser Protection", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Armor: 20}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},
	{EffectId: 256, SpellId: 7861, Name: "Enchant Cloak - Lesser Fire Resistance", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.FireResistance: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},
	{EffectId: 804, SpellId: 13522, Name: "Enchant Cloak - Lesser Shadow Resistance", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.ShadowResistance: 10}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},
	{EffectId: 848, SpellId: 13635, Name: "Enchant Cloak - Defense", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Armor: 30}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},
	{EffectId: 2463, SpellId: 13657, Name: "Enchant Cloak - Fire Resistance", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.FireResistance: 7}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},
	{EffectId: 884, SpellId: 13746, Name: "Enchant Cloak - Greater Defense", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Armor: 50}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},
	{EffectId: 903, SpellId: 13794, Name: "Enchant Cloak - Resistance", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.ArcaneResistance: 3, stats.FireResistance: 3, stats.FrostResistance: 3, stats.NatureResistance: 3, stats.ShadowResistance: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},
	{EffectId: 849, SpellId: 13882, Name: "Enchant Cloak - Lesser Agility", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Agility: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeBack},

	{EffectId: 41, SpellId: 7420, Name: "Enchant Chest - Minor Health", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Health: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 24, SpellId: 7443, Name: "Enchant Chest - Minor Mana", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Mana: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 44, SpellId: 7426, Name: "Enchant Chest - Minor Absorption", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 242, SpellId: 7748, Name: "Enchant Chest - Lesser Health", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Health: 15}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 246, SpellId: 7776, Name: "Enchant Chest - Lesser Mana", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Mana: 20}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 254, SpellId: 7857, Name: "Enchant Chest - Health", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Health: 25}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 63, SpellId: 13538, Name: "Enchant Chest - Lesser Absorption", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 843, SpellId: 13607, Name: "Enchant Chest - Mana", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Mana: 30}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 847, SpellId: 13626, Name: "Enchant Chest - Minor Stats", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Stamina: 1, stats.Agility: 1, stats.Strength: 1, stats.Intellect: 1, stats.Spirit: 1}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 850, SpellId: 13640, Name: "Enchant Chest - Greater Health", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Health: 35}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 857, SpellId: 13663, Name: "Enchant Chest - Greater Mana", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Mana: 50}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 7223, SpellId: 435903, Name: "Enchant Chest - Retricutioner", Quality: proto.ItemQuality_ItemQualityEpic, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 866, SpellId: 13700, Name: "Enchant Chest - Lesser Stats", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Stamina: 2, stats.Agility: 2, stats.Strength: 2, stats.Intellect: 2, stats.Spirit: 2}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},
	{EffectId: 908, SpellId: 13858, Name: "Enchant Chest - Superior Health", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Health: 50}.ToFloatArray(), Type: proto.ItemType_ItemTypeChest},

	{EffectId: 66, SpellId: 7457, Name: "Enchant Bracer - Minor Stamina", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Stamina: 1}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 243, SpellId: 7766, Name: "Enchant Bracer - Minor Spirit", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Spirit: 1}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 41, SpellId: 7418, Name: "Enchant Bracer - Minor Health", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Health: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 924, SpellId: 7428, Name: "Enchant Bracer - Minor Deflect", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Defense: 1}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 247, SpellId: 7779, Name: "Enchant Bracer - Minor Agility", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Agility: 1}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 248, SpellId: 7782, Name: "Enchant Bracer - Minor Strength", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Strength: 1}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 255, SpellId: 7859, Name: "Enchant Bracer - Lesser Spirit", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Spirit: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 724, SpellId: 13501, Name: "Enchant Bracer - Lesser Stamina", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Stamina: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 823, SpellId: 13536, Name: "Enchant Bracer - Lesser Strength", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Strength: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 723, SpellId: 13622, Name: "Enchant Bracer - Lesser Intellect", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Intellect: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 851, SpellId: 13642, Name: "Enchant Bracer - Spirit", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Spirit: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 925, SpellId: 13646, Name: "Enchant Bracer - Lesser Deflection", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Defense: 2}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 852, SpellId: 13648, Name: "Enchant Bracer - Stamina", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Stamina: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 856, SpellId: 13661, Name: "Enchant Bracer - Strength", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Strength: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 905, SpellId: 13822, Name: "Enchant Bracer - Intellect", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Intellect: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},
	{EffectId: 907, SpellId: 13846, Name: "Enchant Bracer - Greater Spirit", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Spirit: 7}.ToFloatArray(), Type: proto.ItemType_ItemTypeWrist},

	{EffectId: 846, SpellId: 13620, Name: "Enchant Gloves - Fishing", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeHands},
	{EffectId: 845, SpellId: 13617, Name: "Enchant Gloves - Herbalism", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeHands},
	{EffectId: 844, SpellId: 13612, Name: "Enchant Gloves - Mining", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeHands},
	{EffectId: 865, SpellId: 13698, Name: "Enchant Gloves - Skinning", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeHands},
	{EffectId: 904, SpellId: 13815, Name: "Enchant Gloves - Agility", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Agility: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeHands},
	{EffectId: 906, SpellId: 13841, Name: "Enchant Gloves - Advanced Mining", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeHands},
	{EffectId: 909, SpellId: 13868, Name: "Enchant Gloves - Advanced Herbalism", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeHands},
	{EffectId: 856, SpellId: 13887, Name: "Enchant Gloves - Strength", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Strength: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeHands},

	{EffectId: 247, SpellId: 7867, Name: "Enchant Boots - Minor Agility", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Agility: 1}.ToFloatArray(), Type: proto.ItemType_ItemTypeFeet},
	{EffectId: 66, SpellId: 7863, Name: "Enchant Boots - Minor Stamina", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Stamina: 1}.ToFloatArray(), Type: proto.ItemType_ItemTypeFeet},
	{EffectId: 849, SpellId: 13637, Name: "Enchant Boots - Lesser Agility", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Agility: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeFeet},
	{EffectId: 724, SpellId: 13644, Name: "Enchant Boots - Lesser Stamina", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Stamina: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeFeet},
	{EffectId: 255, SpellId: 13687, Name: "Enchant Boots - Lesser Spirit", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Spirit: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeFeet},
	{EffectId: 852, SpellId: 13836, Name: "Enchant Boots - Stamina", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Stamina: 5}.ToFloatArray(), Type: proto.ItemType_ItemTypeFeet},
	{EffectId: 911, SpellId: 13890, Name: "Enchant Boots - Minor Speed", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeFeet},

	{EffectId: 249, SpellId: 7786, Name: "Enchant Weapon - Minor Beastslayer", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon},
	{EffectId: 250, SpellId: 7788, Name: "Enchant Weapon - Minor Striking", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon},
	{EffectId: 241, SpellId: 13503, Name: "Enchant Weapon - Lesser Striking", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon},
	{EffectId: 853, SpellId: 13653, Name: "Enchant Weapon - Lesser Beastslayer", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon},
	{EffectId: 854, SpellId: 13655, Name: "Enchant Weapon - Lesser Elemental Slayer", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon},
	{EffectId: 2443, SpellId: 21931, Name: "Enchant Weapon - Winter's Might", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.FrostPower: 7}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon},
	{EffectId: 943, SpellId: 13693, Name: "Enchant Weapon - Striking", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon},
	{EffectId: 7210, SpellId: 435481, Name: "Enchant Weapon - Dismantle", Quality: proto.ItemQuality_ItemQualityEpic, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon},

	{EffectId: 36, SpellId: 6296, Name: "Fiery Blaze Enchantment", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon},

	{EffectId: 723, SpellId: 7793, Name: "Enchant 2H Weapon - Lesser Intellect", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.Intellect: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon, EnchantType: proto.EnchantType_EnchantTypeTwoHand},
	{EffectId: 241, SpellId: 7745, Name: "Enchant 2H Weapon - Minor Impact", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon, EnchantType: proto.EnchantType_EnchantTypeTwoHand},
	{EffectId: 255, SpellId: 13380, Name: "Enchant 2H Weapon - Lesser Spirit", Quality: proto.ItemQuality_ItemQualityUncommon, Stats: stats.Stats{stats.Spirit: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon, EnchantType: proto.EnchantType_EnchantTypeTwoHand},
	{EffectId: 943, SpellId: 13529, Name: "Enchant 2H Weapon - Lesser Impact", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon, EnchantType: proto.EnchantType_EnchantTypeTwoHand},
	{EffectId: 1897, SpellId: 13695, Name: "Enchant 2H Weapon - Impact", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon, EnchantType: proto.EnchantType_EnchantTypeTwoHand},

	{EffectId: 34, SpellId: 7218, Name: "Iron Counterweight", Quality: proto.ItemQuality_ItemQualityCommon, Stats: stats.Stats{stats.MeleeHaste: 3}.ToFloatArray(), Type: proto.ItemType_ItemTypeWeapon, EnchantType: proto.EnchantType_EnchantTypeTwoHand},

	{EffectId: 30, ItemId: 4405, SpellId: 3974, Name: "Crude Scope", Quality: proto.ItemQuality_ItemQualityRare, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeRanged},
	{EffectId: 32, ItemId: 4406, SpellId: 3975, Name: "Standard Scope", Quality: proto.ItemQuality_ItemQualityRare, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeRanged},
	{EffectId: 33, ItemId: 4407, SpellId: 3976, Name: "Accurate Scope", Quality: proto.ItemQuality_ItemQualityRare, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeRanged},
	{EffectId: 663, ItemId: 10546, SpellId: 12459, Name: "Deadly Scope", Quality: proto.ItemQuality_ItemQualityRare, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeRanged},
	{EffectId: 664, ItemId: 10548, SpellId: 12460, Name: "Sniper Scope", Quality: proto.ItemQuality_ItemQualityRare, Stats: stats.Stats{}.ToFloatArray(), Type: proto.ItemType_ItemTypeRanged},
}
View Source
var ExtraItemIcons = []int32{

	12662,

	13180,
	11566,
	8956,
	10646,
	18641,
	15993,
	16040,

	13928,
	20452,
	13931,
	18254,
	21023,
	13813,
	13810,

	13510,
	13511,
	13512,
	13513,

	20079,

	8412,
	8423,
	8424,
	8411,

	13452,
	9187,

	20007,
	13445,
	20004,
	9088,

	12451,
	9206,

	12460,
	12820,

	5206,

	13454,
	9264,
	21546,
	17708,

	11564,

	18284,
	18269,
	21151,

	13444,

	7676,

	20748,
	20749,
	12404,
	18262,
}

Item icons to include in the DB, so they don't need to be separately loaded in the UI.

View Source
var ItemAllowList = map[int32]struct{}{
	11815: {},
	12590: {},
	15808: {},
	18843: {},
	18844: {},
	18847: {},
	18848: {},
	19019: {},
	19808: {},
	20837: {},
	20966: {},
	21625: {},
	21685: {},
	24114: {},
	28572: {},
	28830: {},
	29383: {},
	29387: {},
	29994: {},
	29996: {},
	30032: {},
	30627: {},
	30720: {},
	31193: {},
	32387: {},
	32658: {},
	33135: {},
	33140: {},
	33143: {},
	33144: {},
	33504: {},
	33506: {},
	33507: {},
	33508: {},
	33510: {},
	33829: {},
	33831: {},
	34472: {},
	34473: {},
	37032: {},
	37574: {},
	38072: {},
	38287: {},
	38289: {},
	39208: {},
	41752: {},
	6360:  {},
	8345:  {},
	9449:  {},

	211848: {},
	211845: {},
	215111: {},
	215114: {},
}

Keep these sorted by item ID.

View Source
var ItemDenyList = map[int32]struct{}{
	9653:   {},
	12104:  {},
	12805:  {},
	17782:  {},
	17783:  {},
	17802:  {},
	20522:  {},
	215116: {},
	33350:  {},
	34576:  {},
	34577:  {},
	34578:  {},
	34579:  {},
	34580:  {},
}

Keep these sorted by item ID.

View Source
var ItemOverrides = []*proto.UIItem{

	{Id: 211848, Name: "Blackfathom Mana Oil", Icon: "inv_potion_99", Stats: stats.Stats{stats.MP5: 12, stats.SpellHit: 2}.ToFloatArray()},
	{Id: 211845, Name: "Blackfathom Sharpening Stone", Icon: "inv_misc_rune_04", Stats: stats.Stats{stats.MeleeHit: 2}.ToFloatArray()},

	{Id: 10019, Sources: []*proto.UIItemSource{{
		Source: &proto.UIItemSource_Crafted{
			Crafted: &proto.CraftedSource{
				Profession: proto.Profession_Tailoring, SpellId: 3759,
			},
		},
	}}},

	{Id: 217245, Sources: []*proto.UIItemSource{{Source: &proto.UIItemSource_Crafted{Crafted: &proto.CraftedSource{Profession: proto.Profession_Tailoring, SpellId: 439085}}}}},

	{Id: 217246, Sources: []*proto.UIItemSource{{Source: &proto.UIItemSource_Crafted{Crafted: &proto.CraftedSource{Profession: proto.Profession_Tailoring, SpellId: 439086}}}}},

	{Id: 217257, Sources: []*proto.UIItemSource{{Source: &proto.UIItemSource_Crafted{Crafted: &proto.CraftedSource{Profession: proto.Profession_Tailoring, SpellId: 439102}}}}},

	{Id: 217259, Sources: []*proto.UIItemSource{{Source: &proto.UIItemSource_Crafted{Crafted: &proto.CraftedSource{Profession: proto.Profession_Leatherworking, SpellId: 439105}}}}},

	{Id: 217261, Sources: []*proto.UIItemSource{{Source: &proto.UIItemSource_Crafted{Crafted: &proto.CraftedSource{Profession: proto.Profession_Leatherworking, SpellId: 439108}}}}},

	{Id: 217268, Sources: []*proto.UIItemSource{{Source: &proto.UIItemSource_Crafted{Crafted: &proto.CraftedSource{Profession: proto.Profession_Leatherworking, SpellId: 439116}}}}},

	{Id: 217270, Sources: []*proto.UIItemSource{{Source: &proto.UIItemSource_Crafted{Crafted: &proto.CraftedSource{Profession: proto.Profession_Leatherworking, SpellId: 439118}}}}},

	{Id: 217277, Sources: []*proto.UIItemSource{{Source: &proto.UIItemSource_Crafted{Crafted: &proto.CraftedSource{Profession: proto.Profession_Blacksmithing, SpellId: 439124}}}}},

	{Id: 217279, Sources: []*proto.UIItemSource{{Source: &proto.UIItemSource_Crafted{Crafted: &proto.CraftedSource{Profession: proto.Profession_Blacksmithing, SpellId: 439126}}}}},

	{Id: 217285, Sources: []*proto.UIItemSource{{Source: &proto.UIItemSource_Crafted{Crafted: &proto.CraftedSource{Profession: proto.Profession_Blacksmithing, SpellId: 439132}}}}},
}
View Source
var OtherItemIdsToFetch = []string{}
View Source
var RuneOverrides = []*proto.UIRune{

	{Id: 399985, Name: "Engrave Gloves - Shadowstrike", Icon: "ability_rogue_envelopingshadows", Type: proto.ItemType_ItemTypeHands, Class: proto.Class_ClassRogue, RequiresLevel: 1},
	{Id: 400029, Name: "Engrave Belt - Shadowstep", Icon: "ability_rogue_shadowstep", Type: proto.ItemType_ItemTypeWaist, Class: proto.Class_ClassRogue, RequiresLevel: 30},
}

Overrides for runes as needed Regen db with "go run ./tools/database/gen_db -outDir=assets -gen=db" And ensure db files are copied from assets/db into dist/sod/database

View Source
var SharedSpellsIcons = []int32{}/* 132 elements not displayed */

Raid buffs / debuffs

Functions

func GetBestRegexIntValue

func GetBestRegexIntValue(srcStr string, patterns []*regexp.Regexp, matchIdx int) int

func GetRegexIntValue

func GetRegexIntValue(srcStr string, pattern *regexp.Regexp, matchIdx int) int

func GetRegexStringValue

func GetRegexStringValue(srcStr string, pattern *regexp.Regexp, matchIdx int) string

func ParseItemFactionRestrictionsFromWagoDB

func ParseItemFactionRestrictionsFromWagoDB(dbContents string) map[int32]proto.UIItem_FactionRestriction

Types

type BlizzardAuthResponse

type BlizzardAuthResponse struct {
	AccessToken string `json:"access_token"`
}

type BlizzardItemResponse

type BlizzardItemResponse struct {
	ID   int    `json:"id"`
	Name string `json:"name"`

	Quality struct {
		Type string `json:"type"`
	} `json:"quality"`

	ItemClass struct {
		Id int `json:"id"`
	} `json:"item_class"`

	ItemSubclass struct {
		Id int `json:"id"`
	} `json:"item_subclass"`

	InventoryType struct {
		Type string `json:"type"`
	} `json:"inventory_type"`

	PreviewItem struct {
		Armor struct {
			Value int `json:"value"`
		} `json:"armor"`

		Stats []struct {
			Type struct {
				Type string `json:"type"`
			} `json:"type"`
			Value int `json:"value"`
		} `json:"stats"`
	} `json:"preview_item"`
}

There are more fields, these are just the ones we care about

func (BlizzardItemResponse) GetStatValue

func (item BlizzardItemResponse) GetStatValue(statType string) int

type EnchantDBKey

type EnchantDBKey struct {
	EffectID int32
	ItemID   int32
	SpellID  int32
}

func EnchantToDBKey

func EnchantToDBKey(enchant *proto.UIEnchant) EnchantDBKey

type ItemResponse

type ItemResponse interface {
	GetName() string
	GetQuality() int
	GetIcon() string
	TooltipWithoutSetBonus() string
	GetTooltipRegexString(pattern *regexp.Regexp, matchIdx int) string
	GetTooltipRegexValue(pattern *regexp.Regexp, matchIdx int) int
	GetIntValue(pattern *regexp.Regexp) int
	GetStats() Stats
	GetWeaponSkills() []float64
	GetClassAllowlist() []proto.Class
	IsEquippable() bool
	GetItemLevel() int
	GetRequiresLevel() int
	GetRequiredClass() proto.Class
	GetRequiredItemSlot() proto.ItemSlot
	GetSpellRank() int
	GetPhase() int
	GetUnique() bool
	GetItemType() proto.ItemType
	GetArmorType() proto.ArmorType
	GetWeaponType() proto.WeaponType
	GetHandType() proto.HandType
	GetRangedWeaponType() proto.RangedWeaponType
	GetWeaponDamage() (float64, float64)
	GetWeaponSpeed() float64
	GetItemSetName() string
	IsHeroic() bool
	GetRequiredProfession() proto.Profession
}

type Stats

type Stats [46]float64

type TooltipManager

type TooltipManager struct {
	FilePath   string
	UrlPattern string
}

Generic class for fetching tooltip info from the web.

func (*TooltipManager) Fetch

func (tm *TooltipManager) Fetch(minId, maxId int32, otherIds []string)

func (*TooltipManager) FetchFromWeb

func (tm *TooltipManager) FetchFromWeb(idsToFetch []string) map[string]string

func (*TooltipManager) Read

func (tm *TooltipManager) Read() map[int32]string

type WeaponSkills

type WeaponSkills [15]float64

type WowDatabase

type WowDatabase struct {
	Items          map[int32]*proto.UIItem
	RandomSuffixes map[int32]*proto.ItemRandomSuffix
	Enchants       map[EnchantDBKey]*proto.UIEnchant
	Runes          map[int32]*proto.UIRune

	Zones map[int32]*proto.UIZone
	Npcs  map[int32]*proto.UINPC

	ItemIcons  map[int32]*proto.IconData
	SpellIcons map[int32]*proto.IconData

	Encounters []*proto.PresetEncounter
}

func NewWowDatabase

func NewWowDatabase() *WowDatabase

func ReadAtlasLootData

func ReadAtlasLootData() *WowDatabase

func ReadDatabaseFromJson

func ReadDatabaseFromJson(jsonStr string) *WowDatabase

func (*WowDatabase) AddItemIcon

func (db *WowDatabase) AddItemIcon(id int32, tooltips map[int32]WowheadItemResponse)

func (*WowDatabase) AddRune

func (db *WowDatabase) AddRune(id int32, tooltip WowheadItemResponse)

func (*WowDatabase) AddSpellIcon

func (db *WowDatabase) AddSpellIcon(id int32, tooltips map[int32]WowheadItemResponse)

func (*WowDatabase) Clone

func (db *WowDatabase) Clone() *WowDatabase

func (*WowDatabase) MergeEnchant

func (db *WowDatabase) MergeEnchant(src *proto.UIEnchant)

func (*WowDatabase) MergeEnchants

func (db *WowDatabase) MergeEnchants(arr []*proto.UIEnchant)

func (*WowDatabase) MergeItem

func (db *WowDatabase) MergeItem(src *proto.UIItem)

func (*WowDatabase) MergeItems

func (db *WowDatabase) MergeItems(arr []*proto.UIItem)

func (*WowDatabase) MergeNpc

func (db *WowDatabase) MergeNpc(src *proto.UINPC)

func (*WowDatabase) MergeNpcs

func (db *WowDatabase) MergeNpcs(arr []*proto.UINPC)

func (*WowDatabase) MergeRune

func (db *WowDatabase) MergeRune(src *proto.UIRune)

func (*WowDatabase) MergeRunes

func (db *WowDatabase) MergeRunes(arr []*proto.UIRune)

func (*WowDatabase) MergeZone

func (db *WowDatabase) MergeZone(src *proto.UIZone)

func (*WowDatabase) MergeZones

func (db *WowDatabase) MergeZones(arr []*proto.UIZone)

func (*WowDatabase) ToUIProto

func (db *WowDatabase) ToUIProto() *proto.UIDatabase

func (*WowDatabase) WriteBinary

func (db *WowDatabase) WriteBinary(binFilePath string)

func (*WowDatabase) WriteBinaryAndJson

func (db *WowDatabase) WriteBinaryAndJson(binFilePath, jsonFilePath string)

func (*WowDatabase) WriteJson

func (db *WowDatabase) WriteJson(jsonFilePath string)

type WowheadDatabase

type WowheadDatabase struct {
	Items          map[string]WowheadItem
	RandomSuffixes map[string]WowheadRandomSuffix
}

func ParseWowheadDB

func ParseWowheadDB(dbContents string) WowheadDatabase

type WowheadItem

type WowheadItem struct {
	ID   int32  `json:"id"`
	Name string `json:"name"`
	Icon string `json:"icon"`

	Quality       int32 `json:"quality"`
	Ilvl          int32 `json:"itemLevel"`
	Phase         int32 `json:"contentPhase"`
	RequiresLevel int32 `json:"requiredLevel"`
	RaceMask      int32 `json:"raceMask"`

	Stats               WowheadItemStats `json:"stats"`
	RandomSuffixOptions []int32          `json:"randomEnchants"`

	SourceTypes   []int32             `json:"source"` // 1 = Crafted, 2 = Dropped by, 3 = sold by zone vendor? barely used, 4 = Quest, 5 = Sold by
	SourceDetails []WowheadItemSource `json:"sourcemore"`
}

func (WowheadItem) ToProto

func (wi WowheadItem) ToProto() *proto.UIItem

type WowheadItemResponse

type WowheadItemResponse struct {
	ID      int32
	Name    string `json:"name"`
	Quality int    `json:"quality"`
	Icon    string `json:"icon"`
	Tooltip string `json:"tooltip"`
}

func NewWowheadItemResponse

func NewWowheadItemResponse(id int32, tooltip string) WowheadItemResponse

func (WowheadItemResponse) GetArmorType

func (item WowheadItemResponse) GetArmorType() proto.ArmorType

func (WowheadItemResponse) GetArmorValues

func (item WowheadItemResponse) GetArmorValues() (int, int)

func (WowheadItemResponse) GetClassAllowlist

func (item WowheadItemResponse) GetClassAllowlist() []proto.Class

func (WowheadItemResponse) GetHandType

func (item WowheadItemResponse) GetHandType() proto.HandType

func (WowheadItemResponse) GetIcon

func (item WowheadItemResponse) GetIcon() string

func (WowheadItemResponse) GetIntValue

func (item WowheadItemResponse) GetIntValue(pattern *regexp.Regexp) int

func (WowheadItemResponse) GetItemLevel

func (item WowheadItemResponse) GetItemLevel() int

func (WowheadItemResponse) GetItemSetName

func (item WowheadItemResponse) GetItemSetName() string

func (WowheadItemResponse) GetItemType

func (item WowheadItemResponse) GetItemType() proto.ItemType

func (WowheadItemResponse) GetName

func (item WowheadItemResponse) GetName() string

func (WowheadItemResponse) GetPhase

func (item WowheadItemResponse) GetPhase() int

func (WowheadItemResponse) GetQuality

func (item WowheadItemResponse) GetQuality() int

func (WowheadItemResponse) GetRangedWeaponType

func (item WowheadItemResponse) GetRangedWeaponType() proto.RangedWeaponType

func (WowheadItemResponse) GetRequiredClass

func (item WowheadItemResponse) GetRequiredClass() proto.Class

func (WowheadItemResponse) GetRequiredItemSlot

func (item WowheadItemResponse) GetRequiredItemSlot() proto.ItemType

func (WowheadItemResponse) GetRequiredProfession

func (item WowheadItemResponse) GetRequiredProfession() proto.Profession

func (WowheadItemResponse) GetRequiresLevel

func (item WowheadItemResponse) GetRequiresLevel() int

func (WowheadItemResponse) GetSpellRank

func (item WowheadItemResponse) GetSpellRank() int

func (WowheadItemResponse) GetStats

func (item WowheadItemResponse) GetStats() Stats

func (WowheadItemResponse) GetTooltipRegexString

func (item WowheadItemResponse) GetTooltipRegexString(pattern *regexp.Regexp, matchIdx int) string

func (WowheadItemResponse) GetTooltipRegexValue

func (item WowheadItemResponse) GetTooltipRegexValue(pattern *regexp.Regexp, matchIdx int) int

func (WowheadItemResponse) GetUnique

func (item WowheadItemResponse) GetUnique() bool

func (WowheadItemResponse) GetWeaponDamage

func (item WowheadItemResponse) GetWeaponDamage() (float64, float64)

Returns min/max of weapon damage

func (WowheadItemResponse) GetWeaponSkills

func (item WowheadItemResponse) GetWeaponSkills() WeaponSkills

func (WowheadItemResponse) GetWeaponSpeed

func (item WowheadItemResponse) GetWeaponSpeed() float64

func (WowheadItemResponse) GetWeaponType

func (item WowheadItemResponse) GetWeaponType() proto.WeaponType

func (WowheadItemResponse) IsEquippable

func (item WowheadItemResponse) IsEquippable() bool

func (WowheadItemResponse) IsHeroic

func (item WowheadItemResponse) IsHeroic() bool

func (WowheadItemResponse) IsPattern

func (item WowheadItemResponse) IsPattern() bool

func (WowheadItemResponse) IsRandomEnchant

func (item WowheadItemResponse) IsRandomEnchant() bool

func (WowheadItemResponse) IsScalableArmorSlot

func (item WowheadItemResponse) IsScalableArmorSlot() bool

func (WowheadItemResponse) ToItemProto

func (item WowheadItemResponse) ToItemProto() *proto.UIItem

func (WowheadItemResponse) TooltipWithoutSetBonus

func (item WowheadItemResponse) TooltipWithoutSetBonus() string

type WowheadItemSource

type WowheadItemSource struct {
	C        int32  `json:"c"`
	Name     string `json:"n"`    // Name of crafting spell
	Icon     string `json:"icon"` // Icon corresponding to the named entity
	EntityID int32  `json:"ti"`   // Crafting Spell ID / NPC ID / ?? / Quest ID
	ZoneID   int32  `json:"z"`    // Only for drop / sold by sources
}

type WowheadItemStats

type WowheadItemStats struct {
	Armor int32 `json:"armor"`
}

type WowheadRandomSuffix

type WowheadRandomSuffix struct {
	ID    int32                    `json:"id"`
	Name  string                   `json:"name"`
	Stats WowheadRandomSuffixStats `json:"stats"`
}

func (WowheadRandomSuffix) ToProto

type WowheadRandomSuffixStats

type WowheadRandomSuffixStats struct {
	Armor             int32 `json:"armor"`
	Strength          int32 `json:"str"`
	Agility           int32 `json:"agi"`
	Stamina           int32 `json:"sta"`
	Intellect         int32 `json:"int"`
	Spirit            int32 `json:"spi"`
	SpellPower        int32 `json:"spldmg"`
	ArcanePower       int32 `json:"arcsplpwr"`
	FirePower         int32 `json:"firsplpwr"`
	FrostPower        int32 `json:"frosplpwr"`
	HolyPower         int32 `json:"holsplpwr"`
	NaturePower       int32 `json:"natsplpwr"`
	ShadowPower       int32 `json:"shasplpwr"`
	MeleeCrit         int32 `json:"mlecritstrkpct"`
	MP5               int32 `json:"manargn"`
	AttackPower       int32 `json:"mleatkpwr"`
	RangedAttackPower int32 `json:"rgdatkpwr"`
	Defense           int32 `json:"def"`
	Block             int32 `json:"blockpct"`
	Dodge             int32 `json:"dodgepct"`
	ArcaneResistance  int32 `json:"arcres"`
	FireResistance    int32 `json:"firres"`
	FrostResistance   int32 `json:"frores"`
	NatureResistance  int32 `json:"natres"`
	ShadowResistance  int32 `json:"shares"`
	Healing           int32 `json:"splheal"`
}

type WowheadTooltipManager

type WowheadTooltipManager struct {
	TooltipManager
}

func NewWowheadItemTooltipManager

func NewWowheadItemTooltipManager(filePath string) *WowheadTooltipManager

func NewWowheadSpellTooltipManager

func NewWowheadSpellTooltipManager(filePath string) *WowheadTooltipManager

func (*WowheadTooltipManager) Read

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL