Documentation ¶
Index ¶
- Constants
- Variables
- func RegisterMage()
- type Mage
- func (mage *Mage) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
- func (mage *Mage) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (mage *Mage) ApplyTalents()
- func (mage *Mage) GetCharacter() *core.Character
- func (mage *Mage) GetMage() *Mage
- func (mage *Mage) HasMajorGlyph(glyph proto.MageMajorGlyph) bool
- func (mage *Mage) HasMinorGlyph(glyph proto.MageMinorGlyph) bool
- func (mage *Mage) Initialize()
- func (mage *Mage) NewMirrorImage() *MirrorImage
- func (mage *Mage) NewWaterElemental(disobeyChance float64) *WaterElemental
- func (mage *Mage) OnGCDReady(sim *core.Simulation)
- func (mage *Mage) Reset(sim *core.Simulation)
- type MageAgent
- type MageTierSets
- type MirrorImage
- type WaterElemental
Constants ¶
View Source
const ( SpellFlagMage = core.SpellFlagAgentReserved1 BarrageSpells = core.SpellFlagAgentReserved2 HotStreakSpells = core.SpellFlagAgentReserved3 )
View Source
const ArcaneBlastBaseCastTime = time.Millisecond * 2500
View Source
const EvocationId = 12051
Variables ¶
View Source
var ArcaneTalents = &proto.MageTalents{ ArcaneFocus: 3, ArcaneSubtlety: 2, ArcaneConcentration: 5, SpellImpact: 3, FocusMagic: true, MagicAttunement: 1, StudentOfTheMind: 3, ArcaneMeditation: 3, TormentTheWeak: 3, PresenceOfMind: true, ArcaneMind: 5, ArcaneInstability: 3, ArcanePotency: 2, ArcaneEmpowerment: 3, ArcanePower: true, ArcaneFlows: 2, MindMastery: 5, MissileBarrage: 5, NetherwindPresence: 3, SpellPower: 2, ArcaneBarrage: true, Incineration: 3, ImprovedFrostbolt: 2, IceFloes: 3, IceShards: 2, Precision: 3, IcyVeins: true, }
View Source
var FireTalents = &proto.MageTalents{ ArcaneSubtlety: 2, ArcaneFocus: 3, ArcaneConcentration: 5, SpellImpact: 3, StudentOfTheMind: 1, FocusMagic: true, TormentTheWeak: 3, ImprovedFireball: 5, Ignite: 5, WorldInFlames: 3, Pyroblast: true, BurningSoul: 1, ImprovedScorch: 3, MasterOfElements: 2, PlayingWithFire: 3, CriticalMass: 3, BlastWave: true, FirePower: 5, Pyromaniac: 3, Combustion: true, MoltenFury: 2, EmpoweredFire: 3, DragonsBreath: true, Firestarter: 2, HotStreak: 3, Burnout: 5, LivingBomb: true, }
View Source
var FrostTalents = &proto.MageTalents{ ArcaneSubtlety: 2, ArcaneFocus: 3, ArcaneConcentration: 5, SpellImpact: 3, StudentOfTheMind: 1, FocusMagic: true, TormentTheWeak: 3, ImprovedFrostbolt: 5, IceFloes: 3, IceShards: 3, Precision: 3, PiercingIce: 3, IcyVeins: true, ArcticReach: 2, FrostChanneling: 3, Shatter: 3, ColdSnap: true, WintersChill: 3, IceBarrier: true, ArcticWinds: 5, EmpoweredFrostbolt: 2, FingersOfFrost: 2, BrainFreeze: 3, SummonWaterElemental: true, EnduringWinter: 3, ChilledToTheBone: 5, DeepFreeze: true, }
View Source
var FullArcaneConsumes = FullFireConsumes
View Source
var FullFireConsumes = &proto.Consumes{ Flask: proto.Flask_FlaskOfTheFrostWyrm, Food: proto.Food_FoodFirecrackerSalmon, DefaultPotion: proto.Potions_PotionOfSpeed, }
View Source
var FullFrostConsumes = FullFireConsumes
View Source
var IgniteActionID = core.ActionID{SpellID: 12848}
View Source
var ItemSetBloodmagesRegalia = core.NewItemSet(core.ItemSet{ Name: "Bloodmage's Regalia", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { agent.GetCharacter() bloodmageHasteAura = agent.GetCharacter().RegisterAura(core.Aura{ Label: "Spec Based Haste T10 2PC", ActionID: core.ActionID{SpellID: 70752}, Duration: time.Second * 5, OnGain: func(aura *core.Aura, sim *core.Simulation) { aura.Unit.MultiplyCastSpeed(1.12) }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { aura.Unit.MultiplyCastSpeed(1 / 1.12) }, }) }, 4: func(agent core.Agent) { bloodmageDamageAura = agent.GetCharacter().RegisterAura(core.Aura{ Label: "Mirror Image Bonus Damage T10 4PC", ActionID: core.ActionID{SpellID: 70748}, Duration: time.Second * 30, OnGain: func(aura *core.Aura, sim *core.Simulation) { agent.GetCharacter().PseudoStats.DamageDealtMultiplier *= 1.18 }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { agent.GetCharacter().PseudoStats.DamageDealtMultiplier /= 1.18 }, }) }, }, })
View Source
var ItemSetFrostfireGarb = core.NewItemSet(core.ItemSet{ Name: "Frostfire Garb", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { mage := agent.(MageAgent).GetMage() mage.bonusCritDamage += .05 }, }, })
T7 Naxx
View Source
var ItemSetKhadgarsRegalia = core.NewItemSet(core.ItemSet{ Name: "Khadgar's Regalia", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
T9
View Source
var ItemSetKirinTorGarb = core.NewItemSet(core.ItemSet{ Name: "Kirin Tor Garb", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { applyProcAura := func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) bool { if !spell.Flags.Matches(BarrageSpells) { return false } return sim.RandomFloat("Mage2pT8") < .25 } agent.GetCharacter().StatProcWithICD("Kirin Tor 2pc", core.ActionID{SpellID: 64867}, stats.Stats{stats.SpellPower: 350}, 15*time.Second, 45*time.Second, applyProcAura) }, 4: func(agent core.Agent) { }, }, })
T8 Ulduar
View Source
var ItemSetSunstridersRegalia = core.NewItemSet(core.ItemSet{ Name: "Sunstrider's Regalia", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
T9 horde
View Source
var P1ArcaneGear = items.EquipmentSpecFromJsonString(`{"items": [
{
"id": 40416,
"enchant": 3820,
"gems": [
41285,
39998
]
},
{
"id": 44661,
"gems": [
40026
]
},
{
"id": 40419,
"enchant": 3810,
"gems": [
40051
]
},
{
"id": 44005,
"enchant": 3722,
"gems": [
40026
]
},
{
"id": 44002,
"enchant": 3832,
"gems": [
39998,
39998
]
},
{
"id": 44008,
"enchant": 2332,
"gems": [
39998,
0
]
},
{
"id": 40415,
"enchant": 3604,
"gems": [
39998,
0
]
},
{
"id": 40561,
"gems": [
39998
]
},
{
"id": 40417,
"enchant": 3719,
"gems": [
39998,
40051
]
},
{
"id": 40558,
"enchant": 3606
},
{
"id": 40719
},
{
"id": 40399
},
{
"id": 39229
},
{
"id": 40255
},
{
"id": 40396,
"enchant": 3834
},
{
"id": 40273
},
{
"id": 39426
}
]}`)
View Source
var P1FireGear = P1ArcaneGear
View Source
var P1FrostGear = P1ArcaneGear
View Source
var PlayerOptionsArcane = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: ArcaneTalents, Options: arcaneMageOptions, Rotation: &proto.Mage_Rotation{ Type: proto.Mage_Rotation_Arcane, MinBlastBeforeMissiles: 4, }, }, }
View Source
var PlayerOptionsArcaneAOE = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: ArcaneTalents, Options: arcaneMageOptions, Rotation: &proto.Mage_Rotation{ Type: proto.Mage_Rotation_Aoe, Aoe: proto.Mage_Rotation_ArcaneExplosion, }, }, }
View Source
var PlayerOptionsFire = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: FireTalents, Options: fireMageOptions, Rotation: &proto.Mage_Rotation{ Type: proto.Mage_Rotation_Fire, PrimaryFireSpell: proto.Mage_Rotation_Fireball, MaintainImprovedScorch: false, }, }, }
View Source
var PlayerOptionsFireAOE = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: FireTalents, Options: fireMageOptions, Rotation: &proto.Mage_Rotation{ Type: proto.Mage_Rotation_Aoe, Aoe: proto.Mage_Rotation_Flamestrike, }, }, }
View Source
var PlayerOptionsFrost = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: FrostTalents, Options: frostMageOptions, Rotation: &proto.Mage_Rotation{ Type: proto.Mage_Rotation_Frost, }, }, }
View Source
var PlayerOptionsFrostAOE = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: FrostTalents, Options: frostMageOptions, Rotation: &proto.Mage_Rotation{ Type: proto.Mage_Rotation_Aoe, Aoe: proto.Mage_Rotation_Blizzard, }, }, }
Functions ¶
func RegisterMage ¶
func RegisterMage()
Types ¶
type Mage ¶
type Mage struct { core.Character Talents *proto.MageTalents Options *proto.Mage_Options Rotation *proto.Mage_Rotation ArcaneBlast *core.Spell ArcaneExplosion *core.Spell ArcaneMissiles *core.Spell Blizzard *core.Spell DeepFreeze *core.Spell Ignite *core.Spell LivingBomb *core.Spell Fireball *core.Spell FireBlast *core.Spell Flamestrike *core.Spell Frostbolt *core.Spell FrostfireBolt *core.Spell Pyroblast *core.Spell Scorch *core.Spell WintersChill *core.Spell MirrorImage *core.Spell IcyVeins *core.Spell SummonWaterElemental *core.Spell ArcaneMissilesDot *core.Dot IgniteDots []*core.Dot LivingBombDots []*core.Dot LivingBombNotActive *llq.Queue FireballDot *core.Dot FlamestrikeDot *core.Dot FrostfireDot *core.Dot PyroblastDot *core.Dot ArcaneBlastAura *core.Aura MissileBarrageAura *core.Aura ClearcastingAura *core.Aura ScorchAura *core.Aura HotStreakAura *core.Aura CombustionAura *core.Aura FingersOfFrostAura *core.Aura BrainFreezeAura *core.Aura // Used to prevent utiliizing Brain Freeze immediately after proccing it. BrainFreezeActivatedAt time.Duration IgniteTickDamage []float64 MageTier MageTierSets // contains filtered or unexported fields }
func (*Mage) AddPartyBuffs ¶
func (mage *Mage) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
func (*Mage) AddRaidBuffs ¶
func (*Mage) ApplyTalents ¶
func (mage *Mage) ApplyTalents()
func (*Mage) GetCharacter ¶
func (*Mage) HasMajorGlyph ¶
func (mage *Mage) HasMajorGlyph(glyph proto.MageMajorGlyph) bool
func (*Mage) HasMinorGlyph ¶
func (mage *Mage) HasMinorGlyph(glyph proto.MageMinorGlyph) bool
func (*Mage) Initialize ¶
func (mage *Mage) Initialize()
func (*Mage) NewMirrorImage ¶
func (mage *Mage) NewMirrorImage() *MirrorImage
func (*Mage) NewWaterElemental ¶
func (mage *Mage) NewWaterElemental(disobeyChance float64) *WaterElemental
func (*Mage) OnGCDReady ¶
func (mage *Mage) OnGCDReady(sim *core.Simulation)
func (*Mage) Reset ¶
func (mage *Mage) Reset(sim *core.Simulation)
type MageAgent ¶
type MageAgent interface {
GetMage() *Mage
}
Agent is a generic way to access underlying mage on any of the agents.
type MageTierSets ¶
type MageTierSets struct {
// contains filtered or unexported fields
}
type MirrorImage ¶
type MirrorImage struct { core.Pet Frostbolt *core.Spell Fireblast *core.Spell // contains filtered or unexported fields }
func (*MirrorImage) GetPet ¶
func (mi *MirrorImage) GetPet() *core.Pet
func (*MirrorImage) Initialize ¶
func (mi *MirrorImage) Initialize()
func (*MirrorImage) OnGCDReady ¶
func (mi *MirrorImage) OnGCDReady(sim *core.Simulation)
func (*MirrorImage) Reset ¶
func (mi *MirrorImage) Reset(sim *core.Simulation)
type WaterElemental ¶
type WaterElemental struct { core.Pet Waterbolt *core.Spell // contains filtered or unexported fields }
func (*WaterElemental) GetPet ¶
func (we *WaterElemental) GetPet() *core.Pet
func (*WaterElemental) Initialize ¶
func (we *WaterElemental) Initialize()
func (*WaterElemental) OnGCDReady ¶
func (we *WaterElemental) OnGCDReady(sim *core.Simulation)
func (*WaterElemental) Reset ¶
func (we *WaterElemental) Reset(sim *core.Simulation)
Source Files ¶
- arcane_blast.go
- arcane_explosion.go
- arcane_missiles.go
- blizzard.go
- deep_freeze.go
- evocation.go
- fire_blast.go
- fireball.go
- flamestrike.go
- frostbolt.go
- frostfire_bolt.go
- ignite.go
- items.go
- living_bomb.go
- mage.go
- mana_gems.go
- mirror_image.go
- presets.go
- pyroblast.go
- rotations.go
- scorch.go
- talents.go
- water_elemental.go
- winters_chill.go
Click to show internal directories.
Click to hide internal directories.