/* ============================================================ This is the "Zahlenkarte" file from Author: Philipp Kotte written on: 05 / 10 / 2023 at: 23:30 ============================================================ */ package Domain.Karten; import Domain.Enums.Kartenfarbe; public class Zahlenkarte extends Karte { // Statische Konstanten private final static String NAME = "Charakterkarte"; // Statische Attribute private static int menschID = 1; private static int elfID = 1; private static int rieseID = 1; private static int zwergID = 1; // Attribute der Objekte private int kartenwert; private Kartenfarbe charakter; private String name; // Konstruktoren public Zahlenkarte(Kartenfarbe farbe) { super(); if (farbe == Kartenfarbe.MENSCH && menschID <=13) { setNeueMenschKarte(farbe); } else if (farbe == Kartenfarbe.ELF && elfID <= 13) { setNeueElfKarte(farbe); } else if (farbe == Kartenfarbe.RIESE && rieseID <= 13) { setNeueRieseKarte(farbe); } else if (farbe == Kartenfarbe.ZWERG && zwergID <= 13) { setNeueZwergKarte(farbe); } else { throw new RuntimeException("Es darf von jedem Charakter nur 13 Karten im Spiel geben."); } } // Statische Methoden // Getter und Setter public int getKartenwert() { return kartenwert; } public void setKartenwert(int kartenwert) { this.kartenwert = kartenwert; } public Kartenfarbe getCharakter() { return charakter; } public void setCharakter(Kartenfarbe charakter) { this.charakter = charakter; } public void setName() { this.name = NAME; } // Overrides // Public Methoden // Private Methoden private void setNeueMenschKarte(Kartenfarbe farbe) { setCharakter(farbe); setKartenwert(menschID); setName(); menschID++; } private void setNeueElfKarte(Kartenfarbe farbe) { setCharakter(farbe); setKartenwert(elfID); setName(); elfID++; } private void setNeueRieseKarte(Kartenfarbe farbe) { setCharakter(farbe); setKartenwert(rieseID); setName(); rieseID++; } private void setNeueZwergKarte(Kartenfarbe farbe) { setCharakter(farbe); setKartenwert(zwergID); setName(); zwergID++; } @Override public String getName() { // TODO Auto-generated method stub return this.name; } }