druid

package
v0.0.111 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SpellFlagNaturesGrace = core.SpellFlagAgentReserved1
	SpellFlagOmenTrigger  = core.SpellFlagAgentReserved2
)
View Source
const (
	WrathBaseEnergyGain     float64 = 13 + 1.0/3
	StarsurgeBaseEnergyGain float64 = 15
	StarfireBaseEnergyGain  float64 = 20
	MoonfireBaseEnergyGain  float64 = 0
	SunfireBaseEnergyGain   float64 = 0

	MoonfireLunarShowerEnergyGain float64 = MoonfireBaseEnergyGain + 8
	SunfireLunarShowerEnergyGain  float64 = SunfireBaseEnergyGain + 8

	Wrath4PT12EnergyGain    float64 = WrathBaseEnergyGain + 3
	Starfire4PT12EnergyGain float64 = StarfireBaseEnergyGain + 5
)
View Source
const (
	DruidSpellFlagNone int64 = 0
	DruidSpellBarkskin int64 = 1 << iota
	DruidSpellCyclone
	DruidSpellEntanglingRoots
	DruidSpellFearieFire
	DruidSpellHibernate
	DruidSpellHurricane
	DruidSpellInnervate
	DruidSpellInsectSwarm
	DruidSpellMangleBear
	DruidSpellMangleCat
	DruidSpellMaul
	DruidSpellMoonfire
	DruidSpellMoonfireDoT
	DruidSpellNaturesGrasp
	DruidSpellRavage
	DruidSpellShred
	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
	DruidSpellMangle    = DruidSpellMangleBear | DruidSpellMangleCat
	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 PetExpertiseScale = 3.25
View Source
const RipBaseNumTicks = int32(8)

Variables

View Source
var ItemSetDeepEarthRegalia = core.NewItemSet(core.ItemSet{
	Name: "Deep Earth Regalia",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
		},

		4: func(agent core.Agent) {
			druid := agent.(DruidAgent).GetDruid()

			druid.AddStaticMod(core.SpellModConfig{
				Kind:       core.SpellMod_DamageDone_Pct,
				FloatValue: 0.05,
				ClassMask:  DruidSpellStarsurge,
			})

			druid.AddStaticMod(core.SpellModConfig{
				Kind:      core.SpellMod_Cooldown_Flat,
				TimeValue: time.Second * -5,
				ClassMask: DruidSpellStarsurge,
			})
		},
	},
})

T13 Balance

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 ItemSetObsidianArborweaveBattlegarb = core.NewItemSet(core.ItemSet{
	Name: "Obsidian Arborweave Battlegarb",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

			druid := agent.(DruidAgent).GetDruid()
			cata.RegisterIgniteEffect(&druid.Unit, cata.IgniteConfig{
				ActionID:         core.ActionID{SpellID: 99002},
				DotAuraLabel:     "Fiery Claws",
				IncludeAuraDelay: true,

				ProcTrigger: core.ProcTrigger{
					Name:           "Fiery Claws Trigger",
					Callback:       core.CallbackOnSpellHitDealt,
					ClassSpellMask: DruidSpellMangle | DruidSpellMaul | DruidSpellShred,
					Outcome:        core.OutcomeLanded,
				},

				DamageCalculator: func(result *core.SpellResult) float64 {
					return result.Damage * 0.1
				},
			})
		},
		4: func(agent core.Agent) {

			druid := agent.(DruidAgent).GetDruid()
			druid.Feral4pT12Active = true

			if !druid.InForm(Bear) {
				return
			}

			druid.SmokescreenAura = druid.RegisterAura(core.Aura{
				Label:    "Smokescreen",
				ActionID: core.ActionID{SpellID: 99011},
				Duration: time.Second * 12,

				OnGain: func(_ *core.Aura, _ *core.Simulation) {
					druid.PseudoStats.BaseDodgeChance += 0.1
				},

				OnExpire: func(_ *core.Aura, _ *core.Simulation) {
					druid.PseudoStats.BaseDodgeChance -= 0.1
				},
			})
		},
	},
})

T12 Feral

View Source
var ItemSetObsidianArborweaveRegalia = core.NewItemSet(core.ItemSet{
	Name: "Obsidian Arborweave Regalia",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			druid := agent.(DruidAgent).GetDruid()

			core.MakeProcTriggerAura(&druid.Unit, core.ProcTrigger{
				ActionID:       core.ActionID{SpellID: 99019},
				Name:           "Item - Druid T12 Balance 2P Bonus",
				Callback:       core.CallbackOnCastComplete,
				ClassSpellMask: DruidSpellWrath | DruidSpellStarfire,
				ProcChance:     0.20,
				ICD:            time.Second * 45,
				Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) {
					druid.BurningTreant.EnableWithTimeout(sim, druid.BurningTreant, time.Second*15)
				},
			})
		},

		4: func(agent core.Agent) {
			druid := agent.(DruidAgent).GetDruid()

			druid.OnSpellRegistered(func(spell *core.Spell) {
				if spell.ClassSpellMask == DruidSpellWrath {
					druid.SetSpellEclipseEnergy(DruidSpellWrath, WrathBaseEnergyGain, Wrath4PT12EnergyGain)
				}

				if spell.ClassSpellMask == DruidSpellStarfire {
					druid.SetSpellEclipseEnergy(DruidSpellStarfire, StarfireBaseEnergyGain, Starfire4PT12EnergyGain)
				}
			})

			core.MakePermanent(druid.RegisterAura(core.Aura{
				ActionID: core.ActionID{SpellID: 99049},
				Label:    "Item - Druid T12 Balance 4P Bonus",
				Duration: core.NeverExpires,
			}))
		},
	},
})

T12 Balance

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_Percent,
				FloatValue: 5,
				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_Percent,
			})

			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)
					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)
					}
				},
			})

			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

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

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

type BurningTreant added in v0.0.69

type BurningTreant struct {
	core.Pet

	Fireseed *core.Spell
	// contains filtered or unexported fields
}

func (*BurningTreant) ExecuteCustomRotation added in v0.0.69

func (treant *BurningTreant) ExecuteCustomRotation(sim *core.Simulation)

func (*BurningTreant) GetPet added in v0.0.69

func (treant *BurningTreant) GetPet() *core.Pet

func (*BurningTreant) Initialize added in v0.0.69

func (treant *BurningTreant) Initialize()

func (*BurningTreant) Reset added in v0.0.69

func (treant *BurningTreant) Reset(_ *core.Simulation)

type Druid

type Druid struct {
	core.Character
	SelfBuffs

	Talents *proto.DruidTalents

	ClassSpellScaling float64

	StartingForm DruidForm

	EclipseEnergyMap EclipseEnergyMap

	RebirthUsed       bool
	RebirthTiming     float64
	BleedsActive      int
	AssumeBleedActive bool
	LeatherSpecActive bool
	Feral4pT12Active  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
	Pulverize             *DruidSpell
	Rebirth               *DruidSpell
	Rake                  *DruidSpell
	Ravage                *DruidSpell
	Rip                   *DruidSpell
	SavageRoar            *DruidSpell
	Shred                 *DruidSpell
	Starfire              *DruidSpell
	Starfall              *DruidSpell
	Starsurge             *DruidSpell
	Sunfire               *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
	SavageRoarAura           *core.Aura
	SmokescreenAura          *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

	Treants       *Treants
	BurningTreant *BurningTreant
	// contains filtered or unexported fields
}

func New

func New(char *core.Character, form DruidForm, selfBuffs SelfBuffs, talents string) *Druid

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 *Druid) AddRaidBuffs(raidBuffs *proto.RaidBuffs)

func (*Druid) ApplyBloodletting

func (druid *Druid) ApplyBloodletting(target *core.Unit)

func (*Druid) ApplyFeral4pT12 added in v0.0.79

func (druid *Druid) ApplyFeral4pT12(sim *core.Simulation)

func (*Druid) ApplyGlyphs

func (druid *Druid) ApplyGlyphs()

func (*Druid) ApplyTalents

func (druid *Druid) ApplyTalents()

func (*Druid) BalanceCritMultiplier

func (druid *Druid) BalanceCritMultiplier() float64

func (*Druid) BearArmorMultiplier

func (druid *Druid) BearArmorMultiplier() float64

func (*Druid) CanApplyFaerieFireDebuff

func (druid *Druid) CanApplyFaerieFireDebuff(target *core.Unit) bool

func (*Druid) CanGainEnergy

func (eb *Druid) CanGainEnergy(kind EclipseEnergy) bool

func (*Druid) CanShred

func (druid *Druid) CanShred() bool

func (*Druid) ClearForm

func (druid *Druid) ClearForm(sim *core.Simulation)

func (*Druid) CurrentFerociousBiteCost

func (druid *Druid) CurrentFerociousBiteCost() float64

func (*Druid) CurrentLunarEnergy

func (eb *Druid) CurrentLunarEnergy() int32

func (*Druid) CurrentMangleCatCost

func (druid *Druid) CurrentMangleCatCost() float64

func (*Druid) CurrentRakeCost

func (druid *Druid) CurrentRakeCost() float64

func (*Druid) CurrentRipCost

func (druid *Druid) CurrentRipCost() float64

func (*Druid) CurrentSavageRoarCost

func (druid *Druid) CurrentSavageRoarCost() float64

func (*Druid) CurrentShredCost

func (druid *Druid) CurrentShredCost() float64

func (*Druid) CurrentSolarEnergy

func (eb *Druid) CurrentSolarEnergy() int32

func (*Druid) CurrentSwipeCatCost

func (druid *Druid) CurrentSwipeCatCost() float64

func (*Druid) EnableEclipseBar

func (druid *Druid) EnableEclipseBar()

func (*Druid) GetBearWeapon

func (druid *Druid) GetBearWeapon() core.Weapon

func (*Druid) GetCatWeapon

func (druid *Druid) GetCatWeapon() core.Weapon

func (*Druid) GetCharacter

func (druid *Druid) GetCharacter() *core.Character

func (*Druid) GetSavageRoarMultiplier

func (druid *Druid) GetSavageRoarMultiplier() float64

func (*Druid) GetSpellEclipseEnergy added in v0.0.69

func (druid *Druid) GetSpellEclipseEnergy(spellMask int64, inEclipse bool) float64

func (*Druid) HasEclipseBar

func (druid *Druid) HasEclipseBar() bool

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) InForm

func (druid *Druid) InForm(form DruidForm) bool

func (*Druid) Initialize

func (druid *Druid) Initialize()

func (*Druid) IsMangle

func (druid *Druid) IsMangle(spell *core.Spell) bool

func (*Druid) IsSwipeSpell

func (druid *Druid) IsSwipeSpell(spell *core.Spell) bool

func (*Druid) MaxRipTicks

func (druid *Druid) MaxRipTicks() int32

func (*Druid) NewAPLValue

func (druid *Druid) NewAPLValue(rot *core.APLRotation, config *proto.APLValue) core.APLValue

func (*Druid) NewBurningTreant added in v0.0.69

func (druid *Druid) NewBurningTreant() *BurningTreant

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) NewTreant

func (druid *Druid) NewTreant() *Treant

func (*Druid) RazorClawsMultiplier

func (druid *Druid) RazorClawsMultiplier(masteryRating float64) float64

func (*Druid) RegisterBalanceSpells

func (druid *Druid) RegisterBalanceSpells()

func (*Druid) RegisterEclipseAuras

func (druid *Druid) RegisterEclipseAuras()

func (*Druid) RegisterEclipseEnergyGainAura added in v0.0.69

func (druid *Druid) RegisterEclipseEnergyGainAura()

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) SetSpellEclipseEnergy added in v0.0.69

func (druid *Druid) SetSpellEclipseEnergy(spellMask int64, inEclipseEnergy float64, noEclipseEnergy float64)

func (*Druid) ShouldFaerieFire

func (druid *Druid) ShouldFaerieFire(sim *core.Simulation, target *core.Unit) bool

func (*Druid) ThickHideMultiplier

func (druid *Druid) ThickHideMultiplier() float64

func (*Druid) TryApplyFaerieFireEffect

func (druid *Druid) TryApplyFaerieFireEffect(sim *core.Simulation, target *core.Unit)

func (*Druid) UpdateBleedPower added in v0.0.83

func (druid *Druid) UpdateBleedPower(bleedSpell *DruidSpell, sim *core.Simulation, target *core.Unit, updateCurrent bool, updateNew bool)

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 DruidForm

type DruidForm uint8
const (
	Humanoid DruidForm = 1 << iota
	Bear
	Cat
	Moonkin
	Tree
	Any = Humanoid | Bear | Cat | Moonkin | Tree
)

func (DruidForm) Matches

func (form DruidForm) Matches(other DruidForm) bool

type DruidSpell

type DruidSpell struct {
	*core.Spell
	FormMask DruidForm

	// Optional fields used in snapshotting calculations
	CurrentSnapshotPower float64
	NewSnapshotPower     float64
	ShortName            string
}

func (*DruidSpell) CanCast

func (ds *DruidSpell) CanCast(sim *core.Simulation, target *core.Unit) bool

func (*DruidSpell) IsEqual

func (ds *DruidSpell) IsEqual(s *core.Spell) bool

func (*DruidSpell) IsReady

func (ds *DruidSpell) IsReady(sim *core.Simulation) bool

type Eclipse

type Eclipse byte
const (
	NoEclipse    Eclipse = 0
	SolarEclipse Eclipse = 1
	LunarEclipse Eclipse = 2
)

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 EclipseEnergyMap added in v0.0.69

type EclipseEnergyMap = map[int64]EclipseEnergyValues

type EclipseEnergyValues added in v0.0.69

type EclipseEnergyValues struct {
	InEclipse float64
	NoEclipse float64
}

type SelfBuffs

type SelfBuffs struct {
	InnervateTarget *proto.UnitReference
}

type Treant added in v0.0.69

type Treant struct {
	core.Pet
	// contains filtered or unexported fields
}

func (*Treant) ExecuteCustomRotation added in v0.0.69

func (treant *Treant) ExecuteCustomRotation(_ *core.Simulation)

func (*Treant) GetPet added in v0.0.69

func (treant *Treant) GetPet() *core.Pet

func (*Treant) Initialize added in v0.0.69

func (treant *Treant) Initialize()

func (*Treant) Reset added in v0.0.69

func (treant *Treant) Reset(sim *core.Simulation)

type Treants added in v0.0.69

type Treants struct {
	Treant1 *Treant
	Treant2 *Treant
	Treant3 *Treant
}

func (*Treants) CancelGCDTimer added in v0.0.69

func (treants *Treants) CancelGCDTimer(sim *core.Simulation)

func (*Treants) EnableWithTimeout added in v0.0.69

func (treants *Treants) EnableWithTimeout(sim *core.Simulation)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL