import { Component } from "../../core/Component"; import type { Sprite } from "../entities/widgets/Sprite"; import type { NonEmptyArray } from "../types"; export declare type Weapon = { damage: number; cooldown: number; range: number; projectile: "instant" | "swing" | ((target: Sprite, attacker: T) => void); /** * The last time the weapon was used. */ last: number; enabled: boolean; onDamage?: (target: Sprite, damage: number, attacker: Sprite) => void; damagePoint?: number; /** * If `projectile === "swing"`, how much the target can move without * incuring a miss. */ rangeMotionBuffer?: number; swinging?: boolean; }; export declare class DamageComponent extends Component<[ NonEmptyArray, boolean ]> { readonly weapons: NonEmptyArray; readonly autoAttack: boolean; initialize(weapons: NonEmptyArray, autoAttack: boolean): void; }