Optionalsettings: MnkSettingsExternalReadonlybuffManages party buff settings
ReadonlycycleManages generic cycle settings
The user-facing display name of the sim. This needs to be writable, as users can change the display name of sims.
ReadonlyjobParty buffs which would be activated automatically, but should be treated as manual due to being associated with the class being simulated.
ReadonlymanualIf true, do not automatically re-run the sim. Currently, this is only implemented for the configuration - changing settings will not cause the sim to auto-re-run. Eventually, it may also be implemented for changes to gear sets.
ReadonlyresultRepresents result settings, such as what std deviation to use as the main result
The internalized settings of the object.
A short name for the sim, used for internal naming. Should be usable as a CSS class name or other HTML-ish applications, i.e. start with a letter, then keep to alphanumeric and hyphen.
A good choice is to simply use the spec's stub name.
The original sim spec.
Whether or not autoattacks should be enabled by default for ths sim.
The default implementation returns false for healers and casters, true for everyone else.
ProtectedcomputeBecause monk has a probabilistic chakra generation, the rotation changes due to crit chance. Preserving crit chance at the same GCD tier leads to inaccurate DPS estimates. This means monk sim doesn't get to use the cache behavior much at all.
ProtectedcreateProtectedIf you are using a custom CycleProcessorType, you MUST override this method and have it return an instance of your custom type. It is only implemented on the base class for the convenience of simulations that are using the default CycleProcessor implementation.
The settings
The CycleProcessor instance.
Return the default settings for this sim. You can override this to provide your own custom settings. It should respect useAutosByDefault
The settings, flatted into a form that is fully JSON-ifiable.
This is the main abstract method of this simulation type. You can specify one or more rotations to simulate. The sim's result will be whichever rotation sims the highest.
Notify the sim that settings have changed
Run a simulation. As mentioned in the class-level docs, all mutable state should be scoped to this method.
It is rotationally important for monk abilities to be recorded with all of their buffs, and simulateSimple doesn't store those for other sims as an optimization. We don't get that optimization. This is because chakra gain is important to our DPS, and at the time of writing this is only recorded based on the Buffs that are snapshotted in addAbilityUse.
Base class for a CycleProcessor based simulation. You should extend this class, and provide your own generic types.