Documentation
¶
Overview ¶
Package gamedata provides static game data (class/race info, warrior spell IDs, base stats) used by the bot AI for making decisions without requiring runtime DBC parsing. This covers the WoW 3.3.5a patch (build 12340).
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Dungeons = map[string]DungeonInfo{ "ragefire_chasm": { Name: "Ragefire Chasm", MapID: 389, MinLevel: 15, MaxLevel: 21, EntranceMapID: 1, EntranceX: 1811.78, EntranceY: -4410.5, EntranceZ: -18.4704, GroupSize: 5, BossEntries: []uint32{11517, 11518, 11519, 11520}, }, "the_deadmines": { Name: "The Deadmines", MapID: 36, MinLevel: 17, MaxLevel: 26, EntranceMapID: 0, EntranceX: -11208.3, EntranceY: 1672.52, EntranceZ: 24.6361, GroupSize: 5, BossEntries: []uint32{644, 642, 1763, 646, 639}, }, }
Dungeons available for testing.
var GrindZones = []GrindZone{
{Name: "Deathknell", MapID: 0, CenterX: 1848, CenterY: 1608, CenterZ: 97, Radius: 100, MinLevel: 1, MaxLevel: 6},
{Name: "Tirisfal Glades", MapID: 0, CenterX: 2259, CenterY: 312, CenterZ: 35, Radius: 200, MinLevel: 5, MaxLevel: 12},
{Name: "Northshire Valley", MapID: 0, CenterX: -8920, CenterY: -183, CenterZ: 81, Radius: 150, MinLevel: 1, MaxLevel: 6},
{Name: "Elwynn Forest", MapID: 0, CenterX: -9465, CenterY: 75, CenterZ: 57, Radius: 300, MinLevel: 5, MaxLevel: 12},
{Name: "Westfall", MapID: 0, CenterX: -10670, CenterY: 1033, CenterZ: 34, Radius: 400, MinLevel: 10, MaxLevel: 20},
{Name: "Redridge Mountains", MapID: 0, CenterX: -9225, CenterY: -2200, CenterZ: 65, Radius: 300, MinLevel: 15, MaxLevel: 25},
{Name: "Valley of Trials", MapID: 1, CenterX: -618, CenterY: -4251, CenterZ: 38, Radius: 150, MinLevel: 1, MaxLevel: 6},
{Name: "Durotar", MapID: 1, CenterX: 230, CenterY: -4738, CenterZ: 10, Radius: 300, MinLevel: 5, MaxLevel: 12},
{Name: "The Barrens", MapID: 1, CenterX: -442, CenterY: -2650, CenterZ: 96, Radius: 500, MinLevel: 10, MaxLevel: 25},
}
GrindZones is a list of zones for leveling.
var HoggerInfo = NPCInfo{
Entry: 448,
Name: "Hogger",
Level: 11,
Health: 572,
MapID: 0,
PosX: -10107.26,
PosY: 617.83,
PosZ: 38.083,
ZoneName: "Elwynn Forest",
}
HoggerInfo contains known data about the Hogger NPC for testing.
var WarriorSpells = map[uint32]SpellInfo{ 78: {Name: "Heroic Strike", Level: 1, RageCost: 15, Cooldown: 0, Range: 5, IsMelee: true}, 772: {Name: "Rend", Level: 4, RageCost: 10, Cooldown: 0, Range: 5, IsMelee: true}, 6343: {Name: "Thunder Clap", Level: 6, RageCost: 20, Cooldown: 6, Range: 8, IsMelee: true}, 1715: {Name: "Hamstring", Level: 8, RageCost: 10, Cooldown: 0, Range: 5, IsMelee: true}, 7384: {Name: "Overpower", Level: 12, RageCost: 5, Cooldown: 5, Range: 5, IsMelee: true, IsProc: true}, 6572: {Name: "Revenge", Level: 14, RageCost: 5, Cooldown: 5, Range: 5, IsMelee: true, IsProc: true}, 285: {Name: "Heroic Strike (Rank 2)", Level: 16, RageCost: 15, Cooldown: 0, Range: 5, IsMelee: true}, 7386: {Name: "Sunder Armor", Level: 10, RageCost: 15, Cooldown: 0, Range: 5, IsMelee: true}, 845: {Name: "Cleave", Level: 20, RageCost: 20, Cooldown: 0, Range: 5, IsMelee: true}, 6552: {Name: "Pummel", Level: 38, RageCost: 10, Cooldown: 10, Range: 5, IsMelee: true}, 1464: {Name: "Slam", Level: 30, RageCost: 15, Cooldown: 0, Range: 5, IsMelee: true}, 5308: {Name: "Execute", Level: 24, RageCost: 15, Cooldown: 0, Range: 5, IsMelee: true}, 1680: {Name: "Whirlwind", Level: 36, RageCost: 25, Cooldown: 10, Range: 8, IsMelee: true}, 2457: {Name: "Battle Shout", Level: 1, RageCost: 10, Cooldown: 0, Range: 0, IsMelee: false}, 6673: {Name: "Battle Shout (Rank 2)", Level: 12, RageCost: 10, Cooldown: 0, Range: 0, IsMelee: false}, 1160: {Name: "Demoralizing Shout", Level: 14, RageCost: 10, Cooldown: 0, Range: 0, IsMelee: false}, 5246: {Name: "Intimidating Shout", Level: 22, RageCost: 25, Cooldown: 120, Range: 0, IsMelee: false}, 18499: {Name: "Berserker Rage", Level: 32, RageCost: 0, Cooldown: 30, Range: 0, IsMelee: false}, 1719: {Name: "Recklessness", Level: 50, RageCost: 0, Cooldown: 300, Range: 0, IsMelee: false}, 100: {Name: "Charge", Level: 4, RageCost: 0, Cooldown: 15, Range: 25, IsMelee: false, MinRange: 8}, 355: {Name: "Taunt", Level: 10, RageCost: 0, Cooldown: 8, Range: 30, IsMelee: false}, 2565: {Name: "Shield Block", Level: 16, RageCost: 10, Cooldown: 60, Range: 0, IsMelee: false}, 12678: {Name: "Stance Mastery", Level: 20, RageCost: 0, Cooldown: 0, Range: 0, IsMelee: false}, 34428: {Name: "Victory Rush", Level: 6, RageCost: 0, Cooldown: 0, Range: 5, IsMelee: true, IsProc: true}, }
Warrior spells by level range - the bot's primary class for testing. These are the baseline abilities a warrior would train while leveling.
Functions ¶
func ClassSpells ¶
ClassSpells returns a simplified list of important spell IDs by class ID.
func GetSpellPriority ¶
GetSpellPriority returns a priority-ordered list of offensive spell IDs for the given class at the given level. Higher priority first. Excludes proc abilities, buffs, and non-combat spells.
func RaceStartPosition ¶
RaceStartPosition returns the starting zone coordinates for a race.
Types ¶
type DungeonInfo ¶
type DungeonInfo struct {
Name string
MapID uint32
MinLevel uint32
MaxLevel uint32
EntranceMapID uint32
EntranceX float32
EntranceY float32
EntranceZ float32
GroupSize int
BossEntries []uint32
}
DungeonInfo holds info about a dungeon for group testing.
type GrindZone ¶
type GrindZone struct {
Name string
MapID uint32
CenterX float32
CenterY float32
CenterZ float32
Radius float32
MinLevel uint32
MaxLevel uint32
}
GrindZone represents a zone where bots can grind for XP.
func GetGrindZone ¶
GetGrindZone returns a suitable grind zone for the given level and map.
type NPCInfo ¶
type NPCInfo struct {
Entry uint32
Name string
Level uint32
Health uint32
MapID uint32
PosX float32
PosY float32
PosZ float32
ZoneName string
}
NPCInfo holds info about a known NPC.
type SpellInfo ¶
type SpellInfo struct {
Name string
Level uint32
ManaCost uint32
RageCost uint32
Cooldown float32 // seconds
Range float32 // yards
MinRange float32 // yards
IsMelee bool
IsHeal bool
IsProc bool // requires a proc to be usable (e.g. Victory Rush)
}
SpellInfo holds static info about a spell.