Documentation
¶
Index ¶
- Constants
- Variables
- func ScaledAutoAttackConfig(swingSpeed float64) *core.AutoAttackOptions
- type DoomguardPet
- type EbonImpPet
- type FieryImpPet
- type InfernalPet
- type SecondaryResourceCost
- func (s *SecondaryResourceCost) CostFailureReason(_ *core.Simulation, spell *core.Spell) string
- func (s *SecondaryResourceCost) IssueRefund(sim *core.Simulation, spell *core.Spell)
- func (s *SecondaryResourceCost) MeetsRequirement(_ *core.Simulation, spell *core.Spell) bool
- func (s *SecondaryResourceCost) SpendCost(sim *core.Simulation, spell *core.Spell)
- type Warlock
- func (warlock *Warlock) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (warlock *Warlock) ApplyDotWithPandemic(dot *core.Dot, sim *core.Simulation)
- func (warlock *Warlock) ApplyTalents()
- func (warlock *Warlock) BuildAndRegisterSummonSpell(id int32, pet *WarlockPet)
- 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) Initialize()
- func (warlock *Warlock) NewDoomguardPet() *DoomguardPet
- func (warlock *Warlock) NewEbonImp() *EbonImpPet
- func (warlock *Warlock) NewFieryImp() *FieryImpPet
- func (warlock *Warlock) NewInfernalPet() *InfernalPet
- func (warlock *Warlock) RegisterCorruption(callback WarlockSpellCastedCallback) *core.Spell
- func (warlock *Warlock) RegisterDrainLife(callback WarlockSpellCastedCallback)
- func (warlock *Warlock) RegisterFelflame(callback WarlockSpellCastedCallback) *core.Spell
- func (warlock *Warlock) RegisterHellfire(callback WarlockSpellCastedCallback) *core.Spell
- func (warlock *Warlock) RegisterPet(t proto.WarlockOptions_Summon, swingSpeed float64, apScale float64, ...) *WarlockPet
- func (warlock *Warlock) Reset(sim *core.Simulation)
- func (warlock *Warlock) SimplePetStatInheritanceWithScale(apScale float64) core.PetStatInheritance
- type WarlockAgent
- type WarlockPet
- type WarlockSpellCastedCallback
Constants ¶
View Source
const ( WarlockSpellFlagNone int64 = 0 WarlockSpellConflagrate int64 = 1 << iota WarlockSpellFaBConflagrate WarlockSpellShadowBolt WarlockSpellChaosBolt WarlockSpellImmolate WarlockSpellImmolateDot WarlockSpellIncinerate WarlockSpellFaBIncinerate WarlockSpellSoulFire WarlockSpellShadowBurn WarlockSpellLifeTap WarlockSpellCorruption WarlockSpellHaunt WarlockSpellUnstableAffliction WarlockSpellCurseOfElements WarlockSpellAgony WarlockSpellDrainSoul WarlockSpellDrainLife WarlockSpellMetamorphosis WarlockSpellSeedOfCorruption WarlockSpellSeedOfCorruptionExposion WarlockSpellHandOfGuldan WarlockSpellHellfire WarlockSpellImmolationAura WarlockSpellSearingPain WarlockSpellSummonDoomguard WarlockSpellDoomguardDoomBolt WarlockSpellSummonFelguard WarlockSpellFelGuardLegionStrike WarlockSpellFelGuardFelstorm WarlockSpellSummonImp WarlockSpellImpFireBolt WarlockSpellSummonFelhunter WarlockSpellFelHunterShadowBite WarlockSpellSummonSuccubus WarlockSpellSuccubusLashOfPain WarlockSpellVoidwalkerTorment WarlockSpellSummonInfernal WarlockSpellDemonSoul WarlockSpellShadowflame WarlockSpellShadowflameDot WarlockSpellSoulBurn WarlockSpellFelFlame WarlockSpellBurningEmbers WarlockSpellEmberTap WarlockSpellRainOfFire WarlockSpellFireAndBrimstone WarlockSpellDarkSoulInsanity WarlockSpellDarkSoulKnowledge WarlockSpellDarkSoulMisery WarlockSpellMaleficGrasp WarlockSpellDemonicSlash WarlockSpellTouchOfChaos WarlockSpellChaosWave WarlockSpellCarrionSwarm WarlockSpellDoom WarlockSpellVoidray WarlockSpellAll int64 = 1<<iota - 1 WarlockShadowDamage = WarlockSpellCorruption | WarlockSpellUnstableAffliction | WarlockSpellHaunt | WarlockSpellDrainSoul | WarlockSpellDrainLife | WarlockSpellAgony | WarlockSpellShadowBolt | WarlockSpellSeedOfCorruptionExposion | WarlockSpellHandOfGuldan | WarlockSpellShadowflame | WarlockSpellFelFlame | WarlockSpellChaosBolt | WarlockSpellShadowBurn WarlockPeriodicShadowDamage = WarlockSpellCorruption | WarlockSpellUnstableAffliction | WarlockSpellDrainSoul | WarlockSpellDrainLife | WarlockSpellAgony WarlockFireDamage = WarlockSpellConflagrate | WarlockSpellImmolate | WarlockSpellIncinerate | WarlockSpellSoulFire | WarlockSpellHandOfGuldan | WarlockSpellSearingPain | WarlockSpellImmolateDot | WarlockSpellShadowflameDot | WarlockSpellFelFlame | WarlockSpellChaosBolt | WarlockSpellShadowBurn | WarlockSpellFaBConflagrate | WarlockSpellFaBIncinerate WarlockDoT = WarlockSpellCorruption | WarlockSpellUnstableAffliction | WarlockSpellDrainSoul | WarlockSpellDrainLife | WarlockSpellAgony | WarlockSpellImmolateDot | WarlockSpellShadowflameDot | WarlockSpellBurningEmbers WarlockSummonSpells = WarlockSpellSummonImp | WarlockSpellSummonSuccubus | WarlockSpellSummonFelhunter | WarlockSpellSummonFelguard WarlockDarkSoulSpell = WarlockSpellDarkSoulInsanity | WarlockSpellDarkSoulKnowledge | WarlockSpellDarkSoulMisery WarlockAllSummons = WarlockSummonSpells | WarlockSpellSummonInfernal | WarlockSpellSummonDoomguard WarlockSpellsChaoticEnergyDestro = WarlockSpellAll &^ WarlockAllSummons &^ WarlockSpellDrainLife )
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 ItemSetRegaliaOfTheHornedNightmare = core.NewItemSet(core.ItemSet{ Name: "Regalia of the Horned Nightmare", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { warlock := agent.(WarlockAgent).GetWarlock() var buff *core.Aura switch warlock.Spec { case proto.Spec_SpecAfflictionWarlock: buff = warlock.RegisterAura(core.Aura{ ActionID: core.ActionID{SpellID: 145082}, Label: "Regalia of the Horned Nightmare - Affli - 2pc", Duration: time.Second * 10, }).AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Pct, FloatValue: 0.15, ClassMask: WarlockSpellDrainSoul | WarlockSpellMaleficGrasp, }) warlock.T16_2pc_buff = buff setBonusAura.OnSpellHitDealt = func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if spell.Matches(WarlockSpellUnstableAffliction) && result.DidCrit() && sim.Proc(0.5, "T16 - 2pc") { buff.Activate(sim) return } } case proto.Spec_SpecDemonologyWarlock: buffAction := core.ActionID{SpellID: 145075} applyBuffAura := func(unit *core.Unit) { unit.RegisterAura(core.Aura{ ActionID: buffAction, Label: "Regalia of the Horned Nightmare - Demo - 2pc", Duration: time.Second * 10, }).AttachMultiplicativePseudoStatBuff(&unit.PseudoStats.DamageDealtMultiplier, 1.2) } applyBuffAura(&warlock.Unit) for _, pet := range warlock.Pets { if pet.IsGuardian() { continue } applyBuffAura(&pet.Unit) } setBonusAura.OnSpellHitDealt = func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if spell.Matches(WarlockSpellSoulFire) && sim.Proc(0.2, "T16 - 2pc") { warlock.GetAuraByID(buffAction).Activate(sim) for _, pet := range warlock.Pets { if pet.IsGuardian() { continue } if !pet.IsActive() { continue } pet.GetAuraByID(buffAction).Activate(sim) } } } case proto.Spec_SpecDestructionWarlock: buff = warlock.RegisterAura(core.Aura{ ActionID: core.ActionID{SpellID: 145075}, Label: "Regalia of the Horned Nightmare - Destro - 2pc", Duration: time.Second * 10, }).AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_BonusCrit_Percent, FloatValue: 0.1, ClassMask: WarlockSpellImmolate | WarlockSpellImmolateDot | WarlockSpellIncinerate | WarlockSpellFaBIncinerate, }) setBonusAura.OnSpellHitDealt = func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if spell.Matches(WarlockSpellConflagrate|WarlockSpellFaBConflagrate) && result.DidCrit() && sim.Proc(0.2, "T16 - 2pc") { buff.Activate(sim) return } } default: return } }, 4: func(agent core.Agent, setBonusAura *core.Aura) { warlock := agent.(WarlockAgent).GetWarlock() switch agent.GetCharacter().Spec { case proto.Spec_SpecAfflictionWarlock: warlock.OnSpellRegistered(func(spell *core.Spell) { if !spell.Matches(WarlockSpellHaunt) { return } for _, enemy := range warlock.Env.Encounter.TargetUnits { for _, array := range spell.RelatedAuraArrays { array.Get(enemy).ApplyOnExpire(func(aura *core.Aura, sim *core.Simulation) { if sim.Proc(0.1, "T16 4p") { warlock.GetSecondaryResourceBar().Gain(sim, 1, spell.ActionID) } }) } } }) case proto.Spec_SpecDemonologyWarlock: setBonusAura.AttachProcTrigger(core.ProcTrigger{ Callback: core.CallbackOnCastComplete, ClassSpellMask: WarlockSpellShadowBolt | WarlockSpellTouchOfChaos, ProcChance: 0.08, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { }, }) case proto.Spec_SpecDestructionWarlock: buff := warlock.RegisterAura(core.Aura{ ActionID: core.ActionID{SpellID: 145164}, Label: "Regalia of the Horned Nightmare - Demo - 4pc", Duration: time.Second * 5, Icd: &core.Cooldown{ Timer: warlock.NewTimer(), Duration: time.Second * 10, }, }).AttachStatBuff(stats.CritRating, core.CritRatingPerCritPercent*15) warlock.GetSecondaryResourceBar().RegisterOnGain(func( sim *core.Simulation, gain, realGain int32, actionID core.ActionID, ) { if realGain == 0 || buff.Icd.IsReady(sim) { return } old := warlock.GetSecondaryResourceBar().Value() - realGain if int(old/10) == int(warlock.GetSecondaryResourceBar().Value()/10) { return } buff.Activate(sim) }) } }, }, })
T16
View Source
var ItemSetRegaliaOfTheThousandfeldHells = core.NewItemSet(core.ItemSet{ Name: "Regalia of the Thousandfold Hells", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { warlock := agent.(WarlockAgent).GetWarlock() warlock.T15_2pc = agent.GetCharacter().RegisterAura(core.Aura{ Label: "Regalia of the Thousandfold Hells - 2P Buff", Duration: time.Second * 20, }).AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_DotNumberOfTicks_Flat, IntValue: 2, ClassMask: WarlockSpellHaunt, }) agent.GetCharacter().OnSpellRegistered(func(spell *core.Spell) { if spell.Matches(WarlockDarkSoulSpell) { spell.RelatedSelfBuff.ApplyOnGain(func(aura *core.Aura, sim *core.Simulation) { warlock.T15_2pc.Activate(sim) }) } }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Pct, FloatValue: 0.05, ClassMask: WarlockSpellMaleficGrasp | WarlockSpellDrainSoul, }) warlock := agent.(WarlockAgent).GetWarlock() warlock.T15_4pc = setBonusAura }, }, })
T15
View Source
var ItemSetShaSkinRegalia = core.NewItemSet(core.ItemSet{ Name: "Sha-Skin Regalia", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Pct, FloatValue: 0.1, ClassMask: WarlockSpellCorruption, }).AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Pct, FloatValue: 0.05, ClassMask: WarlockSpellIncinerate | WarlockSpellFaBIncinerate, }).AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Pct, FloatValue: 0.02, ClassMask: WarlockSpellShadowBolt | WarlockSpellDemonicSlash | WarlockSpellTouchOfChaos, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { buff := agent.GetCharacter().RegisterAura(core.Aura{ Label: "Sha-Skin Regalia - 4P Buff", ActionID: core.ActionID{SpellID: 148463}, Duration: time.Second * 20, }).AttachMultiplicativePseudoStatBuff(&agent.GetCharacter().PseudoStats.DamageDealtMultiplier, 1.10) agent.GetCharacter().OnSpellRegistered(func(spell *core.Spell) { if spell.Matches(WarlockDarkSoulSpell) { spell.RelatedSelfBuff.ApplyOnGain(func(aura *core.Aura, sim *core.Simulation) { buff.Activate(sim) }) } }) }, }, })
T14
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 ¶
func ScaledAutoAttackConfig ¶
func ScaledAutoAttackConfig(swingSpeed float64) *core.AutoAttackOptions
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 ¶
T12
func (*FieryImpPet) ExecuteCustomRotation ¶
func (imp *FieryImpPet) ExecuteCustomRotation(sim *core.Simulation)
func (*FieryImpPet) GetPet ¶
func (imp *FieryImpPet) GetPet() *core.Pet
func (*FieryImpPet) Initialize ¶
func (imp *FieryImpPet) Initialize()
func (*FieryImpPet) Reset ¶
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 SecondaryResourceCost ¶
func (*SecondaryResourceCost) CostFailureReason ¶
func (s *SecondaryResourceCost) CostFailureReason(_ *core.Simulation, spell *core.Spell) string
CostFailureReason implements core.ResourceCostImpl.
func (*SecondaryResourceCost) IssueRefund ¶
func (s *SecondaryResourceCost) IssueRefund(sim *core.Simulation, spell *core.Spell)
IssueRefund implements core.ResourceCostImpl.
func (*SecondaryResourceCost) MeetsRequirement ¶
func (s *SecondaryResourceCost) MeetsRequirement(_ *core.Simulation, spell *core.Spell) bool
MeetsRequirement implements core.ResourceCostImpl.
func (*SecondaryResourceCost) SpendCost ¶
func (s *SecondaryResourceCost) SpendCost(sim *core.Simulation, spell *core.Spell)
SpendCost implements core.ResourceCostImpl.
type Warlock ¶
type Warlock struct {
core.Character
Talents *proto.WarlockTalents
Options *proto.WarlockOptions
Corruption *core.Spell
CurseOfElementsAuras core.AuraArray
Immolate *core.Spell
Metamorphosis *core.Spell
Seed *core.Spell
ShadowEmbraceAuras core.AuraArray
Shadowburn *core.Spell
Hellfire *core.Spell
DrainLife *core.Spell
ActivePet *WarlockPet
Felhunter *WarlockPet
// Felguard *WarlockPet
Imp *WarlockPet
Succubus *WarlockPet
Voidwalker *WarlockPet
Doomguard *DoomguardPet
Infernal *InfernalPet
// EbonImp *EbonImpPet
FieryImp *FieryImpPet
// Item sets
T13_4pc *core.Aura
T15_2pc *core.Aura
T15_4pc *core.Aura
T16_2pc_buff *core.Aura
// contains filtered or unexported fields
}
func NewWarlock ¶
func (*Warlock) AddRaidBuffs ¶
func (*Warlock) ApplyDotWithPandemic ¶
func (warlock *Warlock) ApplyDotWithPandemic(dot *core.Dot, sim *core.Simulation)
Pandemic - For now a Warlock only ability. Might be moved into core support in late expansions
func (*Warlock) ApplyTalents ¶
func (warlock *Warlock) ApplyTalents()
func (*Warlock) BuildAndRegisterSummonSpell ¶
func (warlock *Warlock) BuildAndRegisterSummonSpell(id int32, pet *WarlockPet)
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) Initialize ¶
func (warlock *Warlock) Initialize()
func (*Warlock) NewDoomguardPet ¶
func (warlock *Warlock) NewDoomguardPet() *DoomguardPet
func (*Warlock) NewEbonImp ¶
func (warlock *Warlock) NewEbonImp() *EbonImpPet
func (*Warlock) NewFieryImp ¶
func (warlock *Warlock) NewFieryImp() *FieryImpPet
func (*Warlock) NewInfernalPet ¶
func (warlock *Warlock) NewInfernalPet() *InfernalPet
func (*Warlock) RegisterCorruption ¶
func (warlock *Warlock) RegisterCorruption(callback WarlockSpellCastedCallback) *core.Spell
func (*Warlock) RegisterDrainLife ¶
func (warlock *Warlock) RegisterDrainLife(callback WarlockSpellCastedCallback)
func (*Warlock) RegisterFelflame ¶
func (warlock *Warlock) RegisterFelflame(callback WarlockSpellCastedCallback) *core.Spell
func (*Warlock) RegisterHellfire ¶
func (warlock *Warlock) RegisterHellfire(callback WarlockSpellCastedCallback) *core.Spell
func (*Warlock) RegisterPet ¶
func (warlock *Warlock) RegisterPet( t proto.WarlockOptions_Summon, swingSpeed float64, apScale float64, name string, enabledOnStart bool, isGuardian bool, ) *WarlockPet
func (*Warlock) Reset ¶
func (warlock *Warlock) Reset(sim *core.Simulation)
func (*Warlock) SimplePetStatInheritanceWithScale ¶
func (warlock *Warlock) SimplePetStatInheritanceWithScale(apScale float64) core.PetStatInheritance
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
AutoCastAbilities []*core.Spell
MinEnergy float64 // The minimum amount of energy needed to the AI casts a spell
}
func (*WarlockPet) ExecuteCustomRotation ¶
func (pet *WarlockPet) ExecuteCustomRotation(sim *core.Simulation)
func (*WarlockPet) GetPet ¶
func (pet *WarlockPet) GetPet() *core.Pet
func (*WarlockPet) Reset ¶
func (pet *WarlockPet) Reset(_ *core.Simulation)
type WarlockSpellCastedCallback ¶
type WarlockSpellCastedCallback func(resultList []core.SpellResult, spell *core.Spell, sim *core.Simulation)
Called to handle custom resources
Source Files
¶
Click to show internal directories.
Click to hide internal directories.