You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
class Card {
|
|
|
|
|
color;
|
|
|
|
|
symbol;
|
|
|
|
|
points;
|
|
|
|
|
facingDown = false;
|
|
|
|
|
assetUrl;
|
|
|
|
|
backAssetUrl;
|
|
|
|
|
|
|
|
|
|
constructor(color, symbol, points, assetBaseUrl = 'img/') {
|
|
|
|
|
this.color = color;
|
|
|
|
|
this.symbol = symbol;
|
|
|
|
|
this.points = points;
|
|
|
|
|
this.assetUrl = this.createAssetPath(assetBaseUrl);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
createAssetPath(assetBaseUrl) {
|
|
|
|
|
return assetBaseUrl + this.color + this.symbol + '.png'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
isAnAce() {
|
|
|
|
|
return this.symbol === 'a';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
flip() {
|
|
|
|
|
this.facingDown = !this.facingDown;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
isFacingDown() {
|
|
|
|
|
return this.facingDown;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
get assetUrl() {
|
|
|
|
|
if (this.isFacingDown()) {
|
|
|
|
|
return this.backAssetUrl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return this.assetUrl;
|
|
|
|
|
}
|
|
|
|
|
}
|