bp-prism-game
Version:
The BP Prism Game
72 lines • 7.03 kB
JavaScript
import { ImageLoadedEnum } from '../../enum/image-loaded.enum';
import { CharacterClass } from '../character.class';
/**
* The Number Class
*/
export class NumberClass extends CharacterClass {
/**
* Constructor
* @param gameService The GameService
* @param ctx The ctx
*/
constructor(gameService, ctx) {
super(gameService, ctx);
this.loadNumberImages();
this.assetScale = {
x: 0.2,
y: 0.2
};
}
/**
* Load the Number Images
*/
loadNumberImages() {
const imagesToLoad = [
ImageLoadedEnum.number0,
ImageLoadedEnum.number1,
ImageLoadedEnum.number2,
ImageLoadedEnum.number3,
ImageLoadedEnum.number4,
ImageLoadedEnum.number5,
ImageLoadedEnum.number6,
ImageLoadedEnum.number7,
ImageLoadedEnum.number8,
ImageLoadedEnum.number9
];
imagesToLoad.map((key) => {
this.images.push(this.gameService.getImage(key));
this.isImageLoaded = true;
});
}
/**
* Draw the Number
* @param inputNumber the number to display
* @param padNumbers if the numbers should be padded
*/
setNumber(inputNumber, padNumbers = true) {
const numbers = padNumbers ? this.padPoints(inputNumber) : inputNumber.toString();
this.characters = [];
for (const index of numbers) {
this.characters.push(this.images[Number(index)]);
}
}
/**
* Pad the points
*
* @param points The points to pad
*/
padPoints(points) {
let stringPoints = points.toString();
if (points < 10) {
stringPoints = `000${points}`;
}
else if (points < 100) {
stringPoints = `00${points}`;
}
else if (points < 1000) {
stringPoints = `0${points}`;
}
return stringPoints;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJpc20vc3JjL2xpYi90ZXh0L251bWJlci9udW1iZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFZLFNBQVEsY0FBYztJQUM3Qzs7OztPQUlHO0lBQ0gsWUFBWSxXQUF3QixFQUFFLEdBQTZCO1FBQ2pFLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxHQUFHO1NBQ1ksQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsTUFBTSxZQUFZLEdBQUc7WUFDbkIsZUFBZSxDQUFDLE9BQU87WUFDdkIsZUFBZSxDQUFDLE9BQU87WUFDdkIsZUFBZSxDQUFDLE9BQU87WUFDdkIsZUFBZSxDQUFDLE9BQU87WUFDdkIsZUFBZSxDQUFDLE9BQU87WUFDdkIsZUFBZSxDQUFDLE9BQU87WUFDdkIsZUFBZSxDQUFDLE9BQU87WUFDdkIsZUFBZSxDQUFDLE9BQU87WUFDdkIsZUFBZSxDQUFDLE9BQU87WUFDdkIsZUFBZSxDQUFDLE9BQU87U0FDeEIsQ0FBQztRQUVGLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFvQixFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLFdBQW1CLEVBQUUsVUFBVSxHQUFHLElBQUk7UUFDckQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxTQUFTLENBQUMsTUFBYztRQUM5QixJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsSUFBSSxNQUFNLEdBQUcsRUFBRSxFQUFFO1lBQ2YsWUFBWSxHQUFHLE1BQU0sTUFBTSxFQUFFLENBQUM7U0FDL0I7YUFBTSxJQUFJLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDdkIsWUFBWSxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7U0FDOUI7YUFBTSxJQUFJLE1BQU0sR0FBRyxJQUFJLEVBQUU7WUFDeEIsWUFBWSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7U0FDN0I7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvZ2FtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFzc2V0U2NhbGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsL2Fzc2V0LXNjYWxlLm1vZGUnO1xuaW1wb3J0IHsgSW1hZ2VMb2FkZWRFbnVtIH0gZnJvbSAnLi4vLi4vZW51bS9pbWFnZS1sb2FkZWQuZW51bSc7XG5pbXBvcnQgeyBDaGFyYWN0ZXJDbGFzcyB9IGZyb20gJy4uL2NoYXJhY3Rlci5jbGFzcyc7XG5cbi8qKlxuICogVGhlIE51bWJlciBDbGFzc1xuICovXG5leHBvcnQgY2xhc3MgTnVtYmVyQ2xhc3MgZXh0ZW5kcyBDaGFyYWN0ZXJDbGFzcyB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0gZ2FtZVNlcnZpY2UgVGhlIEdhbWVTZXJ2aWNlXG4gICAqIEBwYXJhbSBjdHggVGhlIGN0eFxuICAgKi9cbiAgY29uc3RydWN0b3IoZ2FtZVNlcnZpY2U6IEdhbWVTZXJ2aWNlLCBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkge1xuICAgIHN1cGVyKGdhbWVTZXJ2aWNlLCBjdHgpO1xuXG4gICAgdGhpcy5sb2FkTnVtYmVySW1hZ2VzKCk7XG5cbiAgICB0aGlzLmFzc2V0U2NhbGUgPSB7XG4gICAgICB4OiAwLjIsXG4gICAgICB5OiAwLjJcbiAgICB9IGFzIEFzc2V0U2NhbGVNb2RlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBOdW1iZXIgSW1hZ2VzXG4gICAqL1xuICBwcml2YXRlIGxvYWROdW1iZXJJbWFnZXMoKTogdm9pZCB7XG4gICAgY29uc3QgaW1hZ2VzVG9Mb2FkID0gW1xuICAgICAgSW1hZ2VMb2FkZWRFbnVtLm51bWJlcjAsXG4gICAgICBJbWFnZUxvYWRlZEVudW0ubnVtYmVyMSxcbiAgICAgIEltYWdlTG9hZGVkRW51bS5udW1iZXIyLFxuICAgICAgSW1hZ2VMb2FkZWRFbnVtLm51bWJlcjMsXG4gICAgICBJbWFnZUxvYWRlZEVudW0ubnVtYmVyNCxcbiAgICAgIEltYWdlTG9hZGVkRW51bS5udW1iZXI1LFxuICAgICAgSW1hZ2VMb2FkZWRFbnVtLm51bWJlcjYsXG4gICAgICBJbWFnZUxvYWRlZEVudW0ubnVtYmVyNyxcbiAgICAgIEltYWdlTG9hZGVkRW51bS5udW1iZXI4LFxuICAgICAgSW1hZ2VMb2FkZWRFbnVtLm51bWJlcjlcbiAgICBdO1xuXG4gICAgaW1hZ2VzVG9Mb2FkLm1hcCgoa2V5OiBJbWFnZUxvYWRlZEVudW0pID0+IHtcbiAgICAgIHRoaXMuaW1hZ2VzLnB1c2godGhpcy5nYW1lU2VydmljZS5nZXRJbWFnZShrZXkpKTtcbiAgICAgIHRoaXMuaXNJbWFnZUxvYWRlZCA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRHJhdyB0aGUgTnVtYmVyXG4gICAqIEBwYXJhbSBpbnB1dE51bWJlciB0aGUgbnVtYmVyIHRvIGRpc3BsYXlcbiAgICogQHBhcmFtIHBhZE51bWJlcnMgaWYgdGhlIG51bWJlcnMgc2hvdWxkIGJlIHBhZGRlZFxuICAgKi9cbiAgcHVibGljIHNldE51bWJlcihpbnB1dE51bWJlcjogbnVtYmVyLCBwYWROdW1iZXJzID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IG51bWJlcnMgPSBwYWROdW1iZXJzID8gdGhpcy5wYWRQb2ludHMoaW5wdXROdW1iZXIpIDogaW5wdXROdW1iZXIudG9TdHJpbmcoKTtcbiAgICB0aGlzLmNoYXJhY3RlcnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGluZGV4IG9mIG51bWJlcnMpIHtcbiAgICAgIHRoaXMuY2hhcmFjdGVycy5wdXNoKHRoaXMuaW1hZ2VzW051bWJlcihpbmRleCldKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFkIHRoZSBwb2ludHNcbiAgICpcbiAgICogQHBhcmFtIHBvaW50cyBUaGUgcG9pbnRzIHRvIHBhZFxuICAgKi9cbiAgcHJpdmF0ZSBwYWRQb2ludHMocG9pbnRzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCBzdHJpbmdQb2ludHMgPSBwb2ludHMudG9TdHJpbmcoKTtcbiAgICBpZiAocG9pbnRzIDwgMTApIHtcbiAgICAgIHN0cmluZ1BvaW50cyA9IGAwMDAke3BvaW50c31gO1xuICAgIH0gZWxzZSBpZiAocG9pbnRzIDwgMTAwKSB7XG4gICAgICBzdHJpbmdQb2ludHMgPSBgMDAke3BvaW50c31gO1xuICAgIH0gZWxzZSBpZiAocG9pbnRzIDwgMTAwMCkge1xuICAgICAgc3RyaW5nUG9pbnRzID0gYDAke3BvaW50c31gO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmdQb2ludHM7XG4gIH1cbn1cbiJdfQ==