import { FireData } from "./fire-data"; import { RepeatingManager } from "./repeating-manager"; import { Muzzle } from "./muzzle"; /** * FiringState contains information while firing. */ export declare class FiringState { /** Manager manage repeating while firing */ repeatStates: RepeatingManager; /** Parameters express real value. */ parameters: Map; /** Parameters express string value. */ texts: Map; /** Function would applied to fireData when fire bullet, */ private readonly modifiers; /** Muzzle fire bullet */ private muzzle; /** * @param player Player playing with this state * @param fireData Contain data used when fired * @param repeatStates Manager manage repeating while firing */ constructor(repeatStates?: RepeatingManager, muzzle?: Muzzle); getMuzzle(): Muzzle; setMuzzle(muzzle: Muzzle): void; /** * Push function would applied to fireData when fire bullet. * * @param modifier Function would applied when fire bullet */ pushModifier(modifier: (fireData: FireData) => void): void; /** Calculate modified fire data. */ modifyFireData(fireData: FireData): void; copy(): FiringState; }