Documentation
¶
Overview ¶
Proto-based function interface for the simulator
Functions for creating common types of auras.
Implements the core functionality for the RPPM system RPPM values are either dynamically loaded from the spell data Or dan be provided manually if the values are not correct in the spell data
Implements a generic resource bar that can be used to implement secondary resources TODO: Check whether pre-pull OOC resource loss needs to be supported for DemonicFury
Index ¶
- Constants
- Variables
- func APLRotationFromJsonString(jsonString string) *proto.APLRotation
- func AddBaseStatsCombo(r proto.Race, c proto.Class)
- func AddPresetEncounter(name string, targetPaths []string)
- func AddPresetTarget(newPreset *PresetTarget)
- func AllWeaponSlots() []proto.ItemSlot
- func ApplyFixedUptimeAura(aura *Aura, uptime float64, tickLength time.Duration, startTime time.Duration)
- func ApplyMetaGemCriticalDamageEffect(agent Agent, _ proto.ItemLevelState)
- func ApplyVarianceMinMax(avgEffect float64, variance float64) (float64, float64)
- func ArmorSpecializationSlots() []proto.ItemSlot
- func BothTimersReady(t1 *Timer, t2 *Timer, sim *Simulation) bool
- func BothTimersReadyAt(t1 *Timer, t2 *Timer) time.Duration
- func CalcScalingSpellAverageEffect(class proto.Class, spellEffectCoefficient float64) float64
- func CalcScalingSpellEffectVarianceMinMax(class proto.Class, spellEffectCoefficient float64, spellEffectVariance float64) (float64, float64)
- func CheckSliceOverlap[T comparable](s1 []T, s2 []T) bool
- func Clamp(val float64, min float64, max float64) float64
- func ColorIntersects(g proto.GemColor, o proto.GemColor) bool
- func CombineConcurrentSimResults(results []*proto.RaidSimResult, isDebug bool) *proto.RaidSimResult
- func CompareConcurrentSimResultsTest(t *testing.T, testName string, singleThreadRes *proto.RaidSimResult, ...)
- func ComputeStats(csr *proto.ComputeStatsRequest) *proto.ComputeStatsResult
- func DebugCompareLogs(rsr *proto.RaidSimRequest, showCount int) (bool, string)
- func DefaultItemSetSlots() []proto.ItemSlot
- func DisableDamageDoneByCaster(index int, attackTable *AttackTable)
- func DisableThreatDoneByCaster(index int, attackTable *AttackTable)
- func DurationFromSeconds(numSeconds float64) time.Duration
- func Each[T any](src []T, f func(T))
- func EnableDamageDoneByCaster(index int, maxIndex int, attackTable *AttackTable, ...)
- func EnableThreatDoneByCaster(index int, maxIndex int, attackTable *AttackTable, ...)
- func EquipmentSpecFromJsonString(jsonString string) *proto.EquipmentSpec
- func FillTalentsProto(data protoreflect.Message, talentsStr string)
- func FilterMap[K comparable, V any](src map[K]V, f func(K, V) bool) map[K]V
- func FilterSlice[T any](src []T, f func(T) bool) []T
- func Flatten[T any](src [][]T) []T
- func FreshDefaultTargetConfig() *proto.Target
- func GetClassSpellScalingCoefficient(class proto.Class) float64
- func GetCurrentProtoVersion() int32
- func GetItemEffectRandomPropPointsForItem(itemID int32, state proto.ItemLevelState) float64
- func GetItemEffectScaling(itemID int32, coeff float64, state proto.ItemLevelState) float64
- func GetItemEffectScalingStatValue(itemID int32, coeff float64, state proto.ItemLevelState) float64
- func GetTristateValueFloat(effect proto.TristateEffect, regularValue float64, impValue float64) float64
- func GetTristateValueInt32(effect proto.TristateEffect, regularValue int32, impValue int32) int32
- func HasEnchantEffect(id int32) bool
- func HasItemEffect(id int32) bool
- func HasItemEffectForTest(id int32) bool
- func IsRunningInWasm() bool
- func ItemEffectRandPropPointsToProto(ieRpp ItemEffectRandPropPoints) *proto.ItemEffectRandPropPoints
- func ItemEquipmentBaseStats(item Item) stats.Stats
- func ItemEquipmentGemAndEnchantStats(item Item) stats.Stats
- func ItemSwapFromJsonString(jsonString string) *proto.ItemSwap
- func ItemTypeToSlot(it proto.ItemType) proto.ItemSlot
- func MakeSingleTargetEncounter(variation float64) *proto.Encounter
- func MakeTristateValue(hasRegular bool, hasImproved bool) proto.TristateEffect
- func MapMap[KI comparable, VI any, KO comparable, VO any](src map[KI]VI, f func(KI, VI) (KO, VO)) map[KO]VO
- func MapSlice[I any, O any](src []I, f func(I) O) []O
- func MasteryRatingToMasteryPoints(masteryRating float64) float64
- func MaxTimeToReady(t1 *Timer, t2 *Timer, sim *Simulation) time.Duration
- func NewDefaultTarget() *proto.Target
- func NewEnchantEffect(id int32, enchantEffect ApplyEffect)
- func NewItemEffect(id int32, itemEffect ApplyEffect)
- func PlayerProtoToSpec(player *proto.Player) proto.Spec
- func RaidBenchmark(b *testing.B, rsr *proto.RaidSimRequest)
- func RaidPlayersWithClass(raid *proto.Raid, class proto.Class) []*proto.Player
- func RaidSimTest(label string, t *testing.T, rsr *proto.RaidSimRequest, expectedDps float64)
- func ReforgeStatToProto(stat ReforgeStat) *proto.ReforgeStat
- func RegisterAgentFactory(emptyOptions interface{}, spec proto.Spec, factory AgentFactory, ...)
- func RppmModFromProto(config *proto.RppmMod) (rppmMod, error)
- func RunRaidSim(request *proto.RaidSimRequest) *proto.RaidSimResult
- func RunRaidSimAsync(request *proto.RaidSimRequest, progress chan *proto.ProgressMetrics, ...)
- func RunRaidSimConcurrent(request *proto.RaidSimRequest) *proto.RaidSimResult
- func RunRaidSimConcurrentAsync(request *proto.RaidSimRequest, progress chan *proto.ProgressMetrics, ...)
- func RunSim(rsr *proto.RaidSimRequest, progress chan *proto.ProgressMetrics, ...) *proto.RaidSimResult
- func RunTestSuite(t *testing.T, suiteName string, generators []TestGenerator)
- func SetRunningInWasm()
- func SetToSortedSlice[K cmp.Ordered](src map[K]bool) []K
- func SinglePlayerRaidProto(player *proto.Player, partyBuffs *proto.PartyBuffs, raidBuffs *proto.RaidBuffs, ...) *proto.Raid
- func SplitSimRequestForConcurrency(request *proto.RaidSimRequest, splitCount int32) *proto.RaidSimRequestSplitResult
- func StatWeightCompute(request *proto.StatWeightsCalcRequest) *proto.StatWeightsResult
- func StatWeightRequests(request *proto.StatWeightsRequest) *proto.StatWeightRequestsData
- func StatWeights(request *proto.StatWeightsRequest) *proto.StatWeightsResult
- func StatWeightsAsync(request *proto.StatWeightsRequest, progress chan *proto.ProgressMetrics, ...)
- func StringFromActionIDs(actionIDs []ActionID) string
- func StringFromStatTypes(statTypes []stats.Stat) string
- func Ternary[T any](condition bool, val1 T, val2 T) T
- func TernaryDuration(condition bool, val1 time.Duration, val2 time.Duration) time.Duration
- func TernaryFloat64(condition bool, val1 float64, val2 float64) float64
- func TernaryInt(condition bool, val1 int, val2 int) int
- func TernaryInt32(condition bool, val1 int32, val2 int32) int32
- func TernaryInt64(condition bool, val1 int64, val2 int64) int64
- func TrinketSlots() []proto.ItemSlot
- func UnitLevelFloat64(unitLevel int32, maxLevelPlus0Val float64, maxLevelPlus1Val float64, ...) float64
- func WithSpec(player *proto.Player, spec interface{}) *proto.Player
- func WithinToleranceFloat64(expectedValue float64, actualValue float64, tolerance float64) bool
- type AIFactory
- type APLAction
- func (action *APLAction) Execute(sim *Simulation)
- func (action *APLAction) Finalize(rot *APLRotation)
- func (action *APLAction) GetAllAPLValues() []APLValue
- func (action *APLAction) GetAllActions() []*APLAction
- func (action *APLAction) GetAllSpells() []*Spell
- func (action *APLAction) IsReady(sim *Simulation) bool
- func (action *APLAction) String() string
- type APLActionActivateAllStatBuffProcAuras
- func (action *APLActionActivateAllStatBuffProcAuras) Execute(sim *Simulation)
- func (impl APLActionActivateAllStatBuffProcAuras) Finalize(*APLRotation)
- func (impl APLActionActivateAllStatBuffProcAuras) GetAPLValues() []APLValue
- func (impl APLActionActivateAllStatBuffProcAuras) GetInnerActions() []*APLAction
- func (impl APLActionActivateAllStatBuffProcAuras) GetNextAction(*Simulation) *APLAction
- func (action *APLActionActivateAllStatBuffProcAuras) IsReady(sim *Simulation) bool
- func (impl APLActionActivateAllStatBuffProcAuras) PostFinalize(*APLRotation)
- func (impl APLActionActivateAllStatBuffProcAuras) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionActivateAllStatBuffProcAuras) Reset(*Simulation)
- func (action *APLActionActivateAllStatBuffProcAuras) String() string
- type APLActionActivateAura
- func (action *APLActionActivateAura) Execute(sim *Simulation)
- func (impl APLActionActivateAura) Finalize(*APLRotation)
- func (impl APLActionActivateAura) GetAPLValues() []APLValue
- func (impl APLActionActivateAura) GetInnerActions() []*APLAction
- func (impl APLActionActivateAura) GetNextAction(*Simulation) *APLAction
- func (action *APLActionActivateAura) IsReady(sim *Simulation) bool
- func (impl APLActionActivateAura) PostFinalize(*APLRotation)
- func (impl APLActionActivateAura) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionActivateAura) Reset(*Simulation)
- func (action *APLActionActivateAura) String() string
- type APLActionActivateAuraWithStacks
- func (action *APLActionActivateAuraWithStacks) Execute(sim *Simulation)
- func (impl APLActionActivateAuraWithStacks) Finalize(*APLRotation)
- func (impl APLActionActivateAuraWithStacks) GetAPLValues() []APLValue
- func (impl APLActionActivateAuraWithStacks) GetInnerActions() []*APLAction
- func (impl APLActionActivateAuraWithStacks) GetNextAction(*Simulation) *APLAction
- func (action *APLActionActivateAuraWithStacks) IsReady(sim *Simulation) bool
- func (impl APLActionActivateAuraWithStacks) PostFinalize(*APLRotation)
- func (impl APLActionActivateAuraWithStacks) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionActivateAuraWithStacks) Reset(*Simulation)
- func (action *APLActionActivateAuraWithStacks) String() string
- type APLActionAutocastOtherCooldowns
- func (action *APLActionAutocastOtherCooldowns) Execute(sim *Simulation)
- func (impl APLActionAutocastOtherCooldowns) Finalize(*APLRotation)
- func (impl APLActionAutocastOtherCooldowns) GetAPLValues() []APLValue
- func (impl APLActionAutocastOtherCooldowns) GetInnerActions() []*APLAction
- func (impl APLActionAutocastOtherCooldowns) GetNextAction(*Simulation) *APLAction
- func (action *APLActionAutocastOtherCooldowns) IsReady(sim *Simulation) bool
- func (action *APLActionAutocastOtherCooldowns) PostFinalize(rot *APLRotation)
- func (impl APLActionAutocastOtherCooldowns) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (action *APLActionAutocastOtherCooldowns) Reset(*Simulation)
- func (action *APLActionAutocastOtherCooldowns) String() string
- type APLActionCancelAura
- func (action *APLActionCancelAura) Execute(sim *Simulation)
- func (impl APLActionCancelAura) Finalize(*APLRotation)
- func (impl APLActionCancelAura) GetAPLValues() []APLValue
- func (impl APLActionCancelAura) GetInnerActions() []*APLAction
- func (impl APLActionCancelAura) GetNextAction(*Simulation) *APLAction
- func (action *APLActionCancelAura) IsReady(sim *Simulation) bool
- func (impl APLActionCancelAura) PostFinalize(*APLRotation)
- func (impl APLActionCancelAura) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionCancelAura) Reset(*Simulation)
- func (action *APLActionCancelAura) String() string
- type APLActionCancelSpellCast
- func (action *APLActionCancelSpellCast) Execute(sim *Simulation)
- func (impl APLActionCancelSpellCast) Finalize(*APLRotation)
- func (impl APLActionCancelSpellCast) GetAPLValues() []APLValue
- func (impl APLActionCancelSpellCast) GetInnerActions() []*APLAction
- func (impl APLActionCancelSpellCast) GetNextAction(*Simulation) *APLAction
- func (action *APLActionCancelSpellCast) IsReady(sim *Simulation) bool
- func (impl APLActionCancelSpellCast) PostFinalize(*APLRotation)
- func (impl APLActionCancelSpellCast) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionCancelSpellCast) Reset(*Simulation)
- func (action *APLActionCancelSpellCast) String() string
- type APLActionCastAllStatBuffCooldowns
- func (action *APLActionCastAllStatBuffCooldowns) Execute(sim *Simulation)
- func (impl APLActionCastAllStatBuffCooldowns) Finalize(*APLRotation)
- func (impl APLActionCastAllStatBuffCooldowns) GetAPLValues() []APLValue
- func (impl APLActionCastAllStatBuffCooldowns) GetInnerActions() []*APLAction
- func (impl APLActionCastAllStatBuffCooldowns) GetNextAction(*Simulation) *APLAction
- func (action *APLActionCastAllStatBuffCooldowns) IsReady(sim *Simulation) bool
- func (action *APLActionCastAllStatBuffCooldowns) PostFinalize(rot *APLRotation)
- func (impl APLActionCastAllStatBuffCooldowns) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionCastAllStatBuffCooldowns) Reset(*Simulation)
- func (action *APLActionCastAllStatBuffCooldowns) String() string
- type APLActionCastFriendlySpell
- func (action *APLActionCastFriendlySpell) Execute(sim *Simulation)
- func (impl APLActionCastFriendlySpell) Finalize(*APLRotation)
- func (impl APLActionCastFriendlySpell) GetAPLValues() []APLValue
- func (impl APLActionCastFriendlySpell) GetInnerActions() []*APLAction
- func (impl APLActionCastFriendlySpell) GetNextAction(*Simulation) *APLAction
- func (action *APLActionCastFriendlySpell) IsReady(sim *Simulation) bool
- func (impl APLActionCastFriendlySpell) PostFinalize(*APLRotation)
- func (impl APLActionCastFriendlySpell) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionCastFriendlySpell) Reset(*Simulation)
- func (action *APLActionCastFriendlySpell) String() string
- type APLActionCastSpell
- func (action *APLActionCastSpell) Execute(sim *Simulation)
- func (impl APLActionCastSpell) Finalize(*APLRotation)
- func (impl APLActionCastSpell) GetAPLValues() []APLValue
- func (impl APLActionCastSpell) GetInnerActions() []*APLAction
- func (impl APLActionCastSpell) GetNextAction(*Simulation) *APLAction
- func (action *APLActionCastSpell) IsReady(sim *Simulation) bool
- func (impl APLActionCastSpell) PostFinalize(*APLRotation)
- func (impl APLActionCastSpell) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionCastSpell) Reset(*Simulation)
- func (action *APLActionCastSpell) String() string
- type APLActionChangeTarget
- func (action *APLActionChangeTarget) Execute(sim *Simulation)
- func (impl APLActionChangeTarget) Finalize(*APLRotation)
- func (impl APLActionChangeTarget) GetAPLValues() []APLValue
- func (impl APLActionChangeTarget) GetInnerActions() []*APLAction
- func (impl APLActionChangeTarget) GetNextAction(*Simulation) *APLAction
- func (action *APLActionChangeTarget) IsReady(sim *Simulation) bool
- func (impl APLActionChangeTarget) PostFinalize(*APLRotation)
- func (impl APLActionChangeTarget) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (action *APLActionChangeTarget) Reset(sim *Simulation)
- func (action *APLActionChangeTarget) String() string
- type APLActionChannelSpell
- func (action *APLActionChannelSpell) Execute(sim *Simulation)
- func (impl APLActionChannelSpell) Finalize(*APLRotation)
- func (action *APLActionChannelSpell) GetAPLValues() []APLValue
- func (impl APLActionChannelSpell) GetInnerActions() []*APLAction
- func (impl APLActionChannelSpell) GetNextAction(*Simulation) *APLAction
- func (action *APLActionChannelSpell) IsReady(sim *Simulation) bool
- func (impl APLActionChannelSpell) PostFinalize(*APLRotation)
- func (impl APLActionChannelSpell) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionChannelSpell) Reset(*Simulation)
- func (action *APLActionChannelSpell) String() string
- type APLActionCustomRotation
- func (action *APLActionCustomRotation) Execute(sim *Simulation)
- func (impl APLActionCustomRotation) Finalize(*APLRotation)
- func (impl APLActionCustomRotation) GetAPLValues() []APLValue
- func (impl APLActionCustomRotation) GetInnerActions() []*APLAction
- func (impl APLActionCustomRotation) GetNextAction(*Simulation) *APLAction
- func (action *APLActionCustomRotation) IsReady(sim *Simulation) bool
- func (impl APLActionCustomRotation) PostFinalize(*APLRotation)
- func (impl APLActionCustomRotation) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (action *APLActionCustomRotation) Reset(sim *Simulation)
- func (action *APLActionCustomRotation) String() string
- type APLActionGroupReference
- func (action *APLActionGroupReference) Execute(sim *Simulation)
- func (action *APLActionGroupReference) Finalize(rot *APLRotation)
- func (action *APLActionGroupReference) GetAPLValues() []APLValue
- func (action *APLActionGroupReference) GetInnerActions() []*APLAction
- func (impl APLActionGroupReference) GetNextAction(*Simulation) *APLAction
- func (action *APLActionGroupReference) IsReady(sim *Simulation) bool
- func (impl APLActionGroupReference) PostFinalize(*APLRotation)
- func (impl APLActionGroupReference) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (action *APLActionGroupReference) Reset(sim *Simulation)
- func (action *APLActionGroupReference) String() string
- type APLActionImpl
- type APLActionItemSwap
- func (action *APLActionItemSwap) Execute(sim *Simulation)
- func (impl APLActionItemSwap) Finalize(*APLRotation)
- func (impl APLActionItemSwap) GetAPLValues() []APLValue
- func (impl APLActionItemSwap) GetInnerActions() []*APLAction
- func (impl APLActionItemSwap) GetNextAction(*Simulation) *APLAction
- func (action *APLActionItemSwap) IsReady(sim *Simulation) bool
- func (impl APLActionItemSwap) PostFinalize(*APLRotation)
- func (impl APLActionItemSwap) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionItemSwap) Reset(*Simulation)
- func (action *APLActionItemSwap) String() string
- type APLActionMove
- func (action *APLActionMove) Execute(sim *Simulation)
- func (impl APLActionMove) Finalize(*APLRotation)
- func (impl APLActionMove) GetAPLValues() []APLValue
- func (impl APLActionMove) GetInnerActions() []*APLAction
- func (impl APLActionMove) GetNextAction(*Simulation) *APLAction
- func (action *APLActionMove) IsReady(sim *Simulation) bool
- func (impl APLActionMove) PostFinalize(*APLRotation)
- func (impl APLActionMove) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionMove) Reset(*Simulation)
- func (action *APLActionMove) String() string
- type APLActionMoveDuration
- func (action *APLActionMoveDuration) Execute(sim *Simulation)
- func (impl APLActionMoveDuration) Finalize(*APLRotation)
- func (impl APLActionMoveDuration) GetAPLValues() []APLValue
- func (impl APLActionMoveDuration) GetInnerActions() []*APLAction
- func (impl APLActionMoveDuration) GetNextAction(*Simulation) *APLAction
- func (action *APLActionMoveDuration) IsReady(sim *Simulation) bool
- func (impl APLActionMoveDuration) PostFinalize(*APLRotation)
- func (impl APLActionMoveDuration) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionMoveDuration) Reset(*Simulation)
- func (action *APLActionMoveDuration) String() string
- type APLActionMultidot
- func (action *APLActionMultidot) Execute(sim *Simulation)
- func (impl APLActionMultidot) Finalize(*APLRotation)
- func (action *APLActionMultidot) GetAPLValues() []APLValue
- func (impl APLActionMultidot) GetInnerActions() []*APLAction
- func (impl APLActionMultidot) GetNextAction(*Simulation) *APLAction
- func (action *APLActionMultidot) IsReady(sim *Simulation) bool
- func (impl APLActionMultidot) PostFinalize(*APLRotation)
- func (impl APLActionMultidot) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (action *APLActionMultidot) Reset(*Simulation)
- func (action *APLActionMultidot) String() string
- type APLActionMultishield
- func (action *APLActionMultishield) Execute(sim *Simulation)
- func (impl APLActionMultishield) Finalize(*APLRotation)
- func (action *APLActionMultishield) GetAPLValues() []APLValue
- func (impl APLActionMultishield) GetInnerActions() []*APLAction
- func (impl APLActionMultishield) GetNextAction(*Simulation) *APLAction
- func (action *APLActionMultishield) IsReady(sim *Simulation) bool
- func (impl APLActionMultishield) PostFinalize(*APLRotation)
- func (impl APLActionMultishield) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (action *APLActionMultishield) Reset(*Simulation)
- func (action *APLActionMultishield) String() string
- type APLActionResetSequence
- func (action *APLActionResetSequence) Execute(sim *Simulation)
- func (action *APLActionResetSequence) Finalize(rot *APLRotation)
- func (impl APLActionResetSequence) GetAPLValues() []APLValue
- func (impl APLActionResetSequence) GetInnerActions() []*APLAction
- func (impl APLActionResetSequence) GetNextAction(*Simulation) *APLAction
- func (action *APLActionResetSequence) IsReady(sim *Simulation) bool
- func (impl APLActionResetSequence) PostFinalize(*APLRotation)
- func (impl APLActionResetSequence) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionResetSequence) Reset(*Simulation)
- func (action *APLActionResetSequence) String() string
- type APLActionSchedule
- func (action *APLActionSchedule) Execute(sim *Simulation)
- func (impl APLActionSchedule) Finalize(*APLRotation)
- func (impl APLActionSchedule) GetAPLValues() []APLValue
- func (action *APLActionSchedule) GetInnerActions() []*APLAction
- func (impl APLActionSchedule) GetNextAction(*Simulation) *APLAction
- func (action *APLActionSchedule) IsReady(sim *Simulation) bool
- func (impl APLActionSchedule) PostFinalize(*APLRotation)
- func (impl APLActionSchedule) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (action *APLActionSchedule) Reset(*Simulation)
- func (action *APLActionSchedule) String() string
- type APLActionSequence
- func (action *APLActionSequence) Execute(sim *Simulation)
- func (action *APLActionSequence) Finalize(rot *APLRotation)
- func (impl APLActionSequence) GetAPLValues() []APLValue
- func (action *APLActionSequence) GetInnerActions() []*APLAction
- func (impl APLActionSequence) GetNextAction(*Simulation) *APLAction
- func (action *APLActionSequence) IsReady(sim *Simulation) bool
- func (action *APLActionSequence) PostFinalize(rot *APLRotation)
- func (impl APLActionSequence) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (action *APLActionSequence) Reset(*Simulation)
- func (action *APLActionSequence) String() string
- type APLActionStrictMultidot
- func (action *APLActionStrictMultidot) Execute(sim *Simulation)
- func (impl APLActionStrictMultidot) Finalize(*APLRotation)
- func (action *APLActionStrictMultidot) GetAPLValues() []APLValue
- func (impl APLActionStrictMultidot) GetInnerActions() []*APLAction
- func (impl APLActionStrictMultidot) GetNextAction(*Simulation) *APLAction
- func (action *APLActionStrictMultidot) IsReady(sim *Simulation) bool
- func (impl APLActionStrictMultidot) PostFinalize(*APLRotation)
- func (impl APLActionStrictMultidot) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (action *APLActionStrictMultidot) Reset(*Simulation)
- func (action *APLActionStrictMultidot) String() string
- type APLActionStrictSequence
- func (action *APLActionStrictSequence) Execute(sim *Simulation)
- func (action *APLActionStrictSequence) Finalize(rot *APLRotation)
- func (impl APLActionStrictSequence) GetAPLValues() []APLValue
- func (action *APLActionStrictSequence) GetInnerActions() []*APLAction
- func (action *APLActionStrictSequence) GetNextAction(sim *Simulation) *APLAction
- func (action *APLActionStrictSequence) IsReady(sim *Simulation) bool
- func (action *APLActionStrictSequence) PostFinalize(rot *APLRotation)
- func (impl APLActionStrictSequence) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (action *APLActionStrictSequence) Reset(*Simulation)
- func (action *APLActionStrictSequence) String() string
- type APLActionTriggerICD
- func (action *APLActionTriggerICD) Execute(sim *Simulation)
- func (impl APLActionTriggerICD) Finalize(*APLRotation)
- func (impl APLActionTriggerICD) GetAPLValues() []APLValue
- func (impl APLActionTriggerICD) GetInnerActions() []*APLAction
- func (impl APLActionTriggerICD) GetNextAction(*Simulation) *APLAction
- func (action *APLActionTriggerICD) IsReady(sim *Simulation) bool
- func (impl APLActionTriggerICD) PostFinalize(*APLRotation)
- func (impl APLActionTriggerICD) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionTriggerICD) Reset(*Simulation)
- func (action *APLActionTriggerICD) String() string
- type APLActionWait
- func (action *APLActionWait) Execute(sim *Simulation)
- func (impl APLActionWait) Finalize(*APLRotation)
- func (action *APLActionWait) GetAPLValues() []APLValue
- func (impl APLActionWait) GetInnerActions() []*APLAction
- func (action *APLActionWait) GetNextAction(sim *Simulation) *APLAction
- func (action *APLActionWait) IsReady(sim *Simulation) bool
- func (impl APLActionWait) PostFinalize(*APLRotation)
- func (impl APLActionWait) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionWait) Reset(*Simulation)
- func (action *APLActionWait) String() string
- type APLActionWaitUntil
- func (action *APLActionWaitUntil) Execute(sim *Simulation)
- func (impl APLActionWaitUntil) Finalize(*APLRotation)
- func (action *APLActionWaitUntil) GetAPLValues() []APLValue
- func (impl APLActionWaitUntil) GetInnerActions() []*APLAction
- func (action *APLActionWaitUntil) GetNextAction(sim *Simulation) *APLAction
- func (action *APLActionWaitUntil) IsReady(sim *Simulation) bool
- func (impl APLActionWaitUntil) PostFinalize(*APLRotation)
- func (impl APLActionWaitUntil) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
- func (impl APLActionWaitUntil) Reset(*Simulation)
- func (action *APLActionWaitUntil) String() string
- type APLGroup
- type APLRotation
- func (apl *APLRotation) DoNextAction(sim *Simulation)
- func (rot *APLRotation) GetAPLAura(sourceUnit UnitReference, auraId *proto.ActionID) AuraReference
- func (rot *APLRotation) GetAPLDot(targetUnit UnitReference, spellId *proto.ActionID) *Dot
- func (rot *APLRotation) GetAPLICDAura(sourceUnit UnitReference, auraId *proto.ActionID) AuraReference
- func (rot *APLRotation) GetAPLItemProcAuras(statTypesToMatch []stats.Stat, minIcd time.Duration, warnIfNoneFound bool, ...) []*StatBuffAura
- func (rot *APLRotation) GetAPLMultidotSpell(spellId *proto.ActionID) *Spell
- func (rot *APLRotation) GetAPLMultishieldSpell(spellId *proto.ActionID) *Spell
- func (rot *APLRotation) GetAPLSpell(spellId *proto.ActionID) *Spell
- func (rot *APLRotation) GetSourceUnit(ref *proto.UnitReference) UnitReference
- func (rot *APLRotation) GetTargetAPLSpell(spellId *proto.ActionID, targetUnit UnitReference) *Spell
- func (rot *APLRotation) GetTargetUnit(ref *proto.UnitReference) UnitReference
- func (rot *APLRotation) NewDotReference(targetUnitRef UnitReference, auraId *proto.ActionID) *DotReference
- func (rot *APLRotation) NewValueSpellInFlight(config *proto.APLValueSpellInFlight, uuid *proto.UUID) APLValue
- func (rot *APLRotation) ValidationMessage(log_level proto.LogLevel, message string, vals ...interface{})
- func (rot *APLRotation) ValidationMessageByUUID(uuid *proto.UUID, log_level proto.LogLevel, message string, ...)
- type APLValue
- type APLValueActiveItemSwapSet
- type APLValueAllItemStatProcsActive
- type APLValueAnd
- type APLValueAnyItemStatProcsActive
- type APLValueAnyItemStatProcsAvailable
- type APLValueAnyStatBuffCooldownsActive
- type APLValueAnyStatBuffCooldownsMinDuration
- func (value *APLValueAnyStatBuffCooldownsMinDuration) Finalize(rot *APLRotation)
- func (value *APLValueAnyStatBuffCooldownsMinDuration) GetDuration(sim *Simulation) time.Duration
- func (value *APLValueAnyStatBuffCooldownsMinDuration) String() string
- func (value *APLValueAnyStatBuffCooldownsMinDuration) Type() proto.APLValueType
- type APLValueAuraICDIsReady
- type APLValueAuraInternalCooldown
- type APLValueAuraIsActive
- type APLValueAuraIsInactive
- type APLValueAuraIsKnown
- type APLValueAuraNumStacks
- type APLValueAuraRemainingTime
- type APLValueAuraShouldRefresh
- type APLValueAutoTimeToNext
- type APLValueBossCurrentTarget
- type APLValueBossSpellIsCasting
- type APLValueBossSpellTimeToReady
- type APLValueChannelClipDelay
- type APLValueCoerced
- func (value *APLValueCoerced) GetBool(sim *Simulation) bool
- func (value APLValueCoerced) GetDuration(sim *Simulation) time.Duration
- func (value APLValueCoerced) GetFloat(sim *Simulation) float64
- func (value *APLValueCoerced) GetInnerValues() []APLValue
- func (value APLValueCoerced) GetInt(sim *Simulation) int32
- func (value APLValueCoerced) GetString(sim *Simulation) string
- func (value *APLValueCoerced) String() string
- func (value *APLValueCoerced) Type() proto.APLValueType
- type APLValueCompare
- type APLValueConst
- func (value *APLValueConst) GetBool(_ *Simulation) bool
- func (value *APLValueConst) GetDuration(_ *Simulation) time.Duration
- func (value *APLValueConst) GetFloat(_ *Simulation) float64
- func (value *APLValueConst) GetInt(_ *Simulation) int32
- func (value *APLValueConst) GetString(_ *Simulation) string
- func (value *APLValueConst) String() string
- func (value *APLValueConst) Type() proto.APLValueType
- type APLValueCurrentComboPoints
- type APLValueCurrentEnergy
- type APLValueCurrentFocus
- type APLValueCurrentGenericResource
- type APLValueCurrentHealth
- type APLValueCurrentHealthPercent
- type APLValueCurrentMana
- type APLValueCurrentManaPercent
- type APLValueCurrentNonDeathRuneCount
- type APLValueCurrentRage
- type APLValueCurrentRuneActive
- type APLValueCurrentRuneCount
- type APLValueCurrentRuneDeath
- type APLValueCurrentRunicPower
- type APLValueCurrentTime
- type APLValueCurrentTimePercent
- type APLValueDotBaseDuration
- type APLValueDotCritPercentIncrease
- type APLValueDotIncreaseCheck
- type APLValueDotIsActive
- type APLValueDotIsActiveOnAllTargets
- type APLValueDotLowestRemainingTime
- type APLValueDotPercentIncrease
- type APLValueDotRemainingTime
- type APLValueDotTickFrequency
- type APLValueDotTickRatePercentIncrease
- type APLValueDotTimeToNextTick
- type APLValueEnergyRegenPerSecond
- type APLValueEnergyTimeToTarget
- type APLValueFocusRegenPerSecond
- type APLValueFocusTimeToTarget
- type APLValueFrontOfTarget
- type APLValueFullRuneCooldown
- type APLValueGCDIsReady
- type APLValueGCDTimeToReady
- type APLValueInputDelay
- type APLValueIsExecutePhase
- type APLValueItemProcsMaxRemainingICD
- type APLValueItemProcsMinRemainingTime
- type APLValueItemStatProcCheck
- type APLValueMath
- func (value *APLValueMath) GetDuration(sim *Simulation) time.Duration
- func (value *APLValueMath) GetFloat(sim *Simulation) float64
- func (value *APLValueMath) GetInnerValues() []APLValue
- func (value *APLValueMath) GetInt(sim *Simulation) int32
- func (value *APLValueMath) String() string
- func (value *APLValueMath) Type() proto.APLValueType
- type APLValueMax
- func (value *APLValueMax) GetDuration(sim *Simulation) time.Duration
- func (value *APLValueMax) GetFloat(sim *Simulation) float64
- func (value *APLValueMax) GetInnerValues() []APLValue
- func (value *APLValueMax) GetInt(sim *Simulation) int32
- func (value *APLValueMax) String() string
- func (value *APLValueMax) Type() proto.APLValueType
- type APLValueMaxComboPoints
- type APLValueMaxEnergy
- type APLValueMaxFocus
- type APLValueMaxHealth
- type APLValueMaxRage
- type APLValueMaxRunicPower
- type APLValueMin
- func (value *APLValueMin) GetDuration(sim *Simulation) time.Duration
- func (value *APLValueMin) GetFloat(sim *Simulation) float64
- func (value *APLValueMin) GetInnerValues() []APLValue
- func (value *APLValueMin) GetInt(sim *Simulation) int32
- func (value *APLValueMin) String() string
- func (value *APLValueMin) Type() proto.APLValueType
- type APLValueNextRuneCooldown
- type APLValueNot
- type APLValueNumEquippedStatProcItems
- type APLValueNumStatBuffCooldowns
- type APLValueNumberTargets
- type APLValueOr
- type APLValueRemainingCastTime
- type APLValueRemainingTime
- type APLValueRemainingTimePercent
- type APLValueRuneCooldown
- type APLValueRuneSlotCooldown
- type APLValueSequenceIsComplete
- type APLValueSequenceIsReady
- type APLValueSequenceTimeToReady
- type APLValueSpellCPM
- type APLValueSpellCanCast
- type APLValueSpellCastTime
- type APLValueSpellChanneledTicks
- type APLValueSpellCurrentCost
- type APLValueSpellFullCooldown
- type APLValueSpellGCDHastedDuration
- type APLValueSpellInFlight
- type APLValueSpellIsCasting
- type APLValueSpellIsChanneling
- type APLValueSpellIsKnown
- type APLValueSpellIsReady
- type APLValueSpellNumCharges
- type APLValueSpellTimeToCharge
- type APLValueSpellTimeToReady
- type APLValueSpellTravelTime
- type APLValueUnitDistance
- type APLValueUnitIsMoving
- type APLValueVariable
- type APLValueVariablePlaceholder
- func (v *APLValueVariablePlaceholder) GetBool(sim *Simulation) bool
- func (v *APLValueVariablePlaceholder) GetDuration(sim *Simulation) time.Duration
- func (v *APLValueVariablePlaceholder) GetFloat(sim *Simulation) float64
- func (v *APLValueVariablePlaceholder) GetInnerValues() []APLValue
- func (v *APLValueVariablePlaceholder) GetInt(sim *Simulation) int32
- func (v *APLValueVariablePlaceholder) GetString(sim *Simulation) string
- func (v *APLValueVariablePlaceholder) String() string
- func (v *APLValueVariablePlaceholder) Type() proto.APLValueType
- type APLValueVariableRef
- func (v *APLValueVariableRef) GetBool(sim *Simulation) bool
- func (v *APLValueVariableRef) GetDuration(sim *Simulation) time.Duration
- func (v *APLValueVariableRef) GetFloat(sim *Simulation) float64
- func (v *APLValueVariableRef) GetInnerValues() []APLValue
- func (v *APLValueVariableRef) GetInt(sim *Simulation) int32
- func (v *APLValueVariableRef) GetString(sim *Simulation) string
- func (v *APLValueVariableRef) String() string
- func (v *APLValueVariableRef) Type() proto.APLValueType
- type AbsorptionAuraConfig
- type ActionID
- func (actionID ActionID) IsEmptyAction() bool
- func (actionID ActionID) IsItemAction(itemID int32) bool
- func (actionID ActionID) IsOtherAction(otherID proto.OtherAction) bool
- func (actionID ActionID) IsSpellAction(spellID int32) bool
- func (actionID ActionID) SameAction(other ActionID) bool
- func (actionID ActionID) SameActionIgnoreTag(other ActionID) bool
- func (actionID ActionID) String() string
- func (actionID ActionID) ToProto() *proto.ActionID
- func (actionID ActionID) WithTag(tag int32) ActionID
- type ActionMetrics
- type ActionPriority
- type Agent
- type AgentFactory
- type ApplyEffect
- type ApplySetBonus
- type ApplySpellResults
- type AttackTable
- type Aura
- func AcidSpitAura(target *Unit) *Aura
- func ArcaneBrilliance(u *Unit) *Aura
- func BattleShoutAura(unit *Unit, asExternal bool) *Aura
- func BlessingOfKingsAura(unit *Unit) *Aura
- func BlessingOfMightAura(u *Unit) *Aura
- func BlockPrepull(aura *Aura) *Aura
- func BloodlustAura(character *Character, actionTag int32) *Aura
- func BurningWrathAura(u *Unit) *Aura
- func CacklingHowlAura(u *Unit) *Aura
- func CommandingShoutAura(unit *Unit, asExternal bool) *Aura
- func CurseOfElementsAura(target *Unit) *Aura
- func CurseOfEnfeeblement(target *Unit) *Aura
- func DarkIntentAura(u *Unit) *Aura
- func DemoralizingRoar(target *Unit) *Aura
- func DemoralizingScreech(target *Unit) *Aura
- func DevotionAuraAura(unit *Unit, actionTag int32, isHoly bool) *Aura
- func ElementalOath(u *Unit) *Aura
- func EmbraceOfTheShaleSpiderAura(u *Unit) *Aura
- func FireBreathDebuff(target *Unit) *Aura
- func FuriousHowl(unit *Unit) *Aura
- func GoreAura(target *Unit) *Aura
- func GraceOfAirAura(u *Unit) *Aura
- func GuardianSpiritAura(character *Character, actionTag int32) *Aura
- func HornOfWinterAura(unit *Unit, asExternal bool) *Aura
- func LavaBreathAura(target *Unit) *Aura
- func LeaderOfThePack(unit *Unit) *Aura
- func LegacyOfTheEmperorAura(unit *Unit) *Aura
- func LegacyOfTheWhiteTiger(unit *Unit) *Aura
- func LightningBreathDebuff(target *Unit) *Aura
- func MakePermanent(aura *Aura) *Aura
- func ManaTideTotemAura(character *Character, actionTag int32) *Aura
- func MarkOfTheWildAura(unit *Unit) *Aura
- func MasterPoisonerDebuff(target *Unit) *Aura
- func MindNumbingPoisonAura(target *Unit) *Aura
- func MindQuickeningAura(u *Unit) *Aura
- func MoonkinAura(unit *Unit) *Aura
- func MortalWoundsAura(target *Unit) *Aura
- func NecroticStrikeAura(target *Unit) *Aura
- func PainSuppressionAura(character *Character, actionTag int32) *Aura
- func PhysVulnerabilityAura(target *Unit) *Aura
- func PowerWordFortitudeAura(unit *Unit) *Aura
- func QirajiFortitudeAura(u *Unit) *Aura
- func RavageAura(target *Unit) *Aura
- func RoarOfCourageAura(u *Unit) *Aura
- func SerpentsSwiftnessAura(u *Unit) *Aura
- func ShatteringThrowAura(target *Unit, actionTag int32) *Aura
- func SkullBannerAura(character *Character, actionTag int32) *Aura
- func SlowAura(target *Unit) *Aura
- func SpiritBeastBlessingAura(u *Unit) *Aura
- func SporeCloud(target *Unit) *Aura
- func StampedeAura(target *Unit) *Aura
- func StillWaterAura(u *Unit) *Aura
- func StormLashAura(character *Character, actionTag int32) *Aura
- func SwiftbladesCunningAura(u *Unit) *Aura
- func TerrifyingRoar(unit *Unit) *Aura
- func TricksOfTheTradeAura(character *Unit, actionTag int32, damageMult float64) *Aura
- func TrueShotAura(unit *Unit) *Aura
- func UnholyAura(u *Unit) *Aura
- func UnholyFrenzyAura(character *Unit, actionTag int32, has2pT14 func() bool) *Aura
- func UnleashedRageAura(u *Unit) *Aura
- func VigilanceAura(character *Character, actionTag int32) *Aura
- func WeakenedArmorAura(target *Unit) *Aura
- func WeakenedBlowsAura(target *Unit) *Aura
- func (aura *Aura) Activate(sim *Simulation)
- func (aura *Aura) AddStack(sim *Simulation)
- func (aura *Aura) AddStacks(sim *Simulation, stacks int32)
- func (aura *Aura) ApplyOnEncounterStart(newOnEncounterStart OnEncounterStart) *Aura
- func (aura *Aura) ApplyOnExpire(newOnExpire OnExpire) *Aura
- func (aura *Aura) ApplyOnGain(newOnGain OnGain) *Aura
- func (aura *Aura) ApplyOnInit(newOnInit OnInit) *Aura
- func (aura *Aura) ApplyOnReset(newOnReset OnReset) *Aura
- func (aura *Aura) ApplyOnStacksChange(newOnStacksChange OnStacksChange) *Aura
- func (parentAura *Aura) AttachAdditivePseudoStatBuff(fieldPointer *float64, bonus float64) *Aura
- func (parentAura *Aura) AttachDDBC(index int, maxIndex int, attackTables *[]*AttackTable, ...) *Aura
- func (aura *Aura) AttachDependentAura(sibling *Aura) *Aura
- func (parentAura *Aura) AttachMultiplicativePseudoStatBuff(fieldPointer *float64, multiplier float64) *Aura
- func (parentAura *Aura) AttachMultiplyAttackSpeed(multiplier float64) *Aura
- func (parentAura *Aura) AttachMultiplyCastSpeed(multiplier float64) *Aura
- func (parentAura *Aura) AttachMultiplyMeleeSpeed(multiplier float64) *Aura
- func (parentAura *Aura) AttachProcTrigger(config ProcTrigger) *Aura
- func (procAura *Aura) AttachProcTriggerCallback(unit *Unit, config ProcTrigger)
- func (parentAura *Aura) AttachSpellMod(spellModConfig SpellModConfig) *Aura
- func (parentAura *Aura) AttachStatBuff(stat stats.Stat, value float64) *Aura
- func (parentAura *Aura) AttachStatDependency(statDep *stats.StatDependency) *Aura
- func (parentAura *Aura) AttachStatsBuff(stats stats.Stats) *Aura
- func (aura *Aura) Deactivate(sim *Simulation)
- func (aura *Aura) ExpiresAt() time.Duration
- func (setBonusTracker *Aura) ExposeToAPL(spellID int32) *Aura
- func (aura *Aura) GetStacks() int32
- func (aura *Aura) IsActive() bool
- func (parentAura *Aura) MakeDependentProcTriggerAura(unit *Unit, config ProcTrigger) *Aura
- func (aura *Aura) NewActiveMovementSpeedEffect(multiplier float64) *ExclusiveEffect
- func (aura *Aura) NewExclusiveEffect(categoryName string, singleAura bool, config ExclusiveEffect) *ExclusiveEffect
- func (aura *Aura) NewPassiveMovementSpeedEffect(multiplier float64) *ExclusiveEffect
- func (aura *Aura) Refresh(sim *Simulation)
- func (aura *Aura) RemainingDuration(sim *Simulation) time.Duration
- func (aura *Aura) RemoveStack(sim *Simulation)
- func (aura *Aura) RemoveStacks(sim *Simulation, stacks int32)
- func (aura *Aura) RestoreState(state AuraState, sim *Simulation)
- func (aura *Aura) SaveState(sim *Simulation) AuraState
- func (aura *Aura) SetStacks(sim *Simulation, newStacks int32)
- func (aura *Aura) ShouldRefreshExclusiveEffects(sim *Simulation, refreshWindow time.Duration) bool
- func (aura *Aura) StartedAt() time.Duration
- func (aura *Aura) TimeActive(sim *Simulation) time.Duration
- func (aura *Aura) TimeInactive(sim *Simulation) time.Duration
- func (aura *Aura) UpdateExpires(newExpires time.Duration)
- type AuraArray
- func (auras AuraArray) ActivateAll(sim *Simulation)
- func (auras AuraArray) ActivateAllPlayers(sim *Simulation)
- func (auras AuraArray) ApplyOnExpire(onExpire OnExpire)
- func (auras AuraArray) DeactivateAll(sim *Simulation)
- func (auras AuraArray) FindLabel() string
- func (auras AuraArray) Get(target *Unit) *Aura
- func (auras AuraArray) IsEmpty() bool
- func (auras AuraArray) ToMap() LabeledAuraArrays
- type AuraCallback
- type AuraFactory
- type AuraMetrics
- type AuraReference
- type AuraState
- type AutoAttackOptions
- type AutoAttacks
- func (aa *AutoAttacks) CancelAutoSwing(sim *Simulation)
- func (aa *AutoAttacks) CancelMeleeSwing(sim *Simulation)
- func (aa *AutoAttacks) CancelRangedSwing(sim *Simulation)
- func (aa *AutoAttacks) DelayMeleeBy(sim *Simulation, delay time.Duration)
- func (aa *AutoAttacks) DelayRangedUntil(sim *Simulation, readyAt time.Duration)
- func (aa *AutoAttacks) DesyncOffHand(sim *Simulation, readyAt time.Duration)
- func (aa *AutoAttacks) EnableAutoSwing(sim *Simulation)
- func (aa *AutoAttacks) EnableMeleeSwing(sim *Simulation)
- func (aa *AutoAttacks) EnableRangedSwing(sim *Simulation, bypassPrepullCheck bool)
- func (aa *AutoAttacks) MH() *Weapon
- func (aa *AutoAttacks) MHAuto() *Spell
- func (aa *AutoAttacks) MHConfig() *SpellConfig
- func (aa *AutoAttacks) MainhandSwingSpeed() time.Duration
- func (aa *AutoAttacks) MaybeReplaceMHSwing(sim *Simulation, mhSwingSpell *Spell) *Spell
- func (aa *AutoAttacks) NextAttackAt() time.Duration
- func (aa *AutoAttacks) OH() *Weapon
- func (aa *AutoAttacks) OHAuto() *Spell
- func (aa *AutoAttacks) OHConfig() *SpellConfig
- func (aa *AutoAttacks) OffhandSwingAt() time.Duration
- func (aa *AutoAttacks) OffhandSwingSpeed() time.Duration
- func (aa *AutoAttacks) PPMProc(sim *Simulation, ppm float64, procMask ProcMask, label string, spell *Spell) bool
- func (aa *AutoAttacks) PauseMeleeBy(sim *Simulation, pauseTime time.Duration)
- func (aa *AutoAttacks) RandomizeMeleeTiming(sim *Simulation)
- func (aa *AutoAttacks) Ranged() *Weapon
- func (aa *AutoAttacks) RangedAuto() *Spell
- func (aa *AutoAttacks) RangedConfig() *SpellConfig
- func (aa *AutoAttacks) SetMH(weapon Weapon)
- func (aa *AutoAttacks) SetMHSpell(spell *Spell)
- func (aa *AutoAttacks) SetOH(weapon Weapon)
- func (aa *AutoAttacks) SetOHSpell(spell *Spell)
- func (aa *AutoAttacks) SetOffhandSwingAt(offhandSwingAt time.Duration)
- func (aa *AutoAttacks) SetRanged(weapon Weapon)
- func (aa *AutoAttacks) SetReplaceMHSwing(replaceSwing ReplaceMHSwing)
- func (aa *AutoAttacks) SetReplaceOHSwing(replaceSwing ReplaceMHSwing)
- func (aa *AutoAttacks) StopMeleeUntil(sim *Simulation, readyAt time.Duration)
- func (aa *AutoAttacks) StopRangedUntil(sim *Simulation, readyAt time.Duration)
- func (aa *AutoAttacks) UpdateSwingTimers(sim *Simulation)
- type BaseDamageCalculator
- type BaseStatsKey
- type BuffConfig
- type BuffsCombo
- type CanCastCondition
- type Cast
- type CastConfig
- type CastFunc
- type CastSuccessFunc
- type Character
- func (eb *Character) AddComboPoints(sim *Simulation, pointsToAdd int32, target *Unit, metrics *ResourceMetrics)
- func (character *Character) AddDynamicEquipStats(sim *Simulation, equipStats stats.Stats)
- func (eb *Character) AddEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (fb *Character) AddFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (mcdm *Character) AddMajorCooldown(mcd MajorCooldown)
- func (character *Character) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
- func (character *Character) AddPet(pet PetAgent)
- func (rb *Character) AddRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (character *Character) AddRaidBuffs(_ *proto.RaidBuffs)
- func (rp *Character) AddRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (character *Character) AddStatProcBuff(effectID int32, procAura *StatBuffAura, isEnchant bool, ...)
- func (rp *Character) AddUnscaledRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Character) Advance(sim *Simulation, newTime time.Duration)
- func (rp *Character) AllRunesSpent() bool
- func (rp *Character) AnyDepletedRunes() bool
- func (rp *Character) AnyRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Character) AnySpentRuneReadyAt() time.Duration
- func (character *Character) ApplyArmorSpecializationEffect(primaryStat stats.Stat, armorType proto.ArmorType, spellID int32) *Aura
- func (character *Character) ApplyDynamicEquipScaling(sim *Simulation, stat stats.Stat, multiplier float64)
- func (character *Character) ApplyEquipScaling(stat stats.Stat, multiplier float64)
- func (rp *Character) BloodDeathRuneBothReadyAt() time.Duration
- func (rp *Character) BloodRuneReadyAt(sim *Simulation) time.Duration
- func (char *Character) CalcAndRollDamageRange(sim *Simulation, coefficient float64, variance float64) float64
- func (char *Character) CalcScalingSpellDmg(spellEffectCoefficient float64) float64
- func (character *Character) CalculateMasteryPoints() float64
- func (eb *Character) ComboPoints() int32
- func (rp *Character) ConvertAndRegenBloodTapRune(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics) bool
- func (rp *Character) ConvertAndRegenPlagueLeechRunes(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics)
- func (rp *Character) ConvertFromDeath(sim *Simulation, slot int8)
- func (rp *Character) ConvertToDeath(sim *Simulation, slot int8, revertAt time.Duration)
- func (character *Character) CouldHaveSetBonus(set *ItemSet, numItems int32) bool
- func (character *Character) CritMultiplier(primaryModifiers float64, secondaryModifiers float64) float64
- func (rp *Character) CurrentBloodOrDeathRunes() int8
- func (rp *Character) CurrentBloodRunes() int8
- func (rp *Character) CurrentDeathRunes() int8
- func (eb *Character) CurrentEnergy() float64
- func (eb *Character) CurrentEnergyRegenMultiplier() float64
- func (fb *Character) CurrentFocus() float64
- func (rp *Character) CurrentFrostOrDeathRunes() int8
- func (rp *Character) CurrentFrostRunes() int8
- func (hb *Character) CurrentHealth() float64
- func (hb *Character) CurrentHealthPercent() float64
- func (rb *Character) CurrentRage() float64
- func (rp *Character) CurrentRunicPower() float64
- func (rp *Character) CurrentUnholyOrDeathRunes() int8
- func (rp *Character) CurrentUnholyRunes() int8
- func (rp *Character) DeathRuneRegenAt(slot int32) time.Duration
- func (rp *Character) DeathRuneRevertAt() time.Duration
- func (rp *Character) DeathRunesInFU() int8
- func (rp *Character) DebugString() string
- func (character *Character) DefaultCritMultiplier() float64
- func (character *Character) Died(sim *Simulation)
- func (character *Character) EnableManaBar()
- func (character *Character) EnableManaBarWithModifier(modifier float64)
- func (character *Character) EnableRunicPowerBar(runeCD time.Duration, onRuneChange OnRuneChange, ...)
- func (mb *Character) EndOOMEvent(sim *Simulation)
- func (eb *Character) EnergyRegenPerSecond() float64
- func (character *Character) EquipStats() stats.Stats
- func (character *Character) FillPlayerStats(playerStats *proto.PlayerStats)
- func (character *Character) Finalize()
- func (fb *Character) FocusRegenPerSecond() float64
- func (fb *Character) FocusRegenPerTick() float64
- func (rp *Character) FrostRuneReadyAt(sim *Simulation) time.Duration
- func (hb *Character) GainHealth(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (at *Character) GetActiveAuraWithTag(tag string) *Aura
- func (character *Character) GetActiveSetBonusNames() []string
- func (at *Character) GetAura(label string) *Aura
- func (at *Character) GetAuraByID(actionID ActionID) *Aura
- func (at *Character) GetAuras() []*Aura
- func (at *Character) GetAurasWithTag(tag string) []*Aura
- func (character *Character) GetBaseStats() stats.Stats
- func (character *Character) GetConjuredCD() *Timer
- func (character *Character) GetDefensiveTrinketCD() *Timer
- func (character *Character) GetDynamicProcMaskForTypes(weaponTypes ...proto.WeaponType) *ProcMask
- func (character *Character) GetDynamicProcMaskForTypesAndHand(twohand bool, weaponTypes ...proto.WeaponType) *ProcMask
- func (character *Character) GetDynamicProcMaskForWeaponEffect(itemID int32) *ProcMask
- func (character *Character) GetDynamicProcMaskForWeaponEnchant(effectID int32) *ProcMask
- func (at *Character) GetIcdAuraByID(actionID ActionID) *Aura
- func (mcdm *Character) GetInitialMajorCooldown(actionID ActionID) MajorCooldown
- func (character *Character) GetMHWeapon() *Item
- func (mcdm *Character) GetMajorCooldown(actionID ActionID) *MajorCooldown
- func (mcdm *Character) GetMajorCooldownIDs() []*proto.ActionID
- func (mcdm *Character) GetMajorCooldownIgnoreTag(actionID ActionID) *MajorCooldown
- func (mcdm *Character) GetMajorCooldowns() []*MajorCooldown
- func (character *Character) GetMatchingItemProcAuras(statTypesToMatch []stats.Stat, minIcd time.Duration) []*StatBuffAura
- func (mcdm *Character) GetMatchingStatBuffCooldownAuras(statTypesToMatch []stats.Stat) []*StatBuffAura
- func (mcdm *Character) GetMatchingStatBuffSpells(statTypesToMatch []stats.Stat) []*Spell
- func (character *Character) GetMetricsProto() *proto.UnitMetrics
- func (character *Character) GetOHWeapon() *Item
- func (character *Character) GetOffensiveTrinketCD() *Timer
- func (u *Character) GetOrInitSpellCategoryTimer(spellCategoryID int32) *Timer
- func (character *Character) GetParryRatingWithoutStrength() float64
- func (character *Character) GetPotionCD() *Timer
- func (character *Character) GetPresimOptions(playerConfig *proto.Player) *PresimOptions
- func (character *Character) GetProcMaskForTypes(weaponTypes ...proto.WeaponType) ProcMask
- func (character *Character) GetProcMaskForTypesAndHand(twohand bool, weaponTypes ...proto.WeaponType) ProcMask
- func (character *Character) GetProcMaskForWeaponSlot(slot proto.ItemSlot) ProcMask
- func (character *Character) GetPseudoStatsProto() []float64
- func (rp *Character) GetRuneRegenMultiplier() float64
- func (at *Character) HasActiveAura(label string) bool
- func (at *Character) HasActiveAuraWithTag(tag string) bool
- func (at *Character) HasActiveAuraWithTagExcludingAura(tag string, excludeAura *Aura) bool
- func (character *Character) HasAlchStone() bool
- func (at *Character) HasAura(label string) bool
- func (at *Character) HasAuraWithTag(tag string) bool
- func (character *Character) HasGlyph(glyphID int32) bool
- func (character *Character) HasMHWeapon() bool
- func (character *Character) HasMetaGemEquipped(gemID int32) bool
- func (character *Character) HasOH() bool
- func (character *Character) HasOHWeapon() bool
- func (character *Character) HasProfession(prof proto.Profession) bool
- func (character *Character) HasRangedWeapon() bool
- func (character *Character) HasRingEquipped(itemID int32) bool
- func (character *Character) HasTrinketEquipped(itemID int32) bool
- func (mb *Character) IsOOM() bool
- func (eb *Character) IsReset(sim *Simulation) bool
- func (rp *Character) LeftBloodRuneReady() bool
- func (eb *Character) MaxComboPoints() int32
- func (hb *Character) MaxHealth() float64
- func (eb *Character) MaximumEnergy() float64
- func (fb *Character) MaximumFocus() float64
- func (rb *Character) MaximumRage() float64
- func (rp *Character) MaximumRunicPower() float64
- func (character *Character) MeetsArmorSpecializationRequirement(armorType proto.ArmorType) bool
- func (rb *Character) MultiplyAutoAttackRageGen(multiplier float64)
- func (eb *Character) MultiplyEnergyRegenSpeed(sim *Simulation, multiplier float64)
- func (fb *Character) MultiplyFocusRegenSpeed(sim *Simulation, multiplier float64)
- func (rb *Character) MultiplyRageGen(multiplier float64)
- func (rp *Character) MultiplyRuneRegenSpeed(sim *Simulation, multiplier float64)
- func (rp *Character) MultiplyRunicRegen(multiply float64)
- func (rp *Character) NewBloodRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *Character) NewDeathRuneMetrics(action ActionID) *ResourceMetrics
- func (character *Character) NewDynamicLegacyProcForEnchant(effectID int32, ppm float64, fixedProcChance float64) *DynamicProcManager
- func (character *Character) NewDynamicLegacyProcForTempEnchant(effectID int32, ppm float64, fixedProcChanceFn func(ProcMask) float64) *DynamicProcManager
- func (character *Character) NewDynamicLegacyProcForWeapon(itemID int32, ppm float64, fixedProcChance float64) *DynamicProcManager
- func (character *Character) NewEquipScalingManager() *EquipScalingManager
- func (character *Character) NewFixedProcChanceManager(fixedProcChance float64, procMask ProcMask) *DynamicProcManager
- func (rp *Character) NewFrostRuneMetrics(action ActionID) *ResourceMetrics
- func (character *Character) NewLegacyPPMManager(ppm float64, procMask ProcMask) *DynamicProcManager
- func (character *Character) NewRPPMProcManager(effectID int32, isEnchant bool, isGem bool, procMask ProcMask, ...) *DynamicProcManager
- func (rp *Character) NewRunicPowerMetrics(action ActionID) *ResourceMetrics
- func (character *Character) NewSetBonusRPPMProcManager(spellID int32, setBonusAura *Aura, procMask ProcMask, rppmConfig RPPMConfig) *DynamicProcManager
- func (character *Character) NewStaticLegacyPPMManager(ppm float64, procMask ProcMask) *DynamicProcManager
- func (character *Character) NewTemporaryStatBuffWithStacks(config TemporaryStatBuffWithStacksConfig) (*StatBuffAura, *Aura)
- func (character *Character) NewTemporaryStatsAura(auraLabel string, actionID ActionID, tempStats stats.Stats, ...) *StatBuffAura
- func (character *Character) NewTemporaryStatsAuraWrapped(auraLabel string, actionID ActionID, buffs stats.Stats, duration time.Duration, ...) *StatBuffAura
- func (rp *Character) NewUnholyRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *Character) NextBloodRuneReadyAt(sim *Simulation) time.Duration
- func (eb *Character) NextEnergyTickAt() time.Duration
- func (fb *Character) NextFocusTickAt() time.Duration
- func (rp *Character) NextFrostRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Character) NextUnholyRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Character) NormalFrostRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Character) NormalSpentBloodRuneReadyAt(_ *Simulation) time.Duration
- func (rp *Character) NormalUnholyRuneReadyAt(sim *Simulation) time.Duration
- func (at *Character) NumActiveAurasWithTag(tag string) int32
- func (at *Character) OnApplyEffects(sim *Simulation, target *Unit, spell *Spell)
- func (at *Character) OnCastComplete(sim *Simulation, spell *Spell)
- func (at *Character) OnEncounterStart(sim *Simulation)
- func (at *Character) OnHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Character) OnHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Character) OnPeriodicDamageDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Character) OnPeriodicDamageTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Character) OnPeriodicHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Character) OnPeriodicHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Character) OnSpellHitDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Character) OnSpellHitTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (rp *Character) OptimalRuneCost(cost RuneCost) RuneCost
- func (rp *Character) RegenAllFrostAndUnholyRunesAsDeath(sim *Simulation, deathRuneMetrics *ResourceMetrics)
- func (rp *Character) RegenAllRunes(sim *Simulation, metrics []*ResourceMetrics)
- func (rp *Character) RegenRunicEmpowermentRune(sim *Simulation, runeMetrics []*ResourceMetrics)
- func (character *Character) RegisterArmorSpecializationTracker(armorType proto.ArmorType, spellID int32) *Aura
- func (character *Character) RegisterItemSwapCallback(slots []proto.ItemSlot, callback OnItemSwap)
- func (character *Character) RegisterPvPGloveMod(itemIDs []int32, config SpellModConfig)
- func (at *Character) RegisterResetEffect(resetEffect ResetEffect)
- func (character *Character) RegisterVengeance(spellID int32, requiredAura *Aura) *Aura
- func (character *Character) RemoveDynamicEquipScaling(sim *Simulation, stat stats.Stat, multiplier float64)
- func (character *Character) RemoveEquipScaling(stat stats.Stat, multiplier float64)
- func (hb *Character) RemoveHealth(sim *Simulation, amount float64)
- func (eb *Character) ResetComboPoints(sim *Simulation, comboPointsToKeep int32)
- func (eb *Character) ResetEnergyTick(sim *Simulation)
- func (fb *Character) ResetFocusTick(sim *Simulation)
- func (rb *Character) ResetRageBar(sim *Simulation, rageToKeep float64)
- func (rp *Character) ResetRunicPowerBar(sim *Simulation, runicPowerToKeep float64)
- func (rp *Character) RuneIsActive(slot int8) bool
- func (rp *Character) RuneIsDeath(slot int8) bool
- func (rp *Character) RuneReadyAt(sim *Simulation, slot int8) time.Duration
- func (eb *Character) SetMaxComboPoints(maxComboPoints int32)
- func (rp *Character) SetPermanentDeathRunes(permanentDeaths []int8)
- func (rp *Character) SetRuneCd(runeCd time.Duration)
- func (eb *Character) SpendComboPoints(sim *Simulation, metrics *ResourceMetrics)
- func (eb *Character) SpendEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (fb *Character) SpendFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (eb *Character) SpendPartialComboPoints(sim *Simulation, pointsToSpend int32, metrics *ResourceMetrics)
- func (rb *Character) SpendRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Character) SpendRuneReadyAt(slot int8, spendAt time.Duration) time.Duration
- func (rp *Character) SpendRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (mb *Character) StartOOMEvent(sim *Simulation, requiredMana float64)
- func (eb *Character) TimeToTargetEnergy(targetEnergy float64) time.Duration
- func (fb *Character) TimeToTargetFocus(targetFocus float64) time.Duration
- func (rp *Character) UnholyRuneReadyAt(sim *Simulation) time.Duration
- func (mcdm *Character) UpdateMajorCooldowns()
- func (eb *Character) UpdateMaxEnergy(sim *Simulation, bonusEnergy float64, metrics *ResourceMetrics)
- func (hb *Character) UpdateMaxHealth(sim *Simulation, bonusHealth float64, metrics *ResourceMetrics)
- func (character *Character) WeaponFromMainHand(critMultiplier float64) Weapon
- func (character *Character) WeaponFromOffHand(critMultiplier float64) Weapon
- func (character *Character) WeaponFromRanged(critMultiplier float64) Weapon
- type CharacterBuildPhase
- type CharacterIterationMetrics
- type CharacterSuiteConfig
- type CombinedTestGenerator
- type Consumable
- type Cooldown
- type CooldownActivation
- type CooldownActivationCondition
- type CooldownType
- type CustomStatBuffProcCondition
- type DamageAbsorptionAura
- type DamageAbsorptionAuraArray
- type DefaultAPLValueImpl
- func (impl DefaultAPLValueImpl) Finalize(*APLRotation)
- func (impl DefaultAPLValueImpl) GetBool(sim *Simulation) bool
- func (impl DefaultAPLValueImpl) GetDuration(sim *Simulation) time.Duration
- func (impl DefaultAPLValueImpl) GetFloat(sim *Simulation) float64
- func (impl DefaultAPLValueImpl) GetInnerValues() []APLValue
- func (impl DefaultAPLValueImpl) GetInt(sim *Simulation) int32
- func (impl DefaultAPLValueImpl) GetString(sim *Simulation) string
- type DefaultSecondaryResourceBarImpl
- func (bar *DefaultSecondaryResourceBarImpl) CanSpend(limit float64) bool
- func (bar *DefaultSecondaryResourceBarImpl) Gain(sim *Simulation, amount float64, action ActionID)
- func (bar *DefaultSecondaryResourceBarImpl) GetMetric(action ActionID) *ResourceMetrics
- func (bar *DefaultSecondaryResourceBarImpl) Max() float64
- func (bar *DefaultSecondaryResourceBarImpl) RegisterOnGain(callback OnGainCallback)
- func (bar *DefaultSecondaryResourceBarImpl) RegisterOnSpend(callback OnSpendCallback)
- func (bar *DefaultSecondaryResourceBarImpl) Reset(sim *Simulation)
- func (bar *DefaultSecondaryResourceBarImpl) ResetBarTo(sim *Simulation, resourcesToKeep float64)
- func (bar *DefaultSecondaryResourceBarImpl) Spend(sim *Simulation, amount float64, action ActionID)
- func (bar *DefaultSecondaryResourceBarImpl) SpendUpTo(sim *Simulation, limit float64, action ActionID) float64
- func (bar *DefaultSecondaryResourceBarImpl) Value() float64
- type DelayedActionOptions
- type DiminishingReturnsConstants
- type DistributionMetrics
- type Dot
- func (dot *Dot) AddTick()
- func (dot *Dot) Apply(sim *Simulation)
- func (dot *Dot) ApplyRollover(sim *Simulation)
- func (dot *Dot) BaseDuration() time.Duration
- func (dot *Dot) CalcAndDealPeriodicSnapshotDamage(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
- func (dot *Dot) CalcAndDealPeriodicSnapshotHealing(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
- func (dot *Dot) CalcSnapshotDamage(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
- func (dot *Dot) CalcSnapshotHealing(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
- func (dot *Dot) CalcTickPeriod() time.Duration
- func (dot *Dot) CasterPeriodicHealingMultiplier() float64
- func (dot *Dot) ChannelCanBeInterrupted(sim *Simulation) bool
- func (dot *Dot) CopyDotAndApply(sim *Simulation, originaldot *Dot)
- func (dot *Dot) DurationExtend(sim *Simulation, extendBy time.Duration)
- func (dot *Dot) DurationExtendSnapshot(sim *Simulation, extendBy time.Duration)
- func (dot *Dot) ExpectedTickCount() int32
- func (dot *Dot) HastedTickCount() int32
- func (dot *Dot) NextTickAt() time.Duration
- func (dot *Dot) OutcomeExpectedSnapshotCrit(_ *Simulation, result *SpellResult, _ *AttackTable)
- func (dot *Dot) OutcomeMagicHitAndSnapshotCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (dot *Dot) OutcomeRangedHitAndCritSnapshot(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (dot *Dot) OutcomeRangedHitAndCritSnapshotNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (dot *Dot) OutcomeSnapshotCrit(sim *Simulation, result *SpellResult, _ *AttackTable)
- func (dot *Dot) OutcomeTick(_ *Simulation, result *SpellResult, _ *AttackTable)
- func (dot *Dot) OutcomeTickHealingCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (dot *Dot) OutcomeTickMagicCrit(sim *Simulation, result *SpellResult, _ *AttackTable)
- func (dot *Dot) OutcomeTickMagicCritNoHitCounter(sim *Simulation, result *SpellResult, _ *AttackTable)
- func (dot *Dot) OutcomeTickMagicHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (dot *Dot) OutcomeTickPhysicalCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (dot *Dot) OutcomeTickPhysicalHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (dot *Dot) OutstandingDmg() float64
- func (dot *Dot) RemainingTicks() int32
- func (dot *Dot) RestoreState(state DotState, sim *Simulation)
- func (dot *Dot) SaveState(sim *Simulation) DotState
- func (dot *Dot) Snapshot(target *Unit, baseDamage float64)
- func (dot *Dot) SnapshotHeal(target *Unit, baseHealing float64)
- func (dot *Dot) SnapshotPhysical(target *Unit, baseDamage float64)
- func (dot *Dot) TakeSnapshot(sim *Simulation, doRollover bool)
- func (dot *Dot) TickCount() int32
- func (dot *Dot) TickOnce(sim *Simulation)
- func (dot *Dot) TickPeriod() time.Duration
- func (dot *Dot) TimeUntilNextTick(sim *Simulation) time.Duration
- type DotArray
- type DotConfig
- type DotReference
- type DotState
- type DynamicDamageDoneByCaster
- type DynamicDamageTakenModifier
- type DynamicHealingTakenModifier
- type DynamicProc
- type DynamicProcManager
- type DynamicThreatDoneByCaster
- type Enchant
- type Encounter
- type EncounterCombo
- type EnergyBarOptions
- type EnergyCost
- type EnergyCostOptions
- type Environment
- func (env *Environment) ActiveTargetCount() int32
- func (env *Environment) GetActiveTargetUnits() []*Unit
- func (env *Environment) GetAgentFromUnit(unit *Unit) Agent
- func (env *Environment) GetMaxDuration() time.Duration
- func (env *Environment) GetTargetByIndex(index int32) *Target
- func (env *Environment) GetTargetUnitByIndex(index int32) *Unit
- func (env *Environment) GetUnit(ref *proto.UnitReference, contextUnit *Unit) *Unit
- func (env *Environment) IsFinalized() bool
- func (env *Environment) NextActiveTarget(target *Unit) *Target
- func (env *Environment) NextActiveTargetUnit(target *Unit) *Unit
- func (env *Environment) PrepullStartTime(sim *Simulation) time.Duration
- func (env *Environment) PreviousActiveTarget(target *Unit) *Target
- func (env *Environment) PreviousActiveTargetUnit(target *Unit) *Unit
- func (env *Environment) RegisterPostFinalizeEffect(postFinalizeEffect PostFinalizeEffect)
- func (env *Environment) RegisterPreFinalizeEffect(preFinalizeEffect PostFinalizeEffect)
- func (env *Environment) TotalTargetCount() int32
- func (env *Environment) TriggerDelayedPetInheritance(sim *Simulation, dynamicPets []*Pet, inheritanceFunc func(*Simulation, *Pet))
- type EnvironmentState
- type EquipScalingManager
- type Equipment
- func (equipment *Equipment) Back() *Item
- func (equipment *Equipment) Chest() *Item
- func (equipment *Equipment) EquipEnchant(enchant Enchant)
- func (equipment *Equipment) EquipItem(item Item)
- func (equipment *Equipment) Feet() *Item
- func (equipment *Equipment) Finger1() *Item
- func (equipment *Equipment) Finger2() *Item
- func (equipment *Equipment) GetItemBySlot(slot proto.ItemSlot) *Item
- func (equipment *Equipment) Hands() *Item
- func (equipment *Equipment) Head() *Item
- func (equipment *Equipment) Legs() *Item
- func (equipment *Equipment) MainHand() *Item
- func (equipment *Equipment) Neck() *Item
- func (equipment *Equipment) OffHand() *Item
- func (equipment *Equipment) Ranged() *Item
- func (equipment *Equipment) Shoulder() *Item
- func (equipment *Equipment) Stats(spec proto.Spec) stats.Stats
- func (equipment *Equipment) ToEquipmentSpecProto() *proto.EquipmentSpec
- func (equipment *Equipment) Trinket1() *Item
- func (equipment *Equipment) Trinket2() *Item
- func (equipment *Equipment) Waist() *Item
- func (equipment *Equipment) Wrist() *Item
- type EquipmentSpec
- type ExclusiveCategory
- func (ec *ExclusiveCategory) AnyActive() bool
- func (ec *ExclusiveCategory) GetActiveAura() *Aura
- func (ec *ExclusiveCategory) GetActiveEffect() *ExclusiveEffect
- func (ec *ExclusiveCategory) GetHighestPrioActiveEffect() *ExclusiveEffect
- func (ec *ExclusiveCategory) SetActive(sim *Simulation, newActiveEffect *ExclusiveEffect)
- type ExclusiveCategoryArray
- type ExclusiveEffect
- type ExclusiveEffectManager
- type ExpectedDamageCalculator
- type FocusCost
- type FocusCostOptions
- type GearSetCombo
- type Gem
- type GetAttackPowerValue
- type GetSpellPowerValue
- type GoRand
- type Hand
- type Hardcast
- type HitOutcome
- type IndividualTestSuite
- func (testSuite *IndividualTestSuite) Done(t *testing.T)
- func (testSuite *IndividualTestSuite) TestCasts(testName string, rsr *proto.RaidSimRequest)
- func (testSuite *IndividualTestSuite) TestCharacterStats(testName string, csr *proto.ComputeStatsRequest)
- func (testSuite *IndividualTestSuite) TestDPS(testName string, rsr *proto.RaidSimRequest) *proto.RaidSimResult
- func (testSuite *IndividualTestSuite) TestStatWeights(testName string, swr *proto.StatWeightsRequest)
- type Item
- type ItemEffectRandPropPoints
- type ItemFilter
- type ItemSet
- type ItemSpec
- type ItemStringSpec
- type ItemSwap
- func (swap *ItemSwap) AddTempEnchant(enchantID int32, slot proto.ItemSlot, swapped bool)
- func (swap *ItemSwap) CouldHaveItemEquippedInSlot(itemID int32, slot proto.ItemSlot) bool
- func (swap *ItemSwap) EligibleSlotsForEffect(effectID int32) []proto.ItemSlot
- func (swap *ItemSwap) EligibleSlotsForGem(effectID int32) []proto.ItemSlot
- func (swap *ItemSwap) EligibleSlotsForItem(itemID int32) []proto.ItemSlot
- func (swap *ItemSwap) GetEquippedItemBySlot(slot proto.ItemSlot) *Item
- func (swap *ItemSwap) GetUnequippedItemBySlot(slot proto.ItemSlot) *Item
- func (swap *ItemSwap) IsEnabled() bool
- func (swap *ItemSwap) IsSwapped() bool
- func (swap *ItemSwap) IsValidSwap(swapSet proto.APLActionItemSwap_SwapSet) bool
- func (swap *ItemSwap) ProcessTinker(spell *Spell, slots []proto.ItemSlot)
- func (swap *ItemSwap) RegisterActive(itemID int32)
- func (swap *ItemSwap) RegisterEnchantProc(effectID int32, aura *Aura)
- func (swap *ItemSwap) RegisterEnchantProcWithSlots(effectID int32, aura *Aura, slots []proto.ItemSlot)
- func (swap *ItemSwap) RegisterProc(itemID int32, aura *Aura)
- func (swap *ItemSwap) RegisterProcWithSlots(itemID int32, aura *Aura, slots []proto.ItemSlot)
- func (swap *ItemSwap) RegisterWeaponEnchantBuff(buffAura *Aura, enchantID int32)
- func (swap *ItemSwap) SwapItems(sim *Simulation, swapSet proto.APLActionItemSwap_SwapSet, isReset bool)
- type ItemSwapProcConfig
- type ItemSwapSetCombo
- type ItemSwapStats
- type ItemsTestGenerator
- type LabeledAuraArrays
- type MajorCooldown
- func (mcd *MajorCooldown) Disable()
- func (mcd *MajorCooldown) Enable()
- func (mcd *MajorCooldown) GetTimings() []time.Duration
- func (mcd *MajorCooldown) IsEnabled() bool
- func (mcd *MajorCooldown) IsReady(sim *Simulation) bool
- func (mcd *MajorCooldown) ReadyAt() time.Duration
- func (mcd *MajorCooldown) TimeToNextCast(sim *Simulation) time.Duration
- func (mcd *MajorCooldown) TimeToReady(sim *Simulation) time.Duration
- func (mcd *MajorCooldown) TryActivate(sim *Simulation, character *Character) bool
- type ManaCost
- type ManaCostOptions
- type MeleeDamageCalculator
- type MovementAction
- type MovementCallback
- type MovementUpdateType
- type OnApplyEffects
- type OnCastComplete
- type OnDamageAbsorbedCallback
- type OnDoneIteration
- type OnEncounterStart
- type OnExpire
- type OnFocusGain
- type OnGain
- type OnGainCallback
- type OnInit
- type OnItemSwap
- type OnMasteryStatChanged
- type OnPeriodicDamage
- type OnPetDisable
- type OnPetEnable
- type OnReset
- type OnRuneChange
- type OnRunicPowerGain
- type OnSnapshot
- type OnSpeedChanged
- type OnSpellHit
- type OnSpendCallback
- type OnStacksChange
- type OnTemporaryStatsChange
- type OnTick
- type OutcomeApplier
- type Party
- func (party *Party) AddStat(stat stats.Stat, amount float64)
- func (party *Party) AddStats(newStats stats.Stats)
- func (party *Party) GetMetrics() *proto.PartyMetrics
- func (party *Party) GetPartyBuffs(basePartyBuffs *proto.PartyBuffs) *proto.PartyBuffs
- func (party *Party) IsFull() bool
- func (party *Party) Size() int
- type PendingAction
- type PeriodicActionOptions
- type Pet
- func (eb *Pet) AddComboPoints(sim *Simulation, pointsToAdd int32, target *Unit, metrics *ResourceMetrics)
- func (eb *Pet) AddEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (fb *Pet) AddFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (mcdm *Pet) AddMajorCooldown(mcd MajorCooldown)
- func (pet *Pet) AddOwnerStats(sim *Simulation, addedStats stats.Stats)
- func (pet *Pet) AddPartyBuffs(_ *proto.PartyBuffs)
- func (rb *Pet) AddRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (pet *Pet) AddRaidBuffs(_ *proto.RaidBuffs)
- func (rp *Pet) AddRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Pet) AddUnscaledRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Pet) Advance(sim *Simulation, newTime time.Duration)
- func (rp *Pet) AllRunesSpent() bool
- func (rp *Pet) AnyDepletedRunes() bool
- func (rp *Pet) AnyRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Pet) AnySpentRuneReadyAt() time.Duration
- func (pet *Pet) ApplyTalents()
- func (rp *Pet) BloodDeathRuneBothReadyAt() time.Duration
- func (rp *Pet) BloodRuneReadyAt(sim *Simulation) time.Duration
- func (pet *Pet) ChangeStatInheritance(nonHitExpStatInheritance PetStatInheritance)
- func (eb *Pet) ComboPoints() int32
- func (rp *Pet) ConvertAndRegenBloodTapRune(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics) bool
- func (rp *Pet) ConvertAndRegenPlagueLeechRunes(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics)
- func (rp *Pet) ConvertFromDeath(sim *Simulation, slot int8)
- func (rp *Pet) ConvertToDeath(sim *Simulation, slot int8, revertAt time.Duration)
- func (rp *Pet) CurrentBloodOrDeathRunes() int8
- func (rp *Pet) CurrentBloodRunes() int8
- func (rp *Pet) CurrentDeathRunes() int8
- func (eb *Pet) CurrentEnergy() float64
- func (eb *Pet) CurrentEnergyRegenMultiplier() float64
- func (fb *Pet) CurrentFocus() float64
- func (rp *Pet) CurrentFrostOrDeathRunes() int8
- func (rp *Pet) CurrentFrostRunes() int8
- func (hb *Pet) CurrentHealth() float64
- func (hb *Pet) CurrentHealthPercent() float64
- func (rb *Pet) CurrentRage() float64
- func (rp *Pet) CurrentRunicPower() float64
- func (rp *Pet) CurrentUnholyOrDeathRunes() int8
- func (rp *Pet) CurrentUnholyRunes() int8
- func (rp *Pet) DeathRuneRegenAt(slot int32) time.Duration
- func (rp *Pet) DeathRuneRevertAt() time.Duration
- func (rp *Pet) DeathRunesInFU() int8
- func (rp *Pet) DebugString() string
- func (pet *Pet) Disable(sim *Simulation)
- func (pet *Pet) DisableOnStart()
- func (pet *Pet) Enable(sim *Simulation, petAgent PetAgent)
- func (pet *Pet) EnableWithStartAttackDelay(sim *Simulation, petAgent PetAgent, startAttackDelay time.Duration)
- func (pet *Pet) EnableWithTimeout(sim *Simulation, petAgent PetAgent, petDuration time.Duration)
- func (mb *Pet) EndOOMEvent(sim *Simulation)
- func (eb *Pet) EnergyRegenPerSecond() float64
- func (fb *Pet) FocusRegenPerSecond() float64
- func (fb *Pet) FocusRegenPerTick() float64
- func (rp *Pet) FrostRuneReadyAt(sim *Simulation) time.Duration
- func (hb *Pet) GainHealth(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (at *Pet) GetActiveAuraWithTag(tag string) *Aura
- func (at *Pet) GetAura(label string) *Aura
- func (at *Pet) GetAuraByID(actionID ActionID) *Aura
- func (at *Pet) GetAuras() []*Aura
- func (at *Pet) GetAurasWithTag(tag string) []*Aura
- func (pet *Pet) GetCharacter() *Character
- func (at *Pet) GetIcdAuraByID(actionID ActionID) *Aura
- func (pet *Pet) GetInheritedStats() stats.Stats
- func (mcdm *Pet) GetInitialMajorCooldown(actionID ActionID) MajorCooldown
- func (mcdm *Pet) GetMajorCooldown(actionID ActionID) *MajorCooldown
- func (mcdm *Pet) GetMajorCooldownIDs() []*proto.ActionID
- func (mcdm *Pet) GetMajorCooldownIgnoreTag(actionID ActionID) *MajorCooldown
- func (mcdm *Pet) GetMajorCooldowns() []*MajorCooldown
- func (mcdm *Pet) GetMatchingStatBuffCooldownAuras(statTypesToMatch []stats.Stat) []*StatBuffAura
- func (mcdm *Pet) GetMatchingStatBuffSpells(statTypesToMatch []stats.Stat) []*Spell
- func (rp *Pet) GetRuneRegenMultiplier() float64
- func (at *Pet) HasActiveAura(label string) bool
- func (at *Pet) HasActiveAuraWithTag(tag string) bool
- func (at *Pet) HasActiveAuraWithTagExcludingAura(tag string, excludeAura *Aura) bool
- func (at *Pet) HasAura(label string) bool
- func (at *Pet) HasAuraWithTag(tag string) bool
- func (pet *Pet) Initialize()
- func (pet *Pet) IsGuardian() bool
- func (mb *Pet) IsOOM() bool
- func (eb *Pet) IsReset(sim *Simulation) bool
- func (rp *Pet) LeftBloodRuneReady() bool
- func (eb *Pet) MaxComboPoints() int32
- func (hb *Pet) MaxHealth() float64
- func (eb *Pet) MaximumEnergy() float64
- func (fb *Pet) MaximumFocus() float64
- func (rb *Pet) MaximumRage() float64
- func (rp *Pet) MaximumRunicPower() float64
- func (rb *Pet) MultiplyAutoAttackRageGen(multiplier float64)
- func (eb *Pet) MultiplyEnergyRegenSpeed(sim *Simulation, multiplier float64)
- func (fb *Pet) MultiplyFocusRegenSpeed(sim *Simulation, multiplier float64)
- func (rb *Pet) MultiplyRageGen(multiplier float64)
- func (rp *Pet) MultiplyRuneRegenSpeed(sim *Simulation, multiplier float64)
- func (rp *Pet) MultiplyRunicRegen(multiply float64)
- func (rp *Pet) NewBloodRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *Pet) NewDeathRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *Pet) NewFrostRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *Pet) NewRunicPowerMetrics(action ActionID) *ResourceMetrics
- func (rp *Pet) NewUnholyRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *Pet) NextBloodRuneReadyAt(sim *Simulation) time.Duration
- func (eb *Pet) NextEnergyTickAt() time.Duration
- func (fb *Pet) NextFocusTickAt() time.Duration
- func (rp *Pet) NextFrostRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Pet) NextUnholyRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Pet) NormalFrostRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Pet) NormalSpentBloodRuneReadyAt(_ *Simulation) time.Duration
- func (rp *Pet) NormalUnholyRuneReadyAt(sim *Simulation) time.Duration
- func (at *Pet) NumActiveAurasWithTag(tag string) int32
- func (at *Pet) OnApplyEffects(sim *Simulation, target *Unit, spell *Spell)
- func (at *Pet) OnCastComplete(sim *Simulation, spell *Spell)
- func (at *Pet) OnEncounterStart(sim *Simulation)
- func (pet *Pet) OnGCDReady(_ *Simulation)
- func (at *Pet) OnHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Pet) OnHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Pet) OnPeriodicDamageDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Pet) OnPeriodicDamageTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Pet) OnPeriodicHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Pet) OnPeriodicHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Pet) OnSpellHitDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Pet) OnSpellHitTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (rp *Pet) OptimalRuneCost(cost RuneCost) RuneCost
- func (rp *Pet) RegenAllFrostAndUnholyRunesAsDeath(sim *Simulation, deathRuneMetrics *ResourceMetrics)
- func (rp *Pet) RegenAllRunes(sim *Simulation, metrics []*ResourceMetrics)
- func (rp *Pet) RegenRunicEmpowermentRune(sim *Simulation, runeMetrics []*ResourceMetrics)
- func (at *Pet) RegisterResetEffect(resetEffect ResetEffect)
- func (hb *Pet) RemoveHealth(sim *Simulation, amount float64)
- func (eb *Pet) ResetComboPoints(sim *Simulation, comboPointsToKeep int32)
- func (eb *Pet) ResetEnergyTick(sim *Simulation)
- func (fb *Pet) ResetFocusTick(sim *Simulation)
- func (rb *Pet) ResetRageBar(sim *Simulation, rageToKeep float64)
- func (rp *Pet) ResetRunicPowerBar(sim *Simulation, runicPowerToKeep float64)
- func (rp *Pet) RuneIsActive(slot int8) bool
- func (rp *Pet) RuneIsDeath(slot int8) bool
- func (rp *Pet) RuneReadyAt(sim *Simulation, slot int8) time.Duration
- func (eb *Pet) SetMaxComboPoints(maxComboPoints int32)
- func (rp *Pet) SetPermanentDeathRunes(permanentDeaths []int8)
- func (rp *Pet) SetRuneCd(runeCd time.Duration)
- func (pet *Pet) SetStartAttackDelay(startAttackDelay time.Duration)
- func (pet *Pet) SetTimeoutAction(sim *Simulation, duration time.Duration)
- func (eb *Pet) SpendComboPoints(sim *Simulation, metrics *ResourceMetrics)
- func (eb *Pet) SpendEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (fb *Pet) SpendFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (eb *Pet) SpendPartialComboPoints(sim *Simulation, pointsToSpend int32, metrics *ResourceMetrics)
- func (rb *Pet) SpendRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Pet) SpendRuneReadyAt(slot int8, spendAt time.Duration) time.Duration
- func (rp *Pet) SpendRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (mb *Pet) StartOOMEvent(sim *Simulation, requiredMana float64)
- func (eb *Pet) TimeToTargetEnergy(targetEnergy float64) time.Duration
- func (fb *Pet) TimeToTargetFocus(targetFocus float64) time.Duration
- func (rp *Pet) UnholyRuneReadyAt(sim *Simulation) time.Duration
- func (mcdm *Pet) UpdateMajorCooldowns()
- func (eb *Pet) UpdateMaxEnergy(sim *Simulation, bonusEnergy float64, metrics *ResourceMetrics)
- func (hb *Pet) UpdateMaxHealth(sim *Simulation, bonusHealth float64, metrics *ResourceMetrics)
- type PetAgent
- type PetConfig
- type PetSpeedInheritance
- type PetStatInheritance
- type PostFinalizeEffect
- type PowerBarType
- type PrepullAction
- type PresetTarget
- type PresimOptions
- type Presimmer
- type ProcExtraCondition
- type ProcHandler
- type ProcMask
- type ProcTrigger
- type QueuedSpell
- type RPPMConfig
- func (config RPPMConfig) WithApproximateIlvlMod(coefficient float64, baseIlvl int32) RPPMConfig
- func (config RPPMConfig) WithClassMod(coefficient float64, classMask int) RPPMConfig
- func (config RPPMConfig) WithCritMod() RPPMConfig
- func (config RPPMConfig) WithHasteMod() RPPMConfig
- func (config RPPMConfig) WithSpecMod(coefficient float64, spec proto.Spec) RPPMConfig
- type RPPMProc
- type RageBarOptions
- type RageCost
- type RageCostOptions
- type Raid
- func (raid *Raid) AddStats(s stats.Stats)
- func (raid *Raid) GetActiveAllyUnits() []*Unit
- func (raid *Raid) GetActiveUnits() []*Unit
- func (raid *Raid) GetFirstEmptyRaidIndex() (*Party, int)
- func (raid *Raid) GetFirstNPlayersOrPets(n int32) []*Unit
- func (raid *Raid) GetFirstTargetDummy() *TargetDummy
- func (raid *Raid) GetLowestHealthAllyUnit() *Unit
- func (raid *Raid) GetMetrics() *proto.RaidMetrics
- func (raid *Raid) GetPlayerFromUnit(unit *Unit) Agent
- func (raid *Raid) GetPlayerFromUnitIndex(unitIndex int32) Agent
- func (raid *Raid) GetPlayersOfClass(class proto.Class) []Agent
- func (raid *Raid) GetRaidBuffs(baseRaidBuffs *proto.RaidBuffs) *proto.RaidBuffs
- func (raid *Raid) GetTargetDummies() []*TargetDummy
- func (raid *Raid) Size() int
- type Rand
- type RandomSuffix
- type ReforgeStat
- type ReplaceMHSwing
- type ResetEffect
- type ResetTestResult
- type ResourceCostImpl
- type ResourceKey
- type ResourceMetrics
- func (resourceMetrics *ResourceMetrics) ActualGainForCurrentIteration() float64
- func (resourceMetrics *ResourceMetrics) AddEvent(gain float64, actualGain float64)
- func (resourceMetrics *ResourceMetrics) EventsForCurrentIteration() int32
- func (resourceMetrics *ResourceMetrics) ToProto() *proto.ResourceMetrics
- type RotationCastsTestGenerator
- type RotationCombo
- type RuneChangeType
- type RuneCost
- type RuneCostImpl
- func (rc *RuneCostImpl) CostFailureReason(_ *Simulation, _ *Spell) string
- func (rc *RuneCostImpl) GetConfig() RuneCostOptions
- func (rc *RuneCostImpl) IssueRefund(_ *Simulation, _ *Spell)
- func (rc *RuneCostImpl) MeetsRequirement(_ *Simulation, spell *Spell) bool
- func (rc *RuneCostImpl) SpendCost(sim *Simulation, spell *Spell)
- type RuneCostOptions
- type RuneMeta
- type SecondaryResourceBar
- type SecondaryResourceConfig
- type SetBonus
- type SetBonusCollection
- type SettingsCombos
- type Shield
- type ShieldArray
- type ShieldConfig
- type ShieldShouldApplyCondition
- type ShieldStrengthCalculator
- type Simulation
- func (sim *Simulation) AddPendingAction(pa *PendingAction)
- func (sim *Simulation) AddTask(task Task)
- func (sim *Simulation) Cleanup()
- func (sim *Simulation) DisableTargetUnit(targetUnit *Unit, expireAuras bool)
- func (sim *Simulation) EnableTargetUnit(targetUnit *Unit)
- func (sim *Simulation) GetConsumedPendingActionFromPool() *PendingAction
- func (sim *Simulation) GetRemainingDuration() time.Duration
- func (sim *Simulation) GetRemainingDurationPercent() float64
- func (sim *Simulation) IsExecutePhase20() bool
- func (sim *Simulation) IsExecutePhase25() bool
- func (sim *Simulation) IsExecutePhase35() bool
- func (sim *Simulation) IsExecutePhase45() bool
- func (sim *Simulation) IsExecutePhase90() bool
- func (sim *Simulation) PrePull()
- func (sim *Simulation) Proc(p float64, label string) bool
- func (sim *Simulation) RandomExpFloat(label string) float64
- func (sim *Simulation) RandomFloat(label string) float64
- func (sim *Simulation) RegisterExecutePhaseCallback(callback func(sim *Simulation, isExecute int32))
- func (sim *Simulation) RemoveTask(task Task)
- func (sim *Simulation) RescheduleTask(taskTime time.Duration)
- func (sim *Simulation) Reseed(seed int64)
- func (sim *Simulation) Reset()
- func (sim *Simulation) Roll(min float64, max float64) float64
- func (sim *Simulation) RollWithLabel(min float64, max float64, label string) float64
- func (sim *Simulation) Step() bool
- type SingleCharacterStatsTestGenerator
- type SingleDpsTestGenerator
- type SingleStatWeightsTestGenerator
- type SpecOptionsCombo
- type SpecSetter
- type Spell
- func (spell *Spell) AOEDot() *Dot
- func (spell *Spell) AOEHot() *Dot
- func (spell *Spell) AnyDotsActive(sim *Simulation) bool
- func (spell *Spell) ApplyAOEThreat(threatAmount float64)
- func (spell *Spell) ApplyAOEThreatIgnoreMultipliers(threatAmount float64)
- func (spell *Spell) ApplyAllDots(sim *Simulation)
- func (spell *Spell) ApplyPostOutcomeDamageModifiers(sim *Simulation, result *SpellResult, isPeriodic bool)
- func (spell *Spell) ApplyPostOutcomeHealingModifiers(sim *Simulation, result *SpellResult)
- func (spell *Spell) AttackerDamageMultiplier(attackTable *AttackTable, isDot bool) float64
- func (spell *Spell) BloodRuneMetrics() *ResourceMetrics
- func (spell *Spell) BonusDamage() float64
- func (spell *Spell) CalcAndDealAoeDamage(sim *Simulation, baseDamage float64, outcomeApplier OutcomeApplier) SpellResultSlice
- func (spell *Spell) CalcAndDealAoeDamageWithVariance(sim *Simulation, outcomeApplier OutcomeApplier, ...) SpellResultSlice
- func (spell *Spell) CalcAndDealCleaveDamage(sim *Simulation, firstTarget *Unit, maxTargets int32, baseDamage float64, ...) SpellResultSlice
- func (spell *Spell) CalcAndDealCleaveDamageWithVariance(sim *Simulation, firstTarget *Unit, maxTargets int32, ...) SpellResultSlice
- func (spell *Spell) CalcAndDealDamage(sim *Simulation, target *Unit, baseDamage float64, ...) *SpellResult
- func (spell *Spell) CalcAndDealHealing(sim *Simulation, target *Unit, baseHealing float64, ...) *SpellResult
- func (spell *Spell) CalcAndDealOutcome(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
- func (spell *Spell) CalcAndDealPeriodicAoeDamage(sim *Simulation, baseDamage float64, outcomeApplier OutcomeApplier) SpellResultSlice
- func (spell *Spell) CalcAndDealPeriodicDamage(sim *Simulation, target *Unit, baseDamage float64, ...) *SpellResult
- func (spell *Spell) CalcAndDealPeriodicHealing(sim *Simulation, target *Unit, baseHealing float64, ...) *SpellResult
- func (spell *Spell) CalcAoeDamage(sim *Simulation, baseDamage float64, outcomeApplier OutcomeApplier) SpellResultSlice
- func (spell *Spell) CalcAoeDamageWithVariance(sim *Simulation, outcomeApplier OutcomeApplier, ...) SpellResultSlice
- func (spell *Spell) CalcCleaveDamage(sim *Simulation, firstTarget *Unit, maxTargets int32, baseDamage float64, ...) SpellResultSlice
- func (spell *Spell) CalcCleaveDamageWithVariance(sim *Simulation, firstTarget *Unit, maxTargets int32, ...) SpellResultSlice
- func (spell *Spell) CalcDamage(sim *Simulation, target *Unit, baseDamage float64, ...) *SpellResult
- func (spell *Spell) CalcHealing(sim *Simulation, target *Unit, baseHealing float64, ...) *SpellResult
- func (spell *Spell) CalcOutcome(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
- func (spell *Spell) CalcPeriodicAoeDamage(sim *Simulation, baseDamage float64, outcomeApplier OutcomeApplier) SpellResultSlice
- func (spell *Spell) CalcPeriodicDamage(sim *Simulation, target *Unit, baseDamage float64, ...) *SpellResult
- func (spell *Spell) CalcPeriodicHealing(sim *Simulation, target *Unit, baseHealing float64, ...) *SpellResult
- func (spell *Spell) CanCast(sim *Simulation, target *Unit) bool
- func (spell *Spell) CanCastDuringChannel(sim *Simulation) bool
- func (spell *Spell) CanCastOrQueue(sim *Simulation, target *Unit) bool
- func (spell *Spell) CanCompleteCast(sim *Simulation, target *Unit, logCastFailure bool) bool
- func (spell *Spell) CanQueue(sim *Simulation, target *Unit) bool
- func (spell *Spell) Cast(sim *Simulation, target *Unit) bool
- func (spell *Spell) CastOnAllOtherTargets(sim *Simulation, mainTarget *Unit)
- func (spell *Spell) CastOrQueue(sim *Simulation, target *Unit)
- func (spell *Spell) CastTime() time.Duration
- func (spell *Spell) CasterHealingMultiplier() float64
- func (spell *Spell) CloneResult(result *SpellResult) *SpellResult
- func (spell *Spell) ComboPointMetrics() *ResourceMetrics
- func (spell *Spell) ConsumeCharge(sim *Simulation)
- func (spell *Spell) CritDamageMultiplier() float64
- func (spell *Spell) CurCPM(sim *Simulation) float64
- func (spell *Spell) CurDamagePerCast() float64
- func (spell *Spell) CurDot() *Dot
- func (spell *Spell) CurHot() *Dot
- func (spell *Spell) DealBatchedAoeDamage(sim *Simulation)
- func (spell *Spell) DealBatchedPeriodicDamage(sim *Simulation)
- func (spell *Spell) DealDamage(sim *Simulation, result *SpellResult)
- func (spell *Spell) DealHealing(sim *Simulation, result *SpellResult)
- func (spell *Spell) DealOutcome(sim *Simulation, result *SpellResult)
- func (spell *Spell) DealPeriodicDamage(sim *Simulation, result *SpellResult)
- func (spell *Spell) DealPeriodicHealing(sim *Simulation, result *SpellResult)
- func (spell *Spell) DeathRuneMetrics() *ResourceMetrics
- func (spell *Spell) DisposeResult(result *SpellResult)
- func (spell *Spell) DodgeSuppression() float64
- func (spell *Spell) Dot(target *Unit) *Dot
- func (spell *Spell) EffectiveCastTime() time.Duration
- func (spell *Spell) EnergyMetrics() *ResourceMetrics
- func (spell *Spell) ExpectedInitialDamage(sim *Simulation, target *Unit) float64
- func (spell *Spell) ExpectedTickDamage(sim *Simulation, target *Unit) float64
- func (spell *Spell) ExpectedTickDamageFromCurrentSnapshot(sim *Simulation, target *Unit) float64
- func (spell *Spell) FrostRuneMetrics() *ResourceMetrics
- func (spell *Spell) GetMetricSplitCount() int
- func (spell *Spell) GetNumCharges() int
- func (spell *Spell) GetPhysicalMissChance(attackTable *AttackTable) float64
- func (spell *Spell) HealingCritChance() float64
- func (spell *Spell) HealingCritCheck(sim *Simulation) bool
- func (spell *Spell) HealingPower(target *Unit) float64
- func (spell *Spell) HealthMetrics(target *Unit) *ResourceMetrics
- func (spell *Spell) Hot(target *Unit) *Dot
- func (spell *Spell) IsMH() bool
- func (spell *Spell) IsMelee() bool
- func (spell *Spell) IsOH() bool
- func (spell *Spell) IsRanged() bool
- func (spell *Spell) IsReady(sim *Simulation) bool
- func (spell *Spell) IssueRefund(sim *Simulation)
- func (spell *Spell) MagicCritCheck(sim *Simulation, target *Unit) bool
- func (spell *Spell) MagicHitCheck(sim *Simulation, attackTable *AttackTable) bool
- func (spell *Spell) Matches(mask int64) bool
- func (spell *Spell) MeleeAttackPower() float64
- func (spell *Spell) NewResult(target *Unit) *SpellResult
- func (spell *Spell) NextChargeIn(sim *Simulation) time.Duration
- func (spell *Spell) OutcomeAlwaysHit(sim *Simulation, result *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeAlwaysHitNoHitCounter(_ *Simulation, result *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeAlwaysMiss(_ *Simulation, result *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeEnemyMeleeWhite(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeEnemyMeleeWhiteNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeExpectedMagicAlwaysHit(_ *Simulation, _ *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeExpectedMagicCrit(_ *Simulation, result *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeExpectedMagicHit(_ *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeExpectedMagicHitAndCrit(_ *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeExpectedMeleeWeaponSpecialHitAndCrit(_ *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeExpectedMeleeWhite(_ *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeExpectedPhysicalCrit(_ *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeExpectedTick(_ *Simulation, _ *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeHealing(_ *Simulation, result *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeHealingCrit(sim *Simulation, result *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeHealingCritNoHitCounter(sim *Simulation, result *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeHealingNoHitCounter(_ *Simulation, result *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeMagicCrit(sim *Simulation, result *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeMagicCritNoHitCounter(sim *Simulation, result *SpellResult, _ *AttackTable)
- func (spell *Spell) OutcomeMagicHit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMagicHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMagicHitAndCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMagicHitNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialBlockAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialBlockAndCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialCritOnly(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialCritOnlyNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialHit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialHitAndCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialHitNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialNoBlockDodgeParry(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialNoBlockDodgeParryNoCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialNoBlockDodgeParryNoCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeSpecialNoBlockDodgeParryNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeWeaponSpecialHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeWeaponSpecialHitAndCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeWeaponSpecialNoCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeWeaponSpecialNoCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeWeaponSpecialNoParry(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeWeaponSpecialNoParryNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeWhite(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeWhiteNoGlance(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeMeleeWhiteNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeRangedCritOnly(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeRangedCritOnlyNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeRangedHit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeRangedHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeRangedHitAndCritNoBlock(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeRangedHitAndCritNoBlockNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeRangedHitAndCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeRangedHitNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeTickMagicHit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) OutcomeTickMagicHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
- func (spell *Spell) ParrySuppression(attackTable *AttackTable) float64
- func (spell *Spell) PhysicalCritChance(attackTable *AttackTable) float64
- func (spell *Spell) PhysicalCritCheck(sim *Simulation, attackTable *AttackTable) bool
- func (spell *Spell) PhysicalHitChance(attackTable *AttackTable) float64
- func (spell *Spell) PhysicalHitCheck(sim *Simulation, attackTable *AttackTable) bool
- func (spell *Spell) Proc(sim *Simulation, target *Unit)
- func (spell *Spell) RageMetrics() *ResourceMetrics
- func (spell *Spell) RangedAttackPower() float64
- func (spell *Spell) ReadyAt() time.Duration
- func (spell *Spell) RefreshCharge(sim *Simulation)
- func (spell *Spell) RegisterTravelTimeCallback(sim *Simulation, travelTime time.Duration, callback func(*Simulation))
- func (spell *Spell) RuneCostImpl() *RuneCostImpl
- func (spell *Spell) RunicPowerMetrics() *ResourceMetrics
- func (spell *Spell) SelfHot() *Dot
- func (spell *Spell) SelfShield() *Shield
- func (spell *Spell) SetMetricsSplit(splitIdx int32)
- func (spell *Spell) Shield(target *Unit) *Shield
- func (spell *Spell) ShouldRefreshExclusiveEffects(sim *Simulation, target *Unit, refreshWindow time.Duration) bool
- func (spell *Spell) SkipCastAndApplyEffects(sim *Simulation, target *Unit)
- func (spell *Spell) SpellChanceToMiss(attackTable *AttackTable) float64
- func (spell *Spell) SpellCritChance(target *Unit) float64
- func (spell *Spell) SpellHitChance(target *Unit) float64
- func (spell *Spell) SpellPower() float64
- func (spell *Spell) SpendCostAndConvertFrostOrUnholyRune(sim *Simulation, landed bool)
- func (spell *Spell) SpendRefundableCost(sim *Simulation, result *SpellResult)
- func (spell *Spell) SpendRefundableCostAndConvertBloodOrFrostRune(sim *Simulation, landed bool)
- func (spell *Spell) SpendRefundableCostAndConvertBloodRune(sim *Simulation, landed bool)
- func (spell *Spell) SpendRefundableCostAndConvertFrostOrUnholyRune(sim *Simulation, landed bool)
- func (spell *Spell) SpendRefundableCostAndConvertFrostRune(sim *Simulation, landed bool)
- func (spell *Spell) TargetDamageMultiplier(sim *Simulation, attackTable *AttackTable, isPeriodic bool) float64
- func (spell *Spell) ThreatFromDamage(sim *Simulation, outcome HitOutcome, damage float64, attackTable *AttackTable) float64
- func (spell *Spell) TickAllDotsOnce(sim *Simulation)
- func (spell *Spell) TimeToReady(sim *Simulation) time.Duration
- func (spell *Spell) TravelTime() time.Duration
- func (spell *Spell) UnholyRuneMetrics() *ResourceMetrics
- func (spell *Spell) WaitTravelTime(sim *Simulation, callback func(*Simulation))
- type SpellConfig
- type SpellCost
- type SpellFlag
- type SpellMetrics
- type SpellMod
- func (mod *SpellMod) Activate()
- func (mod *SpellMod) Deactivate()
- func (mod *SpellMod) GetFloatValue() float64
- func (mod *SpellMod) GetIntValue() int32
- func (mod *SpellMod) GetTimeValue() time.Duration
- func (mod *SpellMod) UpdateFloatValue(value float64)
- func (mod *SpellMod) UpdateIntValue(value int32)
- func (mod *SpellMod) UpdateTimeValue(value time.Duration)
- type SpellModApply
- type SpellModConfig
- type SpellModFunctions
- type SpellModOnReset
- type SpellModRemove
- type SpellModType
- type SpellRegisteredHandler
- type SpellResult
- type SpellResultCache
- type SpellResultIteration
- type SpellResultSlice
- type SpellSchool
- type SplitMix64
- type StackingStatAura
- type StatBuffAura
- type StatConfig
- type StatWeightValues
- type StatWeightsResult
- type SubGenerator
- type TalentsCombo
- type Target
- func (eb *Target) AddComboPoints(sim *Simulation, pointsToAdd int32, target *Unit, metrics *ResourceMetrics)
- func (eb *Target) AddEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (fb *Target) AddFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (target *Target) AddPartyBuffs(_ *proto.PartyBuffs)
- func (rb *Target) AddRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (target *Target) AddRaidBuffs(_ *proto.RaidBuffs)
- func (rp *Target) AddRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Target) AddUnscaledRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Target) Advance(sim *Simulation, newTime time.Duration)
- func (rp *Target) AllRunesSpent() bool
- func (rp *Target) AnyDepletedRunes() bool
- func (rp *Target) AnyRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Target) AnySpentRuneReadyAt() time.Duration
- func (target *Target) ApplyTalents()
- func (rp *Target) BloodDeathRuneBothReadyAt() time.Duration
- func (rp *Target) BloodRuneReadyAt(sim *Simulation) time.Duration
- func (eb *Target) ComboPoints() int32
- func (rp *Target) ConvertAndRegenBloodTapRune(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics) bool
- func (rp *Target) ConvertAndRegenPlagueLeechRunes(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics)
- func (rp *Target) ConvertFromDeath(sim *Simulation, slot int8)
- func (rp *Target) ConvertToDeath(sim *Simulation, slot int8, revertAt time.Duration)
- func (rp *Target) CurrentBloodOrDeathRunes() int8
- func (rp *Target) CurrentBloodRunes() int8
- func (rp *Target) CurrentDeathRunes() int8
- func (eb *Target) CurrentEnergy() float64
- func (eb *Target) CurrentEnergyRegenMultiplier() float64
- func (fb *Target) CurrentFocus() float64
- func (rp *Target) CurrentFrostOrDeathRunes() int8
- func (rp *Target) CurrentFrostRunes() int8
- func (hb *Target) CurrentHealth() float64
- func (hb *Target) CurrentHealthPercent() float64
- func (rb *Target) CurrentRage() float64
- func (rp *Target) CurrentRunicPower() float64
- func (rp *Target) CurrentUnholyOrDeathRunes() int8
- func (rp *Target) CurrentUnholyRunes() int8
- func (rp *Target) DeathRuneRegenAt(slot int32) time.Duration
- func (rp *Target) DeathRuneRevertAt() time.Duration
- func (rp *Target) DeathRunesInFU() int8
- func (rp *Target) DebugString() string
- func (target *Target) Disable(sim *Simulation, expireAuras bool)
- func (target *Target) Enable(sim *Simulation)
- func (mb *Target) EndOOMEvent(sim *Simulation)
- func (eb *Target) EnergyRegenPerSecond() float64
- func (target *Target) ExecuteCustomRotation(sim *Simulation)
- func (fb *Target) FocusRegenPerSecond() float64
- func (fb *Target) FocusRegenPerTick() float64
- func (rp *Target) FrostRuneReadyAt(sim *Simulation) time.Duration
- func (hb *Target) GainHealth(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (at *Target) GetActiveAuraWithTag(tag string) *Aura
- func (at *Target) GetAura(label string) *Aura
- func (at *Target) GetAuraByID(actionID ActionID) *Aura
- func (at *Target) GetAuras() []*Aura
- func (at *Target) GetAurasWithTag(tag string) []*Aura
- func (target *Target) GetCharacter() *Character
- func (at *Target) GetIcdAuraByID(actionID ActionID) *Aura
- func (target *Target) GetMetricsProto() *proto.UnitMetrics
- func (rp *Target) GetRuneRegenMultiplier() float64
- func (at *Target) HasActiveAura(label string) bool
- func (at *Target) HasActiveAuraWithTag(tag string) bool
- func (at *Target) HasActiveAuraWithTagExcludingAura(tag string, excludeAura *Aura) bool
- func (at *Target) HasAura(label string) bool
- func (at *Target) HasAuraWithTag(tag string) bool
- func (target *Target) Initialize()
- func (mb *Target) IsOOM() bool
- func (eb *Target) IsReset(sim *Simulation) bool
- func (rp *Target) LeftBloodRuneReady() bool
- func (eb *Target) MaxComboPoints() int32
- func (hb *Target) MaxHealth() float64
- func (eb *Target) MaximumEnergy() float64
- func (fb *Target) MaximumFocus() float64
- func (rb *Target) MaximumRage() float64
- func (rp *Target) MaximumRunicPower() float64
- func (rb *Target) MultiplyAutoAttackRageGen(multiplier float64)
- func (eb *Target) MultiplyEnergyRegenSpeed(sim *Simulation, multiplier float64)
- func (fb *Target) MultiplyFocusRegenSpeed(sim *Simulation, multiplier float64)
- func (rb *Target) MultiplyRageGen(multiplier float64)
- func (rp *Target) MultiplyRuneRegenSpeed(sim *Simulation, multiplier float64)
- func (rp *Target) MultiplyRunicRegen(multiply float64)
- func (rp *Target) NewBloodRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *Target) NewDeathRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *Target) NewFrostRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *Target) NewRunicPowerMetrics(action ActionID) *ResourceMetrics
- func (rp *Target) NewUnholyRuneMetrics(action ActionID) *ResourceMetrics
- func (target *Target) NextActiveTarget() *Target
- func (rp *Target) NextBloodRuneReadyAt(sim *Simulation) time.Duration
- func (eb *Target) NextEnergyTickAt() time.Duration
- func (fb *Target) NextFocusTickAt() time.Duration
- func (rp *Target) NextFrostRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Target) NextUnholyRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Target) NormalFrostRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Target) NormalSpentBloodRuneReadyAt(_ *Simulation) time.Duration
- func (rp *Target) NormalUnholyRuneReadyAt(sim *Simulation) time.Duration
- func (at *Target) NumActiveAurasWithTag(tag string) int32
- func (at *Target) OnApplyEffects(sim *Simulation, target *Unit, spell *Spell)
- func (at *Target) OnCastComplete(sim *Simulation, spell *Spell)
- func (target *Target) OnEncounterStart(_ *Simulation)
- func (at *Target) OnHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Target) OnHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Target) OnPeriodicDamageDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Target) OnPeriodicDamageTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Target) OnPeriodicHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Target) OnPeriodicHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Target) OnSpellHitDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Target) OnSpellHitTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (rp *Target) OptimalRuneCost(cost RuneCost) RuneCost
- func (target *Target) PreviousActiveTarget() *Target
- func (rp *Target) RegenAllFrostAndUnholyRunesAsDeath(sim *Simulation, deathRuneMetrics *ResourceMetrics)
- func (rp *Target) RegenAllRunes(sim *Simulation, metrics []*ResourceMetrics)
- func (rp *Target) RegenRunicEmpowermentRune(sim *Simulation, runeMetrics []*ResourceMetrics)
- func (at *Target) RegisterResetEffect(resetEffect ResetEffect)
- func (hb *Target) RemoveHealth(sim *Simulation, amount float64)
- func (target *Target) Reset(sim *Simulation)
- func (eb *Target) ResetComboPoints(sim *Simulation, comboPointsToKeep int32)
- func (eb *Target) ResetEnergyTick(sim *Simulation)
- func (fb *Target) ResetFocusTick(sim *Simulation)
- func (rb *Target) ResetRageBar(sim *Simulation, rageToKeep float64)
- func (rp *Target) ResetRunicPowerBar(sim *Simulation, runicPowerToKeep float64)
- func (rp *Target) RuneIsActive(slot int8) bool
- func (rp *Target) RuneIsDeath(slot int8) bool
- func (rp *Target) RuneReadyAt(sim *Simulation, slot int8) time.Duration
- func (eb *Target) SetMaxComboPoints(maxComboPoints int32)
- func (rp *Target) SetPermanentDeathRunes(permanentDeaths []int8)
- func (rp *Target) SetRuneCd(runeCd time.Duration)
- func (eb *Target) SpendComboPoints(sim *Simulation, metrics *ResourceMetrics)
- func (eb *Target) SpendEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (fb *Target) SpendFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (eb *Target) SpendPartialComboPoints(sim *Simulation, pointsToSpend int32, metrics *ResourceMetrics)
- func (rb *Target) SpendRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Target) SpendRuneReadyAt(slot int8, spendAt time.Duration) time.Duration
- func (rp *Target) SpendRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (mb *Target) StartOOMEvent(sim *Simulation, requiredMana float64)
- func (eb *Target) TimeToTargetEnergy(targetEnergy float64) time.Duration
- func (fb *Target) TimeToTargetFocus(targetFocus float64) time.Duration
- func (rp *Target) UnholyRuneReadyAt(sim *Simulation) time.Duration
- func (eb *Target) UpdateMaxEnergy(sim *Simulation, bonusEnergy float64, metrics *ResourceMetrics)
- func (hb *Target) UpdateMaxHealth(sim *Simulation, bonusHealth float64, metrics *ResourceMetrics)
- type TargetAI
- type TargetDummy
- func (eb *TargetDummy) AddComboPoints(sim *Simulation, pointsToAdd int32, target *Unit, metrics *ResourceMetrics)
- func (eb *TargetDummy) AddEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (fb *TargetDummy) AddFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (mcdm *TargetDummy) AddMajorCooldown(mcd MajorCooldown)
- func (td *TargetDummy) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
- func (rb *TargetDummy) AddRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (td *TargetDummy) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (rp *TargetDummy) AddRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *TargetDummy) AddUnscaledRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *TargetDummy) Advance(sim *Simulation, newTime time.Duration)
- func (rp *TargetDummy) AllRunesSpent() bool
- func (rp *TargetDummy) AnyDepletedRunes() bool
- func (rp *TargetDummy) AnyRuneReadyAt(sim *Simulation) time.Duration
- func (rp *TargetDummy) AnySpentRuneReadyAt() time.Duration
- func (td *TargetDummy) ApplyTalents()
- func (rp *TargetDummy) BloodDeathRuneBothReadyAt() time.Duration
- func (rp *TargetDummy) BloodRuneReadyAt(sim *Simulation) time.Duration
- func (eb *TargetDummy) ComboPoints() int32
- func (rp *TargetDummy) ConvertAndRegenBloodTapRune(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics) bool
- func (rp *TargetDummy) ConvertAndRegenPlagueLeechRunes(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics)
- func (rp *TargetDummy) ConvertFromDeath(sim *Simulation, slot int8)
- func (rp *TargetDummy) ConvertToDeath(sim *Simulation, slot int8, revertAt time.Duration)
- func (rp *TargetDummy) CurrentBloodOrDeathRunes() int8
- func (rp *TargetDummy) CurrentBloodRunes() int8
- func (rp *TargetDummy) CurrentDeathRunes() int8
- func (eb *TargetDummy) CurrentEnergy() float64
- func (eb *TargetDummy) CurrentEnergyRegenMultiplier() float64
- func (fb *TargetDummy) CurrentFocus() float64
- func (rp *TargetDummy) CurrentFrostOrDeathRunes() int8
- func (rp *TargetDummy) CurrentFrostRunes() int8
- func (hb *TargetDummy) CurrentHealth() float64
- func (hb *TargetDummy) CurrentHealthPercent() float64
- func (rb *TargetDummy) CurrentRage() float64
- func (rp *TargetDummy) CurrentRunicPower() float64
- func (rp *TargetDummy) CurrentUnholyOrDeathRunes() int8
- func (rp *TargetDummy) CurrentUnholyRunes() int8
- func (rp *TargetDummy) DeathRuneRegenAt(slot int32) time.Duration
- func (rp *TargetDummy) DeathRuneRevertAt() time.Duration
- func (rp *TargetDummy) DeathRunesInFU() int8
- func (rp *TargetDummy) DebugString() string
- func (mb *TargetDummy) EndOOMEvent(sim *Simulation)
- func (eb *TargetDummy) EnergyRegenPerSecond() float64
- func (td *TargetDummy) ExecuteCustomRotation(sim *Simulation)
- func (fb *TargetDummy) FocusRegenPerSecond() float64
- func (fb *TargetDummy) FocusRegenPerTick() float64
- func (rp *TargetDummy) FrostRuneReadyAt(sim *Simulation) time.Duration
- func (hb *TargetDummy) GainHealth(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (at *TargetDummy) GetActiveAuraWithTag(tag string) *Aura
- func (at *TargetDummy) GetAura(label string) *Aura
- func (at *TargetDummy) GetAuraByID(actionID ActionID) *Aura
- func (at *TargetDummy) GetAuras() []*Aura
- func (at *TargetDummy) GetAurasWithTag(tag string) []*Aura
- func (td *TargetDummy) GetCharacter() *Character
- func (at *TargetDummy) GetIcdAuraByID(actionID ActionID) *Aura
- func (mcdm *TargetDummy) GetInitialMajorCooldown(actionID ActionID) MajorCooldown
- func (mcdm *TargetDummy) GetMajorCooldown(actionID ActionID) *MajorCooldown
- func (mcdm *TargetDummy) GetMajorCooldownIDs() []*proto.ActionID
- func (mcdm *TargetDummy) GetMajorCooldownIgnoreTag(actionID ActionID) *MajorCooldown
- func (mcdm *TargetDummy) GetMajorCooldowns() []*MajorCooldown
- func (mcdm *TargetDummy) GetMatchingStatBuffCooldownAuras(statTypesToMatch []stats.Stat) []*StatBuffAura
- func (mcdm *TargetDummy) GetMatchingStatBuffSpells(statTypesToMatch []stats.Stat) []*Spell
- func (rp *TargetDummy) GetRuneRegenMultiplier() float64
- func (at *TargetDummy) HasActiveAura(label string) bool
- func (at *TargetDummy) HasActiveAuraWithTag(tag string) bool
- func (at *TargetDummy) HasActiveAuraWithTagExcludingAura(tag string, excludeAura *Aura) bool
- func (at *TargetDummy) HasAura(label string) bool
- func (at *TargetDummy) HasAuraWithTag(tag string) bool
- func (td *TargetDummy) Initialize()
- func (mb *TargetDummy) IsOOM() bool
- func (eb *TargetDummy) IsReset(sim *Simulation) bool
- func (rp *TargetDummy) LeftBloodRuneReady() bool
- func (eb *TargetDummy) MaxComboPoints() int32
- func (hb *TargetDummy) MaxHealth() float64
- func (eb *TargetDummy) MaximumEnergy() float64
- func (fb *TargetDummy) MaximumFocus() float64
- func (rb *TargetDummy) MaximumRage() float64
- func (rp *TargetDummy) MaximumRunicPower() float64
- func (rb *TargetDummy) MultiplyAutoAttackRageGen(multiplier float64)
- func (eb *TargetDummy) MultiplyEnergyRegenSpeed(sim *Simulation, multiplier float64)
- func (fb *TargetDummy) MultiplyFocusRegenSpeed(sim *Simulation, multiplier float64)
- func (rb *TargetDummy) MultiplyRageGen(multiplier float64)
- func (rp *TargetDummy) MultiplyRuneRegenSpeed(sim *Simulation, multiplier float64)
- func (rp *TargetDummy) MultiplyRunicRegen(multiply float64)
- func (rp *TargetDummy) NewBloodRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *TargetDummy) NewDeathRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *TargetDummy) NewFrostRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *TargetDummy) NewRunicPowerMetrics(action ActionID) *ResourceMetrics
- func (rp *TargetDummy) NewUnholyRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *TargetDummy) NextBloodRuneReadyAt(sim *Simulation) time.Duration
- func (eb *TargetDummy) NextEnergyTickAt() time.Duration
- func (fb *TargetDummy) NextFocusTickAt() time.Duration
- func (rp *TargetDummy) NextFrostRuneReadyAt(sim *Simulation) time.Duration
- func (rp *TargetDummy) NextUnholyRuneReadyAt(sim *Simulation) time.Duration
- func (rp *TargetDummy) NormalFrostRuneReadyAt(sim *Simulation) time.Duration
- func (rp *TargetDummy) NormalSpentBloodRuneReadyAt(_ *Simulation) time.Duration
- func (rp *TargetDummy) NormalUnholyRuneReadyAt(sim *Simulation) time.Duration
- func (at *TargetDummy) NumActiveAurasWithTag(tag string) int32
- func (at *TargetDummy) OnApplyEffects(sim *Simulation, target *Unit, spell *Spell)
- func (at *TargetDummy) OnCastComplete(sim *Simulation, spell *Spell)
- func (td *TargetDummy) OnEncounterStart(sim *Simulation)
- func (at *TargetDummy) OnHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *TargetDummy) OnHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *TargetDummy) OnPeriodicDamageDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *TargetDummy) OnPeriodicDamageTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *TargetDummy) OnPeriodicHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *TargetDummy) OnPeriodicHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *TargetDummy) OnSpellHitDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *TargetDummy) OnSpellHitTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (rp *TargetDummy) OptimalRuneCost(cost RuneCost) RuneCost
- func (rp *TargetDummy) RegenAllFrostAndUnholyRunesAsDeath(sim *Simulation, deathRuneMetrics *ResourceMetrics)
- func (rp *TargetDummy) RegenAllRunes(sim *Simulation, metrics []*ResourceMetrics)
- func (rp *TargetDummy) RegenRunicEmpowermentRune(sim *Simulation, runeMetrics []*ResourceMetrics)
- func (at *TargetDummy) RegisterResetEffect(resetEffect ResetEffect)
- func (hb *TargetDummy) RemoveHealth(sim *Simulation, amount float64)
- func (td *TargetDummy) Reset(sim *Simulation)
- func (eb *TargetDummy) ResetComboPoints(sim *Simulation, comboPointsToKeep int32)
- func (eb *TargetDummy) ResetEnergyTick(sim *Simulation)
- func (fb *TargetDummy) ResetFocusTick(sim *Simulation)
- func (rb *TargetDummy) ResetRageBar(sim *Simulation, rageToKeep float64)
- func (rp *TargetDummy) ResetRunicPowerBar(sim *Simulation, runicPowerToKeep float64)
- func (rp *TargetDummy) RuneIsActive(slot int8) bool
- func (rp *TargetDummy) RuneIsDeath(slot int8) bool
- func (rp *TargetDummy) RuneReadyAt(sim *Simulation, slot int8) time.Duration
- func (eb *TargetDummy) SetMaxComboPoints(maxComboPoints int32)
- func (rp *TargetDummy) SetPermanentDeathRunes(permanentDeaths []int8)
- func (rp *TargetDummy) SetRuneCd(runeCd time.Duration)
- func (eb *TargetDummy) SpendComboPoints(sim *Simulation, metrics *ResourceMetrics)
- func (eb *TargetDummy) SpendEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (fb *TargetDummy) SpendFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (eb *TargetDummy) SpendPartialComboPoints(sim *Simulation, pointsToSpend int32, metrics *ResourceMetrics)
- func (rb *TargetDummy) SpendRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *TargetDummy) SpendRuneReadyAt(slot int8, spendAt time.Duration) time.Duration
- func (rp *TargetDummy) SpendRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (mb *TargetDummy) StartOOMEvent(sim *Simulation, requiredMana float64)
- func (eb *TargetDummy) TimeToTargetEnergy(targetEnergy float64) time.Duration
- func (fb *TargetDummy) TimeToTargetFocus(targetFocus float64) time.Duration
- func (rp *TargetDummy) UnholyRuneReadyAt(sim *Simulation) time.Duration
- func (mcdm *TargetDummy) UpdateMajorCooldowns()
- func (eb *TargetDummy) UpdateMaxEnergy(sim *Simulation, bonusEnergy float64, metrics *ResourceMetrics)
- func (hb *TargetDummy) UpdateMaxHealth(sim *Simulation, bonusHealth float64, metrics *ResourceMetrics)
- type TargetedActionMetrics
- type Task
- type TemporaryStatBuffWithStacksConfig
- type TestGenerator
- type Timer
- type Unit
- func (unit *Unit) AddBonusRangedCritPercent(percentage float64)
- func (unit *Unit) AddBonusRangedHitPercent(percentage float64)
- func (eb *Unit) AddComboPoints(sim *Simulation, pointsToAdd int32, target *Unit, metrics *ResourceMetrics)
- func (unit *Unit) AddDynamicDamageTakenModifier(ddtm DynamicDamageTakenModifier)
- func (unit *Unit) AddDynamicHealingTakenModifier(dhtm DynamicHealingTakenModifier)
- func (unit *Unit) AddDynamicMod(config SpellModConfig) *SpellMod
- func (eb *Unit) AddEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (fb *Unit) AddFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (unit *Unit) AddMana(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (unit *Unit) AddOnCastSpeedChanged(ocsc OnSpeedChanged)
- func (unit *Unit) AddOnMasteryStatChanged(omsc OnMasteryStatChanged)
- func (unit *Unit) AddOnMeleeAndRangedHasteChanged(ocsc OnSpeedChanged)
- func (unit *Unit) AddOnMeleeAttackSpeedChanged(ocsc OnSpeedChanged)
- func (unit *Unit) AddOnRangedAttackSpeedChanged(ocsc OnSpeedChanged)
- func (unit *Unit) AddOnTemporaryStatsChange(otsc OnTemporaryStatsChange)
- func (rb *Unit) AddRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Unit) AddRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (unit *Unit) AddStat(stat stats.Stat, amount float64)
- func (unit *Unit) AddStatDynamic(sim *Simulation, stat stats.Stat, amount float64)
- func (unit *Unit) AddStaticMod(config SpellModConfig)
- func (unit *Unit) AddStats(stat stats.Stats)
- func (unit *Unit) AddStatsDynamic(sim *Simulation, bonus stats.Stats)
- func (rp *Unit) AddUnscaledRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Unit) Advance(sim *Simulation, newTime time.Duration)
- func (rp *Unit) AllRunesSpent() bool
- func (rp *Unit) AnyDepletedRunes() bool
- func (rp *Unit) AnyRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Unit) AnySpentRuneReadyAt() time.Duration
- func (unit *Unit) ApplyCastSpeed(dur time.Duration) time.Duration
- func (unit *Unit) ApplyCastSpeedForSpell(dur time.Duration, spell *Spell) time.Duration
- func (unit *Unit) ApplyRangedSpeed(dur time.Duration) time.Duration
- func (unit *Unit) ApplyRealHaste(dur time.Duration) time.Duration
- func (unit *Unit) Armor() float64
- func (unit *Unit) BlockDamageReduction() float64
- func (rp *Unit) BloodDeathRuneBothReadyAt() time.Duration
- func (rp *Unit) BloodRuneReadyAt(sim *Simulation) time.Duration
- func (unit *Unit) CanQueueSpell(sim *Simulation) bool
- func (unit *Unit) CancelGCDTimer(sim *Simulation)
- func (unit *Unit) CancelHardcast(sim *Simulation)
- func (unit *Unit) CancelQueuedSpell(sim *Simulation)
- func (eb *Unit) ComboPoints() int32
- func (rp *Unit) ConvertAndRegenBloodTapRune(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics) bool
- func (rp *Unit) ConvertAndRegenPlagueLeechRunes(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics)
- func (rp *Unit) ConvertFromDeath(sim *Simulation, slot int8)
- func (rp *Unit) ConvertToDeath(sim *Simulation, slot int8, revertAt time.Duration)
- func (rp *Unit) CurrentBloodOrDeathRunes() int8
- func (rp *Unit) CurrentBloodRunes() int8
- func (rp *Unit) CurrentDeathRunes() int8
- func (eb *Unit) CurrentEnergy() float64
- func (eb *Unit) CurrentEnergyRegenMultiplier() float64
- func (fb *Unit) CurrentFocus() float64
- func (rp *Unit) CurrentFrostOrDeathRunes() int8
- func (rp *Unit) CurrentFrostRunes() int8
- func (hb *Unit) CurrentHealth() float64
- func (hb *Unit) CurrentHealthPercent() float64
- func (unit *Unit) CurrentMana() float64
- func (unit *Unit) CurrentManaPercent() float64
- func (rb *Unit) CurrentRage() float64
- func (rp *Unit) CurrentRunicPower() float64
- func (rp *Unit) CurrentUnholyOrDeathRunes() int8
- func (rp *Unit) CurrentUnholyRunes() int8
- func (rp *Unit) DeathRuneRegenAt(slot int32) time.Duration
- func (rp *Unit) DeathRuneRevertAt() time.Duration
- func (rp *Unit) DeathRunesInFU() int8
- func (rp *Unit) DebugString() string
- func (unit *Unit) DisableBuildPhaseStatDep(sim *Simulation, dep *stats.StatDependency)
- func (unit *Unit) DisableDynamicStatDep(sim *Simulation, dep *stats.StatDependency)
- func (unit *Unit) EnableAutoAttacks(agent Agent, options AutoAttackOptions)
- func (unit *Unit) EnableBuildPhaseStatDep(sim *Simulation, dep *stats.StatDependency)
- func (unit *Unit) EnableDynamicStatDep(sim *Simulation, dep *stats.StatDependency)
- func (unit *Unit) EnableEnergyBar(options EnergyBarOptions)
- func (unit *Unit) EnableFocusBar(maxFocus float64, baseFocusPerSecond float64, isPlayer bool, ...)
- func (unit *Unit) EnableHealthBar()
- func (unit *Unit) EnableRageBar(options RageBarOptions)
- func (mb *Unit) EndOOMEvent(sim *Simulation)
- func (eb *Unit) EnergyRegenPerSecond() float64
- func (unit *Unit) ExecuteCustomRotation(sim *Simulation)
- func (unit *Unit) ExecuteResourceGain(sim *Simulation, resource proto.ResourceType, amount float64, ...)
- func (unit *Unit) ExtendGCDUntil(sim *Simulation, readyTime time.Duration)
- func (unit *Unit) FinalizeMovement(sim *Simulation)
- func (fb *Unit) FocusRegenPerSecond() float64
- func (fb *Unit) FocusRegenPerTick() float64
- func (rp *Unit) FrostRuneReadyAt(sim *Simulation) time.Duration
- func (hb *Unit) GainHealth(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (at *Unit) GetActiveAuraWithTag(tag string) *Aura
- func (unit *Unit) GetAllOpponents() []*Unit
- func (at *Unit) GetAura(label string) *Aura
- func (at *Unit) GetAuraByID(actionID ActionID) *Aura
- func (at *Unit) GetAuras() []*Aura
- func (at *Unit) GetAurasWithTag(tag string) []*Aura
- func (unit *Unit) GetCurrentPowerBar() PowerBarType
- func (unit *Unit) GetDiminishedBlockChance() float64
- func (unit *Unit) GetDiminishedDodgeChance() float64
- func (unit *Unit) GetDiminishedParryChance() float64
- func (caster *Unit) GetEnemyExclusiveCategories(category string) ExclusiveCategoryArray
- func (unit *Unit) GetHighestStatType(statTypeOptions []stats.Stat) stats.Stat
- func (at *Unit) GetIcdAuraByID(actionID ActionID) *Aura
- func (unit *Unit) GetInitialStat(stat stats.Stat) float64
- func (unit *Unit) GetMasteryPoints() float64
- func (unit *Unit) GetMetadata() *proto.UnitMetadata
- func (at *Unit) GetMetricsProto() []*proto.AuraMetrics
- func (unit *Unit) GetMovementSpeed() float64
- func (unit *Unit) GetOrInitTimer(timer **Timer) *Timer
- func (unit *Unit) GetOrRegisterAura(aura Aura) *Aura
- func (unit *Unit) GetOrRegisterSpell(config SpellConfig) *Spell
- func (rp *Unit) GetRuneRegenMultiplier() float64
- func (unit *Unit) GetSecondaryResourceBar() SecondaryResourceBar
- func (unit *Unit) GetSpell(actionID ActionID) *Spell
- func (unit *Unit) GetSpellsMatchingSchool(school SpellSchool) []*Spell
- func (unit *Unit) GetStat(stat stats.Stat) float64
- func (unit *Unit) GetStats() stats.Stats
- func (unit *Unit) GetStatsWithoutDeps() stats.Stats
- func (unit *Unit) GetTotalAvoidanceChance(atkTable *AttackTable) float64
- func (unit *Unit) GetTotalBlockChanceAsDefender(atkTable *AttackTable) float64
- func (unit *Unit) GetTotalChanceToBeMissedAsDefender(atkTable *AttackTable) float64
- func (unit *Unit) GetTotalDodgeChanceAsDefender(atkTable *AttackTable) float64
- func (unit *Unit) GetTotalParryChanceAsDefender(atkTable *AttackTable) float64
- func (unit *Unit) GetUnit(ref *proto.UnitReference) *Unit
- func (at *Unit) HasActiveAura(label string) bool
- func (at *Unit) HasActiveAuraWithTag(tag string) bool
- func (at *Unit) HasActiveAuraWithTagExcludingAura(tag string, excludeAura *Aura) bool
- func (at *Unit) HasAura(label string) bool
- func (at *Unit) HasAuraWithTag(tag string) bool
- func (unit *Unit) HasEnergyBar() bool
- func (unit *Unit) HasFocusBar() bool
- func (unit *Unit) HasHealthBar() bool
- func (unit *Unit) HasManaBar() bool
- func (unit *Unit) HasRageBar() bool
- func (unit *Unit) HasRunicPowerBar() bool
- func (unit *Unit) HasTemporaryBonusForStat(stat stats.Stat) bool
- func (unit *Unit) HasTemporaryMeleeSwingSpeedIncrease() bool
- func (unit *Unit) HasTemporaryRangedSwingSpeedIncrease() bool
- func (unit *Unit) HasTemporarySpellCastSpeedIncrease() bool
- func (unit *Unit) HasteEffectsManaRegen()
- func (unit *Unit) HasteEffectsRegen()
- func (unit *Unit) InitialCastSpeed() float64
- func (unit *Unit) IsActive() bool
- func (unit *Unit) IsCastingDuringChannel() bool
- func (unit *Unit) IsChanneling() bool
- func (unit *Unit) IsEnabled() bool
- func (mb *Unit) IsOOM() bool
- func (unit *Unit) IsOpponent(other *Unit) bool
- func (eb *Unit) IsReset(sim *Simulation) bool
- func (rp *Unit) LeftBloodRuneReady() bool
- func (unit *Unit) Log(sim *Simulation, message string, vals ...interface{})
- func (unit *Unit) LogLabel() string
- func (unit *Unit) MHNormalizedWeaponDamage(sim *Simulation, attackPower float64) float64
- func (unit *Unit) MHWeaponDamage(sim *Simulation, attackPower float64) float64
- func (unit *Unit) MP5ManaRegenPerSecond() float64
- func (unit *Unit) MakeProcTriggerAura(config ProcTrigger) *Aura
- func (unit *Unit) ManaRegenPerSecondWhileCombat() float64
- func (unit *Unit) ManaRegenPerSecondWhileNotCombat() float64
- func (unit *Unit) ManaTick(sim *Simulation)
- func (eb *Unit) MaxComboPoints() int32
- func (hb *Unit) MaxHealth() float64
- func (unit *Unit) MaxMana() float64
- func (eb *Unit) MaximumEnergy() float64
- func (fb *Unit) MaximumFocus() float64
- func (rb *Unit) MaximumRage() float64
- func (rp *Unit) MaximumRunicPower() float64
- func (unit *Unit) MoveDuration(duration time.Duration, sim *Simulation)
- func (unit *Unit) MoveTo(moveRange float64, sim *Simulation)
- func (unit *Unit) MultiplyAttackSpeed(sim *Simulation, amount float64)
- func (rb *Unit) MultiplyAutoAttackRageGen(multiplier float64)
- func (unit *Unit) MultiplyCastSpeed(sim *Simulation, amount float64)
- func (eb *Unit) MultiplyEnergyRegenSpeed(sim *Simulation, multiplier float64)
- func (fb *Unit) MultiplyFocusRegenSpeed(sim *Simulation, multiplier float64)
- func (unit *Unit) MultiplyManaRegenSpeed(sim *Simulation, multiplier float64)
- func (unit *Unit) MultiplyMeleeSpeed(sim *Simulation, amount float64)
- func (unit *Unit) MultiplyMovementSpeed(sim *Simulation, amount float64)
- func (rb *Unit) MultiplyRageGen(multiplier float64)
- func (unit *Unit) MultiplyRangedHaste(sim *Simulation, amount float64)
- func (unit *Unit) MultiplyRangedSpeed(sim *Simulation, amount float64)
- func (unit *Unit) MultiplyResourceRegenSpeed(sim *Simulation, amount float64)
- func (rp *Unit) MultiplyRuneRegenSpeed(sim *Simulation, multiplier float64)
- func (rp *Unit) MultiplyRunicRegen(multiply float64)
- func (unit *Unit) NewAPLAction(rot *APLRotation, config *proto.APLAction) APLActionImpl
- func (unit *Unit) NewAPLValue(rot *APLRotation, config *proto.APLValue) APLValue
- func (caster *Unit) NewAllyAuraArray(makeAura func(*Unit) *Aura) AuraArray
- func (caster *Unit) NewAllyDamageAbsorptionAuraArray(makeAura func(*Unit) *DamageAbsorptionAura) DamageAbsorptionAuraArray
- func (rp *Unit) NewBloodRuneMetrics(action ActionID) *ResourceMetrics
- func (unit *Unit) NewChiMetrics(actionID ActionID) *ResourceMetrics
- func (unit *Unit) NewComboPointMetrics(actionID ActionID) *ResourceMetrics
- func (unit *Unit) NewDamageAbsorptionAura(config AbsorptionAuraConfig) *DamageAbsorptionAura
- func (rp *Unit) NewDeathRuneMetrics(action ActionID) *ResourceMetrics
- func (unit *Unit) NewDefaultSecondaryResourceBar(config SecondaryResourceConfig) *DefaultSecondaryResourceBarImpl
- func (caster *Unit) NewEnemyAuraArray(makeAura func(*Unit) *Aura) AuraArray
- func (caster *Unit) NewEnemyExclusiveCategoryArray(makeExclusiveCategory func(*Unit) *ExclusiveCategory) ExclusiveCategoryArray
- func (unit *Unit) NewEnergyMetrics(actionID ActionID) *ResourceMetrics
- func (unit *Unit) NewFocusMetrics(actionID ActionID) *ResourceMetrics
- func (rp *Unit) NewFrostRuneMetrics(action ActionID) *ResourceMetrics
- func (unit *Unit) NewGenericMetric(actionID ActionID) *ResourceMetrics
- func (unit *Unit) NewHealthMetrics(actionID ActionID) *ResourceMetrics
- func (unit *Unit) NewManaMetrics(actionID ActionID) *ResourceMetrics
- func (unit *Unit) NewPassiveMovementSpeedAura(label string, actionID ActionID, multiplier float64) *Aura
- func (unit *Unit) NewRageMetrics(actionID ActionID) *ResourceMetrics
- func (rp *Unit) NewRunicPowerMetrics(action ActionID) *ResourceMetrics
- func (unit *Unit) NewTimer() *Timer
- func (rp *Unit) NewUnholyRuneMetrics(action ActionID) *ResourceMetrics
- func (rp *Unit) NextBloodRuneReadyAt(sim *Simulation) time.Duration
- func (eb *Unit) NextEnergyTickAt() time.Duration
- func (fb *Unit) NextFocusTickAt() time.Duration
- func (rp *Unit) NextFrostRuneReadyAt(sim *Simulation) time.Duration
- func (unit *Unit) NextGCDAt() time.Duration
- func (unit *Unit) NextRotationActionAt() time.Duration
- func (rp *Unit) NextUnholyRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Unit) NormalFrostRuneReadyAt(sim *Simulation) time.Duration
- func (rp *Unit) NormalSpentBloodRuneReadyAt(_ *Simulation) time.Duration
- func (rp *Unit) NormalUnholyRuneReadyAt(sim *Simulation) time.Duration
- func (at *Unit) NumActiveAurasWithTag(tag string) int32
- func (unit *Unit) OHNormalizedWeaponDamage(sim *Simulation, attackPower float64) float64
- func (unit *Unit) OHWeaponDamage(sim *Simulation, attackPower float64) float64
- func (at *Unit) OnApplyEffects(sim *Simulation, target *Unit, spell *Spell)
- func (at *Unit) OnCastComplete(sim *Simulation, spell *Spell)
- func (at *Unit) OnEncounterStart(sim *Simulation)
- func (at *Unit) OnHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Unit) OnHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (unit *Unit) OnMovement(sim *Simulation, position float64, kind MovementUpdateType)
- func (at *Unit) OnPeriodicDamageDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Unit) OnPeriodicDamageTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Unit) OnPeriodicHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Unit) OnPeriodicHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Unit) OnSpellHitDealt(sim *Simulation, spell *Spell, result *SpellResult)
- func (at *Unit) OnSpellHitTaken(sim *Simulation, spell *Spell, result *SpellResult)
- func (unit *Unit) OnSpellRegistered(handler SpellRegisteredHandler)
- func (rp *Unit) OptimalRuneCost(cost RuneCost) RuneCost
- func (unit *Unit) QueueSpell(sim *Simulation, spell *Spell, target *Unit, queueAt time.Duration)
- func (unit *Unit) RangedNormalizedWeaponDamage(sim *Simulation, attackPower float64) float64
- func (unit *Unit) RangedWeaponDamage(sim *Simulation, attackPower float64) float64
- func (unit *Unit) ReactToEvent(sim *Simulation, randomizeReactionTime bool)
- func (rp *Unit) RegenAllFrostAndUnholyRunesAsDeath(sim *Simulation, deathRuneMetrics *ResourceMetrics)
- func (rp *Unit) RegenAllRunes(sim *Simulation, metrics []*ResourceMetrics)
- func (rp *Unit) RegenRunicEmpowermentRune(sim *Simulation, runeMetrics []*ResourceMetrics)
- func (unit *Unit) RegisterAura(aura Aura) *Aura
- func (unit *Unit) RegisterMovementCallback(callback MovementCallback)
- func (unit *Unit) RegisterNewDefaultSecondaryResourceBar(config SecondaryResourceConfig) SecondaryResourceBar
- func (unit *Unit) RegisterPrepullAction(doAt APLValue, action func(*Simulation))
- func (at *Unit) RegisterResetEffect(resetEffect ResetEffect)
- func (unit *Unit) RegisterSecondaryResourceBar(config SecondaryResourceBar)
- func (unit *Unit) RegisterSpell(config SpellConfig) *Spell
- func (hb *Unit) RemoveHealth(sim *Simulation, amount float64)
- func (eb *Unit) ResetComboPoints(sim *Simulation, comboPointsToKeep int32)
- func (eb *Unit) ResetEnergyTick(sim *Simulation)
- func (fb *Unit) ResetFocusTick(sim *Simulation)
- func (rb *Unit) ResetRageBar(sim *Simulation, rageToKeep float64)
- func (rp *Unit) ResetRunicPowerBar(sim *Simulation, runicPowerToKeep float64)
- func (rp *Unit) RuneIsActive(slot int8) bool
- func (rp *Unit) RuneIsDeath(slot int8) bool
- func (rp *Unit) RuneReadyAt(sim *Simulation, slot int8) time.Duration
- func (unit *Unit) SetCurrentPowerBar(bar PowerBarType)
- func (unit *Unit) SetGCDTimer(sim *Simulation, gcdReadyAt time.Duration)
- func (eb *Unit) SetMaxComboPoints(maxComboPoints int32)
- func (rp *Unit) SetPermanentDeathRunes(permanentDeaths []int8)
- func (unit *Unit) SetRotationTimer(sim *Simulation, rotationReadyAt time.Duration)
- func (rp *Unit) SetRuneCd(runeCd time.Duration)
- func (unit *Unit) SpellGCD() time.Duration
- func (unit *Unit) SpellInFlight(spell *Spell) bool
- func (unit *Unit) SpellInFlightByID(spellID int32) bool
- func (eb *Unit) SpendComboPoints(sim *Simulation, metrics *ResourceMetrics)
- func (eb *Unit) SpendEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (fb *Unit) SpendFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (unit *Unit) SpendMana(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (eb *Unit) SpendPartialComboPoints(sim *Simulation, pointsToSpend int32, metrics *ResourceMetrics)
- func (rb *Unit) SpendRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (rp *Unit) SpendRuneReadyAt(slot int8, spendAt time.Duration) time.Duration
- func (rp *Unit) SpendRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
- func (unit *Unit) SpiritManaRegenPerSecond() float64
- func (mb *Unit) StartOOMEvent(sim *Simulation, requiredMana float64)
- func (eb *Unit) TimeToTargetEnergy(targetEnergy float64) time.Duration
- func (fb *Unit) TimeToTargetFocus(targetFocus float64) time.Duration
- func (unit *Unit) TimeUntilManaRegen(desiredMana float64) time.Duration
- func (unit *Unit) TotalMeleeHasteMultiplier() float64
- func (unit *Unit) TotalRangedHasteMultiplier() float64
- func (unit *Unit) TotalRealHasteMultiplier() float64
- func (unit *Unit) TotalSpellHasteMultiplier() float64
- func (rp *Unit) UnholyRuneReadyAt(sim *Simulation) time.Duration
- func (unit *Unit) UpdateDynamicStatDep(sim *Simulation, dep *stats.StatDependency, newAmount float64)
- func (unit *Unit) UpdateManaRegenRates()
- func (eb *Unit) UpdateMaxEnergy(sim *Simulation, bonusEnergy float64, metrics *ResourceMetrics)
- func (hb *Unit) UpdateMaxHealth(sim *Simulation, bonusHealth float64, metrics *ResourceMetrics)
- func (unit *Unit) UpdatePosition(sim *Simulation)
- func (unit *Unit) WaitUntil(sim *Simulation, readyTime time.Duration)
- type UnitMetrics
- func (unitMetrics *UnitMetrics) AddFinalPetMetrics(petMetrics *UnitMetrics)
- func (unitMetrics *UnitMetrics) AddOOMTime(sim *Simulation, dur time.Duration)
- func (unitMetrics *UnitMetrics) IsTanking() bool
- func (unitMetrics *UnitMetrics) MarkOOM(sim *Simulation)
- func (unitMetrics *UnitMetrics) NewResourceMetrics(actionID ActionID, resourceType proto.ResourceType) *ResourceMetrics
- func (unitMetrics *UnitMetrics) ToProto() *proto.UnitMetrics
- type UnitReference
- type UnitStats
- type UnitType
- type Weapon
- func (weapon *Weapon) AverageDamage() float64
- func (weapon *Weapon) BaseDamage(sim *Simulation) float64
- func (weapon *Weapon) CalculateAverageWeaponDamage(attackPower float64) float64
- func (weapon *Weapon) CalculateNormalizedWeaponDamage(sim *Simulation, attackPower float64) float64
- func (weapon *Weapon) CalculateWeaponDamage(sim *Simulation, attackPower float64) float64
- func (weapon *Weapon) DPS() float64
- func (weapon *Weapon) EnemyWeaponDamage(sim *Simulation, attackPower float64, damageSpread float64) float64
- func (weapon *Weapon) GetSpellSchool() SpellSchool
- type WeaponAttack
Constants ¶
const ( ProcMaskMeleeMH = ProcMaskMeleeMHAuto | ProcMaskMeleeMHSpecial ProcMaskMeleeOH = ProcMaskMeleeOHAuto | ProcMaskMeleeOHSpecial // Equivalent to in-game mask of 4. ProcMaskMeleeWhiteHit = ProcMaskMeleeMHAuto | ProcMaskMeleeOHAuto // Equivalent to in-game mask of 68. ProcMaskWhiteHit = ProcMaskMeleeMHAuto | ProcMaskMeleeOHAuto | ProcMaskRangedAuto // Equivalent to in-game mask of 16. ProcMaskMeleeSpecial = ProcMaskMeleeMHSpecial | ProcMaskMeleeOHSpecial // Equivalent to in-game mask of 272. ProcMaskMeleeOrRangedSpecial = ProcMaskMeleeSpecial | ProcMaskRangedSpecial // Equivalent to in-game mask of 20. ProcMaskMelee = ProcMaskMeleeWhiteHit | ProcMaskMeleeSpecial // Equivalent to in-game mask of 320. ProcMaskRanged = ProcMaskRangedAuto | ProcMaskRangedSpecial // Equivalent to in-game mask of 340. ProcMaskMeleeOrRanged = ProcMaskMelee | ProcMaskRanged ProcMaskDirect = ProcMaskMelee | ProcMaskRanged | ProcMaskSpellDamage ProcMaskSpecial = ProcMaskMeleeOrRangedSpecial | ProcMaskSpellDamage ProcMaskMeleeOrMeleeProc = ProcMaskMelee | ProcMaskMeleeProc ProcMaskRangedOrRangedProc = ProcMaskRanged | ProcMaskRangedProc ProcMaskSpellOrSpellProc = ProcMaskSpellDamage | ProcMaskSpellProc ProcMaskProc = ProcMaskSpellProc | ProcMaskRangedProc | ProcMaskMeleeProc )
const ( CooldownPriorityLow = -1000 CooldownPriorityDefault = 0 CooldownPriorityDrums = 2000 CooldownPriorityBloodlust = 1000 )
const ( MovementStart = iota MovementUpdate MovementEnd )
const AgilityToDodgePercent = 1 / 95115.8596
Used by Monks and Druids
const AgilityToDodgeRating = AgilityToDodgePercent * 100 * DodgeRatingPerDodgePercent
const BaseRageHitFactor = 1.75
const BloodlustAuraTag = "Bloodlust"
const BloodlustCD = time.Minute * 10
const BloodlustDuration = time.Second * 40
const BossGCD = time.Millisecond * 1620
const CharacterBuildPhaseAll = CharacterBuildPhaseBase | CharacterBuildPhaseGear | CharacterBuildPhaseTalents | CharacterBuildPhaseBuffs | CharacterBuildPhaseConsumes
const CharacterLevel = 90
const CombatTableCoverageCap = 1.024 // 102.4% chance to avoid an attack
const CritRatingPerCritPercent = 600.000000
const DTPSReferenceStat = stats.Armor
const DefaultAttackPowerPerDPS = 14.0
const DevotionAuraCD = time.Minute * 3
const DevotionAuraDuration = time.Second * 6
const DodgeRatingPerDodgePercent = 885.000000
const EnemyAutoAttackAPCoefficient = 1.0 / (14.0 * 177.0)
Updated based on formulas supplied by InDebt on WoWSims Discord
const ExpertisePerQuarterPercentReduction = 85.0
const GCDDefault = time.Millisecond * 1500
const GCDMin = time.Second * 1
const GuardianSpiritCD = time.Minute * 3
const GuardianSpiritDuration = time.Second * 10
const HasteRatingPerHastePercent = 425.000000
const Inactive = -1
const LongDuration = 300
const ManaTideTotemCD = time.Minute * 5
const ManaTideTotemDuration = time.Second * 12
const MasteryRaidBuffStrength = 3000
const MasteryRatingPerMasteryPoint = 600.000000
const MaxChallengeModeIlvl = 463
const MaxIlvl = 600
const MaxMeleeRange = 5.0 // in yards
const MaxSpellQueueWindow = time.Millisecond * 400
const MinIlvl = 100
const MinUpgradeIlvl = 458
const NeverExpires = time.Duration(math.MaxInt64)
const NumItemSlots = proto.ItemSlot_ItemSlotOffHand + 1
const (
OutcomeLanded = OutcomeHit | OutcomeCrit | OutcomeCrush | OutcomeGlance | OutcomeBlock
)
const PainSuppressionCD = time.Minute * 3
const PainSuppressionDuration = time.Second * 8
const ParryRatingPerParryPercent = 885.000000
const PetUpdateInterval = time.Millisecond * 5250
const PhysicalHitRatingPerHitPercent = 340.000000
const RallyingCryCD = time.Minute * 3
const RallyingCryDuration = time.Second * 10
const RppmLastCheckCap = time.Second * 10
const RppmLastProcCap = time.Second * 1000
const RppmLastProcResetValue = time.Second * 120
const SatedAuraLabel = "Sated"
const ShatteringThrowCD = time.Minute * 5
const ShortDuration = 60
const SkullBannerAuraTag = "SkullBanner"
const SkullBannerCD = time.Minute * 3
const SkullBannerDuration = time.Second * 10
const SpellBatchWindow = time.Millisecond * 10
const SpellDamageEffectAuraTag = "SpellDamageAuraTag"
const SpellHitRatingPerHitPercent = 340.000000
const StormLashAuraTag = "StormLash"
const StormLashCD = time.Minute * 5
const StormLashDuration = time.Second * 10
const StrengthToParryPercent = 1 / 95115.8596
Used by Protection Warriors, Protection Paladins and Blood Death Knights
const StrengthToParryRating = StrengthToParryPercent * 100 * ParryRatingPerParryPercent
const ThreatPerManaGained = 0.5
const ThreatPerRageGained = 5
const UnholyFrenzyCD = time.Minute * 3
const UnholyFrenzyDuration = time.Second * 30
const VengeanceScaling = 0.018 // Might be reverted to 0.015 in a later patch
const VigilanceAuraTag = "Vigilance"
const VigilanceCD = time.Minute * 2
const VigilanceDuration = time.Second * 12
const VigilanceSpellID int32 = 114030
const WeakenedBlowsDuration = time.Second * 30
Variables ¶
var AddEffectsToTest = true
This value can be set before adding item effects, to control whether they are included in tests.
var AlchStoneItemIDs = []int32{136197, 80508, 96252, 96253, 96254, 44322, 44323, 44324}
var AverageDefaultSimTestOptions = &proto.SimOptions{ Iterations: 2000, IsTest: true, Debug: false, RandomSeed: 101, }
var AvoidanceDRByClass = map[proto.Class]DiminishingReturnsConstants{ proto.Class_ClassWarrior: {0.956, 237.186, 90.6425, 150.376}, proto.Class_ClassPaladin: {0.886, 237.186, 66.5675, 150.376}, proto.Class_ClassHunter: {0.988, 0, 145.560, 0}, proto.Class_ClassRogue: {0.988, 145.560, 145.560, 0}, proto.Class_ClassPriest: {0.983, 0, 150.376, 0}, proto.Class_ClassDeathKnight: {0.956, 237.186, 90.6425, 0}, proto.Class_ClassShaman: {0.988, 145.560, 145.560, 0}, proto.Class_ClassMonk: {1.422, 90.6425, 501.253, 0}, proto.Class_ClassMage: {0.983, 0, 150.376, 0}, proto.Class_ClassWarlock: {0.983, 0, 150.376, 0}, proto.Class_ClassDruid: {1.222, 0, 150.376, 0}, }
https://github.com/raethkcj/MistsDiminishingReturns
var BaseStats = map[BaseStatsKey]stats.Stats{}
var BigDaddyActionID = ActionID{SpellID: 89637}
var BloodlustActionID = ActionID{SpellID: 2825}
var ChanceOfDeathAuraLabel = "Chance of Death"
var ClassBaseScaling = map[proto.Class]float64{ proto.Class_ClassUnknown: 1710.000000, proto.Class_ClassWarrior: 1246.298600, proto.Class_ClassPaladin: 1141.926000, proto.Class_ClassHunter: 1246.298600, proto.Class_ClassRogue: 1246.298600, proto.Class_ClassPriest: 1049.328400, proto.Class_ClassDeathKnight: 1246.298600, proto.Class_ClassShaman: 1114.501700, proto.Class_ClassMage: 1040.778600, proto.Class_ClassWarlock: 1068.202900, proto.Class_ClassMonk: 1094.739700, proto.Class_ClassDruid: 1094.739700, }
var ClassBaseStats = map[proto.Class]stats.Stats{ proto.Class_ClassUnknown: {}, proto.Class_ClassWarrior: { stats.Health: 146663, stats.Agility: 133, stats.Strength: 206, stats.Intellect: 39, stats.Spirit: 67, stats.Stamina: 188, stats.AttackPower: float64(CharacterLevel)*3.0 - 20, }, proto.Class_ClassPaladin: { stats.Health: 146663, stats.Agility: 105, stats.Strength: 178, stats.Intellect: 114, stats.Spirit: 123, stats.Stamina: 169, stats.AttackPower: float64(CharacterLevel)*3.0 - 20, }, proto.Class_ClassHunter: { stats.Health: 146663, stats.Agility: 216, stats.Strength: 86, stats.Intellect: 105, stats.Spirit: 113, stats.Stamina: 151, stats.AttackPower: float64(CharacterLevel)*2.0 - 20, stats.RangedAttackPower: float64(CharacterLevel)*2.0 - 20, }, proto.Class_ClassRogue: { stats.Health: 146663, stats.Agility: 225, stats.Strength: 132, stats.Intellect: 48, stats.Spirit: 77, stats.Stamina: 123, stats.AttackPower: float64(CharacterLevel)*2.0 - 20, }, proto.Class_ClassPriest: { stats.Health: 146663, stats.Agility: 58, stats.Strength: 48, stats.Intellect: 207, stats.Spirit: 216, stats.Stamina: 77, }, proto.Class_ClassDeathKnight: { stats.Health: 146663, stats.Agility: 131, stats.Strength: 209, stats.Intellect: 38, stats.Spirit: 69, stats.Stamina: 190, stats.AttackPower: float64(CharacterLevel)*3.0 - 20, }, proto.Class_ClassShaman: { stats.Health: 146663, stats.Agility: 86, stats.Strength: 142, stats.Intellect: 151, stats.Spirit: 169, stats.Stamina: 161, stats.AttackPower: float64(CharacterLevel) * 2.0, }, proto.Class_ClassMage: { stats.Health: 146663, stats.Agility: 48, stats.Strength: 39, stats.Intellect: 215, stats.Spirit: 207, stats.Stamina: 67, }, proto.Class_ClassWarlock: { stats.Health: 146663, stats.Agility: 77, stats.Strength: 67, stats.Intellect: 188, stats.Spirit: 198, stats.Stamina: 104, stats.AttackPower: -10, }, proto.Class_ClassDruid: { stats.Health: 146663, stats.Agility: 95, stats.Strength: 104, stats.Intellect: 169, stats.Spirit: 188, stats.Stamina: 114, stats.AttackPower: float64(CharacterLevel)*3.0 - 10, }, proto.Class_ClassMonk: { stats.Health: 146663, stats.Agility: 113, stats.Strength: 94, stats.Intellect: 169, stats.Spirit: 190, stats.Stamina: 113, stats.AttackPower: float64(CharacterLevel)*2.0 - 30, }, }
var ConjuredAuraTag = "Conjured"
var ConsumablesByID = map[int32]Consumable{}
var CritPerAgiMaxLevel = map[proto.Class]float64{ proto.Class_ClassUnknown: 0.0, proto.Class_ClassWarrior: 0.00010000, proto.Class_ClassPaladin: 0.00010000, proto.Class_ClassHunter: 0.00079395, proto.Class_ClassRogue: 0.00079395, proto.Class_ClassPriest: 0.00125496, proto.Class_ClassDeathKnight: 0.00010000, proto.Class_ClassShaman: 0.00079395, proto.Class_ClassMage: 0.00128057, proto.Class_ClassWarlock: 0.00130618, proto.Class_ClassMonk: 0.00079395, proto.Class_ClassDruid: 0.00079395, }
var CritPerIntMaxLevel = map[proto.Class]float64{ proto.Class_ClassUnknown: 0.0, proto.Class_ClassWarrior: 0.00010000, proto.Class_ClassPaladin: 0.00039469, proto.Class_ClassHunter: 0.00010000, proto.Class_ClassRogue: 0.00010000, proto.Class_ClassPriest: 0.00039469, proto.Class_ClassDeathKnight: 0.00010000, proto.Class_ClassShaman: 0.00039469, proto.Class_ClassMage: 0.00039469, proto.Class_ClassWarlock: 0.00039469, proto.Class_ClassMonk: 0.00039469, proto.Class_ClassDruid: 0.00039469, }
var DefaultSimTestOptions = &proto.SimOptions{ Iterations: 20, IsTest: true, Debug: false, RandomSeed: 101, }
var DefaultTargetProto = FreshDefaultTargetConfig()
var DevotionAuraActionID = ActionID{SpellID: 31821}
var DevotionAuraTag = "DevotionAura"
var EnchantsByEffectID = map[int32]Enchant{}
var ExtraClassBaseStats = map[proto.Class]stats.Stats{ proto.Class_ClassUnknown: {}, proto.Class_ClassWarrior: { stats.Mana: 0.0000, stats.SpellCritPercent: 0.0000, stats.PhysicalCritPercent: 5.0000, }, proto.Class_ClassPaladin: { stats.Mana: 60000.0000, stats.SpellCritPercent: 3.3400, stats.PhysicalCritPercent: 5.0000, }, proto.Class_ClassHunter: { stats.Mana: 0.0000, stats.SpellCritPercent: 0.0000, stats.PhysicalCritPercent: -1.5300, }, proto.Class_ClassRogue: { stats.Mana: 0.0000, stats.SpellCritPercent: 0.0000, stats.PhysicalCritPercent: -0.3000, }, proto.Class_ClassPriest: { stats.Mana: 300000.0000, stats.SpellCritPercent: 1.2400, stats.PhysicalCritPercent: 3.1800, }, proto.Class_ClassDeathKnight: { stats.Mana: 0.0000, stats.SpellCritPercent: 0.0000, stats.PhysicalCritPercent: 5.0000, }, proto.Class_ClassShaman: { stats.Mana: 60000.0000, stats.SpellCritPercent: 2.2000, stats.PhysicalCritPercent: 2.9200, }, proto.Class_ClassMage: { stats.Mana: 300000.0000, stats.SpellCritPercent: 0.9100, stats.PhysicalCritPercent: 3.4500, }, proto.Class_ClassWarlock: { stats.Mana: 300000.0000, stats.SpellCritPercent: 1.7000, stats.PhysicalCritPercent: 2.6200, }, proto.Class_ClassMonk: { stats.Mana: 300000.0000, stats.SpellCritPercent: 1.8500, stats.PhysicalCritPercent: 7.4800, }, proto.Class_ClassDruid: { stats.Mana: 60000.0000, stats.SpellCritPercent: 1.8500, stats.PhysicalCritPercent: 7.4800, }, }
var FullDebuffs = &proto.Debuffs{ WeakenedBlows: true, PhysicalVulnerability: true, WeakenedArmor: true, MortalWounds: true, FireBreath: true, LightningBreath: true, MasterPoisoner: true, CurseOfElements: true, NecroticStrike: true, LavaBreath: true, SporeCloud: true, Slow: true, MindNumbingPoison: true, CurseOfEnfeeblement: true, }
var FullIndividualBuffs = &proto.IndividualBuffs{}
var FullPartyBuffs = &proto.PartyBuffs{}
var FullRaidBuffs = &proto.RaidBuffs{ TrueshotAura: true, UnholyAura: true, ArcaneBrilliance: true, MindQuickening: true, LeaderOfThePack: true, BlessingOfMight: true, BlessingOfKings: true, PowerWordFortitude: true, Bloodlust: true, ManaTideTotemCount: 1, SkullBannerCount: 1, StormlashTotemCount: 1, }
var GemsByID = map[int32]Gem{}
var GuardianSpiritAuraTag = "GuardianSpirit"
var HighpoweredBoltGunActionID = ActionID{ItemID: 40771}
var ItemEffectRandPropPointsByIlvl = map[int32]ItemEffectRandPropPoints{}
var ItemsByID = map[int32]Item{}
var ManaTideTotemActionID = ActionID{SpellID: 16190}
var ManaTideTotemAuraTag = "ManaTideTotem"
var PainSuppressionAuraTag = "PainSuppression"
var PotionAuraTag = "Potion"
var PresetEncounters []*proto.PresetEncounter
var RaceOffsets = map[proto.Race]stats.Stats{ proto.Race_RaceUnknown: stats.Stats{}, proto.Race_RaceHuman: stats.Stats{}, proto.Race_RaceOrc: { stats.Agility: -3, stats.Strength: 3, stats.Intellect: -3, stats.Spirit: 2, stats.Stamina: 1, }, proto.Race_RaceDwarf: { stats.Agility: -4, stats.Strength: 5, stats.Intellect: -1, stats.Spirit: -1, stats.Stamina: 1, }, proto.Race_RaceNightElf: { stats.Agility: 4, stats.Strength: -4, stats.Intellect: 0, stats.Spirit: 0, stats.Stamina: 0, }, proto.Race_RaceUndead: { stats.Agility: -2, stats.Strength: -1, stats.Intellect: -2, stats.Spirit: 5, stats.Stamina: 0, }, proto.Race_RaceTauren: { stats.Agility: -4, stats.Strength: 5, stats.Intellect: -4, stats.Spirit: 2, stats.Stamina: 1, }, proto.Race_RaceGnome: { stats.Agility: 2, stats.Strength: -5, stats.Intellect: 3, stats.Spirit: 0, stats.Stamina: 0, }, proto.Race_RaceTroll: { stats.Agility: 2, stats.Strength: 1, stats.Intellect: -4, stats.Spirit: 1, stats.Stamina: 0, }, proto.Race_RaceBloodElf: { stats.Agility: 2, stats.Strength: -3, stats.Intellect: 3, stats.Spirit: -2, stats.Stamina: 0, }, proto.Race_RaceDraenei: { stats.Agility: -3, stats.Strength: 1, stats.Intellect: 0, stats.Spirit: 2, stats.Stamina: 0, }, proto.Race_RaceGoblin: { stats.Agility: 2, stats.Strength: -3, stats.Intellect: 3, stats.Spirit: -2, stats.Stamina: 0, }, proto.Race_RaceWorgen: { stats.Agility: 2, stats.Strength: 3, stats.Intellect: -4, stats.Spirit: -1, stats.Stamina: 0, }, proto.Race_RaceAlliancePandaren: { stats.Agility: -2, stats.Strength: 0, stats.Intellect: -1, stats.Spirit: 2, stats.Stamina: 1, }, proto.Race_RaceHordePandaren: { stats.Agility: -2, stats.Strength: 0, stats.Intellect: -1, stats.Spirit: 2, stats.Stamina: 1, }, }
var RallyingCryActionID = ActionID{SpellID: 97462}
var RallyingCryAuraTag = "RallyingCry"
var RandomSuffixesByID = map[int32]RandomSuffix{}
var ReforgeStatsByID = map[int32]ReforgeStat{}
var ShatteringThrowAuraTag = "ShatteringThrow"
var ShatteringThrowDuration = time.Second * 10
var SkullBannerActionID = ActionID{SpellID: 114206}
var SpellEffectsById = map[int32]*proto.SpellEffect{}
var StatWeightsDefaultSimTestOptions = &proto.SimOptions{ Iterations: 300, IsTest: true, Debug: false, RandomSeed: 101, }
var StormLashSpellExceptions = map[int32]float64{
1120: 2.0,
403: 2.0,
51505: 2.0,
103103: 1.0,
15407: 1.0,
129197: 1.0,
120360: 1.0,
1752: 0.5,
50286: 0.0,
}
var TricksOfTheTradeAuraTag = "TricksOfTheTrade"
var UnholyFrenzyAuraTag = "UnholyFrenzy"
var WITH_DB = false
Functions ¶
func APLRotationFromJsonString ¶
func APLRotationFromJsonString(jsonString string) *proto.APLRotation
func AddPresetEncounter ¶
func AddPresetTarget ¶
func AddPresetTarget(newPreset *PresetTarget)
func AllWeaponSlots ¶
func ApplyFixedUptimeAura ¶
func ApplyMetaGemCriticalDamageEffect ¶
func ApplyMetaGemCriticalDamageEffect(agent Agent, _ proto.ItemLevelState)
Applies 3% Crit Damage effect https://www.wowhead.com/mop-classic/spell=44797/3-increased-critical-effect
func ApplyVarianceMinMax ¶
func BothTimersReady ¶
func BothTimersReady(t1 *Timer, t2 *Timer, sim *Simulation) bool
func CalcScalingSpellAverageEffect ¶
spellEffectCoefficient is the value in the "Coefficient" column of the SpellEffect DB2 table
func CalcScalingSpellEffectVarianceMinMax ¶
func CalcScalingSpellEffectVarianceMinMax(class proto.Class, spellEffectCoefficient float64, spellEffectVariance float64) (float64, float64)
spellEffectCoefficient is the value in the "Coefficient" column of the SpellEffect DB2 table spellEffectVariance is the value in the "Variance" column of the SpellEffect DB2 table
func CheckSliceOverlap ¶
func CheckSliceOverlap[T comparable](s1 []T, s2 []T) bool
Returns true if two slices share any common elements, and false otherwise.
func CombineConcurrentSimResults ¶
func CombineConcurrentSimResults(results []*proto.RaidSimResult, isDebug bool) *proto.RaidSimResult
func CompareConcurrentSimResultsTest ¶
func CompareConcurrentSimResultsTest(t *testing.T, testName string, singleThreadRes *proto.RaidSimResult, multiThreadRes *proto.RaidSimResult, absoluteFloatTolerance float64, relativeFloatTolerance float64)
func ComputeStats ¶
func ComputeStats(csr *proto.ComputeStatsRequest) *proto.ComputeStatsResult
*
- Returns character stats taking into account gear / buffs / consumes / etc
func DebugCompareLogs ¶
func DebugCompareLogs(rsr *proto.RaidSimRequest, showCount int) (bool, string)
func DefaultItemSetSlots ¶
func DisableDamageDoneByCaster ¶
func DisableDamageDoneByCaster(index int, attackTable *AttackTable)
func DisableThreatDoneByCaster ¶
func DisableThreatDoneByCaster(index int, attackTable *AttackTable)
func DurationFromSeconds ¶
func EnableDamageDoneByCaster ¶
func EnableDamageDoneByCaster(index int, maxIndex int, attackTable *AttackTable, handler DynamicDamageDoneByCaster)
func EnableThreatDoneByCaster ¶
func EnableThreatDoneByCaster(index int, maxIndex int, attackTable *AttackTable, handler DynamicThreatDoneByCaster)
func EquipmentSpecFromJsonString ¶
func EquipmentSpecFromJsonString(jsonString string) *proto.EquipmentSpec
func FillTalentsProto ¶
func FillTalentsProto(data protoreflect.Message, talentsStr string)
Uses proto reflection to set fields in a talents proto (e.g. MageTalents, WarriorTalents) based on a talentsStr.
func FilterMap ¶
func FilterMap[K comparable, V any](src map[K]V, f func(K, V) bool) map[K]V
Returns a new map containing only the key/value pairs for which f returns true.
func FilterSlice ¶
Returns a new slice containing only the elements for which f returns true.
func FreshDefaultTargetConfig ¶ added in v0.0.10
func GetClassSpellScalingCoefficient ¶
Gets the spell scaling coefficient associated with a given class Retrieved from https://wago.tools/api/casc/1391660?download&branch=wow_classic_beta
func GetCurrentProtoVersion ¶
func GetCurrentProtoVersion() int32
func GetItemEffectRandomPropPointsForItem ¶
func GetItemEffectRandomPropPointsForItem(itemID int32, state proto.ItemLevelState) float64
func GetItemEffectScaling ¶
func GetItemEffectScaling(itemID int32, coeff float64, state proto.ItemLevelState) float64
Used to get non-rounded stat values for item effects such as the amplify trinkets
func GetItemEffectScalingStatValue ¶ added in v0.0.179
func GetItemEffectScalingStatValue(itemID int32, coeff float64, state proto.ItemLevelState) float64
Used to get stat values for item effects which are rounded
func GetTristateValueFloat ¶
func GetTristateValueFloat(effect proto.TristateEffect, regularValue float64, impValue float64) float64
func GetTristateValueInt32 ¶
func GetTristateValueInt32(effect proto.TristateEffect, regularValue int32, impValue int32) int32
func HasEnchantEffect ¶
func HasItemEffect ¶
func HasItemEffectForTest ¶
func IsRunningInWasm ¶
func IsRunningInWasm() bool
func ItemEffectRandPropPointsToProto ¶
func ItemEffectRandPropPointsToProto(ieRpp ItemEffectRandPropPoints) *proto.ItemEffectRandPropPoints
ItemEffectRandPropPointsToProto converts a Go ItemEffectRandPropPoints to a protobuf ItemEffectRandPropPoints
func ItemEquipmentBaseStats ¶ added in v0.0.4
Returns the base stats on the equipment. That is all stats without Gems / Enchants
func ItemEquipmentGemAndEnchantStats ¶ added in v0.0.4
func ItemSwapFromJsonString ¶
func MakeTristateValue ¶
func MakeTristateValue(hasRegular bool, hasImproved bool) proto.TristateEffect
func MapMap ¶
func MapMap[KI comparable, VI any, KO comparable, VO any](src map[KI]VI, f func(KI, VI) (KO, VO)) map[KO]VO
Returns a new map by applying f to each key/value pair in src.
func MaxTimeToReady ¶
func MaxTimeToReady(t1 *Timer, t2 *Timer, sim *Simulation) time.Duration
func NewDefaultTarget ¶
func NewEnchantEffect ¶
func NewEnchantEffect(id int32, enchantEffect ApplyEffect)
func NewItemEffect ¶
func NewItemEffect(id int32, itemEffect ApplyEffect)
Registers an ApplyEffect function which will be called before the Sim starts, for any Agent that is wearing the item.
func RaidBenchmark ¶
func RaidBenchmark(b *testing.B, rsr *proto.RaidSimRequest)
func RaidPlayersWithClass ¶
func RaidSimTest ¶
func ReforgeStatToProto ¶
func ReforgeStatToProto(stat ReforgeStat) *proto.ReforgeStat
ReforgeStatToProto converts a Go ReforgeStat to a protobuf ReforgeStat
func RegisterAgentFactory ¶
func RegisterAgentFactory(emptyOptions interface{}, spec proto.Spec, factory AgentFactory, specSetter SpecSetter)
func RppmModFromProto ¶
func RunRaidSim ¶
func RunRaidSim(request *proto.RaidSimRequest) *proto.RaidSimResult
*
- Runs multiple iterations of the sim with a full raid.
func RunRaidSimAsync ¶
func RunRaidSimAsync(request *proto.RaidSimRequest, progress chan *proto.ProgressMetrics, requestId string)
func RunRaidSimConcurrent ¶
func RunRaidSimConcurrent(request *proto.RaidSimRequest) *proto.RaidSimResult
Threading does not work in WASM!
func RunRaidSimConcurrentAsync ¶
func RunRaidSimConcurrentAsync(request *proto.RaidSimRequest, progress chan *proto.ProgressMetrics, requestId string)
Threading does not work in WASM!
func RunSim ¶
func RunSim(rsr *proto.RaidSimRequest, progress chan *proto.ProgressMetrics, signals simsignals.Signals) *proto.RaidSimResult
func RunTestSuite ¶
func RunTestSuite(t *testing.T, suiteName string, generators []TestGenerator)
func SetRunningInWasm ¶
func SetRunningInWasm()
func SetToSortedSlice ¶
Allows Go maps to be used like the "Set" type commonly found in other languages
func SinglePlayerRaidProto ¶
func SplitSimRequestForConcurrency ¶
func SplitSimRequestForConcurrency(request *proto.RaidSimRequest, splitCount int32) *proto.RaidSimRequestSplitResult
Will split into min(splitCount, iterations) requests.
func StatWeightCompute ¶
func StatWeightCompute(request *proto.StatWeightsCalcRequest) *proto.StatWeightsResult
func StatWeightRequests ¶
func StatWeightRequests(request *proto.StatWeightsRequest) *proto.StatWeightRequestsData
Get data for all requests needed for stat weights.
func StatWeights ¶
func StatWeights(request *proto.StatWeightsRequest) *proto.StatWeightsResult
*
- Returns stat weights and EP values, with standard deviations, for all stats.
func StatWeightsAsync ¶
func StatWeightsAsync(request *proto.StatWeightsRequest, progress chan *proto.ProgressMetrics, requestId string)
func StringFromActionIDs ¶
func StringFromStatTypes ¶
func TernaryDuration ¶
func TrinketSlots ¶
func UnitLevelFloat64 ¶
Types ¶
type APLAction ¶
type APLAction struct {
// contains filtered or unexported fields
}
func (*APLAction) Execute ¶
func (action *APLAction) Execute(sim *Simulation)
func (*APLAction) Finalize ¶
func (action *APLAction) Finalize(rot *APLRotation)
func (*APLAction) GetAllAPLValues ¶
Returns all APLValues used by this action and all of its inner Actions.
func (*APLAction) GetAllActions ¶
Returns this Action, along with all inner Actions.
func (*APLAction) GetAllSpells ¶
func (*APLAction) IsReady ¶
func (action *APLAction) IsReady(sim *Simulation) bool
type APLActionActivateAllStatBuffProcAuras ¶
type APLActionActivateAllStatBuffProcAuras struct {
// contains filtered or unexported fields
}
func (*APLActionActivateAllStatBuffProcAuras) Execute ¶
func (action *APLActionActivateAllStatBuffProcAuras) Execute(sim *Simulation)
func (APLActionActivateAllStatBuffProcAuras) Finalize ¶
func (impl APLActionActivateAllStatBuffProcAuras) Finalize(*APLRotation)
func (APLActionActivateAllStatBuffProcAuras) GetAPLValues ¶
func (impl APLActionActivateAllStatBuffProcAuras) GetAPLValues() []APLValue
func (APLActionActivateAllStatBuffProcAuras) GetInnerActions ¶
func (impl APLActionActivateAllStatBuffProcAuras) GetInnerActions() []*APLAction
func (APLActionActivateAllStatBuffProcAuras) GetNextAction ¶
func (impl APLActionActivateAllStatBuffProcAuras) GetNextAction(*Simulation) *APLAction
func (*APLActionActivateAllStatBuffProcAuras) IsReady ¶
func (action *APLActionActivateAllStatBuffProcAuras) IsReady(sim *Simulation) bool
func (APLActionActivateAllStatBuffProcAuras) PostFinalize ¶
func (impl APLActionActivateAllStatBuffProcAuras) PostFinalize(*APLRotation)
func (APLActionActivateAllStatBuffProcAuras) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionActivateAllStatBuffProcAuras) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionActivateAllStatBuffProcAuras) Reset ¶
func (impl APLActionActivateAllStatBuffProcAuras) Reset(*Simulation)
func (*APLActionActivateAllStatBuffProcAuras) String ¶
func (action *APLActionActivateAllStatBuffProcAuras) String() string
type APLActionActivateAura ¶
type APLActionActivateAura struct {
// contains filtered or unexported fields
}
func (*APLActionActivateAura) Execute ¶
func (action *APLActionActivateAura) Execute(sim *Simulation)
func (APLActionActivateAura) Finalize ¶
func (impl APLActionActivateAura) Finalize(*APLRotation)
func (APLActionActivateAura) GetAPLValues ¶
func (impl APLActionActivateAura) GetAPLValues() []APLValue
func (APLActionActivateAura) GetInnerActions ¶
func (impl APLActionActivateAura) GetInnerActions() []*APLAction
func (APLActionActivateAura) GetNextAction ¶
func (impl APLActionActivateAura) GetNextAction(*Simulation) *APLAction
func (*APLActionActivateAura) IsReady ¶
func (action *APLActionActivateAura) IsReady(sim *Simulation) bool
func (APLActionActivateAura) PostFinalize ¶
func (impl APLActionActivateAura) PostFinalize(*APLRotation)
func (APLActionActivateAura) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionActivateAura) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionActivateAura) Reset ¶
func (impl APLActionActivateAura) Reset(*Simulation)
func (*APLActionActivateAura) String ¶
func (action *APLActionActivateAura) String() string
type APLActionActivateAuraWithStacks ¶
type APLActionActivateAuraWithStacks struct {
// contains filtered or unexported fields
}
func (*APLActionActivateAuraWithStacks) Execute ¶
func (action *APLActionActivateAuraWithStacks) Execute(sim *Simulation)
func (APLActionActivateAuraWithStacks) Finalize ¶
func (impl APLActionActivateAuraWithStacks) Finalize(*APLRotation)
func (APLActionActivateAuraWithStacks) GetAPLValues ¶
func (impl APLActionActivateAuraWithStacks) GetAPLValues() []APLValue
func (APLActionActivateAuraWithStacks) GetInnerActions ¶
func (impl APLActionActivateAuraWithStacks) GetInnerActions() []*APLAction
func (APLActionActivateAuraWithStacks) GetNextAction ¶
func (impl APLActionActivateAuraWithStacks) GetNextAction(*Simulation) *APLAction
func (*APLActionActivateAuraWithStacks) IsReady ¶
func (action *APLActionActivateAuraWithStacks) IsReady(sim *Simulation) bool
func (APLActionActivateAuraWithStacks) PostFinalize ¶
func (impl APLActionActivateAuraWithStacks) PostFinalize(*APLRotation)
func (APLActionActivateAuraWithStacks) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionActivateAuraWithStacks) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionActivateAuraWithStacks) Reset ¶
func (impl APLActionActivateAuraWithStacks) Reset(*Simulation)
func (*APLActionActivateAuraWithStacks) String ¶
func (action *APLActionActivateAuraWithStacks) String() string
type APLActionAutocastOtherCooldowns ¶
type APLActionAutocastOtherCooldowns struct {
// contains filtered or unexported fields
}
func (*APLActionAutocastOtherCooldowns) Execute ¶
func (action *APLActionAutocastOtherCooldowns) Execute(sim *Simulation)
func (APLActionAutocastOtherCooldowns) Finalize ¶
func (impl APLActionAutocastOtherCooldowns) Finalize(*APLRotation)
func (APLActionAutocastOtherCooldowns) GetAPLValues ¶
func (impl APLActionAutocastOtherCooldowns) GetAPLValues() []APLValue
func (APLActionAutocastOtherCooldowns) GetInnerActions ¶
func (impl APLActionAutocastOtherCooldowns) GetInnerActions() []*APLAction
func (APLActionAutocastOtherCooldowns) GetNextAction ¶
func (impl APLActionAutocastOtherCooldowns) GetNextAction(*Simulation) *APLAction
func (*APLActionAutocastOtherCooldowns) IsReady ¶
func (action *APLActionAutocastOtherCooldowns) IsReady(sim *Simulation) bool
func (*APLActionAutocastOtherCooldowns) PostFinalize ¶
func (action *APLActionAutocastOtherCooldowns) PostFinalize(rot *APLRotation)
func (APLActionAutocastOtherCooldowns) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionAutocastOtherCooldowns) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (*APLActionAutocastOtherCooldowns) Reset ¶
func (action *APLActionAutocastOtherCooldowns) Reset(*Simulation)
func (*APLActionAutocastOtherCooldowns) String ¶
func (action *APLActionAutocastOtherCooldowns) String() string
type APLActionCancelAura ¶
type APLActionCancelAura struct {
// contains filtered or unexported fields
}
func (*APLActionCancelAura) Execute ¶
func (action *APLActionCancelAura) Execute(sim *Simulation)
func (APLActionCancelAura) Finalize ¶
func (impl APLActionCancelAura) Finalize(*APLRotation)
func (APLActionCancelAura) GetAPLValues ¶
func (impl APLActionCancelAura) GetAPLValues() []APLValue
func (APLActionCancelAura) GetInnerActions ¶
func (impl APLActionCancelAura) GetInnerActions() []*APLAction
func (APLActionCancelAura) GetNextAction ¶
func (impl APLActionCancelAura) GetNextAction(*Simulation) *APLAction
func (*APLActionCancelAura) IsReady ¶
func (action *APLActionCancelAura) IsReady(sim *Simulation) bool
func (APLActionCancelAura) PostFinalize ¶
func (impl APLActionCancelAura) PostFinalize(*APLRotation)
func (APLActionCancelAura) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionCancelAura) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionCancelAura) Reset ¶
func (impl APLActionCancelAura) Reset(*Simulation)
func (*APLActionCancelAura) String ¶
func (action *APLActionCancelAura) String() string
type APLActionCancelSpellCast ¶ added in v0.0.173
type APLActionCancelSpellCast struct {
// contains filtered or unexported fields
}
func (*APLActionCancelSpellCast) Execute ¶ added in v0.0.173
func (action *APLActionCancelSpellCast) Execute(sim *Simulation)
func (APLActionCancelSpellCast) Finalize ¶ added in v0.0.173
func (impl APLActionCancelSpellCast) Finalize(*APLRotation)
func (APLActionCancelSpellCast) GetAPLValues ¶ added in v0.0.173
func (impl APLActionCancelSpellCast) GetAPLValues() []APLValue
func (APLActionCancelSpellCast) GetInnerActions ¶ added in v0.0.173
func (impl APLActionCancelSpellCast) GetInnerActions() []*APLAction
func (APLActionCancelSpellCast) GetNextAction ¶ added in v0.0.173
func (impl APLActionCancelSpellCast) GetNextAction(*Simulation) *APLAction
func (*APLActionCancelSpellCast) IsReady ¶ added in v0.0.173
func (action *APLActionCancelSpellCast) IsReady(sim *Simulation) bool
func (APLActionCancelSpellCast) PostFinalize ¶ added in v0.0.173
func (impl APLActionCancelSpellCast) PostFinalize(*APLRotation)
func (APLActionCancelSpellCast) ReResolveVariableRefs ¶ added in v0.0.173
func (impl APLActionCancelSpellCast) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionCancelSpellCast) Reset ¶ added in v0.0.173
func (impl APLActionCancelSpellCast) Reset(*Simulation)
func (*APLActionCancelSpellCast) String ¶ added in v0.0.173
func (action *APLActionCancelSpellCast) String() string
type APLActionCastAllStatBuffCooldowns ¶
type APLActionCastAllStatBuffCooldowns struct {
// contains filtered or unexported fields
}
func (*APLActionCastAllStatBuffCooldowns) Execute ¶
func (action *APLActionCastAllStatBuffCooldowns) Execute(sim *Simulation)
func (APLActionCastAllStatBuffCooldowns) Finalize ¶
func (impl APLActionCastAllStatBuffCooldowns) Finalize(*APLRotation)
func (APLActionCastAllStatBuffCooldowns) GetAPLValues ¶
func (impl APLActionCastAllStatBuffCooldowns) GetAPLValues() []APLValue
func (APLActionCastAllStatBuffCooldowns) GetInnerActions ¶
func (impl APLActionCastAllStatBuffCooldowns) GetInnerActions() []*APLAction
func (APLActionCastAllStatBuffCooldowns) GetNextAction ¶
func (impl APLActionCastAllStatBuffCooldowns) GetNextAction(*Simulation) *APLAction
func (*APLActionCastAllStatBuffCooldowns) IsReady ¶
func (action *APLActionCastAllStatBuffCooldowns) IsReady(sim *Simulation) bool
func (*APLActionCastAllStatBuffCooldowns) PostFinalize ¶
func (action *APLActionCastAllStatBuffCooldowns) PostFinalize(rot *APLRotation)
func (APLActionCastAllStatBuffCooldowns) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionCastAllStatBuffCooldowns) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionCastAllStatBuffCooldowns) Reset ¶
func (impl APLActionCastAllStatBuffCooldowns) Reset(*Simulation)
func (*APLActionCastAllStatBuffCooldowns) String ¶
func (action *APLActionCastAllStatBuffCooldowns) String() string
type APLActionCastFriendlySpell ¶
type APLActionCastFriendlySpell struct {
// contains filtered or unexported fields
}
func (*APLActionCastFriendlySpell) Execute ¶
func (action *APLActionCastFriendlySpell) Execute(sim *Simulation)
func (APLActionCastFriendlySpell) Finalize ¶
func (impl APLActionCastFriendlySpell) Finalize(*APLRotation)
func (APLActionCastFriendlySpell) GetAPLValues ¶
func (impl APLActionCastFriendlySpell) GetAPLValues() []APLValue
func (APLActionCastFriendlySpell) GetInnerActions ¶
func (impl APLActionCastFriendlySpell) GetInnerActions() []*APLAction
func (APLActionCastFriendlySpell) GetNextAction ¶
func (impl APLActionCastFriendlySpell) GetNextAction(*Simulation) *APLAction
func (*APLActionCastFriendlySpell) IsReady ¶
func (action *APLActionCastFriendlySpell) IsReady(sim *Simulation) bool
func (APLActionCastFriendlySpell) PostFinalize ¶
func (impl APLActionCastFriendlySpell) PostFinalize(*APLRotation)
func (APLActionCastFriendlySpell) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionCastFriendlySpell) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionCastFriendlySpell) Reset ¶
func (impl APLActionCastFriendlySpell) Reset(*Simulation)
func (*APLActionCastFriendlySpell) String ¶
func (action *APLActionCastFriendlySpell) String() string
type APLActionCastSpell ¶
type APLActionCastSpell struct {
// contains filtered or unexported fields
}
func (*APLActionCastSpell) Execute ¶
func (action *APLActionCastSpell) Execute(sim *Simulation)
func (APLActionCastSpell) Finalize ¶
func (impl APLActionCastSpell) Finalize(*APLRotation)
func (APLActionCastSpell) GetAPLValues ¶
func (impl APLActionCastSpell) GetAPLValues() []APLValue
func (APLActionCastSpell) GetInnerActions ¶
func (impl APLActionCastSpell) GetInnerActions() []*APLAction
func (APLActionCastSpell) GetNextAction ¶
func (impl APLActionCastSpell) GetNextAction(*Simulation) *APLAction
func (*APLActionCastSpell) IsReady ¶
func (action *APLActionCastSpell) IsReady(sim *Simulation) bool
func (APLActionCastSpell) PostFinalize ¶
func (impl APLActionCastSpell) PostFinalize(*APLRotation)
func (APLActionCastSpell) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionCastSpell) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionCastSpell) Reset ¶
func (impl APLActionCastSpell) Reset(*Simulation)
func (*APLActionCastSpell) String ¶
func (action *APLActionCastSpell) String() string
type APLActionChangeTarget ¶
type APLActionChangeTarget struct {
// contains filtered or unexported fields
}
func (*APLActionChangeTarget) Execute ¶
func (action *APLActionChangeTarget) Execute(sim *Simulation)
func (APLActionChangeTarget) Finalize ¶
func (impl APLActionChangeTarget) Finalize(*APLRotation)
func (APLActionChangeTarget) GetAPLValues ¶
func (impl APLActionChangeTarget) GetAPLValues() []APLValue
func (APLActionChangeTarget) GetInnerActions ¶
func (impl APLActionChangeTarget) GetInnerActions() []*APLAction
func (APLActionChangeTarget) GetNextAction ¶
func (impl APLActionChangeTarget) GetNextAction(*Simulation) *APLAction
func (*APLActionChangeTarget) IsReady ¶
func (action *APLActionChangeTarget) IsReady(sim *Simulation) bool
func (APLActionChangeTarget) PostFinalize ¶
func (impl APLActionChangeTarget) PostFinalize(*APLRotation)
func (APLActionChangeTarget) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionChangeTarget) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (*APLActionChangeTarget) Reset ¶
func (action *APLActionChangeTarget) Reset(sim *Simulation)
func (*APLActionChangeTarget) String ¶
func (action *APLActionChangeTarget) String() string
type APLActionChannelSpell ¶
type APLActionChannelSpell struct {
// contains filtered or unexported fields
}
func (*APLActionChannelSpell) Execute ¶
func (action *APLActionChannelSpell) Execute(sim *Simulation)
func (APLActionChannelSpell) Finalize ¶
func (impl APLActionChannelSpell) Finalize(*APLRotation)
func (*APLActionChannelSpell) GetAPLValues ¶
func (action *APLActionChannelSpell) GetAPLValues() []APLValue
func (APLActionChannelSpell) GetInnerActions ¶
func (impl APLActionChannelSpell) GetInnerActions() []*APLAction
func (APLActionChannelSpell) GetNextAction ¶
func (impl APLActionChannelSpell) GetNextAction(*Simulation) *APLAction
func (*APLActionChannelSpell) IsReady ¶
func (action *APLActionChannelSpell) IsReady(sim *Simulation) bool
func (APLActionChannelSpell) PostFinalize ¶
func (impl APLActionChannelSpell) PostFinalize(*APLRotation)
func (APLActionChannelSpell) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionChannelSpell) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionChannelSpell) Reset ¶
func (impl APLActionChannelSpell) Reset(*Simulation)
func (*APLActionChannelSpell) String ¶
func (action *APLActionChannelSpell) String() string
type APLActionCustomRotation ¶
type APLActionCustomRotation struct {
// contains filtered or unexported fields
}
func (*APLActionCustomRotation) Execute ¶
func (action *APLActionCustomRotation) Execute(sim *Simulation)
func (APLActionCustomRotation) Finalize ¶
func (impl APLActionCustomRotation) Finalize(*APLRotation)
func (APLActionCustomRotation) GetAPLValues ¶
func (impl APLActionCustomRotation) GetAPLValues() []APLValue
func (APLActionCustomRotation) GetInnerActions ¶
func (impl APLActionCustomRotation) GetInnerActions() []*APLAction
func (APLActionCustomRotation) GetNextAction ¶
func (impl APLActionCustomRotation) GetNextAction(*Simulation) *APLAction
func (*APLActionCustomRotation) IsReady ¶
func (action *APLActionCustomRotation) IsReady(sim *Simulation) bool
func (APLActionCustomRotation) PostFinalize ¶
func (impl APLActionCustomRotation) PostFinalize(*APLRotation)
func (APLActionCustomRotation) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionCustomRotation) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (*APLActionCustomRotation) Reset ¶
func (action *APLActionCustomRotation) Reset(sim *Simulation)
func (*APLActionCustomRotation) String ¶
func (action *APLActionCustomRotation) String() string
type APLActionGroupReference ¶ added in v0.0.79
type APLActionGroupReference struct {
// contains filtered or unexported fields
}
func (*APLActionGroupReference) Execute ¶ added in v0.0.79
func (action *APLActionGroupReference) Execute(sim *Simulation)
func (*APLActionGroupReference) Finalize ¶ added in v0.0.79
func (action *APLActionGroupReference) Finalize(rot *APLRotation)
func (*APLActionGroupReference) GetAPLValues ¶ added in v0.0.79
func (action *APLActionGroupReference) GetAPLValues() []APLValue
func (*APLActionGroupReference) GetInnerActions ¶ added in v0.0.79
func (action *APLActionGroupReference) GetInnerActions() []*APLAction
func (APLActionGroupReference) GetNextAction ¶ added in v0.0.79
func (impl APLActionGroupReference) GetNextAction(*Simulation) *APLAction
func (*APLActionGroupReference) IsReady ¶ added in v0.0.79
func (action *APLActionGroupReference) IsReady(sim *Simulation) bool
func (APLActionGroupReference) PostFinalize ¶ added in v0.0.79
func (impl APLActionGroupReference) PostFinalize(*APLRotation)
func (APLActionGroupReference) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionGroupReference) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (*APLActionGroupReference) Reset ¶ added in v0.0.79
func (action *APLActionGroupReference) Reset(sim *Simulation)
func (*APLActionGroupReference) String ¶ added in v0.0.79
func (action *APLActionGroupReference) String() string
type APLActionImpl ¶
type APLActionImpl interface {
// Returns all inner APL Actions.
GetInnerActions() []*APLAction
// Returns all APLValues used by this Action (but not by inner Actions).
GetAPLValues() []APLValue
// Performs optional post-processing.
Finalize(*APLRotation)
PostFinalize(*APLRotation)
// Invoked before each sim iteration.
Reset(*Simulation)
// Whether this action is available to be used right now.
IsReady(*Simulation) bool
// Performs the action.
Execute(*Simulation)
// Called only while this action is controlling the rotation.
GetNextAction(sim *Simulation) *APLAction
// Re-resolve variable references with updated group variables.
ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
// Pretty-print string for debugging.
String() string
}
type APLActionItemSwap ¶
type APLActionItemSwap struct {
// contains filtered or unexported fields
}
func (*APLActionItemSwap) Execute ¶
func (action *APLActionItemSwap) Execute(sim *Simulation)
func (APLActionItemSwap) Finalize ¶
func (impl APLActionItemSwap) Finalize(*APLRotation)
func (APLActionItemSwap) GetAPLValues ¶
func (impl APLActionItemSwap) GetAPLValues() []APLValue
func (APLActionItemSwap) GetInnerActions ¶
func (impl APLActionItemSwap) GetInnerActions() []*APLAction
func (APLActionItemSwap) GetNextAction ¶
func (impl APLActionItemSwap) GetNextAction(*Simulation) *APLAction
func (*APLActionItemSwap) IsReady ¶
func (action *APLActionItemSwap) IsReady(sim *Simulation) bool
func (APLActionItemSwap) PostFinalize ¶
func (impl APLActionItemSwap) PostFinalize(*APLRotation)
func (APLActionItemSwap) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionItemSwap) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionItemSwap) Reset ¶
func (impl APLActionItemSwap) Reset(*Simulation)
func (*APLActionItemSwap) String ¶
func (action *APLActionItemSwap) String() string
type APLActionMove ¶
type APLActionMove struct {
// contains filtered or unexported fields
}
func (*APLActionMove) Execute ¶
func (action *APLActionMove) Execute(sim *Simulation)
func (APLActionMove) Finalize ¶
func (impl APLActionMove) Finalize(*APLRotation)
func (APLActionMove) GetAPLValues ¶
func (impl APLActionMove) GetAPLValues() []APLValue
func (APLActionMove) GetInnerActions ¶
func (impl APLActionMove) GetInnerActions() []*APLAction
func (APLActionMove) GetNextAction ¶
func (impl APLActionMove) GetNextAction(*Simulation) *APLAction
func (*APLActionMove) IsReady ¶
func (action *APLActionMove) IsReady(sim *Simulation) bool
func (APLActionMove) PostFinalize ¶
func (impl APLActionMove) PostFinalize(*APLRotation)
func (APLActionMove) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionMove) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionMove) Reset ¶
func (impl APLActionMove) Reset(*Simulation)
func (*APLActionMove) String ¶
func (action *APLActionMove) String() string
type APLActionMoveDuration ¶
type APLActionMoveDuration struct {
// contains filtered or unexported fields
}
func (*APLActionMoveDuration) Execute ¶
func (action *APLActionMoveDuration) Execute(sim *Simulation)
func (APLActionMoveDuration) Finalize ¶
func (impl APLActionMoveDuration) Finalize(*APLRotation)
func (APLActionMoveDuration) GetAPLValues ¶
func (impl APLActionMoveDuration) GetAPLValues() []APLValue
func (APLActionMoveDuration) GetInnerActions ¶
func (impl APLActionMoveDuration) GetInnerActions() []*APLAction
func (APLActionMoveDuration) GetNextAction ¶
func (impl APLActionMoveDuration) GetNextAction(*Simulation) *APLAction
func (*APLActionMoveDuration) IsReady ¶
func (action *APLActionMoveDuration) IsReady(sim *Simulation) bool
func (APLActionMoveDuration) PostFinalize ¶
func (impl APLActionMoveDuration) PostFinalize(*APLRotation)
func (APLActionMoveDuration) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionMoveDuration) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionMoveDuration) Reset ¶
func (impl APLActionMoveDuration) Reset(*Simulation)
func (*APLActionMoveDuration) String ¶
func (action *APLActionMoveDuration) String() string
type APLActionMultidot ¶
type APLActionMultidot struct {
// contains filtered or unexported fields
}
func (*APLActionMultidot) Execute ¶
func (action *APLActionMultidot) Execute(sim *Simulation)
func (APLActionMultidot) Finalize ¶
func (impl APLActionMultidot) Finalize(*APLRotation)
func (*APLActionMultidot) GetAPLValues ¶
func (action *APLActionMultidot) GetAPLValues() []APLValue
func (APLActionMultidot) GetInnerActions ¶
func (impl APLActionMultidot) GetInnerActions() []*APLAction
func (APLActionMultidot) GetNextAction ¶
func (impl APLActionMultidot) GetNextAction(*Simulation) *APLAction
func (*APLActionMultidot) IsReady ¶
func (action *APLActionMultidot) IsReady(sim *Simulation) bool
func (APLActionMultidot) PostFinalize ¶
func (impl APLActionMultidot) PostFinalize(*APLRotation)
func (APLActionMultidot) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionMultidot) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (*APLActionMultidot) Reset ¶
func (action *APLActionMultidot) Reset(*Simulation)
func (*APLActionMultidot) String ¶
func (action *APLActionMultidot) String() string
type APLActionMultishield ¶
type APLActionMultishield struct {
// contains filtered or unexported fields
}
func (*APLActionMultishield) Execute ¶
func (action *APLActionMultishield) Execute(sim *Simulation)
func (APLActionMultishield) Finalize ¶
func (impl APLActionMultishield) Finalize(*APLRotation)
func (*APLActionMultishield) GetAPLValues ¶
func (action *APLActionMultishield) GetAPLValues() []APLValue
func (APLActionMultishield) GetInnerActions ¶
func (impl APLActionMultishield) GetInnerActions() []*APLAction
func (APLActionMultishield) GetNextAction ¶
func (impl APLActionMultishield) GetNextAction(*Simulation) *APLAction
func (*APLActionMultishield) IsReady ¶
func (action *APLActionMultishield) IsReady(sim *Simulation) bool
func (APLActionMultishield) PostFinalize ¶
func (impl APLActionMultishield) PostFinalize(*APLRotation)
func (APLActionMultishield) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionMultishield) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (*APLActionMultishield) Reset ¶
func (action *APLActionMultishield) Reset(*Simulation)
func (*APLActionMultishield) String ¶
func (action *APLActionMultishield) String() string
type APLActionResetSequence ¶
type APLActionResetSequence struct {
// contains filtered or unexported fields
}
func (*APLActionResetSequence) Execute ¶
func (action *APLActionResetSequence) Execute(sim *Simulation)
func (*APLActionResetSequence) Finalize ¶
func (action *APLActionResetSequence) Finalize(rot *APLRotation)
func (APLActionResetSequence) GetAPLValues ¶
func (impl APLActionResetSequence) GetAPLValues() []APLValue
func (APLActionResetSequence) GetInnerActions ¶
func (impl APLActionResetSequence) GetInnerActions() []*APLAction
func (APLActionResetSequence) GetNextAction ¶
func (impl APLActionResetSequence) GetNextAction(*Simulation) *APLAction
func (*APLActionResetSequence) IsReady ¶
func (action *APLActionResetSequence) IsReady(sim *Simulation) bool
func (APLActionResetSequence) PostFinalize ¶
func (impl APLActionResetSequence) PostFinalize(*APLRotation)
func (APLActionResetSequence) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionResetSequence) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionResetSequence) Reset ¶
func (impl APLActionResetSequence) Reset(*Simulation)
func (*APLActionResetSequence) String ¶
func (action *APLActionResetSequence) String() string
type APLActionSchedule ¶
type APLActionSchedule struct {
// contains filtered or unexported fields
}
func (*APLActionSchedule) Execute ¶
func (action *APLActionSchedule) Execute(sim *Simulation)
func (APLActionSchedule) Finalize ¶
func (impl APLActionSchedule) Finalize(*APLRotation)
func (APLActionSchedule) GetAPLValues ¶
func (impl APLActionSchedule) GetAPLValues() []APLValue
func (*APLActionSchedule) GetInnerActions ¶
func (action *APLActionSchedule) GetInnerActions() []*APLAction
func (APLActionSchedule) GetNextAction ¶
func (impl APLActionSchedule) GetNextAction(*Simulation) *APLAction
func (*APLActionSchedule) IsReady ¶
func (action *APLActionSchedule) IsReady(sim *Simulation) bool
func (APLActionSchedule) PostFinalize ¶
func (impl APLActionSchedule) PostFinalize(*APLRotation)
func (APLActionSchedule) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionSchedule) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (*APLActionSchedule) Reset ¶
func (action *APLActionSchedule) Reset(*Simulation)
func (*APLActionSchedule) String ¶
func (action *APLActionSchedule) String() string
type APLActionSequence ¶
type APLActionSequence struct {
// contains filtered or unexported fields
}
func (*APLActionSequence) Execute ¶
func (action *APLActionSequence) Execute(sim *Simulation)
func (*APLActionSequence) Finalize ¶
func (action *APLActionSequence) Finalize(rot *APLRotation)
func (APLActionSequence) GetAPLValues ¶
func (impl APLActionSequence) GetAPLValues() []APLValue
func (*APLActionSequence) GetInnerActions ¶
func (action *APLActionSequence) GetInnerActions() []*APLAction
func (APLActionSequence) GetNextAction ¶
func (impl APLActionSequence) GetNextAction(*Simulation) *APLAction
func (*APLActionSequence) IsReady ¶
func (action *APLActionSequence) IsReady(sim *Simulation) bool
func (*APLActionSequence) PostFinalize ¶
func (action *APLActionSequence) PostFinalize(rot *APLRotation)
func (APLActionSequence) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionSequence) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (*APLActionSequence) Reset ¶
func (action *APLActionSequence) Reset(*Simulation)
func (*APLActionSequence) String ¶
func (action *APLActionSequence) String() string
type APLActionStrictMultidot ¶
type APLActionStrictMultidot struct {
// contains filtered or unexported fields
}
func (*APLActionStrictMultidot) Execute ¶
func (action *APLActionStrictMultidot) Execute(sim *Simulation)
func (APLActionStrictMultidot) Finalize ¶
func (impl APLActionStrictMultidot) Finalize(*APLRotation)
func (*APLActionStrictMultidot) GetAPLValues ¶
func (action *APLActionStrictMultidot) GetAPLValues() []APLValue
func (APLActionStrictMultidot) GetInnerActions ¶
func (impl APLActionStrictMultidot) GetInnerActions() []*APLAction
func (APLActionStrictMultidot) GetNextAction ¶
func (impl APLActionStrictMultidot) GetNextAction(*Simulation) *APLAction
func (*APLActionStrictMultidot) IsReady ¶
func (action *APLActionStrictMultidot) IsReady(sim *Simulation) bool
func (APLActionStrictMultidot) PostFinalize ¶
func (impl APLActionStrictMultidot) PostFinalize(*APLRotation)
func (APLActionStrictMultidot) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionStrictMultidot) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (*APLActionStrictMultidot) Reset ¶
func (action *APLActionStrictMultidot) Reset(*Simulation)
func (*APLActionStrictMultidot) String ¶
func (action *APLActionStrictMultidot) String() string
type APLActionStrictSequence ¶
type APLActionStrictSequence struct {
// contains filtered or unexported fields
}
func (*APLActionStrictSequence) Execute ¶
func (action *APLActionStrictSequence) Execute(sim *Simulation)
func (*APLActionStrictSequence) Finalize ¶
func (action *APLActionStrictSequence) Finalize(rot *APLRotation)
func (APLActionStrictSequence) GetAPLValues ¶
func (impl APLActionStrictSequence) GetAPLValues() []APLValue
func (*APLActionStrictSequence) GetInnerActions ¶
func (action *APLActionStrictSequence) GetInnerActions() []*APLAction
func (*APLActionStrictSequence) GetNextAction ¶
func (action *APLActionStrictSequence) GetNextAction(sim *Simulation) *APLAction
func (*APLActionStrictSequence) IsReady ¶
func (action *APLActionStrictSequence) IsReady(sim *Simulation) bool
func (*APLActionStrictSequence) PostFinalize ¶
func (action *APLActionStrictSequence) PostFinalize(rot *APLRotation)
func (APLActionStrictSequence) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionStrictSequence) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (*APLActionStrictSequence) Reset ¶
func (action *APLActionStrictSequence) Reset(*Simulation)
func (*APLActionStrictSequence) String ¶
func (action *APLActionStrictSequence) String() string
type APLActionTriggerICD ¶
type APLActionTriggerICD struct {
// contains filtered or unexported fields
}
func (*APLActionTriggerICD) Execute ¶
func (action *APLActionTriggerICD) Execute(sim *Simulation)
func (APLActionTriggerICD) Finalize ¶
func (impl APLActionTriggerICD) Finalize(*APLRotation)
func (APLActionTriggerICD) GetAPLValues ¶
func (impl APLActionTriggerICD) GetAPLValues() []APLValue
func (APLActionTriggerICD) GetInnerActions ¶
func (impl APLActionTriggerICD) GetInnerActions() []*APLAction
func (APLActionTriggerICD) GetNextAction ¶
func (impl APLActionTriggerICD) GetNextAction(*Simulation) *APLAction
func (*APLActionTriggerICD) IsReady ¶
func (action *APLActionTriggerICD) IsReady(sim *Simulation) bool
func (APLActionTriggerICD) PostFinalize ¶
func (impl APLActionTriggerICD) PostFinalize(*APLRotation)
func (APLActionTriggerICD) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionTriggerICD) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionTriggerICD) Reset ¶
func (impl APLActionTriggerICD) Reset(*Simulation)
func (*APLActionTriggerICD) String ¶
func (action *APLActionTriggerICD) String() string
type APLActionWait ¶
type APLActionWait struct {
// contains filtered or unexported fields
}
func (*APLActionWait) Execute ¶
func (action *APLActionWait) Execute(sim *Simulation)
func (APLActionWait) Finalize ¶
func (impl APLActionWait) Finalize(*APLRotation)
func (*APLActionWait) GetAPLValues ¶
func (action *APLActionWait) GetAPLValues() []APLValue
func (APLActionWait) GetInnerActions ¶
func (impl APLActionWait) GetInnerActions() []*APLAction
func (*APLActionWait) GetNextAction ¶
func (action *APLActionWait) GetNextAction(sim *Simulation) *APLAction
func (*APLActionWait) IsReady ¶
func (action *APLActionWait) IsReady(sim *Simulation) bool
func (APLActionWait) PostFinalize ¶
func (impl APLActionWait) PostFinalize(*APLRotation)
func (APLActionWait) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionWait) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionWait) Reset ¶
func (impl APLActionWait) Reset(*Simulation)
func (*APLActionWait) String ¶
func (action *APLActionWait) String() string
type APLActionWaitUntil ¶
type APLActionWaitUntil struct {
// contains filtered or unexported fields
}
func (*APLActionWaitUntil) Execute ¶
func (action *APLActionWaitUntil) Execute(sim *Simulation)
func (APLActionWaitUntil) Finalize ¶
func (impl APLActionWaitUntil) Finalize(*APLRotation)
func (*APLActionWaitUntil) GetAPLValues ¶
func (action *APLActionWaitUntil) GetAPLValues() []APLValue
func (APLActionWaitUntil) GetInnerActions ¶
func (impl APLActionWaitUntil) GetInnerActions() []*APLAction
func (*APLActionWaitUntil) GetNextAction ¶
func (action *APLActionWaitUntil) GetNextAction(sim *Simulation) *APLAction
func (*APLActionWaitUntil) IsReady ¶
func (action *APLActionWaitUntil) IsReady(sim *Simulation) bool
func (APLActionWaitUntil) PostFinalize ¶
func (impl APLActionWaitUntil) PostFinalize(*APLRotation)
func (APLActionWaitUntil) ReResolveVariableRefs ¶ added in v0.0.79
func (impl APLActionWaitUntil) ReResolveVariableRefs(*APLRotation, map[string]*proto.APLValue)
func (APLActionWaitUntil) Reset ¶
func (impl APLActionWaitUntil) Reset(*Simulation)
func (*APLActionWaitUntil) String ¶
func (action *APLActionWaitUntil) String() string
type APLRotation ¶
type APLRotation struct {
// contains filtered or unexported fields
}
func (*APLRotation) DoNextAction ¶
func (apl *APLRotation) DoNextAction(sim *Simulation)
We intentionally try to mimic the behavior of simc APL to avoid confusion and leverage the community's existing familiarity. https://github.com/simulationcraft/simc/wiki/ActionLists
func (*APLRotation) GetAPLAura ¶
func (rot *APLRotation) GetAPLAura(sourceUnit UnitReference, auraId *proto.ActionID) AuraReference
func (*APLRotation) GetAPLDot ¶
func (rot *APLRotation) GetAPLDot(targetUnit UnitReference, spellId *proto.ActionID) *Dot
func (*APLRotation) GetAPLICDAura ¶
func (rot *APLRotation) GetAPLICDAura(sourceUnit UnitReference, auraId *proto.ActionID) AuraReference
func (*APLRotation) GetAPLItemProcAuras ¶
func (rot *APLRotation) GetAPLItemProcAuras(statTypesToMatch []stats.Stat, minIcd time.Duration, warnIfNoneFound bool, uuid *proto.UUID) []*StatBuffAura
func (*APLRotation) GetAPLMultidotSpell ¶
func (rot *APLRotation) GetAPLMultidotSpell(spellId *proto.ActionID) *Spell
func (*APLRotation) GetAPLMultishieldSpell ¶
func (rot *APLRotation) GetAPLMultishieldSpell(spellId *proto.ActionID) *Spell
func (*APLRotation) GetAPLSpell ¶
func (rot *APLRotation) GetAPLSpell(spellId *proto.ActionID) *Spell
func (*APLRotation) GetSourceUnit ¶
func (rot *APLRotation) GetSourceUnit(ref *proto.UnitReference) UnitReference
func (*APLRotation) GetTargetAPLSpell ¶
func (rot *APLRotation) GetTargetAPLSpell(spellId *proto.ActionID, targetUnit UnitReference) *Spell
func (*APLRotation) GetTargetUnit ¶
func (rot *APLRotation) GetTargetUnit(ref *proto.UnitReference) UnitReference
func (*APLRotation) NewDotReference ¶ added in v0.0.43
func (rot *APLRotation) NewDotReference(targetUnitRef UnitReference, auraId *proto.ActionID) *DotReference
func (*APLRotation) NewValueSpellInFlight ¶ added in v0.0.102
func (rot *APLRotation) NewValueSpellInFlight(config *proto.APLValueSpellInFlight, uuid *proto.UUID) APLValue
func (*APLRotation) ValidationMessage ¶
func (rot *APLRotation) ValidationMessage(log_level proto.LogLevel, message string, vals ...interface{})
func (*APLRotation) ValidationMessageByUUID ¶
type APLValue ¶
type APLValue interface {
// Returns all inner APLValues.
GetInnerValues() []APLValue
// The type of value that will be returned.
Type() proto.APLValueType
// Gets the value, assuming it is a particular type. Usually only one of
// these should be implemented in each class.
GetBool(*Simulation) bool
GetInt(*Simulation) int32
GetFloat(*Simulation) float64
GetDuration(*Simulation) time.Duration
GetString(*Simulation) string
// Performs optional post-processing.
Finalize(*APLRotation)
// Pretty-print string for debugging.
String() string
}
type APLValueActiveItemSwapSet ¶ added in v0.0.81
type APLValueActiveItemSwapSet struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueActiveItemSwapSet) GetBool ¶ added in v0.0.81
func (value *APLValueActiveItemSwapSet) GetBool(sim *Simulation) bool
func (*APLValueActiveItemSwapSet) String ¶ added in v0.0.81
func (value *APLValueActiveItemSwapSet) String() string
func (*APLValueActiveItemSwapSet) Type ¶ added in v0.0.81
func (value *APLValueActiveItemSwapSet) Type() proto.APLValueType
type APLValueAllItemStatProcsActive ¶
type APLValueAllItemStatProcsActive struct {
*APLValueItemStatProcCheck
}
func (*APLValueAllItemStatProcsActive) GetBool ¶
func (value *APLValueAllItemStatProcsActive) GetBool(sim *Simulation) bool
func (*APLValueAllItemStatProcsActive) Type ¶
func (value *APLValueAllItemStatProcsActive) Type() proto.APLValueType
type APLValueAnd ¶
type APLValueAnd struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAnd) GetBool ¶
func (value *APLValueAnd) GetBool(sim *Simulation) bool
func (*APLValueAnd) GetInnerValues ¶
func (value *APLValueAnd) GetInnerValues() []APLValue
func (*APLValueAnd) String ¶
func (value *APLValueAnd) String() string
func (*APLValueAnd) Type ¶
func (value *APLValueAnd) Type() proto.APLValueType
type APLValueAnyItemStatProcsActive ¶
type APLValueAnyItemStatProcsActive struct {
*APLValueItemStatProcCheck
}
func (*APLValueAnyItemStatProcsActive) GetBool ¶
func (value *APLValueAnyItemStatProcsActive) GetBool(sim *Simulation) bool
func (*APLValueAnyItemStatProcsActive) Type ¶
func (value *APLValueAnyItemStatProcsActive) Type() proto.APLValueType
type APLValueAnyItemStatProcsAvailable ¶ added in v0.0.137
type APLValueAnyItemStatProcsAvailable struct {
*APLValueItemStatProcCheck
}
func (*APLValueAnyItemStatProcsAvailable) GetBool ¶ added in v0.0.137
func (value *APLValueAnyItemStatProcsAvailable) GetBool(sim *Simulation) bool
unsure if this works correctly based on a weird bug i observed... this was seemingly returning true if no matching auras were found need to debug further
func (*APLValueAnyItemStatProcsAvailable) Type ¶ added in v0.0.137
func (value *APLValueAnyItemStatProcsAvailable) Type() proto.APLValueType
type APLValueAnyStatBuffCooldownsActive ¶ added in v0.0.33
type APLValueAnyStatBuffCooldownsActive struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAnyStatBuffCooldownsActive) Finalize ¶ added in v0.0.33
func (value *APLValueAnyStatBuffCooldownsActive) Finalize(rot *APLRotation)
func (*APLValueAnyStatBuffCooldownsActive) GetBool ¶ added in v0.0.33
func (value *APLValueAnyStatBuffCooldownsActive) GetBool(_ *Simulation) bool
func (*APLValueAnyStatBuffCooldownsActive) String ¶ added in v0.0.33
func (value *APLValueAnyStatBuffCooldownsActive) String() string
func (*APLValueAnyStatBuffCooldownsActive) Type ¶ added in v0.0.33
func (value *APLValueAnyStatBuffCooldownsActive) Type() proto.APLValueType
type APLValueAnyStatBuffCooldownsMinDuration ¶ added in v0.0.137
type APLValueAnyStatBuffCooldownsMinDuration struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAnyStatBuffCooldownsMinDuration) Finalize ¶ added in v0.0.137
func (value *APLValueAnyStatBuffCooldownsMinDuration) Finalize(rot *APLRotation)
func (*APLValueAnyStatBuffCooldownsMinDuration) GetDuration ¶ added in v0.0.137
func (value *APLValueAnyStatBuffCooldownsMinDuration) GetDuration(sim *Simulation) time.Duration
func (*APLValueAnyStatBuffCooldownsMinDuration) String ¶ added in v0.0.137
func (value *APLValueAnyStatBuffCooldownsMinDuration) String() string
func (*APLValueAnyStatBuffCooldownsMinDuration) Type ¶ added in v0.0.137
func (value *APLValueAnyStatBuffCooldownsMinDuration) Type() proto.APLValueType
type APLValueAuraICDIsReady ¶ added in v0.0.62
type APLValueAuraICDIsReady struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAuraICDIsReady) GetBool ¶ added in v0.0.62
func (value *APLValueAuraICDIsReady) GetBool(sim *Simulation) bool
func (*APLValueAuraICDIsReady) String ¶ added in v0.0.62
func (value *APLValueAuraICDIsReady) String() string
func (*APLValueAuraICDIsReady) Type ¶ added in v0.0.62
func (value *APLValueAuraICDIsReady) Type() proto.APLValueType
type APLValueAuraInternalCooldown ¶
type APLValueAuraInternalCooldown struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAuraInternalCooldown) GetDuration ¶
func (value *APLValueAuraInternalCooldown) GetDuration(sim *Simulation) time.Duration
func (*APLValueAuraInternalCooldown) String ¶
func (value *APLValueAuraInternalCooldown) String() string
func (*APLValueAuraInternalCooldown) Type ¶
func (value *APLValueAuraInternalCooldown) Type() proto.APLValueType
type APLValueAuraIsActive ¶
type APLValueAuraIsActive struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAuraIsActive) GetBool ¶
func (value *APLValueAuraIsActive) GetBool(sim *Simulation) bool
func (*APLValueAuraIsActive) String ¶
func (value *APLValueAuraIsActive) String() string
func (*APLValueAuraIsActive) Type ¶
func (value *APLValueAuraIsActive) Type() proto.APLValueType
type APLValueAuraIsInactive ¶ added in v0.0.62
type APLValueAuraIsInactive struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAuraIsInactive) GetBool ¶ added in v0.0.62
func (value *APLValueAuraIsInactive) GetBool(sim *Simulation) bool
func (*APLValueAuraIsInactive) String ¶ added in v0.0.62
func (value *APLValueAuraIsInactive) String() string
func (*APLValueAuraIsInactive) Type ¶ added in v0.0.62
func (value *APLValueAuraIsInactive) Type() proto.APLValueType
type APLValueAuraIsKnown ¶
type APLValueAuraIsKnown struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAuraIsKnown) GetBool ¶
func (value *APLValueAuraIsKnown) GetBool(sim *Simulation) bool
func (*APLValueAuraIsKnown) String ¶
func (value *APLValueAuraIsKnown) String() string
func (*APLValueAuraIsKnown) Type ¶
func (value *APLValueAuraIsKnown) Type() proto.APLValueType
type APLValueAuraNumStacks ¶
type APLValueAuraNumStacks struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAuraNumStacks) GetInt ¶
func (value *APLValueAuraNumStacks) GetInt(sim *Simulation) int32
func (*APLValueAuraNumStacks) String ¶
func (value *APLValueAuraNumStacks) String() string
func (*APLValueAuraNumStacks) Type ¶
func (value *APLValueAuraNumStacks) Type() proto.APLValueType
type APLValueAuraRemainingTime ¶
type APLValueAuraRemainingTime struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAuraRemainingTime) GetDuration ¶
func (value *APLValueAuraRemainingTime) GetDuration(sim *Simulation) time.Duration
func (*APLValueAuraRemainingTime) String ¶
func (value *APLValueAuraRemainingTime) String() string
func (*APLValueAuraRemainingTime) Type ¶
func (value *APLValueAuraRemainingTime) Type() proto.APLValueType
type APLValueAuraShouldRefresh ¶
type APLValueAuraShouldRefresh struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAuraShouldRefresh) GetBool ¶
func (value *APLValueAuraShouldRefresh) GetBool(sim *Simulation) bool
func (*APLValueAuraShouldRefresh) GetInnerValues ¶
func (value *APLValueAuraShouldRefresh) GetInnerValues() []APLValue
func (*APLValueAuraShouldRefresh) String ¶
func (value *APLValueAuraShouldRefresh) String() string
func (*APLValueAuraShouldRefresh) Type ¶
func (value *APLValueAuraShouldRefresh) Type() proto.APLValueType
type APLValueAutoTimeToNext ¶
type APLValueAutoTimeToNext struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueAutoTimeToNext) GetDuration ¶
func (value *APLValueAutoTimeToNext) GetDuration(sim *Simulation) time.Duration
func (*APLValueAutoTimeToNext) String ¶
func (value *APLValueAutoTimeToNext) String() string
func (*APLValueAutoTimeToNext) Type ¶
func (value *APLValueAutoTimeToNext) Type() proto.APLValueType
type APLValueBossCurrentTarget ¶ added in v0.0.137
type APLValueBossCurrentTarget struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueBossCurrentTarget) GetBool ¶ added in v0.0.137
func (value *APLValueBossCurrentTarget) GetBool(sim *Simulation) bool
func (*APLValueBossCurrentTarget) String ¶ added in v0.0.137
func (value *APLValueBossCurrentTarget) String() string
func (*APLValueBossCurrentTarget) Type ¶ added in v0.0.137
func (value *APLValueBossCurrentTarget) Type() proto.APLValueType
type APLValueBossSpellIsCasting ¶
type APLValueBossSpellIsCasting struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueBossSpellIsCasting) GetBool ¶
func (value *APLValueBossSpellIsCasting) GetBool(sim *Simulation) bool
func (*APLValueBossSpellIsCasting) String ¶
func (value *APLValueBossSpellIsCasting) String() string
func (*APLValueBossSpellIsCasting) Type ¶
func (value *APLValueBossSpellIsCasting) Type() proto.APLValueType
type APLValueBossSpellTimeToReady ¶
type APLValueBossSpellTimeToReady struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueBossSpellTimeToReady) GetDuration ¶
func (value *APLValueBossSpellTimeToReady) GetDuration(sim *Simulation) time.Duration
func (*APLValueBossSpellTimeToReady) String ¶
func (value *APLValueBossSpellTimeToReady) String() string
func (*APLValueBossSpellTimeToReady) Type ¶
func (value *APLValueBossSpellTimeToReady) Type() proto.APLValueType
type APLValueChannelClipDelay ¶
type APLValueChannelClipDelay struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueChannelClipDelay) GetDuration ¶
func (value *APLValueChannelClipDelay) GetDuration(sim *Simulation) time.Duration
func (*APLValueChannelClipDelay) String ¶
func (value *APLValueChannelClipDelay) String() string
func (*APLValueChannelClipDelay) Type ¶
func (value *APLValueChannelClipDelay) Type() proto.APLValueType
type APLValueCoerced ¶
type APLValueCoerced struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCoerced) GetBool ¶
func (value *APLValueCoerced) GetBool(sim *Simulation) bool
func (APLValueCoerced) GetDuration ¶
func (value APLValueCoerced) GetDuration(sim *Simulation) time.Duration
func (APLValueCoerced) GetFloat ¶
func (value APLValueCoerced) GetFloat(sim *Simulation) float64
func (*APLValueCoerced) GetInnerValues ¶
func (value *APLValueCoerced) GetInnerValues() []APLValue
func (APLValueCoerced) GetInt ¶
func (value APLValueCoerced) GetInt(sim *Simulation) int32
func (APLValueCoerced) GetString ¶
func (value APLValueCoerced) GetString(sim *Simulation) string
func (*APLValueCoerced) String ¶
func (value *APLValueCoerced) String() string
func (*APLValueCoerced) Type ¶
func (value *APLValueCoerced) Type() proto.APLValueType
type APLValueCompare ¶
type APLValueCompare struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCompare) GetBool ¶
func (value *APLValueCompare) GetBool(sim *Simulation) bool
func (*APLValueCompare) GetInnerValues ¶
func (value *APLValueCompare) GetInnerValues() []APLValue
func (*APLValueCompare) String ¶
func (value *APLValueCompare) String() string
func (*APLValueCompare) Type ¶
func (value *APLValueCompare) Type() proto.APLValueType
type APLValueConst ¶
type APLValueConst struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueConst) GetBool ¶
func (value *APLValueConst) GetBool(_ *Simulation) bool
func (*APLValueConst) GetDuration ¶
func (value *APLValueConst) GetDuration(_ *Simulation) time.Duration
func (*APLValueConst) GetFloat ¶
func (value *APLValueConst) GetFloat(_ *Simulation) float64
func (*APLValueConst) GetInt ¶
func (value *APLValueConst) GetInt(_ *Simulation) int32
func (*APLValueConst) GetString ¶
func (value *APLValueConst) GetString(_ *Simulation) string
func (*APLValueConst) String ¶
func (value *APLValueConst) String() string
func (*APLValueConst) Type ¶
func (value *APLValueConst) Type() proto.APLValueType
type APLValueCurrentComboPoints ¶
type APLValueCurrentComboPoints struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentComboPoints) GetInt ¶
func (value *APLValueCurrentComboPoints) GetInt(sim *Simulation) int32
func (*APLValueCurrentComboPoints) String ¶
func (value *APLValueCurrentComboPoints) String() string
func (*APLValueCurrentComboPoints) Type ¶
func (value *APLValueCurrentComboPoints) Type() proto.APLValueType
type APLValueCurrentEnergy ¶
type APLValueCurrentEnergy struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentEnergy) GetFloat ¶
func (value *APLValueCurrentEnergy) GetFloat(sim *Simulation) float64
func (*APLValueCurrentEnergy) String ¶
func (value *APLValueCurrentEnergy) String() string
func (*APLValueCurrentEnergy) Type ¶
func (value *APLValueCurrentEnergy) Type() proto.APLValueType
type APLValueCurrentFocus ¶
type APLValueCurrentFocus struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentFocus) GetFloat ¶
func (value *APLValueCurrentFocus) GetFloat(sim *Simulation) float64
func (*APLValueCurrentFocus) String ¶
func (value *APLValueCurrentFocus) String() string
func (*APLValueCurrentFocus) Type ¶
func (value *APLValueCurrentFocus) Type() proto.APLValueType
type APLValueCurrentGenericResource ¶
type APLValueCurrentGenericResource struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentGenericResource) GetFloat ¶ added in v0.0.148
func (value *APLValueCurrentGenericResource) GetFloat(sim *Simulation) float64
func (*APLValueCurrentGenericResource) String ¶
func (value *APLValueCurrentGenericResource) String() string
func (*APLValueCurrentGenericResource) Type ¶
func (value *APLValueCurrentGenericResource) Type() proto.APLValueType
type APLValueCurrentHealth ¶
type APLValueCurrentHealth struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentHealth) GetFloat ¶
func (value *APLValueCurrentHealth) GetFloat(sim *Simulation) float64
func (*APLValueCurrentHealth) String ¶
func (value *APLValueCurrentHealth) String() string
func (*APLValueCurrentHealth) Type ¶
func (value *APLValueCurrentHealth) Type() proto.APLValueType
type APLValueCurrentHealthPercent ¶
type APLValueCurrentHealthPercent struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentHealthPercent) GetFloat ¶
func (value *APLValueCurrentHealthPercent) GetFloat(sim *Simulation) float64
func (*APLValueCurrentHealthPercent) String ¶
func (value *APLValueCurrentHealthPercent) String() string
func (*APLValueCurrentHealthPercent) Type ¶
func (value *APLValueCurrentHealthPercent) Type() proto.APLValueType
type APLValueCurrentMana ¶
type APLValueCurrentMana struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentMana) GetFloat ¶
func (value *APLValueCurrentMana) GetFloat(sim *Simulation) float64
func (*APLValueCurrentMana) String ¶
func (value *APLValueCurrentMana) String() string
func (*APLValueCurrentMana) Type ¶
func (value *APLValueCurrentMana) Type() proto.APLValueType
type APLValueCurrentManaPercent ¶
type APLValueCurrentManaPercent struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentManaPercent) GetFloat ¶
func (value *APLValueCurrentManaPercent) GetFloat(sim *Simulation) float64
func (*APLValueCurrentManaPercent) String ¶
func (value *APLValueCurrentManaPercent) String() string
func (*APLValueCurrentManaPercent) Type ¶
func (value *APLValueCurrentManaPercent) Type() proto.APLValueType
type APLValueCurrentNonDeathRuneCount ¶
type APLValueCurrentNonDeathRuneCount struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentNonDeathRuneCount) GetInt ¶
func (value *APLValueCurrentNonDeathRuneCount) GetInt(_ *Simulation) int32
func (*APLValueCurrentNonDeathRuneCount) String ¶
func (value *APLValueCurrentNonDeathRuneCount) String() string
func (*APLValueCurrentNonDeathRuneCount) Type ¶
func (value *APLValueCurrentNonDeathRuneCount) Type() proto.APLValueType
type APLValueCurrentRage ¶
type APLValueCurrentRage struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentRage) GetFloat ¶
func (value *APLValueCurrentRage) GetFloat(sim *Simulation) float64
func (*APLValueCurrentRage) String ¶
func (value *APLValueCurrentRage) String() string
func (*APLValueCurrentRage) Type ¶
func (value *APLValueCurrentRage) Type() proto.APLValueType
type APLValueCurrentRuneActive ¶
type APLValueCurrentRuneActive struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentRuneActive) GetBool ¶
func (value *APLValueCurrentRuneActive) GetBool(_ *Simulation) bool
func (*APLValueCurrentRuneActive) String ¶
func (value *APLValueCurrentRuneActive) String() string
func (*APLValueCurrentRuneActive) Type ¶
func (value *APLValueCurrentRuneActive) Type() proto.APLValueType
type APLValueCurrentRuneCount ¶
type APLValueCurrentRuneCount struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentRuneCount) GetInt ¶
func (value *APLValueCurrentRuneCount) GetInt(_ *Simulation) int32
func (*APLValueCurrentRuneCount) String ¶
func (value *APLValueCurrentRuneCount) String() string
func (*APLValueCurrentRuneCount) Type ¶
func (value *APLValueCurrentRuneCount) Type() proto.APLValueType
type APLValueCurrentRuneDeath ¶
type APLValueCurrentRuneDeath struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentRuneDeath) GetBool ¶
func (value *APLValueCurrentRuneDeath) GetBool(_ *Simulation) bool
func (*APLValueCurrentRuneDeath) String ¶
func (value *APLValueCurrentRuneDeath) String() string
func (*APLValueCurrentRuneDeath) Type ¶
func (value *APLValueCurrentRuneDeath) Type() proto.APLValueType
type APLValueCurrentRunicPower ¶
type APLValueCurrentRunicPower struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueCurrentRunicPower) GetInt ¶
func (value *APLValueCurrentRunicPower) GetInt(sim *Simulation) int32
func (*APLValueCurrentRunicPower) String ¶
func (value *APLValueCurrentRunicPower) String() string
func (*APLValueCurrentRunicPower) Type ¶
func (value *APLValueCurrentRunicPower) Type() proto.APLValueType
type APLValueCurrentTime ¶
type APLValueCurrentTime struct {
DefaultAPLValueImpl
}
func (*APLValueCurrentTime) GetDuration ¶
func (value *APLValueCurrentTime) GetDuration(sim *Simulation) time.Duration
func (*APLValueCurrentTime) String ¶
func (value *APLValueCurrentTime) String() string
func (*APLValueCurrentTime) Type ¶
func (value *APLValueCurrentTime) Type() proto.APLValueType
type APLValueCurrentTimePercent ¶
type APLValueCurrentTimePercent struct {
DefaultAPLValueImpl
}
func (*APLValueCurrentTimePercent) GetFloat ¶
func (value *APLValueCurrentTimePercent) GetFloat(sim *Simulation) float64
func (*APLValueCurrentTimePercent) String ¶
func (value *APLValueCurrentTimePercent) String() string
func (*APLValueCurrentTimePercent) Type ¶
func (value *APLValueCurrentTimePercent) Type() proto.APLValueType
type APLValueDotBaseDuration ¶ added in v0.0.83
type APLValueDotBaseDuration struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueDotBaseDuration) GetDuration ¶ added in v0.0.83
func (value *APLValueDotBaseDuration) GetDuration(_ *Simulation) time.Duration
func (*APLValueDotBaseDuration) String ¶ added in v0.0.83
func (value *APLValueDotBaseDuration) String() string
func (*APLValueDotBaseDuration) Type ¶ added in v0.0.83
func (value *APLValueDotBaseDuration) Type() proto.APLValueType
type APLValueDotCritPercentIncrease ¶ added in v0.0.74
type APLValueDotCritPercentIncrease struct {
*APLValueDotIncreaseCheck
}
func (*APLValueDotCritPercentIncrease) Finalize ¶ added in v0.0.93
func (value *APLValueDotCritPercentIncrease) Finalize(rot *APLRotation)
func (*APLValueDotCritPercentIncrease) GetFloat ¶ added in v0.0.74
func (value *APLValueDotCritPercentIncrease) GetFloat(sim *Simulation) float64
type APLValueDotIncreaseCheck ¶ added in v0.0.74
type APLValueDotIncreaseCheck struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueDotIncreaseCheck) String ¶ added in v0.0.74
func (value *APLValueDotIncreaseCheck) String() string
func (*APLValueDotIncreaseCheck) Type ¶ added in v0.0.74
func (value *APLValueDotIncreaseCheck) Type() proto.APLValueType
type APLValueDotIsActive ¶
type APLValueDotIsActive struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueDotIsActive) GetBool ¶
func (value *APLValueDotIsActive) GetBool(sim *Simulation) bool
func (*APLValueDotIsActive) String ¶
func (value *APLValueDotIsActive) String() string
func (*APLValueDotIsActive) Type ¶
func (value *APLValueDotIsActive) Type() proto.APLValueType
type APLValueDotIsActiveOnAllTargets ¶ added in v0.0.12
type APLValueDotIsActiveOnAllTargets struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueDotIsActiveOnAllTargets) GetBool ¶ added in v0.0.12
func (value *APLValueDotIsActiveOnAllTargets) GetBool(sim *Simulation) bool
func (*APLValueDotIsActiveOnAllTargets) String ¶ added in v0.0.12
func (value *APLValueDotIsActiveOnAllTargets) String() string
func (*APLValueDotIsActiveOnAllTargets) Type ¶ added in v0.0.12
func (value *APLValueDotIsActiveOnAllTargets) Type() proto.APLValueType
type APLValueDotLowestRemainingTime ¶ added in v0.0.12
type APLValueDotLowestRemainingTime struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueDotLowestRemainingTime) GetDuration ¶ added in v0.0.12
func (value *APLValueDotLowestRemainingTime) GetDuration(sim *Simulation) time.Duration
func (*APLValueDotLowestRemainingTime) String ¶ added in v0.0.12
func (value *APLValueDotLowestRemainingTime) String() string
func (*APLValueDotLowestRemainingTime) Type ¶ added in v0.0.12
func (value *APLValueDotLowestRemainingTime) Type() proto.APLValueType
type APLValueDotPercentIncrease ¶
type APLValueDotPercentIncrease struct {
*APLValueDotIncreaseCheck
}
func (*APLValueDotPercentIncrease) Finalize ¶ added in v0.0.93
func (value *APLValueDotPercentIncrease) Finalize(rot *APLRotation)
func (*APLValueDotPercentIncrease) GetFloat ¶
func (value *APLValueDotPercentIncrease) GetFloat(sim *Simulation) float64
type APLValueDotRemainingTime ¶
type APLValueDotRemainingTime struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueDotRemainingTime) GetDuration ¶
func (value *APLValueDotRemainingTime) GetDuration(sim *Simulation) time.Duration
func (*APLValueDotRemainingTime) String ¶
func (value *APLValueDotRemainingTime) String() string
func (*APLValueDotRemainingTime) Type ¶
func (value *APLValueDotRemainingTime) Type() proto.APLValueType
type APLValueDotTickFrequency ¶
type APLValueDotTickFrequency struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueDotTickFrequency) GetDuration ¶
func (value *APLValueDotTickFrequency) GetDuration(sim *Simulation) time.Duration
func (*APLValueDotTickFrequency) String ¶
func (value *APLValueDotTickFrequency) String() string
func (*APLValueDotTickFrequency) Type ¶
func (value *APLValueDotTickFrequency) Type() proto.APLValueType
type APLValueDotTickRatePercentIncrease ¶ added in v0.0.74
type APLValueDotTickRatePercentIncrease struct {
*APLValueDotIncreaseCheck
}
func (*APLValueDotTickRatePercentIncrease) Finalize ¶ added in v0.0.93
func (value *APLValueDotTickRatePercentIncrease) Finalize(rot *APLRotation)
func (*APLValueDotTickRatePercentIncrease) GetFloat ¶ added in v0.0.74
func (value *APLValueDotTickRatePercentIncrease) GetFloat(sim *Simulation) float64
type APLValueDotTimeToNextTick ¶ added in v0.0.96
type APLValueDotTimeToNextTick struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueDotTimeToNextTick) GetDuration ¶ added in v0.0.96
func (value *APLValueDotTimeToNextTick) GetDuration(sim *Simulation) time.Duration
func (*APLValueDotTimeToNextTick) String ¶ added in v0.0.96
func (value *APLValueDotTimeToNextTick) String() string
func (*APLValueDotTimeToNextTick) Type ¶ added in v0.0.96
func (value *APLValueDotTimeToNextTick) Type() proto.APLValueType
type APLValueEnergyRegenPerSecond ¶
type APLValueEnergyRegenPerSecond struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueEnergyRegenPerSecond) GetFloat ¶
func (value *APLValueEnergyRegenPerSecond) GetFloat(sim *Simulation) float64
func (*APLValueEnergyRegenPerSecond) String ¶
func (value *APLValueEnergyRegenPerSecond) String() string
func (*APLValueEnergyRegenPerSecond) Type ¶
func (value *APLValueEnergyRegenPerSecond) Type() proto.APLValueType
type APLValueEnergyTimeToTarget ¶
type APLValueEnergyTimeToTarget struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueEnergyTimeToTarget) GetDuration ¶
func (value *APLValueEnergyTimeToTarget) GetDuration(sim *Simulation) time.Duration
func (*APLValueEnergyTimeToTarget) String ¶
func (value *APLValueEnergyTimeToTarget) String() string
func (*APLValueEnergyTimeToTarget) Type ¶
func (value *APLValueEnergyTimeToTarget) Type() proto.APLValueType
type APLValueFocusRegenPerSecond ¶
type APLValueFocusRegenPerSecond struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueFocusRegenPerSecond) GetFloat ¶
func (value *APLValueFocusRegenPerSecond) GetFloat(sim *Simulation) float64
func (*APLValueFocusRegenPerSecond) String ¶
func (value *APLValueFocusRegenPerSecond) String() string
func (*APLValueFocusRegenPerSecond) Type ¶
func (value *APLValueFocusRegenPerSecond) Type() proto.APLValueType
type APLValueFocusTimeToTarget ¶
type APLValueFocusTimeToTarget struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueFocusTimeToTarget) GetDuration ¶
func (value *APLValueFocusTimeToTarget) GetDuration(sim *Simulation) time.Duration
func (*APLValueFocusTimeToTarget) String ¶
func (value *APLValueFocusTimeToTarget) String() string
func (*APLValueFocusTimeToTarget) Type ¶
func (value *APLValueFocusTimeToTarget) Type() proto.APLValueType
type APLValueFrontOfTarget ¶
type APLValueFrontOfTarget struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueFrontOfTarget) GetBool ¶
func (value *APLValueFrontOfTarget) GetBool(sim *Simulation) bool
func (*APLValueFrontOfTarget) String ¶
func (value *APLValueFrontOfTarget) String() string
func (*APLValueFrontOfTarget) Type ¶
func (value *APLValueFrontOfTarget) Type() proto.APLValueType
type APLValueFullRuneCooldown ¶ added in v0.0.113
type APLValueFullRuneCooldown struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueFullRuneCooldown) GetDuration ¶ added in v0.0.113
func (value *APLValueFullRuneCooldown) GetDuration(sim *Simulation) time.Duration
func (*APLValueFullRuneCooldown) String ¶ added in v0.0.113
func (value *APLValueFullRuneCooldown) String() string
func (*APLValueFullRuneCooldown) Type ¶ added in v0.0.113
func (value *APLValueFullRuneCooldown) Type() proto.APLValueType
type APLValueGCDIsReady ¶
type APLValueGCDIsReady struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueGCDIsReady) GetBool ¶
func (value *APLValueGCDIsReady) GetBool(sim *Simulation) bool
func (*APLValueGCDIsReady) String ¶
func (value *APLValueGCDIsReady) String() string
func (*APLValueGCDIsReady) Type ¶
func (value *APLValueGCDIsReady) Type() proto.APLValueType
type APLValueGCDTimeToReady ¶
type APLValueGCDTimeToReady struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueGCDTimeToReady) GetDuration ¶
func (value *APLValueGCDTimeToReady) GetDuration(sim *Simulation) time.Duration
func (*APLValueGCDTimeToReady) String ¶
func (value *APLValueGCDTimeToReady) String() string
func (*APLValueGCDTimeToReady) Type ¶
func (value *APLValueGCDTimeToReady) Type() proto.APLValueType
type APLValueInputDelay ¶
type APLValueInputDelay struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueInputDelay) GetDuration ¶
func (value *APLValueInputDelay) GetDuration(sim *Simulation) time.Duration
func (*APLValueInputDelay) String ¶
func (value *APLValueInputDelay) String() string
func (*APLValueInputDelay) Type ¶
func (value *APLValueInputDelay) Type() proto.APLValueType
type APLValueIsExecutePhase ¶
type APLValueIsExecutePhase struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueIsExecutePhase) GetBool ¶
func (value *APLValueIsExecutePhase) GetBool(sim *Simulation) bool
func (*APLValueIsExecutePhase) String ¶
func (value *APLValueIsExecutePhase) String() string
func (*APLValueIsExecutePhase) Type ¶
func (value *APLValueIsExecutePhase) Type() proto.APLValueType
type APLValueItemProcsMaxRemainingICD ¶
type APLValueItemProcsMaxRemainingICD struct {
*APLValueItemStatProcCheck
}
func (*APLValueItemProcsMaxRemainingICD) GetDuration ¶
func (value *APLValueItemProcsMaxRemainingICD) GetDuration(sim *Simulation) time.Duration
func (*APLValueItemProcsMaxRemainingICD) Type ¶
func (value *APLValueItemProcsMaxRemainingICD) Type() proto.APLValueType
type APLValueItemProcsMinRemainingTime ¶
type APLValueItemProcsMinRemainingTime struct {
*APLValueItemStatProcCheck
}
func (*APLValueItemProcsMinRemainingTime) GetDuration ¶
func (value *APLValueItemProcsMinRemainingTime) GetDuration(sim *Simulation) time.Duration
func (*APLValueItemProcsMinRemainingTime) Type ¶
func (value *APLValueItemProcsMinRemainingTime) Type() proto.APLValueType
type APLValueItemStatProcCheck ¶
type APLValueItemStatProcCheck struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
Parent struct for all APL values that perform checks on the set of buff auras associated with equipped proc items.
func (*APLValueItemStatProcCheck) Finalize ¶
func (value *APLValueItemStatProcCheck) Finalize(rot *APLRotation)
func (*APLValueItemStatProcCheck) String ¶
func (value *APLValueItemStatProcCheck) String() string
type APLValueMath ¶
type APLValueMath struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueMath) GetDuration ¶
func (value *APLValueMath) GetDuration(sim *Simulation) time.Duration
func (*APLValueMath) GetFloat ¶
func (value *APLValueMath) GetFloat(sim *Simulation) float64
func (*APLValueMath) GetInnerValues ¶
func (value *APLValueMath) GetInnerValues() []APLValue
func (*APLValueMath) GetInt ¶
func (value *APLValueMath) GetInt(sim *Simulation) int32
func (*APLValueMath) String ¶
func (value *APLValueMath) String() string
func (*APLValueMath) Type ¶
func (value *APLValueMath) Type() proto.APLValueType
MUL: int * duration => duration, float * duration => duration, int * float => float DIV: duration / int => duration, duration / float => duration, duration / duration => float ADD & SUB: are always the same type as the LHS, so we can just return that type.
type APLValueMax ¶
type APLValueMax struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueMax) GetDuration ¶
func (value *APLValueMax) GetDuration(sim *Simulation) time.Duration
func (*APLValueMax) GetFloat ¶
func (value *APLValueMax) GetFloat(sim *Simulation) float64
func (*APLValueMax) GetInnerValues ¶
func (value *APLValueMax) GetInnerValues() []APLValue
func (*APLValueMax) GetInt ¶
func (value *APLValueMax) GetInt(sim *Simulation) int32
func (*APLValueMax) String ¶
func (value *APLValueMax) String() string
func (*APLValueMax) Type ¶
func (value *APLValueMax) Type() proto.APLValueType
type APLValueMaxComboPoints ¶
type APLValueMaxComboPoints struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueMaxComboPoints) GetInt ¶
func (value *APLValueMaxComboPoints) GetInt(sim *Simulation) int32
func (*APLValueMaxComboPoints) String ¶
func (value *APLValueMaxComboPoints) String() string
func (*APLValueMaxComboPoints) Type ¶
func (value *APLValueMaxComboPoints) Type() proto.APLValueType
type APLValueMaxEnergy ¶
type APLValueMaxEnergy struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueMaxEnergy) GetFloat ¶
func (value *APLValueMaxEnergy) GetFloat(sim *Simulation) float64
func (*APLValueMaxEnergy) String ¶
func (value *APLValueMaxEnergy) String() string
func (*APLValueMaxEnergy) Type ¶
func (value *APLValueMaxEnergy) Type() proto.APLValueType
type APLValueMaxFocus ¶
type APLValueMaxFocus struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueMaxFocus) GetFloat ¶
func (value *APLValueMaxFocus) GetFloat(sim *Simulation) float64
func (*APLValueMaxFocus) String ¶
func (value *APLValueMaxFocus) String() string
func (*APLValueMaxFocus) Type ¶
func (value *APLValueMaxFocus) Type() proto.APLValueType
type APLValueMaxHealth ¶
type APLValueMaxHealth struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueMaxHealth) GetFloat ¶
func (value *APLValueMaxHealth) GetFloat(sim *Simulation) float64
func (*APLValueMaxHealth) String ¶
func (value *APLValueMaxHealth) String() string
func (*APLValueMaxHealth) Type ¶
func (value *APLValueMaxHealth) Type() proto.APLValueType
type APLValueMaxRage ¶
type APLValueMaxRage struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueMaxRage) GetFloat ¶
func (value *APLValueMaxRage) GetFloat(sim *Simulation) float64
func (*APLValueMaxRage) String ¶
func (value *APLValueMaxRage) String() string
func (*APLValueMaxRage) Type ¶
func (value *APLValueMaxRage) Type() proto.APLValueType
type APLValueMaxRunicPower ¶
type APLValueMaxRunicPower struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueMaxRunicPower) GetInt ¶
func (value *APLValueMaxRunicPower) GetInt(sim *Simulation) int32
func (*APLValueMaxRunicPower) String ¶
func (value *APLValueMaxRunicPower) String() string
func (*APLValueMaxRunicPower) Type ¶
func (value *APLValueMaxRunicPower) Type() proto.APLValueType
type APLValueMin ¶
type APLValueMin struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueMin) GetDuration ¶
func (value *APLValueMin) GetDuration(sim *Simulation) time.Duration
func (*APLValueMin) GetFloat ¶
func (value *APLValueMin) GetFloat(sim *Simulation) float64
func (*APLValueMin) GetInnerValues ¶
func (value *APLValueMin) GetInnerValues() []APLValue
func (*APLValueMin) GetInt ¶
func (value *APLValueMin) GetInt(sim *Simulation) int32
func (*APLValueMin) String ¶
func (value *APLValueMin) String() string
func (*APLValueMin) Type ¶
func (value *APLValueMin) Type() proto.APLValueType
type APLValueNextRuneCooldown ¶
type APLValueNextRuneCooldown struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueNextRuneCooldown) GetDuration ¶
func (value *APLValueNextRuneCooldown) GetDuration(sim *Simulation) time.Duration
func (*APLValueNextRuneCooldown) String ¶
func (value *APLValueNextRuneCooldown) String() string
func (*APLValueNextRuneCooldown) Type ¶
func (value *APLValueNextRuneCooldown) Type() proto.APLValueType
type APLValueNot ¶
type APLValueNot struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueNot) GetBool ¶
func (value *APLValueNot) GetBool(sim *Simulation) bool
func (*APLValueNot) GetInnerValues ¶
func (value *APLValueNot) GetInnerValues() []APLValue
func (*APLValueNot) String ¶
func (value *APLValueNot) String() string
func (*APLValueNot) Type ¶
func (value *APLValueNot) Type() proto.APLValueType
type APLValueNumEquippedStatProcItems ¶
type APLValueNumEquippedStatProcItems struct {
*APLValueItemStatProcCheck
}
func (*APLValueNumEquippedStatProcItems) GetInt ¶
func (value *APLValueNumEquippedStatProcItems) GetInt(sim *Simulation) int32
func (*APLValueNumEquippedStatProcItems) Type ¶
func (value *APLValueNumEquippedStatProcItems) Type() proto.APLValueType
type APLValueNumStatBuffCooldowns ¶
type APLValueNumStatBuffCooldowns struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueNumStatBuffCooldowns) Finalize ¶
func (value *APLValueNumStatBuffCooldowns) Finalize(rot *APLRotation)
func (*APLValueNumStatBuffCooldowns) GetInt ¶
func (value *APLValueNumStatBuffCooldowns) GetInt(_ *Simulation) int32
func (*APLValueNumStatBuffCooldowns) String ¶
func (value *APLValueNumStatBuffCooldowns) String() string
func (*APLValueNumStatBuffCooldowns) Type ¶
func (value *APLValueNumStatBuffCooldowns) Type() proto.APLValueType
type APLValueNumberTargets ¶
type APLValueNumberTargets struct {
DefaultAPLValueImpl
}
func (*APLValueNumberTargets) GetFloat ¶ added in v0.0.137
func (value *APLValueNumberTargets) GetFloat(sim *Simulation) float64
func (*APLValueNumberTargets) GetInt ¶
func (value *APLValueNumberTargets) GetInt(sim *Simulation) int32
func (*APLValueNumberTargets) String ¶
func (value *APLValueNumberTargets) String() string
func (*APLValueNumberTargets) Type ¶
func (value *APLValueNumberTargets) Type() proto.APLValueType
type APLValueOr ¶
type APLValueOr struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueOr) GetBool ¶
func (value *APLValueOr) GetBool(sim *Simulation) bool
func (*APLValueOr) GetInnerValues ¶
func (value *APLValueOr) GetInnerValues() []APLValue
func (*APLValueOr) String ¶
func (value *APLValueOr) String() string
func (*APLValueOr) Type ¶
func (value *APLValueOr) Type() proto.APLValueType
type APLValueRemainingCastTime ¶ added in v0.0.173
type APLValueRemainingCastTime struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueRemainingCastTime) GetDuration ¶ added in v0.0.173
func (value *APLValueRemainingCastTime) GetDuration(sim *Simulation) time.Duration
func (*APLValueRemainingCastTime) String ¶ added in v0.0.173
func (value *APLValueRemainingCastTime) String() string
func (*APLValueRemainingCastTime) Type ¶ added in v0.0.173
func (value *APLValueRemainingCastTime) Type() proto.APLValueType
type APLValueRemainingTime ¶
type APLValueRemainingTime struct {
DefaultAPLValueImpl
}
func (*APLValueRemainingTime) GetDuration ¶
func (value *APLValueRemainingTime) GetDuration(sim *Simulation) time.Duration
func (*APLValueRemainingTime) String ¶
func (value *APLValueRemainingTime) String() string
func (*APLValueRemainingTime) Type ¶
func (value *APLValueRemainingTime) Type() proto.APLValueType
type APLValueRemainingTimePercent ¶
type APLValueRemainingTimePercent struct {
DefaultAPLValueImpl
}
func (*APLValueRemainingTimePercent) GetFloat ¶
func (value *APLValueRemainingTimePercent) GetFloat(sim *Simulation) float64
func (*APLValueRemainingTimePercent) String ¶
func (value *APLValueRemainingTimePercent) String() string
func (*APLValueRemainingTimePercent) Type ¶
func (value *APLValueRemainingTimePercent) Type() proto.APLValueType
type APLValueRuneCooldown ¶
type APLValueRuneCooldown struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueRuneCooldown) GetDuration ¶
func (value *APLValueRuneCooldown) GetDuration(sim *Simulation) time.Duration
func (*APLValueRuneCooldown) String ¶
func (value *APLValueRuneCooldown) String() string
func (*APLValueRuneCooldown) Type ¶
func (value *APLValueRuneCooldown) Type() proto.APLValueType
type APLValueRuneSlotCooldown ¶
type APLValueRuneSlotCooldown struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueRuneSlotCooldown) GetDuration ¶
func (value *APLValueRuneSlotCooldown) GetDuration(sim *Simulation) time.Duration
func (*APLValueRuneSlotCooldown) String ¶
func (value *APLValueRuneSlotCooldown) String() string
func (*APLValueRuneSlotCooldown) Type ¶
func (value *APLValueRuneSlotCooldown) Type() proto.APLValueType
type APLValueSequenceIsComplete ¶
type APLValueSequenceIsComplete struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSequenceIsComplete) Finalize ¶
func (value *APLValueSequenceIsComplete) Finalize(rot *APLRotation)
func (*APLValueSequenceIsComplete) GetBool ¶
func (value *APLValueSequenceIsComplete) GetBool(sim *Simulation) bool
func (*APLValueSequenceIsComplete) String ¶
func (value *APLValueSequenceIsComplete) String() string
func (*APLValueSequenceIsComplete) Type ¶
func (value *APLValueSequenceIsComplete) Type() proto.APLValueType
type APLValueSequenceIsReady ¶
type APLValueSequenceIsReady struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSequenceIsReady) Finalize ¶
func (value *APLValueSequenceIsReady) Finalize(rot *APLRotation)
func (*APLValueSequenceIsReady) GetBool ¶
func (value *APLValueSequenceIsReady) GetBool(sim *Simulation) bool
func (*APLValueSequenceIsReady) String ¶
func (value *APLValueSequenceIsReady) String() string
func (*APLValueSequenceIsReady) Type ¶
func (value *APLValueSequenceIsReady) Type() proto.APLValueType
type APLValueSequenceTimeToReady ¶
type APLValueSequenceTimeToReady struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSequenceTimeToReady) Finalize ¶
func (value *APLValueSequenceTimeToReady) Finalize(rot *APLRotation)
func (*APLValueSequenceTimeToReady) GetDuration ¶
func (value *APLValueSequenceTimeToReady) GetDuration(sim *Simulation) time.Duration
func (*APLValueSequenceTimeToReady) String ¶
func (value *APLValueSequenceTimeToReady) String() string
func (*APLValueSequenceTimeToReady) Type ¶
func (value *APLValueSequenceTimeToReady) Type() proto.APLValueType
type APLValueSpellCPM ¶
type APLValueSpellCPM struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellCPM) GetFloat ¶
func (value *APLValueSpellCPM) GetFloat(sim *Simulation) float64
func (*APLValueSpellCPM) String ¶
func (value *APLValueSpellCPM) String() string
func (*APLValueSpellCPM) Type ¶
func (value *APLValueSpellCPM) Type() proto.APLValueType
type APLValueSpellCanCast ¶
type APLValueSpellCanCast struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellCanCast) GetBool ¶
func (value *APLValueSpellCanCast) GetBool(sim *Simulation) bool
func (*APLValueSpellCanCast) String ¶
func (value *APLValueSpellCanCast) String() string
func (*APLValueSpellCanCast) Type ¶
func (value *APLValueSpellCanCast) Type() proto.APLValueType
type APLValueSpellCastTime ¶
type APLValueSpellCastTime struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellCastTime) GetDuration ¶
func (value *APLValueSpellCastTime) GetDuration(_ *Simulation) time.Duration
func (*APLValueSpellCastTime) String ¶
func (value *APLValueSpellCastTime) String() string
func (*APLValueSpellCastTime) Type ¶
func (value *APLValueSpellCastTime) Type() proto.APLValueType
type APLValueSpellChanneledTicks ¶
type APLValueSpellChanneledTicks struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellChanneledTicks) GetInt ¶
func (value *APLValueSpellChanneledTicks) GetInt(_ *Simulation) int32
func (*APLValueSpellChanneledTicks) String ¶
func (value *APLValueSpellChanneledTicks) String() string
func (*APLValueSpellChanneledTicks) Type ¶
func (value *APLValueSpellChanneledTicks) Type() proto.APLValueType
type APLValueSpellCurrentCost ¶
type APLValueSpellCurrentCost struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellCurrentCost) GetFloat ¶
func (value *APLValueSpellCurrentCost) GetFloat(_ *Simulation) float64
func (*APLValueSpellCurrentCost) String ¶
func (value *APLValueSpellCurrentCost) String() string
func (*APLValueSpellCurrentCost) Type ¶
func (value *APLValueSpellCurrentCost) Type() proto.APLValueType
type APLValueSpellFullCooldown ¶ added in v0.0.87
type APLValueSpellFullCooldown struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
Full Cooldown duration
func (*APLValueSpellFullCooldown) GetDuration ¶ added in v0.0.87
func (value *APLValueSpellFullCooldown) GetDuration(sim *Simulation) time.Duration
func (*APLValueSpellFullCooldown) String ¶ added in v0.0.87
func (value *APLValueSpellFullCooldown) String() string
func (*APLValueSpellFullCooldown) Type ¶ added in v0.0.87
func (value *APLValueSpellFullCooldown) Type() proto.APLValueType
type APLValueSpellGCDHastedDuration ¶ added in v0.0.85
type APLValueSpellGCDHastedDuration struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
GCD duration
func (*APLValueSpellGCDHastedDuration) GetDuration ¶ added in v0.0.85
func (value *APLValueSpellGCDHastedDuration) GetDuration(_ *Simulation) time.Duration
func (*APLValueSpellGCDHastedDuration) GetFloat ¶ added in v0.0.85
func (value *APLValueSpellGCDHastedDuration) GetFloat(sim *Simulation) float64
func (*APLValueSpellGCDHastedDuration) String ¶ added in v0.0.85
func (value *APLValueSpellGCDHastedDuration) String() string
func (*APLValueSpellGCDHastedDuration) Type ¶ added in v0.0.85
func (value *APLValueSpellGCDHastedDuration) Type() proto.APLValueType
type APLValueSpellInFlight ¶ added in v0.0.102
type APLValueSpellInFlight struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
Spell In Flight
func (*APLValueSpellInFlight) GetBool ¶ added in v0.0.102
func (value *APLValueSpellInFlight) GetBool(sim *Simulation) bool
func (*APLValueSpellInFlight) String ¶ added in v0.0.102
func (value *APLValueSpellInFlight) String() string
func (*APLValueSpellInFlight) Type ¶ added in v0.0.102
func (value *APLValueSpellInFlight) Type() proto.APLValueType
type APLValueSpellIsCasting ¶ added in v0.0.173
type APLValueSpellIsCasting struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellIsCasting) GetBool ¶ added in v0.0.173
func (action *APLValueSpellIsCasting) GetBool(sim *Simulation) bool
func (*APLValueSpellIsCasting) String ¶ added in v0.0.173
func (action *APLValueSpellIsCasting) String() string
func (*APLValueSpellIsCasting) Type ¶ added in v0.0.173
func (action *APLValueSpellIsCasting) Type() proto.APLValueType
type APLValueSpellIsChanneling ¶
type APLValueSpellIsChanneling struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellIsChanneling) GetBool ¶
func (value *APLValueSpellIsChanneling) GetBool(_ *Simulation) bool
func (*APLValueSpellIsChanneling) String ¶
func (value *APLValueSpellIsChanneling) String() string
func (*APLValueSpellIsChanneling) Type ¶
func (value *APLValueSpellIsChanneling) Type() proto.APLValueType
type APLValueSpellIsKnown ¶
type APLValueSpellIsKnown struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellIsKnown) GetBool ¶
func (value *APLValueSpellIsKnown) GetBool(sim *Simulation) bool
func (*APLValueSpellIsKnown) String ¶
func (value *APLValueSpellIsKnown) String() string
func (*APLValueSpellIsKnown) Type ¶
func (value *APLValueSpellIsKnown) Type() proto.APLValueType
type APLValueSpellIsReady ¶
type APLValueSpellIsReady struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellIsReady) GetBool ¶
func (value *APLValueSpellIsReady) GetBool(sim *Simulation) bool
func (*APLValueSpellIsReady) String ¶
func (value *APLValueSpellIsReady) String() string
func (*APLValueSpellIsReady) Type ¶
func (value *APLValueSpellIsReady) Type() proto.APLValueType
type APLValueSpellNumCharges ¶
type APLValueSpellNumCharges struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
Spell Charges
func (*APLValueSpellNumCharges) GetInt ¶
func (value *APLValueSpellNumCharges) GetInt(_ *Simulation) int32
func (*APLValueSpellNumCharges) String ¶
func (value *APLValueSpellNumCharges) String() string
func (*APLValueSpellNumCharges) Type ¶
func (value *APLValueSpellNumCharges) Type() proto.APLValueType
type APLValueSpellTimeToCharge ¶
type APLValueSpellTimeToCharge struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellTimeToCharge) GetDuration ¶
func (value *APLValueSpellTimeToCharge) GetDuration(sim *Simulation) time.Duration
func (*APLValueSpellTimeToCharge) GetFloat ¶
func (value *APLValueSpellTimeToCharge) GetFloat(sim *Simulation) float64
func (*APLValueSpellTimeToCharge) String ¶
func (value *APLValueSpellTimeToCharge) String() string
func (*APLValueSpellTimeToCharge) Type ¶
func (value *APLValueSpellTimeToCharge) Type() proto.APLValueType
type APLValueSpellTimeToReady ¶
type APLValueSpellTimeToReady struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellTimeToReady) GetDuration ¶
func (value *APLValueSpellTimeToReady) GetDuration(sim *Simulation) time.Duration
func (*APLValueSpellTimeToReady) GetFloat ¶
func (value *APLValueSpellTimeToReady) GetFloat(sim *Simulation) float64
func (*APLValueSpellTimeToReady) String ¶
func (value *APLValueSpellTimeToReady) String() string
func (*APLValueSpellTimeToReady) Type ¶
func (value *APLValueSpellTimeToReady) Type() proto.APLValueType
type APLValueSpellTravelTime ¶
type APLValueSpellTravelTime struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueSpellTravelTime) GetDuration ¶
func (value *APLValueSpellTravelTime) GetDuration(_ *Simulation) time.Duration
func (*APLValueSpellTravelTime) String ¶
func (value *APLValueSpellTravelTime) String() string
func (*APLValueSpellTravelTime) Type ¶
func (value *APLValueSpellTravelTime) Type() proto.APLValueType
type APLValueUnitDistance ¶ added in v0.0.12
type APLValueUnitDistance struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueUnitDistance) GetFloat ¶ added in v0.0.12
func (value *APLValueUnitDistance) GetFloat(sim *Simulation) float64
func (*APLValueUnitDistance) String ¶ added in v0.0.12
func (value *APLValueUnitDistance) String() string
func (*APLValueUnitDistance) Type ¶ added in v0.0.12
func (value *APLValueUnitDistance) Type() proto.APLValueType
type APLValueUnitIsMoving ¶
type APLValueUnitIsMoving struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueUnitIsMoving) GetBool ¶
func (value *APLValueUnitIsMoving) GetBool(sim *Simulation) bool
func (*APLValueUnitIsMoving) String ¶
func (value *APLValueUnitIsMoving) String() string
func (*APLValueUnitIsMoving) Type ¶
func (value *APLValueUnitIsMoving) Type() proto.APLValueType
type APLValueVariable ¶ added in v0.0.79
type APLValueVariable struct {
// contains filtered or unexported fields
}
type APLValueVariablePlaceholder ¶ added in v0.0.79
type APLValueVariablePlaceholder struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
Variable Placeholder value for group APLs
func (*APLValueVariablePlaceholder) GetBool ¶ added in v0.0.79
func (v *APLValueVariablePlaceholder) GetBool(sim *Simulation) bool
func (*APLValueVariablePlaceholder) GetDuration ¶ added in v0.0.79
func (v *APLValueVariablePlaceholder) GetDuration(sim *Simulation) time.Duration
func (*APLValueVariablePlaceholder) GetFloat ¶ added in v0.0.79
func (v *APLValueVariablePlaceholder) GetFloat(sim *Simulation) float64
func (*APLValueVariablePlaceholder) GetInnerValues ¶ added in v0.0.79
func (v *APLValueVariablePlaceholder) GetInnerValues() []APLValue
func (*APLValueVariablePlaceholder) GetInt ¶ added in v0.0.79
func (v *APLValueVariablePlaceholder) GetInt(sim *Simulation) int32
func (*APLValueVariablePlaceholder) GetString ¶ added in v0.0.79
func (v *APLValueVariablePlaceholder) GetString(sim *Simulation) string
func (*APLValueVariablePlaceholder) String ¶ added in v0.0.79
func (v *APLValueVariablePlaceholder) String() string
func (*APLValueVariablePlaceholder) Type ¶ added in v0.0.79
func (v *APLValueVariablePlaceholder) Type() proto.APLValueType
type APLValueVariableRef ¶ added in v0.0.79
type APLValueVariableRef struct {
DefaultAPLValueImpl
// contains filtered or unexported fields
}
func (*APLValueVariableRef) GetBool ¶ added in v0.0.79
func (v *APLValueVariableRef) GetBool(sim *Simulation) bool
func (*APLValueVariableRef) GetDuration ¶ added in v0.0.79
func (v *APLValueVariableRef) GetDuration(sim *Simulation) time.Duration
func (*APLValueVariableRef) GetFloat ¶ added in v0.0.79
func (v *APLValueVariableRef) GetFloat(sim *Simulation) float64
func (*APLValueVariableRef) GetInnerValues ¶ added in v0.0.79
func (v *APLValueVariableRef) GetInnerValues() []APLValue
func (*APLValueVariableRef) GetInt ¶ added in v0.0.79
func (v *APLValueVariableRef) GetInt(sim *Simulation) int32
func (*APLValueVariableRef) GetString ¶ added in v0.0.79
func (v *APLValueVariableRef) GetString(sim *Simulation) string
func (*APLValueVariableRef) String ¶ added in v0.0.79
func (v *APLValueVariableRef) String() string
func (*APLValueVariableRef) Type ¶ added in v0.0.79
func (v *APLValueVariableRef) Type() proto.APLValueType
type AbsorptionAuraConfig ¶
type AbsorptionAuraConfig struct {
Aura Aura
DamageMultiplier float64
MaxAbsorbPerHit float64
ShieldStrengthCalculator ShieldStrengthCalculator
OnDamageAbsorbed OnDamageAbsorbedCallback
ShouldApplyToResult ShieldShouldApplyCondition
}
type ActionID ¶
type ActionID struct {
// Only one of these should be set.
SpellID int32
ItemID int32
OtherID proto.OtherAction
Tag int32
}
func ProtoToActionID ¶
func (ActionID) IsEmptyAction ¶
func (ActionID) IsItemAction ¶
func (ActionID) IsOtherAction ¶
func (actionID ActionID) IsOtherAction(otherID proto.OtherAction) bool
func (ActionID) IsSpellAction ¶
func (ActionID) SameAction ¶
func (ActionID) SameActionIgnoreTag ¶
type ActionMetrics ¶
type ActionMetrics struct {
IsMelee bool // True if melee action, false if spell action.
IsPassive bool // True if action is applied/cast as a result of another action
SpellSchool SpellSchool
// Metrics for this action, for each possible target.
Targets []TargetedActionMetrics
}
func (*ActionMetrics) ToProto ¶
func (actionMetrics *ActionMetrics) ToProto(actionID ActionID) *proto.ActionMetrics
type ActionPriority ¶
type ActionPriority int32
const ( ActionPriorityPrePull ActionPriority = -20 ActionPriorityGCD ActionPriority = 0 // Higher than GCD because regen can cause GCD actions (if we were waiting // for mana). ActionPriorityRegen ActionPriority = 1 // Autos can cause regen (JoW, rage, energy procs, etc) so they should be // higher prio so that we never go backwards in the priority order. ActionPriorityAuto ActionPriority = 2 // DOTs need to be higher than anything else so that dots can properly expire before we take other actions. ActionPriorityDOT ActionPriority = 3 ActionPriorityHigh ActionPriority = 10 )
type Agent ¶
type Agent interface {
// The Character controlled by this Agent.
GetCharacter() *Character
// Called once after all Players/Pets/Targets have finished the construction phase.
// Use this to register spells and any initialization steps that require
// other raid members or auras.
Initialize()
// Updates the input Buffs to include raid-wide buffs provided by this Agent.
AddRaidBuffs(raidBuffs *proto.RaidBuffs)
// Updates the input Buffs to include party-wide buffs provided by this Agent.
AddPartyBuffs(partyBuffs *proto.PartyBuffs)
// All talent stats / auras should be added within this callback. This makes sure
// talents are applied at the right time so we can calculate groups of stats.
ApplyTalents()
// Returns this Agent to its initial state. Called before each Sim iteration
// and once after the final iteration.
Reset(sim *Simulation)
// Called at the start of each encounter, after the pre-pull.
// Used for resetting resources, deactivating auras etc.
OnEncounterStart(sim *Simulation)
// Custom factories for APL values and actions, for cases where the value/action
// involves class or spec-specific behavior.
//
// Should return nil when the config doesn't match any custom behaviors.
NewAPLValue(rot *APLRotation, config *proto.APLValue) APLValue
NewAPLAction(rot *APLRotation, config *proto.APLAction) APLActionImpl
// Implements custom rotation behavior. Usually for pets and targets but can be used
// for players too.
ExecuteCustomRotation(sim *Simulation)
}
Agent can be thought of as the 'Player', i.e. the thing controlling the Character. This is the interface implemented by each class/spec.
type ApplyEffect ¶
type ApplyEffect func(Agent, proto.ItemLevelState)
Function for applying permanent effects to an Agent.
Passing Character instead of Agent would work for almost all cases, but there are occasionally class-specific item effects.
type ApplySetBonus ¶
type ApplySpellResults ¶
type ApplySpellResults func(sim *Simulation, target *Unit, spell *Spell)
type AttackTable ¶
type AttackTable struct {
Attacker *Unit
Defender *Unit
BaseMissChance float64
BaseSpellMissChance float64
BaseBlockChance float64
BaseDodgeChance float64
BaseParryChance float64
BaseGlanceChance float64
GlanceMultiplier float64
MeleeCritSuppression float64
SpellCritSuppression float64
DamageDealtMultiplier float64 // attacker buff, applied in applyAttackerModifiers()
DamageTakenMultiplier float64 // defender debuff, applied in applyTargetModifiers()
HealingDealtMultiplier float64
IgnoreArmor bool // Ignore defender's armor for specifically this attacker's attacks
ArmorIgnoreFactor float64 // Percentage of armor to ignore for this attacker's attacks
BonusSpellCritPercent float64 // Analagous to Defender.PseudoStats.BonusSpellCritPercentTaken, but only for this attacker specifically
RangedDamageTakenMultiplier float64
// This is for "Apply Aura: Mod Damage Done By Caster" effects.
// If set, the damage taken multiplier is multiplied by the callbacks result.
DamageDoneByCasterMultiplier DynamicDamageDoneByCaster
// When you need more then 1 active, default to using the above one
// Used with EnableDamageDoneByCaster/DisableDamageDoneByCaster
DamageDoneByCasterExtraMultiplier []DynamicDamageDoneByCaster
ThreatDoneByCasterExtraMultiplier []DynamicThreatDoneByCaster
}
Holds cached values for outcome/damage calculations, for a specific attacker+defender pair. These are updated dynamically when attacker or defender stats change.
func NewAttackTable ¶
func NewAttackTable(attacker *Unit, defender *Unit) *AttackTable
type Aura ¶
type Aura struct {
// String label for this Aura. Guaranteed to be unique among the Auras for a single Unit.
Label string
// For easily grouping auras.
Tag string
ActionID ActionID // If set, metrics will be tracked for this aura.
ActionIDForProc ActionID // If set, indicates that this aura is a trigger aura for the specified proc.
Icd *Cooldown // The internal cooldown if any
Dpm *DynamicProcManager // Dynamic Proc manager for proc trigger auras if any
Duration time.Duration // Duration of aura, upon being applied.
// The unit this aura is attached to.
Unit *Unit
MaxStacks int32
ExclusiveEffects []*ExclusiveEffect
// Lifecycle callbacks.
OnInit OnInit
OnReset OnReset
OnDoneIteration OnDoneIteration
OnGain OnGain
OnExpire OnExpire
OnStacksChange OnStacksChange // Invoked when the number of stacks of this aura changes.
OnApplyEffects OnApplyEffects // Invoked when a spell cast is completing, before apply effects are called
OnCastComplete OnCastComplete // Invoked when a spell cast completes casting, after apply effects.
OnSpellHitDealt OnSpellHit // Invoked when a spell hits and this unit is the caster.
OnSpellHitTaken OnSpellHit // Invoked when a spell hits and this unit is the target.
OnPeriodicDamageDealt OnPeriodicDamage // Invoked when a dot tick occurs and this unit is the caster.
OnPeriodicDamageTaken OnPeriodicDamage // Invoked when a dot tick occurs and this unit is the target.
OnHealDealt OnSpellHit // Invoked when a heal hits and this unit is the caster.
OnHealTaken OnSpellHit // Invoked when a heal hits and this unit is the target.
OnPeriodicHealDealt OnPeriodicDamage // Invoked when a hot tick occurs and this unit is the caster.
OnPeriodicHealTaken OnPeriodicDamage // Invoked when a hot tick occurs and this unit is the target.
OnEncounterStart OnEncounterStart // Invoked at the start of each encounter, after the pre-pull.
// If non-default, stat bonuses from the OnGain callback of this aura will be
// included in Character Stats in the UI.
BuildPhase CharacterBuildPhase
// contains filtered or unexported fields
}
Aura lifecycle:
myAura := unit.RegisterAura(myAuraConfig) myAura.Activate(sim) myAura.SetStacks(sim, 3) myAura.Refresh(sim) myAura.Deactivate(sim)
func AcidSpitAura ¶ added in v0.0.150
func ArcaneBrilliance ¶
func BattleShoutAura ¶
func BlessingOfKingsAura ¶
func BlessingOfMightAura ¶
func BlockPrepull ¶ added in v0.0.13
func BloodlustAura ¶
func BurningWrathAura ¶
func CacklingHowlAura ¶
func CommandingShoutAura ¶
func CurseOfElementsAura ¶
func CurseOfEnfeeblement ¶
func DarkIntentAura ¶
func DemoralizingRoar ¶ added in v0.0.150
func DemoralizingScreech ¶ added in v0.0.150
func ElementalOath ¶
func FuriousHowl ¶
func GraceOfAirAura ¶
func GuardianSpiritAura ¶
func HornOfWinterAura ¶
func LavaBreathAura ¶
func LeaderOfThePack ¶
func LegacyOfTheEmperorAura ¶
func LegacyOfTheWhiteTiger ¶
func LightningBreathDebuff ¶
func ManaTideTotemAura ¶
func MarkOfTheWildAura ¶
func MasterPoisonerDebuff ¶
func MindNumbingPoisonAura ¶
func MindQuickeningAura ¶
func MoonkinAura ¶
func MortalWoundsAura ¶
func NecroticStrikeAura ¶
Casting‐speed‐reduction sources
func PainSuppressionAura ¶
func PhysVulnerabilityAura ¶
+4% Physical damage taken
func QirajiFortitudeAura ¶
func RavageAura ¶ added in v0.0.150
func RoarOfCourageAura ¶
func SerpentsSwiftnessAura ¶
func ShatteringThrowAura ¶
func SkullBannerAura ¶
func SpiritBeastBlessingAura ¶
func SporeCloud ¶
func StampedeAura ¶ added in v0.0.150
func StillWaterAura ¶
func StormLashAura ¶
Source: https://www.wowhead.com/mop-classic/spell=120668/stormlash-totem#comments
func SwiftbladesCunningAura ¶
func TerrifyingRoar ¶
func TricksOfTheTradeAura ¶
func TrueShotAura ¶
func UnholyAura ¶
func UnholyFrenzyAura ¶
func UnleashedRageAura ¶
func VigilanceAura ¶ added in v0.0.11
func (*Aura) Activate ¶
func (aura *Aura) Activate(sim *Simulation)
Adds a new aura to the simulation. If an aura with the same ID already exists it will be replaced with the new one.
func (*Aura) AddStack ¶
func (aura *Aura) AddStack(sim *Simulation)
func (*Aura) AddStacks ¶
func (aura *Aura) AddStacks(sim *Simulation, stacks int32)
func (*Aura) ApplyOnEncounterStart ¶ added in v0.0.13
func (aura *Aura) ApplyOnEncounterStart(newOnEncounterStart OnEncounterStart) *Aura
func (*Aura) ApplyOnExpire ¶
Adds a handler to be called OnExpire, in addition to any current handlers.
func (*Aura) ApplyOnGain ¶
Adds a handler to be called OnGain, in addition to any current handlers.
func (*Aura) ApplyOnInit ¶
Adds a handler to be called OnInit, in addition to any current handlers. We then return the Aura for chaining
func (*Aura) ApplyOnReset ¶
Adds a handler to be called OnReset, in addition to any current handlers.
func (*Aura) ApplyOnStacksChange ¶
func (aura *Aura) ApplyOnStacksChange(newOnStacksChange OnStacksChange) *Aura
Adds a handler to be called OnStacksChange, in addition to any current handlers. We then return the Aura for chaining
func (*Aura) AttachAdditivePseudoStatBuff ¶
Attaches an additive PseudoStat buff to a parent Aura Returns parent aura for chaining
func (*Aura) AttachDDBC ¶
func (parentAura *Aura) AttachDDBC(index int, maxIndex int, attackTables *[]*AttackTable, handler DynamicDamageDoneByCaster) *Aura
Attaches a Damage Done By Caster buff to a parent Aura Returns parent aura for chaining
func (*Aura) AttachDependentAura ¶
func (*Aura) AttachMultiplicativePseudoStatBuff ¶
func (parentAura *Aura) AttachMultiplicativePseudoStatBuff(fieldPointer *float64, multiplier float64) *Aura
Attaches a multiplicative PseudoStat buff to a parent Aura Returns parent aura for chaining
func (*Aura) AttachMultiplyAttackSpeed ¶ added in v0.0.19
func (*Aura) AttachMultiplyCastSpeed ¶
func (*Aura) AttachMultiplyMeleeSpeed ¶
func (*Aura) AttachProcTrigger ¶
func (parentAura *Aura) AttachProcTrigger(config ProcTrigger) *Aura
Attaches a ProcTrigger to a parent Aura Preffered use-case. For non standard use-cases see: MakeDependentProcTriggerAura Returns parent aura for chaining
func (*Aura) AttachProcTriggerCallback ¶ added in v0.0.125
func (procAura *Aura) AttachProcTriggerCallback(unit *Unit, config ProcTrigger)
func (*Aura) AttachSpellMod ¶
func (parentAura *Aura) AttachSpellMod(spellModConfig SpellModConfig) *Aura
Attaches a SpellMod to a parent Aura Returns parent aura for chaining
func (*Aura) AttachStatBuff ¶
Adds a Stat to a parent Aura Returns parent aura for chaining
func (*Aura) AttachStatDependency ¶
func (parentAura *Aura) AttachStatDependency(statDep *stats.StatDependency) *Aura
Attaches a StatDependency to a parent Aura Returns parent aura for chaining
func (*Aura) AttachStatsBuff ¶
Adds Stats to a parent Aura Returns parent aura for chaining
func (*Aura) ExposeToAPL ¶
Adds a spellID to the set bonus so it can be exposed to the APL
func (*Aura) MakeDependentProcTriggerAura ¶
func (parentAura *Aura) MakeDependentProcTriggerAura(unit *Unit, config ProcTrigger) *Aura
Creates a new ProcTriggerAura that is dependent on a parent Aura being active This should only be used if the dependent Aura is: 1. On the a different Unit than parent Aura is registered to (usually the Character) 2. You need to register multiple dependent Aura's for the same Unit
func (*Aura) NewActiveMovementSpeedEffect ¶ added in v0.0.82
func (aura *Aura) NewActiveMovementSpeedEffect(multiplier float64) *ExclusiveEffect
func (*Aura) NewExclusiveEffect ¶
func (aura *Aura) NewExclusiveEffect(categoryName string, singleAura bool, config ExclusiveEffect) *ExclusiveEffect
func (*Aura) NewPassiveMovementSpeedEffect ¶ added in v0.0.82
func (aura *Aura) NewPassiveMovementSpeedEffect(multiplier float64) *ExclusiveEffect
func (*Aura) Refresh ¶
func (aura *Aura) Refresh(sim *Simulation)
func (*Aura) RemainingDuration ¶
func (aura *Aura) RemainingDuration(sim *Simulation) time.Duration
func (*Aura) RemoveStack ¶
func (aura *Aura) RemoveStack(sim *Simulation)
func (*Aura) RemoveStacks ¶
func (aura *Aura) RemoveStacks(sim *Simulation, stacks int32)
func (*Aura) RestoreState ¶
func (aura *Aura) RestoreState(state AuraState, sim *Simulation)
func (*Aura) SaveState ¶
func (aura *Aura) SaveState(sim *Simulation) AuraState
func (*Aura) SetStacks ¶
func (aura *Aura) SetStacks(sim *Simulation, newStacks int32)
func (*Aura) ShouldRefreshExclusiveEffects ¶
func (aura *Aura) ShouldRefreshExclusiveEffects(sim *Simulation, refreshWindow time.Duration) bool
Returns if an aura should be refreshed, i.e. the aura is inactive/about to expire AND there are no other active effects of equal or greater strength.
func (*Aura) TimeActive ¶
func (aura *Aura) TimeActive(sim *Simulation) time.Duration
The amount of time this aura has been active.
func (*Aura) TimeInactive ¶
func (aura *Aura) TimeInactive(sim *Simulation) time.Duration
The amount of elapsed time since this aura was last active.
func (*Aura) UpdateExpires ¶
type AuraArray ¶
type AuraArray []*Aura
func RallyingCryAuraArray ¶ added in v0.0.33
func (AuraArray) ActivateAll ¶ added in v0.0.10
func (auras AuraArray) ActivateAll(sim *Simulation)
Activates all auras in the array on all enabled targets in the environment.
func (AuraArray) ActivateAllPlayers ¶ added in v0.0.33
func (auras AuraArray) ActivateAllPlayers(sim *Simulation)
Activates all auras in the array on all enabled player units in the environment.
func (AuraArray) ApplyOnExpire ¶ added in v0.0.10
func (AuraArray) DeactivateAll ¶ added in v0.0.67
func (auras AuraArray) DeactivateAll(sim *Simulation)
func (AuraArray) ToMap ¶
func (auras AuraArray) ToMap() LabeledAuraArrays
type AuraCallback ¶
type AuraCallback uint16
const ( CallbackEmpty AuraCallback = 0 CallbackOnSpellHitDealt AuraCallback = 1 << iota CallbackOnSpellHitTaken CallbackOnPeriodicDamageDealt CallbackOnHealDealt CallbackOnPeriodicHealDealt CallbackOnCastComplete CallbackOnApplyEffects CallbackLast )
func (AuraCallback) Matches ¶
func (c AuraCallback) Matches(other AuraCallback) bool
func (AuraCallback) String ¶
func (i AuraCallback) String() string
type AuraFactory ¶
type AuraFactory func(*Simulation) *Aura
type AuraMetrics ¶
type AuraMetrics struct {
ID ActionID
// Metrics for the current iteration.
Uptime time.Duration
Procs int32
// contains filtered or unexported fields
}
func (*AuraMetrics) ToProto ¶
func (auraMetrics *AuraMetrics) ToProto() *proto.AuraMetrics
type AuraReference ¶
type AuraReference struct {
// contains filtered or unexported fields
}
func NewAuraReference ¶
func NewAuraReference(sourceUnit UnitReference, auraId *proto.ActionID) AuraReference
func NewIcdAuraReference ¶
func NewIcdAuraReference(sourceUnit UnitReference, auraId *proto.ActionID) AuraReference
func (*AuraReference) Get ¶
func (ar *AuraReference) Get() *Aura
func (*AuraReference) String ¶
func (ar *AuraReference) String() string
type AutoAttackOptions ¶
type AutoAttackOptions struct {
MainHand Weapon
OffHand Weapon
Ranged Weapon
AutoSwingMelee bool // If true, core engine will handle calling SwingMelee() for you.
AutoSwingRanged bool // If true, core engine will handle calling SwingRanged() for you.
ReplaceMHSwing ReplaceMHSwing
ProcMask ProcMask // If set will replace the ProcMask for any weapon spells configured.
}
Options for initializing auto attacks.
type AutoAttacks ¶
type AutoAttacks struct {
AutoSwingMelee bool
AutoSwingRanged bool
RandomMeleeOffset bool
IsDualWielding bool
// contains filtered or unexported fields
}
func (*AutoAttacks) CancelAutoSwing ¶
func (aa *AutoAttacks) CancelAutoSwing(sim *Simulation)
Stops the auto swing action for the rest of the iteration. Used for pets after being disabled.
func (*AutoAttacks) CancelMeleeSwing ¶
func (aa *AutoAttacks) CancelMeleeSwing(sim *Simulation)
func (*AutoAttacks) CancelRangedSwing ¶
func (aa *AutoAttacks) CancelRangedSwing(sim *Simulation)
func (*AutoAttacks) DelayMeleeBy ¶
func (aa *AutoAttacks) DelayMeleeBy(sim *Simulation, delay time.Duration)
Delays all swing timers for the specified amount.
func (*AutoAttacks) DelayRangedUntil ¶
func (aa *AutoAttacks) DelayRangedUntil(sim *Simulation, readyAt time.Duration)
func (*AutoAttacks) DesyncOffHand ¶
func (aa *AutoAttacks) DesyncOffHand(sim *Simulation, readyAt time.Duration)
Desyncss the offhand swing
func (*AutoAttacks) EnableAutoSwing ¶
func (aa *AutoAttacks) EnableAutoSwing(sim *Simulation)
Re-enables the auto swing action for the iteration
func (*AutoAttacks) EnableMeleeSwing ¶
func (aa *AutoAttacks) EnableMeleeSwing(sim *Simulation)
func (*AutoAttacks) EnableRangedSwing ¶
func (aa *AutoAttacks) EnableRangedSwing(sim *Simulation, bypassPrepullCheck bool)
func (*AutoAttacks) MH ¶
func (aa *AutoAttacks) MH() *Weapon
func (*AutoAttacks) MHAuto ¶
func (aa *AutoAttacks) MHAuto() *Spell
func (*AutoAttacks) MHConfig ¶
func (aa *AutoAttacks) MHConfig() *SpellConfig
func (*AutoAttacks) MainhandSwingSpeed ¶
func (aa *AutoAttacks) MainhandSwingSpeed() time.Duration
The amount of time between two MH swings.
func (*AutoAttacks) MaybeReplaceMHSwing ¶
func (aa *AutoAttacks) MaybeReplaceMHSwing(sim *Simulation, mhSwingSpell *Spell) *Spell
Optionally replaces the given swing spell with an Agent-specified MH Swing replacer. This is for effects like Heroic Strike or Raptor Strike.
func (*AutoAttacks) NextAttackAt ¶
func (aa *AutoAttacks) NextAttackAt() time.Duration
Returns the time at which the next attack will occur.
func (*AutoAttacks) OH ¶
func (aa *AutoAttacks) OH() *Weapon
func (*AutoAttacks) OHAuto ¶
func (aa *AutoAttacks) OHAuto() *Spell
func (*AutoAttacks) OHConfig ¶
func (aa *AutoAttacks) OHConfig() *SpellConfig
func (*AutoAttacks) OffhandSwingAt ¶
func (aa *AutoAttacks) OffhandSwingAt() time.Duration
func (*AutoAttacks) OffhandSwingSpeed ¶
func (aa *AutoAttacks) OffhandSwingSpeed() time.Duration
The amount of time between two OH swings.
func (*AutoAttacks) PPMProc ¶
func (aa *AutoAttacks) PPMProc(sim *Simulation, ppm float64, procMask ProcMask, label string, spell *Spell) bool
Returns whether a PPM-based effect procced. Using NewPPMManager() is preferred; this function should only be used when the attacker is not known at initialization time.
func (*AutoAttacks) PauseMeleeBy ¶
func (aa *AutoAttacks) PauseMeleeBy(sim *Simulation, pauseTime time.Duration)
PauseMeleeBy will prevent any swing from completing for the specified time. This replicates a /stopattack and /startattack with a brief "pause" in the middle. It's possible that no swing time is lost if the pauseTime is less than the remaining swing time. Used by Rogue Gouge
func (*AutoAttacks) RandomizeMeleeTiming ¶
func (aa *AutoAttacks) RandomizeMeleeTiming(sim *Simulation)
Used to prevent artificial Haste breakpoints arising from APL evaluations after autos occurring at locally optimal timings.
func (*AutoAttacks) Ranged ¶
func (aa *AutoAttacks) Ranged() *Weapon
func (*AutoAttacks) RangedAuto ¶
func (aa *AutoAttacks) RangedAuto() *Spell
func (*AutoAttacks) RangedConfig ¶
func (aa *AutoAttacks) RangedConfig() *SpellConfig
func (*AutoAttacks) SetMH ¶
func (aa *AutoAttacks) SetMH(weapon Weapon)
func (*AutoAttacks) SetMHSpell ¶
func (aa *AutoAttacks) SetMHSpell(spell *Spell)
func (*AutoAttacks) SetOH ¶
func (aa *AutoAttacks) SetOH(weapon Weapon)
func (*AutoAttacks) SetOHSpell ¶
func (aa *AutoAttacks) SetOHSpell(spell *Spell)
func (*AutoAttacks) SetOffhandSwingAt ¶
func (aa *AutoAttacks) SetOffhandSwingAt(offhandSwingAt time.Duration)
func (*AutoAttacks) SetRanged ¶
func (aa *AutoAttacks) SetRanged(weapon Weapon)
func (*AutoAttacks) SetReplaceMHSwing ¶
func (aa *AutoAttacks) SetReplaceMHSwing(replaceSwing ReplaceMHSwing)
func (*AutoAttacks) SetReplaceOHSwing ¶
func (aa *AutoAttacks) SetReplaceOHSwing(replaceSwing ReplaceMHSwing)
func (*AutoAttacks) StopMeleeUntil ¶
func (aa *AutoAttacks) StopMeleeUntil(sim *Simulation, readyAt time.Duration)
StopMeleeUntil should be used whenever a non-melee spell is cast. It stops melee, then restarts it at end of cast, but with a reset swing timer (as if swings had just landed).
func (*AutoAttacks) StopRangedUntil ¶
func (aa *AutoAttacks) StopRangedUntil(sim *Simulation, readyAt time.Duration)
func (*AutoAttacks) UpdateSwingTimers ¶
func (aa *AutoAttacks) UpdateSwingTimers(sim *Simulation)
type BaseDamageCalculator ¶ added in v0.0.10
type BaseDamageCalculator func(*Simulation, *Spell) float64
type BuffConfig ¶
type BuffConfig struct {
Label string
ActionID ActionID
Stats []StatConfig
}
type BuffsCombo ¶
type BuffsCombo struct {
Label string
Raid *proto.RaidBuffs
Party *proto.PartyBuffs
Debuffs *proto.Debuffs
Player *proto.IndividualBuffs
Consumables *proto.ConsumesSpec
}
type CanCastCondition ¶
type CanCastCondition func(sim *Simulation, target *Unit) bool
type Cast ¶
type Cast struct {
// Amount of resource that will be consumed by this cast.
Cost float64
// The length of time the GCD will be on CD as a result of this cast.
GCD time.Duration
// The minimum length of time for the GCD. Can be left out to use the default of 1s
GCDMin time.Duration
// The amount of time between the call to spell.Cast() and when the spell
// effects are invoked.
CastTime time.Duration
// A dummy value to give 0gcd casts a non empty struct
NonEmpty bool
}
func (*Cast) EffectiveTime ¶
type CastConfig ¶
type CastConfig struct {
// Default cast values with all static effects applied.
DefaultCast Cast
// Dynamic modifications for each cast.
ModifyCast func(*Simulation, *Spell, *Cast)
// Ignores haste when calculating the GCD and cast time for this cast.
// Automatically set if GCD and cast times are all 0, e.g. for empty casts.
IgnoreHaste bool
CD Cooldown
CastTime func(spell *Spell) time.Duration
}
Input for constructing the CastSpell function for a spell.
type CastFunc ¶
type CastFunc func(*Simulation, *Unit)
type CastSuccessFunc ¶
type CastSuccessFunc func(*Simulation, *Unit) bool
type Character ¶
type Character struct {
Unit
Name string // Different from Label, needed for returned results.
Race proto.Race
Class proto.Class
Spec proto.Spec
// Current gear.
Equipment
// Stat buff auras associated with any proc effects in the Character's equippable items
ItemProcBuffs []*StatBuffAura
//Item Swap Handler
ItemSwap ItemSwap
// Consumables this Character will be using.
Consumables *proto.ConsumesSpec
// Used for effects like "Increased Armor Value from Items"
*EquipScalingManager
// Up reference to this Character's Party.
Party *Party
// This character's index within its party [0-4].
PartyIndex int
Pets []*Pet // cached in AddPet, for advance()
// contains filtered or unexported fields
}
Character is a data structure to hold all the shared values that all class logic shares. All players have stats, equipment, auras, etc
func (*Character) AddComboPoints ¶
func (eb *Character) AddComboPoints(sim *Simulation, pointsToAdd int32, target *Unit, metrics *ResourceMetrics)
func (*Character) AddDynamicEquipStats ¶
func (character *Character) AddDynamicEquipStats(sim *Simulation, equipStats stats.Stats)
func (*Character) AddEnergy ¶
func (eb *Character) AddEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Character) AddFocus ¶
func (fb *Character) AddFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Character) AddMajorCooldown ¶
func (mcdm *Character) AddMajorCooldown(mcd MajorCooldown)
Registers a major cooldown to the Character, which will be automatically used when available.
func (*Character) AddPartyBuffs ¶
func (character *Character) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
func (*Character) AddRage ¶
func (rb *Character) AddRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Character) AddRaidBuffs ¶
func (*Character) AddRunicPower ¶
func (rp *Character) AddRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Character) AddStatProcBuff ¶
func (*Character) AddUnscaledRunicPower ¶
func (rp *Character) AddUnscaledRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Character) Advance ¶
func (rp *Character) Advance(sim *Simulation, newTime time.Duration)
func (*Character) AllRunesSpent ¶
func (rp *Character) AllRunesSpent() bool
func (*Character) AnyDepletedRunes ¶
func (rp *Character) AnyDepletedRunes() bool
func (*Character) AnyRuneReadyAt ¶
func (rp *Character) AnyRuneReadyAt(sim *Simulation) time.Duration
func (*Character) AnySpentRuneReadyAt ¶
AnySpentRuneReadyAt returns the next time that a rune will regenerate. It will be NeverExpires if there is no rune pending regeneration.
func (*Character) ApplyArmorSpecializationEffect ¶
func (*Character) ApplyDynamicEquipScaling ¶
func (character *Character) ApplyDynamicEquipScaling(sim *Simulation, stat stats.Stat, multiplier float64)
func (*Character) ApplyEquipScaling ¶
func (*Character) BloodDeathRuneBothReadyAt ¶
func (*Character) BloodRuneReadyAt ¶
func (rp *Character) BloodRuneReadyAt(sim *Simulation) time.Duration
BloodRuneReadyAt returns the earliest time a (possibly death-converted) blood rune is ready.
func (*Character) CalcAndRollDamageRange ¶
func (char *Character) CalcAndRollDamageRange(sim *Simulation, coefficient float64, variance float64) float64
func (*Character) CalcScalingSpellDmg ¶
spellEffectCoefficient is the value in the "Coefficient" column of the SpellEffect DB2 table
func (*Character) CalculateMasteryPoints ¶
func (*Character) ComboPoints ¶
func (eb *Character) ComboPoints() int32
func (*Character) ConvertAndRegenBloodTapRune ¶ added in v0.0.1
func (rp *Character) ConvertAndRegenBloodTapRune(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics) bool
Blood tap prioritizes runes based on spec Blood prefers to regen B runes first, then the F/U rune with the highest CD if no blood runes are available. Frost prefers to regen U runes first, then the B/F rune with the highest CD if no other runes are available. Unholy prefers to regen a B/F rune with the highest CD first, then an U rune if no other runes are available.
func (*Character) ConvertAndRegenPlagueLeechRunes ¶ added in v0.0.1
func (rp *Character) ConvertAndRegenPlagueLeechRunes(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics)
Plague leech prioritizes runes based on spec Unholy prefers to regen a pair of B/F runes first, then U if no other runes are available. Blood and Frost prefers to regen a pair of F/U runes first, then B if no other runes are available.
func (*Character) ConvertFromDeath ¶
func (rp *Character) ConvertFromDeath(sim *Simulation, slot int8)
ConvertFromDeath reverts the rune to its original type.
func (*Character) ConvertToDeath ¶
func (rp *Character) ConvertToDeath(sim *Simulation, slot int8, revertAt time.Duration)
ConvertToDeath converts the given slot to death and sets up the reversion conditions
func (*Character) CouldHaveSetBonus ¶
func (*Character) CritMultiplier ¶
func (*Character) CurrentBloodOrDeathRunes ¶
func (rp *Character) CurrentBloodOrDeathRunes() int8
func (*Character) CurrentBloodRunes ¶
func (rp *Character) CurrentBloodRunes() int8
func (*Character) CurrentDeathRunes ¶
func (rp *Character) CurrentDeathRunes() int8
func (*Character) CurrentEnergy ¶
func (eb *Character) CurrentEnergy() float64
func (*Character) CurrentEnergyRegenMultiplier ¶
func (eb *Character) CurrentEnergyRegenMultiplier() float64
func (*Character) CurrentFocus ¶
func (fb *Character) CurrentFocus() float64
func (*Character) CurrentFrostOrDeathRunes ¶
func (rp *Character) CurrentFrostOrDeathRunes() int8
func (*Character) CurrentFrostRunes ¶
func (rp *Character) CurrentFrostRunes() int8
func (*Character) CurrentHealth ¶
func (hb *Character) CurrentHealth() float64
func (*Character) CurrentHealthPercent ¶
func (hb *Character) CurrentHealthPercent() float64
func (*Character) CurrentRage ¶
func (rb *Character) CurrentRage() float64
func (*Character) CurrentRunicPower ¶
func (rp *Character) CurrentRunicPower() float64
func (*Character) CurrentUnholyOrDeathRunes ¶
func (rp *Character) CurrentUnholyOrDeathRunes() int8
func (*Character) CurrentUnholyRunes ¶
func (rp *Character) CurrentUnholyRunes() int8
func (*Character) DeathRuneRegenAt ¶
DeathRuneRegenAt returns the time the given death rune will regen at. If the rune is not death or not spent it returns NeverExpires.
func (*Character) DeathRuneRevertAt ¶
DeathRuneRevertAt returns the next time that a death rune will revert. If there is no death rune that needs to revert it returns NeverExpires.
func (*Character) DeathRunesInFU ¶
func (rp *Character) DeathRunesInFU() int8
func (*Character) DebugString ¶
func (rp *Character) DebugString() string
func (*Character) DefaultCritMultiplier ¶
func (*Character) Died ¶
func (character *Character) Died(sim *Simulation)
func (*Character) EnableManaBar ¶
func (character *Character) EnableManaBar()
EnableManaBar will setup caster stat dependencies (int->mana and int->spellcrit) as well as enable the mana gain action to regenerate mana. It will then enable mana gain metrics for reporting.
func (*Character) EnableManaBarWithModifier ¶
func (*Character) EnableRunicPowerBar ¶
func (character *Character) EnableRunicPowerBar(runeCD time.Duration, onRuneChange OnRuneChange, onRunicPowerGain OnRunicPowerGain)
func (*Character) EndOOMEvent ¶
func (mb *Character) EndOOMEvent(sim *Simulation)
func (*Character) EnergyRegenPerSecond ¶
func (eb *Character) EnergyRegenPerSecond() float64
func (*Character) EquipStats ¶
func (*Character) FillPlayerStats ¶
func (character *Character) FillPlayerStats(playerStats *proto.PlayerStats)
func (*Character) FocusRegenPerSecond ¶
func (fb *Character) FocusRegenPerSecond() float64
func (*Character) FocusRegenPerTick ¶
func (fb *Character) FocusRegenPerTick() float64
func (*Character) FrostRuneReadyAt ¶
func (rp *Character) FrostRuneReadyAt(sim *Simulation) time.Duration
func (*Character) GainHealth ¶
func (hb *Character) GainHealth(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Character) GetActiveAuraWithTag ¶
func (*Character) GetActiveSetBonusNames ¶
Returns the names of all active set bonuses.
func (*Character) GetAuraByID ¶
func (*Character) GetAurasWithTag ¶
func (*Character) GetBaseStats ¶
func (*Character) GetConjuredCD ¶
func (*Character) GetDefensiveTrinketCD ¶
func (*Character) GetDynamicProcMaskForTypes ¶ added in v0.0.99
func (character *Character) GetDynamicProcMaskForTypes(weaponTypes ...proto.WeaponType) *ProcMask
func (*Character) GetDynamicProcMaskForTypesAndHand ¶ added in v0.0.99
func (character *Character) GetDynamicProcMaskForTypesAndHand(twohand bool, weaponTypes ...proto.WeaponType) *ProcMask
func (*Character) GetDynamicProcMaskForWeaponEffect ¶
func (*Character) GetDynamicProcMaskForWeaponEnchant ¶
func (*Character) GetIcdAuraByID ¶
func (*Character) GetInitialMajorCooldown ¶
func (mcdm *Character) GetInitialMajorCooldown(actionID ActionID) MajorCooldown
func (*Character) GetMHWeapon ¶
Returns the MH weapon if one is equipped, and null otherwise.
func (*Character) GetMajorCooldown ¶
func (mcdm *Character) GetMajorCooldown(actionID ActionID) *MajorCooldown
func (*Character) GetMajorCooldownIDs ¶
func (*Character) GetMajorCooldownIgnoreTag ¶
func (mcdm *Character) GetMajorCooldownIgnoreTag(actionID ActionID) *MajorCooldown
func (*Character) GetMajorCooldowns ¶
func (mcdm *Character) GetMajorCooldowns() []*MajorCooldown
Returns all MCDs.
func (*Character) GetMatchingItemProcAuras ¶
func (*Character) GetMatchingStatBuffCooldownAuras ¶ added in v0.0.33
func (mcdm *Character) GetMatchingStatBuffCooldownAuras(statTypesToMatch []stats.Stat) []*StatBuffAura
func (*Character) GetMatchingStatBuffSpells ¶
func (*Character) GetMetricsProto ¶
func (character *Character) GetMetricsProto() *proto.UnitMetrics
func (*Character) GetOHWeapon ¶
Returns the OH weapon if one is equipped, and null otherwise. Note that shields / Held-in-off-hand items are NOT counted as weapons in this function.
func (*Character) GetOffensiveTrinketCD ¶
func (*Character) GetOrInitSpellCategoryTimer ¶
Helper for timers keyed by spellCategoryID so that we can keep shared cooldowns for on use effects locked to these
func (*Character) GetParryRatingWithoutStrength ¶ added in v0.0.3
func (*Character) GetPotionCD ¶
func (*Character) GetPresimOptions ¶
func (character *Character) GetPresimOptions(playerConfig *proto.Player) *PresimOptions
func (*Character) GetProcMaskForTypes ¶
func (character *Character) GetProcMaskForTypes(weaponTypes ...proto.WeaponType) ProcMask
func (*Character) GetProcMaskForTypesAndHand ¶
func (character *Character) GetProcMaskForTypesAndHand(twohand bool, weaponTypes ...proto.WeaponType) ProcMask
func (*Character) GetProcMaskForWeaponSlot ¶
func (*Character) GetPseudoStatsProto ¶
func (*Character) GetRuneRegenMultiplier ¶
func (rp *Character) GetRuneRegenMultiplier() float64
func (*Character) HasActiveAura ¶
func (*Character) HasActiveAuraWithTag ¶
func (*Character) HasActiveAuraWithTagExcludingAura ¶
func (*Character) HasAlchStone ¶
func (*Character) HasAuraWithTag ¶
func (*Character) HasMHWeapon ¶
func (*Character) HasMetaGemEquipped ¶
func (*Character) HasOHWeapon ¶
func (*Character) HasProfession ¶
func (character *Character) HasProfession(prof proto.Profession) bool
func (*Character) HasRangedWeapon ¶
func (*Character) HasRingEquipped ¶
func (*Character) HasTrinketEquipped ¶
func (*Character) IsReset ¶
func (eb *Character) IsReset(sim *Simulation) bool
func (*Character) LeftBloodRuneReady ¶
func (rp *Character) LeftBloodRuneReady() bool
func (*Character) MaxComboPoints ¶
func (eb *Character) MaxComboPoints() int32
func (*Character) MaximumEnergy ¶
func (eb *Character) MaximumEnergy() float64
func (*Character) MaximumFocus ¶
func (fb *Character) MaximumFocus() float64
func (*Character) MaximumRage ¶
func (rb *Character) MaximumRage() float64
func (*Character) MaximumRunicPower ¶
func (rp *Character) MaximumRunicPower() float64
func (*Character) MeetsArmorSpecializationRequirement ¶
func (*Character) MultiplyAutoAttackRageGen ¶
func (rb *Character) MultiplyAutoAttackRageGen(multiplier float64)
Call this within the OnGain and OnExpire callbacks for Battle Stance, Raging Whirlwind, etc.
func (*Character) MultiplyEnergyRegenSpeed ¶
func (eb *Character) MultiplyEnergyRegenSpeed(sim *Simulation, multiplier float64)
func (*Character) MultiplyFocusRegenSpeed ¶
func (fb *Character) MultiplyFocusRegenSpeed(sim *Simulation, multiplier float64)
func (*Character) MultiplyRageGen ¶ added in v0.0.105
func (rb *Character) MultiplyRageGen(multiplier float64)
func (*Character) MultiplyRuneRegenSpeed ¶
func (rp *Character) MultiplyRuneRegenSpeed(sim *Simulation, multiplier float64)
func (*Character) MultiplyRunicRegen ¶
func (rp *Character) MultiplyRunicRegen(multiply float64)
func (*Character) NewBloodRuneMetrics ¶ added in v0.0.1
func (rp *Character) NewBloodRuneMetrics(action ActionID) *ResourceMetrics
func (*Character) NewDeathRuneMetrics ¶ added in v0.0.1
func (rp *Character) NewDeathRuneMetrics(action ActionID) *ResourceMetrics
func (*Character) NewDynamicLegacyProcForEnchant ¶
func (character *Character) NewDynamicLegacyProcForEnchant(effectID int32, ppm float64, fixedProcChance float64) *DynamicProcManager
Dynamic Proc Manager for dynamic ProcMasks on weapon enchants
func (*Character) NewDynamicLegacyProcForTempEnchant ¶ added in v0.0.66
func (character *Character) NewDynamicLegacyProcForTempEnchant(effectID int32, ppm float64, fixedProcChanceFn func(ProcMask) float64) *DynamicProcManager
Dynamic Proc Manager for dynamic ProcMasks on weapon temp enchants
func (*Character) NewDynamicLegacyProcForWeapon ¶
func (character *Character) NewDynamicLegacyProcForWeapon(itemID int32, ppm float64, fixedProcChance float64) *DynamicProcManager
Dynamic Proc Manager for dynamic ProcMasks on weapon effects
func (*Character) NewEquipScalingManager ¶
func (character *Character) NewEquipScalingManager() *EquipScalingManager
func (*Character) NewFixedProcChanceManager ¶
func (character *Character) NewFixedProcChanceManager(fixedProcChance float64, procMask ProcMask) *DynamicProcManager
Dynamic Proc Manager for static ProcMasks and no item swap callback
func (*Character) NewFrostRuneMetrics ¶ added in v0.0.1
func (rp *Character) NewFrostRuneMetrics(action ActionID) *ResourceMetrics
func (*Character) NewLegacyPPMManager ¶
func (character *Character) NewLegacyPPMManager(ppm float64, procMask ProcMask) *DynamicProcManager
PPMManager for static ProcMasks
func (*Character) NewRPPMProcManager ¶
func (character *Character) NewRPPMProcManager(effectID int32, isEnchant bool, isGem bool, procMask ProcMask, rppmConfig RPPMConfig) *DynamicProcManager
Creates a new RPPM proc manager for the given effectID. Will manage all equiped items that use the given effect ID and overwrite the given configuration's ilvl accordingly.
Example ¶
char.NewRPPMProcManager(
1234,
false,
false,
ProcMaskDirect,
RPPMConfig{PPM: 2}.
WithClassMod(-0.5, 255).
WithHasteMod(),
)
func (*Character) NewRunicPowerMetrics ¶ added in v0.0.1
func (rp *Character) NewRunicPowerMetrics(action ActionID) *ResourceMetrics
func (*Character) NewSetBonusRPPMProcManager ¶
func (character *Character) NewSetBonusRPPMProcManager(spellID int32, setBonusAura *Aura, procMask ProcMask, rppmConfig RPPMConfig) *DynamicProcManager
func (*Character) NewStaticLegacyPPMManager ¶
func (character *Character) NewStaticLegacyPPMManager(ppm float64, procMask ProcMask) *DynamicProcManager
PPMManager for static ProcMasks and no item swap callback
func (*Character) NewTemporaryStatBuffWithStacks ¶
func (character *Character) NewTemporaryStatBuffWithStacks(config TemporaryStatBuffWithStacksConfig) (*StatBuffAura, *Aura)
func (*Character) NewTemporaryStatsAura ¶
func (character *Character) NewTemporaryStatsAura(auraLabel string, actionID ActionID, tempStats stats.Stats, duration time.Duration) *StatBuffAura
Helper for the common case of making an aura that adds stats.
func (*Character) NewTemporaryStatsAuraWrapped ¶
func (character *Character) NewTemporaryStatsAuraWrapped(auraLabel string, actionID ActionID, buffs stats.Stats, duration time.Duration, modConfig func(*Aura)) *StatBuffAura
Alternative that allows modifying the Aura config.
func (*Character) NewUnholyRuneMetrics ¶ added in v0.0.1
func (rp *Character) NewUnholyRuneMetrics(action ActionID) *ResourceMetrics
func (*Character) NextBloodRuneReadyAt ¶
func (rp *Character) NextBloodRuneReadyAt(sim *Simulation) time.Duration
func (*Character) NextEnergyTickAt ¶
func (*Character) NextFocusTickAt ¶
func (*Character) NextFrostRuneReadyAt ¶
func (rp *Character) NextFrostRuneReadyAt(sim *Simulation) time.Duration
func (*Character) NextUnholyRuneReadyAt ¶
func (rp *Character) NextUnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Character) NormalFrostRuneReadyAt ¶
func (rp *Character) NormalFrostRuneReadyAt(sim *Simulation) time.Duration
NormalFrostRuneReadyAt returns the earliest time a non-death frost rune is ready.
func (*Character) NormalSpentBloodRuneReadyAt ¶
func (rp *Character) NormalSpentBloodRuneReadyAt(_ *Simulation) time.Duration
NormalSpentBloodRuneReadyAt returns the earliest time a spent non-death blood rune is ready.
func (*Character) NormalUnholyRuneReadyAt ¶
func (rp *Character) NormalUnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Character) NumActiveAurasWithTag ¶
func (*Character) OnApplyEffects ¶
func (at *Character) OnApplyEffects(sim *Simulation, target *Unit, spell *Spell)
Invokes the OnApplyEffects event for all tracked Auras.
func (*Character) OnCastComplete ¶
func (at *Character) OnCastComplete(sim *Simulation, spell *Spell)
Invokes the OnCastComplete event for all tracked Auras.
func (*Character) OnEncounterStart ¶ added in v0.0.13
func (at *Character) OnEncounterStart(sim *Simulation)
func (*Character) OnHealDealt ¶
func (at *Character) OnHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnHeal event for all tracked Auras.
func (*Character) OnHealTaken ¶
func (at *Character) OnHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Character) OnPeriodicDamageDealt ¶
func (at *Character) OnPeriodicDamageDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnPeriodicDamage
As a debuff when target is being hit by dot. As a buff when caster's dots are ticking.
func (*Character) OnPeriodicDamageTaken ¶
func (at *Character) OnPeriodicDamageTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Character) OnPeriodicHealDealt ¶
func (at *Character) OnPeriodicHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnPeriodicHeal
As a debuff when target is being hit by dot. As a buff when caster's dots are ticking.
func (*Character) OnPeriodicHealTaken ¶
func (at *Character) OnPeriodicHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Character) OnSpellHitDealt ¶
func (at *Character) OnSpellHitDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnSpellHit event for all tracked Auras.
func (*Character) OnSpellHitTaken ¶
func (at *Character) OnSpellHitTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Character) OptimalRuneCost ¶
func (*Character) RegenAllFrostAndUnholyRunesAsDeath ¶
func (rp *Character) RegenAllFrostAndUnholyRunesAsDeath(sim *Simulation, deathRuneMetrics *ResourceMetrics)
func (*Character) RegenAllRunes ¶
func (rp *Character) RegenAllRunes(sim *Simulation, metrics []*ResourceMetrics)
func (*Character) RegenRunicEmpowermentRune ¶ added in v0.0.1
func (rp *Character) RegenRunicEmpowermentRune(sim *Simulation, runeMetrics []*ResourceMetrics)
Runic Empowerment regens a randoom fully depleted rune
func (*Character) RegisterArmorSpecializationTracker ¶
func (*Character) RegisterItemSwapCallback ¶
func (character *Character) RegisterItemSwapCallback(slots []proto.ItemSlot, callback OnItemSwap)
func (*Character) RegisterPvPGloveMod ¶
func (character *Character) RegisterPvPGloveMod(itemIDs []int32, config SpellModConfig)
Adds a Spellmod to PVP GLoves
func (*Character) RegisterResetEffect ¶
func (at *Character) RegisterResetEffect(resetEffect ResetEffect)
Registers a callback to this Character which will be invoked on every Sim reset.
func (*Character) RegisterVengeance ¶
func (*Character) RemoveDynamicEquipScaling ¶
func (character *Character) RemoveDynamicEquipScaling(sim *Simulation, stat stats.Stat, multiplier float64)
func (*Character) RemoveEquipScaling ¶
func (*Character) RemoveHealth ¶
func (hb *Character) RemoveHealth(sim *Simulation, amount float64)
func (*Character) ResetComboPoints ¶ added in v0.0.13
func (eb *Character) ResetComboPoints(sim *Simulation, comboPointsToKeep int32)
func (*Character) ResetEnergyTick ¶
func (eb *Character) ResetEnergyTick(sim *Simulation)
Gives an immediate partial energy tick and restarts the tick timer.
func (*Character) ResetFocusTick ¶
func (fb *Character) ResetFocusTick(sim *Simulation)
Gives an immediate partial Focus tick and restarts the tick timer.
func (*Character) ResetRageBar ¶ added in v0.0.13
func (rb *Character) ResetRageBar(sim *Simulation, rageToKeep float64)
func (*Character) ResetRunicPowerBar ¶ added in v0.0.13
func (rp *Character) ResetRunicPowerBar(sim *Simulation, runicPowerToKeep float64)
func (*Character) RuneIsActive ¶
func (*Character) RuneIsDeath ¶
func (*Character) RuneReadyAt ¶
func (rp *Character) RuneReadyAt(sim *Simulation, slot int8) time.Duration
func (*Character) SetMaxComboPoints ¶
func (eb *Character) SetMaxComboPoints(maxComboPoints int32)
func (*Character) SetPermanentDeathRunes ¶
func (rp *Character) SetPermanentDeathRunes(permanentDeaths []int8)
func (*Character) SpendComboPoints ¶
func (eb *Character) SpendComboPoints(sim *Simulation, metrics *ResourceMetrics)
func (*Character) SpendEnergy ¶
func (eb *Character) SpendEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Character) SpendFocus ¶
func (fb *Character) SpendFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Character) SpendPartialComboPoints ¶
func (eb *Character) SpendPartialComboPoints(sim *Simulation, pointsToSpend int32, metrics *ResourceMetrics)
func (*Character) SpendRage ¶
func (rb *Character) SpendRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Character) SpendRuneReadyAt ¶
func (*Character) SpendRunicPower ¶
func (rp *Character) SpendRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Character) StartOOMEvent ¶
func (mb *Character) StartOOMEvent(sim *Simulation, requiredMana float64)
func (*Character) TimeToTargetEnergy ¶
func (*Character) TimeToTargetFocus ¶
func (*Character) UnholyRuneReadyAt ¶
func (rp *Character) UnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Character) UpdateMajorCooldowns ¶
func (mcdm *Character) UpdateMajorCooldowns()
This function should be called if the CD for a major cooldown changes outside of the TryActivate() call.
func (*Character) UpdateMaxEnergy ¶
func (eb *Character) UpdateMaxEnergy(sim *Simulation, bonusEnergy float64, metrics *ResourceMetrics)
Used for dynamic updates to maximum Energy, such as from the Druid Primal Madness talent
func (*Character) UpdateMaxHealth ¶
func (hb *Character) UpdateMaxHealth(sim *Simulation, bonusHealth float64, metrics *ResourceMetrics)
Used for dynamic updates to maximum health from "Last Stand" effects
func (*Character) WeaponFromMainHand ¶
Returns weapon stats using the main hand equipped weapon.
func (*Character) WeaponFromOffHand ¶
Returns weapon stats using the off-hand equipped weapon.
func (*Character) WeaponFromRanged ¶
Returns weapon stats using the ranged equipped weapon.
type CharacterBuildPhase ¶
type CharacterBuildPhase uint8
const ( CharacterBuildPhaseNone CharacterBuildPhase = 0 CharacterBuildPhaseBase CharacterBuildPhase = 1 << iota CharacterBuildPhaseGear CharacterBuildPhaseTalents CharacterBuildPhaseBuffs CharacterBuildPhaseConsumes )
func (CharacterBuildPhase) Matches ¶
func (cbp CharacterBuildPhase) Matches(other CharacterBuildPhase) bool
type CharacterIterationMetrics ¶
type CharacterIterationMetrics struct {
Died bool // Whether this unit died in the current iteration.
WentOOM bool // Whether the agent has hit OOM at least once in this iteration.
ManaSpent float64
ManaGained float64
OOMTime time.Duration // time spent not casting and waiting for regen.
FirstOOMTimestamp time.Duration // Timestamp at which unit first went OOM.
}
Metrics for the current iteration, for 1 agent. Keep this as a separate struct, so it's easy to clear.
type CharacterSuiteConfig ¶
type CharacterSuiteConfig struct {
Class proto.Class
Race proto.Race
Profession1 proto.Profession
Profession2 proto.Profession
GearSet GearSetCombo
SpecOptions SpecOptionsCombo
Talents string
Glyphs *proto.Glyphs
Rotation RotationCombo
Encounter EncounterCombo
ItemSwapSet ItemSwapSetCombo
StartingDistance float64
ReactionTimeMs int32
ChannelClipDelayMs int32
Consumables *proto.ConsumesSpec
IndividualBuffs *proto.IndividualBuffs
PartyBuffs *proto.PartyBuffs
RaidBuffs *proto.RaidBuffs
Debuffs *proto.Debuffs
Cooldowns *proto.Cooldowns
TargetDummies int32
Tanks []*proto.UnitReference
HealingModel *proto.HealingModel
IsHealer bool
IsTank bool
InFrontOfTarget bool
OtherRaces []proto.Race
OtherGearSets []GearSetCombo
OtherTalentSets []TalentsCombo
OtherSpecOptions []SpecOptionsCombo
OtherRotations []RotationCombo
OtherItemSwapSets []ItemSwapSetCombo
OtherStartingDistances []float64
ItemFilter ItemFilter
StatsToWeigh []proto.Stat
PseudoStatsToWeigh []proto.PseudoStat
EPReferenceStat proto.Stat
}
func GetTestBuildFromJSON ¶ added in v0.0.19
func GetTestBuildFromJSON(class proto.Class, dir string, file string, itemFilter ItemFilter, epReferenceStat *proto.Stat, statsToWeigh *[]proto.Stat) CharacterSuiteConfig
type CombinedTestGenerator ¶
type CombinedTestGenerator struct {
// contains filtered or unexported fields
}
func (*CombinedTestGenerator) GetTest ¶
func (generator *CombinedTestGenerator) GetTest(testIdx int) (string, *proto.ComputeStatsRequest, *proto.StatWeightsRequest, *proto.RaidSimRequest)
func (*CombinedTestGenerator) NumTests ¶
func (generator *CombinedTestGenerator) NumTests() int
type Consumable ¶
type Consumable struct {
Id int32
Type proto.ConsumableType
Stats stats.Stats
BuffsMainStat bool
Name string
BuffDuration time.Duration
CooldownDuration time.Duration
CategoryCooldownDuration time.Duration
EffectIds []int32
}
func ConsumableFromProto ¶
func ConsumableFromProto(consumable *proto.Consumable) Consumable
type Cooldown ¶
type Cooldown struct {
*Timer
// Default amount of time after activation before this CD can be used again.
// Note that some CDs won't use this, e.g. the GCD.
Duration time.Duration
}
func (*Cooldown) Use ¶
func (cd *Cooldown) Use(sim *Simulation)
Puts this CD on cooldown, using the default duration.
type CooldownActivation ¶
type CooldownActivation func(*Simulation, *Character)
Function for activating a cooldown. Returns whether the activation was successful.
type CooldownActivationCondition ¶
type CooldownActivationCondition func(*Simulation, *Character) bool
Condition for whether a cooldown can/should be activated. Returning false prevents the cooldown from being activated.
type CooldownType ¶
type CooldownType byte
const ( CooldownTypeUnknown CooldownType = 0 CooldownTypeMana CooldownType = 1 << iota CooldownTypeDPS CooldownTypeExplosive CooldownTypeSurvival )
func (CooldownType) Matches ¶
func (ct CooldownType) Matches(other CooldownType) bool
type CustomStatBuffProcCondition ¶
type CustomStatBuffProcCondition func(sim *Simulation, aura *Aura) bool
type DamageAbsorptionAura ¶
type DamageAbsorptionAura struct {
*Aura
ShieldStrength float64
OnDamageAbsorbed []OnDamageAbsorbedCallback
// contains filtered or unexported fields
}
func (*DamageAbsorptionAura) Activate ¶
func (aura *DamageAbsorptionAura) Activate(sim *Simulation)
func (*DamageAbsorptionAura) AttachOnDamageAbsorbed ¶
func (aura *DamageAbsorptionAura) AttachOnDamageAbsorbed(callback OnDamageAbsorbedCallback) *DamageAbsorptionAura
type DamageAbsorptionAuraArray ¶
type DamageAbsorptionAuraArray []*DamageAbsorptionAura
func (DamageAbsorptionAuraArray) FindLabel ¶
func (auras DamageAbsorptionAuraArray) FindLabel() string
func (DamageAbsorptionAuraArray) Get ¶
func (auras DamageAbsorptionAuraArray) Get(target *Unit) *DamageAbsorptionAura
func (DamageAbsorptionAuraArray) IsEmpty ¶
func (auras DamageAbsorptionAuraArray) IsEmpty() bool
type DefaultAPLValueImpl ¶
Provides empty implementations for the GetX() value interface functions.
func (DefaultAPLValueImpl) Finalize ¶
func (impl DefaultAPLValueImpl) Finalize(*APLRotation)
func (DefaultAPLValueImpl) GetBool ¶
func (impl DefaultAPLValueImpl) GetBool(sim *Simulation) bool
func (DefaultAPLValueImpl) GetDuration ¶
func (impl DefaultAPLValueImpl) GetDuration(sim *Simulation) time.Duration
func (DefaultAPLValueImpl) GetFloat ¶
func (impl DefaultAPLValueImpl) GetFloat(sim *Simulation) float64
func (DefaultAPLValueImpl) GetInnerValues ¶
func (impl DefaultAPLValueImpl) GetInnerValues() []APLValue
func (DefaultAPLValueImpl) GetInt ¶
func (impl DefaultAPLValueImpl) GetInt(sim *Simulation) int32
func (DefaultAPLValueImpl) GetString ¶
func (impl DefaultAPLValueImpl) GetString(sim *Simulation) string
type DefaultSecondaryResourceBarImpl ¶
type DefaultSecondaryResourceBarImpl struct {
// contains filtered or unexported fields
}
Default implementation of SecondaryResourceBar Use RegisterSecondaryResourceBar to intantiate the resource bar
func (*DefaultSecondaryResourceBarImpl) CanSpend ¶
func (bar *DefaultSecondaryResourceBarImpl) CanSpend(limit float64) bool
CanSpend implements SecondaryResourceBar.
func (*DefaultSecondaryResourceBarImpl) Gain ¶
func (bar *DefaultSecondaryResourceBarImpl) Gain(sim *Simulation, amount float64, action ActionID)
Gain implements SecondaryResourceBar.
func (*DefaultSecondaryResourceBarImpl) GetMetric ¶
func (bar *DefaultSecondaryResourceBarImpl) GetMetric(action ActionID) *ResourceMetrics
func (*DefaultSecondaryResourceBarImpl) Max ¶
func (bar *DefaultSecondaryResourceBarImpl) Max() float64
func (*DefaultSecondaryResourceBarImpl) RegisterOnGain ¶
func (bar *DefaultSecondaryResourceBarImpl) RegisterOnGain(callback OnGainCallback)
func (*DefaultSecondaryResourceBarImpl) RegisterOnSpend ¶
func (bar *DefaultSecondaryResourceBarImpl) RegisterOnSpend(callback OnSpendCallback)
func (*DefaultSecondaryResourceBarImpl) Reset ¶
func (bar *DefaultSecondaryResourceBarImpl) Reset(sim *Simulation)
Reset implements SecondaryResourceBar.
func (*DefaultSecondaryResourceBarImpl) ResetBarTo ¶ added in v0.0.13
func (bar *DefaultSecondaryResourceBarImpl) ResetBarTo(sim *Simulation, resourcesToKeep float64)
func (*DefaultSecondaryResourceBarImpl) Spend ¶
func (bar *DefaultSecondaryResourceBarImpl) Spend(sim *Simulation, amount float64, action ActionID)
Spend implements SecondaryResourceBar.
func (*DefaultSecondaryResourceBarImpl) SpendUpTo ¶
func (bar *DefaultSecondaryResourceBarImpl) SpendUpTo(sim *Simulation, limit float64, action ActionID) float64
SpendUpTo implements SecondaryResourceBar.
func (*DefaultSecondaryResourceBarImpl) Value ¶
func (bar *DefaultSecondaryResourceBarImpl) Value() float64
Value implements SecondaryResourceBar.
type DelayedActionOptions ¶
type DelayedActionOptions struct {
// When the action should be performed.
DoAt time.Duration
Priority ActionPriority
OnAction func(*Simulation)
CleanUp func(*Simulation)
}
type DiminishingReturnsConstants ¶
type DiminishingReturnsConstants struct {
// contains filtered or unexported fields
}
type DistributionMetrics ¶
type DistributionMetrics struct {
// Values for the current iteration. These are cleared after each iteration.
Total float64
// contains filtered or unexported fields
}
func NewDistributionMetrics ¶
func NewDistributionMetrics() DistributionMetrics
func (*DistributionMetrics) ToProto ¶
func (distMetrics *DistributionMetrics) ToProto() *proto.DistributionMetrics
type Dot ¶
type Dot struct {
Spell *Spell
*Aura // Embed Aura, so we can use IsActive/Refresh/etc directly.
BaseTickLength time.Duration // time between each tick
SnapshotBaseDamage float64
SnapshotCritChance float64
SnapshotAttackerMultiplier float64
BaseTickCount int32 // base tick count without haste applied
BaseDurationMultiplier float64 // Some effects extend the BaseDuration - i.E. 50% - the DoTs will be subject to normal DoT fitting for base duration extend
BonusCoefficient float64 // EffectBonusCoefficient in SpellEffect client DB table, "SP mod" on Wowhead (not necessarily shown there even if > 0)
PeriodicDamageMultiplier float64 // Multiplier for periodic damage on top of the spell's damage multiplier
// contains filtered or unexported fields
}
func (*Dot) AddTick ¶
func (dot *Dot) AddTick()
Adds a tick to the current active dot and extends it's duration
func (*Dot) Apply ¶
func (dot *Dot) Apply(sim *Simulation)
Snapshots and activates the Dot If the Dot is already active it's duration will be refreshed and the last tick from the previous application will be transfered to the new one
func (*Dot) ApplyRollover ¶
func (dot *Dot) ApplyRollover(sim *Simulation)
Rolls over and activates the Dot If the Dot is already active it's duration will be refreshed and the last tick from the previous application will be transfered to the new one
func (*Dot) BaseDuration ¶
func (*Dot) CalcAndDealPeriodicSnapshotDamage ¶
func (dot *Dot) CalcAndDealPeriodicSnapshotDamage(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
func (*Dot) CalcAndDealPeriodicSnapshotHealing ¶
func (dot *Dot) CalcAndDealPeriodicSnapshotHealing(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
func (*Dot) CalcSnapshotDamage ¶
func (dot *Dot) CalcSnapshotDamage(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
func (*Dot) CalcSnapshotHealing ¶
func (dot *Dot) CalcSnapshotHealing(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
func (*Dot) CalcTickPeriod ¶
Calculates the current tick period the dot would have based on the affects currently present
func (*Dot) CasterPeriodicHealingMultiplier ¶
func (*Dot) ChannelCanBeInterrupted ¶ added in v0.0.17
func (dot *Dot) ChannelCanBeInterrupted(sim *Simulation) bool
func (*Dot) CopyDotAndApply ¶
func (dot *Dot) CopyDotAndApply(sim *Simulation, originaldot *Dot)
Copy's the original DoT's period and duration to the current DoT. This is only currently used for Mage's Impact DoT spreading and Enhancement's ImprovedLava Lash.
func (*Dot) DurationExtend ¶ added in v0.0.107
func (dot *Dot) DurationExtend(sim *Simulation, extendBy time.Duration)
This is the incredibly cursed way of extending DoT durations (for Moonfire / Sunfire / SWP (T15 2P) / VT (T15 2P)) Don't use unless you know what you're doing It extends the duration, immediately recalculates the next tick and then fits as many ticks into the rest of the aura duration as it can. This will cause aura duration and dot ticks to desync ingame, so the aura will fall off prematurely to what is shown.
Sometimes the game also decides to tick one last time anyway, even though the time since the last tick is absurdly low, though this isn't implemented until someone figures out the conditions.
func (*Dot) DurationExtendSnapshot ¶
func (dot *Dot) DurationExtendSnapshot(sim *Simulation, extendBy time.Duration)
func (*Dot) ExpectedTickCount ¶
func (*Dot) HastedTickCount ¶
Returns the total amount of ticks with the snapshotted haste
func (*Dot) NextTickAt ¶
func (*Dot) OutcomeExpectedSnapshotCrit ¶ added in v0.0.6
func (dot *Dot) OutcomeExpectedSnapshotCrit(_ *Simulation, result *SpellResult, _ *AttackTable)
func (*Dot) OutcomeMagicHitAndSnapshotCrit ¶
func (dot *Dot) OutcomeMagicHitAndSnapshotCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Dot) OutcomeRangedHitAndCritSnapshot ¶
func (dot *Dot) OutcomeRangedHitAndCritSnapshot(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Dot) OutcomeRangedHitAndCritSnapshotNoHitCounter ¶
func (dot *Dot) OutcomeRangedHitAndCritSnapshotNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Dot) OutcomeSnapshotCrit ¶
func (dot *Dot) OutcomeSnapshotCrit(sim *Simulation, result *SpellResult, _ *AttackTable)
func (*Dot) OutcomeTick ¶
func (dot *Dot) OutcomeTick(_ *Simulation, result *SpellResult, _ *AttackTable)
func (*Dot) OutcomeTickHealingCrit ¶
func (dot *Dot) OutcomeTickHealingCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Dot) OutcomeTickMagicCrit ¶
func (dot *Dot) OutcomeTickMagicCrit(sim *Simulation, result *SpellResult, _ *AttackTable)
func (*Dot) OutcomeTickMagicCritNoHitCounter ¶ added in v0.0.141
func (dot *Dot) OutcomeTickMagicCritNoHitCounter(sim *Simulation, result *SpellResult, _ *AttackTable)
func (*Dot) OutcomeTickMagicHitAndCrit ¶
func (dot *Dot) OutcomeTickMagicHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Dot) OutcomeTickPhysicalCrit ¶
func (dot *Dot) OutcomeTickPhysicalCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Dot) OutcomeTickPhysicalHitAndCrit ¶
func (dot *Dot) OutcomeTickPhysicalHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Dot) OutstandingDmg ¶
func (*Dot) RemainingTicks ¶
func (*Dot) RestoreState ¶
func (dot *Dot) RestoreState(state DotState, sim *Simulation)
func (*Dot) SaveState ¶
func (dot *Dot) SaveState(sim *Simulation) DotState
func (*Dot) SnapshotHeal ¶
func (*Dot) SnapshotPhysical ¶
func (*Dot) TakeSnapshot ¶
func (dot *Dot) TakeSnapshot(sim *Simulation, doRollover bool)
Takes a new snapshot of this Dot's effects.
In most cases this will be called automatically, and should only be called to force a new snapshot to be taken.
doRollover will apply previously snapshotted crit/%dmg instead of recalculating.
func (*Dot) TickOnce ¶
func (dot *Dot) TickOnce(sim *Simulation)
Forces an instant tick. Does not reset the tick timer or aura duration, the tick is simply an extra tick.
func (*Dot) TickPeriod ¶
TickPeriod is how fast the snapshotted dot ticks.
func (*Dot) TimeUntilNextTick ¶
func (dot *Dot) TimeUntilNextTick(sim *Simulation) time.Duration
type DotConfig ¶
type DotConfig struct {
// Optional, will default to the corresponding spell.
Spell *Spell
OnSnapshot OnSnapshot
OnTick OnTick
Aura Aura
TickLength time.Duration // time between each tick
NumberOfTicks int32 // number of ticks over the whole duration
IsAOE bool // Set to true for AOE dots (Blizzard, Hurricane, Consecrate, etc)
SelfOnly bool // Set to true to only create the self-hot.
AffectedByCastSpeed bool // tick length are shortened based on casting speed
AffectedByRealHaste bool // tick length are shortened based on real haste (melee/ranged but not spell)
HasteReducesDuration bool // does not gain additional ticks after a certain haste threshold
BonusCoefficient float64 // EffectBonusCoefficient in SpellEffect client DB table, "SP mod" on Wowhead (not necessarily shown there even if > 0)
PeriodicDamageMultiplier float64 // Multiplier for periodic damage on top of the spell's damage multiplier
}
type DotReference ¶ added in v0.0.43
type DotReference struct {
// contains filtered or unexported fields
}
func (*DotReference) Get ¶ added in v0.0.43
func (ar *DotReference) Get() *Dot
func (*DotReference) String ¶ added in v0.0.43
func (ar *DotReference) String() string
type DynamicDamageDoneByCaster ¶
type DynamicDamageDoneByCaster func(sim *Simulation, spell *Spell, attackTable *AttackTable) float64
type DynamicDamageTakenModifier ¶
type DynamicDamageTakenModifier func(sim *Simulation, spell *Spell, result *SpellResult, isPeriodic bool)
type DynamicHealingTakenModifier ¶
type DynamicHealingTakenModifier func(sim *Simulation, spell *Spell, result *SpellResult)
type DynamicProc ¶
type DynamicProc interface {
Reset()
Chance(sim *Simulation) float64
Proc(sim *Simulation, label string) bool
}
func NewRPPMProc ¶
func NewRPPMProc(character *Character, config RPPMConfig) DynamicProc
Create a new RPPM Proc with the given ppm (usually from the ProcsPerMinute record)
type DynamicProcManager ¶
type DynamicProcManager struct {
// contains filtered or unexported fields
}
func (*DynamicProcManager) Chance ¶
func (dpm *DynamicProcManager) Chance(procMask ProcMask, sim *Simulation) float64
func (*DynamicProcManager) Proc ¶
func (dpm *DynamicProcManager) Proc(sim *Simulation, procMask ProcMask, label string) bool
Returns whether the effect procced.
func (*DynamicProcManager) Reset ¶
func (dpm *DynamicProcManager) Reset()
type DynamicThreatDoneByCaster ¶
type DynamicThreatDoneByCaster DynamicDamageDoneByCaster
type Enchant ¶
type Enchant struct {
EffectID int32 // Used by UI to apply effect to tooltip
Stats stats.Stats
EnchantEffect *proto.ItemEffect
Name string // Only needed for unit tests
Type proto.ItemType // Only needed for unit tests
}
func EnchantFromProto ¶
func EnchantFromProto(pData *proto.SimEnchant) Enchant
func GetEnchantByEffectID ¶
type Encounter ¶
type Encounter struct {
Duration time.Duration
DurationVariation time.Duration
AllTargets []*Target
ActiveTargets []*Target
AllTargetUnits []*Unit
ActiveTargetUnits []*Unit
ExecuteProportion_20 float64
ExecuteProportion_25 float64
ExecuteProportion_35 float64
ExecuteProportion_45 float64
ExecuteProportion_90 float64
EndFightAtHealth float64
// DamageTaken is used to track health fights instead of duration fights.
// Once primary target has taken its health worth of damage, fight ends.
DamageTaken float64
// In health fight: set to true until we get something to base on
DurationIsEstimate bool
// contains filtered or unexported fields
}
func NewEncounter ¶
func (*Encounter) AOECapMultiplier ¶
func (*Encounter) GetMetricsProto ¶
func (encounter *Encounter) GetMetricsProto() *proto.EncounterMetrics
type EncounterCombo ¶
func MakeDefaultEncounterCombos ¶
func MakeDefaultEncounterCombos() []EncounterCombo
type EnergyBarOptions ¶
type EnergyCost ¶
type EnergyCost struct {
Refund float64
RefundMetrics *ResourceMetrics
ResourceMetrics *ResourceMetrics
ComboPointMetrics *ResourceMetrics
}
func (*EnergyCost) CostFailureReason ¶
func (ec *EnergyCost) CostFailureReason(_ *Simulation, spell *Spell) string
func (*EnergyCost) IssueRefund ¶
func (ec *EnergyCost) IssueRefund(sim *Simulation, spell *Spell)
func (*EnergyCost) MeetsRequirement ¶
func (ec *EnergyCost) MeetsRequirement(_ *Simulation, spell *Spell) bool
func (*EnergyCost) SpendCost ¶
func (ec *EnergyCost) SpendCost(sim *Simulation, spell *Spell)
type EnergyCostOptions ¶
type EnergyCostOptions struct {
Cost int32
Refund float64
RefundMetrics *ResourceMetrics // Optional, will default to unit.EnergyRefundMetrics if not supplied.
}
type Environment ¶
type Environment struct {
State EnvironmentState
// Whether stats are currently being measured. Used to disable some validation
// checks which are otherwise helpful.
MeasuringStats bool
Raid *Raid
Encounter Encounter
AllUnits []*Unit
BaseDuration time.Duration // base duration
DurationVariation time.Duration // variation per duration
// Whether the current environment is simulating a Challenge Mode fight
IsChallengeMode bool
// contains filtered or unexported fields
}
func NewEnvironment ¶
func NewEnvironment(raidProto *proto.Raid, encounterProto *proto.Encounter, runFakePrepull bool) (*Environment, *proto.RaidStats, *proto.EncounterStats)
func (*Environment) ActiveTargetCount ¶ added in v0.0.10
func (env *Environment) ActiveTargetCount() int32
func (*Environment) GetActiveTargetUnits ¶ added in v0.0.10
func (env *Environment) GetActiveTargetUnits() []*Unit
func (*Environment) GetAgentFromUnit ¶
func (env *Environment) GetAgentFromUnit(unit *Unit) Agent
func (*Environment) GetMaxDuration ¶
func (env *Environment) GetMaxDuration() time.Duration
The maximum possible duration for any iteration.
func (*Environment) GetTargetByIndex ¶ added in v0.0.10
func (env *Environment) GetTargetByIndex(index int32) *Target
func (*Environment) GetTargetUnitByIndex ¶ added in v0.0.10
func (env *Environment) GetTargetUnitByIndex(index int32) *Unit
func (*Environment) GetUnit ¶
func (env *Environment) GetUnit(ref *proto.UnitReference, contextUnit *Unit) *Unit
func (*Environment) IsFinalized ¶
func (env *Environment) IsFinalized() bool
func (*Environment) NextActiveTarget ¶ added in v0.0.10
func (env *Environment) NextActiveTarget(target *Unit) *Target
func (*Environment) NextActiveTargetUnit ¶ added in v0.0.10
func (env *Environment) NextActiveTargetUnit(target *Unit) *Unit
func (*Environment) PrepullStartTime ¶
func (env *Environment) PrepullStartTime(sim *Simulation) time.Duration
func (*Environment) PreviousActiveTarget ¶ added in v0.0.43
func (env *Environment) PreviousActiveTarget(target *Unit) *Target
func (*Environment) PreviousActiveTargetUnit ¶ added in v0.0.43
func (env *Environment) PreviousActiveTargetUnit(target *Unit) *Unit
func (*Environment) RegisterPostFinalizeEffect ¶
func (env *Environment) RegisterPostFinalizeEffect(postFinalizeEffect PostFinalizeEffect)
Registers a callback to this Character which will be invoked AFTER all Units are finalized.
func (*Environment) RegisterPreFinalizeEffect ¶
func (env *Environment) RegisterPreFinalizeEffect(preFinalizeEffect PostFinalizeEffect)
Registers a callback to this Character which will be invoked BEFORE all Units are finalized, but after they are all initialized and have other effects applied.
func (*Environment) TotalTargetCount ¶ added in v0.0.10
func (env *Environment) TotalTargetCount() int32
func (*Environment) TriggerDelayedPetInheritance ¶ added in v0.0.6
func (env *Environment) TriggerDelayedPetInheritance(sim *Simulation, dynamicPets []*Pet, inheritanceFunc func(*Simulation, *Pet))
type EnvironmentState ¶
type EnvironmentState int
const ( Created EnvironmentState = iota Constructed Initialized Finalized )
type EquipScalingManager ¶
type EquipScalingManager struct {
// contains filtered or unexported fields
}
type Equipment ¶
type Equipment [NumItemSlots]Item
func NewEquipmentSet ¶
func NewEquipmentSet(equipSpec EquipmentSpec) Equipment
func ProtoToEquipment ¶
func ProtoToEquipment(es *proto.EquipmentSpec) Equipment
func (*Equipment) EquipEnchant ¶
func (*Equipment) GetItemBySlot ¶
func (*Equipment) ToEquipmentSpecProto ¶
func (equipment *Equipment) ToEquipmentSpecProto() *proto.EquipmentSpec
type EquipmentSpec ¶
type EquipmentSpec [NumItemSlots]ItemSpec
Structs used for looking up items/gems/enchants
func ProtoToEquipmentSpec ¶
func ProtoToEquipmentSpec(es *proto.EquipmentSpec) EquipmentSpec
type ExclusiveCategory ¶
type ExclusiveCategory struct {
Name string
SingleAura bool // If true, only 1 aura in this category may be active at a time.
// contains filtered or unexported fields
}
func (*ExclusiveCategory) AnyActive ¶
func (ec *ExclusiveCategory) AnyActive() bool
func (*ExclusiveCategory) GetActiveAura ¶
func (ec *ExclusiveCategory) GetActiveAura() *Aura
func (*ExclusiveCategory) GetActiveEffect ¶
func (ec *ExclusiveCategory) GetActiveEffect() *ExclusiveEffect
func (*ExclusiveCategory) GetHighestPrioActiveEffect ¶
func (ec *ExclusiveCategory) GetHighestPrioActiveEffect() *ExclusiveEffect
func (*ExclusiveCategory) SetActive ¶
func (ec *ExclusiveCategory) SetActive(sim *Simulation, newActiveEffect *ExclusiveEffect)
type ExclusiveCategoryArray ¶
type ExclusiveCategoryArray []*ExclusiveCategory
func (ExclusiveCategoryArray) Get ¶
func (categories ExclusiveCategoryArray) Get(target *Unit) *ExclusiveCategory
type ExclusiveEffect ¶
type ExclusiveEffect struct {
Aura *Aura
Priority float64
OnGain func(*ExclusiveEffect, *Simulation)
OnExpire func(*ExclusiveEffect, *Simulation)
Category *ExclusiveCategory
// contains filtered or unexported fields
}
An Exclusive effect is one which may not be active at the same time as other effects in the same category. For example, the armor reduction effects from Sunder Armor and Expose Armor are exclusive with each other.
Within each ExclusiveCategory, the ExclusiveEffect with the highest Priority AND isEnabled == true is the one whose effect is applied.
func PhysDamageReductionEffect ¶
func PhysDamageReductionEffect(aura *Aura, dmgReduction float64) *ExclusiveEffect
func PhysDamageTakenEffect ¶
func PhysDamageTakenEffect(aura *Aura, multiplier float64) *ExclusiveEffect
func RegisterPercentDamageModifierEffect ¶
func RegisterPercentDamageModifierEffect(aura *Aura, percentDamageModifier float64) *ExclusiveEffect
func (*ExclusiveEffect) Activate ¶
func (ee *ExclusiveEffect) Activate(sim *Simulation) bool
Returns whether the effect is active.
func (*ExclusiveEffect) Deactivate ¶
func (ee *ExclusiveEffect) Deactivate(sim *Simulation)
func (*ExclusiveEffect) IsActive ¶
func (ee *ExclusiveEffect) IsActive() bool
func (*ExclusiveEffect) SetPriority ¶
func (ee *ExclusiveEffect) SetPriority(sim *Simulation, newPrio float64)
type ExclusiveEffectManager ¶
type ExclusiveEffectManager struct {
// contains filtered or unexported fields
}
func (*ExclusiveEffectManager) GetExclusiveEffectCategory ¶
func (eem *ExclusiveEffectManager) GetExclusiveEffectCategory(categoryName string) *ExclusiveCategory
Returns a category with the given name. Creates a new category if one doesn't already exist.
type ExpectedDamageCalculator ¶
type ExpectedDamageCalculator func(sim *Simulation, target *Unit, spell *Spell, useSnapshot bool) *SpellResult
type FocusCost ¶
type FocusCost struct {
Refund float64
RefundMetrics *ResourceMetrics
ResourceMetrics *ResourceMetrics
}
func (*FocusCost) CostFailureReason ¶
func (ec *FocusCost) CostFailureReason(_ *Simulation, spell *Spell) string
func (*FocusCost) IssueRefund ¶
func (ec *FocusCost) IssueRefund(sim *Simulation, spell *Spell)
func (*FocusCost) MeetsRequirement ¶
func (ec *FocusCost) MeetsRequirement(_ *Simulation, spell *Spell) bool
func (*FocusCost) SpendCost ¶
func (ec *FocusCost) SpendCost(sim *Simulation, spell *Spell)
type FocusCostOptions ¶
type FocusCostOptions struct {
Cost int32
Refund float64
RefundMetrics *ResourceMetrics // Optional, will default to unit.FocusRefundMetrics if not supplied.
}
type GearSetCombo ¶
type GearSetCombo struct {
Label string
GearSet *proto.EquipmentSpec
}
func GetGearSet ¶
func GetGearSet(dir string, file string) GearSetCombo
type Gem ¶
type Gem struct {
ID int32
Name string
Stats stats.Stats
Color proto.GemColor
DisabledInChallengeMode bool
}
func GemFromProto ¶
type GetAttackPowerValue ¶
type GetSpellPowerValue ¶
type GoRand ¶
func (GoRand) NextFloat64 ¶
type HitOutcome ¶
type HitOutcome uint16
Possible outcomes of any hit/damage roll.
const ( OutcomeEmpty HitOutcome = 0 // These bits are set by the hit roll OutcomeMiss HitOutcome = 1 << iota OutcomeHit OutcomeDodge OutcomeGlance OutcomeParry OutcomeBlock // These bits are set by the crit and damage rolls. OutcomeCrit OutcomeCrush )
Single-bit outcomes.
func (HitOutcome) Matches ¶
func (ho HitOutcome) Matches(other HitOutcome) bool
Returns whether there is any overlap between the given masks.
func (HitOutcome) String ¶
func (ho HitOutcome) String() string
type IndividualTestSuite ¶
type IndividualTestSuite struct {
Name string
// contains filtered or unexported fields
}
func NewIndividualTestSuite ¶
func NewIndividualTestSuite(suiteName string) *IndividualTestSuite
func (*IndividualTestSuite) Done ¶
func (testSuite *IndividualTestSuite) Done(t *testing.T)
func (*IndividualTestSuite) TestCasts ¶
func (testSuite *IndividualTestSuite) TestCasts(testName string, rsr *proto.RaidSimRequest)
func (*IndividualTestSuite) TestCharacterStats ¶
func (testSuite *IndividualTestSuite) TestCharacterStats(testName string, csr *proto.ComputeStatsRequest)
func (*IndividualTestSuite) TestDPS ¶
func (testSuite *IndividualTestSuite) TestDPS(testName string, rsr *proto.RaidSimRequest) *proto.RaidSimResult
func (*IndividualTestSuite) TestStatWeights ¶
func (testSuite *IndividualTestSuite) TestStatWeights(testName string, swr *proto.StatWeightsRequest)
type Item ¶
type Item struct {
ID int32
Type proto.ItemType
ArmorType proto.ArmorType
// Weapon Stats
WeaponType proto.WeaponType
HandType proto.HandType
RangedWeaponType proto.RangedWeaponType
WeaponDamageMin float64
WeaponDamageMax float64
SwingSpeed float64
Name string
Stats stats.Stats // Stats applied to wearer
Quality proto.ItemQuality
SetName string // Empty string if not part of a set.
SetID int32 // 0 if not part of a set.
GemSockets []proto.GemColor
SocketBonus stats.Stats
// Modified for each instance of the item.
RandomSuffix RandomSuffix
Gems []Gem
Enchant Enchant
Tinker Enchant
Reforging *ReforgeStat
//Internal use
TempEnchant int32
ScalingOptions map[int32]*proto.ScalingItemProperties
RandPropPoints int32
UpgradeStep proto.ItemLevelState
ItemEffect *proto.ItemEffect
ChallengeMode bool
}
func GetItemByID ¶
func ItemFromProto ¶
func (*Item) GetEffectiveScalingOptions ¶
func (item *Item) GetEffectiveScalingOptions() *proto.ScalingItemProperties
Returns the current scaling options for the item based on challenge mode and upgrade level
func (*Item) GetItemEffectRandomPropPoints ¶
func (item *Item) GetItemEffectRandomPropPoints(state proto.ItemLevelState) float64
func (*Item) GetScalingState ¶
func (item *Item) GetScalingState() proto.ItemLevelState
func (*Item) ToItemSpecProto ¶
type ItemEffectRandPropPoints ¶
func ItemEffectRandPropPointsFromProto ¶
func ItemEffectRandPropPointsFromProto(ieRpp *proto.ItemEffectRandPropPoints) ItemEffectRandPropPoints
ItemEffectRandPropPointsFromProto converts a protobuf ItemEffectRandPropPoints to a Go ItemEffectRandPropPoints
type ItemFilter ¶
type ItemFilter struct {
// If set to ClassUnknown, any class is fine.
Class proto.Class
ArmorType proto.ArmorType
// Empty lists allows any value. Otherwise, item must match a value from the list.
WeaponTypes []proto.WeaponType
HandTypes []proto.HandType
RangedWeaponTypes []proto.RangedWeaponType
// Item IDs to ignore.
IDBlacklist []int32
// Effect IDs to ignore.
EnchantBlacklist []int32
}
Returns all items that meet the given conditions.
func (*ItemFilter) FindAllEnchants ¶
func (filter *ItemFilter) FindAllEnchants() []Enchant
func (*ItemFilter) FindAllItems ¶
func (filter *ItemFilter) FindAllItems() []Item
func (*ItemFilter) FindAllMetaGems ¶
func (filter *ItemFilter) FindAllMetaGems() []Gem
func (*ItemFilter) FindAllSets ¶
func (filter *ItemFilter) FindAllSets() []*ItemSet
type ItemSet ¶
type ItemSet struct {
ID int32
Name string
AlternativeName string
DisabledInChallengeMode bool
// Maps set piece requirement to an ApplyEffect function that will be called
// before the Sim starts.
//
// The function should apply any benefits provided by the set bonus.
Bonuses map[int32]ApplySetBonus
// Optional field to override the DefaultItemSetSlots
// For Example: The set contains of 2 weapons
Slots []proto.ItemSlot
}
func NewItemSet ¶
Registers a new ItemSet with item IDs populated.
type ItemStringSpec ¶
Like ItemSpec, but uses names for reference instead of ID.
type ItemSwap ¶
type ItemSwap struct {
// contains filtered or unexported fields
}
func (*ItemSwap) AddTempEnchant ¶ added in v0.0.66
Used by shaman imbues because itemswap is setup before Imbue spells registers
func (*ItemSwap) CouldHaveItemEquippedInSlot ¶
func (*ItemSwap) EligibleSlotsForEffect ¶
func (*ItemSwap) EligibleSlotsForGem ¶ added in v0.0.72
func (*ItemSwap) EligibleSlotsForItem ¶
func (*ItemSwap) GetEquippedItemBySlot ¶
func (*ItemSwap) GetUnequippedItemBySlot ¶
func (*ItemSwap) IsValidSwap ¶
func (swap *ItemSwap) IsValidSwap(swapSet proto.APLActionItemSwap_SwapSet) bool
func (*ItemSwap) ProcessTinker ¶
Helper for handling Enchant On Use effects to set a 30s cd on the related spell.
func (*ItemSwap) RegisterActive ¶
Helper for handling Item On Use effects to set a 30s cd on the related spell.
func (*ItemSwap) RegisterEnchantProc ¶
Helper for handling Enchant Effects that use the effectID to toggle the aura on and off
func (*ItemSwap) RegisterEnchantProcWithSlots ¶
func (*ItemSwap) RegisterProc ¶
Helper for handling Item Effects that use the itemID to toggle the aura on and off This will also get the eligible slots for the item
func (*ItemSwap) RegisterProcWithSlots ¶
Helper for handling Item Effects that use the itemID to toggle the aura on and off
func (*ItemSwap) RegisterWeaponEnchantBuff ¶ added in v0.0.88
Helper for handling weapon enchant buffs that fall off when the weapon is swapped out.
func (*ItemSwap) SwapItems ¶
func (swap *ItemSwap) SwapItems(sim *Simulation, swapSet proto.APLActionItemSwap_SwapSet, isReset bool)
type ItemSwapProcConfig ¶
type ItemSwapSetCombo ¶
func GetItemSwapGearSet ¶
func GetItemSwapGearSet(dir string, file string) ItemSwapSetCombo
type ItemSwapStats ¶
type ItemSwapStats struct {
// contains filtered or unexported fields
}
type ItemsTestGenerator ¶
type ItemsTestGenerator struct {
// Fields describing the base API request.
Player *proto.Player
PartyBuffs *proto.PartyBuffs
RaidBuffs *proto.RaidBuffs
Debuffs *proto.Debuffs
Encounter *proto.Encounter
SimOptions *proto.SimOptions
IsHealer bool
IsTank bool
// Some fields are populated automatically.
ItemFilter ItemFilter
// contains filtered or unexported fields
}
func (*ItemsTestGenerator) GetTest ¶
func (generator *ItemsTestGenerator) GetTest(testIdx int) (string, *proto.ComputeStatsRequest, *proto.StatWeightsRequest, *proto.RaidSimRequest)
func (*ItemsTestGenerator) NumTests ¶
func (generator *ItemsTestGenerator) NumTests() int
type LabeledAuraArrays ¶
func (LabeledAuraArrays) AnyActive ¶
func (auraArrays LabeledAuraArrays) AnyActive(target *Unit) bool
func (LabeledAuraArrays) Append ¶
func (auraArrays LabeledAuraArrays) Append(auras AuraArray) LabeledAuraArrays
type MajorCooldown ¶
type MajorCooldown struct {
// Spell that is cast when this MCD is activated.
Spell *Spell
// Associated buff aura that is activated when the above spell is cast.
BuffAura *StatBuffAura
// Cooldowns with higher priority get used first. This is important when some
// cooldowns have a non-zero cast time. For example, Drums should be used
// before Bloodlust.
Priority int32
// Internal category, used for filtering. For example, mages want to disable
// all DPS cooldowns during their regen rotation.
Type CooldownType
// If False, the MCD will not be queued up before the GCD has fully expired.
// This is desirable for auto-chaining multiple MCDs just before a GCD ability.
AllowSpellQueueing bool
// Whether the cooldown meets all optional conditions for activation. These
// conditions will be ignored when the user specifies their own activation time.
// This is for things like mana thresholds, which are optimizations for better
// automatic timing.
ShouldActivate CooldownActivationCondition
// contains filtered or unexported fields
}
func (*MajorCooldown) Disable ¶
func (mcd *MajorCooldown) Disable()
func (*MajorCooldown) Enable ¶
func (mcd *MajorCooldown) Enable()
func (*MajorCooldown) GetTimings ¶
func (mcd *MajorCooldown) GetTimings() []time.Duration
func (*MajorCooldown) IsEnabled ¶
func (mcd *MajorCooldown) IsEnabled() bool
func (*MajorCooldown) IsReady ¶
func (mcd *MajorCooldown) IsReady(sim *Simulation) bool
func (*MajorCooldown) ReadyAt ¶
func (mcd *MajorCooldown) ReadyAt() time.Duration
func (*MajorCooldown) TimeToNextCast ¶
func (mcd *MajorCooldown) TimeToNextCast(sim *Simulation) time.Duration
Roughly how long until the next cast will happen, accounting for both spell CD and user-specified timings.
func (*MajorCooldown) TimeToReady ¶
func (mcd *MajorCooldown) TimeToReady(sim *Simulation) time.Duration
func (*MajorCooldown) TryActivate ¶
func (mcd *MajorCooldown) TryActivate(sim *Simulation, character *Character) bool
Public version of TryActivate for manual activation by Agent code. Note that this version will work even if the MCD is disabled.
type ManaCost ¶
type ManaCost struct {
ResourceMetrics *ResourceMetrics
}
func (*ManaCost) CostFailureReason ¶
func (mc *ManaCost) CostFailureReason(sim *Simulation, spell *Spell) string
func (*ManaCost) IssueRefund ¶
func (mc *ManaCost) IssueRefund(_ *Simulation, _ *Spell)
func (*ManaCost) MeetsRequirement ¶
func (mc *ManaCost) MeetsRequirement(sim *Simulation, spell *Spell) bool
func (*ManaCost) SpendCost ¶
func (mc *ManaCost) SpendCost(sim *Simulation, spell *Spell)
type ManaCostOptions ¶
type ManaCostOptions struct {
BaseCostPercent float64 // The cost of the spell as a percentage (0-100) of the unit's base mana.
FlatCost int32 // Alternative to BaseCostPercent for giving a flat value.
PercentModifier float64 // Will default to 1. PercentModifier stored as a float i.e. 40% reduction is (0.6 multiplier) to the base cost
}
type MeleeDamageCalculator ¶
type MovementAction ¶
type MovementAction struct {
PendingAction
// contains filtered or unexported fields
}
func (*MovementAction) GetCurrentPosition ¶
func (action *MovementAction) GetCurrentPosition(sim *Simulation) float64
type MovementCallback ¶
type MovementCallback func(sim *Simulation, position float64, kind MovementUpdateType)
type MovementUpdateType ¶
type MovementUpdateType byte
type OnApplyEffects ¶
type OnApplyEffects func(aura *Aura, sim *Simulation, target *Unit, spell *Spell)
type OnCastComplete ¶
type OnCastComplete func(aura *Aura, sim *Simulation, spell *Spell)
Callback for when a cast is finished, i.e. when the in-game castbar reaches full.
type OnDamageAbsorbedCallback ¶
type OnDamageAbsorbedCallback func(sim *Simulation, aura *DamageAbsorptionAura, result *SpellResult, absorbedDamage float64)
type OnDoneIteration ¶
type OnDoneIteration func(aura *Aura, sim *Simulation)
type OnEncounterStart ¶ added in v0.0.13
type OnEncounterStart func(aura *Aura, sim *Simulation)
type OnExpire ¶
type OnExpire func(aura *Aura, sim *Simulation)
type OnFocusGain ¶
type OnFocusGain func(*Simulation, float64)
type OnGain ¶
type OnGain func(aura *Aura, sim *Simulation)
type OnGainCallback ¶
type OnGainCallback func(sim *Simulation, gain float64, realGain float64, actionID ActionID)
type OnInit ¶
type OnInit func(aura *Aura, sim *Simulation)
type OnItemSwap ¶
type OnItemSwap func(*Simulation, proto.ItemSlot)
type OnMasteryStatChanged ¶
type OnMasteryStatChanged func(sim *Simulation, oldMasteryRating float64, newMasteryRating float64)
type OnPeriodicDamage ¶
type OnPeriodicDamage func(aura *Aura, sim *Simulation, spell *Spell, result *SpellResult)
OnPeriodicDamage is called when dots tick, after damage is calculated. Use it for proc effects or anything that comes from the final result of a tick.
type OnPetDisable ¶
type OnPetDisable func(sim *Simulation)
type OnPetEnable ¶
type OnPetEnable func(sim *Simulation)
type OnReset ¶
type OnReset func(aura *Aura, sim *Simulation)
type OnRuneChange ¶
type OnRuneChange func(sim *Simulation, changeType RuneChangeType, runeRegen []int8)
type OnRunicPowerGain ¶
type OnRunicPowerGain func(sim *Simulation)
type OnSnapshot ¶
type OnSnapshot func(sim *Simulation, target *Unit, dot *Dot, isRollover bool)
type OnSpeedChanged ¶
type OnSpellHit ¶
type OnSpellHit func(aura *Aura, sim *Simulation, spell *Spell, result *SpellResult)
Callback for after a spell hits the target and after damage is calculated. Use it for proc effects or anything that comes from the final result of the spell.
type OnSpendCallback ¶
type OnSpendCallback func(sim *Simulation, amount float64, actionID ActionID)
type OnStacksChange ¶
type OnStacksChange func(aura *Aura, sim *Simulation, oldStacks int32, newStacks int32)
type OnTemporaryStatsChange ¶
type OnTemporaryStatsChange func(sim *Simulation, buffAura *Aura, statsChangeWithoutDeps stats.Stats)
type OnTick ¶
type OnTick func(sim *Simulation, target *Unit, dot *Dot)
type OutcomeApplier ¶
type OutcomeApplier func(sim *Simulation, result *SpellResult, attackTable *AttackTable)
This function should do 3 things:
- Set the Outcome of the hit effect.
- Update spell outcome metrics.
- Modify the damage if necessary.
type Party ¶
type Party struct {
Raid *Raid
Index int
Players []Agent
Pets []PetAgent // Cached list of all the pets in the party.
PlayersAndPets []Agent // Cached list of players + pets, concatenated.
// contains filtered or unexported fields
}
func (*Party) GetMetrics ¶
func (party *Party) GetMetrics() *proto.PartyMetrics
func (*Party) GetPartyBuffs ¶
func (party *Party) GetPartyBuffs(basePartyBuffs *proto.PartyBuffs) *proto.PartyBuffs
type PendingAction ¶
type PendingAction struct {
NextActionAt time.Duration
Priority ActionPriority
// Action to perform (required).
OnAction func(sim *Simulation)
// Cleanup when the action is cancelled (optional).
CleanUp func(sim *Simulation)
// contains filtered or unexported fields
}
func NewDelayedAction ¶
func NewDelayedAction(options DelayedActionOptions) *PendingAction
Use this only when your code requires persistent access to the returned *PendingAction pointer. For "fire and forget" delayed actions, use sim.GetConsumedPendingActionFromPool() instead, so that the PendingAction struct will be re-used rather than re-allocated on each call.
func NewPeriodicAction ¶
func NewPeriodicAction(sim *Simulation, options PeriodicActionOptions) *PendingAction
func StartPeriodicAction ¶
func StartPeriodicAction(sim *Simulation, options PeriodicActionOptions) *PendingAction
Convenience for immediately creating and starting a periodic action.
func (*PendingAction) Cancel ¶
func (pa *PendingAction) Cancel(sim *Simulation)
func (*PendingAction) IsConsumed ¶
func (pa *PendingAction) IsConsumed() bool
type PeriodicActionOptions ¶
type PeriodicActionOptions struct {
// How often the action should be performed.
Period time.Duration
// Number of times to perform the action before stopping.
// 0 indicates a permanent periodic action.
NumTicks int
// Whether the first tick should happen immediately. If false, first tick will
// wait for Period.
TickImmediately bool
Priority ActionPriority
OnAction func(*Simulation)
CleanUp func(*Simulation)
}
type Pet ¶
type Pet struct {
Character
Owner *Character
OnPetEnable OnPetEnable
OnPetDisable OnPetDisable
// contains filtered or unexported fields
}
Pet is an extension of Character, for any entity created by a player that can take actions on its own.
func (*Pet) AddComboPoints ¶
func (eb *Pet) AddComboPoints(sim *Simulation, pointsToAdd int32, target *Unit, metrics *ResourceMetrics)
func (*Pet) AddEnergy ¶
func (eb *Pet) AddEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Pet) AddFocus ¶
func (fb *Pet) AddFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Pet) AddMajorCooldown ¶
func (mcdm *Pet) AddMajorCooldown(mcd MajorCooldown)
Registers a major cooldown to the Character, which will be automatically used when available.
func (*Pet) AddOwnerStats ¶ added in v0.0.6
func (pet *Pet) AddOwnerStats(sim *Simulation, addedStats stats.Stats)
Updates the stats for this pet in response to a stat change on the owner. addedStats is the amount of stats added to the owner (will be negative if the owner lost stats).
func (*Pet) AddPartyBuffs ¶
func (pet *Pet) AddPartyBuffs(_ *proto.PartyBuffs)
func (*Pet) AddRage ¶
func (rb *Pet) AddRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Pet) AddRaidBuffs ¶
func (*Pet) AddRunicPower ¶
func (rp *Pet) AddRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Pet) AddUnscaledRunicPower ¶
func (rp *Pet) AddUnscaledRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Pet) Advance ¶
func (rp *Pet) Advance(sim *Simulation, newTime time.Duration)
func (*Pet) AllRunesSpent ¶
func (rp *Pet) AllRunesSpent() bool
func (*Pet) AnyDepletedRunes ¶
func (rp *Pet) AnyDepletedRunes() bool
func (*Pet) AnyRuneReadyAt ¶
func (rp *Pet) AnyRuneReadyAt(sim *Simulation) time.Duration
func (*Pet) AnySpentRuneReadyAt ¶
AnySpentRuneReadyAt returns the next time that a rune will regenerate. It will be NeverExpires if there is no rune pending regeneration.
func (*Pet) ApplyTalents ¶
func (pet *Pet) ApplyTalents()
func (*Pet) BloodDeathRuneBothReadyAt ¶
func (*Pet) BloodRuneReadyAt ¶
func (rp *Pet) BloodRuneReadyAt(sim *Simulation) time.Duration
BloodRuneReadyAt returns the earliest time a (possibly death-converted) blood rune is ready.
func (*Pet) ChangeStatInheritance ¶
func (pet *Pet) ChangeStatInheritance(nonHitExpStatInheritance PetStatInheritance)
func (*Pet) ComboPoints ¶
func (eb *Pet) ComboPoints() int32
func (*Pet) ConvertAndRegenBloodTapRune ¶ added in v0.0.1
func (rp *Pet) ConvertAndRegenBloodTapRune(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics) bool
Blood tap prioritizes runes based on spec Blood prefers to regen B runes first, then the F/U rune with the highest CD if no blood runes are available. Frost prefers to regen U runes first, then the B/F rune with the highest CD if no other runes are available. Unholy prefers to regen a B/F rune with the highest CD first, then an U rune if no other runes are available.
func (*Pet) ConvertAndRegenPlagueLeechRunes ¶ added in v0.0.1
func (rp *Pet) ConvertAndRegenPlagueLeechRunes(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics)
Plague leech prioritizes runes based on spec Unholy prefers to regen a pair of B/F runes first, then U if no other runes are available. Blood and Frost prefers to regen a pair of F/U runes first, then B if no other runes are available.
func (*Pet) ConvertFromDeath ¶
func (rp *Pet) ConvertFromDeath(sim *Simulation, slot int8)
ConvertFromDeath reverts the rune to its original type.
func (*Pet) ConvertToDeath ¶
func (rp *Pet) ConvertToDeath(sim *Simulation, slot int8, revertAt time.Duration)
ConvertToDeath converts the given slot to death and sets up the reversion conditions
func (*Pet) CurrentBloodOrDeathRunes ¶
func (rp *Pet) CurrentBloodOrDeathRunes() int8
func (*Pet) CurrentBloodRunes ¶
func (rp *Pet) CurrentBloodRunes() int8
func (*Pet) CurrentDeathRunes ¶
func (rp *Pet) CurrentDeathRunes() int8
func (*Pet) CurrentEnergy ¶
func (eb *Pet) CurrentEnergy() float64
func (*Pet) CurrentEnergyRegenMultiplier ¶
func (eb *Pet) CurrentEnergyRegenMultiplier() float64
func (*Pet) CurrentFocus ¶
func (fb *Pet) CurrentFocus() float64
func (*Pet) CurrentFrostOrDeathRunes ¶
func (rp *Pet) CurrentFrostOrDeathRunes() int8
func (*Pet) CurrentFrostRunes ¶
func (rp *Pet) CurrentFrostRunes() int8
func (*Pet) CurrentHealth ¶
func (hb *Pet) CurrentHealth() float64
func (*Pet) CurrentHealthPercent ¶
func (hb *Pet) CurrentHealthPercent() float64
func (*Pet) CurrentRage ¶
func (rb *Pet) CurrentRage() float64
func (*Pet) CurrentRunicPower ¶
func (rp *Pet) CurrentRunicPower() float64
func (*Pet) CurrentUnholyOrDeathRunes ¶
func (rp *Pet) CurrentUnholyOrDeathRunes() int8
func (*Pet) CurrentUnholyRunes ¶
func (rp *Pet) CurrentUnholyRunes() int8
func (*Pet) DeathRuneRegenAt ¶
DeathRuneRegenAt returns the time the given death rune will regen at. If the rune is not death or not spent it returns NeverExpires.
func (*Pet) DeathRuneRevertAt ¶
DeathRuneRevertAt returns the next time that a death rune will revert. If there is no death rune that needs to revert it returns NeverExpires.
func (*Pet) DeathRunesInFU ¶
func (rp *Pet) DeathRunesInFU() int8
func (*Pet) DebugString ¶
func (rp *Pet) DebugString() string
func (*Pet) Disable ¶
func (pet *Pet) Disable(sim *Simulation)
func (*Pet) DisableOnStart ¶
func (pet *Pet) DisableOnStart()
func (*Pet) Enable ¶
func (pet *Pet) Enable(sim *Simulation, petAgent PetAgent)
petAgent should be the PetAgent which embeds this Pet.
func (*Pet) EnableWithStartAttackDelay ¶
func (pet *Pet) EnableWithStartAttackDelay(sim *Simulation, petAgent PetAgent, startAttackDelay time.Duration)
func (*Pet) EnableWithTimeout ¶
func (pet *Pet) EnableWithTimeout(sim *Simulation, petAgent PetAgent, petDuration time.Duration)
Helper for enabling a pet that will expire after a certain duration.
func (*Pet) EndOOMEvent ¶
func (mb *Pet) EndOOMEvent(sim *Simulation)
func (*Pet) EnergyRegenPerSecond ¶
func (eb *Pet) EnergyRegenPerSecond() float64
func (*Pet) FocusRegenPerSecond ¶
func (fb *Pet) FocusRegenPerSecond() float64
func (*Pet) FocusRegenPerTick ¶
func (fb *Pet) FocusRegenPerTick() float64
func (*Pet) FrostRuneReadyAt ¶
func (rp *Pet) FrostRuneReadyAt(sim *Simulation) time.Duration
func (*Pet) GainHealth ¶
func (hb *Pet) GainHealth(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Pet) GetActiveAuraWithTag ¶
func (*Pet) GetAuraByID ¶
func (*Pet) GetAurasWithTag ¶
func (*Pet) GetCharacter ¶
Default implementations for some Agent functions which most Pets don't need.
func (*Pet) GetIcdAuraByID ¶
func (*Pet) GetInheritedStats ¶
func (*Pet) GetInitialMajorCooldown ¶
func (mcdm *Pet) GetInitialMajorCooldown(actionID ActionID) MajorCooldown
func (*Pet) GetMajorCooldown ¶
func (mcdm *Pet) GetMajorCooldown(actionID ActionID) *MajorCooldown
func (*Pet) GetMajorCooldownIDs ¶
func (*Pet) GetMajorCooldownIgnoreTag ¶
func (mcdm *Pet) GetMajorCooldownIgnoreTag(actionID ActionID) *MajorCooldown
func (*Pet) GetMajorCooldowns ¶
func (mcdm *Pet) GetMajorCooldowns() []*MajorCooldown
Returns all MCDs.
func (*Pet) GetMatchingStatBuffCooldownAuras ¶ added in v0.0.33
func (mcdm *Pet) GetMatchingStatBuffCooldownAuras(statTypesToMatch []stats.Stat) []*StatBuffAura
func (*Pet) GetMatchingStatBuffSpells ¶
func (*Pet) GetRuneRegenMultiplier ¶
func (rp *Pet) GetRuneRegenMultiplier() float64
func (*Pet) HasActiveAura ¶
func (*Pet) HasActiveAuraWithTag ¶
func (*Pet) HasActiveAuraWithTagExcludingAura ¶
func (*Pet) HasAuraWithTag ¶
func (*Pet) Initialize ¶
func (pet *Pet) Initialize()
func (*Pet) IsGuardian ¶
func (*Pet) IsReset ¶
func (eb *Pet) IsReset(sim *Simulation) bool
func (*Pet) LeftBloodRuneReady ¶
func (rp *Pet) LeftBloodRuneReady() bool
func (*Pet) MaxComboPoints ¶
func (eb *Pet) MaxComboPoints() int32
func (*Pet) MaximumEnergy ¶
func (eb *Pet) MaximumEnergy() float64
func (*Pet) MaximumFocus ¶
func (fb *Pet) MaximumFocus() float64
func (*Pet) MaximumRage ¶
func (rb *Pet) MaximumRage() float64
func (*Pet) MaximumRunicPower ¶
func (rp *Pet) MaximumRunicPower() float64
func (*Pet) MultiplyAutoAttackRageGen ¶
func (rb *Pet) MultiplyAutoAttackRageGen(multiplier float64)
Call this within the OnGain and OnExpire callbacks for Battle Stance, Raging Whirlwind, etc.
func (*Pet) MultiplyEnergyRegenSpeed ¶
func (eb *Pet) MultiplyEnergyRegenSpeed(sim *Simulation, multiplier float64)
func (*Pet) MultiplyFocusRegenSpeed ¶
func (fb *Pet) MultiplyFocusRegenSpeed(sim *Simulation, multiplier float64)
func (*Pet) MultiplyRageGen ¶ added in v0.0.105
func (rb *Pet) MultiplyRageGen(multiplier float64)
func (*Pet) MultiplyRuneRegenSpeed ¶
func (rp *Pet) MultiplyRuneRegenSpeed(sim *Simulation, multiplier float64)
func (*Pet) MultiplyRunicRegen ¶
func (rp *Pet) MultiplyRunicRegen(multiply float64)
func (*Pet) NewBloodRuneMetrics ¶ added in v0.0.1
func (rp *Pet) NewBloodRuneMetrics(action ActionID) *ResourceMetrics
func (*Pet) NewDeathRuneMetrics ¶ added in v0.0.1
func (rp *Pet) NewDeathRuneMetrics(action ActionID) *ResourceMetrics
func (*Pet) NewFrostRuneMetrics ¶ added in v0.0.1
func (rp *Pet) NewFrostRuneMetrics(action ActionID) *ResourceMetrics
func (*Pet) NewRunicPowerMetrics ¶ added in v0.0.1
func (rp *Pet) NewRunicPowerMetrics(action ActionID) *ResourceMetrics
func (*Pet) NewUnholyRuneMetrics ¶ added in v0.0.1
func (rp *Pet) NewUnholyRuneMetrics(action ActionID) *ResourceMetrics
func (*Pet) NextBloodRuneReadyAt ¶
func (rp *Pet) NextBloodRuneReadyAt(sim *Simulation) time.Duration
func (*Pet) NextEnergyTickAt ¶
func (*Pet) NextFocusTickAt ¶
func (*Pet) NextFrostRuneReadyAt ¶
func (rp *Pet) NextFrostRuneReadyAt(sim *Simulation) time.Duration
func (*Pet) NextUnholyRuneReadyAt ¶
func (rp *Pet) NextUnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Pet) NormalFrostRuneReadyAt ¶
func (rp *Pet) NormalFrostRuneReadyAt(sim *Simulation) time.Duration
NormalFrostRuneReadyAt returns the earliest time a non-death frost rune is ready.
func (*Pet) NormalSpentBloodRuneReadyAt ¶
func (rp *Pet) NormalSpentBloodRuneReadyAt(_ *Simulation) time.Duration
NormalSpentBloodRuneReadyAt returns the earliest time a spent non-death blood rune is ready.
func (*Pet) NormalUnholyRuneReadyAt ¶
func (rp *Pet) NormalUnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Pet) NumActiveAurasWithTag ¶
func (*Pet) OnApplyEffects ¶
func (at *Pet) OnApplyEffects(sim *Simulation, target *Unit, spell *Spell)
Invokes the OnApplyEffects event for all tracked Auras.
func (*Pet) OnCastComplete ¶
func (at *Pet) OnCastComplete(sim *Simulation, spell *Spell)
Invokes the OnCastComplete event for all tracked Auras.
func (*Pet) OnEncounterStart ¶ added in v0.0.13
func (at *Pet) OnEncounterStart(sim *Simulation)
func (*Pet) OnGCDReady ¶
func (pet *Pet) OnGCDReady(_ *Simulation)
func (*Pet) OnHealDealt ¶
func (at *Pet) OnHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnHeal event for all tracked Auras.
func (*Pet) OnHealTaken ¶
func (at *Pet) OnHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Pet) OnPeriodicDamageDealt ¶
func (at *Pet) OnPeriodicDamageDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnPeriodicDamage
As a debuff when target is being hit by dot. As a buff when caster's dots are ticking.
func (*Pet) OnPeriodicDamageTaken ¶
func (at *Pet) OnPeriodicDamageTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Pet) OnPeriodicHealDealt ¶
func (at *Pet) OnPeriodicHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnPeriodicHeal
As a debuff when target is being hit by dot. As a buff when caster's dots are ticking.
func (*Pet) OnPeriodicHealTaken ¶
func (at *Pet) OnPeriodicHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Pet) OnSpellHitDealt ¶
func (at *Pet) OnSpellHitDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnSpellHit event for all tracked Auras.
func (*Pet) OnSpellHitTaken ¶
func (at *Pet) OnSpellHitTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Pet) OptimalRuneCost ¶
func (*Pet) RegenAllFrostAndUnholyRunesAsDeath ¶
func (rp *Pet) RegenAllFrostAndUnholyRunesAsDeath(sim *Simulation, deathRuneMetrics *ResourceMetrics)
func (*Pet) RegenAllRunes ¶
func (rp *Pet) RegenAllRunes(sim *Simulation, metrics []*ResourceMetrics)
func (*Pet) RegenRunicEmpowermentRune ¶ added in v0.0.1
func (rp *Pet) RegenRunicEmpowermentRune(sim *Simulation, runeMetrics []*ResourceMetrics)
Runic Empowerment regens a randoom fully depleted rune
func (*Pet) RegisterResetEffect ¶
func (at *Pet) RegisterResetEffect(resetEffect ResetEffect)
Registers a callback to this Character which will be invoked on every Sim reset.
func (*Pet) RemoveHealth ¶
func (hb *Pet) RemoveHealth(sim *Simulation, amount float64)
func (*Pet) ResetComboPoints ¶ added in v0.0.13
func (eb *Pet) ResetComboPoints(sim *Simulation, comboPointsToKeep int32)
func (*Pet) ResetEnergyTick ¶
func (eb *Pet) ResetEnergyTick(sim *Simulation)
Gives an immediate partial energy tick and restarts the tick timer.
func (*Pet) ResetFocusTick ¶
func (fb *Pet) ResetFocusTick(sim *Simulation)
Gives an immediate partial Focus tick and restarts the tick timer.
func (*Pet) ResetRageBar ¶ added in v0.0.13
func (rb *Pet) ResetRageBar(sim *Simulation, rageToKeep float64)
func (*Pet) ResetRunicPowerBar ¶ added in v0.0.13
func (rp *Pet) ResetRunicPowerBar(sim *Simulation, runicPowerToKeep float64)
func (*Pet) RuneIsActive ¶
func (*Pet) RuneIsDeath ¶
func (*Pet) RuneReadyAt ¶
func (rp *Pet) RuneReadyAt(sim *Simulation, slot int8) time.Duration
func (*Pet) SetMaxComboPoints ¶
func (eb *Pet) SetMaxComboPoints(maxComboPoints int32)
func (*Pet) SetPermanentDeathRunes ¶
func (rp *Pet) SetPermanentDeathRunes(permanentDeaths []int8)
func (*Pet) SetStartAttackDelay ¶
func (*Pet) SetTimeoutAction ¶ added in v0.0.2
func (pet *Pet) SetTimeoutAction(sim *Simulation, duration time.Duration)
func (*Pet) SpendComboPoints ¶
func (eb *Pet) SpendComboPoints(sim *Simulation, metrics *ResourceMetrics)
func (*Pet) SpendEnergy ¶
func (eb *Pet) SpendEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Pet) SpendFocus ¶
func (fb *Pet) SpendFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Pet) SpendPartialComboPoints ¶
func (eb *Pet) SpendPartialComboPoints(sim *Simulation, pointsToSpend int32, metrics *ResourceMetrics)
func (*Pet) SpendRage ¶
func (rb *Pet) SpendRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Pet) SpendRuneReadyAt ¶
func (*Pet) SpendRunicPower ¶
func (rp *Pet) SpendRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Pet) StartOOMEvent ¶
func (mb *Pet) StartOOMEvent(sim *Simulation, requiredMana float64)
func (*Pet) TimeToTargetEnergy ¶
func (*Pet) TimeToTargetFocus ¶
func (*Pet) UnholyRuneReadyAt ¶
func (rp *Pet) UnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Pet) UpdateMajorCooldowns ¶
func (mcdm *Pet) UpdateMajorCooldowns()
This function should be called if the CD for a major cooldown changes outside of the TryActivate() call.
func (*Pet) UpdateMaxEnergy ¶
func (eb *Pet) UpdateMaxEnergy(sim *Simulation, bonusEnergy float64, metrics *ResourceMetrics)
Used for dynamic updates to maximum Energy, such as from the Druid Primal Madness talent
func (*Pet) UpdateMaxHealth ¶
func (hb *Pet) UpdateMaxHealth(sim *Simulation, bonusHealth float64, metrics *ResourceMetrics)
Used for dynamic updates to maximum health from "Last Stand" effects
type PetConfig ¶
type PetConfig struct {
Name string
Owner *Character
BaseStats stats.Stats
// Hit and Expertise are always inherited by combining the owners physical hit and expertise, then halving it
// For casters this will automatically give spell hit cap at 7.5% physical hit and exp
NonHitExpStatInheritance PetStatInheritance
EnabledOnStart bool
IsGuardian bool
HasDynamicMeleeSpeedInheritance bool
HasDynamicCastSpeedInheritance bool
HasResourceRegenInheritance bool
StartsAtOwnerDistance bool
}
type PetSpeedInheritance ¶ added in v0.0.4
type PetSpeedInheritance func(sim *Simulation, ownerSpeedMultiplier float64)
type PostFinalizeEffect ¶
type PostFinalizeEffect func()
Callback for doing something after finalization.
type PowerBarType ¶
type PowerBarType int
const ( ManaBar PowerBarType = iota EnergyBar RageBar RunicPower FocusBar )
type PrepullAction ¶
type PrepullAction struct {
DoAt APLValue
Action func(*Simulation)
// contains filtered or unexported fields
}
Callback for doing something on prepull.
type PresetTarget ¶
type PresetTarget struct {
// String in folder-structure format identifying a category for this unit, e.g. "Black Temple/Bosses".
PathPrefix string
Config *proto.Target
AI AIFactory
}
func GetPresetTargetWithID ¶
func GetPresetTargetWithID(id int32) *PresetTarget
func GetPresetTargetWithPath ¶
func GetPresetTargetWithPath(path string) *PresetTarget
func (PresetTarget) Path ¶
func (pt PresetTarget) Path() string
func (PresetTarget) ToProto ¶
func (pt PresetTarget) ToProto() *proto.PresetTarget
type PresimOptions ¶
type PresimOptions struct {
// Called once before each presim round.
//
// Modify the player parameter to use whatever player options are desired
// for the presim.
SetPresimPlayerOptions func(player *proto.Player)
// Called once after each presim round to provide the results.
//
// Should return true if this Agent is done running presims, and false otherwise.
OnPresimResult func(presimResult *proto.UnitMetrics, iterations int32, duration time.Duration) bool
}
Controls the presim behavior for 1 Agent.
type Presimmer ¶
type Presimmer interface {
GetPresimOptions(*proto.Player) *PresimOptions
}
A presim is a full simulation run with multiple iterations, as a preparation step for testing out settings before starting the recorded iterations.
To use this, just implement this interface on your Agent.
If you don't know what this is, you probably don't need it.
type ProcExtraCondition ¶
type ProcExtraCondition func(sim *Simulation, spell *Spell, result *SpellResult) bool
type ProcHandler ¶
type ProcHandler func(sim *Simulation, spell *Spell, result *SpellResult)
type ProcMask ¶
type ProcMask uint32
const ( // Default value is invalid, to force authors to think about proc masks. ProcMaskUnknown ProcMask = 0 ProcMaskEmpty ProcMask = 1 << iota ProcMaskMeleeMHAuto ProcMaskMeleeOHAuto ProcMaskMeleeMHSpecial ProcMaskMeleeOHSpecial ProcMaskRangedAuto ProcMaskRangedSpecial ProcMaskSpellDamage ProcMaskSpellHealing ProcMaskSpellProc // Special mask for Spell procs that can trigger things (Can be used together with damage proc mask or alone) ProcMaskMeleeProc // Special mask for Melee procs that can trigger things (Can be used together with damage proc mask or alone) ProcMaskRangedProc // Special mask for Ranged procs that can trigger things (Can be used together with damage proc mask or alone) ProcMaskSpellDamageProc // Mask for procs triggering from spell damage procs like FT weapon and rogue poisons ProcMaskLast )
Single-bit masks. These don't need to match Blizzard's values.
type ProcTrigger ¶
type ProcTrigger struct {
Name string
ActionID ActionID
MetricsActionID ActionID
Duration time.Duration
Callback AuraCallback
ProcMask ProcMask
ProcMaskExclude ProcMask
SpellFlags SpellFlag
SpellFlagsExclude SpellFlag
Outcome HitOutcome
RequireDamageDealt bool
ProcChance float64
DPM *DynamicProcManager
ICD time.Duration
Handler ProcHandler
TriggerImmediately bool // If false (default), the handler will be called one spell batch window later for improved realism.
ClassSpellMask int64
ExtraCondition ProcExtraCondition
}
type QueuedSpell ¶
type QueuedSpell struct {
// Stores the time at which QueueSpell() was called to ensure that only one spell can be queued up per timestep
QueueInitiatedAt time.Duration
// contains filtered or unexported fields
}
func (*QueuedSpell) Cancel ¶
func (qs *QueuedSpell) Cancel(sim *Simulation)
Models the use of /cqs macros to change which spell should be cast at the last minute
func (*QueuedSpell) InitiateQueue ¶
func (qs *QueuedSpell) InitiateQueue(sim *Simulation, spell *Spell, target *Unit, executeAt time.Duration)
type RPPMConfig ¶
func RppmConfigFromProcEffectProto ¶
func RppmConfigFromProcEffectProto(effect *proto.ProcEffect) RPPMConfig
func (RPPMConfig) WithApproximateIlvlMod ¶
func (config RPPMConfig) WithApproximateIlvlMod(coefficient float64, baseIlvl int32) RPPMConfig
Attach an approximate Ilvl scaling to the RPPM config The proc chance will be multiplied by 1.00936^(ilvlDiff)
func (RPPMConfig) WithClassMod ¶
func (config RPPMConfig) WithClassMod(coefficient float64, classMask int) RPPMConfig
Attach a class specific modifier to the RPPM config 1 - Warrior, 2 - Paladin, 4 - Hunter, 8 - Rogue, 16 - Priest, 32 - DK 64 - Shaman, 128 - Mage, 256 - Warlock, 512 - Monk, 1024 - Druid It multiplies the actual proc chance by 1 + coefficient
func (RPPMConfig) WithCritMod ¶
func (config RPPMConfig) WithCritMod() RPPMConfig
Attach a crit mod to the RPPM config
func (RPPMConfig) WithHasteMod ¶
func (config RPPMConfig) WithHasteMod() RPPMConfig
Attach a haste mod to the RPPM config It uses the highest haste value that does not include effects like Slice and Dice It multiplies the actual proc chance by 1 + haste%
func (RPPMConfig) WithSpecMod ¶
func (config RPPMConfig) WithSpecMod(coefficient float64, spec proto.Spec) RPPMConfig
Attaches a spec mod to the RPPM config It multiplies the actual proc chance by 1 + coefficient
type RPPMProc ¶
type RPPMProc struct {
// contains filtered or unexported fields
}
func (*RPPMProc) Chance ¶
func (proc *RPPMProc) Chance(sim *Simulation) float64
type RageBarOptions ¶
type RageCost ¶
type RageCost struct {
Refund float64
RefundMetrics *ResourceMetrics
ResourceMetrics *ResourceMetrics
}
func (*RageCost) CostFailureReason ¶
func (rc *RageCost) CostFailureReason(sim *Simulation, spell *Spell) string
func (*RageCost) IssueRefund ¶
func (rc *RageCost) IssueRefund(sim *Simulation, spell *Spell)
func (*RageCost) MeetsRequirement ¶
func (rc *RageCost) MeetsRequirement(_ *Simulation, spell *Spell) bool
func (*RageCost) SpendCost ¶
func (rc *RageCost) SpendCost(sim *Simulation, spell *Spell)
type RageCostOptions ¶
type RageCostOptions struct {
Cost int32
Refund float64
RefundMetrics *ResourceMetrics // Optional, will default to unit.RageRefundMetrics if not supplied.
}
type Raid ¶
type Raid struct {
Parties []*Party
AllPlayerUnits []*Unit // Cached list of all Players in the raid.
AllUnits []*Unit // Cached list of all Units (players and pets) in the raid.
NumTargetDummies int // Number of player units that are dummy targets for heals.
// contains filtered or unexported fields
}
func (*Raid) GetActiveAllyUnits ¶
func (*Raid) GetActiveUnits ¶
func (*Raid) GetFirstEmptyRaidIndex ¶
Returns (party, index within party)
func (*Raid) GetFirstNPlayersOrPets ¶
func (*Raid) GetFirstTargetDummy ¶
func (raid *Raid) GetFirstTargetDummy() *TargetDummy
func (*Raid) GetLowestHealthAllyUnit ¶
func (*Raid) GetMetrics ¶
func (raid *Raid) GetMetrics() *proto.RaidMetrics
func (*Raid) GetPlayerFromUnit ¶
func (*Raid) GetPlayerFromUnitIndex ¶
func (*Raid) GetRaidBuffs ¶
func (*Raid) GetTargetDummies ¶
func (raid *Raid) GetTargetDummies() []*TargetDummy
type Rand ¶
type Rand interface {
Next() uint64
NextFloat64() float64
Seed(int64)
GetSeed() int64
rand.Source64
}
implementing Source or Source64 is possible, but adds too much overhead
type RandomSuffix ¶
func RandomSuffixFromProto ¶
func RandomSuffixFromProto(pData *proto.ItemRandomSuffix) RandomSuffix
type ReforgeStat ¶
func ReforgeStatFromProto ¶
func ReforgeStatFromProto(protoStat *proto.ReforgeStat) ReforgeStat
ReforgeStatFromProto converts a protobuf ReforgeStat to a Go ReforgeStat
type ReplaceMHSwing ¶
type ReplaceMHSwing func(sim *Simulation, mhSwingSpell *Spell) *Spell
ReplaceMHSwing is called right before a main hand auto attack fires. It must never return nil, but either a replacement spell or the passed in regular mhSwingSpell. This allows for abilities that convert a white attack into a yellow attack.
type ResetTestResult ¶
type ResourceCostImpl ¶
type ResourceCostImpl interface {
// Whether the Unit associated with the spell meets the resource cost
// requirements to cast the spell.
MeetsRequirement(*Simulation, *Spell) bool
// Returns a message for when the cast fails due to lack of resources.
CostFailureReason(*Simulation, *Spell) string
// Subtracts the resources used from a cast from the Unit.
SpendCost(*Simulation, *Spell)
// Space for handling refund mechanics. Not all spells provide refunds.
IssueRefund(*Simulation, *Spell)
}
Handles computing the cost of spells and checking whether the Unit meets them.
type ResourceKey ¶
type ResourceKey struct {
ActionID ActionID
Type proto.ResourceType
}
type ResourceMetrics ¶
type ResourceMetrics struct {
ActionID ActionID
Type proto.ResourceType
Events int32
Gain float64
ActualGain float64
EventsFromPreviousIterations int32
ActualGainFromPreviousIterations float64
}
func (*ResourceMetrics) ActualGainForCurrentIteration ¶
func (resourceMetrics *ResourceMetrics) ActualGainForCurrentIteration() float64
func (*ResourceMetrics) AddEvent ¶
func (resourceMetrics *ResourceMetrics) AddEvent(gain float64, actualGain float64)
func (*ResourceMetrics) EventsForCurrentIteration ¶
func (resourceMetrics *ResourceMetrics) EventsForCurrentIteration() int32
func (*ResourceMetrics) ToProto ¶
func (resourceMetrics *ResourceMetrics) ToProto() *proto.ResourceMetrics
type RotationCastsTestGenerator ¶
type RotationCastsTestGenerator struct {
SpecOptions []SpecOptionsCombo
PartyBuffs *proto.PartyBuffs
RaidBuffs *proto.RaidBuffs
Debuffs *proto.Debuffs
Player *proto.Player
Encounter *proto.Encounter
SimOptions *proto.SimOptions
}
func (*RotationCastsTestGenerator) GetTest ¶
func (generator *RotationCastsTestGenerator) GetTest(testIdx int) (string, *proto.ComputeStatsRequest, *proto.StatWeightsRequest, *proto.RaidSimRequest)
func (*RotationCastsTestGenerator) NumTests ¶
func (generator *RotationCastsTestGenerator) NumTests() int
type RotationCombo ¶
type RotationCombo struct {
Label string
Rotation *proto.APLRotation
}
func GetAplRotation ¶
func GetAplRotation(dir string, file string) RotationCombo
type RuneChangeType ¶
type RuneChangeType int32
const ( None RuneChangeType = 0 SpendRune RuneChangeType = 1 GainRune RuneChangeType = 2 ConvertToDeath RuneChangeType = 4 ConvertFromDeath RuneChangeType = 8 )
func (RuneChangeType) Matches ¶
func (r RuneChangeType) Matches(other RuneChangeType) bool
type RuneCost ¶
type RuneCost int32
RuneCost's bit layout is: <16r.4d.4u.4f.4b>. Each part is just a count now (0..15 for runes).
func NewRuneCost ¶
func (RuneCost) RunicPower ¶
type RuneCostImpl ¶
type RuneCostImpl struct {
BloodRuneCost int8
FrostRuneCost int8
UnholyRuneCost int8
DeathRuneCost int8
RunicPowerCost float64
RunicPowerGain float64
Refundable bool
RefundCost float64
// contains filtered or unexported fields
}
func (*RuneCostImpl) CostFailureReason ¶
func (rc *RuneCostImpl) CostFailureReason(_ *Simulation, _ *Spell) string
func (*RuneCostImpl) GetConfig ¶
func (rc *RuneCostImpl) GetConfig() RuneCostOptions
func (*RuneCostImpl) IssueRefund ¶
func (rc *RuneCostImpl) IssueRefund(_ *Simulation, _ *Spell)
func (*RuneCostImpl) MeetsRequirement ¶
func (rc *RuneCostImpl) MeetsRequirement(_ *Simulation, spell *Spell) bool
func (*RuneCostImpl) SpendCost ¶
func (rc *RuneCostImpl) SpendCost(sim *Simulation, spell *Spell)
type RuneCostOptions ¶
type SecondaryResourceBar ¶
type SecondaryResourceBar interface {
CanSpend(limit float64) bool // Check whether the current resource is available or not
Spend(sim *Simulation, amount float64, action ActionID) // Spend the specified amount of resource
SpendUpTo(sim *Simulation, limit float64, action ActionID) float64 // Spends as much resource as possible up to the speciefied limit; Returns the amount of resource spent
Gain(sim *Simulation, amount float64, action ActionID) // Gain the amount specified from the action
Reset(sim *Simulation) // Resets the current resource bar
ResetBarTo(sim *Simulation, resourcesToKeep float64) // Resets the current resource bar to the specified value
Value() float64 // Returns the current amount of resource
RegisterOnGain(callback OnGainCallback) // Registers a callback that will be called. Gain = amount gained, realGain = actual amount gained due to caps
RegisterOnSpend(callback OnSpendCallback) // Registers a callback that will be called when the resource was spend
}
type SecondaryResourceConfig ¶
type SecondaryResourceConfig struct {
Type proto.SecondaryResourceType // The type of resource the bar tracks
Max float64 // The maximum amount the bar tracks
Default float64 // The default value this bar should be initialized with
}
type SetBonus ¶
type SetBonus struct {
// Name of the set.
Name string
// Number of pieces required for this bonus.
NumPieces int32
// Function for applying the effects of this set bonus.
BonusEffect ApplySetBonus
// Optional field to override the DefaultItemSetSlots
// For Example: The set contains of 2 weapons
Slots []proto.ItemSlot
}
type SetBonusCollection ¶
type SetBonusCollection []SetBonus
func (SetBonusCollection) ContainsBonus ¶
func (collection SetBonusCollection) ContainsBonus(setName string, count int32) bool
type SettingsCombos ¶
type SettingsCombos struct {
Class proto.Class
Races []proto.Race
GearSets []GearSetCombo
TalentSets []TalentsCombo
SpecOptions []SpecOptionsCombo
Rotations []RotationCombo
Buffs []BuffsCombo
Encounters []EncounterCombo
ItemSwapSets []ItemSwapSetCombo
SimOptions *proto.SimOptions
IsHealer bool
IsTank bool
StartingDistances []float64
Cooldowns *proto.Cooldowns
}
func (*SettingsCombos) GetTest ¶
func (combos *SettingsCombos) GetTest(testIdx int) (string, *proto.ComputeStatsRequest, *proto.StatWeightsRequest, *proto.RaidSimRequest)
func (*SettingsCombos) NumTests ¶
func (combos *SettingsCombos) NumTests() int
type Shield ¶
type Shield struct {
Spell *Spell
// Embed Aura so we can use IsActive/Refresh/etc directly.
*Aura
}
Rerpresents an absorption effect, e.g. Power Word: Shield.
func (*Shield) Apply ¶
func (shield *Shield) Apply(sim *Simulation, shieldAmount float64)
type ShieldArray ¶
type ShieldArray []*Shield
func (ShieldArray) Get ¶
func (shields ShieldArray) Get(target *Unit) *Shield
type ShieldConfig ¶
type ShieldShouldApplyCondition ¶
type ShieldShouldApplyCondition func(sim *Simulation, spell *Spell, result *SpellResult, isPeriodic bool) bool
type Simulation ¶
type Simulation struct {
*Environment
Options *proto.SimOptions
CurrentTime time.Duration // duration that has elapsed in the sim since starting
Duration time.Duration // Duration of current iteration
NeedsInput bool // Sim is in interactive mode and needs input
ProgressReport func(*proto.ProgressMetrics)
Signals simsignals.Signals
Log func(string, ...interface{})
// contains filtered or unexported fields
}
func NewSim ¶
func NewSim(rsr *proto.RaidSimRequest, signals simsignals.Signals) *Simulation
func (*Simulation) AddPendingAction ¶
func (sim *Simulation) AddPendingAction(pa *PendingAction)
func (*Simulation) AddTask ¶
func (sim *Simulation) AddTask(task Task)
func (*Simulation) Cleanup ¶
func (sim *Simulation) Cleanup()
func (*Simulation) DisableTargetUnit ¶ added in v0.0.10
func (sim *Simulation) DisableTargetUnit(targetUnit *Unit, expireAuras bool)
func (*Simulation) EnableTargetUnit ¶ added in v0.0.10
func (sim *Simulation) EnableTargetUnit(targetUnit *Unit)
func (*Simulation) GetConsumedPendingActionFromPool ¶ added in v0.0.4
func (sim *Simulation) GetConsumedPendingActionFromPool() *PendingAction
Use this for any "fire and forget" delayed actions where your code does not require persistent access to the returned *PendingAction pointer. This helper avoids unnecessary re-allocations of the PendingAction struct for improved code performance, but offers no guarantees on the long-term state of the underlying struct, which will be re-used once consumed.
func (*Simulation) GetRemainingDuration ¶
func (sim *Simulation) GetRemainingDuration() time.Duration
func (*Simulation) GetRemainingDurationPercent ¶
func (sim *Simulation) GetRemainingDurationPercent() float64
Returns the percentage of time remaining in the current iteration, as a value from 0-1.
func (*Simulation) IsExecutePhase20 ¶
func (sim *Simulation) IsExecutePhase20() bool
func (*Simulation) IsExecutePhase25 ¶
func (sim *Simulation) IsExecutePhase25() bool
func (*Simulation) IsExecutePhase35 ¶
func (sim *Simulation) IsExecutePhase35() bool
func (*Simulation) IsExecutePhase45 ¶
func (sim *Simulation) IsExecutePhase45() bool
func (*Simulation) IsExecutePhase90 ¶
func (sim *Simulation) IsExecutePhase90() bool
func (*Simulation) PrePull ¶
func (sim *Simulation) PrePull()
func (*Simulation) RandomExpFloat ¶
func (sim *Simulation) RandomExpFloat(label string) float64
func (*Simulation) RandomFloat ¶
func (sim *Simulation) RandomFloat(label string) float64
Returns a random float64 between 0.0 (inclusive) and 1.0 (exclusive).
In tests, although we can set the initial seed, test results are still very sensitive to the exact order of RandomFloat() calls. To mitigate this, when testing we use a separate rand object for each RandomFloat callsite, distinguished by the label string.
func (*Simulation) RegisterExecutePhaseCallback ¶
func (sim *Simulation) RegisterExecutePhaseCallback(callback func(sim *Simulation, isExecute int32))
func (*Simulation) RemoveTask ¶
func (sim *Simulation) RemoveTask(task Task)
func (*Simulation) RescheduleTask ¶
func (sim *Simulation) RescheduleTask(taskTime time.Duration)
func (*Simulation) Reseed ¶
func (sim *Simulation) Reseed(seed int64)
func (*Simulation) Reset ¶
func (sim *Simulation) Reset()
func (*Simulation) Roll ¶
func (sim *Simulation) Roll(min float64, max float64) float64
Shorthand for commonly-used RNG behavior. Returns a random number between min and max.
func (*Simulation) RollWithLabel ¶
func (sim *Simulation) RollWithLabel(min float64, max float64, label string) float64
func (*Simulation) Step ¶
func (sim *Simulation) Step() bool
type SingleCharacterStatsTestGenerator ¶
type SingleCharacterStatsTestGenerator struct {
Name string
Request *proto.ComputeStatsRequest
}
func (*SingleCharacterStatsTestGenerator) GetTest ¶
func (generator *SingleCharacterStatsTestGenerator) GetTest(_ int) (string, *proto.ComputeStatsRequest, *proto.StatWeightsRequest, *proto.RaidSimRequest)
func (*SingleCharacterStatsTestGenerator) NumTests ¶
func (generator *SingleCharacterStatsTestGenerator) NumTests() int
type SingleDpsTestGenerator ¶
type SingleDpsTestGenerator struct {
Name string
Request *proto.RaidSimRequest
}
func (*SingleDpsTestGenerator) GetTest ¶
func (generator *SingleDpsTestGenerator) GetTest(_ int) (string, *proto.ComputeStatsRequest, *proto.StatWeightsRequest, *proto.RaidSimRequest)
func (*SingleDpsTestGenerator) NumTests ¶
func (generator *SingleDpsTestGenerator) NumTests() int
type SingleStatWeightsTestGenerator ¶
type SingleStatWeightsTestGenerator struct {
Name string
Request *proto.StatWeightsRequest
}
func (*SingleStatWeightsTestGenerator) GetTest ¶
func (generator *SingleStatWeightsTestGenerator) GetTest(_ int) (string, *proto.ComputeStatsRequest, *proto.StatWeightsRequest, *proto.RaidSimRequest)
func (*SingleStatWeightsTestGenerator) NumTests ¶
func (generator *SingleStatWeightsTestGenerator) NumTests() int
type SpecOptionsCombo ¶
type SpecOptionsCombo struct {
Label string
SpecOptions interface{}
}
type SpecSetter ¶
type Spell ¶
type Spell struct {
// ID for this spell.
ActionID
// The unit who will perform this spell.
Unit *Unit
// Fire, Frost, Shadow, etc.
SpellSchool SpellSchool
SchoolIndex stats.SchoolIndex
// Controls which effects can proc from this spell.
ProcMask ProcMask
// Flags
Flags SpellFlag
// The specific class spell id
// should be a unique bit
ClassSpellMask int64
// Speed in yards/second. Spell missile speeds can be found in the game data.
// Example: https://wow.tools/dbc/?dbc=spellmisc&build=3.4.0.44996
MissileSpeed float64
ResourceMetrics *ResourceMetrics
Cost *SpellCost // Cost for the spell.
DefaultCast Cast // Default cast parameters with all static effects applied.
CD Cooldown
IgnoreHaste bool
ExtraCastCondition CanCastCondition
// Optional range constraints. If supplied, these are used to modify the ExtraCastCondition above to additionally check for DistanceFromTarget.
MinRange float64
MaxRange float64
MaxCharges int // Maximum amount of charges the spell can have
RechargeTime time.Duration
SpellMetrics []SpellMetrics
// Performs the actions of this spell.
ApplyEffects ApplySpellResults
// The current or most recent cast data.
CurCast Cast
BonusHitPercent float64
BonusCritPercent float64
BonusSpellPower float64
BonusExpertiseRating float64
CastTimeMultiplier float64
CdMultiplier float64
DamageMultiplier float64
DamageMultiplierAdditive float64
CritMultiplier float64
CritMultiplierAdditive float64 // Additive critical damage bonus
BonusCoefficient float64 // EffectBonusCoefficient in SpellEffect client DB table, "SP mod" on Wowhead (not necessarily shown there even if > 0)
// Multiplier for all threat generated by this effect.
ThreatMultiplier float64
// Adds a fixed amount of threat to this spell, before multipliers.
FlatThreatBonus float64
// Per-target auras that are related to this spell, usually buffs or debuffs applied by the spell.
RelatedAuraArrays LabeledAuraArrays
RelatedDotSpell *Spell
RelatedSelfBuff *Aura
// contains filtered or unexported fields
}
func (*Spell) AnyDotsActive ¶ added in v0.0.10
func (spell *Spell) AnyDotsActive(sim *Simulation) bool
func (*Spell) ApplyAOEThreat ¶
func (*Spell) ApplyAOEThreatIgnoreMultipliers ¶
func (*Spell) ApplyAllDots ¶ added in v0.0.10
func (spell *Spell) ApplyAllDots(sim *Simulation)
func (*Spell) ApplyPostOutcomeDamageModifiers ¶
func (spell *Spell) ApplyPostOutcomeDamageModifiers(sim *Simulation, result *SpellResult, isPeriodic bool)
func (*Spell) ApplyPostOutcomeHealingModifiers ¶
func (spell *Spell) ApplyPostOutcomeHealingModifiers(sim *Simulation, result *SpellResult)
func (*Spell) AttackerDamageMultiplier ¶
func (spell *Spell) AttackerDamageMultiplier(attackTable *AttackTable, isDot bool) float64
Returns the combined attacker modifiers.
func (*Spell) BloodRuneMetrics ¶
func (spell *Spell) BloodRuneMetrics() *ResourceMetrics
func (*Spell) BonusDamage ¶
func (*Spell) CalcAndDealAoeDamage ¶ added in v0.0.10
func (spell *Spell) CalcAndDealAoeDamage(sim *Simulation, baseDamage float64, outcomeApplier OutcomeApplier) SpellResultSlice
func (*Spell) CalcAndDealAoeDamageWithVariance ¶ added in v0.0.10
func (spell *Spell) CalcAndDealAoeDamageWithVariance(sim *Simulation, outcomeApplier OutcomeApplier, baseDamageCalculator BaseDamageCalculator) SpellResultSlice
func (*Spell) CalcAndDealCleaveDamage ¶ added in v0.0.10
func (spell *Spell) CalcAndDealCleaveDamage(sim *Simulation, firstTarget *Unit, maxTargets int32, baseDamage float64, outcomeApplier OutcomeApplier) SpellResultSlice
func (*Spell) CalcAndDealCleaveDamageWithVariance ¶ added in v0.0.10
func (spell *Spell) CalcAndDealCleaveDamageWithVariance(sim *Simulation, firstTarget *Unit, maxTargets int32, outcomeApplier OutcomeApplier, baseDamageCalculator BaseDamageCalculator) SpellResultSlice
func (*Spell) CalcAndDealDamage ¶
func (spell *Spell) CalcAndDealDamage(sim *Simulation, target *Unit, baseDamage float64, outcomeApplier OutcomeApplier) *SpellResult
func (*Spell) CalcAndDealHealing ¶
func (spell *Spell) CalcAndDealHealing(sim *Simulation, target *Unit, baseHealing float64, outcomeApplier OutcomeApplier) *SpellResult
func (*Spell) CalcAndDealOutcome ¶
func (spell *Spell) CalcAndDealOutcome(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
func (*Spell) CalcAndDealPeriodicAoeDamage ¶ added in v0.0.10
func (spell *Spell) CalcAndDealPeriodicAoeDamage(sim *Simulation, baseDamage float64, outcomeApplier OutcomeApplier) SpellResultSlice
func (*Spell) CalcAndDealPeriodicDamage ¶
func (spell *Spell) CalcAndDealPeriodicDamage(sim *Simulation, target *Unit, baseDamage float64, outcomeApplier OutcomeApplier) *SpellResult
func (*Spell) CalcAndDealPeriodicHealing ¶
func (spell *Spell) CalcAndDealPeriodicHealing(sim *Simulation, target *Unit, baseHealing float64, outcomeApplier OutcomeApplier) *SpellResult
func (*Spell) CalcAoeDamage ¶ added in v0.0.10
func (spell *Spell) CalcAoeDamage(sim *Simulation, baseDamage float64, outcomeApplier OutcomeApplier) SpellResultSlice
Use CalcAoeDamage + DealBatchedAoeDamage instead of CalcAndDealAoeDamage in situations where you want to block procs on early targets from influencing the damage calculation on later targets.
func (*Spell) CalcAoeDamageWithVariance ¶ added in v0.0.10
func (spell *Spell) CalcAoeDamageWithVariance(sim *Simulation, outcomeApplier OutcomeApplier, baseDamageCalculator BaseDamageCalculator) SpellResultSlice
func (*Spell) CalcCleaveDamage ¶ added in v0.0.10
func (spell *Spell) CalcCleaveDamage(sim *Simulation, firstTarget *Unit, maxTargets int32, baseDamage float64, outcomeApplier OutcomeApplier) SpellResultSlice
func (*Spell) CalcCleaveDamageWithVariance ¶ added in v0.0.10
func (spell *Spell) CalcCleaveDamageWithVariance(sim *Simulation, firstTarget *Unit, maxTargets int32, outcomeApplier OutcomeApplier, baseDamageCalculator BaseDamageCalculator) SpellResultSlice
func (*Spell) CalcDamage ¶
func (spell *Spell) CalcDamage(sim *Simulation, target *Unit, baseDamage float64, outcomeApplier OutcomeApplier) *SpellResult
func (*Spell) CalcHealing ¶
func (spell *Spell) CalcHealing(sim *Simulation, target *Unit, baseHealing float64, outcomeApplier OutcomeApplier) *SpellResult
func (*Spell) CalcOutcome ¶
func (spell *Spell) CalcOutcome(sim *Simulation, target *Unit, outcomeApplier OutcomeApplier) *SpellResult
For spells that do no damage but still have a hit/miss check.
func (*Spell) CalcPeriodicAoeDamage ¶ added in v0.0.10
func (spell *Spell) CalcPeriodicAoeDamage(sim *Simulation, baseDamage float64, outcomeApplier OutcomeApplier) SpellResultSlice
func (*Spell) CalcPeriodicDamage ¶
func (spell *Spell) CalcPeriodicDamage(sim *Simulation, target *Unit, baseDamage float64, outcomeApplier OutcomeApplier) *SpellResult
func (*Spell) CalcPeriodicHealing ¶
func (spell *Spell) CalcPeriodicHealing(sim *Simulation, target *Unit, baseHealing float64, outcomeApplier OutcomeApplier) *SpellResult
func (*Spell) CanCast ¶
func (spell *Spell) CanCast(sim *Simulation, target *Unit) bool
Returns whether a call to Cast() would be successful, without actually doing a cast.
func (*Spell) CanCastDuringChannel ¶ added in v0.0.17
func (spell *Spell) CanCastDuringChannel(sim *Simulation) bool
func (*Spell) CanCastOrQueue ¶
func (spell *Spell) CanCastOrQueue(sim *Simulation, target *Unit) bool
Helper function for APL checks to prevent infinite loops
func (*Spell) CanCompleteCast ¶ added in v0.0.88
func (spell *Spell) CanCompleteCast(sim *Simulation, target *Unit, logCastFailure bool) bool
Returns whether the spell being cast can be completed. Example: Metamorphosis drains 4 Demonic Fury every second. This means at the end of the cast you could end up not meeting the casting requirements.
func (*Spell) CanQueue ¶
func (spell *Spell) CanQueue(sim *Simulation, target *Unit) bool
Returns whether the spell could be queued by the player at the current time using the game's spell queueing functionality. Assumes the maximum spell queue window of 400ms that the game allows.
func (*Spell) CastOnAllOtherTargets ¶ added in v0.0.10
func (spell *Spell) CastOnAllOtherTargets(sim *Simulation, mainTarget *Unit)
func (*Spell) CastOrQueue ¶
func (spell *Spell) CastOrQueue(sim *Simulation, target *Unit)
func (*Spell) CasterHealingMultiplier ¶
func (*Spell) CloneResult ¶ added in v0.0.146
func (spell *Spell) CloneResult(result *SpellResult) *SpellResult
func (*Spell) ComboPointMetrics ¶
func (spell *Spell) ComboPointMetrics() *ResourceMetrics
func (*Spell) ConsumeCharge ¶
func (spell *Spell) ConsumeCharge(sim *Simulation)
func (*Spell) CritDamageMultiplier ¶
func (*Spell) CurDamagePerCast ¶
Metrics for the current iteration
func (*Spell) DealBatchedAoeDamage ¶ added in v0.0.10
func (spell *Spell) DealBatchedAoeDamage(sim *Simulation)
func (*Spell) DealBatchedPeriodicDamage ¶ added in v0.0.10
func (spell *Spell) DealBatchedPeriodicDamage(sim *Simulation)
func (*Spell) DealDamage ¶
func (spell *Spell) DealDamage(sim *Simulation, result *SpellResult)
func (*Spell) DealHealing ¶
func (spell *Spell) DealHealing(sim *Simulation, result *SpellResult)
func (*Spell) DealOutcome ¶
func (spell *Spell) DealOutcome(sim *Simulation, result *SpellResult)
func (*Spell) DealPeriodicDamage ¶
func (spell *Spell) DealPeriodicDamage(sim *Simulation, result *SpellResult)
func (*Spell) DealPeriodicHealing ¶
func (spell *Spell) DealPeriodicHealing(sim *Simulation, result *SpellResult)
func (*Spell) DeathRuneMetrics ¶
func (spell *Spell) DeathRuneMetrics() *ResourceMetrics
func (*Spell) DisposeResult ¶
func (spell *Spell) DisposeResult(result *SpellResult)
func (*Spell) DodgeSuppression ¶
func (*Spell) EffectiveCastTime ¶
Time until either the cast is finished or GCD is ready again, whichever is longer
func (*Spell) EnergyMetrics ¶
func (spell *Spell) EnergyMetrics() *ResourceMetrics
func (*Spell) ExpectedInitialDamage ¶
func (spell *Spell) ExpectedInitialDamage(sim *Simulation, target *Unit) float64
func (*Spell) ExpectedTickDamage ¶
func (spell *Spell) ExpectedTickDamage(sim *Simulation, target *Unit) float64
func (*Spell) ExpectedTickDamageFromCurrentSnapshot ¶
func (spell *Spell) ExpectedTickDamageFromCurrentSnapshot(sim *Simulation, target *Unit) float64
func (*Spell) FrostRuneMetrics ¶
func (spell *Spell) FrostRuneMetrics() *ResourceMetrics
func (*Spell) GetMetricSplitCount ¶
func (*Spell) GetNumCharges ¶
func (*Spell) GetPhysicalMissChance ¶
func (spell *Spell) GetPhysicalMissChance(attackTable *AttackTable) float64
func (*Spell) HealingCritChance ¶
func (*Spell) HealingCritCheck ¶
func (spell *Spell) HealingCritCheck(sim *Simulation) bool
func (*Spell) HealingPower ¶
func (*Spell) HealthMetrics ¶
func (spell *Spell) HealthMetrics(target *Unit) *ResourceMetrics
func (*Spell) IsReady ¶
func (spell *Spell) IsReady(sim *Simulation) bool
func (*Spell) IssueRefund ¶
func (spell *Spell) IssueRefund(sim *Simulation)
func (*Spell) MagicCritCheck ¶
func (spell *Spell) MagicCritCheck(sim *Simulation, target *Unit) bool
func (*Spell) MagicHitCheck ¶
func (spell *Spell) MagicHitCheck(sim *Simulation, attackTable *AttackTable) bool
func (*Spell) MeleeAttackPower ¶
func (*Spell) NewResult ¶
func (spell *Spell) NewResult(target *Unit) *SpellResult
func (*Spell) NextChargeIn ¶
func (spell *Spell) NextChargeIn(sim *Simulation) time.Duration
Calculates the time until the next charge is available. Will return 0 if no recharge is in progress
func (*Spell) OutcomeAlwaysHit ¶
func (spell *Spell) OutcomeAlwaysHit(sim *Simulation, result *SpellResult, _ *AttackTable)
func (*Spell) OutcomeAlwaysHitNoHitCounter ¶
func (spell *Spell) OutcomeAlwaysHitNoHitCounter(_ *Simulation, result *SpellResult, _ *AttackTable)
Hit without Hits++ counter
func (*Spell) OutcomeAlwaysMiss ¶
func (spell *Spell) OutcomeAlwaysMiss(_ *Simulation, result *SpellResult, _ *AttackTable)
func (*Spell) OutcomeEnemyMeleeWhite ¶
func (spell *Spell) OutcomeEnemyMeleeWhite(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeEnemyMeleeWhiteNoHitCounter ¶
func (spell *Spell) OutcomeEnemyMeleeWhiteNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeExpectedMagicAlwaysHit ¶
func (spell *Spell) OutcomeExpectedMagicAlwaysHit(_ *Simulation, _ *SpellResult, _ *AttackTable)
func (*Spell) OutcomeExpectedMagicCrit ¶
func (spell *Spell) OutcomeExpectedMagicCrit(_ *Simulation, result *SpellResult, _ *AttackTable)
func (*Spell) OutcomeExpectedMagicHit ¶
func (spell *Spell) OutcomeExpectedMagicHit(_ *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeExpectedMagicHitAndCrit ¶
func (spell *Spell) OutcomeExpectedMagicHitAndCrit(_ *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeExpectedMeleeWeaponSpecialHitAndCrit ¶
func (spell *Spell) OutcomeExpectedMeleeWeaponSpecialHitAndCrit(_ *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeExpectedMeleeWhite ¶
func (spell *Spell) OutcomeExpectedMeleeWhite(_ *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeExpectedPhysicalCrit ¶ added in v0.0.6
func (spell *Spell) OutcomeExpectedPhysicalCrit(_ *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeExpectedTick ¶
func (spell *Spell) OutcomeExpectedTick(_ *Simulation, _ *SpellResult, _ *AttackTable)
func (*Spell) OutcomeHealing ¶
func (spell *Spell) OutcomeHealing(_ *Simulation, result *SpellResult, _ *AttackTable)
func (*Spell) OutcomeHealingCrit ¶
func (spell *Spell) OutcomeHealingCrit(sim *Simulation, result *SpellResult, _ *AttackTable)
func (*Spell) OutcomeHealingCritNoHitCounter ¶
func (spell *Spell) OutcomeHealingCritNoHitCounter(sim *Simulation, result *SpellResult, _ *AttackTable)
func (*Spell) OutcomeHealingNoHitCounter ¶
func (spell *Spell) OutcomeHealingNoHitCounter(_ *Simulation, result *SpellResult, _ *AttackTable)
func (*Spell) OutcomeMagicCrit ¶
func (spell *Spell) OutcomeMagicCrit(sim *Simulation, result *SpellResult, _ *AttackTable)
func (*Spell) OutcomeMagicCritNoHitCounter ¶
func (spell *Spell) OutcomeMagicCritNoHitCounter(sim *Simulation, result *SpellResult, _ *AttackTable)
func (*Spell) OutcomeMagicHit ¶
func (spell *Spell) OutcomeMagicHit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMagicHitAndCrit ¶
func (spell *Spell) OutcomeMagicHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMagicHitAndCritNoHitCounter ¶
func (spell *Spell) OutcomeMagicHitAndCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMagicHitNoHitCounter ¶
func (spell *Spell) OutcomeMagicHitNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialBlockAndCrit ¶
func (spell *Spell) OutcomeMeleeSpecialBlockAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialBlockAndCritNoHitCounter ¶
func (spell *Spell) OutcomeMeleeSpecialBlockAndCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialCritOnly ¶
func (spell *Spell) OutcomeMeleeSpecialCritOnly(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialCritOnlyNoHitCounter ¶
func (spell *Spell) OutcomeMeleeSpecialCritOnlyNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialHit ¶
func (spell *Spell) OutcomeMeleeSpecialHit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialHitAndCrit ¶
func (spell *Spell) OutcomeMeleeSpecialHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialHitAndCritNoHitCounter ¶
func (spell *Spell) OutcomeMeleeSpecialHitAndCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialHitNoHitCounter ¶
func (spell *Spell) OutcomeMeleeSpecialHitNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialNoBlockDodgeParry ¶
func (spell *Spell) OutcomeMeleeSpecialNoBlockDodgeParry(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialNoBlockDodgeParryNoCrit ¶
func (spell *Spell) OutcomeMeleeSpecialNoBlockDodgeParryNoCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialNoBlockDodgeParryNoCritNoHitCounter ¶
func (spell *Spell) OutcomeMeleeSpecialNoBlockDodgeParryNoCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeSpecialNoBlockDodgeParryNoHitCounter ¶
func (spell *Spell) OutcomeMeleeSpecialNoBlockDodgeParryNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeWeaponSpecialHitAndCrit ¶
func (spell *Spell) OutcomeMeleeWeaponSpecialHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeWeaponSpecialHitAndCritNoHitCounter ¶
func (spell *Spell) OutcomeMeleeWeaponSpecialHitAndCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeWeaponSpecialNoCrit ¶
func (spell *Spell) OutcomeMeleeWeaponSpecialNoCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeWeaponSpecialNoCritNoHitCounter ¶
func (spell *Spell) OutcomeMeleeWeaponSpecialNoCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeWeaponSpecialNoParry ¶
func (spell *Spell) OutcomeMeleeWeaponSpecialNoParry(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeWeaponSpecialNoParryNoHitCounter ¶
func (spell *Spell) OutcomeMeleeWeaponSpecialNoParryNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeWhite ¶
func (spell *Spell) OutcomeMeleeWhite(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeWhiteNoGlance ¶
func (spell *Spell) OutcomeMeleeWhiteNoGlance(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeMeleeWhiteNoHitCounter ¶
func (spell *Spell) OutcomeMeleeWhiteNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeRangedCritOnly ¶
func (spell *Spell) OutcomeRangedCritOnly(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeRangedCritOnlyNoHitCounter ¶
func (spell *Spell) OutcomeRangedCritOnlyNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeRangedHit ¶
func (spell *Spell) OutcomeRangedHit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeRangedHitAndCrit ¶
func (spell *Spell) OutcomeRangedHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeRangedHitAndCritNoBlock ¶
func (spell *Spell) OutcomeRangedHitAndCritNoBlock(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeRangedHitAndCritNoBlockNoHitCounter ¶
func (spell *Spell) OutcomeRangedHitAndCritNoBlockNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeRangedHitAndCritNoHitCounter ¶
func (spell *Spell) OutcomeRangedHitAndCritNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeRangedHitNoHitCounter ¶
func (spell *Spell) OutcomeRangedHitNoHitCounter(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeTickMagicHit ¶
func (spell *Spell) OutcomeTickMagicHit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) OutcomeTickMagicHitAndCrit ¶
func (spell *Spell) OutcomeTickMagicHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable)
func (*Spell) ParrySuppression ¶
func (spell *Spell) ParrySuppression(attackTable *AttackTable) float64
MoP reworked Parry. Rather than being innately ~2x Dodge chance, expertise now applies to Dodge first (down to 0), and then Parry. The base chance for Dodge/Parry are both 7.5%, assuming a +3 target. The 7.5% Dodge chance must be fully suppressed before Parry will go down. This makes the effect of each point of Expertise linear when attacking from the front
func (*Spell) PhysicalCritChance ¶
func (spell *Spell) PhysicalCritChance(attackTable *AttackTable) float64
func (*Spell) PhysicalCritCheck ¶
func (spell *Spell) PhysicalCritCheck(sim *Simulation, attackTable *AttackTable) bool
func (*Spell) PhysicalHitChance ¶
func (spell *Spell) PhysicalHitChance(attackTable *AttackTable) float64
func (*Spell) PhysicalHitCheck ¶
func (spell *Spell) PhysicalHitCheck(sim *Simulation, attackTable *AttackTable) bool
func (*Spell) Proc ¶
func (spell *Spell) Proc(sim *Simulation, target *Unit)
Procs a spell, circumventing all checks, cooldowns, gcd's and so on Simply logging the cast and applying the effect Can be used for spells that proc off other spells and are the same spell id
func (*Spell) RageMetrics ¶
func (spell *Spell) RageMetrics() *ResourceMetrics
func (*Spell) RangedAttackPower ¶
func (*Spell) RefreshCharge ¶
func (spell *Spell) RefreshCharge(sim *Simulation)
Refreshes a charge of the spell Can be called if the spell has max charges
func (*Spell) RegisterTravelTimeCallback ¶ added in v0.0.102
func (spell *Spell) RegisterTravelTimeCallback(sim *Simulation, travelTime time.Duration, callback func(*Simulation))
RegisterTravelTimeCallback is used when there is a need for custom timing on NextActionAt otherwise use WaitTravelTime
func (*Spell) RuneCostImpl ¶
func (spell *Spell) RuneCostImpl() *RuneCostImpl
func (*Spell) RunicPowerMetrics ¶
func (spell *Spell) RunicPowerMetrics() *ResourceMetrics
func (*Spell) SelfShield ¶
func (*Spell) SetMetricsSplit ¶
func (*Spell) ShouldRefreshExclusiveEffects ¶
func (*Spell) SkipCastAndApplyEffects ¶
func (spell *Spell) SkipCastAndApplyEffects(sim *Simulation, target *Unit)
Skips the actual cast and applies spell effects immediately.
func (*Spell) SpellChanceToMiss ¶
func (spell *Spell) SpellChanceToMiss(attackTable *AttackTable) float64
func (*Spell) SpellCritChance ¶
func (*Spell) SpellHitChance ¶
func (*Spell) SpellPower ¶
func (*Spell) SpendCostAndConvertFrostOrUnholyRune ¶
func (spell *Spell) SpendCostAndConvertFrostOrUnholyRune(sim *Simulation, landed bool)
func (*Spell) SpendRefundableCost ¶
func (spell *Spell) SpendRefundableCost(sim *Simulation, result *SpellResult)
func (*Spell) SpendRefundableCostAndConvertBloodOrFrostRune ¶
func (spell *Spell) SpendRefundableCostAndConvertBloodOrFrostRune(sim *Simulation, landed bool)
func (*Spell) SpendRefundableCostAndConvertBloodRune ¶
func (spell *Spell) SpendRefundableCostAndConvertBloodRune(sim *Simulation, landed bool)
func (*Spell) SpendRefundableCostAndConvertFrostOrUnholyRune ¶
func (spell *Spell) SpendRefundableCostAndConvertFrostOrUnholyRune(sim *Simulation, landed bool)
func (*Spell) SpendRefundableCostAndConvertFrostRune ¶
func (spell *Spell) SpendRefundableCostAndConvertFrostRune(sim *Simulation, landed bool)
func (*Spell) TargetDamageMultiplier ¶
func (spell *Spell) TargetDamageMultiplier(sim *Simulation, attackTable *AttackTable, isPeriodic bool) float64
func (*Spell) ThreatFromDamage ¶
func (spell *Spell) ThreatFromDamage(sim *Simulation, outcome HitOutcome, damage float64, attackTable *AttackTable) float64
func (*Spell) TickAllDotsOnce ¶ added in v0.0.10
func (spell *Spell) TickAllDotsOnce(sim *Simulation)
func (*Spell) TimeToReady ¶
func (spell *Spell) TimeToReady(sim *Simulation) time.Duration
func (*Spell) TravelTime ¶
func (*Spell) UnholyRuneMetrics ¶
func (spell *Spell) UnholyRuneMetrics() *ResourceMetrics
func (*Spell) WaitTravelTime ¶
func (spell *Spell) WaitTravelTime(sim *Simulation, callback func(*Simulation))
WaitTravelTime calls RegisterTravelTimeCallback
type SpellConfig ¶
type SpellConfig struct {
// See definition of Spell (below) for comments on these.
ActionID
SpellSchool SpellSchool
ProcMask ProcMask
Flags SpellFlag
MissileSpeed float64
BaseCost float64
MetricSplits int
ClassSpellMask int64
ManaCost ManaCostOptions
EnergyCost EnergyCostOptions
RageCost RageCostOptions
RuneCost RuneCostOptions
FocusCost FocusCostOptions
Cast CastConfig
ExtraCastCondition CanCastCondition
// Optional range constraints. If supplied, these are used to modify the ExtraCastCondition above to additionally check for DistanceFromTarget.
MinRange float64
MaxRange float64
Charges int // The maximum amount of charges this spell can have
RechargeTime time.Duration
BonusHitPercent float64
BonusCritPercent float64
BonusSpellPower float64
BonusExpertiseRating float64
DamageMultiplier float64
DamageMultiplierAdditive float64
CritMultiplier float64
CritMultiplierAdditive float64 // Additive extra crit damage %
BonusCoefficient float64 // EffectBonusCoefficient in SpellEffect client DB table, "SP mod" on Wowhead (not necessarily shown there even if > 0)
ThreatMultiplier float64
FlatThreatBonus float64
// Performs the actions of this spell.
ApplyEffects ApplySpellResults
// Optional field. Calculates expected average damage.
ExpectedInitialDamage ExpectedDamageCalculator
ExpectedTickDamage ExpectedDamageCalculator
Dot DotConfig
Hot DotConfig
Shield ShieldConfig
RelatedAuraArrays LabeledAuraArrays
RelatedDotSpell *Spell
RelatedSelfBuff *Aura
}
type SpellCost ¶
type SpellCost struct {
BaseCost int32 // The base power cost before all modifiers.
FlatModifier int32 // Flat value added to base cost before pct mods
PercentModifier float64 // Multiplier for cost, as of MoP a float
ResourceCostImpl
// contains filtered or unexported fields
}
func (*SpellCost) ApplyCostModifiers ¶
func (*SpellCost) GetCurrentCost ¶
Get power cost after all modifiers.
type SpellFlag ¶
type SpellFlag uint64
Other flags
const ( SpellFlagNone SpellFlag = 0 SpellFlagIgnoreArmor SpellFlag = 1 << iota // skip armor SpellFlagIgnoreTargetModifiers // skip target damage modifiers SpellFlagIgnoreAttackerModifiers // skip attacker damage modifiers SpellFlagApplyArmorReduction // Forces damage reduction from armor to apply, even if it otherwise wouldn't. SpellFlagCannotBeDodged // Ignores dodge in physical hit rolls SpellFlagBinary // Does not do partial resists and could need a different hit roll. SpellFlagBypassAbsorbs // Prevents any active DamageAbsorptionAuras from applying their damage reduction effects. SpellFlagChanneled // Spell is channeled SpellFlagCastWhileChanneling // Spell can be cast while channeling. If SpellFlagChanneled and SpellFlagCastWhileChanneling are both set, it means that other spells with the SpellFlagCastWhileChanneling flag can be cast without interrupting the channeled spell. SpellFlagDisease // Spell is categorized as disease SpellFlagHelpful // For healing spells / buffs. SpellFlagMeleeMetrics // Marks a spell as a melee ability for metrics. SpellFlagNoOnCastComplete // Disables the OnCastComplete callback. SpellFlagNoMetrics // Disables metrics for a spell. SpellFlagNoLogs // Disables logs for a spell. SpellFlagAPL // Indicates this spell can be used from an APL rotation. SpellFlagMCD // Indicates this spell is a MajorCooldown. SpellFlagReactive // Allows a spell flagged as an MCD to be cast off-GCD. Used for instant cast defensive CDs. SpellFlagNoOnDamageDealt // Disables OnSpellHitDealt and OnPeriodicDamageDealt aura callbacks for this spell. SpellFlagPrepullOnly // Indicates this spell should only be used during prepull. Not enforced, just a signal for the APL UI. SpellFlagEncounterOnly // Indicates this spell should only be used during the encounter (not prepull). Not enforced, just a signal for the APL UI. SpellFlagPotion // Indicates this spell is a potion spell. SpellFlagPrepullPotion // Indicates this spell is the prepull potion. SpellFlagCombatPotion // Indicates this spell is the combat potion. SpellFlagNoSpellMods // Indicates that no spell mods should be applied to this spell SpellFlagCanCastWhileMoving // Allows the cast to be casted while moving SpellFlagPassiveSpell // Indicates this spell is applied/cast as a result of another spell SpellFlagSupressDoTApply // If present this spell will not apply dots (Used for DTR dot supression) SpellFlagSwapped // Indicates that this spell is not useable because it is from a currently swapped item SpellFlagAoE // Indicates that this spell is an AoE spell. Spells flagged with this will use the AoE Cap multiplier when calculating damage. SpellFlagRanged // Indicates that this spell is a ranged spell. Spells flagged with this will have increased damage when Hunters Mark is active. SpellFlagReadinessTrinket // Indicates that this spell part of Readiness. Used by Siege of Orgrimmar CDR trinkets. // Used to let agents categorize their spells. SpellFlagAgentReserved1 SpellFlagAgentReserved2 SpellFlagAgentReserved3 SpellFlagAgentReserved4 SpellFlagIgnoreModifiers = SpellFlagIgnoreAttackerModifiers | SpellFlagIgnoreTargetModifiers )
type SpellMetrics ¶
type SpellMetrics struct {
Casts int32
Misses int32
Hits int32
Crits int32
Ticks int32
CritTicks int32
Crushes int32
Dodges int32
Parries int32
Blocks int32
CritBlocks int32
Glances int32
GlanceBlocks int32
TotalDamage float64 // Damage done by all casts of this spell.
TotalCritDamage float64 // Damage done by all critical casts of this spell.
TotalTickDamage float64 // Damage done by all dots of this spell.
TotalCritTickDamage float64 // Damage done by all critical dots of this spell.
TotalGlanceDamage float64 // Damage done by all glance casts of this spell.
TotalGlanceBlockDamage float64 // Damage done by all glance block casts of this spell.
TotalBlockDamage float64 // Damage done by all block casts of this spell.
TotalCritBlockDamage float64 // Damage done by all critical block casts of this spell.
TotalThreat float64 // Threat generated by all casts of this spell.
TotalHealing float64 // Healing done by all casts of this spell.
TotalCritHealing float64 // Healing done by all critical casts of this spell.
TotalShielding float64 // Shielding done by all casts of this spell.
TotalCastTime time.Duration
}
Metric totals for a spell against a specific target, for the current iteration.
type SpellMod ¶
type SpellMod struct {
ClassMask int64
Kind SpellModType
School SpellSchool
ProcMask ProcMask
SpellFlag SpellFlag
ResourceType proto.ResourceType
Apply SpellModApply
Remove SpellModRemove
IsActive bool
AffectedSpells []*Spell
OnReset SpellModOnReset
// contains filtered or unexported fields
}
func (*SpellMod) Deactivate ¶
func (mod *SpellMod) Deactivate()
func (*SpellMod) GetFloatValue ¶
func (*SpellMod) GetIntValue ¶
func (*SpellMod) GetTimeValue ¶
func (*SpellMod) UpdateFloatValue ¶
func (*SpellMod) UpdateIntValue ¶
func (*SpellMod) UpdateTimeValue ¶
type SpellModApply ¶
type SpellModConfig ¶
type SpellModConfig struct {
ClassMask int64
Kind SpellModType
School SpellSchool
ProcMask ProcMask
SpellFlag SpellFlag
ResourceType proto.ResourceType
IntValue int32
TimeValue time.Duration
FloatValue float64
KeyValue string
ApplyCustom SpellModApply
RemoveCustom SpellModRemove
ResetCustom SpellModOnReset
ShouldApplyToPets bool
}
type SpellModFunctions ¶
type SpellModFunctions struct {
Apply SpellModApply
Remove SpellModRemove
OnReset SpellModOnReset
}
type SpellModOnReset ¶
type SpellModOnReset func(mod *SpellMod)
type SpellModRemove ¶
type SpellModType ¶
type SpellModType uint32
Mod implmentations
const ( // Will multiply the spell.DamageDoneMultiplier. +5% = 0.05 // Uses FloatValue SpellMod_DamageDone_Pct SpellModType = 1 << iota // Will add the value spell.DamageDoneAddMultiplier // Uses FloatValue SpellMod_DamageDone_Flat // Will reduce spell.Cost.PercentModifier by % amount. -5% = -0.05 // For 0 Mana cost use -2 // Uses FloatValue SpellMod_PowerCost_Pct // Increases or decreases spell.Cost.FlatModifier by flat amount. -5 Mana = -5 // Uses IntValue SpellMod_PowerCost_Flat // Increases or decreases RuneCost.RunicPowerCost by flat amount // Uses FloatValue SpellMod_RunicPowerCost_Flat // Will add time.Duration to spell.CD.Duration // Uses TimeValue SpellMod_Cooldown_Flat // Will multiply the spell CD multiplier. -5% = 0.95 // Uses FloatValue SpellMod_Cooldown_Multiplier // Will increase the AdditiveCritMultiplier. +100% = 1.0 // Uses FloatValue SpellMod_CritMultiplier_Flat // Will add / substract % amount from the cast time multiplier. // Ueses: FloatValue SpellMod_CastTime_Pct // Will add / substract time from the cast time. // Ueses: TimeValue SpellMod_CastTime_Flat // Add/subtract bonus crit % // Uses: FloatValue SpellMod_BonusCrit_Percent // Add/subtract bonus hit % // Uses: FloatValue SpellMod_BonusHit_Percent // Add/subtract to the dots max ticks // Uses: IntValue SpellMod_DotNumberOfTicks_Flat // Add/subtract to the casts gcd // Uses: TimeValue SpellMod_GlobalCooldown_Flat // Add/substrct to the base tick frequency // Uses: TimeValue SpellMod_DotTickLength_Flat // Add/subtract bonus coefficient // Uses: FloatValue SpellMod_BonusCoeffecient_Flat // Enables casting while moving SpellMod_AllowCastWhileMoving // Enables casting while channeling SpellMod_AllowCastWhileChanneling // Add/subtract bonus spell power // Uses: FloatValue SpellMod_BonusSpellPower_Flat // Add/subtract bonus expertise rating // Uses: FloatValue SpellMod_BonusExpertise_Rating // Add/subtract duration for associated debuff // Uses: KeyValue, TimeValue SpellMod_DebuffDuration_Flat // Add/subtract duration for associated self-buff // Uses: TimeValue SpellMod_BuffDuration_Flat // User-defined implementation // Uses: ApplyCustom | RemoveCustom SpellMod_Custom // Used to modify the amount of charges a spell has // Uses: IntValue SpellMod_ModCharges_Flat // Will multiply the dot.PeriodicDamageMultiplier. +5% = 0.05 // Uses FloatValue SpellMod_DotDamageDone_Pct // Will increase the dot.BaseDurationMultiplier. +5% = 0.05 // Uses FloatValue SpellMod_DotBaseDuration_Pct )
type SpellRegisteredHandler ¶
type SpellRegisteredHandler func(spell *Spell)
type SpellResult ¶
type SpellResult struct {
// Target of the spell.
Target *Unit
// Results
Outcome HitOutcome
Damage float64 // Damage done by this cast.
Threat float64 // The amount of threat generated by this cast.
ArmorMultiplier float64 // Armor multiplier
PostArmorDamage float64 // Damage done by this cast after Armor is applied
PostOutcomeDamage float64 // Damage done by this cast after Outcome is applied
// contains filtered or unexported fields
}
func (*SpellResult) DamageString ¶
func (result *SpellResult) DamageString() string
func (*SpellResult) DidBlock ¶
func (result *SpellResult) DidBlock() bool
func (*SpellResult) DidCrit ¶
func (result *SpellResult) DidCrit() bool
func (*SpellResult) DidGlance ¶
func (result *SpellResult) DidGlance() bool
func (*SpellResult) HealingString ¶
func (result *SpellResult) HealingString() string
func (*SpellResult) Landed ¶
func (result *SpellResult) Landed() bool
type SpellResultCache ¶ added in v0.0.10
type SpellResultCache map[*Unit]*SpellResult
func (SpellResultCache) Get ¶ added in v0.0.10
func (resultCache SpellResultCache) Get(target *Unit) *SpellResult
type SpellResultIteration ¶ added in v0.0.10
type SpellResultIteration func(*Simulation, *Unit, float64, OutcomeApplier) *SpellResult
type SpellResultSlice ¶ added in v0.0.10
type SpellResultSlice []*SpellResult
func (SpellResultSlice) AnyLanded ¶ added in v0.0.10
func (results SpellResultSlice) AnyLanded() bool
func (SpellResultSlice) NumLandedHits ¶ added in v0.0.10
func (results SpellResultSlice) NumLandedHits() int32
type SpellSchool ¶
type SpellSchool byte
const ( SpellSchoolNone SpellSchool = 0 SpellSchoolPhysical SpellSchool = 1 << iota SpellSchoolArcane SpellSchoolFire SpellSchoolFrost SpellSchoolHoly SpellSchoolNature SpellSchoolShadow SpellSchoolChaos SpellSchool = SpellSchoolArcane | SpellSchoolFire | SpellSchoolFrost | SpellSchoolHoly | SpellSchoolNature | SpellSchoolShadow SpellSchoolShadowFlame SpellSchool = SpellSchoolFire | SpellSchoolShadow SpellSchoolShadowFrost SpellSchool = SpellSchoolFrost | SpellSchoolShadow SpellSchoolPlague SpellSchool = SpellSchoolNature | SpellSchoolShadow SpellSchoolFirestorm SpellSchool = SpellSchoolFire | SpellSchoolNature SpellSchoolFrostfire SpellSchool = SpellSchoolFire | SpellSchoolFrost SpellSchoolElemental SpellSchool = SpellSchoolFire | SpellSchoolNature | SpellSchoolFrost )
func SpellSchoolFromProto ¶
func SpellSchoolFromProto(p proto.SpellSchool) SpellSchool
func (SpellSchool) Matches ¶
func (ss SpellSchool) Matches(other SpellSchool) bool
Returns whether there is any overlap between the given masks.
type SplitMix64 ¶
type SplitMix64 struct {
// contains filtered or unexported fields
}
adapted from https://prng.di.unimi.it/splitmix64.c
func NewSplitMix ¶
func NewSplitMix(seed uint64) *SplitMix64
func (*SplitMix64) GetSeed ¶
func (sm *SplitMix64) GetSeed() int64
func (*SplitMix64) Int63 ¶
func (sm *SplitMix64) Int63() int64
func (*SplitMix64) Next ¶
func (sm *SplitMix64) Next() uint64
func (*SplitMix64) NextFloat64 ¶
func (sm *SplitMix64) NextFloat64() float64
func (*SplitMix64) Seed ¶
func (sm *SplitMix64) Seed(s int64)
func (*SplitMix64) Uint64 ¶
func (sm *SplitMix64) Uint64() uint64
type StackingStatAura ¶
type StatBuffAura ¶
type StatBuffAura struct {
*Aura
// All Stat types that are buffed (before dependencies) when this Aura
// is activated.
BuffedStatTypes []stats.Stat
// Any special conditions (beyond standard ICD checks etc.) that must be
// satisfied before this Aura can be activated.
CustomProcCondition CustomStatBuffProcCondition
// Whether the aura is currently swapped (in another item set) out or not.
IsSwapped bool
}
Analog to an Aura "sub-class" that additionally links the Aura to one or more Stats. Used within APL snapshotting wrappers.
func MakeStackingAura ¶
func MakeStackingAura(character *Character, config StackingStatAura) *StatBuffAura
func RegisterTemporaryStatsOnUseCD ¶
func RegisterTemporaryStatsOnUseCD(character *Character, auraLabel string, tempStats stats.Stats, duration time.Duration, config SpellConfig) *StatBuffAura
Add a major cooldown to the given agent, which provides a temporary boost to a single stat. This is use for effects like Icon of the Silver Crescent and Bloodlust Brooch.
func (*StatBuffAura) BuffsMatchingStat ¶
func (aura *StatBuffAura) BuffsMatchingStat(statTypesToMatch []stats.Stat) bool
func (*StatBuffAura) CanProc ¶
func (aura *StatBuffAura) CanProc(sim *Simulation) bool
func (*StatBuffAura) InferCDType ¶
func (aura *StatBuffAura) InferCDType() CooldownType
type StatWeightValues ¶
type StatWeightValues struct {
Weights UnitStats
WeightsStdev UnitStats
EpValues UnitStats
EpValuesStdev UnitStats
}
func NewStatWeightValues ¶
func NewStatWeightValues() StatWeightValues
func (*StatWeightValues) ToProto ¶
func (swv *StatWeightValues) ToProto() *proto.StatWeightValues
type StatWeightsResult ¶
type StatWeightsResult struct {
Dps StatWeightValues
Hps StatWeightValues
Tps StatWeightValues
Dtps StatWeightValues
Tmi StatWeightValues
PDeath StatWeightValues
}
func NewStatWeightsResult ¶
func NewStatWeightsResult() *StatWeightsResult
func (*StatWeightsResult) ToProto ¶
func (swr *StatWeightsResult) ToProto() *proto.StatWeightsResult
type SubGenerator ¶
type SubGenerator struct {
// contains filtered or unexported fields
}
type TalentsCombo ¶
func GenerateTalentVariations ¶ added in v0.0.4
func GenerateTalentVariations(baseTalents string, baseGlyphs *proto.Glyphs) []TalentsCombo
func GenerateTalentVariationsForRows ¶ added in v0.0.4
func GenerateTalentVariationsForRows(baseTalents string, baseGlyphs *proto.Glyphs, rowsToVary []int) []TalentsCombo
type Target ¶
Target is an enemy/boss that can be the target of player attacks/spells.
func (*Target) AddComboPoints ¶
func (eb *Target) AddComboPoints(sim *Simulation, pointsToAdd int32, target *Unit, metrics *ResourceMetrics)
func (*Target) AddEnergy ¶
func (eb *Target) AddEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Target) AddFocus ¶
func (fb *Target) AddFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Target) AddPartyBuffs ¶
func (target *Target) AddPartyBuffs(_ *proto.PartyBuffs)
func (*Target) AddRage ¶
func (rb *Target) AddRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Target) AddRaidBuffs ¶
Empty Agent interface functions.
func (*Target) AddRunicPower ¶
func (rp *Target) AddRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Target) AddUnscaledRunicPower ¶
func (rp *Target) AddUnscaledRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Target) Advance ¶
func (rp *Target) Advance(sim *Simulation, newTime time.Duration)
func (*Target) AllRunesSpent ¶
func (rp *Target) AllRunesSpent() bool
func (*Target) AnyDepletedRunes ¶
func (rp *Target) AnyDepletedRunes() bool
func (*Target) AnyRuneReadyAt ¶
func (rp *Target) AnyRuneReadyAt(sim *Simulation) time.Duration
func (*Target) AnySpentRuneReadyAt ¶
AnySpentRuneReadyAt returns the next time that a rune will regenerate. It will be NeverExpires if there is no rune pending regeneration.
func (*Target) ApplyTalents ¶
func (target *Target) ApplyTalents()
func (*Target) BloodDeathRuneBothReadyAt ¶
func (*Target) BloodRuneReadyAt ¶
func (rp *Target) BloodRuneReadyAt(sim *Simulation) time.Duration
BloodRuneReadyAt returns the earliest time a (possibly death-converted) blood rune is ready.
func (*Target) ComboPoints ¶
func (eb *Target) ComboPoints() int32
func (*Target) ConvertAndRegenBloodTapRune ¶ added in v0.0.1
func (rp *Target) ConvertAndRegenBloodTapRune(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics) bool
Blood tap prioritizes runes based on spec Blood prefers to regen B runes first, then the F/U rune with the highest CD if no blood runes are available. Frost prefers to regen U runes first, then the B/F rune with the highest CD if no other runes are available. Unholy prefers to regen a B/F rune with the highest CD first, then an U rune if no other runes are available.
func (*Target) ConvertAndRegenPlagueLeechRunes ¶ added in v0.0.1
func (rp *Target) ConvertAndRegenPlagueLeechRunes(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics)
Plague leech prioritizes runes based on spec Unholy prefers to regen a pair of B/F runes first, then U if no other runes are available. Blood and Frost prefers to regen a pair of F/U runes first, then B if no other runes are available.
func (*Target) ConvertFromDeath ¶
func (rp *Target) ConvertFromDeath(sim *Simulation, slot int8)
ConvertFromDeath reverts the rune to its original type.
func (*Target) ConvertToDeath ¶
func (rp *Target) ConvertToDeath(sim *Simulation, slot int8, revertAt time.Duration)
ConvertToDeath converts the given slot to death and sets up the reversion conditions
func (*Target) CurrentBloodOrDeathRunes ¶
func (rp *Target) CurrentBloodOrDeathRunes() int8
func (*Target) CurrentBloodRunes ¶
func (rp *Target) CurrentBloodRunes() int8
func (*Target) CurrentDeathRunes ¶
func (rp *Target) CurrentDeathRunes() int8
func (*Target) CurrentEnergy ¶
func (eb *Target) CurrentEnergy() float64
func (*Target) CurrentEnergyRegenMultiplier ¶
func (eb *Target) CurrentEnergyRegenMultiplier() float64
func (*Target) CurrentFocus ¶
func (fb *Target) CurrentFocus() float64
func (*Target) CurrentFrostOrDeathRunes ¶
func (rp *Target) CurrentFrostOrDeathRunes() int8
func (*Target) CurrentFrostRunes ¶
func (rp *Target) CurrentFrostRunes() int8
func (*Target) CurrentHealth ¶
func (hb *Target) CurrentHealth() float64
func (*Target) CurrentHealthPercent ¶
func (hb *Target) CurrentHealthPercent() float64
func (*Target) CurrentRage ¶
func (rb *Target) CurrentRage() float64
func (*Target) CurrentRunicPower ¶
func (rp *Target) CurrentRunicPower() float64
func (*Target) CurrentUnholyOrDeathRunes ¶
func (rp *Target) CurrentUnholyOrDeathRunes() int8
func (*Target) CurrentUnholyRunes ¶
func (rp *Target) CurrentUnholyRunes() int8
func (*Target) DeathRuneRegenAt ¶
DeathRuneRegenAt returns the time the given death rune will regen at. If the rune is not death or not spent it returns NeverExpires.
func (*Target) DeathRuneRevertAt ¶
DeathRuneRevertAt returns the next time that a death rune will revert. If there is no death rune that needs to revert it returns NeverExpires.
func (*Target) DeathRunesInFU ¶
func (rp *Target) DeathRunesInFU() int8
func (*Target) DebugString ¶
func (rp *Target) DebugString() string
func (*Target) Disable ¶ added in v0.0.10
func (target *Target) Disable(sim *Simulation, expireAuras bool)
func (*Target) Enable ¶ added in v0.0.10
func (target *Target) Enable(sim *Simulation)
func (*Target) EndOOMEvent ¶
func (mb *Target) EndOOMEvent(sim *Simulation)
func (*Target) EnergyRegenPerSecond ¶
func (eb *Target) EnergyRegenPerSecond() float64
func (*Target) ExecuteCustomRotation ¶
func (target *Target) ExecuteCustomRotation(sim *Simulation)
func (*Target) FocusRegenPerSecond ¶
func (fb *Target) FocusRegenPerSecond() float64
func (*Target) FocusRegenPerTick ¶
func (fb *Target) FocusRegenPerTick() float64
func (*Target) FrostRuneReadyAt ¶
func (rp *Target) FrostRuneReadyAt(sim *Simulation) time.Duration
func (*Target) GainHealth ¶
func (hb *Target) GainHealth(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Target) GetActiveAuraWithTag ¶
func (*Target) GetAuraByID ¶
func (*Target) GetAurasWithTag ¶
func (*Target) GetCharacter ¶
func (*Target) GetIcdAuraByID ¶
func (*Target) GetMetricsProto ¶
func (target *Target) GetMetricsProto() *proto.UnitMetrics
func (*Target) GetRuneRegenMultiplier ¶
func (rp *Target) GetRuneRegenMultiplier() float64
func (*Target) HasActiveAura ¶
func (*Target) HasActiveAuraWithTag ¶
func (*Target) HasActiveAuraWithTagExcludingAura ¶
func (*Target) HasAuraWithTag ¶
func (*Target) Initialize ¶
func (target *Target) Initialize()
func (*Target) IsReset ¶
func (eb *Target) IsReset(sim *Simulation) bool
func (*Target) LeftBloodRuneReady ¶
func (rp *Target) LeftBloodRuneReady() bool
func (*Target) MaxComboPoints ¶
func (eb *Target) MaxComboPoints() int32
func (*Target) MaximumEnergy ¶
func (eb *Target) MaximumEnergy() float64
func (*Target) MaximumFocus ¶
func (fb *Target) MaximumFocus() float64
func (*Target) MaximumRage ¶
func (rb *Target) MaximumRage() float64
func (*Target) MaximumRunicPower ¶
func (rp *Target) MaximumRunicPower() float64
func (*Target) MultiplyAutoAttackRageGen ¶
func (rb *Target) MultiplyAutoAttackRageGen(multiplier float64)
Call this within the OnGain and OnExpire callbacks for Battle Stance, Raging Whirlwind, etc.
func (*Target) MultiplyEnergyRegenSpeed ¶
func (eb *Target) MultiplyEnergyRegenSpeed(sim *Simulation, multiplier float64)
func (*Target) MultiplyFocusRegenSpeed ¶
func (fb *Target) MultiplyFocusRegenSpeed(sim *Simulation, multiplier float64)
func (*Target) MultiplyRageGen ¶ added in v0.0.105
func (rb *Target) MultiplyRageGen(multiplier float64)
func (*Target) MultiplyRuneRegenSpeed ¶
func (rp *Target) MultiplyRuneRegenSpeed(sim *Simulation, multiplier float64)
func (*Target) MultiplyRunicRegen ¶
func (rp *Target) MultiplyRunicRegen(multiply float64)
func (*Target) NewBloodRuneMetrics ¶ added in v0.0.1
func (rp *Target) NewBloodRuneMetrics(action ActionID) *ResourceMetrics
func (*Target) NewDeathRuneMetrics ¶ added in v0.0.1
func (rp *Target) NewDeathRuneMetrics(action ActionID) *ResourceMetrics
func (*Target) NewFrostRuneMetrics ¶ added in v0.0.1
func (rp *Target) NewFrostRuneMetrics(action ActionID) *ResourceMetrics
func (*Target) NewRunicPowerMetrics ¶ added in v0.0.1
func (rp *Target) NewRunicPowerMetrics(action ActionID) *ResourceMetrics
func (*Target) NewUnholyRuneMetrics ¶ added in v0.0.1
func (rp *Target) NewUnholyRuneMetrics(action ActionID) *ResourceMetrics
func (*Target) NextActiveTarget ¶ added in v0.0.10
func (*Target) NextBloodRuneReadyAt ¶
func (rp *Target) NextBloodRuneReadyAt(sim *Simulation) time.Duration
func (*Target) NextEnergyTickAt ¶
func (*Target) NextFocusTickAt ¶
func (*Target) NextFrostRuneReadyAt ¶
func (rp *Target) NextFrostRuneReadyAt(sim *Simulation) time.Duration
func (*Target) NextUnholyRuneReadyAt ¶
func (rp *Target) NextUnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Target) NormalFrostRuneReadyAt ¶
func (rp *Target) NormalFrostRuneReadyAt(sim *Simulation) time.Duration
NormalFrostRuneReadyAt returns the earliest time a non-death frost rune is ready.
func (*Target) NormalSpentBloodRuneReadyAt ¶
func (rp *Target) NormalSpentBloodRuneReadyAt(_ *Simulation) time.Duration
NormalSpentBloodRuneReadyAt returns the earliest time a spent non-death blood rune is ready.
func (*Target) NormalUnholyRuneReadyAt ¶
func (rp *Target) NormalUnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Target) NumActiveAurasWithTag ¶
func (*Target) OnApplyEffects ¶
func (at *Target) OnApplyEffects(sim *Simulation, target *Unit, spell *Spell)
Invokes the OnApplyEffects event for all tracked Auras.
func (*Target) OnCastComplete ¶
func (at *Target) OnCastComplete(sim *Simulation, spell *Spell)
Invokes the OnCastComplete event for all tracked Auras.
func (*Target) OnEncounterStart ¶ added in v0.0.13
func (target *Target) OnEncounterStart(_ *Simulation)
func (*Target) OnHealDealt ¶
func (at *Target) OnHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnHeal event for all tracked Auras.
func (*Target) OnHealTaken ¶
func (at *Target) OnHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Target) OnPeriodicDamageDealt ¶
func (at *Target) OnPeriodicDamageDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnPeriodicDamage
As a debuff when target is being hit by dot. As a buff when caster's dots are ticking.
func (*Target) OnPeriodicDamageTaken ¶
func (at *Target) OnPeriodicDamageTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Target) OnPeriodicHealDealt ¶
func (at *Target) OnPeriodicHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnPeriodicHeal
As a debuff when target is being hit by dot. As a buff when caster's dots are ticking.
func (*Target) OnPeriodicHealTaken ¶
func (at *Target) OnPeriodicHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Target) OnSpellHitDealt ¶
func (at *Target) OnSpellHitDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnSpellHit event for all tracked Auras.
func (*Target) OnSpellHitTaken ¶
func (at *Target) OnSpellHitTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Target) OptimalRuneCost ¶
func (*Target) PreviousActiveTarget ¶ added in v0.0.43
func (*Target) RegenAllFrostAndUnholyRunesAsDeath ¶
func (rp *Target) RegenAllFrostAndUnholyRunesAsDeath(sim *Simulation, deathRuneMetrics *ResourceMetrics)
func (*Target) RegenAllRunes ¶
func (rp *Target) RegenAllRunes(sim *Simulation, metrics []*ResourceMetrics)
func (*Target) RegenRunicEmpowermentRune ¶ added in v0.0.1
func (rp *Target) RegenRunicEmpowermentRune(sim *Simulation, runeMetrics []*ResourceMetrics)
Runic Empowerment regens a randoom fully depleted rune
func (*Target) RegisterResetEffect ¶
func (at *Target) RegisterResetEffect(resetEffect ResetEffect)
Registers a callback to this Character which will be invoked on every Sim reset.
func (*Target) RemoveHealth ¶
func (hb *Target) RemoveHealth(sim *Simulation, amount float64)
func (*Target) Reset ¶
func (target *Target) Reset(sim *Simulation)
func (*Target) ResetComboPoints ¶ added in v0.0.13
func (eb *Target) ResetComboPoints(sim *Simulation, comboPointsToKeep int32)
func (*Target) ResetEnergyTick ¶
func (eb *Target) ResetEnergyTick(sim *Simulation)
Gives an immediate partial energy tick and restarts the tick timer.
func (*Target) ResetFocusTick ¶
func (fb *Target) ResetFocusTick(sim *Simulation)
Gives an immediate partial Focus tick and restarts the tick timer.
func (*Target) ResetRageBar ¶ added in v0.0.13
func (rb *Target) ResetRageBar(sim *Simulation, rageToKeep float64)
func (*Target) ResetRunicPowerBar ¶ added in v0.0.13
func (rp *Target) ResetRunicPowerBar(sim *Simulation, runicPowerToKeep float64)
func (*Target) RuneIsActive ¶
func (*Target) RuneIsDeath ¶
func (*Target) RuneReadyAt ¶
func (rp *Target) RuneReadyAt(sim *Simulation, slot int8) time.Duration
func (*Target) SetMaxComboPoints ¶
func (eb *Target) SetMaxComboPoints(maxComboPoints int32)
func (*Target) SetPermanentDeathRunes ¶
func (rp *Target) SetPermanentDeathRunes(permanentDeaths []int8)
func (*Target) SpendComboPoints ¶
func (eb *Target) SpendComboPoints(sim *Simulation, metrics *ResourceMetrics)
func (*Target) SpendEnergy ¶
func (eb *Target) SpendEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Target) SpendFocus ¶
func (fb *Target) SpendFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Target) SpendPartialComboPoints ¶
func (eb *Target) SpendPartialComboPoints(sim *Simulation, pointsToSpend int32, metrics *ResourceMetrics)
func (*Target) SpendRage ¶
func (rb *Target) SpendRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Target) SpendRuneReadyAt ¶
func (*Target) SpendRunicPower ¶
func (rp *Target) SpendRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Target) StartOOMEvent ¶
func (mb *Target) StartOOMEvent(sim *Simulation, requiredMana float64)
func (*Target) TimeToTargetEnergy ¶
func (*Target) TimeToTargetFocus ¶
func (*Target) UnholyRuneReadyAt ¶
func (rp *Target) UnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Target) UpdateMaxEnergy ¶
func (eb *Target) UpdateMaxEnergy(sim *Simulation, bonusEnergy float64, metrics *ResourceMetrics)
Used for dynamic updates to maximum Energy, such as from the Druid Primal Madness talent
func (*Target) UpdateMaxHealth ¶
func (hb *Target) UpdateMaxHealth(sim *Simulation, bonusHealth float64, metrics *ResourceMetrics)
Used for dynamic updates to maximum health from "Last Stand" effects
type TargetAI ¶
type TargetAI interface {
Initialize(*Target, *proto.Target)
Reset(*Simulation)
ExecuteCustomRotation(*Simulation)
}
type TargetDummy ¶
type TargetDummy struct {
Character
}
func NewTargetDummy ¶
func NewTargetDummy(dummyIndex int, party *Party, partyIndex int) *TargetDummy
func (*TargetDummy) AddComboPoints ¶
func (eb *TargetDummy) AddComboPoints(sim *Simulation, pointsToAdd int32, target *Unit, metrics *ResourceMetrics)
func (*TargetDummy) AddEnergy ¶
func (eb *TargetDummy) AddEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*TargetDummy) AddFocus ¶
func (fb *TargetDummy) AddFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*TargetDummy) AddMajorCooldown ¶
func (mcdm *TargetDummy) AddMajorCooldown(mcd MajorCooldown)
Registers a major cooldown to the Character, which will be automatically used when available.
func (*TargetDummy) AddPartyBuffs ¶
func (td *TargetDummy) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
func (*TargetDummy) AddRage ¶
func (rb *TargetDummy) AddRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*TargetDummy) AddRaidBuffs ¶
func (td *TargetDummy) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
func (*TargetDummy) AddRunicPower ¶
func (rp *TargetDummy) AddRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*TargetDummy) AddUnscaledRunicPower ¶
func (rp *TargetDummy) AddUnscaledRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*TargetDummy) Advance ¶
func (rp *TargetDummy) Advance(sim *Simulation, newTime time.Duration)
func (*TargetDummy) AllRunesSpent ¶
func (rp *TargetDummy) AllRunesSpent() bool
func (*TargetDummy) AnyDepletedRunes ¶
func (rp *TargetDummy) AnyDepletedRunes() bool
func (*TargetDummy) AnyRuneReadyAt ¶
func (rp *TargetDummy) AnyRuneReadyAt(sim *Simulation) time.Duration
func (*TargetDummy) AnySpentRuneReadyAt ¶
AnySpentRuneReadyAt returns the next time that a rune will regenerate. It will be NeverExpires if there is no rune pending regeneration.
func (*TargetDummy) ApplyTalents ¶
func (td *TargetDummy) ApplyTalents()
func (*TargetDummy) BloodDeathRuneBothReadyAt ¶
func (*TargetDummy) BloodRuneReadyAt ¶
func (rp *TargetDummy) BloodRuneReadyAt(sim *Simulation) time.Duration
BloodRuneReadyAt returns the earliest time a (possibly death-converted) blood rune is ready.
func (*TargetDummy) ComboPoints ¶
func (eb *TargetDummy) ComboPoints() int32
func (*TargetDummy) ConvertAndRegenBloodTapRune ¶ added in v0.0.1
func (rp *TargetDummy) ConvertAndRegenBloodTapRune(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics) bool
Blood tap prioritizes runes based on spec Blood prefers to regen B runes first, then the F/U rune with the highest CD if no blood runes are available. Frost prefers to regen U runes first, then the B/F rune with the highest CD if no other runes are available. Unholy prefers to regen a B/F rune with the highest CD first, then an U rune if no other runes are available.
func (*TargetDummy) ConvertAndRegenPlagueLeechRunes ¶ added in v0.0.1
func (rp *TargetDummy) ConvertAndRegenPlagueLeechRunes(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics)
Plague leech prioritizes runes based on spec Unholy prefers to regen a pair of B/F runes first, then U if no other runes are available. Blood and Frost prefers to regen a pair of F/U runes first, then B if no other runes are available.
func (*TargetDummy) ConvertFromDeath ¶
func (rp *TargetDummy) ConvertFromDeath(sim *Simulation, slot int8)
ConvertFromDeath reverts the rune to its original type.
func (*TargetDummy) ConvertToDeath ¶
func (rp *TargetDummy) ConvertToDeath(sim *Simulation, slot int8, revertAt time.Duration)
ConvertToDeath converts the given slot to death and sets up the reversion conditions
func (*TargetDummy) CurrentBloodOrDeathRunes ¶
func (rp *TargetDummy) CurrentBloodOrDeathRunes() int8
func (*TargetDummy) CurrentBloodRunes ¶
func (rp *TargetDummy) CurrentBloodRunes() int8
func (*TargetDummy) CurrentDeathRunes ¶
func (rp *TargetDummy) CurrentDeathRunes() int8
func (*TargetDummy) CurrentEnergy ¶
func (eb *TargetDummy) CurrentEnergy() float64
func (*TargetDummy) CurrentEnergyRegenMultiplier ¶
func (eb *TargetDummy) CurrentEnergyRegenMultiplier() float64
func (*TargetDummy) CurrentFocus ¶
func (fb *TargetDummy) CurrentFocus() float64
func (*TargetDummy) CurrentFrostOrDeathRunes ¶
func (rp *TargetDummy) CurrentFrostOrDeathRunes() int8
func (*TargetDummy) CurrentFrostRunes ¶
func (rp *TargetDummy) CurrentFrostRunes() int8
func (*TargetDummy) CurrentHealth ¶
func (hb *TargetDummy) CurrentHealth() float64
func (*TargetDummy) CurrentHealthPercent ¶
func (hb *TargetDummy) CurrentHealthPercent() float64
func (*TargetDummy) CurrentRage ¶
func (rb *TargetDummy) CurrentRage() float64
func (*TargetDummy) CurrentRunicPower ¶
func (rp *TargetDummy) CurrentRunicPower() float64
func (*TargetDummy) CurrentUnholyOrDeathRunes ¶
func (rp *TargetDummy) CurrentUnholyOrDeathRunes() int8
func (*TargetDummy) CurrentUnholyRunes ¶
func (rp *TargetDummy) CurrentUnholyRunes() int8
func (*TargetDummy) DeathRuneRegenAt ¶
DeathRuneRegenAt returns the time the given death rune will regen at. If the rune is not death or not spent it returns NeverExpires.
func (*TargetDummy) DeathRuneRevertAt ¶
DeathRuneRevertAt returns the next time that a death rune will revert. If there is no death rune that needs to revert it returns NeverExpires.
func (*TargetDummy) DeathRunesInFU ¶
func (rp *TargetDummy) DeathRunesInFU() int8
func (*TargetDummy) DebugString ¶
func (rp *TargetDummy) DebugString() string
func (*TargetDummy) EndOOMEvent ¶
func (mb *TargetDummy) EndOOMEvent(sim *Simulation)
func (*TargetDummy) EnergyRegenPerSecond ¶
func (eb *TargetDummy) EnergyRegenPerSecond() float64
func (*TargetDummy) ExecuteCustomRotation ¶
func (td *TargetDummy) ExecuteCustomRotation(sim *Simulation)
func (*TargetDummy) FocusRegenPerSecond ¶
func (fb *TargetDummy) FocusRegenPerSecond() float64
func (*TargetDummy) FocusRegenPerTick ¶
func (fb *TargetDummy) FocusRegenPerTick() float64
func (*TargetDummy) FrostRuneReadyAt ¶
func (rp *TargetDummy) FrostRuneReadyAt(sim *Simulation) time.Duration
func (*TargetDummy) GainHealth ¶
func (hb *TargetDummy) GainHealth(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*TargetDummy) GetActiveAuraWithTag ¶
func (*TargetDummy) GetAuraByID ¶
func (*TargetDummy) GetAurasWithTag ¶
func (*TargetDummy) GetCharacter ¶
func (td *TargetDummy) GetCharacter() *Character
func (*TargetDummy) GetIcdAuraByID ¶
func (*TargetDummy) GetInitialMajorCooldown ¶
func (mcdm *TargetDummy) GetInitialMajorCooldown(actionID ActionID) MajorCooldown
func (*TargetDummy) GetMajorCooldown ¶
func (mcdm *TargetDummy) GetMajorCooldown(actionID ActionID) *MajorCooldown
func (*TargetDummy) GetMajorCooldownIDs ¶
func (*TargetDummy) GetMajorCooldownIgnoreTag ¶
func (mcdm *TargetDummy) GetMajorCooldownIgnoreTag(actionID ActionID) *MajorCooldown
func (*TargetDummy) GetMajorCooldowns ¶
func (mcdm *TargetDummy) GetMajorCooldowns() []*MajorCooldown
Returns all MCDs.
func (*TargetDummy) GetMatchingStatBuffCooldownAuras ¶ added in v0.0.33
func (mcdm *TargetDummy) GetMatchingStatBuffCooldownAuras(statTypesToMatch []stats.Stat) []*StatBuffAura
func (*TargetDummy) GetMatchingStatBuffSpells ¶
func (*TargetDummy) GetRuneRegenMultiplier ¶
func (rp *TargetDummy) GetRuneRegenMultiplier() float64
func (*TargetDummy) HasActiveAura ¶
func (*TargetDummy) HasActiveAuraWithTag ¶
func (*TargetDummy) HasActiveAuraWithTagExcludingAura ¶
func (*TargetDummy) HasAuraWithTag ¶
func (*TargetDummy) Initialize ¶
func (td *TargetDummy) Initialize()
func (*TargetDummy) IsReset ¶
func (eb *TargetDummy) IsReset(sim *Simulation) bool
func (*TargetDummy) LeftBloodRuneReady ¶
func (rp *TargetDummy) LeftBloodRuneReady() bool
func (*TargetDummy) MaxComboPoints ¶
func (eb *TargetDummy) MaxComboPoints() int32
func (*TargetDummy) MaximumEnergy ¶
func (eb *TargetDummy) MaximumEnergy() float64
func (*TargetDummy) MaximumFocus ¶
func (fb *TargetDummy) MaximumFocus() float64
func (*TargetDummy) MaximumRage ¶
func (rb *TargetDummy) MaximumRage() float64
func (*TargetDummy) MaximumRunicPower ¶
func (rp *TargetDummy) MaximumRunicPower() float64
func (*TargetDummy) MultiplyAutoAttackRageGen ¶
func (rb *TargetDummy) MultiplyAutoAttackRageGen(multiplier float64)
Call this within the OnGain and OnExpire callbacks for Battle Stance, Raging Whirlwind, etc.
func (*TargetDummy) MultiplyEnergyRegenSpeed ¶
func (eb *TargetDummy) MultiplyEnergyRegenSpeed(sim *Simulation, multiplier float64)
func (*TargetDummy) MultiplyFocusRegenSpeed ¶
func (fb *TargetDummy) MultiplyFocusRegenSpeed(sim *Simulation, multiplier float64)
func (*TargetDummy) MultiplyRageGen ¶ added in v0.0.105
func (rb *TargetDummy) MultiplyRageGen(multiplier float64)
func (*TargetDummy) MultiplyRuneRegenSpeed ¶
func (rp *TargetDummy) MultiplyRuneRegenSpeed(sim *Simulation, multiplier float64)
func (*TargetDummy) MultiplyRunicRegen ¶
func (rp *TargetDummy) MultiplyRunicRegen(multiply float64)
func (*TargetDummy) NewBloodRuneMetrics ¶ added in v0.0.1
func (rp *TargetDummy) NewBloodRuneMetrics(action ActionID) *ResourceMetrics
func (*TargetDummy) NewDeathRuneMetrics ¶ added in v0.0.1
func (rp *TargetDummy) NewDeathRuneMetrics(action ActionID) *ResourceMetrics
func (*TargetDummy) NewFrostRuneMetrics ¶ added in v0.0.1
func (rp *TargetDummy) NewFrostRuneMetrics(action ActionID) *ResourceMetrics
func (*TargetDummy) NewRunicPowerMetrics ¶ added in v0.0.1
func (rp *TargetDummy) NewRunicPowerMetrics(action ActionID) *ResourceMetrics
func (*TargetDummy) NewUnholyRuneMetrics ¶ added in v0.0.1
func (rp *TargetDummy) NewUnholyRuneMetrics(action ActionID) *ResourceMetrics
func (*TargetDummy) NextBloodRuneReadyAt ¶
func (rp *TargetDummy) NextBloodRuneReadyAt(sim *Simulation) time.Duration
func (*TargetDummy) NextEnergyTickAt ¶
func (*TargetDummy) NextFocusTickAt ¶
func (*TargetDummy) NextFrostRuneReadyAt ¶
func (rp *TargetDummy) NextFrostRuneReadyAt(sim *Simulation) time.Duration
func (*TargetDummy) NextUnholyRuneReadyAt ¶
func (rp *TargetDummy) NextUnholyRuneReadyAt(sim *Simulation) time.Duration
func (*TargetDummy) NormalFrostRuneReadyAt ¶
func (rp *TargetDummy) NormalFrostRuneReadyAt(sim *Simulation) time.Duration
NormalFrostRuneReadyAt returns the earliest time a non-death frost rune is ready.
func (*TargetDummy) NormalSpentBloodRuneReadyAt ¶
func (rp *TargetDummy) NormalSpentBloodRuneReadyAt(_ *Simulation) time.Duration
NormalSpentBloodRuneReadyAt returns the earliest time a spent non-death blood rune is ready.
func (*TargetDummy) NormalUnholyRuneReadyAt ¶
func (rp *TargetDummy) NormalUnholyRuneReadyAt(sim *Simulation) time.Duration
func (*TargetDummy) NumActiveAurasWithTag ¶
func (*TargetDummy) OnApplyEffects ¶
func (at *TargetDummy) OnApplyEffects(sim *Simulation, target *Unit, spell *Spell)
Invokes the OnApplyEffects event for all tracked Auras.
func (*TargetDummy) OnCastComplete ¶
func (at *TargetDummy) OnCastComplete(sim *Simulation, spell *Spell)
Invokes the OnCastComplete event for all tracked Auras.
func (*TargetDummy) OnEncounterStart ¶ added in v0.0.13
func (td *TargetDummy) OnEncounterStart(sim *Simulation)
func (*TargetDummy) OnHealDealt ¶
func (at *TargetDummy) OnHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnHeal event for all tracked Auras.
func (*TargetDummy) OnHealTaken ¶
func (at *TargetDummy) OnHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*TargetDummy) OnPeriodicDamageDealt ¶
func (at *TargetDummy) OnPeriodicDamageDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnPeriodicDamage
As a debuff when target is being hit by dot. As a buff when caster's dots are ticking.
func (*TargetDummy) OnPeriodicDamageTaken ¶
func (at *TargetDummy) OnPeriodicDamageTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*TargetDummy) OnPeriodicHealDealt ¶
func (at *TargetDummy) OnPeriodicHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnPeriodicHeal
As a debuff when target is being hit by dot. As a buff when caster's dots are ticking.
func (*TargetDummy) OnPeriodicHealTaken ¶
func (at *TargetDummy) OnPeriodicHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*TargetDummy) OnSpellHitDealt ¶
func (at *TargetDummy) OnSpellHitDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnSpellHit event for all tracked Auras.
func (*TargetDummy) OnSpellHitTaken ¶
func (at *TargetDummy) OnSpellHitTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*TargetDummy) OptimalRuneCost ¶
func (*TargetDummy) RegenAllFrostAndUnholyRunesAsDeath ¶
func (rp *TargetDummy) RegenAllFrostAndUnholyRunesAsDeath(sim *Simulation, deathRuneMetrics *ResourceMetrics)
func (*TargetDummy) RegenAllRunes ¶
func (rp *TargetDummy) RegenAllRunes(sim *Simulation, metrics []*ResourceMetrics)
func (*TargetDummy) RegenRunicEmpowermentRune ¶ added in v0.0.1
func (rp *TargetDummy) RegenRunicEmpowermentRune(sim *Simulation, runeMetrics []*ResourceMetrics)
Runic Empowerment regens a randoom fully depleted rune
func (*TargetDummy) RegisterResetEffect ¶
func (at *TargetDummy) RegisterResetEffect(resetEffect ResetEffect)
Registers a callback to this Character which will be invoked on every Sim reset.
func (*TargetDummy) RemoveHealth ¶
func (hb *TargetDummy) RemoveHealth(sim *Simulation, amount float64)
func (*TargetDummy) Reset ¶
func (td *TargetDummy) Reset(sim *Simulation)
func (*TargetDummy) ResetComboPoints ¶ added in v0.0.13
func (eb *TargetDummy) ResetComboPoints(sim *Simulation, comboPointsToKeep int32)
func (*TargetDummy) ResetEnergyTick ¶
func (eb *TargetDummy) ResetEnergyTick(sim *Simulation)
Gives an immediate partial energy tick and restarts the tick timer.
func (*TargetDummy) ResetFocusTick ¶
func (fb *TargetDummy) ResetFocusTick(sim *Simulation)
Gives an immediate partial Focus tick and restarts the tick timer.
func (*TargetDummy) ResetRageBar ¶ added in v0.0.13
func (rb *TargetDummy) ResetRageBar(sim *Simulation, rageToKeep float64)
func (*TargetDummy) ResetRunicPowerBar ¶ added in v0.0.13
func (rp *TargetDummy) ResetRunicPowerBar(sim *Simulation, runicPowerToKeep float64)
func (*TargetDummy) RuneIsActive ¶
func (*TargetDummy) RuneIsDeath ¶
func (*TargetDummy) RuneReadyAt ¶
func (rp *TargetDummy) RuneReadyAt(sim *Simulation, slot int8) time.Duration
func (*TargetDummy) SetMaxComboPoints ¶
func (eb *TargetDummy) SetMaxComboPoints(maxComboPoints int32)
func (*TargetDummy) SetPermanentDeathRunes ¶
func (rp *TargetDummy) SetPermanentDeathRunes(permanentDeaths []int8)
func (*TargetDummy) SpendComboPoints ¶
func (eb *TargetDummy) SpendComboPoints(sim *Simulation, metrics *ResourceMetrics)
func (*TargetDummy) SpendEnergy ¶
func (eb *TargetDummy) SpendEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*TargetDummy) SpendFocus ¶
func (fb *TargetDummy) SpendFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*TargetDummy) SpendPartialComboPoints ¶
func (eb *TargetDummy) SpendPartialComboPoints(sim *Simulation, pointsToSpend int32, metrics *ResourceMetrics)
func (*TargetDummy) SpendRage ¶
func (rb *TargetDummy) SpendRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*TargetDummy) SpendRuneReadyAt ¶
func (*TargetDummy) SpendRunicPower ¶
func (rp *TargetDummy) SpendRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*TargetDummy) StartOOMEvent ¶
func (mb *TargetDummy) StartOOMEvent(sim *Simulation, requiredMana float64)
func (*TargetDummy) TimeToTargetEnergy ¶
func (*TargetDummy) TimeToTargetFocus ¶
func (*TargetDummy) UnholyRuneReadyAt ¶
func (rp *TargetDummy) UnholyRuneReadyAt(sim *Simulation) time.Duration
func (*TargetDummy) UpdateMajorCooldowns ¶
func (mcdm *TargetDummy) UpdateMajorCooldowns()
This function should be called if the CD for a major cooldown changes outside of the TryActivate() call.
func (*TargetDummy) UpdateMaxEnergy ¶
func (eb *TargetDummy) UpdateMaxEnergy(sim *Simulation, bonusEnergy float64, metrics *ResourceMetrics)
Used for dynamic updates to maximum Energy, such as from the Druid Primal Madness talent
func (*TargetDummy) UpdateMaxHealth ¶
func (hb *TargetDummy) UpdateMaxHealth(sim *Simulation, bonusHealth float64, metrics *ResourceMetrics)
Used for dynamic updates to maximum health from "Last Stand" effects
type TargetedActionMetrics ¶
type TargetedActionMetrics struct {
UnitIndex int32
Casts int32
Hits int32
Crits int32
Ticks int32
CritTicks int32
Misses int32
Dodges int32
Parries int32
Blocks int32
CritBlocks int32
Glances int32
GlanceBlocks int32
Damage float64
CritDamage float64
TickDamage float64
CritTickDamage float64
GlanceDamage float64
GlanceBlockDamage float64
BlockDamage float64
CritBlockDamage float64
Threat float64
Healing float64
CritHealing float64
Shielding float64
CastTime time.Duration
}
func (*TargetedActionMetrics) ToProto ¶
func (tam *TargetedActionMetrics) ToProto() *proto.TargetedActionMetrics
type Task ¶
type Task interface {
RunTask(sim *Simulation) time.Duration
}
type TemporaryStatBuffWithStacksConfig ¶
type TemporaryStatBuffWithStacksConfig struct {
StackingAuraLabel string
StackingAuraActionID ActionID
AuraLabel string
ActionID ActionID
BonusPerStack stats.Stats
MaxStacks int32
TimePerStack time.Duration
Duration time.Duration
TickImmediately bool
DecrementStacks bool // Set to true if the aura should start at MaxStacks and decrement by 1 each tick
}
type TestGenerator ¶
type TestGenerator interface {
// The total number of tests that this generator can generate.
NumTests() int
// The name and API request for the test with the given index.
GetTest(testIdx int) (string, *proto.ComputeStatsRequest, *proto.StatWeightsRequest, *proto.RaidSimRequest)
}
func FullCharacterTestSuiteGenerator ¶
func FullCharacterTestSuiteGenerator(configs []CharacterSuiteConfig) []TestGenerator
FullCharacterTestSuiteGenerator generates a full test suite for a character. Also accepts JSON build config, Example: core.GetTestBuildFromJSON(proto.Class_ClassWarrior, "../../../ui/warrior/arms/builds", "default", ItemFilter, proto.Stat_StatStrength, nil)
type Timer ¶
Stored value is the time at which the cooldown will be available again.
func (*Timer) IsReady ¶
func (timer *Timer) IsReady(sim *Simulation) bool
func (*Timer) TimeToReady ¶
func (timer *Timer) TimeToReady(sim *Simulation) time.Duration
type Unit ¶
type Unit struct {
Type UnitType
// Index of this unit with its group.
// For Players, this is the 0-indexed raid index (0-24).
// For Enemies, this is its enemy index.
// For Pets, this is the same as the owner's index.
Index int32
// Unique index of this unit among all units in the environment.
// This is used as the index for attack tables.
UnitIndex int32
// Unique label for logging.
Label string
Level int32 // Level of Unit, e.g. Bosses are 83.
MobType proto.MobType
// Amount of time it takes for the human agent to react to in-game events.
// Used by certain APL values and actions.
ReactionTime time.Duration
// Amount of time following a post-GCD channel tick, to when the next action can be performed.
ChannelClipDelay time.Duration
// How far this unit is from its target(s). Measured in yards, this is used
// for calculating spell travel time for certain spells.
StartDistanceFromTarget float64
DistanceFromTarget float64
Moving bool
// Environment in which this Unit exists. This will be nil until after the
// construction phase.
Env *Environment
// Provides stat dependency management behavior.
stats.StatDependencyManager
PseudoStats stats.PseudoStats
// All spells that can be cast by this unit.
Spellbook []*Spell
// Pets owned by this Unit.
PetAgents []PetAgent
DynamicStatsPets []*Pet
DynamicMeleeSpeedPets []*Pet
DynamicCastSpeedPets []*Pet
RegenInheritancePets []*Pet
// AutoAttacks is the manager for auto attack swings.
// Must be enabled to use, with "EnableAutoAttacks()".
AutoAttacks AutoAttacks
Rotation *APLRotation
// Statistics describing the results of the sim.
Metrics UnitMetrics
AttackTables []*AttackTable
DynamicDamageTakenModifiers []DynamicDamageTakenModifier
DynamicHealingTakenModifiers []DynamicHealingTakenModifier
Blockhandler func(sim *Simulation, spell *Spell, result *SpellResult)
GCD *Timer
// Separate from GCD timer to support spell queueing and off-GCD actions
RotationTimer *Timer
// Used for applying the effect of a hardcast spell when casting finishes.
// For channeled spells, only Expires is set.
// No more than one cast may be active at any given time.
Hardcast Hardcast
CastSpeed float64
CurrentTarget *Unit
SecondaryTarget *Unit // Only used for NPCs in tank swap AIs currently.
// The currently-channeled DOT spell, otherwise nil.
ChanneledDot *Dot
// Data about the most recently queued spell, otherwise nil.
QueuedSpell *QueuedSpell
// Used for reacting to mastery stat changes
OnMasteryStatChanged []OnMasteryStatChanged
// Used for reacting to cast speed changes
OnCastSpeedChanged []OnSpeedChanged
// Used for reacting to melee attack speed changes
OnMeleeAttackSpeedChanged []OnSpeedChanged
// Used for reacting to ranged attack speed changes
OnRangedAttackSpeedChanged []OnSpeedChanged
// Used for reacting to melee and ranged haste changes
OnMeleeAndRangedHasteChanged []OnSpeedChanged
// Used for reacting to transient stat changes (e.g. for caching snapshotting calculations)
OnTemporaryStatsChanges []OnTemporaryStatsChange
GetSpellPowerValue GetSpellPowerValue
GetAttackPowerValue GetAttackPowerValue
SpellsInFlight map[*Spell]int32
// contains filtered or unexported fields
}
Unit is an abstraction of a Character/Boss/Pet/etc, containing functionality shared by all of them.
func (*Unit) AddBonusRangedCritPercent ¶
func (*Unit) AddBonusRangedHitPercent ¶
func (*Unit) AddComboPoints ¶
func (eb *Unit) AddComboPoints(sim *Simulation, pointsToAdd int32, target *Unit, metrics *ResourceMetrics)
func (*Unit) AddDynamicDamageTakenModifier ¶
func (unit *Unit) AddDynamicDamageTakenModifier(ddtm DynamicDamageTakenModifier)
func (*Unit) AddDynamicHealingTakenModifier ¶
func (unit *Unit) AddDynamicHealingTakenModifier(dhtm DynamicHealingTakenModifier)
func (*Unit) AddDynamicMod ¶
func (unit *Unit) AddDynamicMod(config SpellModConfig) *SpellMod
func (*Unit) AddEnergy ¶
func (eb *Unit) AddEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) AddFocus ¶
func (fb *Unit) AddFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) AddMana ¶
func (unit *Unit) AddMana(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) AddOnCastSpeedChanged ¶
func (unit *Unit) AddOnCastSpeedChanged(ocsc OnSpeedChanged)
func (*Unit) AddOnMasteryStatChanged ¶
func (unit *Unit) AddOnMasteryStatChanged(omsc OnMasteryStatChanged)
func (*Unit) AddOnMeleeAndRangedHasteChanged ¶
func (unit *Unit) AddOnMeleeAndRangedHasteChanged(ocsc OnSpeedChanged)
func (*Unit) AddOnMeleeAttackSpeedChanged ¶
func (unit *Unit) AddOnMeleeAttackSpeedChanged(ocsc OnSpeedChanged)
func (*Unit) AddOnRangedAttackSpeedChanged ¶
func (unit *Unit) AddOnRangedAttackSpeedChanged(ocsc OnSpeedChanged)
func (*Unit) AddOnTemporaryStatsChange ¶
func (unit *Unit) AddOnTemporaryStatsChange(otsc OnTemporaryStatsChange)
func (*Unit) AddRage ¶
func (rb *Unit) AddRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) AddRunicPower ¶
func (rp *Unit) AddRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) AddStatDynamic ¶
func (unit *Unit) AddStatDynamic(sim *Simulation, stat stats.Stat, amount float64)
func (*Unit) AddStaticMod ¶
func (unit *Unit) AddStaticMod(config SpellModConfig)
func (*Unit) AddStatsDynamic ¶
func (unit *Unit) AddStatsDynamic(sim *Simulation, bonus stats.Stats)
func (*Unit) AddUnscaledRunicPower ¶
func (rp *Unit) AddUnscaledRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) Advance ¶
func (rp *Unit) Advance(sim *Simulation, newTime time.Duration)
func (*Unit) AllRunesSpent ¶
func (rp *Unit) AllRunesSpent() bool
func (*Unit) AnyDepletedRunes ¶
func (rp *Unit) AnyDepletedRunes() bool
func (*Unit) AnyRuneReadyAt ¶
func (rp *Unit) AnyRuneReadyAt(sim *Simulation) time.Duration
func (*Unit) AnySpentRuneReadyAt ¶
AnySpentRuneReadyAt returns the next time that a rune will regenerate. It will be NeverExpires if there is no rune pending regeneration.
func (*Unit) ApplyCastSpeedForSpell ¶
func (*Unit) ApplyRangedSpeed ¶ added in v0.0.6
ApplyRangedSpeed applies ranged haste to a duration, for ranged abilities that should be affected by ranged haste
func (*Unit) ApplyRealHaste ¶ added in v0.0.7
func (*Unit) BlockDamageReduction ¶
func (*Unit) BloodDeathRuneBothReadyAt ¶
func (*Unit) BloodRuneReadyAt ¶
func (rp *Unit) BloodRuneReadyAt(sim *Simulation) time.Duration
BloodRuneReadyAt returns the earliest time a (possibly death-converted) blood rune is ready.
func (*Unit) CanQueueSpell ¶
func (unit *Unit) CanQueueSpell(sim *Simulation) bool
Enforce only one queued spell per timestep
func (*Unit) CancelGCDTimer ¶
func (unit *Unit) CancelGCDTimer(sim *Simulation)
Call this to stop the GCD loop for a unit. This is mostly used for pets that get summoned / expire.
func (*Unit) CancelHardcast ¶
func (unit *Unit) CancelHardcast(sim *Simulation)
func (*Unit) CancelQueuedSpell ¶
func (unit *Unit) CancelQueuedSpell(sim *Simulation)
func (*Unit) ComboPoints ¶
func (eb *Unit) ComboPoints() int32
func (*Unit) ConvertAndRegenBloodTapRune ¶ added in v0.0.1
func (rp *Unit) ConvertAndRegenBloodTapRune(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics) bool
Blood tap prioritizes runes based on spec Blood prefers to regen B runes first, then the F/U rune with the highest CD if no blood runes are available. Frost prefers to regen U runes first, then the B/F rune with the highest CD if no other runes are available. Unholy prefers to regen a B/F rune with the highest CD first, then an U rune if no other runes are available.
func (*Unit) ConvertAndRegenPlagueLeechRunes ¶ added in v0.0.1
func (rp *Unit) ConvertAndRegenPlagueLeechRunes(sim *Simulation, spell *Spell, runeMetrics []*ResourceMetrics)
Plague leech prioritizes runes based on spec Unholy prefers to regen a pair of B/F runes first, then U if no other runes are available. Blood and Frost prefers to regen a pair of F/U runes first, then B if no other runes are available.
func (*Unit) ConvertFromDeath ¶
func (rp *Unit) ConvertFromDeath(sim *Simulation, slot int8)
ConvertFromDeath reverts the rune to its original type.
func (*Unit) ConvertToDeath ¶
func (rp *Unit) ConvertToDeath(sim *Simulation, slot int8, revertAt time.Duration)
ConvertToDeath converts the given slot to death and sets up the reversion conditions
func (*Unit) CurrentBloodOrDeathRunes ¶
func (rp *Unit) CurrentBloodOrDeathRunes() int8
func (*Unit) CurrentBloodRunes ¶
func (rp *Unit) CurrentBloodRunes() int8
func (*Unit) CurrentDeathRunes ¶
func (rp *Unit) CurrentDeathRunes() int8
func (*Unit) CurrentEnergy ¶
func (eb *Unit) CurrentEnergy() float64
func (*Unit) CurrentEnergyRegenMultiplier ¶
func (eb *Unit) CurrentEnergyRegenMultiplier() float64
func (*Unit) CurrentFocus ¶
func (fb *Unit) CurrentFocus() float64
func (*Unit) CurrentFrostOrDeathRunes ¶
func (rp *Unit) CurrentFrostOrDeathRunes() int8
func (*Unit) CurrentFrostRunes ¶
func (rp *Unit) CurrentFrostRunes() int8
func (*Unit) CurrentHealth ¶
func (hb *Unit) CurrentHealth() float64
func (*Unit) CurrentHealthPercent ¶
func (hb *Unit) CurrentHealthPercent() float64
func (*Unit) CurrentMana ¶
func (*Unit) CurrentManaPercent ¶
func (*Unit) CurrentRage ¶
func (rb *Unit) CurrentRage() float64
func (*Unit) CurrentRunicPower ¶
func (rp *Unit) CurrentRunicPower() float64
func (*Unit) CurrentUnholyOrDeathRunes ¶
func (rp *Unit) CurrentUnholyOrDeathRunes() int8
func (*Unit) CurrentUnholyRunes ¶
func (rp *Unit) CurrentUnholyRunes() int8
func (*Unit) DeathRuneRegenAt ¶
DeathRuneRegenAt returns the time the given death rune will regen at. If the rune is not death or not spent it returns NeverExpires.
func (*Unit) DeathRuneRevertAt ¶
DeathRuneRevertAt returns the next time that a death rune will revert. If there is no death rune that needs to revert it returns NeverExpires.
func (*Unit) DeathRunesInFU ¶
func (rp *Unit) DeathRunesInFU() int8
func (*Unit) DebugString ¶
func (rp *Unit) DebugString() string
func (*Unit) DisableBuildPhaseStatDep ¶
func (unit *Unit) DisableBuildPhaseStatDep(sim *Simulation, dep *stats.StatDependency)
func (*Unit) DisableDynamicStatDep ¶
func (unit *Unit) DisableDynamicStatDep(sim *Simulation, dep *stats.StatDependency)
func (*Unit) EnableAutoAttacks ¶
func (unit *Unit) EnableAutoAttacks(agent Agent, options AutoAttackOptions)
func (*Unit) EnableBuildPhaseStatDep ¶
func (unit *Unit) EnableBuildPhaseStatDep(sim *Simulation, dep *stats.StatDependency)
func (*Unit) EnableDynamicStatDep ¶
func (unit *Unit) EnableDynamicStatDep(sim *Simulation, dep *stats.StatDependency)
func (*Unit) EnableEnergyBar ¶
func (unit *Unit) EnableEnergyBar(options EnergyBarOptions)
func (*Unit) EnableFocusBar ¶
func (*Unit) EnableHealthBar ¶
func (unit *Unit) EnableHealthBar()
func (*Unit) EnableRageBar ¶
func (unit *Unit) EnableRageBar(options RageBarOptions)
func (*Unit) EndOOMEvent ¶
func (mb *Unit) EndOOMEvent(sim *Simulation)
func (*Unit) EnergyRegenPerSecond ¶
func (eb *Unit) EnergyRegenPerSecond() float64
func (*Unit) ExecuteCustomRotation ¶
func (unit *Unit) ExecuteCustomRotation(sim *Simulation)
func (*Unit) ExecuteResourceGain ¶
func (unit *Unit) ExecuteResourceGain(sim *Simulation, resource proto.ResourceType, amount float64, metrics *ResourceMetrics)
func (*Unit) ExtendGCDUntil ¶
func (unit *Unit) ExtendGCDUntil(sim *Simulation, readyTime time.Duration)
func (*Unit) FinalizeMovement ¶
func (unit *Unit) FinalizeMovement(sim *Simulation)
func (*Unit) FocusRegenPerSecond ¶
func (fb *Unit) FocusRegenPerSecond() float64
func (*Unit) FocusRegenPerTick ¶
func (fb *Unit) FocusRegenPerTick() float64
func (*Unit) FrostRuneReadyAt ¶
func (rp *Unit) FrostRuneReadyAt(sim *Simulation) time.Duration
func (*Unit) GainHealth ¶
func (hb *Unit) GainHealth(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) GetActiveAuraWithTag ¶
func (*Unit) GetAllOpponents ¶ added in v0.0.10
func (*Unit) GetAuraByID ¶
func (*Unit) GetAurasWithTag ¶
func (*Unit) GetCurrentPowerBar ¶
func (unit *Unit) GetCurrentPowerBar() PowerBarType
func (*Unit) GetDiminishedBlockChance ¶
func (*Unit) GetDiminishedDodgeChance ¶
func (*Unit) GetDiminishedParryChance ¶
func (*Unit) GetEnemyExclusiveCategories ¶
func (caster *Unit) GetEnemyExclusiveCategories(category string) ExclusiveCategoryArray
func (*Unit) GetHighestStatType ¶
Given an array of Stat types, return the Stat whose value is largest for this Unit.
func (*Unit) GetIcdAuraByID ¶
func (*Unit) GetMasteryPoints ¶
func (*Unit) GetMetadata ¶
func (unit *Unit) GetMetadata() *proto.UnitMetadata
func (*Unit) GetMetricsProto ¶
func (at *Unit) GetMetricsProto() []*proto.AuraMetrics
func (*Unit) GetMovementSpeed ¶
Returns the units current movement speed in yards / second
func (*Unit) GetOrInitTimer ¶
Helper for shared timers that are not always needed, so it is only allocated if necessary.
func (*Unit) GetOrRegisterAura ¶
func (*Unit) GetOrRegisterSpell ¶
func (unit *Unit) GetOrRegisterSpell(config SpellConfig) *Spell
Retrieves an existing spell with the same ID as the config uses, or registers it if there is none.
func (*Unit) GetRuneRegenMultiplier ¶
func (rp *Unit) GetRuneRegenMultiplier() float64
func (*Unit) GetSecondaryResourceBar ¶
func (unit *Unit) GetSecondaryResourceBar() SecondaryResourceBar
func (*Unit) GetSpell ¶
Returns the first registered spell with the given ID, or nil if there are none.
func (*Unit) GetSpellsMatchingSchool ¶
func (unit *Unit) GetSpellsMatchingSchool(school SpellSchool) []*Spell
func (*Unit) GetStatsWithoutDeps ¶ added in v0.0.104
func (*Unit) GetTotalAvoidanceChance ¶
func (unit *Unit) GetTotalAvoidanceChance(atkTable *AttackTable) float64
func (*Unit) GetTotalBlockChanceAsDefender ¶
func (unit *Unit) GetTotalBlockChanceAsDefender(atkTable *AttackTable) float64
func (*Unit) GetTotalChanceToBeMissedAsDefender ¶
func (unit *Unit) GetTotalChanceToBeMissedAsDefender(atkTable *AttackTable) float64
func (*Unit) GetTotalDodgeChanceAsDefender ¶
func (unit *Unit) GetTotalDodgeChanceAsDefender(atkTable *AttackTable) float64
func (*Unit) GetTotalParryChanceAsDefender ¶
func (unit *Unit) GetTotalParryChanceAsDefender(atkTable *AttackTable) float64
func (*Unit) HasActiveAura ¶
func (*Unit) HasActiveAuraWithTag ¶
func (*Unit) HasActiveAuraWithTagExcludingAura ¶
func (*Unit) HasAuraWithTag ¶
func (*Unit) HasEnergyBar ¶
func (*Unit) HasFocusBar ¶
func (*Unit) HasHealthBar ¶
func (*Unit) HasManaBar ¶
func (*Unit) HasRageBar ¶
func (*Unit) HasRunicPowerBar ¶
func (*Unit) HasTemporaryBonusForStat ¶
Returns whether the indicates stat is currently modified by a temporary bonus.
func (*Unit) HasTemporaryMeleeSwingSpeedIncrease ¶
Returns if melee swings have any temporary increases active.
func (*Unit) HasTemporaryRangedSwingSpeedIncrease ¶
Returns if ranged swings have any temporary increases active.
func (*Unit) HasTemporarySpellCastSpeedIncrease ¶
Returns if spell casting has any temporary increases active.
func (*Unit) HasteEffectsManaRegen ¶
func (unit *Unit) HasteEffectsManaRegen()
func (*Unit) HasteEffectsRegen ¶
func (unit *Unit) HasteEffectsRegen()
func (*Unit) InitialCastSpeed ¶
func (*Unit) IsCastingDuringChannel ¶ added in v0.0.17
func (*Unit) IsChanneling ¶ added in v0.0.17
func (*Unit) IsEnabled ¶
Units can be disabled for several reasons:
- Downtime for temporary pets (e.g. Water Elemental)
- Enemy units in various phases (not yet implemented)
- Dead units (not yet implemented)
func (*Unit) IsOpponent ¶
func (*Unit) IsReset ¶
func (eb *Unit) IsReset(sim *Simulation) bool
func (*Unit) LeftBloodRuneReady ¶
func (rp *Unit) LeftBloodRuneReady() bool
func (*Unit) Log ¶
func (unit *Unit) Log(sim *Simulation, message string, vals ...interface{})
func (*Unit) MHNormalizedWeaponDamage ¶
func (unit *Unit) MHNormalizedWeaponDamage(sim *Simulation, attackPower float64) float64
func (*Unit) MHWeaponDamage ¶
func (unit *Unit) MHWeaponDamage(sim *Simulation, attackPower float64) float64
func (*Unit) MP5ManaRegenPerSecond ¶
Returns the rate of mana regen per second from mp5.
func (*Unit) MakeProcTriggerAura ¶ added in v0.0.125
func (unit *Unit) MakeProcTriggerAura(config ProcTrigger) *Aura
func (*Unit) ManaRegenPerSecondWhileCombat ¶
Returns the rate of mana regen per second, assuming this unit is considered to be casting.
func (*Unit) ManaRegenPerSecondWhileNotCombat ¶
Returns the rate of mana regen per second, assuming this unit is considered to be not casting.
func (*Unit) ManaTick ¶
func (unit *Unit) ManaTick(sim *Simulation)
Applies 1 'tick' of mana regen, which worth 2s of regeneration based on mp5/int/spirit/etc.
func (*Unit) MaxComboPoints ¶
func (eb *Unit) MaxComboPoints() int32
func (*Unit) MaxMana ¶
Gets the Maxiumum mana including bonus and temporary affects that would increase your mana pool.
func (*Unit) MaximumEnergy ¶
func (eb *Unit) MaximumEnergy() float64
func (*Unit) MaximumFocus ¶
func (fb *Unit) MaximumFocus() float64
func (*Unit) MaximumRage ¶
func (rb *Unit) MaximumRage() float64
func (*Unit) MaximumRunicPower ¶
func (rp *Unit) MaximumRunicPower() float64
func (*Unit) MoveDuration ¶
func (unit *Unit) MoveDuration(duration time.Duration, sim *Simulation)
func (*Unit) MoveTo ¶
func (unit *Unit) MoveTo(moveRange float64, sim *Simulation)
func (*Unit) MultiplyAttackSpeed ¶
func (unit *Unit) MultiplyAttackSpeed(sim *Simulation, amount float64)
Helper for when true haste effects are multiplied for i.E. Bloodlust Seems to also always impact the regen rate
func (*Unit) MultiplyAutoAttackRageGen ¶
func (rb *Unit) MultiplyAutoAttackRageGen(multiplier float64)
Call this within the OnGain and OnExpire callbacks for Battle Stance, Raging Whirlwind, etc.
func (*Unit) MultiplyCastSpeed ¶
func (unit *Unit) MultiplyCastSpeed(sim *Simulation, amount float64)
func (*Unit) MultiplyEnergyRegenSpeed ¶
func (eb *Unit) MultiplyEnergyRegenSpeed(sim *Simulation, multiplier float64)
func (*Unit) MultiplyFocusRegenSpeed ¶
func (fb *Unit) MultiplyFocusRegenSpeed(sim *Simulation, multiplier float64)
func (*Unit) MultiplyManaRegenSpeed ¶
func (unit *Unit) MultiplyManaRegenSpeed(sim *Simulation, multiplier float64)
func (*Unit) MultiplyMeleeSpeed ¶
func (unit *Unit) MultiplyMeleeSpeed(sim *Simulation, amount float64)
MultiplyMeleeSpeed will alter the attack speed multiplier and change swing speed of all autoattack swings in progress.
func (*Unit) MultiplyMovementSpeed ¶
func (unit *Unit) MultiplyMovementSpeed(sim *Simulation, amount float64)
func (*Unit) MultiplyRageGen ¶ added in v0.0.105
func (rb *Unit) MultiplyRageGen(multiplier float64)
func (*Unit) MultiplyRangedHaste ¶ added in v0.0.3
func (unit *Unit) MultiplyRangedHaste(sim *Simulation, amount float64)
Used for "Ranged haste" effects that modify both attack speed and focus regen, like Rapid Fire and Focus Fire
func (*Unit) MultiplyRangedSpeed ¶
func (unit *Unit) MultiplyRangedSpeed(sim *Simulation, amount float64)
Used for "Ranged attack speed" effects like Steady Focus and Serpent's Swiftness
func (*Unit) MultiplyResourceRegenSpeed ¶
func (unit *Unit) MultiplyResourceRegenSpeed(sim *Simulation, amount float64)
Helper for multiplying resource generation speed
func (*Unit) MultiplyRuneRegenSpeed ¶
func (rp *Unit) MultiplyRuneRegenSpeed(sim *Simulation, multiplier float64)
func (*Unit) MultiplyRunicRegen ¶
func (rp *Unit) MultiplyRunicRegen(multiply float64)
func (*Unit) NewAPLAction ¶
func (unit *Unit) NewAPLAction(rot *APLRotation, config *proto.APLAction) APLActionImpl
Default implementation of Agent.NewAPLAction so each spec doesn't need this boilerplate.
func (*Unit) NewAPLValue ¶
func (unit *Unit) NewAPLValue(rot *APLRotation, config *proto.APLValue) APLValue
Default implementation of Agent.NewAPLValue so each spec doesn't need this boilerplate.
func (*Unit) NewAllyAuraArray ¶
func (*Unit) NewAllyDamageAbsorptionAuraArray ¶
func (caster *Unit) NewAllyDamageAbsorptionAuraArray(makeAura func(*Unit) *DamageAbsorptionAura) DamageAbsorptionAuraArray
func (*Unit) NewBloodRuneMetrics ¶
func (rp *Unit) NewBloodRuneMetrics(action ActionID) *ResourceMetrics
func (*Unit) NewChiMetrics ¶
func (unit *Unit) NewChiMetrics(actionID ActionID) *ResourceMetrics
func (*Unit) NewComboPointMetrics ¶
func (unit *Unit) NewComboPointMetrics(actionID ActionID) *ResourceMetrics
func (*Unit) NewDamageAbsorptionAura ¶
func (unit *Unit) NewDamageAbsorptionAura(config AbsorptionAuraConfig) *DamageAbsorptionAura
func (*Unit) NewDeathRuneMetrics ¶
func (rp *Unit) NewDeathRuneMetrics(action ActionID) *ResourceMetrics
func (*Unit) NewDefaultSecondaryResourceBar ¶
func (unit *Unit) NewDefaultSecondaryResourceBar(config SecondaryResourceConfig) *DefaultSecondaryResourceBarImpl
func (*Unit) NewEnemyAuraArray ¶
func (*Unit) NewEnemyExclusiveCategoryArray ¶
func (caster *Unit) NewEnemyExclusiveCategoryArray(makeExclusiveCategory func(*Unit) *ExclusiveCategory) ExclusiveCategoryArray
func (*Unit) NewEnergyMetrics ¶
func (unit *Unit) NewEnergyMetrics(actionID ActionID) *ResourceMetrics
func (*Unit) NewFocusMetrics ¶
func (unit *Unit) NewFocusMetrics(actionID ActionID) *ResourceMetrics
func (*Unit) NewFrostRuneMetrics ¶
func (rp *Unit) NewFrostRuneMetrics(action ActionID) *ResourceMetrics
func (*Unit) NewGenericMetric ¶
func (unit *Unit) NewGenericMetric(actionID ActionID) *ResourceMetrics
func (*Unit) NewHealthMetrics ¶
func (unit *Unit) NewHealthMetrics(actionID ActionID) *ResourceMetrics
Convenience helpers for NewResourceMetrics.
func (*Unit) NewManaMetrics ¶
func (unit *Unit) NewManaMetrics(actionID ActionID) *ResourceMetrics
func (*Unit) NewPassiveMovementSpeedAura ¶ added in v0.0.82
func (*Unit) NewRageMetrics ¶
func (unit *Unit) NewRageMetrics(actionID ActionID) *ResourceMetrics
func (*Unit) NewRunicPowerMetrics ¶
func (rp *Unit) NewRunicPowerMetrics(action ActionID) *ResourceMetrics
func (*Unit) NewUnholyRuneMetrics ¶
func (rp *Unit) NewUnholyRuneMetrics(action ActionID) *ResourceMetrics
func (*Unit) NextBloodRuneReadyAt ¶
func (rp *Unit) NextBloodRuneReadyAt(sim *Simulation) time.Duration
func (*Unit) NextEnergyTickAt ¶
func (*Unit) NextFocusTickAt ¶
func (*Unit) NextFrostRuneReadyAt ¶
func (rp *Unit) NextFrostRuneReadyAt(sim *Simulation) time.Duration
func (*Unit) NextRotationActionAt ¶
func (*Unit) NextUnholyRuneReadyAt ¶
func (rp *Unit) NextUnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Unit) NormalFrostRuneReadyAt ¶
func (rp *Unit) NormalFrostRuneReadyAt(sim *Simulation) time.Duration
NormalFrostRuneReadyAt returns the earliest time a non-death frost rune is ready.
func (*Unit) NormalSpentBloodRuneReadyAt ¶
func (rp *Unit) NormalSpentBloodRuneReadyAt(_ *Simulation) time.Duration
NormalSpentBloodRuneReadyAt returns the earliest time a spent non-death blood rune is ready.
func (*Unit) NormalUnholyRuneReadyAt ¶
func (rp *Unit) NormalUnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Unit) NumActiveAurasWithTag ¶
func (*Unit) OHNormalizedWeaponDamage ¶
func (unit *Unit) OHNormalizedWeaponDamage(sim *Simulation, attackPower float64) float64
func (*Unit) OHWeaponDamage ¶
func (unit *Unit) OHWeaponDamage(sim *Simulation, attackPower float64) float64
func (*Unit) OnApplyEffects ¶
func (at *Unit) OnApplyEffects(sim *Simulation, target *Unit, spell *Spell)
Invokes the OnApplyEffects event for all tracked Auras.
func (*Unit) OnCastComplete ¶
func (at *Unit) OnCastComplete(sim *Simulation, spell *Spell)
Invokes the OnCastComplete event for all tracked Auras.
func (*Unit) OnEncounterStart ¶ added in v0.0.13
func (at *Unit) OnEncounterStart(sim *Simulation)
func (*Unit) OnHealDealt ¶
func (at *Unit) OnHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnHeal event for all tracked Auras.
func (*Unit) OnHealTaken ¶
func (at *Unit) OnHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Unit) OnMovement ¶
func (unit *Unit) OnMovement(sim *Simulation, position float64, kind MovementUpdateType)
func (*Unit) OnPeriodicDamageDealt ¶
func (at *Unit) OnPeriodicDamageDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnPeriodicDamage
As a debuff when target is being hit by dot. As a buff when caster's dots are ticking.
func (*Unit) OnPeriodicDamageTaken ¶
func (at *Unit) OnPeriodicDamageTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Unit) OnPeriodicHealDealt ¶
func (at *Unit) OnPeriodicHealDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnPeriodicHeal
As a debuff when target is being hit by dot. As a buff when caster's dots are ticking.
func (*Unit) OnPeriodicHealTaken ¶
func (at *Unit) OnPeriodicHealTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Unit) OnSpellHitDealt ¶
func (at *Unit) OnSpellHitDealt(sim *Simulation, spell *Spell, result *SpellResult)
Invokes the OnSpellHit event for all tracked Auras.
func (*Unit) OnSpellHitTaken ¶
func (at *Unit) OnSpellHitTaken(sim *Simulation, spell *Spell, result *SpellResult)
func (*Unit) OnSpellRegistered ¶
func (unit *Unit) OnSpellRegistered(handler SpellRegisteredHandler)
func (*Unit) OptimalRuneCost ¶
func (*Unit) QueueSpell ¶
func (*Unit) RangedNormalizedWeaponDamage ¶
func (unit *Unit) RangedNormalizedWeaponDamage(sim *Simulation, attackPower float64) float64
func (*Unit) RangedWeaponDamage ¶
func (unit *Unit) RangedWeaponDamage(sim *Simulation, attackPower float64) float64
func (*Unit) ReactToEvent ¶
func (unit *Unit) ReactToEvent(sim *Simulation, randomizeReactionTime bool)
Call this when reacting to events that occur before the next scheduled rotation action
func (*Unit) RegenAllFrostAndUnholyRunesAsDeath ¶
func (rp *Unit) RegenAllFrostAndUnholyRunesAsDeath(sim *Simulation, deathRuneMetrics *ResourceMetrics)
func (*Unit) RegenAllRunes ¶
func (rp *Unit) RegenAllRunes(sim *Simulation, metrics []*ResourceMetrics)
func (*Unit) RegenRunicEmpowermentRune ¶ added in v0.0.1
func (rp *Unit) RegenRunicEmpowermentRune(sim *Simulation, runeMetrics []*ResourceMetrics)
Runic Empowerment regens a randoom fully depleted rune
func (*Unit) RegisterAura ¶
func (*Unit) RegisterMovementCallback ¶
func (unit *Unit) RegisterMovementCallback(callback MovementCallback)
func (*Unit) RegisterNewDefaultSecondaryResourceBar ¶
func (unit *Unit) RegisterNewDefaultSecondaryResourceBar(config SecondaryResourceConfig) SecondaryResourceBar
func (*Unit) RegisterPrepullAction ¶
func (unit *Unit) RegisterPrepullAction(doAt APLValue, action func(*Simulation))
Registers a callback to this Unit which will be invoked on the prepull at the specified negative time.
func (*Unit) RegisterResetEffect ¶
func (at *Unit) RegisterResetEffect(resetEffect ResetEffect)
Registers a callback to this Character which will be invoked on every Sim reset.
func (*Unit) RegisterSecondaryResourceBar ¶
func (unit *Unit) RegisterSecondaryResourceBar(config SecondaryResourceBar)
func (*Unit) RegisterSpell ¶
func (unit *Unit) RegisterSpell(config SpellConfig) *Spell
Registers a new spell to the unit. Returns the newly created spell.
func (*Unit) RemoveHealth ¶
func (hb *Unit) RemoveHealth(sim *Simulation, amount float64)
func (*Unit) ResetComboPoints ¶ added in v0.0.13
func (eb *Unit) ResetComboPoints(sim *Simulation, comboPointsToKeep int32)
func (*Unit) ResetEnergyTick ¶
func (eb *Unit) ResetEnergyTick(sim *Simulation)
Gives an immediate partial energy tick and restarts the tick timer.
func (*Unit) ResetFocusTick ¶
func (fb *Unit) ResetFocusTick(sim *Simulation)
Gives an immediate partial Focus tick and restarts the tick timer.
func (*Unit) ResetRageBar ¶ added in v0.0.13
func (rb *Unit) ResetRageBar(sim *Simulation, rageToKeep float64)
func (*Unit) ResetRunicPowerBar ¶ added in v0.0.13
func (rp *Unit) ResetRunicPowerBar(sim *Simulation, runicPowerToKeep float64)
func (*Unit) RuneIsActive ¶
func (*Unit) RuneIsDeath ¶
func (*Unit) RuneReadyAt ¶
func (rp *Unit) RuneReadyAt(sim *Simulation, slot int8) time.Duration
func (*Unit) SetCurrentPowerBar ¶
func (unit *Unit) SetCurrentPowerBar(bar PowerBarType)
func (*Unit) SetGCDTimer ¶
func (unit *Unit) SetGCDTimer(sim *Simulation, gcdReadyAt time.Duration)
func (*Unit) SetMaxComboPoints ¶
func (eb *Unit) SetMaxComboPoints(maxComboPoints int32)
func (*Unit) SetPermanentDeathRunes ¶
func (rp *Unit) SetPermanentDeathRunes(permanentDeaths []int8)
func (*Unit) SetRotationTimer ¶
func (unit *Unit) SetRotationTimer(sim *Simulation, rotationReadyAt time.Duration)
func (*Unit) SpellInFlight ¶ added in v0.0.104
func (*Unit) SpellInFlightByID ¶ added in v0.0.104
func (*Unit) SpendComboPoints ¶
func (eb *Unit) SpendComboPoints(sim *Simulation, metrics *ResourceMetrics)
func (*Unit) SpendEnergy ¶
func (eb *Unit) SpendEnergy(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) SpendFocus ¶
func (fb *Unit) SpendFocus(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) SpendMana ¶
func (unit *Unit) SpendMana(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) SpendPartialComboPoints ¶
func (eb *Unit) SpendPartialComboPoints(sim *Simulation, pointsToSpend int32, metrics *ResourceMetrics)
func (*Unit) SpendRage ¶
func (rb *Unit) SpendRage(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) SpendRuneReadyAt ¶
func (*Unit) SpendRunicPower ¶
func (rp *Unit) SpendRunicPower(sim *Simulation, amount float64, metrics *ResourceMetrics)
func (*Unit) SpiritManaRegenPerSecond ¶
Returns the rate of mana regen per second from spirit.
func (*Unit) StartOOMEvent ¶
func (mb *Unit) StartOOMEvent(sim *Simulation, requiredMana float64)
func (*Unit) TimeToTargetEnergy ¶
func (*Unit) TimeToTargetFocus ¶
func (*Unit) TimeUntilManaRegen ¶
Returns the amount of time this Unit would need to wait in order to reach the desired amount of mana, via mana regen.
Assumes that desiredMana > currentMana. Calculation assumes the Unit will not take any actions during this period that would reset the 5-second rule.
func (*Unit) TotalMeleeHasteMultiplier ¶
func (*Unit) TotalRangedHasteMultiplier ¶
func (*Unit) TotalRealHasteMultiplier ¶
Returns the real haste multiplier only including equip haste and real haste modifiers like lust Same value for ranged and melee Real Haste mods: MELEE_SLOW MOD_MELEE_HASTE MOD_MELEE_RANGED_HASTE MOD_RANGED_HASTE
Not Real Haste mods: MOD_MELEE_HASTE_2 MOD_MELEE_HASTE_3 MOD_MELEE_RANGED_HASTE_2 MOD_MELEE_RANGED_HASTE_3 MOD_RANGED_HASTE_2 MOD_RANGED_HASTE_3 MOD_CASTING_SPEED_NOT_STACK
func (*Unit) TotalSpellHasteMultiplier ¶
func (*Unit) UnholyRuneReadyAt ¶
func (rp *Unit) UnholyRuneReadyAt(sim *Simulation) time.Duration
func (*Unit) UpdateDynamicStatDep ¶
func (unit *Unit) UpdateDynamicStatDep(sim *Simulation, dep *stats.StatDependency, newAmount float64)
func (*Unit) UpdateManaRegenRates ¶
func (unit *Unit) UpdateManaRegenRates()
func (*Unit) UpdateMaxEnergy ¶
func (eb *Unit) UpdateMaxEnergy(sim *Simulation, bonusEnergy float64, metrics *ResourceMetrics)
Used for dynamic updates to maximum Energy, such as from the Druid Primal Madness talent
func (*Unit) UpdateMaxHealth ¶
func (hb *Unit) UpdateMaxHealth(sim *Simulation, bonusHealth float64, metrics *ResourceMetrics)
Used for dynamic updates to maximum health from "Last Stand" effects
func (*Unit) UpdatePosition ¶
func (unit *Unit) UpdatePosition(sim *Simulation)
type UnitMetrics ¶
type UnitMetrics struct {
CharacterIterationMetrics
// contains filtered or unexported fields
}
func NewUnitMetrics ¶
func NewUnitMetrics() UnitMetrics
func (*UnitMetrics) AddFinalPetMetrics ¶
func (unitMetrics *UnitMetrics) AddFinalPetMetrics(petMetrics *UnitMetrics)
This should be called at the end of each iteration, to include metrics from Pets in those of their owner. Assumes that doneIteration() has already been called on the pet metrics.
func (*UnitMetrics) AddOOMTime ¶
func (unitMetrics *UnitMetrics) AddOOMTime(sim *Simulation, dur time.Duration)
func (*UnitMetrics) IsTanking ¶
func (unitMetrics *UnitMetrics) IsTanking() bool
func (*UnitMetrics) MarkOOM ¶
func (unitMetrics *UnitMetrics) MarkOOM(sim *Simulation)
func (*UnitMetrics) NewResourceMetrics ¶
func (unitMetrics *UnitMetrics) NewResourceMetrics(actionID ActionID, resourceType proto.ResourceType) *ResourceMetrics
func (*UnitMetrics) ToProto ¶
func (unitMetrics *UnitMetrics) ToProto() *proto.UnitMetrics
type UnitReference ¶
type UnitReference struct {
Type proto.UnitReference_Type
// contains filtered or unexported fields
}
Struct for handling unit references, to account for values that can change dynamically (e.g. CurrentTarget).
func NewUnitReference ¶
func NewUnitReference(ref *proto.UnitReference, contextUnit *Unit) UnitReference
func (UnitReference) Get ¶
func (ur UnitReference) Get() *Unit
func (*UnitReference) String ¶
func (ur *UnitReference) String() string
type UnitStats ¶
func NewUnitStats ¶
func NewUnitStats() UnitStats
func (*UnitStats) ExportWeights ¶
Infer missing stat weight values for HitRating and CritRating if school-specific components were calculated, then call ToProto(). Kept as a separate method in case we want to use the UnitStats struct for other applications than just stat weights.
type Weapon ¶
type Weapon struct {
BaseDamageMin float64
BaseDamageMax float64
AttackPowerPerDPS float64
SwingSpeed float64
NormalizedSwingSpeed float64
CritMultiplier float64
SpellSchool SpellSchool
MinRange float64
MaxRange float64
}
Represents a generic weapon. Pets / unarmed / various other cases don't use actual weapon items so this is an abstraction of a Weapon.
func (*Weapon) AverageDamage ¶
func (*Weapon) BaseDamage ¶
func (weapon *Weapon) BaseDamage(sim *Simulation) float64
func (*Weapon) CalculateAverageWeaponDamage ¶
func (*Weapon) CalculateNormalizedWeaponDamage ¶
func (weapon *Weapon) CalculateNormalizedWeaponDamage(sim *Simulation, attackPower float64) float64
func (*Weapon) CalculateWeaponDamage ¶
func (weapon *Weapon) CalculateWeaponDamage(sim *Simulation, attackPower float64) float64
func (*Weapon) EnemyWeaponDamage ¶
func (weapon *Weapon) EnemyWeaponDamage(sim *Simulation, attackPower float64, damageSpread float64) float64
func (*Weapon) GetSpellSchool ¶
func (weapon *Weapon) GetSpellSchool() SpellSchool
type WeaponAttack ¶
type WeaponAttack struct {
Weapon
// contains filtered or unexported fields
}
func (*WeaponAttack) IsInRange ¶
func (wa *WeaponAttack) IsInRange() bool
Source Files
¶
- agent.go
- api.go
- apl.go
- apl_action.go
- apl_action_group_reference.go
- apl_actions_casting.go
- apl_actions_misc.go
- apl_actions_sequences.go
- apl_actions_timing.go
- apl_helpers.go
- apl_value.go
- apl_values_aura.go
- apl_values_aura_sets.go
- apl_values_auto_attacks.go
- apl_values_boss.go
- apl_values_casting.go
- apl_values_dot.go
- apl_values_encounter.go
- apl_values_gcd.go
- apl_values_item_swap.go
- apl_values_operators.go
- apl_values_properties.go
- apl_values_resources.go
- apl_values_runes.go
- apl_values_sequences.go
- apl_values_spell.go
- apl_values_unit.go
- armor.go
- attack.go
- aura.go
- aura_helpers.go
- auracallback_string.go
- avoid_dr.go
- base_stats.go
- base_stats_auto_gen.go
- buffs.go
- cast.go
- character.go
- constants.go
- consumes.go
- cooldown.go
- database.go
- debuffs.go
- dot.go
- energy.go
- environment.go
- exclusive_effect.go
- flags.go
- focus.go
- gcd.go
- health.go
- item_effects.go
- item_sets.go
- item_swaps.go
- major_cooldown.go
- mana.go
- metrics_aggregator.go
- movement.go
- pending_action.go
- periodic_action.go
- pet.go
- presim.go
- procmask_string.go
- procs.go
- professions.go
- racials.go
- rage.go
- raid.go
- rand.go
- rppm.go
- runic_power.go
- runic_power_helper.go
- secondary_resource_bar.go
- shield.go
- sim.go
- sim_concurrent.go
- spell.go
- spell_mod.go
- spell_outcome.go
- spell_queueing.go
- spell_result.go
- statweight.go
- target.go
- target_ai.go
- target_dummy.go
- test_generators.go
- test_result_compare.go
- test_suite.go
- test_utils.go
- unit.go
- utils.go
- vengeance.go