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.
78 lines
1.6 KiB
78 lines
1.6 KiB
|
|
//Klasse Card für die UnoKarten
|
|
export default class Card {
|
|
|
|
//Konstruktor für das Erstellen einer Karte
|
|
constructor(name, color, gameInstanz) {
|
|
|
|
this._game = gameInstanz;
|
|
this._onScreen = false; //Die Karte wird bei Erstellung noch nicht auf dem Bildschirm angezeigt
|
|
this._canPut = false; //Die Karte kann bei Erstellung nicht gelegt werden
|
|
this._name = name; //Name der Karte (z.B. 0,1...,9,+2,+4,CC,R,S)
|
|
this._color = color; //Farbe der Karte (CARD_COLORS)
|
|
|
|
this._xpos = 0;
|
|
this._ypos = 0;
|
|
|
|
}
|
|
|
|
//Logik beim Legen einer Karte (wird für alle Karten ausgeführt)
|
|
putSelf(){
|
|
|
|
//Nächster Spieler am Zug
|
|
this.game.nextTurn();
|
|
|
|
}
|
|
|
|
//Gibt den Namen der Karte zurück
|
|
get name() {
|
|
return this._name;
|
|
}
|
|
|
|
//Gibt zurück, ob die Karte gelegt werden kann
|
|
get canPut() {
|
|
return this._canPut;
|
|
}
|
|
|
|
//Gibt die Farbe der Karte zurück
|
|
get color() {
|
|
return this._color;
|
|
}
|
|
|
|
//Setzt die Farbe der Karte
|
|
set color(color) {
|
|
this._color = color;
|
|
}
|
|
|
|
//Gibt zurück ob die Karte sich auf dem Bildschirm befindet
|
|
get onScreen() {
|
|
return this._onScreen;
|
|
}
|
|
|
|
//Gibt die Instanz vom Game zurück
|
|
get game(){
|
|
return this._game;
|
|
}
|
|
|
|
//Setzt, ob die Karte gelegt werden kann, oder nicht
|
|
set canPut(bool){
|
|
this._canPut = bool;
|
|
}
|
|
|
|
set xPos(pos){
|
|
this._xpos = pos;
|
|
}
|
|
|
|
set yPos(pos){
|
|
this._ypos = pos;
|
|
}
|
|
|
|
get xPos(){
|
|
return this._xpos;
|
|
}
|
|
|
|
get yPos(){
|
|
return this._ypos;
|
|
}
|
|
|
|
}
|