Xivgear Types Documentation
    Preparing search index...

    Base class for a CycleProcessor based simulation. You should extend this class, and provide your own generic types.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    buffManager: BuffSettingsManager

    Manages party buff settings

    cycleSettings: CycleSettings = ...

    Manages generic cycle settings

    displayName: string = pldSpec.displayName

    The user-facing display name of the sim. This needs to be writable, as users can change the display name of sims.

    job:
        | "NIN"
        | "PLD"
        | "WAR"
        | "DRK"
        | "GNB"
        | "WHM"
        | "SCH"
        | "AST"
        | "SGE"
        | "MNK"
        | "DRG"
        | "SAM"
        | "RPR"
        | "VPR"
        | "BRD"
        | "MCH"
        | "DNC"
        | "BLM"
        | "SMN"
        | "RDM"
        | "PCT"
        | "BLU"
    manuallyActivatedBuffs?: PartyBuff[]

    Party buffs which would be activated automatically, but should be treated as manual due to being associated with the class being simulated.

    manualRun: false

    If 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.

    resultSettings: ResultSettings

    Represents result settings, such as what std deviation to use as the main result

    settings: PldSettings

    The internalized settings of the object.

    shortName: string = "pld-sheet-sim"

    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.

    Accessors

    • get useAutosByDefault(): boolean

      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.

      Returns boolean

    Methods

    • Parameters

      • cp: PldCycleProcessor

      Returns
          | Readonly<
              {
                  _idForCooldown?: number;
                  activatesBuffs?: readonly Buff[];
                  alternativeScalings?: AlternativeScaling[];
                  animationLock?: number;
                  appDelay?: number;
                  attackType: | "Unknown"
                  | "Auto-attack"
                  | "Spell"
                  | "Weaponskill"
                  | "Ability"
                  | "Item";
                  buffApplicationDelay?: number;
                  cast?: number;
                  combos?: readonly ComboData[];
                  cooldown?: Cooldown;
                  fixedGcd?: boolean;
                  id: number;
                  itemId?: number;
                  name: string;
                  noIcon?: boolean;
                  translate?: boolean;
              } & {
                  levelModifiers?: LevelModifier<
                      {
                          _idForCooldown?: number;
                          activatesBuffs?: readonly Buff[];
                          alternativeScalings?: AlternativeScaling[];
                          animationLock?: number;
                          appDelay?: number;
                          attackType: | "Unknown"
                          | "Auto-attack"
                          | "Spell"
                          | "Weaponskill"
                          | "Ability"
                          | "Item";
                          buffApplicationDelay?: number;
                          cast?: number;
                          combos?: readonly ComboData[];
                          cooldown?: Cooldown;
                          fixedGcd?: boolean;
                          id: number;
                          itemId?: number;
                          name: string;
                          noIcon?: boolean;
                          translate?: boolean;
                      },
                  >[];
              } & Readonly<{ potency: null }> & {
                  levelModifiers?: LevelModifier<Readonly<{ potency: null }>>[];
              },
          > & Readonly<LevelModifiable<{ gcd: number; type: "gcd" }>> & Readonly<
              { consumesRequiescat?: boolean },
          >
          | Readonly<
              {
                  _idForCooldown?: number;
                  activatesBuffs?: readonly Buff[];
                  alternativeScalings?: AlternativeScaling[];
                  animationLock?: number;
                  appDelay?: number;
                  attackType: | "Unknown"
                  | "Auto-attack"
                  | "Spell"
                  | "Weaponskill"
                  | "Ability"
                  | "Item";
                  buffApplicationDelay?: number;
                  cast?: number;
                  combos?: readonly ComboData[];
                  cooldown?: Cooldown;
                  fixedGcd?: boolean;
                  id: number;
                  itemId?: number;
                  name: string;
                  noIcon?: boolean;
                  translate?: boolean;
              } & {
                  levelModifiers?: LevelModifier<
                      {
                          _idForCooldown?: number;
                          activatesBuffs?: readonly Buff[];
                          alternativeScalings?: AlternativeScaling[];
                          animationLock?: number;
                          appDelay?: number;
                          attackType: | "Unknown"
                          | "Auto-attack"
                          | "Spell"
                          | "Weaponskill"
                          | "Ability"
                          | "Item";
                          buffApplicationDelay?: number;
                          cast?: number;
                          combos?: readonly ComboData[];
                          cooldown?: Cooldown;
                          fixedGcd?: boolean;
                          id: number;
                          itemId?: number;
                          name: string;
                          noIcon?: boolean;
                          translate?: boolean;
                      },
                  >[];
              } & Readonly<
                  {
                      alternativeScalings?: AlternativeScaling[];
                      attackType: | "Unknown"
                      | "Auto-attack"
                      | "Spell"
                      | "Weaponskill"
                      | "Ability"
                      | "Item";
                      autoCrit?: boolean;
                      autoDh?: boolean;
                      dot?: DotInfo;
                      potency: number;
                  },
              > & {
                  levelModifiers?: LevelModifier<
                      Readonly<
                          {
                              alternativeScalings?: AlternativeScaling[];
                              attackType: | "Unknown"
                              | "Auto-attack"
                              | "Spell"
                              | "Weaponskill"
                              | "Ability"
                              | "Item";
                              autoCrit?: boolean;
                              autoDh?: boolean;
                              dot?: DotInfo;
                              potency: number;
                          },
                      >,
                  >[];
              },
          > & Readonly<LevelModifiable<{ gcd: number; type: "gcd" }>> & Readonly<
              { consumesRequiescat?: boolean },
          >
          | never
          | never
          | never
          | never
          | never
          | never
          | never
          | never
          | never
          | never

    • Like simulate, but only needs to return a single number. This is used for meld solving and such, as the brute force sim does not need to display any additional data to the user. If the extra processing time and memory use from the normal simulation path is trivial for a particular sim implementation, then this can be implemented as simply "return (await this.simulate(set)).mainDpsResult".

      Parameters

      Returns Promise<number>

    • Parameters

      • cp: PldCycleProcessor
      • ability:
            | Readonly<
                {
                    _idForCooldown?: number;
                    activatesBuffs?: readonly Buff[];
                    alternativeScalings?: AlternativeScaling[];
                    animationLock?: number;
                    appDelay?: number;
                    attackType: | "Unknown"
                    | "Auto-attack"
                    | "Spell"
                    | "Weaponskill"
                    | "Ability"
                    | "Item";
                    buffApplicationDelay?: number;
                    cast?: number;
                    combos?: readonly ComboData[];
                    cooldown?: Cooldown;
                    fixedGcd?: boolean;
                    id: number;
                    itemId?: number;
                    name: string;
                    noIcon?: boolean;
                    translate?: boolean;
                } & {
                    levelModifiers?: LevelModifier<
                        {
                            _idForCooldown?: number;
                            activatesBuffs?: readonly Buff[];
                            alternativeScalings?: AlternativeScaling[];
                            animationLock?: number;
                            appDelay?: number;
                            attackType: | "Unknown"
                            | "Auto-attack"
                            | "Spell"
                            | "Weaponskill"
                            | "Ability"
                            | "Item";
                            buffApplicationDelay?: number;
                            cast?: number;
                            combos?: readonly ComboData[];
                            cooldown?: Cooldown;
                            fixedGcd?: boolean;
                            id: number;
                            itemId?: number;
                            name: string;
                            noIcon?: boolean;
                            translate?: boolean;
                        },
                    >[];
                } & Readonly<{ potency: null }> & {
                    levelModifiers?: LevelModifier<Readonly<{ potency: null }>>[];
                },
            > & Readonly<LevelModifiable<{ gcd: number; type: "gcd" }>>
            | Readonly<
                {
                    _idForCooldown?: number;
                    activatesBuffs?: readonly Buff[];
                    alternativeScalings?: AlternativeScaling[];
                    animationLock?: number;
                    appDelay?: number;
                    attackType: | "Unknown"
                    | "Auto-attack"
                    | "Spell"
                    | "Weaponskill"
                    | "Ability"
                    | "Item";
                    buffApplicationDelay?: number;
                    cast?: number;
                    combos?: readonly ComboData[];
                    cooldown?: Cooldown;
                    fixedGcd?: boolean;
                    id: number;
                    itemId?: number;
                    name: string;
                    noIcon?: boolean;
                    translate?: boolean;
                } & {
                    levelModifiers?: LevelModifier<
                        {
                            _idForCooldown?: number;
                            activatesBuffs?: readonly Buff[];
                            alternativeScalings?: AlternativeScaling[];
                            animationLock?: number;
                            appDelay?: number;
                            attackType: | "Unknown"
                            | "Auto-attack"
                            | "Spell"
                            | "Weaponskill"
                            | "Ability"
                            | "Item";
                            buffApplicationDelay?: number;
                            cast?: number;
                            combos?: readonly ComboData[];
                            cooldown?: Cooldown;
                            fixedGcd?: boolean;
                            id: number;
                            itemId?: number;
                            name: string;
                            noIcon?: boolean;
                            translate?: boolean;
                        },
                    >[];
                } & Readonly<
                    {
                        alternativeScalings?: AlternativeScaling[];
                        attackType: | "Unknown"
                        | "Auto-attack"
                        | "Spell"
                        | "Weaponskill"
                        | "Ability"
                        | "Item";
                        autoCrit?: boolean;
                        autoDh?: boolean;
                        dot?: DotInfo;
                        potency: number;
                    },
                > & {
                    levelModifiers?: LevelModifier<
                        Readonly<
                            {
                                alternativeScalings?: AlternativeScaling[];
                                attackType: | "Unknown"
                                | "Auto-attack"
                                | "Spell"
                                | "Weaponskill"
                                | "Ability"
                                | "Item";
                                autoCrit?: boolean;
                                autoDh?: boolean;
                                dot?: DotInfo;
                                potency: number;
                            },
                        >,
                    >[];
                },
            > & Readonly<LevelModifiable<{ gcd: number; type: "gcd" }>>
            | Readonly<
                {
                    _idForCooldown?: number;
                    activatesBuffs?: readonly Buff[];
                    alternativeScalings?: AlternativeScaling[];
                    animationLock?: number;
                    appDelay?: number;
                    attackType: | "Unknown"
                    | "Auto-attack"
                    | "Spell"
                    | "Weaponskill"
                    | "Ability"
                    | "Item";
                    buffApplicationDelay?: number;
                    cast?: number;
                    combos?: readonly ComboData[];
                    cooldown?: Cooldown;
                    fixedGcd?: boolean;
                    id: number;
                    itemId?: number;
                    name: string;
                    noIcon?: boolean;
                    translate?: boolean;
                } & {
                    levelModifiers?: LevelModifier<
                        {
                            _idForCooldown?: number;
                            activatesBuffs?: readonly Buff[];
                            alternativeScalings?: AlternativeScaling[];
                            animationLock?: number;
                            appDelay?: number;
                            attackType: | "Unknown"
                            | "Auto-attack"
                            | "Spell"
                            | "Weaponskill"
                            | "Ability"
                            | "Item";
                            buffApplicationDelay?: number;
                            cast?: number;
                            combos?: readonly ComboData[];
                            cooldown?: Cooldown;
                            fixedGcd?: boolean;
                            id: number;
                            itemId?: number;
                            name: string;
                            noIcon?: boolean;
                            translate?: boolean;
                        },
                    >[];
                } & Readonly<{ potency: null }> & {
                    levelModifiers?: LevelModifier<Readonly<{ potency: null }>>[];
                },
            > & Readonly<LevelModifiable<{ type: "ogcd" }>>
            | Readonly<
                {
                    _idForCooldown?: number;
                    activatesBuffs?: readonly Buff[];
                    alternativeScalings?: AlternativeScaling[];
                    animationLock?: number;
                    appDelay?: number;
                    attackType: | "Unknown"
                    | "Auto-attack"
                    | "Spell"
                    | "Weaponskill"
                    | "Ability"
                    | "Item";
                    buffApplicationDelay?: number;
                    cast?: number;
                    combos?: readonly ComboData[];
                    cooldown?: Cooldown;
                    fixedGcd?: boolean;
                    id: number;
                    itemId?: number;
                    name: string;
                    noIcon?: boolean;
                    translate?: boolean;
                } & {
                    levelModifiers?: LevelModifier<
                        {
                            _idForCooldown?: number;
                            activatesBuffs?: readonly Buff[];
                            alternativeScalings?: AlternativeScaling[];
                            animationLock?: number;
                            appDelay?: number;
                            attackType: | "Unknown"
                            | "Auto-attack"
                            | "Spell"
                            | "Weaponskill"
                            | "Ability"
                            | "Item";
                            buffApplicationDelay?: number;
                            cast?: number;
                            combos?: readonly ComboData[];
                            cooldown?: Cooldown;
                            fixedGcd?: boolean;
                            id: number;
                            itemId?: number;
                            name: string;
                            noIcon?: boolean;
                            translate?: boolean;
                        },
                    >[];
                } & Readonly<
                    {
                        alternativeScalings?: AlternativeScaling[];
                        attackType: | "Unknown"
                        | "Auto-attack"
                        | "Spell"
                        | "Weaponskill"
                        | "Ability"
                        | "Item";
                        autoCrit?: boolean;
                        autoDh?: boolean;
                        dot?: DotInfo;
                        potency: number;
                    },
                > & {
                    levelModifiers?: LevelModifier<
                        Readonly<
                            {
                                alternativeScalings?: AlternativeScaling[];
                                attackType: | "Unknown"
                                | "Auto-attack"
                                | "Spell"
                                | "Weaponskill"
                                | "Ability"
                                | "Item";
                                autoCrit?: boolean;
                                autoDh?: boolean;
                                dot?: DotInfo;
                                potency: number;
                            },
                        >,
                    >[];
                },
            > & Readonly<LevelModifiable<{ type: "ogcd" }>>
            | never
            | Readonly<
                {
                    _idForCooldown?: number;
                    activatesBuffs?: readonly Buff[];
                    alternativeScalings?: AlternativeScaling[];
                    animationLock?: number;
                    appDelay?: number;
                    attackType: | "Unknown"
                    | "Auto-attack"
                    | "Spell"
                    | "Weaponskill"
                    | "Ability"
                    | "Item";
                    buffApplicationDelay?: number;
                    cast?: number;
                    combos?: readonly ComboData[];
                    cooldown?: Cooldown;
                    fixedGcd?: boolean;
                    id: number;
                    itemId?: number;
                    name: string;
                    noIcon?: boolean;
                    translate?: boolean;
                } & {
                    levelModifiers?: LevelModifier<
                        {
                            _idForCooldown?: number;
                            activatesBuffs?: readonly Buff[];
                            alternativeScalings?: AlternativeScaling[];
                            animationLock?: number;
                            appDelay?: number;
                            attackType: | "Unknown"
                            | "Auto-attack"
                            | "Spell"
                            | "Weaponskill"
                            | "Ability"
                            | "Item";
                            buffApplicationDelay?: number;
                            cast?: number;
                            combos?: readonly ComboData[];
                            cooldown?: Cooldown;
                            fixedGcd?: boolean;
                            id: number;
                            itemId?: number;
                            name: string;
                            noIcon?: boolean;
                            translate?: boolean;
                        },
                    >[];
                } & Readonly<
                    {
                        alternativeScalings?: AlternativeScaling[];
                        attackType: | "Unknown"
                        | "Auto-attack"
                        | "Spell"
                        | "Weaponskill"
                        | "Ability"
                        | "Item";
                        autoCrit?: boolean;
                        autoDh?: boolean;
                        dot?: DotInfo;
                        potency: number;
                    },
                > & {
                    levelModifiers?: LevelModifier<
                        Readonly<
                            {
                                alternativeScalings?: AlternativeScaling[];
                                attackType: | "Unknown"
                                | "Auto-attack"
                                | "Spell"
                                | "Weaponskill"
                                | "Ability"
                                | "Item";
                                autoCrit?: boolean;
                                autoDh?: boolean;
                                dot?: DotInfo;
                                potency: number;
                            },
                        >,
                    >[];
                },
            > & Readonly<
                {
                    alternativeScalings?: AlternativeScaling[];
                    attackType: | "Unknown"
                    | "Auto-attack"
                    | "Spell"
                    | "Weaponskill"
                    | "Ability"
                    | "Item";
                    autoCrit?: boolean;
                    autoDh?: boolean;
                    dot?: DotInfo;
                    potency: number;
                },
            > & Readonly<LevelModifiable<{ type: "autoattack" }>>

      Returns AbilityUseResult