Documentation ¶
Index ¶
- Constants
- Variables
- func RegisterWarlock()
- type ACLaction
- type APLValueWarlockShouldRecastDrainSoul
- type APLValueWarlockShouldRefreshCorruption
- type ActionCondition
- type InfernalPet
- type Warlock
- func (warlock *Warlock) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (warlock *Warlock) ApplyTalents()
- func (warlock *Warlock) GetCharacter() *core.Character
- func (warlock *Warlock) GetWarlock() *Warlock
- func (warlock *Warlock) GrandFirestoneBonus() float64
- func (warlock *Warlock) GrandSpellstoneBonus() float64
- func (warlock *Warlock) HasMajorGlyph(glyph proto.WarlockMajorGlyph) bool
- func (warlock *Warlock) HasMinorGlyph(glyph proto.WarlockMinorGlyph) bool
- func (warlock *Warlock) Initialize()
- func (warlock *Warlock) NewAPLValue(rot *core.APLRotation, config *proto.APLValue) core.APLValue
- func (warlock *Warlock) NewInfernal() *InfernalPet
- func (warlock *Warlock) NewWarlockPet() *WarlockPet
- func (warlock *Warlock) OnGCDReady(sim *core.Simulation)
- func (warlock *Warlock) Reset(sim *core.Simulation)
- func (warlock *Warlock) ShadowEmbraceDebuffAura(target *core.Unit) *core.Aura
- type WarlockAgent
- type WarlockPet
Constants ¶
View Source
const PetExpertiseScale = 1.53
Variables ¶
View Source
var ItemSetDarkCovensRegalia = core.NewItemSet(core.ItemSet{ Name: "Dark Coven's Regalia", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { warlock := agent.(WarlockAgent).GetWarlock() deviousMindsAura := warlock.RegisterAura(core.Aura{ Label: "Devious Minds", ActionID: core.ActionID{SpellID: 70840}, Duration: time.Second * 10, OnGain: func(aura *core.Aura, sim *core.Simulation) { aura.Unit.PseudoStats.DamageDealtMultiplier *= 1.1 }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { aura.Unit.PseudoStats.DamageDealtMultiplier /= 1.1 }, }) var petDeviousMindsAura *core.Aura if warlock.Pet != nil { petDeviousMindsAura = warlock.Pet.RegisterAura(core.Aura{ Label: "Devious Minds", ActionID: core.ActionID{SpellID: 70840}, Duration: time.Second * 10, OnGain: func(aura *core.Aura, sim *core.Simulation) { aura.Unit.PseudoStats.DamageDealtMultiplier *= 1.1 }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { aura.Unit.PseudoStats.DamageDealtMultiplier /= 1.1 }, }) } warlock.RegisterAura(core.Aura{ Label: "4pT10 Hidden Aura", Duration: core.NeverExpires, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) }, OnPeriodicDamageDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if spell == warlock.UnstableAffliction || spell == warlock.Immolate { if sim.Proc(0.15, "4pT10") { deviousMindsAura.Activate(sim) if petDeviousMindsAura != nil { petDeviousMindsAura.Activate(sim) } } } }, }) }, }, })
T10
View Source
var ItemSetDeathbringerGarb = core.NewItemSet(core.ItemSet{ Name: "Deathbringer Garb", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
T8
View Source
var ItemSetGladiatorsFelshroud = core.NewItemSet(core.ItemSet{ Name: "Gladiator's Felshroud", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { warlock := agent.(WarlockAgent).GetWarlock() warlock.AddStat(stats.SpellPower, 29) }, 4: func(agent core.Agent) { warlock := agent.(WarlockAgent).GetWarlock() warlock.AddStat(stats.SpellPower, 88) }, }, })
View Source
var ItemSetGuldansRegalia = core.NewItemSet(core.ItemSet{ Name: "Gul'dan's Regalia", AlternativeName: "Kel'Thuzad's Regalia", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { warlock := agent.(WarlockAgent).GetWarlock() if warlock.Pet != nil { warlock.Pet.AddStats(stats.Stats{ stats.MeleeCrit: 10 * core.CritRatingPerCritChance, stats.SpellCrit: 10 * core.CritRatingPerCritChance, }) } }, 4: func(agent core.Agent) { }, }, })
T9
View Source
var ItemSetMaleficRaiment = core.NewItemSet(core.ItemSet{ Name: "Malefic Raiment", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
T6
View Source
var ItemSetPlagueheartGarb = core.NewItemSet(core.ItemSet{ Name: "Plagueheart Garb", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { warlock := agent.(WarlockAgent).GetWarlock() const bonusCrit = 10 * core.CritRatingPerCritChance warlock.DemonicSoulAura = warlock.RegisterAura(core.Aura{ Label: "Demonic Soul", ActionID: core.ActionID{SpellID: 61595}, Duration: time.Second * 10, OnGain: func(aura *core.Aura, sim *core.Simulation) { warlock.ShadowBolt.BonusCritRating += bonusCrit warlock.Incinerate.BonusCritRating += bonusCrit }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { warlock.ShadowBolt.BonusCritRating -= bonusCrit warlock.Incinerate.BonusCritRating -= bonusCrit }, OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) { if spell == warlock.ShadowBolt || spell == warlock.Incinerate { warlock.DemonicSoulAura.Deactivate(sim) } }, }) warlock.RegisterAura(core.Aura{ Label: "2pT7 Hidden Aura", Duration: core.NeverExpires, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) }, OnPeriodicDamageDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if (spell == warlock.Corruption || spell == warlock.Immolate) && sim.Proc(0.15, "2pT7") { warlock.DemonicSoulAura.Activate(sim) } }, }) }, 4: func(agent core.Agent) { warlock := agent.(WarlockAgent).GetWarlock() warlock.SpiritsoftheDamnedAura = warlock.RegisterAura(core.Aura{ Label: "Spirits of the Damned", ActionID: core.ActionID{SpellID: 61082}, Duration: time.Second * 10, OnGain: func(aura *core.Aura, sim *core.Simulation) { aura.Unit.AddStatDynamic(sim, stats.Spirit, 300) }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { aura.Unit.AddStatDynamic(sim, stats.Spirit, -300) }, }) warlock.RegisterAura(core.Aura{ Label: "4pT7 Hidden Aura", Duration: core.NeverExpires, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) }, OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) { if spell == warlock.LifeTap { warlock.SpiritsoftheDamnedAura.Activate(sim) } }, }) }, }, })
T7
View Source
var TalentTreeSizes = [3]int{28, 27, 26}
Functions ¶
func RegisterWarlock ¶
func RegisterWarlock()
Types ¶
type APLValueWarlockShouldRecastDrainSoul ¶ added in v0.1.51
type APLValueWarlockShouldRecastDrainSoul struct { core.DefaultAPLValueImpl // contains filtered or unexported fields }
func (*APLValueWarlockShouldRecastDrainSoul) GetBool ¶ added in v0.1.51
func (value *APLValueWarlockShouldRecastDrainSoul) GetBool(sim *core.Simulation) bool
func (*APLValueWarlockShouldRecastDrainSoul) String ¶ added in v0.1.51
func (value *APLValueWarlockShouldRecastDrainSoul) String() string
func (*APLValueWarlockShouldRecastDrainSoul) Type ¶ added in v0.1.51
func (value *APLValueWarlockShouldRecastDrainSoul) Type() proto.APLValueType
type APLValueWarlockShouldRefreshCorruption ¶ added in v0.1.51
type APLValueWarlockShouldRefreshCorruption struct { core.DefaultAPLValueImpl // contains filtered or unexported fields }
func (*APLValueWarlockShouldRefreshCorruption) GetBool ¶ added in v0.1.51
func (value *APLValueWarlockShouldRefreshCorruption) GetBool(sim *core.Simulation) bool
func (*APLValueWarlockShouldRefreshCorruption) String ¶ added in v0.1.51
func (value *APLValueWarlockShouldRefreshCorruption) String() string
func (*APLValueWarlockShouldRefreshCorruption) Type ¶ added in v0.1.51
func (value *APLValueWarlockShouldRefreshCorruption) Type() proto.APLValueType
type ActionCondition ¶ added in v0.1.22
type InfernalPet ¶ added in v0.1.8
func (*InfernalPet) GetPet ¶ added in v0.1.8
func (infernal *InfernalPet) GetPet() *core.Pet
func (*InfernalPet) Initialize ¶ added in v0.1.8
func (infernal *InfernalPet) Initialize()
func (*InfernalPet) OnGCDReady ¶ added in v0.1.8
func (infernal *InfernalPet) OnGCDReady(sim *core.Simulation)
func (*InfernalPet) Reset ¶ added in v0.1.8
func (infernal *InfernalPet) Reset(_ *core.Simulation)
type Warlock ¶
type Warlock struct { core.Character Talents *proto.WarlockTalents Options *proto.Warlock_Options Rotation *proto.Warlock_Rotation Pet *WarlockPet ShadowBolt *core.Spell Incinerate *core.Spell Immolate *core.Spell UnstableAffliction *core.Spell Corruption *core.Spell Haunt *core.Spell LifeTap *core.Spell DarkPact *core.Spell ChaosBolt *core.Spell SoulFire *core.Spell Conflagrate *core.Spell DrainSoul *core.Spell Shadowburn *core.Spell SearingPain *core.Spell CurseOfElements *core.Spell CurseOfElementsAuras core.AuraArray CurseOfWeakness *core.Spell CurseOfWeaknessAuras core.AuraArray CurseOfTongues *core.Spell CurseOfTonguesAuras core.AuraArray CurseOfAgony *core.Spell CurseOfDoom *core.Spell Seed *core.Spell SeedDamageTracker []float64 ShadowEmbraceAuras core.AuraArray NightfallProcAura *core.Aura EradicationAura *core.Aura DemonicEmpowerment *core.Spell DemonicEmpowermentAura *core.Aura DemonicPactAura *core.Aura DemonicSoulAura *core.Aura Metamorphosis *core.Spell MetamorphosisAura *core.Aura ImmolationAura *core.Spell HauntDebuffAuras core.AuraArray MoltenCoreAura *core.Aura DecimationAura *core.Aura PyroclasmAura *core.Aura BackdraftAura *core.Aura EmpoweredImpAura *core.Aura GlyphOfLifeTapAura *core.Aura SpiritsoftheDamnedAura *core.Aura Infernal *InfernalPet Inferno *core.Spell // The sum total of demonic pact spell power * seconds. DPSPAggregate float64 PreviousTime time.Duration // contains filtered or unexported fields }
func (*Warlock) AddRaidBuffs ¶
func (*Warlock) ApplyTalents ¶
func (warlock *Warlock) ApplyTalents()
func (*Warlock) GetCharacter ¶
func (*Warlock) GetWarlock ¶
func (*Warlock) GrandFirestoneBonus ¶ added in v0.1.7
func (*Warlock) GrandSpellstoneBonus ¶ added in v0.1.7
func (*Warlock) HasMajorGlyph ¶
func (warlock *Warlock) HasMajorGlyph(glyph proto.WarlockMajorGlyph) bool
func (*Warlock) HasMinorGlyph ¶
func (warlock *Warlock) HasMinorGlyph(glyph proto.WarlockMinorGlyph) bool
func (*Warlock) Initialize ¶
func (warlock *Warlock) Initialize()
func (*Warlock) NewAPLValue ¶ added in v0.1.51
func (*Warlock) NewInfernal ¶ added in v0.1.8
func (warlock *Warlock) NewInfernal() *InfernalPet
func (*Warlock) NewWarlockPet ¶
func (warlock *Warlock) NewWarlockPet() *WarlockPet
func (*Warlock) OnGCDReady ¶
func (warlock *Warlock) OnGCDReady(sim *core.Simulation)
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 ¶
type WarlockPet struct { core.Pet DemonicEmpowermentAura *core.Aura // contains filtered or unexported fields }
func (*WarlockPet) GetPet ¶
func (wp *WarlockPet) GetPet() *core.Pet
func (*WarlockPet) Initialize ¶
func (wp *WarlockPet) Initialize()
func (*WarlockPet) OnGCDReady ¶
func (wp *WarlockPet) OnGCDReady(sim *core.Simulation)
func (*WarlockPet) Reset ¶
func (wp *WarlockPet) Reset(_ *core.Simulation)
Source Files ¶
- apl_values.go
- chaos_bolt.go
- conflagrate.go
- corruption.go
- curses.go
- darkpact.go
- demonic_empowerment.go
- drain_soul.go
- haunt.go
- immolate.go
- incinerate.go
- inferno.go
- items.go
- lifetap.go
- metamorphosis.go
- pet.go
- pet_abilities.go
- rotation.go
- searing_pain.go
- seed.go
- shadowbolt.go
- shadowburn.go
- soul_fire.go
- talents.go
- unstable_affliction.go
- warlock.go
Click to show internal directories.
Click to hide internal directories.