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) AddSoulShard()
- func (warlock *Warlock) ApplyAfflictionTalents()
- func (warlock *Warlock) ApplyDemonologyTalents()
- func (warlock *Warlock) ApplyDestructionTalents()
- func (warlock *Warlock) ApplyGlyphs()
- func (warlock *Warlock) ApplyTalents()
- func (warlock *Warlock) Calc2PT13SummonDuration() int32
- 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) RemoveSoulShard()
- 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.ApplyEffect{ 2: func(agent core.Agent) { warlock := agent.(WarlockAgent).GetWarlock() core.MakePermanent(warlock.RegisterAura(core.Aura{ Label: "Item - Warlock T12 2P Bonus", ActionID: core.ActionID{SpellID: 99220}, Icd: &core.Cooldown{ Timer: warlock.NewTimer(), Duration: 45 * time.Second, }, OnPeriodicDamageDealt: func(aura *core.Aura, sim *core.Simulation, _ *core.Spell, _ *core.SpellResult) { if aura.Icd.IsReady(sim) && sim.Proc(0.05, "Warlock 2pT12") { warlock.FieryImp.EnableWithTimeout(sim, warlock.FieryImp, 15*time.Second) aura.Icd.Use(sim) } }, })) }, 4: func(agent core.Agent) { 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() }, }) core.MakePermanent(warlock.RegisterAura(core.Aura{ Label: "Item - Warlock T12 4P Bonus", ActionID: core.ActionID{SpellID: 99229}, ActionIDForProc: aura.ActionID, OnCastComplete: func(_ *core.Aura, sim *core.Simulation, spell *core.Spell) { if spell.Matches(WarlockSpellShadowBolt|WarlockSpellIncinerate|WarlockSpellSoulFire|WarlockSpellDrainSoul) && sim.Proc(0.05, "Warlock 4pT12") { aura.Activate(sim) } }, })) }, }, })
View Source
var ItemSetGladiatorsFelshroud = core.NewItemSet(core.ItemSet{ ID: 910, Name: "Gladiator's Felshroud", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { agent.(WarlockAgent).GetWarlock().AddStats(stats.Stats{ stats.Intellect: 70, }) }, 4: func(agent core.Agent) { lock := agent.(WarlockAgent).GetWarlock() lock.AddStats(stats.Stats{ stats.Intellect: 90, }) }, }, })
View Source
var ItemSetMaleficRaiment = core.NewItemSet(core.ItemSet{ Name: "Shadowflame Regalia", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { agent.(WarlockAgent).GetWarlock().AddStaticMod(core.SpellModConfig{ Kind: core.SpellMod_CastTime_Pct, ClassMask: WarlockSpellChaosBolt | WarlockSpellHandOfGuldan | WarlockSpellHaunt, FloatValue: -0.1, }) }, 4: func(agent core.Agent) { 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) } }, }) core.MakePermanent(warlock.RegisterAura(core.Aura{ Label: "Item - Warlock T11 4P Bonus", ActionID: core.ActionID{SpellID: 89935}, ActionIDForProc: aura.ActionID, OnPeriodicDamageDealt: func(_ *core.Aura, sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) { if spell.Matches(WarlockSpellImmolateDot|WarlockSpellUnstableAffliction) && sim.Proc(0.02, "Warlock 4pT11") { 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.ApplyEffect{ 2: func(agent core.Agent) { warlock := agent.(WarlockAgent).GetWarlock() warlock.AddStaticMod(core.SpellModConfig{ Kind: core.SpellMod_Cooldown_Flat, TimeValue: -time.Minute * 4, ClassMask: WarlockSpellSummonDoomguard | WarlockSpellSummonInfernal, }) }, 4: func(agent core.Agent) { 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) }, }) core.MakePermanent(warlock.RegisterAura(core.Aura{ Label: "Item - Warlock T13 4P Bonus", ActionID: core.ActionID{SpellID: 105787}, ActionIDForProc: aura.ActionID, OnCastComplete: func(_ *core.Aura, sim *core.Simulation, spell *core.Spell) { if spell.Matches(WarlockSpellSoulBurn) { aura.Activate(sim) } }, })) }, }, })
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 int32 SoulBurnAura *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) AddSoulShard ¶ added in v0.0.146
func (warlock *Warlock) AddSoulShard()
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) Calc2PT13SummonDuration ¶ added in v0.0.146
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) RemoveSoulShard ¶ added in v0.0.146
func (warlock *Warlock) RemoveSoulShard()
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.