Documentation ¶
Index ¶
- Constants
- Variables
- type APLValueCurrentEclipsePhase
- type APLValueCurrentLunarEnergy
- type APLValueCurrentSolarEnergy
- type Druid
- func (eb *Druid) AddEclipseCallback(callback EclipseCallback)
- func (eb *Druid) AddEclipseEnergy(amount float64, kind EclipseEnergy, sim *core.Simulation, ...)
- func (druid *Druid) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (druid *Druid) ApplyBloodletting(target *core.Unit)
- func (druid *Druid) ApplyGlyphs()
- func (druid *Druid) ApplyTalents()
- func (druid *Druid) BalanceCritMultiplier() float64
- func (druid *Druid) BearArmorMultiplier() float64
- func (druid *Druid) CanApplyFaerieFireDebuff(target *core.Unit) bool
- func (eb *Druid) CanGainEnergy(kind EclipseEnergy) bool
- func (druid *Druid) CanShred() bool
- func (druid *Druid) ClearForm(sim *core.Simulation)
- func (druid *Druid) CurrentFerociousBiteCost() float64
- func (eb *Druid) CurrentLunarEnergy() int32
- func (druid *Druid) CurrentMangleCatCost() float64
- func (druid *Druid) CurrentRakeCost() float64
- func (druid *Druid) CurrentRipCost() float64
- func (druid *Druid) CurrentSavageRoarCost() float64
- func (druid *Druid) CurrentShredCost() float64
- func (eb *Druid) CurrentSolarEnergy() int32
- func (druid *Druid) CurrentSwipeCatCost() float64
- func (druid *Druid) EnableEclipseBar()
- func (eb *Druid) ForceEclipse(eclipse Eclipse, sim *core.Simulation)
- func (druid *Druid) ForceSolarEclipse(sim *core.Simulation, mastery float64)
- func (druid *Druid) GetBearWeapon() core.Weapon
- func (druid *Druid) GetCatWeapon() core.Weapon
- func (druid *Druid) GetCharacter() *core.Character
- func (druid *Druid) GetSavageRoarMultiplier() float64
- func (druid *Druid) HasEclipseBar() bool
- func (druid *Druid) HasMajorGlyph(glyph proto.DruidMajorGlyph) bool
- func (druid *Druid) HasMinorGlyph(glyph proto.DruidMinorGlyph) bool
- func (druid *Druid) HasPrimeGlyph(glyph proto.DruidPrimeGlyph) bool
- func (druid *Druid) InForm(form DruidForm) bool
- func (druid *Druid) Initialize()
- func (druid *Druid) IsMangle(spell *core.Spell) bool
- func (druid *Druid) IsSwipeSpell(spell *core.Spell) bool
- func (druid *Druid) MaxRipTicks() int32
- func (druid *Druid) NewAPLValue(rot *core.APLRotation, config *proto.APLValue) core.APLValue
- func (unit *Druid) NewLunarEnergyMetrics(actionID core.ActionID) *core.ResourceMetrics
- func (unit *Druid) NewSolarEnergyMetrics(actionID core.ActionID) *core.ResourceMetrics
- func (druid *Druid) NewTreant() *TreantPet
- func (druid *Druid) RazorClawsMultiplier(masteryRating float64) float64
- func (druid *Druid) RegisterBalanceSpells()
- func (druid *Druid) RegisterEclipseAuras()
- func (druid *Druid) RegisterFeralCatSpells()
- func (druid *Druid) RegisterFeralTankSpells()
- func (druid *Druid) RegisterSpell(formMask DruidForm, config core.SpellConfig) *DruidSpell
- func (druid *Druid) Reset(_ *core.Simulation)
- func (eb *Druid) SetEclipse(eclipse Eclipse, sim *core.Simulation)
- func (druid *Druid) ShouldFaerieFire(sim *core.Simulation, target *core.Unit) bool
- func (druid *Druid) ThickHideMultiplier() float64
- func (druid *Druid) TryApplyFaerieFireEffect(sim *core.Simulation, target *core.Unit)
- type DruidAgent
- type DruidForm
- type DruidSpell
- type Eclipse
- type EclipseCallback
- type EclipseEnergy
- type SelfBuffs
- type TreantPet
Constants ¶
View Source
const ( SpellFlagNaturesGrace = core.SpellFlagAgentReserved1 SpellFlagOmenTrigger = core.SpellFlagAgentReserved2 )
View Source
const ( DruidSpellFlagNone int64 = 0 DruidSpellBarkskin int64 = 1 << iota DruidSpellCyclone DruidSpellEntanglingRoots DruidSpellFearieFire DruidSpellHibernate DruidSpellHurricane DruidSpellInnervate DruidSpellInsectSwarm DruidSpellMoonfire DruidSpellMoonfireDoT DruidSpellNaturesGrasp DruidSpellStarfall DruidSpellStarfire DruidSpellStarsurge DruidSpellSunfire DruidSpellSunfireDoT DruidSpellThorns DruidSpellTyphoon DruidSpellWildMushroom DruidSpellWildMushroomDetonate DruidSpellWrath DruidSpellHealingTouch DruidSpellRegrowth DruidSpellLifebloom DruidSpellRejuvenation DruidSpellNourish DruidSpellTranquility DruidSpellMarkOfTheWild DruidSpellSwiftmend DruidSpellWildGrowth DruidSpellLast DruidSpellsAll = DruidSpellLast<<1 - 1 DruidSpellDoT = DruidSpellInsectSwarm | DruidSpellMoonfireDoT | DruidSpellSunfireDoT DruidSpellHoT = DruidSpellRejuvenation | DruidSpellLifebloom | DruidSpellRegrowth | DruidSpellWildGrowth DruidSpellInstant = DruidSpellBarkskin | DruidSpellInsectSwarm | DruidSpellMoonfire | DruidSpellStarfall | DruidSpellSunfire | DruidSpellFearieFire | DruidSpellBarkskin DruidArcaneSpells = DruidSpellMoonfire | DruidSpellMoonfireDoT | DruidSpellStarfire | DruidSpellStarsurge | DruidSpellStarfall DruidNatureSpells = DruidSpellInsectSwarm | DruidSpellStarsurge | DruidSpellSunfire | DruidSpellSunfireDoT | DruidSpellTyphoon | DruidSpellHurricane DruidHealingSpells = DruidSpellHealingTouch | DruidSpellRegrowth | DruidSpellRejuvenation | DruidSpellLifebloom | DruidSpellNourish | DruidSpellSwiftmend DruidDamagingSpells = DruidArcaneSpells | DruidNatureSpells )
View Source
const AnimalSpiritRegenSuppression = 0.911337
Converts from 0.009327 to 0.0085
View Source
const RipBaseNumTicks = int32(8)
Variables ¶
View Source
var ItemSetGladiatorsSanctuary = core.NewItemSet(core.ItemSet{ ID: 922, Name: "Gladiator's Sanctuary", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { druid := agent.(DruidAgent).GetDruid() druid.AddStats(stats.Stats{ stats.Agility: 70, }) }, 4: func(agent core.Agent) { druid := agent.(DruidAgent).GetDruid() druid.AddStats(stats.Stats{ stats.Agility: 90, }) }, }, })
PvP Feral
View Source
var ItemSetStormridersBattlegarb = core.NewItemSet(core.ItemSet{ Name: "Stormrider's Battlegarb", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { druid := agent.(DruidAgent).GetDruid() var apDepByStackCount = map[int32]*stats.StatDependency{} for i := 1; i <= 3; i++ { apDepByStackCount[int32(i)] = druid.NewDynamicMultiplyStat(stats.AttackPower, 1.0+0.01*float64(i)) } druid.StrengthOfThePantherAura = druid.RegisterAura(core.Aura{ Label: "Strength of the Panther", ActionID: core.ActionID{SpellID: 90166}, Duration: time.Second * 30, MaxStacks: 3, OnStacksChange: func(aura *core.Aura, sim *core.Simulation, oldStacks int32, newStacks int32) { if oldStacks > 0 { druid.DisableDynamicStatDep(sim, apDepByStackCount[oldStacks]) } if newStacks > 0 { druid.EnableDynamicStatDep(sim, apDepByStackCount[newStacks]) } }, }) }, }, })
T11 Feral
View Source
var ItemSetStormridersRegalia = core.NewItemSet(core.ItemSet{ Name: "Stormrider's Regalia", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStaticMod(core.SpellModConfig{ Kind: core.SpellMod_BonusCrit_Rating, FloatValue: 5 * core.CritRatingPerCritChance, ClassMask: DruidSpellDoT | DruidSpellMoonfire | DruidSpellSunfire, }) }, 4: func(agent core.Agent) { druid := agent.(DruidAgent).GetDruid() tierSet4pMod := druid.AddDynamicMod(core.SpellModConfig{ School: core.SpellSchoolArcane | core.SpellSchoolNature, Kind: core.SpellMod_BonusCrit_Rating, }) tierSet4pAura := druid.RegisterAura(core.Aura{ ActionID: core.ActionID{SpellID: 90163}, Label: "Druid T11 Balance 4P Bonus", Duration: time.Second * 8, MaxStacks: 3, OnGain: func(aura *core.Aura, sim *core.Simulation) { aura.SetStacks(sim, aura.MaxStacks) tierSet4pMod.UpdateFloatValue(float64(aura.GetStacks()) * 5 * core.CritRatingPerCritChance) tierSet4pMod.Activate() }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { tierSet4pMod.Deactivate() }, OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if result.DidCrit() && aura.GetStacks() > 0 { aura.RemoveStack(sim) tierSet4pMod.UpdateFloatValue(float64(aura.GetStacks()) * 5 * core.CritRatingPerCritChance) } }, }) druid.AddEclipseCallback(func(_ Eclipse, gained bool, sim *core.Simulation) { if gained { tierSet4pAura.Activate(sim) } else { tierSet4pAura.Deactivate(sim) } }) }, }, })
T11 Balance
View Source
var TalentTreeSizes = [3]int{20, 22, 21}
Functions ¶
This section is empty.
Types ¶
type APLValueCurrentEclipsePhase ¶
type APLValueCurrentEclipsePhase struct { core.DefaultAPLValueImpl // contains filtered or unexported fields }
func (*APLValueCurrentEclipsePhase) GetBool ¶
func (value *APLValueCurrentEclipsePhase) GetBool(sim *core.Simulation) bool
func (*APLValueCurrentEclipsePhase) String ¶
func (value *APLValueCurrentEclipsePhase) String() string
func (*APLValueCurrentEclipsePhase) Type ¶
func (value *APLValueCurrentEclipsePhase) Type() proto.APLValueType
type APLValueCurrentLunarEnergy ¶
type APLValueCurrentLunarEnergy struct { core.DefaultAPLValueImpl // contains filtered or unexported fields }
func (*APLValueCurrentLunarEnergy) GetInt ¶
func (value *APLValueCurrentLunarEnergy) GetInt(sim *core.Simulation) int32
func (*APLValueCurrentLunarEnergy) String ¶
func (value *APLValueCurrentLunarEnergy) String() string
func (*APLValueCurrentLunarEnergy) Type ¶
func (value *APLValueCurrentLunarEnergy) Type() proto.APLValueType
type APLValueCurrentSolarEnergy ¶
type APLValueCurrentSolarEnergy struct { core.DefaultAPLValueImpl // contains filtered or unexported fields }
func (*APLValueCurrentSolarEnergy) GetInt ¶
func (value *APLValueCurrentSolarEnergy) GetInt(sim *core.Simulation) int32
func (*APLValueCurrentSolarEnergy) String ¶
func (value *APLValueCurrentSolarEnergy) String() string
func (*APLValueCurrentSolarEnergy) Type ¶
func (value *APLValueCurrentSolarEnergy) Type() proto.APLValueType
type Druid ¶
type Druid struct { core.Character SelfBuffs Talents *proto.DruidTalents ClassSpellScaling float64 StartingForm DruidForm RebirthUsed bool RebirthTiming float64 BleedsActive int AssumeBleedActive bool LeatherSpecActive bool RipTfSnapshot bool MHAutoSpell *core.Spell ReplaceBearMHFunc core.ReplaceMHSwing Barkskin *DruidSpell Berserk *DruidSpell CatCharge *DruidSpell DemoralizingRoar *DruidSpell Enrage *DruidSpell FaerieFire *DruidSpell FerociousBite *DruidSpell ForceOfNature *DruidSpell FrenziedRegeneration *DruidSpell Hurricane *DruidSpell HurricaneTickSpell *DruidSpell InsectSwarm *DruidSpell GiftOfTheWild *DruidSpell Lacerate *DruidSpell Languish *DruidSpell MangleBear *DruidSpell MangleCat *DruidSpell Maul *DruidSpell MaulQueueSpell *DruidSpell Moonfire *DruidSpell MoonfireDoT *DruidSpell Pulverize *DruidSpell Rebirth *DruidSpell Rake *DruidSpell Ravage *DruidSpell Rip *DruidSpell SavageRoar *DruidSpell Shred *DruidSpell Starfire *DruidSpell Starfall *DruidSpell Starsurge *DruidSpell Sunfire *DruidSpell SunfireDoT *DruidSpell SurvivalInstincts *DruidSpell SwipeBear *DruidSpell SwipeCat *DruidSpell TigersFury *DruidSpell Thrash *DruidSpell Typhoon *DruidSpell Wrath *DruidSpell WildMushrooms *DruidSpell WildMushroomsDetonate *DruidSpell CatForm *DruidSpell BearForm *DruidSpell BarkskinAura *core.Aura BearFormAura *core.Aura BerserkAura *core.Aura BerserkProcAura *core.Aura CatFormAura *core.Aura ClearcastingAura *core.Aura DemoralizingRoarAuras core.AuraArray EnrageAura *core.Aura FaerieFireAuras core.AuraArray FrenziedRegenerationAura *core.Aura LunarEclipseProcAura *core.Aura MaulQueueAura *core.Aura MoonkinT84PCAura *core.Aura NaturesGraceProcAura *core.Aura OwlkinFrenzyAura *core.Aura PredatoryInstinctsAura *core.Aura PrimalMadnessAura *core.Aura PulverizeAura *core.Aura SavageDefenseAura *core.Aura SavageRoarAura *core.Aura SolarEclipseProcAura *core.Aura StampedeCatAura *core.Aura StampedeBearAura *core.Aura StrengthOfThePantherAura *core.Aura SurvivalInstinctsAura *core.Aura TigersFuryAura *core.Aura BleedCategories core.ExclusiveCategoryArray PrimalMadnessRageMetrics *core.ResourceMetrics PrimalPrecisionRecoveryMetrics *core.ResourceMetrics SavageRoarDurationTable [6]time.Duration ProcOoc func(sim *core.Simulation) ExtendingMoonfireStacks int Treant1 *TreantPet Treant2 *TreantPet Treant3 *TreantPet // contains filtered or unexported fields }
func (*Druid) AddEclipseCallback ¶
func (eb *Druid) AddEclipseCallback(callback EclipseCallback)
func (*Druid) AddEclipseEnergy ¶
func (eb *Druid) AddEclipseEnergy(amount float64, kind EclipseEnergy, sim *core.Simulation, metrics *core.ResourceMetrics)
func (*Druid) AddRaidBuffs ¶
func (*Druid) ApplyBloodletting ¶
func (*Druid) ApplyGlyphs ¶
func (druid *Druid) ApplyGlyphs()
func (*Druid) ApplyTalents ¶
func (druid *Druid) ApplyTalents()
func (*Druid) BalanceCritMultiplier ¶
func (*Druid) BearArmorMultiplier ¶
func (*Druid) CanApplyFaerieFireDebuff ¶
func (*Druid) CanGainEnergy ¶
func (eb *Druid) CanGainEnergy(kind EclipseEnergy) bool
func (*Druid) ClearForm ¶
func (druid *Druid) ClearForm(sim *core.Simulation)
func (*Druid) CurrentFerociousBiteCost ¶
func (*Druid) CurrentLunarEnergy ¶
func (eb *Druid) CurrentLunarEnergy() int32
func (*Druid) CurrentMangleCatCost ¶
func (*Druid) CurrentRakeCost ¶
func (*Druid) CurrentRipCost ¶
func (*Druid) CurrentSavageRoarCost ¶
func (*Druid) CurrentShredCost ¶
func (*Druid) CurrentSolarEnergy ¶
func (eb *Druid) CurrentSolarEnergy() int32
func (*Druid) CurrentSwipeCatCost ¶
func (*Druid) EnableEclipseBar ¶
func (druid *Druid) EnableEclipseBar()
func (*Druid) ForceEclipse ¶ added in v0.0.2
func (eb *Druid) ForceEclipse(eclipse Eclipse, sim *core.Simulation)
func (*Druid) ForceSolarEclipse ¶ added in v0.0.2
func (druid *Druid) ForceSolarEclipse(sim *core.Simulation, mastery float64)
func (*Druid) GetBearWeapon ¶
func (*Druid) GetCatWeapon ¶
func (*Druid) GetCharacter ¶
func (*Druid) GetSavageRoarMultiplier ¶
func (*Druid) HasEclipseBar ¶
func (*Druid) HasMajorGlyph ¶
func (druid *Druid) HasMajorGlyph(glyph proto.DruidMajorGlyph) bool
func (*Druid) HasMinorGlyph ¶
func (druid *Druid) HasMinorGlyph(glyph proto.DruidMinorGlyph) bool
func (*Druid) HasPrimeGlyph ¶
func (druid *Druid) HasPrimeGlyph(glyph proto.DruidPrimeGlyph) bool
func (*Druid) Initialize ¶
func (druid *Druid) Initialize()
func (*Druid) MaxRipTicks ¶
func (*Druid) NewAPLValue ¶
func (*Druid) NewLunarEnergyMetrics ¶
func (unit *Druid) NewLunarEnergyMetrics(actionID core.ActionID) *core.ResourceMetrics
func (*Druid) NewSolarEnergyMetrics ¶
func (unit *Druid) NewSolarEnergyMetrics(actionID core.ActionID) *core.ResourceMetrics
func (*Druid) RazorClawsMultiplier ¶
func (*Druid) RegisterBalanceSpells ¶
func (druid *Druid) RegisterBalanceSpells()
func (*Druid) RegisterEclipseAuras ¶
func (druid *Druid) RegisterEclipseAuras()
func (*Druid) RegisterFeralCatSpells ¶
func (druid *Druid) RegisterFeralCatSpells()
func (*Druid) RegisterFeralTankSpells ¶
func (druid *Druid) RegisterFeralTankSpells()
func (*Druid) RegisterSpell ¶
func (druid *Druid) RegisterSpell(formMask DruidForm, config core.SpellConfig) *DruidSpell
func (*Druid) Reset ¶
func (druid *Druid) Reset(_ *core.Simulation)
func (*Druid) SetEclipse ¶
func (eb *Druid) SetEclipse(eclipse Eclipse, sim *core.Simulation)
func (*Druid) ShouldFaerieFire ¶
func (*Druid) ThickHideMultiplier ¶
func (*Druid) TryApplyFaerieFireEffect ¶
func (druid *Druid) TryApplyFaerieFireEffect(sim *core.Simulation, target *core.Unit)
type DruidAgent ¶
type DruidAgent interface {
GetDruid() *Druid
}
Agent is a generic way to access underlying druid on any of the agents (for example balance druid.)
type DruidSpell ¶
func (*DruidSpell) CanCast ¶
func (ds *DruidSpell) CanCast(sim *core.Simulation, target *core.Unit) bool
func (*DruidSpell) IsReady ¶
func (ds *DruidSpell) IsReady(sim *core.Simulation) bool
type EclipseCallback ¶
type EclipseCallback func(eclipse Eclipse, gained bool, sim *core.Simulation)
type EclipseEnergy ¶
type EclipseEnergy byte
const ( SolarEnergy EclipseEnergy = 1 LunarEnergy EclipseEnergy = 2 SolarAndLunarEnergy = SolarEnergy | LunarEnergy )
type SelfBuffs ¶
type SelfBuffs struct {
InnervateTarget *proto.UnitReference
}
type TreantPet ¶
func (*TreantPet) ExecuteCustomRotation ¶
func (treant *TreantPet) ExecuteCustomRotation(_ *core.Simulation)
func (*TreantPet) Initialize ¶
func (treant *TreantPet) Initialize()
func (*TreantPet) Reset ¶
func (treant *TreantPet) Reset(_ *core.Simulation)
Source Files ¶
- apl_values.go
- barkskin.go
- berserk.go
- demoralizing_roar.go
- druid.go
- eclipse.go
- enrage.go
- faerie_fire.go
- feral_charge.go
- ferocious_bite.go
- force_of_nature.go
- forms.go
- frenzied_regeneration.go
- glyphs.go
- hurricane.go
- innervate.go
- insect_swarm.go
- items.go
- lacerate.go
- mangle.go
- maul.go
- moonfire.go
- omen_of_clarity.go
- pulverize.go
- rake.go
- ravage.go
- rip.go
- savage_defense.go
- savage_roar.go
- shred.go
- starfall.go
- starfire.go
- starsurge.go
- sunfire.go
- survival_instincts.go
- swipe.go
- talents.go
- thrash.go
- tigers_fury.go
- typhoon.go
- wild_mushrooms.go
- wrath.go
Click to show internal directories.
Click to hide internal directories.