@ffxiv-teamcraft/simulator
Version:
A FINAL FANTASY XIV crafting simulator
50 lines (49 loc) • 2.21 kB
TypeScript
import { Simulation } from '../../simulation/simulation';
import { ActionType } from './action-type';
import { CraftingJob } from '../crafting-job.enum';
import { SimulationFailCause } from '../simulation-fail-cause.enum';
import { Class } from '@kaiu/serializer';
/**
* This is the parent class of all actions in the simulator.
*/
export declare abstract class CraftingAction {
/**
* checks if the action can be moved inside the simulation state,
* this is meant to prevent moving automatic actions (looking at you Whistle end progression tick).
* @returns {boolean}
*/
canBeMoved(currentIndex: number): boolean;
getId(jobId: number): number;
getWaitDuration(): number;
/**
* If an action is skipped on fail, it doesn't tick buffs.
* Example: Observe, Master's Mend, buffs.
*/
skipOnFail(): boolean;
requiresGood(): boolean;
hasCombo(simulation: Simulation): boolean;
abstract getLevelRequirement(): {
job: CraftingJob;
level: number;
};
abstract getType(): ActionType;
abstract getIds(): number[];
abstract _getSuccessRate(simulationState: Simulation): number;
getSuccessRate(simulationState: Simulation): number;
canBeUsed(simulationState: Simulation, linear?: boolean, safeMode?: boolean): boolean;
getFailCause(simulationState: Simulation, linear?: boolean, safeMode?: boolean): SimulationFailCause | undefined;
abstract _canBeUsed(simulationState: Simulation, linear?: boolean): boolean;
getCPCost(simulationState: Simulation, linear?: boolean): number;
abstract getBaseCPCost(simulationState: Simulation): number;
abstract getDurabilityCost(simulationState: Simulation): number;
abstract execute(simulation: Simulation, safe?: boolean): void;
onFail(simulation: Simulation): void;
skipsBuffTicks(): boolean;
/**
* Checks if this action is an instance of a given other action.
* @param actionClass
*/
is<T extends CraftingAction>(actionClass: Class<T>): actionClass is Class<T>;
getBaseProgression(simulation: Simulation): number;
getBaseQuality(simulation: Simulation): number;
}