UNPKG

bp-prism-game

Version:
59 lines 6.32 kB
import { BaseClass } from '../base.class'; import { KEY, BLOCK_SIZE } from '../../gameboard/gameboard-constants'; import { ObservableTypeEnum } from '../../enum/observable-type.enum'; import { ImageLoadedEnum } from '../../enum/image-loaded.enum'; /** * The Prism Base Class */ export class PrismBaseClass extends BaseClass { /** * Constructor * @param gameService The GameService * @param ctx The ctx * @param guid The guid of the alien */ constructor(gameService, ctx, guid) { super(gameService, ctx, guid); /** * moves */ this.moves = { [KEY.P]: true }; this.loadPrismBaseImages(); this.assetScale = { x: 0.2, y: 0.2 }; } /** * Load the alien Images */ loadPrismBaseImages() { const imagesToLoad = [ImageLoadedEnum.prismBase]; imagesToLoad.map((key) => { this.images.push(this.gameService.getImage(key)); this.isImageLoaded = true; }); this.currentBase = this.images[0]; } /** * Press Key Stroke * @param event The Key event */ processKeyStroke(event) { const eventCode = event.stringData; const keyDown = event.type === ObservableTypeEnum.keyDownEvent; if (this.moves[eventCode] && keyDown) { this.gameService.emitMasterObservableEvent({ type: ObservableTypeEnum.prismBlastLaunched, assetCoordinateData: { x: this.x, y: this.y - BLOCK_SIZE }, booleanData: true }); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpc20tYmFzZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByaXNtL3NyYy9saWIvYmFzZS9wcmlzbS1iYXNlL3ByaXNtLWJhc2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRDs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQVEzQzs7Ozs7T0FLRztJQUNILFlBQVksV0FBd0IsRUFBRSxHQUE2QixFQUFFLElBQVk7UUFDL0UsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFkaEM7O1dBRUc7UUFDSyxVQUFLLEdBQUc7WUFDZCxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO1NBQ2QsQ0FBQztRQVVBLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsQ0FBQyxFQUFFLEdBQUc7WUFDTixDQUFDLEVBQUUsR0FBRztTQUNZLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLE1BQU0sWUFBWSxHQUFHLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpELFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFvQixFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sZ0JBQWdCLENBQUMsS0FBc0I7UUFDL0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLFlBQVksQ0FBQztRQUUvRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUM7Z0JBQ3pDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxrQkFBa0I7Z0JBQzNDLG1CQUFtQixFQUFFO29CQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ1QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsVUFBVTtpQkFDYjtnQkFDWCxXQUFXLEVBQUUsSUFBSTthQUNDLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9nYW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZUNsYXNzIH0gZnJvbSAnLi4vYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBLRVksIEJMT0NLX1NJWkUgfSBmcm9tICcuLi8uLi9nYW1lYm9hcmQvZ2FtZWJvYXJkLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9vYnNlcnZhYmxlLm1vZGVsJztcbmltcG9ydCB7IE9ic2VydmFibGVUeXBlRW51bSB9IGZyb20gJy4uLy4uL2VudW0vb2JzZXJ2YWJsZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgSUFzc2V0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2Fzc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBBc3NldFNjYWxlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9hc3NldC1zY2FsZS5tb2RlJztcbmltcG9ydCB7IEltYWdlTG9hZGVkRW51bSB9IGZyb20gJy4uLy4uL2VudW0vaW1hZ2UtbG9hZGVkLmVudW0nO1xuXG4vKipcbiAqIFRoZSBQcmlzbSBCYXNlIENsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBQcmlzbUJhc2VDbGFzcyBleHRlbmRzIEJhc2VDbGFzcyB7XG4gIC8qKlxuICAgKiBtb3Zlc1xuICAgKi9cbiAgcHJpdmF0ZSBtb3ZlcyA9IHtcbiAgICBbS0VZLlBdOiB0cnVlXG4gIH07XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBnYW1lU2VydmljZSBUaGUgR2FtZVNlcnZpY2VcbiAgICogQHBhcmFtIGN0eCBUaGUgY3R4XG4gICAqIEBwYXJhbSBndWlkIFRoZSBndWlkIG9mIHRoZSBhbGllblxuICAgKi9cbiAgY29uc3RydWN0b3IoZ2FtZVNlcnZpY2U6IEdhbWVTZXJ2aWNlLCBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgZ3VpZDogbnVtYmVyKSB7XG4gICAgc3VwZXIoZ2FtZVNlcnZpY2UsIGN0eCwgZ3VpZCk7XG4gICAgdGhpcy5sb2FkUHJpc21CYXNlSW1hZ2VzKCk7XG5cbiAgICB0aGlzLmFzc2V0U2NhbGUgPSB7XG4gICAgICB4OiAwLjIsXG4gICAgICB5OiAwLjJcbiAgICB9IGFzIEFzc2V0U2NhbGVNb2RlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBhbGllbiBJbWFnZXNcbiAgICovXG4gIHByaXZhdGUgbG9hZFByaXNtQmFzZUltYWdlcygpOiB2b2lkIHtcbiAgICBjb25zdCBpbWFnZXNUb0xvYWQgPSBbSW1hZ2VMb2FkZWRFbnVtLnByaXNtQmFzZV07XG5cbiAgICBpbWFnZXNUb0xvYWQubWFwKChrZXk6IEltYWdlTG9hZGVkRW51bSkgPT4ge1xuICAgICAgdGhpcy5pbWFnZXMucHVzaCh0aGlzLmdhbWVTZXJ2aWNlLmdldEltYWdlKGtleSkpO1xuICAgICAgdGhpcy5pc0ltYWdlTG9hZGVkID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIHRoaXMuY3VycmVudEJhc2UgPSB0aGlzLmltYWdlc1swXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVzcyBLZXkgU3Ryb2tlXG4gICAqIEBwYXJhbSBldmVudCBUaGUgS2V5IGV2ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgcHJvY2Vzc0tleVN0cm9rZShldmVudDogT2JzZXJ2YWJsZU1vZGVsKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRDb2RlID0gZXZlbnQuc3RyaW5nRGF0YTtcbiAgICBjb25zdCBrZXlEb3duID0gZXZlbnQudHlwZSA9PT0gT2JzZXJ2YWJsZVR5cGVFbnVtLmtleURvd25FdmVudDtcblxuICAgIGlmICh0aGlzLm1vdmVzW2V2ZW50Q29kZV0gJiYga2V5RG93bikge1xuICAgICAgdGhpcy5nYW1lU2VydmljZS5lbWl0TWFzdGVyT2JzZXJ2YWJsZUV2ZW50KHtcbiAgICAgICAgdHlwZTogT2JzZXJ2YWJsZVR5cGVFbnVtLnByaXNtQmxhc3RMYXVuY2hlZCxcbiAgICAgICAgYXNzZXRDb29yZGluYXRlRGF0YToge1xuICAgICAgICAgIHg6IHRoaXMueCxcbiAgICAgICAgICB5OiB0aGlzLnkgLSBCTE9DS19TSVpFXG4gICAgICAgIH0gYXMgSUFzc2V0LFxuICAgICAgICBib29sZWFuRGF0YTogdHJ1ZVxuICAgICAgfSBhcyBPYnNlcnZhYmxlTW9kZWwpO1xuICAgIH1cbiAgfVxufVxuIl19