/* ============================================================ 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 // 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; // 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; } // Overrides // Public Methoden // Private Methoden private void setNeueMenschKarte(Kartenfarbe farbe) { setCharakter(farbe); setKartenwert(menschID); menschID++; } private void setNeueElfKarte(Kartenfarbe farbe) { setCharakter(farbe); setKartenwert(elfID); elfID++; } private void setNeueRieseKarte(Kartenfarbe farbe) { setCharakter(farbe); setKartenwert(rieseID); rieseID++; } private void setNeueZwergKarte(Kartenfarbe farbe) { setCharakter(farbe); setKartenwert(zwergID); zwergID++; } }