preferans-paper-js
Version:
nodejs paper for preferans
89 lines • 3.04 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const pref_paper_entry_1 = require("./pref.paper.entry");
const pref_paper_position_1 = require("./enums/pref.paper.position");
class PrefPaperEntryRefa extends pref_paper_entry_1.default {
constructor() {
super(...arguments);
this._left = 0;
this._middle = 0;
this._right = 0;
}
setPlayedPassed(position) {
switch (position) {
case pref_paper_position_1.default.LEFT:
return this.setLeftPlayedPassed();
case pref_paper_position_1.default.MIDDLE:
return this.setMiddlePlayedPassed();
case pref_paper_position_1.default.RIGHT:
return this.setRightPlayedPassed();
}
}
setPlayedFailed(position) {
switch (position) {
case pref_paper_position_1.default.LEFT:
return this.setLeftPlayedFailed();
case pref_paper_position_1.default.MIDDLE:
return this.setMiddlePlayedFailed();
case pref_paper_position_1.default.RIGHT:
return this.setRightPlayedFailed();
}
}
setLeftPlayedPassed() {
if (this.leftPlayed)
throw new Error('PrefPaperEntryRefa::setLeftPlayedPassed:Left already marked as played!');
this._left = 1;
return this;
}
setLeftPlayedFailed() {
if (this.leftPlayed)
throw new Error('PrefPaperEntryRefa::setLeftPlayedFailed:Left already marked as played!');
this._left = -1;
return this;
}
setMiddlePlayedPassed() {
if (this.middlePlayed)
throw new Error('PrefPaperEntryRefa::setMiddlePlayedPassed:Middle already marked as played!');
this._middle = 1;
return this;
}
setMiddlePlayedFailed() {
if (this.middlePlayed)
throw new Error('PrefPaperEntryRefa::setMiddlePlayedFailed:Middle already marked as played!');
this._middle = -1;
return this;
}
setRightPlayedPassed() {
if (this.rightPlayed)
throw new Error('PrefPaperEntryRefa::setRightPlayedPassed:Right already marked as played!');
this._right = 1;
return this;
}
setRightPlayedFailed() {
if (this.rightPlayed)
throw new Error('PrefPaperEntryRefa::setRightPlayedFailed:Right already marked as played!');
this._right = -1;
return this;
}
get leftPlayed() {
return this._left !== 0;
}
get middlePlayed() {
return this._middle !== 0;
}
get rightPlayed() {
return this._right !== 0;
}
get isRefa() {
return true;
}
get json() {
return {
left: this._left,
middle: this._middle,
right: this._right
};
}
}
exports.default = PrefPaperEntryRefa;
//# sourceMappingURL=pref.paper.entry.refa.js.map