/**
   * Erzeugt eine neues CharElement, außer die CharElemente: RassenVariante, KulturVariante oder
   * ProfessionsVarianet. Diese müssen über eine seperate Methode erzeugt werden.
   *
   * @param clazz Die Klasse des gewünschten zu erzeugenden CharElements
   * @return Eine neues CharElement vom typ "clazz"
   */
  public CharElement buildCharElement(Class clazz) {
    CharElement charElem;

    if (clazz == Talent.class) {
      charElem = new Talent();
      createFaehigkeit((Talent) charElem);
      ((Talent) charElem).setArt(Talent.Art.basis);
      ((Talent) charElem).setSorte(Talent.Sorte.gesellschaft);

    } else if (clazz == Zauber.class) {
      charElem = new Zauber();
      createFaehigkeit((Zauber) charElem);

    } else if (clazz == Repraesentation.class) {
      charElem = new Repraesentation();

    } else if (clazz == Vorteil.class) {
      charElem = new Vorteil();
      ((Fertigkeit) charElem).setArt(Fertigkeit.FertigkeitArt.allgemein);

    } else if (clazz == Nachteil.class) {
      charElem = new Nachteil();
      ((Fertigkeit) charElem).setArt(Fertigkeit.FertigkeitArt.allgemein);

    } else if (clazz == Sonderfertigkeit.class) {
      charElem = new Sonderfertigkeit();
      ((Fertigkeit) charElem).setArt(Fertigkeit.FertigkeitArt.allgemein);

    } else if (clazz == Gottheit.class) {
      charElem = new Gottheit();
      ((Gottheit) charElem).setGottheitArt(Gottheit.GottheitArt.zwoelfGoettlich);

    } else if (clazz == Liturgie.class) {
      charElem = new Liturgie();
      ((Liturgie) charElem).setArt(Liturgie.LiturgieArt.allgemein);

    } else if (clazz == RegionVolk.class) {
      charElem = new RegionVolk();
      ((RegionVolk) charElem).setArt(RegionVolk.RegionVolkArt.menschlich);

    } else if (clazz == Schrift.class) {
      charElem = new Schrift();
      createSchriftSprache((SchriftSprache) charElem);

    } else if (clazz == Sprache.class) {
      charElem = new Sprache();
      createSchriftSprache((SchriftSprache) charElem);

    } else if (clazz == Gegenstand.class) {
      charElem = new Gegenstand();
      ((Gegenstand) charElem).setArt(Gegenstand.GegenstandArt.sonstiges);

    } else if (clazz == DaemonenPakt.class) {
      charElem = new DaemonenPakt();

    } else if (clazz == MagierAkademie.class) {
      charElem = new MagierAkademie();
      ((MagierAkademie) charElem).setGilde(Gilde.unbekannt);

    } else if (clazz == SchwarzeGabe.class) {
      charElem = new SchwarzeGabe();

    } else if (clazz == SchamanenRitual.class) {
      charElem = new SchamanenRitual();
      ((SchamanenRitual) charElem).setGrad(1);

    } else if (clazz == Rasse.class) {
      charElem = new Rasse();

      ((Rasse) charElem).setArt(Rasse.RasseArt.menschlich);
      ((Rasse) charElem).setAlterWuerfel(new WuerfelSammlung(new int[] {1}, new int[] {3}, 15));
      /*
      ((Rasse) charElem).setHaarfarbe(
      		new FarbenAngabe[]{
      			new FarbenAngabe("Schwarz", 20),
      		});
      ((Rasse) charElem).setAugenfarbe(
      		new FarbenAngabe[]{
      			new FarbenAngabe("Schwarz", 20),
      		});
      */
      ((Rasse) charElem).setGeschlecht(Geschlecht.mannOderFrau);
      // ((Rasse) charElem).setKannGewaehltWerden(true);
      ((Rasse) charElem).setGeschwindigk(8);
      ((Rasse) charElem).setGewichtModi(100);
      ((Rasse) charElem).setGroesseWuerfel(new WuerfelSammlung(new int[] {2}, new int[] {20}, 160));

    } else if (clazz == Kultur.class) {
      charElem = new Kultur();

      ((Kultur) charElem).setArt(Kultur.KulturArt.menschlich);

    } else if (clazz == Profession.class) {
      charElem = new Profession();

      ((Profession) charElem).setAufwand(Profession.Aufwand.normal);
      ((Profession) charElem).setArt(Profession.ProfArt.gesellschaftlich);

    } else {
      throw new IllegalArgumentException(
          "Keine Behandlung für ein Element des Typs " + clazz.toString() + " vorhanden.");
    }

    createCharElement(charElem);

    return charElem;
  }