ReadonlyallContains records of abilities and other events. Should generally not be accessed externally.
To retrieve records after a simulation finishes, see finalizedRecords.
ReadonlybuffLog of when all status effects were activated.
ReadonlycdCooldown tracker.
Whether combat has started
The current cycle number. -1 is pre-pull, 0 is the first cycle, etc
The current time in seconds. This should not normally be written to, as it will be automatically updated internally as actions are used.
If combat has not started, this represents time since the first action usage. Once combat begins, this is rebased such that the start of combat is zero.
ReadonlycutoffThe end-of-fight cutoff mode
Controls the logic used to re-align cycles. Since cycles typically do not last exactly their desired time (i.e. there is drift), you can control how it should re-align cycles when this happens.
See the docs on CycleLengthMode for more information on each mode.
ReadonlycycleThe length of a cycle. Commonly 120 seconds.
ReadonlydotMap from DoT effect ID to an object which tracks, among other things, when it was used.
ReadonlygaugeReadonlygcdThe "default" GCD time - typically 2.5 seconds.
ReadonlyhideWhether to show dividers indicating the start and end of a cycle
When the next auto-attack would occur, assuming no cast locks happen between now and then.
Like currentTime, but indicates when the next GCD can start, taking into account the current GCD timer.
The stats of the set currently being simulated
The total adjustment (in seconds) that was performed to rebase the timer such that start-of-combat is zero.
e.g. if you used 5 seconds worth of pre-pull actions, this would be -5.
ReadonlytotalThe total maximum fight time
ReadonlyuseWhether auto-attacks are enabled
The cooldown enforcement mode affects behavior when an ability with a cooldown is used while it is still on cooldown.
Options are:
'none' - cooldown tracker will happily allow the cooldown to be used at an invalid time. 'warn' - cooldown tracker will log a warning to console, but will continue 'delay' - cycle processor will fast-forward the time to when the cooldown would be ready. This is ideal for classes such as DNC where the optimal rotation may involve waiting a fraction of a second for a long CD to be ready, rather than trying to use another GCD and thus drifting. 'reject' - cooldown tracker will throw an error if you attempt to use an invalid CD. It is not recommended to use this for logic (i.e. don't try/catch). Instead, just query whether the cooldown is ready or not.
Returns a record of individual cycles, including when each cycle started/ended.
A record of events, including special rows and such.
An amount of action usages that should be far beyond what would be needed for a reasonable sim. Acts as a circuit breaker for infinite loops.
The remaining time in the fight, minus the time remaining on the current GCD.
The remaining time in the fight.
A record of all abilities used.
Manually mark a buff as being active after a given delay
The buff
The delay after which to apply the buff
ProtectedaddAdd a special text row to the output records.
The text
Optionaltime: numberThe time of the record. Current time will be used if not specified.
Fast-forward (i.e. do nothing until) the given time.
The time to fast-forward to.
Whether auto-attacks should be paused during this time.
Modifies an ability for the level that is being processed by the cycle sim.
the ability to modify
the modified ability
ProtectedbeforeApplies beforeAbility calls to a given ability.
a modified ability
Determines whether or not a GCD plus zero or more oGCDs can be used without violating cooldowns and without clipping.
Known issue: does not properly handle specifying the same oGCD (or something with a linked CD) multiple times in the oGCDs array.
Determines whether or not a list of Off-GCD abilities can be used without clipping the GCD
The Off-GCD abilities to check for
whether or not the abilities can be used in sequence without clipping the GCD
Determines whether or not an Off-GCD ability can be used without clipping the GCD
The Off-GCD ability to check for
whether or not this ability can be used without clipping the GCD
Determine the effective cast time of an ability, assuming it is cast at the current time with the given set of buffs.
Determine the effective CD time of a cooldown, assuming it is used at the current time with the given set of buffs.
The cooldown information to use as a basis
The effects
ProtectedcreateProtectedReturns the initial gauge state. Must be overridden if using a custom gauge type.
Manually extend a buff.
The buff
The duration to extend it.
Determine the effective GCD time of a GCD ability, assuming it is cast at the current time with the given set of buffs.
Optionaleffects: CombinedBuffEffectProtectedgetGet the buffs that would be active right now, which affect a specific ability.
The ability in question
The time to query. Defaults to current time.
Given an ordered priority list of oGCDs, return a list of the highest priority two oGCDs that can be used.
the Off-GCD abilities to check for
an empty list or a list of exactly two oGCDs that can be used
Whether or not the given ability is off cooldown/has charges. "Now" is considered to be literal if the argument is an oGCD. If the argument is a GCD, then "now" is when the next GCD would come up.
Modifies the stack value for a given buff. The stack value provided should be the modified amount and not the final amount
The Buff
+/- change in stacks
Perform one complete cycle, using the given cycle function.
This is useful if your rotation changes from one cycle to another. However, it is also possible to simply query the cycle number to change the rotation logic as appropriate.
Perform the given cycle function until the fight finishes.
The number of remaining GCDs at the given GCD speed, assuming current stats (for things like haste). Does not perform any rounding, so 0.5 indicates that half of a GCD will fit into the remaining time.
The ability to use as a basis for calculating GCD time and applicable buffs.
Set the time at which a buff will start
The buff
The start time
Time until the given ability is off cooldown/has charges. "Now" is considered to be literal if the argument is an oGCD. If the argument is a GCD, then "now" is when the next GCD would come up.
Use an ability
The ability to use
Use a GCD ability repeatedly until the specified time
Use a GCD ability while the given predicate remains true.
The ability to use
The predicate
CycleProcessor is a rotation-based simulation backend that requires actual ability uses to be specified. The 'Cycle' part of the name refers to the fact that it supports loops/cycles.
Note about times: