UNPKG

bp-prism-game

Version:
65 lines 6.5 kB
import { AssetClass } from '../../asset/asset.class'; import { ImageLoadedEnum } from '../../enum/image-loaded.enum'; /** * The Prism Blast Icon Class */ export class PrismBlastIconClass extends AssetClass { /** * Constructor * @param gameService The GameService * @param ctx The ctx * @param guid The guid of the prism blast */ constructor(gameService, ctx) { super(gameService, ctx, 1); this.loadIconImages(); this.assetScale = { x: 0.1, y: 0.1 }; } /** * Load the Letter Images */ loadIconImages() { const imagesToLoad = [ImageLoadedEnum.prismBlastIcon]; imagesToLoad.map((key) => { this.images.push(this.gameService.getImage(key)); this.isImageLoaded = true; }); } /** * Position the icon * @param position The position of the icon * Load the Letter Images */ position(position) { this.move(position); } /** * Draw evenything necessary */ draw() { let offset = 0; if (this.isImageLoaded) { this.images.map((imageData) => { this.ctx.save(); this.ctx.translate(this.x + offset, this.y); this.ctx.scale(this.assetScale.x, this.assetScale.y); this.ctx.drawImage(imageData.imageSource, imageData.x, imageData.y); this.ctx.restore(); }); offset += 25; } } /** * Animate the prism blast */ animate() { if (this.isDestroyed) { return; } this.draw(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpc20tYmxhc3QtaWNvbi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByaXNtL3NyYy9saWIvcHJpc20vcHJpc20tYmxhc3QtaWNvbi9wcmlzbS1ibGFzdC1pY29uLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJL0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsVUFBVTtJQUNqRDs7Ozs7T0FLRztJQUNILFlBQVksV0FBd0IsRUFBRSxHQUE2QjtRQUNqRSxLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxHQUFHO1NBQ1ksQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjO1FBQ3BCLE1BQU0sWUFBWSxHQUFHLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRELFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFvQixFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLFFBQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ08sSUFBSTtRQUNaLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQTZCLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxJQUFJLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvZ2FtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFzc2V0Q2xhc3MgfSBmcm9tICcuLi8uLi9hc3NldC9hc3NldC5jbGFzcyc7XG5pbXBvcnQgeyBBc3NldFNjYWxlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9hc3NldC1zY2FsZS5tb2RlJztcbmltcG9ydCB7IEltYWdlTG9hZGVkRW51bSB9IGZyb20gJy4uLy4uL2VudW0vaW1hZ2UtbG9hZGVkLmVudW0nO1xuaW1wb3J0IHsgSW1hZ2VMb2NhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwvaW1hZ2UvaW1hZ2UtbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgSUFzc2V0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2Fzc2V0LmludGVyZmFjZSc7XG5cbi8qKlxuICogVGhlIFByaXNtIEJsYXN0IEljb24gQ2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIFByaXNtQmxhc3RJY29uQ2xhc3MgZXh0ZW5kcyBBc3NldENsYXNzIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBnYW1lU2VydmljZSBUaGUgR2FtZVNlcnZpY2VcbiAgICogQHBhcmFtIGN0eCBUaGUgY3R4XG4gICAqIEBwYXJhbSBndWlkIFRoZSBndWlkIG9mIHRoZSBwcmlzbSBibGFzdFxuICAgKi9cbiAgY29uc3RydWN0b3IoZ2FtZVNlcnZpY2U6IEdhbWVTZXJ2aWNlLCBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkge1xuICAgIHN1cGVyKGdhbWVTZXJ2aWNlLCBjdHgsIDEpO1xuXG4gICAgdGhpcy5sb2FkSWNvbkltYWdlcygpO1xuXG4gICAgdGhpcy5hc3NldFNjYWxlID0ge1xuICAgICAgeDogMC4xLFxuICAgICAgeTogMC4xXG4gICAgfSBhcyBBc3NldFNjYWxlTW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgTGV0dGVyIEltYWdlc1xuICAgKi9cbiAgcHJpdmF0ZSBsb2FkSWNvbkltYWdlcygpOiB2b2lkIHtcbiAgICBjb25zdCBpbWFnZXNUb0xvYWQgPSBbSW1hZ2VMb2FkZWRFbnVtLnByaXNtQmxhc3RJY29uXTtcblxuICAgIGltYWdlc1RvTG9hZC5tYXAoKGtleTogSW1hZ2VMb2FkZWRFbnVtKSA9PiB7XG4gICAgICB0aGlzLmltYWdlcy5wdXNoKHRoaXMuZ2FtZVNlcnZpY2UuZ2V0SW1hZ2Uoa2V5KSk7XG4gICAgICB0aGlzLmlzSW1hZ2VMb2FkZWQgPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIHRoZSBpY29uXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUgcG9zaXRpb24gb2YgdGhlIGljb25cbiAgICogTG9hZCB0aGUgTGV0dGVyIEltYWdlc1xuICAgKi9cbiAgcHVibGljIHBvc2l0aW9uKHBvc2l0aW9uOiBJQXNzZXQpOiB2b2lkIHtcbiAgICB0aGlzLm1vdmUocG9zaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIERyYXcgZXZlbnl0aGluZyBuZWNlc3NhcnlcbiAgICovXG4gIHByb3RlY3RlZCBkcmF3KCk6IHZvaWQge1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGlmICh0aGlzLmlzSW1hZ2VMb2FkZWQpIHtcbiAgICAgIHRoaXMuaW1hZ2VzLm1hcCgoaW1hZ2VEYXRhOiBJbWFnZUxvY2F0aW9uTW9kZWwpID0+IHtcbiAgICAgICAgdGhpcy5jdHguc2F2ZSgpO1xuICAgICAgICB0aGlzLmN0eC50cmFuc2xhdGUodGhpcy54ICsgb2Zmc2V0LCB0aGlzLnkpO1xuICAgICAgICB0aGlzLmN0eC5zY2FsZSh0aGlzLmFzc2V0U2NhbGUueCwgdGhpcy5hc3NldFNjYWxlLnkpO1xuICAgICAgICB0aGlzLmN0eC5kcmF3SW1hZ2UoaW1hZ2VEYXRhLmltYWdlU291cmNlLCBpbWFnZURhdGEueCwgaW1hZ2VEYXRhLnkpO1xuICAgICAgICB0aGlzLmN0eC5yZXN0b3JlKCk7XG4gICAgICB9KTtcblxuICAgICAgb2Zmc2V0ICs9IDI1O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbmltYXRlIHRoZSBwcmlzbSBibGFzdFxuICAgKi9cbiAgcHVibGljIGFuaW1hdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRyYXcoKTtcbiAgfVxufVxuIl19