UNPKG

@ffxiv-teamcraft/simulator

Version:
82 lines (81 loc) 3.12 kB
import { CraftingAction } from '../model/actions/crafting-action'; import { ActionResult } from '../model/action-result'; import { CrafterStats } from '../model/crafter-stats'; import { EffectiveBuff } from '../model/effective-buff'; import { Buff } from '../model/buff.enum'; import { SimulationResult } from './simulation-result'; import { SimulationReliabilityReport } from './simulation-reliability-report'; import { Craft } from '../model/craft'; import { StepState } from '../model/step-state'; export declare class Simulation { readonly recipe: Craft; actions: CraftingAction[]; private _crafterStats; private hqIngredients; private stepStates; private fails; progression: number; quality: number; startingQuality: number; durability: number; state: StepState; availableCP: number; maxCP: number; buffs: EffectiveBuff[]; success: boolean | undefined; steps: ActionResult[]; lastPossibleReclaimStep: number; safe: boolean; constructor(recipe: Craft, actions: CraftingAction[], _crafterStats: CrafterStats, hqIngredients?: { id: number; amount: number; }[], stepStates?: { [index: number]: StepState; }, fails?: number[], startingQuality?: number); get lastStep(): ActionResult; hasComboAvailable(actionId: number): boolean; get crafterStats(): CrafterStats; readonly possibleConditions: StepState[]; getReliabilityReport(): SimulationReliabilityReport; addInnerQuietStacks(stacks: number): void; /** * * @param thresholds an array of quality thresholds, Collectibility ratings must be scaled before input * @returns a boolean for successful calculation, and the minimum value for each stat */ getMinStats(thresholds?: Array<number>): { control: number; craftsmanship: number; cp: number; found: boolean; }; reset(): void; /** * Run the simulation. * @param {boolean} linear should everything be linear (aka no fail on actions, Initial preparations never procs) * @param maxTurns * @param safeMode Safe mode makes all the actions that have success chances < 100 * @returns {ActionResult[]} */ run(linear?: boolean, maxTurns?: number, safeMode?: boolean): SimulationResult; /** * Runs an action, can be called from external class (Whistle for instance). * @param {CraftingAction} action * @param {boolean} linear * @param {boolean} safeMode * @param index */ runAction(action: CraftingAction, linear?: boolean, safeMode?: boolean, index?: number): ActionResult; hasBuff(buff: Buff): boolean; getBuff(buff: Buff): EffectiveBuff; removeBuff(buff: Buff): void; repair(amount: number): void; clone(): Simulation; private getHQPercent; private tickBuffs; /** * Changes the state of the craft, * source: https://github.com/Ermad/ffxiv-craft-opt-web/blob/master/app/js/ffxivcraftmodel.js#L255 */ tickState(): void; }