database

package
v0.0.160 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const EndTimeEchoLootString = `` /* 1177-byte string literal not displayed */

Variables

View Source
var AtlasLootDungeonToRaidDifficulty = map[string]string{
	"RF_DIFF":     "RAID25RF_DIFF",
	"NORMAL_DIFF": "RAID25_DIFF",
	"HEROIC_DIFF": "RAID25H_DIFF",
}
View Source
var AtlasLootFactions = map[string]proto.Faction{
	"FACTIONS_CONTENT":       proto.Faction_Unknown,
	"FACTIONS_ALLI_CONTENT":  proto.Faction_Alliance,
	"FACTIONS_HORDE_CONTENT": proto.Faction_Horde,
}
View Source
var DenyListNameRegexes = []*regexp.Regexp{
	regexp.MustCompile(`30 Epic`),
	regexp.MustCompile(`130 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`),
	regexp.MustCompile(`Archaic Spell`),
	regexp.MustCompile(`Well Repaired`),
}

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

View Source
var EnchantOverrides = []*proto.UIEnchant{}/* 245 elements not displayed */
View Source
var ExtraItemIcons = []int32{}/* 117 elements not displayed */

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

View Source
var GemAllowList = map[int32]struct{}{}
View Source
var GemDenyList = map[int32]struct{}{

	32735: {},
	34142: {},
	34143: {},
	35489: {},
	37430: {},
	38545: {},
	38546: {},
	38547: {},
	38548: {},
	38549: {},
	38550: {},
	63696: {},
	63697: {},
}
View Source
var GemOverrides = []*proto.UIGem{
	{Id: 33131, Stats: stats.Stats{stats.AttackPower: 32, stats.RangedAttackPower: 32}.ToProtoArray()},
}

Allows manual overriding for Gem fields in case WowHead is wrong.

View Source
var ItemAllowList = map[int32]struct{}{

	27510: {},
	27802: {},
	27909: {},
	28231: {},
	28349: {},

	45703: {},
}

Keep these sorted by item ID.

View Source
var ItemDenyList = map[int32]struct{}{}/* 286 elements not displayed */

Keep these sorted by item ID.

View Source
var ItemOverrides = []*proto.UIItem{}/* 178 elements not displayed */
View Source
var OtherItemIdsToFetch = []string{

	"211817",
	"211844",
	"211847",
	"211850",
	"211851",
}
View Source
var SharedSpellsIcons = []int32{}/* 124 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 ParseWagoDB added in v0.0.9

func ParseWagoDB(dbContents string) map[int32]WagoDbItem

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 CataItemResponse

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

func NewCataItemResponse

func NewCataItemResponse(id int32, tooltip string) CataItemResponse

func (CataItemResponse) GetArmorType

func (item CataItemResponse) GetArmorType() proto.ArmorType

func (CataItemResponse) GetGemSockets

func (item CataItemResponse) GetGemSockets() []proto.GemColor

func (CataItemResponse) GetGemStats

func (item CataItemResponse) GetGemStats() stats.Stats

func (CataItemResponse) GetHandType

func (item CataItemResponse) GetHandType() proto.HandType

func (CataItemResponse) GetIcon

func (item CataItemResponse) GetIcon() string

func (CataItemResponse) GetIntValue

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

func (CataItemResponse) GetItemLevel

func (item CataItemResponse) GetItemLevel() int

func (CataItemResponse) GetItemSetName

func (item CataItemResponse) GetItemSetName() string

func (CataItemResponse) GetItemType

func (item CataItemResponse) GetItemType() proto.ItemType

func (CataItemResponse) GetName

func (item CataItemResponse) GetName() string

func (CataItemResponse) GetPhase

func (item CataItemResponse) GetPhase() int

WOTLK DB has no phase info

func (CataItemResponse) GetQuality

func (item CataItemResponse) GetQuality() int

func (CataItemResponse) GetRangedWeaponType

func (item CataItemResponse) GetRangedWeaponType() proto.RangedWeaponType

func (CataItemResponse) GetRequiredProfession

func (item CataItemResponse) GetRequiredProfession() proto.Profession

func (CataItemResponse) GetSocketBonus

func (item CataItemResponse) GetSocketBonus() stats.Stats

func (CataItemResponse) GetSocketColor

func (item CataItemResponse) GetSocketColor() proto.GemColor

func (CataItemResponse) GetStats

func (item CataItemResponse) GetStats() stats.Stats

func (CataItemResponse) GetTooltipRegexString

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

func (CataItemResponse) GetTooltipRegexValue

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

func (CataItemResponse) GetUnique

func (item CataItemResponse) GetUnique() bool

func (CataItemResponse) GetWeaponDamage

func (item CataItemResponse) GetWeaponDamage() (float64, float64)

Returns min/max of weapon damage

func (CataItemResponse) GetWeaponSpeed

func (item CataItemResponse) GetWeaponSpeed() float64

func (CataItemResponse) GetWeaponType

func (item CataItemResponse) GetWeaponType() proto.WeaponType

func (CataItemResponse) IsEquippable

func (item CataItemResponse) IsEquippable() bool

func (CataItemResponse) IsHeroic

func (item CataItemResponse) IsHeroic() bool

func (CataItemResponse) IsPattern

func (item CataItemResponse) IsPattern() bool

func (CataItemResponse) IsRandomEnchant

func (item CataItemResponse) IsRandomEnchant() bool

func (CataItemResponse) TooltipWithoutSetBonus

func (item CataItemResponse) TooltipWithoutSetBonus() string

type CataTooltipManager

type CataTooltipManager struct {
	TooltipManager
}

func NewCataItemTooltipManager

func NewCataItemTooltipManager(filePath string) *CataTooltipManager

func (*CataTooltipManager) Read

func (wtm *CataTooltipManager) Read() map[int32]CataItemResponse

type ClassMask

type ClassMask uint16
const (
	ClassMaskWarrior     ClassMask = 1 << iota
	ClassMaskPaladin               // 2
	ClassMaskHunter                // 4
	ClassMaskRogue                 // 8
	ClassMaskPriest                // 16
	ClassMaskDeathKnight           // 32
	ClassMaskShaman                // 64
	ClassMaskMage                  // 128
	ClassMaskWarlock               // 256
	ClassMaskUnknown               // 512 seemingly unused?
	ClassMaskDruid                 // 1024
)

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
	HasBuff() bool
	TooltipWithoutSetBonus() string
	GetTooltipRegexString(pattern *regexp.Regexp, matchIdx int) string
	GetTooltipRegexValue(pattern *regexp.Regexp, matchIdx int) int
	GetIntValue(pattern *regexp.Regexp) int
	GetStats() stats.Stats
	IsEquippable() bool
	GetItemLevel() 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
	GetGemSockets() []proto.GemColor
	GetSocketBonus() stats.Stats
	GetSocketColor() proto.GemColor
	GetGemStats() stats.Stats
	GetItemSetName() string
	IsHeroic() bool
	GetRequiredProfession() proto.Profession
}

type RandomPropAllocation

type RandomPropAllocation struct {
	Epic0     int32 `json:"Epic_0"`
	Epic1     int32 `json:"Epic_1"`
	Epic2     int32 `json:"Epic_2"`
	Epic3     int32 `json:"Epic_3"`
	Epic4     int32 `json:"Epic_4"`
	Superior0 int32 `json:"Superior_0"`
	Superior1 int32 `json:"Superior_1"`
	Superior2 int32 `json:"Superior_2"`
	Superior3 int32 `json:"Superior_3"`
	Superior4 int32 `json:"Superior_4"`
	Good0     int32 `json:"Good_0"`
	Good1     int32 `json:"Good_1"`
	Good2     int32 `json:"Good_2"`
	Good3     int32 `json:"Good_3"`
	Good4     int32 `json:"Good_4"`
}

type RandomPropAllocationMap

type RandomPropAllocationMap map[proto.ItemQuality][5]int32

type RandomPropAllocationsByIlvl

type RandomPropAllocationsByIlvl map[int32]RandomPropAllocationMap

func ParseRandPropPointsTable

func ParseRandPropPointsTable(contents string) RandomPropAllocationsByIlvl

func (RandomPropAllocationsByIlvl) CalcItemAllocation

func (allocationMap RandomPropAllocationsByIlvl) CalcItemAllocation(item *proto.UIItem) int32

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 WagoDbItem added in v0.0.9

type WagoDbItem struct {
	FactionRestriction proto.UIItem_FactionRestriction
	ItemSetID          int32
}

type WowDatabase

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

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

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

	Encounters []*proto.PresetEncounter
	GlyphIDs   []*proto.GlyphID
}

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) 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) MergeGem

func (db *WowDatabase) MergeGem(src *proto.UIGem)

func (*WowDatabase) MergeGems

func (db *WowDatabase) MergeGems(arr []*proto.UIGem)

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) 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"`

	RaceMask  uint32 `json:"raceMask"`
	ClassMask uint16 `json:"classMask"`

	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"`
	Buff    string `json:"buff"`
}

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) GetGemSockets

func (item WowheadItemResponse) GetGemSockets() []proto.GemColor

func (WowheadItemResponse) GetGemStats

func (item WowheadItemResponse) GetGemStats() stats.Stats

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) GetRequiredProfession

func (item WowheadItemResponse) GetRequiredProfession() proto.Profession

func (WowheadItemResponse) GetSocketBonus

func (item WowheadItemResponse) GetSocketBonus() stats.Stats

func (WowheadItemResponse) GetSocketColor

func (item WowheadItemResponse) GetSocketColor() proto.GemColor

func (WowheadItemResponse) GetStats

func (item WowheadItemResponse) GetStats() stats.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) GetWeaponSpeed

func (item WowheadItemResponse) GetWeaponSpeed() float64

func (WowheadItemResponse) GetWeaponType

func (item WowheadItemResponse) GetWeaponType() proto.WeaponType

func (WowheadItemResponse) HasBuff

func (item WowheadItemResponse) HasBuff() bool

func (WowheadItemResponse) IsEquippable

func (item WowheadItemResponse) IsEquippable() bool

func (WowheadItemResponse) IsGem

func (item WowheadItemResponse) IsGem() 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) ToGemProto

func (item WowheadItemResponse) ToGemProto() *proto.UIGem

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"`
	S        int32  `json:"s"`
	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 {
	Strength          int32 `json:"str"`
	Agility           int32 `json:"agi"`
	Stamina           int32 `json:"sta"`
	Intellect         int32 `json:"int"`
	Spirit            int32 `json:"spi"`
	SpellPower        int32 `json:"spldmg"`
	MP5               int32 `json:"manargn"`
	HitRating         int32 `json:"hitrtng"`
	CritRating        int32 `json:"critstrkrtng"`
	HasteRating       int32 `json:"hastertng"`
	AttackPower       int32 `json:"mleatkpwr"`
	Expertise         int32 `json:"exprtng"`
	Armor             int32 `json:"armor"`
	RangedAttackPower int32 `json:"rgdatkpwr"`
	Block             int32 `json:"blockrtng"`
	Dodge             int32 `json:"dodgertng"`
	Parry             int32 `json:"parryrtng"`
	ArcaneResistance  int32 `json:"arcres"`
	FireResistance    int32 `json:"firres"`
	FrostResistance   int32 `json:"frores"`
	NatureResistance  int32 `json:"natres"`
	ShadowResistance  int32 `json:"shares"`
	Mastery           int32 `json:"mastrtng"`
}

type WowheadReforgeStat

type WowheadReforgeStat struct {
	ReforgeID         int     `json:"id"` // Reforge ID used by game
	FromID            int     `json:"i1"` // WH Stat ID to reforge from
	FromStat          string  `json:"s1"` // WH Stat string to reforge from
	ToID              int     `json:"i2"` // WH Stat ID to reforge to
	ToStat            string  `json:"s2"` // WH Stat string to reforge to
	ReforgeMultiplier float64 `json:"v"`  // Multiplier for reforge, always 0.4
}

type WowheadReforgeStats

type WowheadReforgeStats map[string]WowheadReforgeStat

func ParseWowheadReforgeStats

func ParseWowheadReforgeStats(contents string) WowheadReforgeStats

func (WowheadReforgeStats) ToProto

func (reforgeStats WowheadReforgeStats) ToProto() map[int32]*proto.ReforgeStat

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