Documentation
¶
Index ¶
- Constants
- Variables
- type DoomguardPet
- type EbonImpPet
- type FieryImpPet
- type InfernalPet
- type Warlock
- func (warlock *Warlock) ActivatePetSummonStun(sim *core.Simulation, stunActionID core.ActionID)
- func (warlock *Warlock) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (warlock *Warlock) ApplyAfflictionTalents()
- func (warlock *Warlock) ApplyDemonologyTalents()
- func (warlock *Warlock) ApplyDestructionTalents()
- func (warlock *Warlock) ApplyGlyphs()
- func (warlock *Warlock) ApplyTalents()
- func (warlock *Warlock) ChangeActivePet(sim *core.Simulation, newPet *WarlockPet)
- func (warlock *Warlock) GetCharacter() *core.Character
- func (warlock *Warlock) GetSummonStunAura() core.Aura
- func (warlock *Warlock) GetWarlock() *Warlock
- func (warlock *Warlock) HasMajorGlyph(glyph proto.WarlockMajorGlyph) bool
- func (warlock *Warlock) HasMinorGlyph(glyph proto.WarlockMinorGlyph) bool
- func (warlock *Warlock) HasPrimeGlyph(glyph proto.WarlockPrimeGlyph) bool
- func (warlock *Warlock) Initialize()
- func (warlock *Warlock) NewDoomguardPet() *DoomguardPet
- func (warlock *Warlock) NewEbonImp() *EbonImpPet
- func (warlock *Warlock) NewFieryImp() *FieryImpPet
- func (warlock *Warlock) NewInfernalPet() *InfernalPet
- func (warlock *Warlock) Reset(sim *core.Simulation)
- func (warlock *Warlock) ShadowEmbraceDebuffAura(target *core.Unit) *core.Aura
- type WarlockAgent
- type WarlockPet
Constants ¶
View Source
const ( WarlockSpellFlagNone int64 = 0 WarlockSpellConflagrate int64 = 1 << iota WarlockSpellShadowBolt WarlockSpellChaosBolt WarlockSpellImmolate WarlockSpellImmolateDot WarlockSpellIncinerate WarlockSpellSoulFire WarlockSpellShadowBurn WarlockSpellLifeTap WarlockSpellCorruption WarlockSpellHaunt WarlockSpellUnstableAffliction WarlockSpellCurseOfElements WarlockSpellCurseOfWeakness WarlockSpellCurseOfTongues WarlockSpellBaneOfAgony WarlockSpellBaneOfDoom WarlockSpellDrainSoul WarlockSpellDrainLife WarlockSpellMetamorphosis WarlockSpellSeedOfCorruption WarlockSpellSeedOfCorruptionExposion WarlockSpellHandOfGuldan WarlockSpellImmolationAura WarlockSpellSearingPain WarlockSpellSummonDoomguard WarlockSpellDoomguardDoomBolt WarlockSpellSummonFelguard WarlockSpellFelGuardLegionStrike WarlockSpellFelGuardFelstorm WarlockSpellSummonImp WarlockSpellImpFireBolt WarlockSpellSummonFelhunter WarlockSpellFelHunterShadowBite WarlockSpellSummonSuccubus WarlockSpellSuccubusLashOfPain WarlockSpellSummonInfernal WarlockSpellDemonSoul WarlockSpellShadowflame WarlockSpellShadowflameDot WarlockSpellSoulBurn WarlockSpellFelFlame WarlockSpellBurningEmbers WarlockShadowDamage = WarlockSpellCorruption | WarlockSpellUnstableAffliction | WarlockSpellHaunt | WarlockSpellDrainSoul | WarlockSpellDrainLife | WarlockSpellBaneOfDoom | WarlockSpellBaneOfAgony | WarlockSpellShadowBolt | WarlockSpellSeedOfCorruptionExposion | WarlockSpellHandOfGuldan | WarlockSpellShadowflame | WarlockSpellFelFlame | WarlockSpellChaosBolt | WarlockSpellShadowBurn WarlockPeriodicShadowDamage = WarlockSpellCorruption | WarlockSpellUnstableAffliction | WarlockSpellDrainSoul | WarlockSpellDrainLife | WarlockSpellBaneOfDoom | WarlockSpellBaneOfAgony WarlockFireDamage = WarlockSpellConflagrate | WarlockSpellImmolate | WarlockSpellIncinerate | WarlockSpellSoulFire | WarlockSpellImmolationAura | WarlockSpellHandOfGuldan | WarlockSpellSearingPain | WarlockSpellImmolateDot | WarlockSpellShadowflameDot | WarlockSpellFelFlame | WarlockSpellChaosBolt | WarlockSpellShadowBurn WarlockDoT = WarlockSpellCorruption | WarlockSpellUnstableAffliction | WarlockSpellDrainSoul | WarlockSpellDrainLife | WarlockSpellBaneOfDoom | WarlockSpellBaneOfAgony | WarlockSpellImmolateDot | WarlockSpellShadowflameDot | WarlockSpellBurningEmbers WarlockSummonSpells = WarlockSpellSummonImp | WarlockSpellSummonSuccubus | WarlockSpellSummonFelhunter | WarlockSpellSummonFelguard )
View Source
const (
PetExpertiseScale = 1.53 * core.ExpertisePerQuarterPercentReduction
)
Variables ¶
View Source
var ItemSetBalespidersBurningVestments = core.NewItemSet(core.ItemSet{ Name: "Balespider's Burning Vestments", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { warlock := agent.(WarlockAgent).GetWarlock() setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Item - Warlock T12 2P Bonus", ActionID: core.ActionID{SpellID: 99220}, ProcChance: 0.05, ICD: 45 * time.Second, Callback: core.CallbackOnPeriodicDamageDealt, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { warlock.FieryImp.EnableWithTimeout(sim, warlock.FieryImp, 15*time.Second) }, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { warlock := agent.(WarlockAgent).GetWarlock() dmgMod := warlock.AddDynamicMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Pct, School: core.SpellSchoolShadow | core.SpellSchoolFire, FloatValue: 0.20, }) aura := warlock.RegisterAura(core.Aura{ Label: "Apocalypse", ActionID: core.ActionID{SpellID: 99232}, Duration: 8 * time.Second, OnGain: func(aura *core.Aura, sim *core.Simulation) { dmgMod.Activate() }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { dmgMod.Deactivate() }, }) setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Item - Warlock T12 4P Bonus", ActionID: core.ActionID{SpellID: 99229}, ClassSpellMask: WarlockSpellShadowBolt | WarlockSpellIncinerate | WarlockSpellSoulFire | WarlockSpellDrainSoul, ProcChance: 0.05, Callback: core.CallbackOnCastComplete, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { aura.Activate(sim) }, }) }, }, })
View Source
var ItemSetGladiatorsFelshroud = core.NewItemSet(core.ItemSet{ ID: 910, Name: "Gladiator's Felshroud", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachStatBuff(stats.Intellect, 70) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachStatBuff(stats.Intellect, 90) }, }, })
View Source
var ItemSetMaleficRaiment = core.NewItemSet(core.ItemSet{ Name: "Shadowflame Regalia", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_CastTime_Pct, ClassMask: WarlockSpellChaosBolt | WarlockSpellHandOfGuldan | WarlockSpellHaunt, FloatValue: -0.1, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { warlock := agent.(WarlockAgent).GetWarlock() dmgMod := warlock.AddDynamicMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Flat, ClassMask: WarlockSpellFelFlame, FloatValue: 3.0, }) aura := warlock.RegisterAura(core.Aura{ Label: "Fel Spark", ActionID: core.ActionID{SpellID: 89937}, Duration: 15 * time.Second, MaxStacks: 2, OnGain: func(aura *core.Aura, sim *core.Simulation) { dmgMod.Activate() }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { dmgMod.Deactivate() }, OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if spell.Matches(WarlockSpellFelFlame) && result.Landed() { aura.RemoveStack(sim) } }, }) setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Item - Warlock T11 4P Bonus", ActionID: core.ActionID{SpellID: 89935}, ClassSpellMask: WarlockSpellImmolateDot | WarlockSpellUnstableAffliction, Callback: core.CallbackOnPeriodicDamageDealt, ProcChance: 0.02, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { aura.Activate(sim) aura.SetStacks(sim, 2) }, }) }, }, })
T11
View Source
var ItemSetVestmentsOfTheFacelessShroud = core.NewItemSet(core.ItemSet{ Name: "Vestments of the Faceless Shroud", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { warlock := agent.(WarlockAgent).GetWarlock() setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_Cooldown_Flat, TimeValue: -time.Minute * 4, ClassMask: WarlockSpellSummonDoomguard | WarlockSpellSummonInfernal, }) summonDuration := core.TernaryDuration(warlock.Spec == proto.Spec_SpecDemonologyWarlock, 20*time.Second, 30*time.Second) setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_BuffDuration_Flat, ClassMask: WarlockSpellSummonDoomguard | WarlockSpellSummonInfernal, TimeValue: summonDuration, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { warlock := agent.(WarlockAgent).GetWarlock() spDep := warlock.NewDynamicMultiplyStat(stats.SpellPower, 1.1) aura := warlock.RegisterAura(core.Aura{ Label: "Temporal Ruin", ActionID: core.ActionID{SpellID: 105786}, Duration: 10 * time.Second, OnGain: func(aura *core.Aura, sim *core.Simulation) { warlock.EnableDynamicStatDep(sim, spDep) }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { warlock.DisableDynamicStatDep(sim, spDep) }, }) setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Item - Warlock T13 4P Bonus (Soulburn)", ActionID: core.ActionID{SpellID: 105787}, Callback: core.CallbackOnCastComplete, ClassSpellMask: WarlockSpellSoulBurn, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { aura.Activate(sim) }, }) setBonusAura.ExposeToAPL(105787) warlock.T13_4pc = setBonusAura }, }, })
T13
Functions ¶
This section is empty.
Types ¶
type DoomguardPet ¶
func (*DoomguardPet) ExecuteCustomRotation ¶
func (pet *DoomguardPet) ExecuteCustomRotation(sim *core.Simulation)
func (*DoomguardPet) GetPet ¶
func (doomguard *DoomguardPet) GetPet() *core.Pet
func (*DoomguardPet) Initialize ¶
func (pet *DoomguardPet) Initialize()
func (*DoomguardPet) Reset ¶
func (pet *DoomguardPet) Reset(_ *core.Simulation)
type EbonImpPet ¶
func (*EbonImpPet) ExecuteCustomRotation ¶
func (imp *EbonImpPet) ExecuteCustomRotation(sim *core.Simulation)
func (*EbonImpPet) GetPet ¶
func (imp *EbonImpPet) GetPet() *core.Pet
func (*EbonImpPet) Initialize ¶
func (imp *EbonImpPet) Initialize()
func (*EbonImpPet) Reset ¶
func (imp *EbonImpPet) Reset(_ *core.Simulation)
type FieryImpPet ¶ added in v0.0.79
T12
func (*FieryImpPet) ExecuteCustomRotation ¶ added in v0.0.79
func (imp *FieryImpPet) ExecuteCustomRotation(sim *core.Simulation)
func (*FieryImpPet) GetPet ¶ added in v0.0.79
func (imp *FieryImpPet) GetPet() *core.Pet
func (*FieryImpPet) Initialize ¶ added in v0.0.79
func (imp *FieryImpPet) Initialize()
func (*FieryImpPet) Reset ¶ added in v0.0.79
func (imp *FieryImpPet) Reset(_ *core.Simulation)
type InfernalPet ¶
func (*InfernalPet) ExecuteCustomRotation ¶
func (infernal *InfernalPet) ExecuteCustomRotation(sim *core.Simulation)
func (*InfernalPet) GetPet ¶
func (infernal *InfernalPet) GetPet() *core.Pet
func (*InfernalPet) Initialize ¶
func (infernal *InfernalPet) Initialize()
func (*InfernalPet) Reset ¶
func (infernal *InfernalPet) Reset(_ *core.Simulation)
type Warlock ¶
type Warlock struct {
core.Character
Talents *proto.WarlockTalents
Options *proto.WarlockOptions
BaneOfAgony *core.Spell
BaneOfDoom *core.Spell
BurningEmbers *core.Spell
Corruption *core.Spell
CurseOfElementsAuras core.AuraArray
CurseOfTonguesAuras core.AuraArray
CurseOfWeaknessAuras core.AuraArray
HauntDebuffAuras core.AuraArray
Immolate *core.Spell
Metamorphosis *core.Spell
Seed *core.Spell
ShadowEmbraceAuras core.AuraArray
Shadowburn *core.Spell
UnstableAffliction *core.Spell
ActivePet *WarlockPet
Felhunter *WarlockPet
Felguard *WarlockPet
Imp *WarlockPet
Succubus *WarlockPet
Doomguard *DoomguardPet
Infernal *InfernalPet
EbonImp *EbonImpPet
FieryImp *FieryImpPet
SoulShards *core.Aura
SoulBurnAura *core.Aura
// Item sets
T13_4pc *core.Aura
}
func NewWarlock ¶
func (*Warlock) ActivatePetSummonStun ¶ added in v0.0.61
func (warlock *Warlock) ActivatePetSummonStun(sim *core.Simulation, stunActionID core.ActionID)
func (*Warlock) AddRaidBuffs ¶
func (*Warlock) ApplyAfflictionTalents ¶
func (warlock *Warlock) ApplyAfflictionTalents()
func (*Warlock) ApplyDemonologyTalents ¶
func (warlock *Warlock) ApplyDemonologyTalents()
func (*Warlock) ApplyDestructionTalents ¶
func (warlock *Warlock) ApplyDestructionTalents()
func (*Warlock) ApplyGlyphs ¶
func (warlock *Warlock) ApplyGlyphs()
func (*Warlock) ApplyTalents ¶
func (warlock *Warlock) ApplyTalents()
func (*Warlock) ChangeActivePet ¶
func (warlock *Warlock) ChangeActivePet(sim *core.Simulation, newPet *WarlockPet)
func (*Warlock) GetCharacter ¶
func (*Warlock) GetSummonStunAura ¶ added in v0.0.32
func (*Warlock) GetWarlock ¶
func (*Warlock) HasMajorGlyph ¶
func (warlock *Warlock) HasMajorGlyph(glyph proto.WarlockMajorGlyph) bool
func (*Warlock) HasMinorGlyph ¶
func (warlock *Warlock) HasMinorGlyph(glyph proto.WarlockMinorGlyph) bool
func (*Warlock) HasPrimeGlyph ¶
func (warlock *Warlock) HasPrimeGlyph(glyph proto.WarlockPrimeGlyph) bool
func (*Warlock) Initialize ¶
func (warlock *Warlock) Initialize()
func (*Warlock) NewDoomguardPet ¶
func (warlock *Warlock) NewDoomguardPet() *DoomguardPet
func (*Warlock) NewEbonImp ¶
func (warlock *Warlock) NewEbonImp() *EbonImpPet
func (*Warlock) NewFieryImp ¶ added in v0.0.79
func (warlock *Warlock) NewFieryImp() *FieryImpPet
func (*Warlock) NewInfernalPet ¶
func (warlock *Warlock) NewInfernalPet() *InfernalPet
func (*Warlock) Reset ¶
func (warlock *Warlock) Reset(sim *core.Simulation)
type WarlockAgent ¶
type WarlockAgent interface {
GetWarlock() *Warlock
}
Agent is a generic way to access underlying warlock on any of the agents.
type WarlockPet ¶
func (*WarlockPet) ExecuteCustomRotation ¶
func (pet *WarlockPet) ExecuteCustomRotation(sim *core.Simulation)
func (*WarlockPet) GetPet ¶
func (pet *WarlockPet) GetPet() *core.Pet
func (*WarlockPet) Initialize ¶
func (pet *WarlockPet) Initialize()
func (*WarlockPet) Reset ¶
func (pet *WarlockPet) Reset(_ *core.Simulation)
Source Files
¶
- corruption.go
- curses.go
- demon_soul.go
- doomguard.go
- drain_life.go
- drain_soul.go
- ebon_imp.go
- fel_flame.go
- glyphs.go
- immolate.go
- incinerate.go
- infernal.go
- items.go
- lifetap.go
- pets.go
- searing_pain.go
- seed.go
- shadowbolt.go
- shadowburn.go
- shadowflame.go
- soul_fire.go
- soul_harvest.go
- soulburn.go
- summon_demon.go
- talents_affliction.go
- talents_demonology.go
- talents_destruction.go
- warlock.go
Click to show internal directories.
Click to hide internal directories.