UNPKG

@ffxiv-teamcraft/simulator

Version:
50 lines (49 loc) 2.21 kB
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; }