win-destroyer-ts
Version:
A modern recreation of the timeless Desktop Destroyer game developed by Ing. Miroslav Nemecek, written in TypeScript.
55 lines (54 loc) • 1.89 kB
TypeScript
import Weapon from './Weapon';
import { Coordinates2D, DestroyerOptions, Sounds } from './types';
export declare class Destroyer {
currentWeapon: Weapon;
currentWeaponID: number;
cursorLayer: HTMLDivElement;
drawingCTX: CanvasRenderingContext2D | null;
drawingLayer: HTMLCanvasElement;
isFiring: boolean;
mousePos: Coordinates2D;
onDamage: Function;
pageHealth: number;
parent: HTMLElement;
particleLayer: HTMLDivElement;
particleLimit: number;
volume: number;
volumeChangeDelta: number;
volumeHasBeenSet: boolean;
weaponFiring: boolean;
weaponsList: Weapon[];
zIndexStart: number;
constructor(parent: HTMLElement, options?: DestroyerOptions, sounds?: Sounds);
/** Erase all persisted particles on drawing layer */
clear(): void;
/** Inject elements into parent to begin rendering process */
inject(): void;
/** Handle hotkeys */
handleKeyDown(e: KeyboardEvent): void;
/** Begin firing */
handleMouseDown(): void;
/** Cease firing */
handleMouseUp(interval?: number): void;
/** Track cursor position when the mouse is moved*/
handleMouseMove(e: MouseEvent): void;
/** Explicitly set volume */
setVolume(vol: number): void;
/** Increase volume */
volumeUp(): void;
/** Decrease volume */
volumeDown(): void;
/** Explicitly set weapon by ID */
setWeapon(wpn: number): void;
/** Cycle to next weapon */
weaponUp(): void;
/** Cycle to previous weapon */
weaponDown(): void;
/** Update currentWeapon information based on currentWeaponID */
updateCurrentWeapon(): void;
/** Remove all rendered content from the page, state is maintained behind the scenes and can be re-injected */
selfDestruct(): void;
/** Update CSS variables on parent element */
updateCSS(): void;
}
export default Destroyer;