@ffxiv-teamcraft/simulator
Version:
A FINAL FANTASY XIV crafting simulator
82 lines (81 loc) • 3.12 kB
TypeScript
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;
}