Documentation
¶
Index ¶
- Constants
- Variables
- type APLValueShamanFireElementalDuration
- type APLValueTotemRemainingTime
- type EarthElemental
- func (earthElemental *EarthElemental) ExecuteCustomRotation(sim *core.Simulation)
- func (earthElemental *EarthElemental) GetPet() *core.Pet
- func (earthElemental *EarthElemental) Initialize()
- func (earthElemental *EarthElemental) OnEncounterStart(_ *core.Simulation)
- func (earthElemental *EarthElemental) Reset(_ *core.Simulation)
- func (earthElemental *EarthElemental) TryCast(sim *core.Simulation, target *core.Unit, spell *core.Spell) bool
- type FireElemental
- func (fireElemental *FireElemental) ExecuteCustomRotation(sim *core.Simulation)
- func (fireElemental *FireElemental) GetPet() *core.Pet
- func (fireElemental *FireElemental) Initialize()
- func (fireElemental *FireElemental) OnEncounterStart(_ *core.Simulation)
- func (fireElemental *FireElemental) Reset(_ *core.Simulation)
- func (fireElemental *FireElemental) TryCast(sim *core.Simulation, target *core.Unit, spell *core.Spell) bool
- type SelfBuffs
- type ShamSpellConfig
- type Shaman
- func (shaman *Shaman) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (shaman *Shaman) ApplyAncestralSwiftness()
- func (shaman *Shaman) ApplyEarthlivingImbueToItem(item *core.Item)
- func (shaman *Shaman) ApplyEchoOfTheElements()
- func (shaman *Shaman) ApplyElementalBlast()
- func (shaman *Shaman) ApplyElementalMastery()
- func (shaman *Shaman) ApplyElementalTalents()
- func (shaman *Shaman) ApplyEnhancementTalents()
- func (shaman *Shaman) ApplyFlametongueImbue(procMask core.ProcMask)
- func (shaman *Shaman) ApplyFlametongueImbueSwap(procMask core.ProcMask)
- func (shaman *Shaman) ApplyFlametongueImbueToItem(item *core.Item)
- func (shaman *Shaman) ApplyGlyphs()
- func (shaman *Shaman) ApplyPrimalElementalist()
- func (shaman *Shaman) ApplyTalents()
- func (shaman *Shaman) ApplyUnleashedFury()
- func (shaman *Shaman) BloodlustActionID() core.ActionID
- func (shaman *Shaman) FrostbrandDebuffAura(target *core.Unit) *core.Aura
- func (shaman *Shaman) GetCharacter() *core.Character
- func (shaman *Shaman) GetOverloadChance() float64
- func (shaman *Shaman) HasMajorGlyph(glyph proto.ShamanMajorGlyph) bool
- func (shaman *Shaman) HasMinorGlyph(glyph proto.ShamanMinorGlyph) bool
- func (shaman *Shaman) Initialize()
- func (shaman *Shaman) NewAPLValue(rot *core.APLRotation, config *proto.APLValue) core.APLValue
- func (shaman *Shaman) NewChainSpellConfig(config ShamSpellConfig) core.SpellConfig
- func (shaman *Shaman) NewEarthElemental(isGuardian bool) *EarthElemental
- func (shaman *Shaman) NewFireElemental(isGuardian bool) *FireElemental
- func (shaman *Shaman) OnEncounterStart(sim *core.Simulation)
- func (shaman *Shaman) RegisterEarthlivingImbue(procMask core.ProcMask)
- func (shaman *Shaman) RegisterFlametongueImbue(procMask core.ProcMask)
- func (shaman *Shaman) RegisterFrostbrandImbue(procMask core.ProcMask)
- func (shaman *Shaman) RegisterHealingSpells()
- func (shaman *Shaman) RegisterWindfuryImbue(procMask core.ProcMask)
- func (shaman *Shaman) Reset(sim *core.Simulation)
- func (shaman *Shaman) StormlashActionID() core.ActionID
- type ShamanAgent
Constants ¶
const ( DDBC_FrostbrandWeapon int = iota DDBC_UnleashedFury DDBC_2PT16 DDBC_Total )
Damage Done By Caster setup
const ( SpellFlagShamanSpell = core.SpellFlagAgentReserved1 SpellFlagShock = core.SpellFlagAgentReserved2 SpellFlagIsEcho = core.SpellFlagAgentReserved3 SpellFlagFocusable = core.SpellFlagAgentReserved4 )
const ( AirTotem int = iota EarthTotem FireTotem WaterTotem )
Indexes into NextTotemDrops for self buffs
const ( SpellMaskNone int64 = 0 SpellMaskFireElementalTotem int64 = 1 << iota SpellMaskEarthElementalTotem SpellMaskFireElementalMelee SpellMaskFlameShockDirect SpellMaskFlameShockDot SpellMaskLavaBurst SpellMaskLavaBurstOverload SpellMaskLavaLash SpellMaskLightningBolt SpellMaskLightningBoltOverload SpellMaskChainLightning SpellMaskChainLightningOverload SpellMaskLavaBeam SpellMaskLavaBeamOverload SpellMaskEarthShock SpellMaskLightningShield SpellMaskThunderstorm SpellMaskFireNova SpellMaskMagmaTotem SpellMaskSearingTotem SpellMaskPrimalStrike SpellMaskStormstrikeCast SpellMaskStormstrikeDamage SpellMaskEarthShield SpellMaskFulmination SpellMaskFrostShock SpellMaskUnleashElements SpellMaskUnleashFrost SpellMaskUnleashFlame SpellMaskEarthquake SpellMaskFlametongueWeapon SpellMaskWindfuryWeapon SpellMaskFrostbrandWeapon SpellMaskFeralSpirit SpellMaskElementalMastery SpellMaskAscendance SpellMaskSpiritwalkersGrace SpellMaskShamanisticRage SpellMaskElementalBlast SpellMaskElementalBlastOverload SpellMaskStormlashTotem SpellMaskBloodlust SpellMaskStormstrike = SpellMaskStormstrikeCast | SpellMaskStormstrikeDamage SpellMaskFlameShock = SpellMaskFlameShockDirect | SpellMaskFlameShockDot SpellMaskFire = SpellMaskFlameShock | SpellMaskLavaBurst | SpellMaskLavaBurstOverload | SpellMaskLavaLash | SpellMaskFireNova | SpellMaskUnleashFlame | SpellMaskLavaBeam | SpellMaskLavaBeamOverload | SpellMaskElementalBlast | SpellMaskElementalBlastOverload SpellMaskNature = SpellMaskLightningBolt | SpellMaskLightningBoltOverload | SpellMaskChainLightning | SpellMaskChainLightningOverload | SpellMaskEarthShock | SpellMaskThunderstorm | SpellMaskFulmination | SpellMaskElementalBlast | SpellMaskElementalBlastOverload SpellMaskFrost = SpellMaskUnleashFrost | SpellMaskFrostShock | SpellMaskElementalBlast | SpellMaskElementalBlastOverload SpellMaskOverload = SpellMaskLavaBurstOverload | SpellMaskLightningBoltOverload | SpellMaskChainLightningOverload | SpellMaskElementalBlastOverload | SpellMaskLavaBeamOverload SpellMaskShock = SpellMaskFlameShock | SpellMaskEarthShock | SpellMaskFrostShock SpellMaskTotem = SpellMaskMagmaTotem | SpellMaskSearingTotem | SpellMaskFireElementalTotem | SpellMaskEarthElementalTotem | SpellMaskStormlashTotem SpellMaskInstantSpell = SpellMaskAscendance | SpellMaskFeralSpirit | SpellMaskUnleashElements | SpellMaskBloodlust )
const ( // This could be value or bitflag if we ended up needing multiple flags at the same time. //1 to 5 are used by MaelstromWeapon Stacks CastTagLightningOverload int32 = 6 )
const TotemRefreshTime5M = time.Second * 295
Start looking to refresh 5 minute totems at 4:55.
Variables ¶
var EarthElementalSpellPowerScaling = 1.3 // Estimated from beta testing
var FireElementalSpellPowerScaling = 0.36
var ItemSetBattlegearOfTheFirebird = core.NewItemSet(core.ItemSet{ Name: "Battlegear of the Firebird", DisabledInChallengeMode: true, Bonuses: map[int32]core.ApplySetBonus{ 2: func(_ core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Pct, ClassMask: SpellMaskLavaLash, FloatValue: 0.15, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() shaman.T14Enh4pc = setBonusAura }, }, })
T14 enh (2) Set: Increases the damage done by your Lava Lash ability by 15%. (4) Set: Increases the critical strike chance bonus from your Stormstrike ability by an additional 15%.
var ItemSetBattlegearOfTheWitchDoctor = core.NewItemSet(core.ItemSet{ Name: "Battlegear of the Witch Doctor", DisabledInChallengeMode: true, Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Battlegear of the Witch Doctor 2P", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ClassSpellMask: SpellMaskStormstrikeCast, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { shaman.MaelstromWeaponAura.Activate(sim) shaman.MaelstromWeaponAura.SetStacks(sim, shaman.MaelstromWeaponAura.GetStacks()+2) }, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Battlegear of the Witch Doctor 4P", Callback: core.CallbackOnCastComplete, ClassSpellMask: SpellMaskWindfuryWeapon, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { shaman.FeralSpirit.CD.Reduce(time.Second * 8) shaman.UpdateMajorCooldowns() }, }) }, }, })
T15 enh (2) Set: Your Stormstrike also grants you 2 additional charges of Maelstrom Weapon. (4) Set: The cooldown of your Feral Spirits is reduced by 8 sec each time Windfury Weapon is triggered.
var ItemSetCelesialHarmonyBattlegear = core.NewItemSet(core.ItemSet{ Name: "Celestial Harmony Battlegear", DisabledInChallengeMode: true, Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() var imbueSpells []*core.Spell shaman.OnSpellRegistered(func(spell *core.Spell) { if spell.Matches(SpellMaskWindfuryWeapon | SpellMaskFrostbrandWeapon | SpellMaskFlametongueWeapon) { imbueSpells = append(imbueSpells, spell) } }) procAura := core.MakeProcTriggerAura(&shaman.Unit, core.ProcTrigger{ Name: "Celestial Harmony Battlegear 2P Proc", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcMask: core.ProcMaskMeleeOrMeleeProc, ICD: time.Millisecond * 100, ProcChance: 0.1, Duration: time.Second * 10, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if len(imbueSpells) == 0 { return } rand := int(math.Floor(sim.RollWithLabel(0, float64(len(imbueSpells)), "Enh 4PT16 Proc"))) imbueSpells[rand].Cast(sim, result.Target) }, }) setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Celestial Harmony Battlegear 2P", Callback: core.CallbackOnCastComplete, ClassSpellMask: SpellMaskUnleashElements, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { procAura.Activate(sim) }, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Celestial Harmony Battlegear 4P", Callback: core.CallbackOnPeriodicDamageDealt, ClassSpellMask: SpellMaskFlameShockDot, ProcChance: 0.05, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { sfAura := shaman.GetAura("Searing Flames") if sfAura != nil { sfAura.Activate(sim) sfAura.SetStacks(sim, sfAura.GetStacks()+5) shaman.LavaLash.CD.Reset() } }, }) }, }, })
T16 enh 2 pieces: For 10 sec after using Unleash Elements, your attacks have a chance to unleash a random weapon imbue. 4 pieces: When Flame Shock deals periodic damage, you have a 5% chance to gain 5 stacks of Searing Flames and reset the cooldown of Lava Lash.
var ItemSetCelestialHarmonyRegalia = core.NewItemSet(core.ItemSet{ Name: "Celestial Harmony Regalia", DisabledInChallengeMode: true, Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() debuffAuras := shaman.NewEnemyAuraArray(func(target *core.Unit) *core.Aura { return target.GetOrRegisterAura(core.Aura{ Label: "Elemental Discharge - " + shaman.Label, ActionID: core.ActionID{SpellID: 144999}, Duration: time.Second * 2, MaxStacks: 6, OnStacksChange: func(aura *core.Aura, sim *core.Simulation, oldStacks, newStacks int32) { aura.Duration = time.Second * 2 * time.Duration(newStacks) aura.Refresh(sim) core.EnableDamageDoneByCaster(DDBC_2PT16, DDBC_Total, shaman.AttackTables[aura.Unit.UnitIndex], func(sim *core.Simulation, spell *core.Spell, attackTable *core.AttackTable) float64 { if spell.SpellSchool.Matches(core.SpellSchoolNature | core.SpellSchoolFire) { return 1.0 + float64(newStacks)*0.04 } return 1.0 }) }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { aura.Duration = time.Second * 2 core.DisableDamageDoneByCaster(DDBC_2PT16, shaman.AttackTables[aura.Unit.UnitIndex]) }, }) }) setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Celestial Harmony Regalia 2P", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ClassSpellMask: SpellMaskFulmination, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { debuff := debuffAuras.Get(result.Target) debuff.Activate(sim) debuff.SetStacks(sim, shaman.LightningShieldAura.GetStacks()-1) }, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Celestial Harmony Regalia 4P", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ClassSpellMask: SpellMaskLightningBolt | SpellMaskChainLightning, ICD: time.Second * 60, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { }, }) }, }, })
T16 elem (2) Set: Fulmination increases all Fire and Nature damage dealt to that target from the Shaman by 4% for 2 sec per Lightning Shield charge consumed. (4) Set: Your Lightning Bolt and Chain Lightning spells have a chance to summon a Lightning Elemental to fight by your side for 10 sec.
var ItemSetGladiatorsEarthshaker = core.NewItemSet(core.ItemSet{ Name: "Gladiator's Earthshaker", DisabledInChallengeMode: true, Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() shaman.S12Enh2pc = setBonusAura }, 4: func(agent core.Agent, setBonusAura *core.Aura) {}, }, })
S12 enh (2) Set: Increases the chance to trigger your Maelstrom Weapon talent by 20%. (4) Set: While your weapon is imbued with Flametongue Weapon, your attacks also slow the target's movement speed by 50% for 3 sec.
var ItemSetRegaliaOfTheFirebird = core.NewItemSet(core.ItemSet{ Name: "Regalia of the Firebird", DisabledInChallengeMode: true, Bonuses: map[int32]core.ApplySetBonus{ 2: func(_ core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Pct, FloatValue: 0.05, ClassMask: SpellMaskLightningBolt | SpellMaskLightningBoltOverload, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() shaman.T14Ele4pc = setBonusAura }, }, })
T14 elem (2) Set: Increases the damage done by your Lightning Bolt spell by 5%. (4) Set: Your Rolling Thunder ability now grants 2 Lightning Shield charges each time it triggers.
var ItemSetRegaliaOfTheWitchDoctor = core.NewItemSet(core.ItemSet{ Name: "Regalia of the Witch Doctor", DisabledInChallengeMode: true, Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() lightningStrike := shaman.RegisterSpell(core.SpellConfig{ ActionID: core.ActionID{SpellID: 138146}, SpellSchool: core.SpellSchoolNature, ProcMask: core.ProcMaskSpellProc, CritMultiplier: shaman.DefaultCritMultiplier(), MissileSpeed: 20, ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { baseDamage := sim.RollWithLabel(32375, 37625, "Lighting Strike 2pT14") nTargets := shaman.Env.ActiveTargetCount() spell.CalcAoeDamage(sim, baseDamage/float64(nTargets), spell.OutcomeMagicHitAndCrit) spell.WaitTravelTime(sim, func(sim *core.Simulation) { spell.DealBatchedAoeDamage(sim) }) }, }) setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Regalia of the Witch Doctor 2P", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcChance: 0.1, ClassSpellMask: SpellMaskLightningBolt | SpellMaskChainLightningOverload | SpellMaskLavaBeam | SpellMaskLavaBeamOverload | SpellMaskChainLightning | SpellMaskChainLightningOverload, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { lightningStrike.Cast(sim, result.Target) }, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Regalia of the Witch Doctor 4P", Callback: core.CallbackOnCastComplete, ClassSpellMask: SpellMaskLavaBurst, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { shaman.Ascendance.CD.Reduce(time.Millisecond * 1500) shaman.UpdateMajorCooldowns() }, }) }, }, })
T15 elem (2) Set: Your Lightning Bolt, Chain Lighting, and Lava Beam hits have a 10% chance to cause a Lightning Strike at the target's location, dealing 32375 to 37625 Nature damage divided among all non-crowd controlled targets within 10 yards. (4) Set: The cooldown of your Ascendance is reduced by 1 sec each time you cast Lava Burst.
Functions ¶
This section is empty.
Types ¶
type APLValueShamanFireElementalDuration ¶
type APLValueShamanFireElementalDuration struct {
core.DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueShamanFireElementalDuration) GetDuration ¶
func (value *APLValueShamanFireElementalDuration) GetDuration(sim *core.Simulation) time.Duration
func (*APLValueShamanFireElementalDuration) String ¶
func (value *APLValueShamanFireElementalDuration) String() string
func (*APLValueShamanFireElementalDuration) Type ¶
func (value *APLValueShamanFireElementalDuration) Type() proto.APLValueType
type APLValueTotemRemainingTime ¶
type APLValueTotemRemainingTime struct {
core.DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueTotemRemainingTime) GetDuration ¶
func (value *APLValueTotemRemainingTime) GetDuration(sim *core.Simulation) time.Duration
func (*APLValueTotemRemainingTime) String ¶
func (value *APLValueTotemRemainingTime) String() string
func (*APLValueTotemRemainingTime) Type ¶
func (value *APLValueTotemRemainingTime) Type() proto.APLValueType
type EarthElemental ¶
type EarthElemental struct {
core.Pet
Pulverize *core.Spell
// contains filtered or unexported fields
}
func (*EarthElemental) ExecuteCustomRotation ¶
func (earthElemental *EarthElemental) ExecuteCustomRotation(sim *core.Simulation)
func (*EarthElemental) GetPet ¶
func (earthElemental *EarthElemental) GetPet() *core.Pet
func (*EarthElemental) Initialize ¶
func (earthElemental *EarthElemental) Initialize()
func (*EarthElemental) OnEncounterStart ¶ added in v0.0.13
func (earthElemental *EarthElemental) OnEncounterStart(_ *core.Simulation)
func (*EarthElemental) Reset ¶
func (earthElemental *EarthElemental) Reset(_ *core.Simulation)
func (*EarthElemental) TryCast ¶
func (earthElemental *EarthElemental) TryCast(sim *core.Simulation, target *core.Unit, spell *core.Spell) bool
type FireElemental ¶
type FireElemental struct {
core.Pet
FireBlast *core.Spell
FireNova *core.Spell
Immolate *core.Spell
Empower *core.Spell
// contains filtered or unexported fields
}
func (*FireElemental) ExecuteCustomRotation ¶
func (fireElemental *FireElemental) ExecuteCustomRotation(sim *core.Simulation)
func (*FireElemental) GetPet ¶
func (fireElemental *FireElemental) GetPet() *core.Pet
func (*FireElemental) Initialize ¶
func (fireElemental *FireElemental) Initialize()
func (*FireElemental) OnEncounterStart ¶ added in v0.0.13
func (fireElemental *FireElemental) OnEncounterStart(_ *core.Simulation)
func (*FireElemental) Reset ¶
func (fireElemental *FireElemental) Reset(_ *core.Simulation)
func (*FireElemental) TryCast ¶
func (fireElemental *FireElemental) TryCast(sim *core.Simulation, target *core.Unit, spell *core.Spell) bool
type SelfBuffs ¶
type SelfBuffs struct {
Shield proto.ShamanShield
ImbueMH proto.ShamanImbue
ImbueOH proto.ShamanImbue
}
Which buffs this shaman is using.
type ShamSpellConfig ¶
type Shaman ¶
type Shaman struct {
core.Character
ClassSpellScaling float64
ThunderstormInRange bool // flag if thunderstorm will be in range.
Talents *proto.ShamanTalents
SelfBuffs SelfBuffs
Totems *proto.ShamanTotems
FeleAutocast *proto.FeleAutocastSettings
// The expiration time of each totem (earth, air, fire, water).
TotemExpirations [4]time.Duration
LightningBolt *core.Spell
LightningBoltOverload [2]*core.Spell
ChainLightning *core.Spell
ChainLightningOverloads [2][]*core.Spell
LavaBeam *core.Spell
LavaBeamOverloads [2][]*core.Spell
LavaBurst *core.Spell
LavaBurstOverload [2]*core.Spell
FireNova *core.Spell
FireNovas []*core.Spell
LavaLash *core.Spell
Stormstrike *core.Spell
PrimalStrike *core.Spell
Stormblast *core.Spell
LightningShield *core.Spell
LightningShieldDamage *core.Spell
LightningShieldAura *core.Aura
Fulmination *core.Spell
ElementalBlast *core.Spell
ElementalBlastOverload [2]*core.Spell
Earthquake *core.Spell
Thunderstorm *core.Spell
EarthShock *core.Spell
FlameShock *core.Spell
FrostShock *core.Spell
FeralSpirit *core.Spell
FireElemental *FireElemental
FireElementalTotem *core.Spell
EarthElemental *EarthElemental
EarthElementalTotem *core.Spell
Ascendance *core.Spell
AscendanceAura *core.Aura
MagmaTotem *core.Spell
HealingStreamTotem *core.Spell
SearingTotem *core.Spell
TremorTotem *core.Spell
UnleashElements *core.Spell
UnleashLife *core.Spell
UnleashFlame *core.Spell
UnleashFrost *core.Spell
UnleashWind *core.Spell
MaelstromWeaponAura *core.Aura
AncestralSwiftnessInstantAura *core.Aura
SearingFlames *core.Spell
SearingFlamesMultiplier float64
AncestralAwakening *core.Spell
HealingSurge *core.Spell
GreaterHealingWave *core.Spell
HealingWave *core.Spell
ChainHeal *core.Spell
Riptide *core.Spell
EarthShield *core.Spell
// Item sets
T14Ele4pc *core.Aura
T14Enh4pc *core.Aura
T15Enh2pc *core.Aura
S12Enh2pc *core.Aura
// contains filtered or unexported fields
}
Shaman represents a shaman character.
func (*Shaman) AddRaidBuffs ¶
func (*Shaman) ApplyAncestralSwiftness ¶
func (shaman *Shaman) ApplyAncestralSwiftness()
func (*Shaman) ApplyEarthlivingImbueToItem ¶
func (*Shaman) ApplyEchoOfTheElements ¶
func (shaman *Shaman) ApplyEchoOfTheElements()
func (*Shaman) ApplyElementalBlast ¶
func (shaman *Shaman) ApplyElementalBlast()
func (*Shaman) ApplyElementalMastery ¶
func (shaman *Shaman) ApplyElementalMastery()
func (*Shaman) ApplyElementalTalents ¶
func (shaman *Shaman) ApplyElementalTalents()
func (*Shaman) ApplyEnhancementTalents ¶
func (shaman *Shaman) ApplyEnhancementTalents()
func (*Shaman) ApplyFlametongueImbue ¶
func (*Shaman) ApplyFlametongueImbueSwap ¶
func (*Shaman) ApplyFlametongueImbueToItem ¶
func (*Shaman) ApplyGlyphs ¶
func (shaman *Shaman) ApplyGlyphs()
func (*Shaman) ApplyPrimalElementalist ¶
func (shaman *Shaman) ApplyPrimalElementalist()
func (*Shaman) ApplyTalents ¶
func (shaman *Shaman) ApplyTalents()
func (*Shaman) ApplyUnleashedFury ¶
func (shaman *Shaman) ApplyUnleashedFury()
func (*Shaman) BloodlustActionID ¶
func (*Shaman) FrostbrandDebuffAura ¶
func (*Shaman) GetCharacter ¶
func (*Shaman) GetOverloadChance ¶
func (*Shaman) HasMajorGlyph ¶
func (shaman *Shaman) HasMajorGlyph(glyph proto.ShamanMajorGlyph) bool
func (*Shaman) HasMinorGlyph ¶
func (shaman *Shaman) HasMinorGlyph(glyph proto.ShamanMinorGlyph) bool
func (*Shaman) Initialize ¶
func (shaman *Shaman) Initialize()
func (*Shaman) NewAPLValue ¶
func (*Shaman) NewChainSpellConfig ¶
func (shaman *Shaman) NewChainSpellConfig(config ShamSpellConfig) core.SpellConfig
func (*Shaman) NewEarthElemental ¶
func (shaman *Shaman) NewEarthElemental(isGuardian bool) *EarthElemental
func (*Shaman) NewFireElemental ¶
func (shaman *Shaman) NewFireElemental(isGuardian bool) *FireElemental
func (*Shaman) OnEncounterStart ¶ added in v0.0.13
func (shaman *Shaman) OnEncounterStart(sim *core.Simulation)
func (*Shaman) RegisterEarthlivingImbue ¶
func (*Shaman) RegisterFlametongueImbue ¶
func (*Shaman) RegisterFrostbrandImbue ¶
func (*Shaman) RegisterHealingSpells ¶
func (shaman *Shaman) RegisterHealingSpells()
func (*Shaman) RegisterWindfuryImbue ¶
func (*Shaman) Reset ¶
func (shaman *Shaman) Reset(sim *core.Simulation)
func (*Shaman) StormlashActionID ¶
type ShamanAgent ¶
type ShamanAgent interface {
core.Agent
// The Shaman controlled by this Agent.
GetShaman() *Shaman
}
Implemented by each Shaman spec.
Source Files
¶
- apl_values.go
- ascendance.go
- bloodlust.go
- chain_lightning.go
- earth_elemental_pet.go
- earth_elemental_spells.go
- earth_elemental_totem.go
- electric_spell.go
- elemental_blast.go
- fire_elemental_pet.go
- fire_elemental_spells.go
- fire_elemental_totem.go
- fire_totems.go
- glyphs.go
- items_mop.go
- lightning_bolt.go
- lightning_shield.go
- shaman.go
- shocks.go
- spiritwalkers_grace.go
- stormlash_totem.go
- talents.go
- talents_elemental.go
- talents_enhancement.go
- totems.go
- unleash_elements.go
- weapon_imbues.go