Documentation ¶
Index ¶
- Constants
- Variables
- type DoomguardPet
- type EbonImpPet
- type InfernalPet
- type Warlock
- 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) DefaultSpellCritMultiplier() float64
- func (warlock *Warlock) GetCharacter() *core.Character
- 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) 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 WarlockSpellDemonSoul WarlockSpellShadowflame WarlockSpellShadowflameDot WarlockSpellSoulBurn WarlockSpellFelFlame WarlockSpellBurningEmbers WarlockShadowDamage = WarlockSpellCorruption | WarlockSpellUnstableAffliction | WarlockSpellHaunt | WarlockSpellDrainSoul | WarlockSpellDrainLife | WarlockSpellBaneOfDoom | WarlockSpellBaneOfAgony | WarlockSpellShadowBolt | WarlockSpellSeedOfCorruptionExposion | WarlockSpellHandOfGuldan | WarlockSpellShadowflame | WarlockSpellFelFlame WarlockPeriodicShadowDamage = WarlockSpellCorruption | WarlockSpellUnstableAffliction | WarlockSpellDrainSoul | WarlockSpellDrainLife | WarlockSpellBaneOfDoom | WarlockSpellBaneOfAgony WarlockFireDamage = WarlockSpellConflagrate | WarlockSpellImmolate | WarlockSpellIncinerate | WarlockSpellSoulFire | WarlockSpellImmolationAura | WarlockSpellHandOfGuldan | WarlockSpellSearingPain | WarlockSpellImmolateDot | WarlockSpellShadowflameDot | WarlockSpellFelFlame WarlockDoT = WarlockSpellCorruption | WarlockSpellUnstableAffliction | WarlockSpellDrainSoul | WarlockSpellDrainLife | WarlockSpellBaneOfDoom | WarlockSpellBaneOfAgony | WarlockSpellImmolateDot | WarlockSpellShadowflameDot | WarlockSpellBurningEmbers WarlockBasicPetSpells = WarlockSpellFelGuardLegionStrike | WarlockSpellSuccubusLashOfPain | WarlockSpellSuccubusLashOfPain | WarlockSpellFelHunterShadowBite | WarlockSpellImpFireBolt WarlockSummonSpells = WarlockSpellSummonImp | WarlockSpellSummonSuccubus | WarlockSpellSummonFelhunter | WarlockSpellSummonFelguard )
View Source
const (
PetExpertiseScale = 1.53 * core.ExpertisePerQuarterPercentReduction
)
Variables ¶
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 TODO: untested, since it's currently not working ingame
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 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 ImmolateDot *core.Spell Metamorphosis *core.Spell Seed *core.Spell ShadowEmbraceAuras core.AuraArray Shadowburn *core.Spell UnstableAffliction *core.Spell Felhunter *WarlockPet Felguard *WarlockPet Imp *WarlockPet Succubus *WarlockPet Doomguard *DoomguardPet Infernal *InfernalPet EbonImp *EbonImpPet SoulShards int32 SoulBurnAura *core.Aura }
func NewWarlock ¶
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) DefaultSpellCritMultiplier ¶
func (*Warlock) GetCharacter ¶
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) 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
- 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.