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.

58 lines
1.4 KiB

  1. //Klasse Card für die UnoKarten
  2. export default class Card {
  3. //Konstruktor für das Erstellen einer Karte
  4. constructor(name, color, gameInstanz, ) {
  5. this._game = gameInstanz;
  6. this._onScreen = false; //Die Karte wird bei Erstellung noch nicht auf dem Bildschirm angezeigt
  7. this._canPut = false; //Die Karte kann bei Erstellung nicht gelegt werden
  8. this._name = name; //Name der Karte (z.B. 0,1...,9,+2,+4,CC,R,S)
  9. this._color = color; //Farbe der Karte (CARD_COLORS)
  10. }
  11. //Logik beim Legen einer Karte (wird für alle Karten ausgeführt)
  12. putSelf(){
  13. //Nächster Spieler am Zug
  14. this.game.nextTurn();
  15. }
  16. //Gibt den Namen der Karte zurück
  17. get name() {
  18. return this._name;
  19. }
  20. //Gibt zurück, ob die Karte gelegt werden kann
  21. get canPut() {
  22. return this._canPut;
  23. }
  24. //Gibt die Farbe der Karte zurück
  25. get color() {
  26. return this._color;
  27. }
  28. //Setzt die Farbe der Karte
  29. set color(color) {
  30. this._color = color;
  31. }
  32. //Gibt zurück ob die Karte sich auf dem Bildschirm befindet
  33. get onScreen() {
  34. return this._onScreen;
  35. }
  36. //Gibt die Instanz vom Game zurück
  37. get game(){
  38. return this._game;
  39. }
  40. //Setzt, ob die Karte gelegt werden kann, oder nicht
  41. set canPut(bool){
  42. this._canPut = bool;
  43. }
  44. }