Documentation ¶
Index ¶
- Constants
- Variables
- type APLValueShamanCanSnapshotStrongerFireElemental
- type APLValueShamanFireElementalDuration
- type APLValueTotemRemainingTime
- type EarthElemental
- type FireElemental
- func (fireElemental *FireElemental) ExecuteCustomRotation(sim *core.Simulation)
- func (fireElemental *FireElemental) GetPet() *core.Pet
- func (fireElemental *FireElemental) Initialize()
- func (fireElemental *FireElemental) Reset(_ *core.Simulation)
- func (fireElemental *FireElemental) TryCast(sim *core.Simulation, target *core.Unit, spell *core.Spell) bool
- type SelfBuffs
- type Shaman
- func (shaman *Shaman) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (shaman *Shaman) ApplyEarthlivingImbueToItem(item *core.Item)
- 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) ApplyTalents()
- func (shaman *Shaman) BloodlustActionID() core.ActionID
- func (shaman *Shaman) FrostbrandDebuffAura(target *core.Unit) *core.Aura
- func (shaman *Shaman) GetCharacter() *core.Character
- func (shaman *Shaman) GetMentalQuicknessBonus() float64
- func (shaman *Shaman) GetOverloadChance() float64
- func (shaman *Shaman) HasMajorGlyph(glyph proto.ShamanMajorGlyph) bool
- func (shaman *Shaman) HasMinorGlyph(glyph proto.ShamanMinorGlyph) bool
- func (shaman *Shaman) HasPrimeGlyph(glyph proto.ShamanPrimeGlyph) bool
- func (shaman *Shaman) Initialize()
- func (shaman *Shaman) NewAPLValue(rot *core.APLRotation, config *proto.APLValue) core.APLValue
- func (shaman *Shaman) NewEarthElemental() *EarthElemental
- func (shaman *Shaman) NewFireElemental() *FireElemental
- func (shaman *Shaman) NewSpiritWolf(index int) *SpiritWolf
- 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) RegisterOnItemSwapWithImbue(effectID int32, procMask *core.ProcMask, aura *core.Aura)
- func (shaman *Shaman) RegisterWindfuryImbue(procMask core.ProcMask)
- func (shaman *Shaman) Reset(sim *core.Simulation)
- func (shaman *Shaman) StormstrikeDebuffAura(target *core.Unit) *core.Aura
- type ShamanAgent
- type SpiritWolf
- type SpiritWolves
Constants ¶
const ( DDBC_4pcT12 int = iota DDBC_FrostbrandWeapon DDBC_Total )
Damage Done By Caster setup
const ( SpellFlagShock = core.SpellFlagAgentReserved1 SpellFlagElectric = core.SpellFlagAgentReserved2 SpellFlagTotem = 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 SpellMaskFlameShockDirect SpellMaskFlameShockDot SpellMaskLavaBurst SpellMaskLavaBurstOverload SpellMaskLavaLash SpellMaskLightningBolt SpellMaskLightningBoltOverload SpellMaskChainLightning SpellMaskChainLightningOverload SpellMaskEarthShock SpellMaskLightningShield SpellMaskThunderstorm SpellMaskFireNova SpellMaskMagmaTotem SpellMaskSearingTotem SpellMaskPrimalStrike SpellMaskStormstrikeCast SpellMaskStormstrikeDamage SpellMaskEarthShield SpellMaskFulmination SpellMaskFrostShock SpellMaskUnleashFrost SpellMaskUnleashFlame SpellMaskEarthquake SpellMaskFlametongueWeapon SpellMaskFeralSpirit SpellMaskElementalMastery SpellMaskSpiritwalkersGrace SpellMaskStormstrike = SpellMaskStormstrikeCast | SpellMaskStormstrikeDamage SpellMaskFlameShock = SpellMaskFlameShockDirect | SpellMaskFlameShockDot SpellMaskFire = SpellMaskFlameShock | SpellMaskLavaBurst | SpellMaskLavaBurstOverload | SpellMaskLavaLash | SpellMaskFireNova | SpellMaskUnleashFlame SpellMaskNature = SpellMaskLightningBolt | SpellMaskLightningBoltOverload | SpellMaskChainLightning | SpellMaskChainLightningOverload | SpellMaskEarthShock | SpellMaskThunderstorm | SpellMaskFulmination SpellMaskFrost = SpellMaskUnleashFrost | SpellMaskFrostShock SpellMaskOverload = SpellMaskLavaBurstOverload | SpellMaskLightningBoltOverload | SpellMaskChainLightningOverload )
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 PetExpertiseScale = 3.25
const TotemRefreshTime5M = time.Second * 295
Start looking to refresh 5 minute totems at 4:55.
Variables ¶
var EarthElementalSpellPowerScaling = 0.749
var FireElementalIntellectScaling = 0.3198
var FireElementalSpellPowerScaling = 0.5883
var ItemSetRagingElementsBattlegear = core.NewItemSet(core.ItemSet{ Name: "Battlegear of the Raging Elements", Bonuses: map[int32]core.ApplySetBonus{ 2: func(_ core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Flat, FloatValue: .10, ClassMask: SpellMaskLavaLash | SpellMaskStormstrike, }) }, 4: func(_ core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_BonusCrit_Percent, FloatValue: 10, ClassMask: SpellMaskLightningBolt, }) }, }, })
T11 enh (2) Set: Increases damage done by your Lava Lash and Stormstrike abilities by 10%. (4) Set: Increases the critical strike chance of your Lightning Bolt spell by 10%.
var ItemSetRagingElementsRegalia = core.NewItemSet(core.ItemSet{ Name: "Regalia of the Raging Elements", Bonuses: map[int32]core.ApplySetBonus{ 2: func(_ core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_BonusCrit_Percent, FloatValue: 10, ClassMask: SpellMaskFlameShock, }) }, 4: func(_ core.Agent, setBonusAura *core.Aura) { setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_CastTime_Pct, FloatValue: -0.1, ClassMask: SpellMaskLightningBolt, }) }, }, })
T11 elem (2) Set: Increases the critical strike chance of your Flame Shock spell by 10%. (4) Set: Reduces the cast time of your Lightning Bolt spell by 10%.
var ItemSetSpiritwalkersBattlegear = core.NewItemSet(core.ItemSet{ Name: "Spiritwalker's Battlegear", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() if shaman.Talents.MaelstromWeapon == 0 { return } shaman.OnSpellRegistered(func(spell *core.Spell) { if !spell.Matches(SpellMaskFeralSpirit) { return } dmgMod := shaman.AddDynamicMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Pct, FloatValue: 0.2, ClassMask: SpellMaskLightningBolt | SpellMaskChainLightning, }) temporalMaelstrom := shaman.RegisterAura(core.Aura{ Label: "Temporal Maelstrom" + shaman.Label, ActionID: core.ActionID{SpellID: 105869}, Duration: time.Second * 30, OnGain: func(aura *core.Aura, sim *core.Simulation) { dmgMod.Activate() shaman.PseudoStats.HealingDealtMultiplier *= 1.2 }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { dmgMod.Deactivate() shaman.PseudoStats.HealingDealtMultiplier /= 1.2 }, }) shaman.MaelstromWeaponAura.ApplyOnGain(func(aura *core.Aura, sim *core.Simulation) { if setBonusAura.IsActive() { temporalMaelstrom.Activate(sim) } }) shaman.MaelstromWeaponAura.ApplyOnExpire(func(aura *core.Aura, sim *core.Simulation) { temporalMaelstrom.Deactivate(sim) }) }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() if !shaman.Talents.FeralSpirit || shaman.Talents.MaelstromWeapon == 0 { return } wolfProcTriggerConfig := core.ProcTrigger{ Name: "Spiritwalker's Battlegear 4pc" + shaman.Label, ActionID: core.ActionID{SpellID: 105872}, Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcMask: core.ProcMaskMelee, Harmful: true, ProcChance: 0.45, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { shaman.MaelstromWeaponAura.Activate(sim) shaman.MaelstromWeaponAura.AddStack(sim) }, } spiritWolves := []*SpiritWolf{shaman.SpiritWolves.SpiritWolf1, shaman.SpiritWolves.SpiritWolf2} for _, wolf := range spiritWolves { aura := setBonusAura.MakeDependentProcTriggerAura(&wolf.Unit, wolfProcTriggerConfig) wolf.Pet.OnPetEnable = func(sim *core.Simulation) { if setBonusAura.IsActive() { aura.Activate(sim) } } wolf.Pet.OnPetDisable = func(sim *core.Simulation) { aura.Deactivate(sim) } } }, }, })
T13 enh 2 pieces: While you have any stacks of Maelstrom Weapon, your Lightning Bolt, Chain Lightning, and healing spells deal 20% more healing or damage. 4 pieces: Your Feral Spirits have a 45% chance to grant you a charge of Maelstrom Weapon each time they deal damage.
var ItemSetSpiritwalkersRegalia = core.NewItemSet(core.ItemSet{ Name: "Spiritwalker's Regalia", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() aura := shaman.NewTemporaryStatsAura("Fury of the Ancestors", core.ActionID{SpellID: 105779}, stats.Stats{stats.MasteryRating: 2000}, 15*time.Second, ) setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Item - Shaman T13 Elemental 2P Bonus (Elemental Mastery)", ActionID: core.ActionID{SpellID: 105780}, ClassSpellMask: SpellMaskElementalMastery, Callback: core.CallbackOnCastComplete, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { aura.Activate(sim) }, }) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { character := agent.(ShamanAgent).GetCharacter() procAura := core.MakeStackingAura(character, core.StackingStatAura{ Aura: core.Aura{ Label: "Time Rupture", ActionID: core.ActionID{SpellID: 105821}, Duration: 4 * time.Second, MaxStacks: 3, }, BonusPerStack: stats.Stats{stats.HasteRating: 250}, }) setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Spiritwalker's Regalia 4P", ClassSpellMask: SpellMaskOverload, Callback: core.CallbackOnCastComplete, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { procAura.Activate(sim) procAura.AddStack(sim) }, }) }, }, })
T13 elem (2) Set: Elemental Mastery also grants you 2000 mastery rating 15 sec. (4) Set: Each time Elemental Overload triggers, you gain 250 haste rating for 4 sec, stacking up to 3 times.
var ItemSetSpiritwalkersVestments = core.NewItemSet(core.ItemSet{ Name: "Spiritwalker's Vestments", Bonuses: map[int32]core.ApplySetBonus{ 2: func(_ core.Agent, _ *core.Aura) { }, 4: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() hasteMulti := 1.30 aura := shaman.RegisterAura(core.Aura{ Label: "Item - Shaman T13 Restoration 4P Bonus (Spiritwalker's Grace)", ActionID: core.ActionID{SpellID: 105876}, Duration: shaman.spiritwalkersGraceBaseDuration(), OnGain: func(aura *core.Aura, sim *core.Simulation) { shaman.MultiplyCastSpeed(hasteMulti) shaman.MultiplyAttackSpeed(sim, hasteMulti) }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { shaman.MultiplyCastSpeed(1 / hasteMulti) shaman.MultiplyAttackSpeed(sim, 1/hasteMulti) }, }) setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Item - Shaman T13 Restoration 4P Bonus (Spiritwalker's Grace) - Proc", ActionID: core.ActionID{SpellID: 105876}, ClassSpellMask: SpellMaskSpiritwalkersGrace, Callback: core.CallbackOnApplyEffects, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { aura.Activate(sim) }, }) setBonusAura.AttachSpellMod(core.SpellModConfig{ Kind: core.SpellMod_BuffDuration_Flat, ClassMask: SpellMaskSpiritwalkersGrace, TimeValue: 5 * time.Second, }) }, }, })
T13 Resto (2) Set: After using Mana Tide Totem, the cost of your healing spells are reduced by 25% for 15 sec. (4) Set: Increases the duration of Spiritwalker's Grace by 5 sec, and you gain 30% haste while Spiritwalker's grace is active.
var ItemSetTidefury = core.NewItemSet(core.ItemSet{ Name: "Tidefury Raiment", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() shaman.DungeonSet3 = setBonusAura }, 4: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() if shaman.SelfBuffs.Shield == proto.ShamanShield_WaterShield { setBonusAura.AttachStatBuff(stats.MP5, 3) } }, }, })
Dungeon Set 3 Tidefury Raiment (2) Set: Your Chain Lightning Spell now only loses 17% of its damage per jump. (4) Set: Your Water Shield ability grants an additional 56 mana each time it triggers and an additional 3 mana per 5 sec.
var ItemSetVolcanicBattlegear = core.NewItemSet(core.ItemSet{ Name: "Volcanic Battlegear", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() shaman.T12Enh2pc = setBonusAura }, 4: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() stormFireAuras := shaman.NewEnemyAuraArray(func(target *core.Unit) *core.Aura { return target.GetOrRegisterAura(core.Aura{ Label: "Stormfire-" + shaman.Label, ActionID: core.ActionID{SpellID: 99212}, Duration: time.Second * 15, OnGain: func(aura *core.Aura, _ *core.Simulation) { core.EnableDamageDoneByCaster(DDBC_4pcT12, DDBC_Total, shaman.AttackTables[aura.Unit.UnitIndex], tier12StormstrikeBonus) }, OnExpire: func(aura *core.Aura, _ *core.Simulation) { core.DisableDamageDoneByCaster(DDBC_4pcT12, shaman.AttackTables[aura.Unit.UnitIndex]) }, }) }) setBonusAura.AttachProcTrigger(core.ProcTrigger{ Name: "Item - Shaman T12 Enhancement 4P Bonus", ActionID: core.ActionID{SpellID: 99213}, Callback: core.CallbackOnSpellHitDealt, ClassSpellMask: SpellMaskStormstrikeCast, Outcome: core.OutcomeLanded, ProcChance: 1, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { stormFire := stormFireAuras.Get(result.Target) stormFire.Activate(sim) }, }) }, }, })
T12 enh (2) Set: Your Lava Lash gains an additional 5% damage increase per application of Searing Flames on the target. (4) Set: Your Stormstrike ability also causes the target to take 6% increased damage from your Fire Nova, Flame Shock, Flametongue Weapon, Lava Burst, Lava Lash, and Unleash Flame abilities.
var ItemSetVolcanicRegalia = core.NewItemSet(core.ItemSet{ Name: "Volcanic Regalia", Bonuses: map[int32]core.ApplySetBonus{ 2: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() var procConfig core.ProcTrigger if shaman.useDragonSoul_2PT12 { procConfig = core.ProcTrigger{ Name: "Volcanic Regalia 2P", ClassSpellMask: SpellMaskLightningBolt, ProcChance: 0.3, Callback: core.CallbackOnSpellHitDealt, ExtraCondition: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) bool { return shaman.FireElementalTotem != nil }, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { shaman.FireElementalTotem.CD.Reduce(4 * time.Second) }, } } else { procConfig = core.ProcTrigger{ Name: "Volcanic Regalia 2P", ProcMask: core.ProcMaskSpellDamage, Outcome: core.OutcomeLanded, ProcChance: 0.08, Callback: core.CallbackOnSpellHitDealt, ICD: time.Second * 105, ExtraCondition: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) bool { return !spell.Matches(SpellMaskOverload) }, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { shaman.FireElementalTotem.CD.Reset() }, } } setBonusAura.AttachProcTrigger(procConfig) }, 4: func(agent core.Agent, setBonusAura *core.Aura) { shaman := agent.(ShamanAgent).GetShaman() instantLavaSurgeMod := shaman.AddDynamicMod(core.SpellModConfig{ Kind: core.SpellMod_CastTime_Pct, FloatValue: -1, ClassMask: SpellMaskLavaBurst, }) shaman.VolcanicRegalia4PT12Aura = shaman.RegisterAura(core.Aura{ Label: "Volcano", ActionID: core.ActionID{SpellID: 99207}, Duration: 10 * time.Second, OnGain: func(aura *core.Aura, sim *core.Simulation) { instantLavaSurgeMod.Activate() }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { instantLavaSurgeMod.Deactivate() }, }) shaman.T12Ele4pc = setBonusAura }, }, })
T12 elem (2) Set: Your Lightning Bolt has a 30% chance to reduce the remaining cooldown on your Fire Elemental Totem by 4 sec. (4) Set: Your Lava Surge talent also makes Lava Burst instant when it triggers.
var StormstrikeActionID = core.ActionID{SpellID: 17364}
var TalentTreeSizes = [3]int{19, 19, 20}
Functions ¶
This section is empty.
Types ¶
type APLValueShamanCanSnapshotStrongerFireElemental ¶ added in v0.0.126
type APLValueShamanCanSnapshotStrongerFireElemental struct { core.DefaultAPLValueImpl // contains filtered or unexported fields }
func (*APLValueShamanCanSnapshotStrongerFireElemental) GetBool ¶ added in v0.0.126
func (value *APLValueShamanCanSnapshotStrongerFireElemental) GetBool(sim *core.Simulation) bool
func (*APLValueShamanCanSnapshotStrongerFireElemental) String ¶ added in v0.0.126
func (value *APLValueShamanCanSnapshotStrongerFireElemental) String() string
func (*APLValueShamanCanSnapshotStrongerFireElemental) Type ¶ added in v0.0.126
func (value *APLValueShamanCanSnapshotStrongerFireElemental) Type() proto.APLValueType
type APLValueShamanFireElementalDuration ¶ added in v0.0.129
type APLValueShamanFireElementalDuration struct { core.DefaultAPLValueImpl // contains filtered or unexported fields }
func (*APLValueShamanFireElementalDuration) GetDuration ¶ added in v0.0.129
func (value *APLValueShamanFireElementalDuration) GetDuration(sim *core.Simulation) time.Duration
func (*APLValueShamanFireElementalDuration) String ¶ added in v0.0.129
func (value *APLValueShamanFireElementalDuration) String() string
func (*APLValueShamanFireElementalDuration) Type ¶ added in v0.0.129
func (value *APLValueShamanFireElementalDuration) Type() proto.APLValueType
type APLValueTotemRemainingTime ¶ added in v0.0.126
type APLValueTotemRemainingTime struct { core.DefaultAPLValueImpl // contains filtered or unexported fields }
func (*APLValueTotemRemainingTime) GetDuration ¶ added in v0.0.126
func (value *APLValueTotemRemainingTime) GetDuration(sim *core.Simulation) time.Duration
func (*APLValueTotemRemainingTime) String ¶ added in v0.0.126
func (value *APLValueTotemRemainingTime) String() string
func (*APLValueTotemRemainingTime) Type ¶ added in v0.0.126
func (value *APLValueTotemRemainingTime) Type() proto.APLValueType
type EarthElemental ¶
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) Reset ¶
func (earthElemental *EarthElemental) Reset(_ *core.Simulation)
type FireElemental ¶
type FireElemental struct { core.Pet FireBlast *core.Spell FireNova *core.Spell FireShieldAura *core.Aura // 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) 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 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 TotemElements *proto.TotemSet TotemsAncestors *proto.TotemSet TotemsSpirits *proto.TotemSet // The expiration time of each totem (earth, air, fire, water). TotemExpirations [4]time.Duration LightningBolt *core.Spell LightningBoltOverload *core.Spell ChainLightning *core.Spell ChainLightningHits []*core.Spell ChainLightningOverloads []*core.Spell LavaBurst *core.Spell LavaBurstOverload *core.Spell FireNova *core.Spell LavaLash *core.Spell Stormstrike *core.Spell PrimalStrike *core.Spell LightningShield *core.Spell LightningShieldAura *core.Aura Fulmination *core.Spell Earthquake *core.Spell Thunderstorm *core.Spell EarthShock *core.Spell FlameShock *core.Spell FrostShock *core.Spell FeralSpirit *core.Spell SpiritWolves *SpiritWolves FireElemental *FireElemental FireElementalTotem *core.Spell EarthElemental *EarthElemental EarthElementalTotem *core.Spell MagmaTotem *core.Spell ManaSpringTotem *core.Spell HealingStreamTotem *core.Spell SearingTotem *core.Spell StrengthOfEarthTotem *core.Spell TremorTotem *core.Spell StoneskinTotem *core.Spell WindfuryTotem *core.Spell WrathOfAirTotem *core.Spell FlametongueTotem *core.Spell UnleashElements *core.Spell UnleashLife *core.Spell UnleashFlame *core.Spell UnleashFrost *core.Spell UnleashWind *core.Spell MaelstromWeaponAura *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 VolcanicRegalia4PT12Aura *core.Aura // Item sets DungeonSet3 *core.Aura T12Enh2pc *core.Aura T12Ele4pc *core.Aura // contains filtered or unexported fields }
Shaman represents a shaman character.
func (*Shaman) AddRaidBuffs ¶
func (*Shaman) ApplyEarthlivingImbueToItem ¶
func (*Shaman) ApplyFlametongueImbue ¶
func (*Shaman) ApplyFlametongueImbueSwap ¶ added in v0.0.21
func (*Shaman) ApplyFlametongueImbueToItem ¶
func (*Shaman) ApplyGlyphs ¶
func (shaman *Shaman) ApplyGlyphs()
func (*Shaman) ApplyTalents ¶
func (shaman *Shaman) ApplyTalents()
func (*Shaman) BloodlustActionID ¶
func (*Shaman) FrostbrandDebuffAura ¶
func (*Shaman) GetCharacter ¶
func (*Shaman) GetMentalQuicknessBonus ¶
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) HasPrimeGlyph ¶
func (shaman *Shaman) HasPrimeGlyph(glyph proto.ShamanPrimeGlyph) bool
func (*Shaman) Initialize ¶
func (shaman *Shaman) Initialize()
func (*Shaman) NewAPLValue ¶ added in v0.0.126
func (*Shaman) NewEarthElemental ¶
func (shaman *Shaman) NewEarthElemental() *EarthElemental
func (*Shaman) NewFireElemental ¶
func (shaman *Shaman) NewFireElemental() *FireElemental
func (*Shaman) NewSpiritWolf ¶
func (shaman *Shaman) NewSpiritWolf(index int) *SpiritWolf
func (*Shaman) RegisterEarthlivingImbue ¶
func (*Shaman) RegisterFlametongueImbue ¶
func (*Shaman) RegisterFrostbrandImbue ¶
func (*Shaman) RegisterHealingSpells ¶
func (shaman *Shaman) RegisterHealingSpells()
func (*Shaman) RegisterOnItemSwapWithImbue ¶
func (*Shaman) RegisterWindfuryImbue ¶
func (*Shaman) Reset ¶
func (shaman *Shaman) Reset(sim *core.Simulation)
type ShamanAgent ¶
type ShamanAgent interface { core.Agent // The Shaman controlled by this Agent. GetShaman() *Shaman }
Implemented by each Shaman spec.
type SpiritWolf ¶
func (*SpiritWolf) ExecuteCustomRotation ¶
func (spiritWolf *SpiritWolf) ExecuteCustomRotation(_ *core.Simulation)
func (*SpiritWolf) GetPet ¶
func (spiritWolf *SpiritWolf) GetPet() *core.Pet
func (*SpiritWolf) Initialize ¶
func (spiritWolf *SpiritWolf) Initialize()
func (*SpiritWolf) Reset ¶
func (spiritWolf *SpiritWolf) Reset(sim *core.Simulation)
type SpiritWolves ¶
type SpiritWolves struct { SpiritWolf1 *SpiritWolf SpiritWolf2 *SpiritWolf }
func (*SpiritWolves) CancelGCDTimer ¶
func (SpiritWolves *SpiritWolves) CancelGCDTimer(sim *core.Simulation)
func (*SpiritWolves) EnableWithTimeout ¶
func (SpiritWolves *SpiritWolves) EnableWithTimeout(sim *core.Simulation)
Source Files ¶
- apl_values.go
- bloodlust.go
- chain_lightning.go
- earth_elemental_pet.go
- earth_elemental_totem.go
- earthquake.go
- electric_spell.go
- feral_spirit.go
- fire_elemental_pet.go
- fire_elemental_spells.go
- fire_elemental_totem.go
- fire_totems.go
- firenova.go
- glyphs.go
- items.go
- lavaburst.go
- lightning_bolt.go
- lightning_shield.go
- shaman.go
- shamanistic_rage.go
- shocks.go
- spirit_wolves.go
- spiritwalkers_grace.go
- stormstrike.go
- talents.go
- totems.go
- unleash_elements.go
- weapon_imbues.go