UNPKG

bp-prism-game

Version:
80 lines 10.2 kB
import { NumberClass } from '../text/number/number.class'; import { TextTypeEnum } from '../enum/text-type.enum'; import { LetterClass } from '../text/letter/letter.class'; import { BLOCK_SIZE } from '../gameboard/gameboard-constants'; /** * The text service */ export class TextService { /** * The constructor */ constructor(gameService, ctx) { this.gameService = gameService; this.ctx = ctx; this.scoreClass = new NumberClass(this.gameService, this.ctx); this.highScoreClass = new NumberClass(this.gameService, this.ctx); this.levelScoreClass = new NumberClass(this.gameService, this.ctx); this.levelScoreClass.assetScale = { x: 0.1, y: 0.1 }; this.levelClass = new LetterClass(this.gameService, this.ctx); const textLocations = this.gameService.getTextPositions(); const scoreLocation = textLocations .filter((textLocation) => textLocation.type === TextTypeEnum.score) .pop(); this.scoreClass.move({ x: scoreLocation.position.x, y: scoreLocation.position.y }); const highScoreLocation = textLocations .filter((textLocation) => textLocation.type === TextTypeEnum.highScore) .pop(); this.highScoreClass.move({ x: highScoreLocation.position.x, y: highScoreLocation.position.y }); const levelLocation = textLocations .filter((textLocation) => textLocation.type === TextTypeEnum.level) .pop(); this.levelClass.move({ x: levelLocation.position.x, y: levelLocation.position.y }); this.levelScoreClass.move({ x: levelLocation.position.x + BLOCK_SIZE, y: levelLocation.position.y }); this.levelScoreClass.setNumber(1, false); this.levelClass.setLetter('L'); } /** * Initialize the text */ animate() { this.scoreClass.animate(); this.highScoreClass.animate(); this.levelClass.animate(); this.levelScoreClass.animate(); } /** * Set the Score number * @param points The points to set */ setScore(points) { this.scoreClass.setNumber(points); } /** * Set the high Score * @param points The points to set */ setHighScore(points) { this.highScoreClass.setNumber(points); } /** * Set the level * @param level The level to set */ setLevel(level) { this.levelScoreClass.setNumber(level, false); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJpc20vc3JjL2xpYi9zZXJ2aWNlL3RleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHOUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQXFCdEI7O09BRUc7SUFDSCxZQUFvQixXQUF3QixFQUFVLEdBQTZCO1FBQS9ELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDakYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWxFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQXFCLENBQUM7UUFFeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUQsTUFBTSxhQUFhLEdBQUcsYUFBYTthQUNoQyxNQUFNLENBQUMsQ0FBQyxZQUErQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQUM7YUFDckYsR0FBRyxFQUFFLENBQUM7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixDQUFDLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNCLENBQUMsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbEIsQ0FBQyxDQUFDO1FBRWIsTUFBTSxpQkFBaUIsR0FBRyxhQUFhO2FBQ3BDLE1BQU0sQ0FBQyxDQUFDLFlBQStCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFNBQVMsQ0FBQzthQUN6RixHQUFHLEVBQUUsQ0FBQztRQUVULElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQixDQUFDLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEIsQ0FBQyxDQUFDO1FBRWIsTUFBTSxhQUFhLEdBQUcsYUFBYTthQUNoQyxNQUFNLENBQUMsQ0FBQyxZQUErQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQUM7YUFDckYsR0FBRyxFQUFFLENBQUM7UUFFVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixDQUFDLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNCLENBQUMsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbEIsQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDeEIsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLFVBQVU7WUFDeEMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsQixDQUFDLENBQUM7UUFFYixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVEsQ0FBQyxNQUFjO1FBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsTUFBYztRQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbWVTZXJ2aWNlIH0gZnJvbSAnLi9nYW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgTnVtYmVyQ2xhc3MgfSBmcm9tICcuLi90ZXh0L251bWJlci9udW1iZXIuY2xhc3MnO1xuaW1wb3J0IHsgSUFzc2V0IH0gZnJvbSAnLi4vaW50ZXJmYWNlL2Fzc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUZXh0TG9jYXRpb25Nb2RlbCB9IGZyb20gJy4uL21vZGVsL3RleHQtbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgVGV4dFR5cGVFbnVtIH0gZnJvbSAnLi4vZW51bS90ZXh0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBMZXR0ZXJDbGFzcyB9IGZyb20gJy4uL3RleHQvbGV0dGVyL2xldHRlci5jbGFzcyc7XG5pbXBvcnQgeyBCTE9DS19TSVpFIH0gZnJvbSAnLi4vZ2FtZWJvYXJkL2dhbWVib2FyZC1jb25zdGFudHMnO1xuaW1wb3J0IHsgQXNzZXRTY2FsZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvYXNzZXQtc2NhbGUubW9kZSc7XG5cbi8qKlxuICogVGhlIHRleHQgc2VydmljZVxuICovXG5leHBvcnQgY2xhc3MgVGV4dFNlcnZpY2Uge1xuICAvKipcbiAgICogVGhlIHNjb3JlXG4gICAqL1xuICBwcml2YXRlIHNjb3JlQ2xhc3M6IE51bWJlckNsYXNzO1xuXG4gIC8qKlxuICAgKiBUaGUgaGlnaCBzY29yZVxuICAgKi9cbiAgcHJpdmF0ZSBoaWdoU2NvcmVDbGFzczogTnVtYmVyQ2xhc3M7XG5cbiAgLyoqXG4gICAqIFRoZSBsZXZlbFxuICAgKi9cbiAgcHJpdmF0ZSBsZXZlbENsYXNzOiBMZXR0ZXJDbGFzcztcblxuICAvKipcbiAgICogVGhlIGxldmVsIHNjb3JlXG4gICAqL1xuICBwcml2YXRlIGxldmVsU2NvcmVDbGFzczogTnVtYmVyQ2xhc3M7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBnYW1lU2VydmljZTogR2FtZVNlcnZpY2UsIHByaXZhdGUgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpIHtcbiAgICB0aGlzLnNjb3JlQ2xhc3MgPSBuZXcgTnVtYmVyQ2xhc3ModGhpcy5nYW1lU2VydmljZSwgdGhpcy5jdHgpO1xuXG4gICAgdGhpcy5oaWdoU2NvcmVDbGFzcyA9IG5ldyBOdW1iZXJDbGFzcyh0aGlzLmdhbWVTZXJ2aWNlLCB0aGlzLmN0eCk7XG5cbiAgICB0aGlzLmxldmVsU2NvcmVDbGFzcyA9IG5ldyBOdW1iZXJDbGFzcyh0aGlzLmdhbWVTZXJ2aWNlLCB0aGlzLmN0eCk7XG4gICAgdGhpcy5sZXZlbFNjb3JlQ2xhc3MuYXNzZXRTY2FsZSA9IHsgeDogMC4xLCB5OiAwLjEgfSBhcyBBc3NldFNjYWxlTW9kZWw7XG5cbiAgICB0aGlzLmxldmVsQ2xhc3MgPSBuZXcgTGV0dGVyQ2xhc3ModGhpcy5nYW1lU2VydmljZSwgdGhpcy5jdHgpO1xuXG4gICAgY29uc3QgdGV4dExvY2F0aW9ucyA9IHRoaXMuZ2FtZVNlcnZpY2UuZ2V0VGV4dFBvc2l0aW9ucygpO1xuICAgIGNvbnN0IHNjb3JlTG9jYXRpb24gPSB0ZXh0TG9jYXRpb25zXG4gICAgICAuZmlsdGVyKCh0ZXh0TG9jYXRpb246IFRleHRMb2NhdGlvbk1vZGVsKSA9PiB0ZXh0TG9jYXRpb24udHlwZSA9PT0gVGV4dFR5cGVFbnVtLnNjb3JlKVxuICAgICAgLnBvcCgpO1xuICAgIHRoaXMuc2NvcmVDbGFzcy5tb3ZlKHtcbiAgICAgIHg6IHNjb3JlTG9jYXRpb24ucG9zaXRpb24ueCxcbiAgICAgIHk6IHNjb3JlTG9jYXRpb24ucG9zaXRpb24ueVxuICAgIH0gYXMgSUFzc2V0KTtcblxuICAgIGNvbnN0IGhpZ2hTY29yZUxvY2F0aW9uID0gdGV4dExvY2F0aW9uc1xuICAgICAgLmZpbHRlcigodGV4dExvY2F0aW9uOiBUZXh0TG9jYXRpb25Nb2RlbCkgPT4gdGV4dExvY2F0aW9uLnR5cGUgPT09IFRleHRUeXBlRW51bS5oaWdoU2NvcmUpXG4gICAgICAucG9wKCk7XG5cbiAgICB0aGlzLmhpZ2hTY29yZUNsYXNzLm1vdmUoe1xuICAgICAgeDogaGlnaFNjb3JlTG9jYXRpb24ucG9zaXRpb24ueCxcbiAgICAgIHk6IGhpZ2hTY29yZUxvY2F0aW9uLnBvc2l0aW9uLnlcbiAgICB9IGFzIElBc3NldCk7XG5cbiAgICBjb25zdCBsZXZlbExvY2F0aW9uID0gdGV4dExvY2F0aW9uc1xuICAgICAgLmZpbHRlcigodGV4dExvY2F0aW9uOiBUZXh0TG9jYXRpb25Nb2RlbCkgPT4gdGV4dExvY2F0aW9uLnR5cGUgPT09IFRleHRUeXBlRW51bS5sZXZlbClcbiAgICAgIC5wb3AoKTtcblxuICAgIHRoaXMubGV2ZWxDbGFzcy5tb3ZlKHtcbiAgICAgIHg6IGxldmVsTG9jYXRpb24ucG9zaXRpb24ueCxcbiAgICAgIHk6IGxldmVsTG9jYXRpb24ucG9zaXRpb24ueVxuICAgIH0gYXMgSUFzc2V0KTtcblxuICAgIHRoaXMubGV2ZWxTY29yZUNsYXNzLm1vdmUoe1xuICAgICAgeDogbGV2ZWxMb2NhdGlvbi5wb3NpdGlvbi54ICsgQkxPQ0tfU0laRSxcbiAgICAgIHk6IGxldmVsTG9jYXRpb24ucG9zaXRpb24ueVxuICAgIH0gYXMgSUFzc2V0KTtcblxuICAgIHRoaXMubGV2ZWxTY29yZUNsYXNzLnNldE51bWJlcigxLCBmYWxzZSk7XG5cbiAgICB0aGlzLmxldmVsQ2xhc3Muc2V0TGV0dGVyKCdMJyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdGV4dFxuICAgKi9cbiAgcHVibGljIGFuaW1hdGUoKTogdm9pZCB7XG4gICAgdGhpcy5zY29yZUNsYXNzLmFuaW1hdGUoKTtcbiAgICB0aGlzLmhpZ2hTY29yZUNsYXNzLmFuaW1hdGUoKTtcbiAgICB0aGlzLmxldmVsQ2xhc3MuYW5pbWF0ZSgpO1xuICAgIHRoaXMubGV2ZWxTY29yZUNsYXNzLmFuaW1hdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIFNjb3JlIG51bWJlclxuICAgKiBAcGFyYW0gcG9pbnRzIFRoZSBwb2ludHMgdG8gc2V0XG4gICAqL1xuICBwdWJsaWMgc2V0U2NvcmUocG9pbnRzOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNjb3JlQ2xhc3Muc2V0TnVtYmVyKHBvaW50cyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBoaWdoIFNjb3JlXG4gICAqIEBwYXJhbSBwb2ludHMgVGhlIHBvaW50cyB0byBzZXRcbiAgICovXG4gIHB1YmxpYyBzZXRIaWdoU2NvcmUocG9pbnRzOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmhpZ2hTY29yZUNsYXNzLnNldE51bWJlcihwb2ludHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbGV2ZWxcbiAgICogQHBhcmFtIGxldmVsIFRoZSBsZXZlbCB0byBzZXRcbiAgICovXG4gIHB1YmxpYyBzZXRMZXZlbChsZXZlbDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5sZXZlbFNjb3JlQ2xhc3Muc2V0TnVtYmVyKGxldmVsLCBmYWxzZSk7XG4gIH1cbn1cbiJdfQ==