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.

77 lines
1.6 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. this._xpos = 0;
  11. this._ypos = 0;
  12. }
  13. //Logik beim Legen einer Karte (wird für alle Karten ausgeführt)
  14. putSelf(){
  15. //Nächster Spieler am Zug
  16. this.game.nextTurn();
  17. }
  18. //Gibt den Namen der Karte zurück
  19. get name() {
  20. return this._name;
  21. }
  22. //Gibt zurück, ob die Karte gelegt werden kann
  23. get canPut() {
  24. return this._canPut;
  25. }
  26. //Gibt die Farbe der Karte zurück
  27. get color() {
  28. return this._color;
  29. }
  30. //Setzt die Farbe der Karte
  31. set color(color) {
  32. this._color = color;
  33. }
  34. //Gibt zurück ob die Karte sich auf dem Bildschirm befindet
  35. get onScreen() {
  36. return this._onScreen;
  37. }
  38. //Gibt die Instanz vom Game zurück
  39. get game(){
  40. return this._game;
  41. }
  42. //Setzt, ob die Karte gelegt werden kann, oder nicht
  43. set canPut(bool){
  44. this._canPut = bool;
  45. }
  46. set xPos(pos){
  47. this._xpos = pos;
  48. }
  49. set yPos(pos){
  50. this._ypos = pos;
  51. }
  52. get xPos(){
  53. return this._xpos;
  54. }
  55. get yPos(){
  56. return this._ypos;
  57. }
  58. }