Aufgabe: Varianten von Rassen, Kulturen und Professionen

aus AlricgWiki, der freien Wissensdatenbank

Inhaltsverzeichnis

Profil

Dringlichkeit: Hoch
Schwierigkeit: Schwierig
Ziele: Korrekte implementierung der Varianten bei der Herkunft wie unten beschrieben.
Wird bearbeitet von: Keiner
Für Rückfragen: Vincent

Beschreibung

Hier erst mal eine Beschreibung des Sachverhalts wie man ihn im Regelwerk findet. Ich gehe noch nicht auf moeglichen Loesungen ein.

Zu fast jeder Herkunft gibt es sogenannte Varianten. Diese Varianten werden zusaetzliche zur Herkunft gewaehlt und gewaehren weitere Boni oder veraendern die Boni, die man durch die Herkunft erhaelt.
Beispiele:

1. durch die Varianten erhaelt man: 'Toepfern +2'
2. Durch die Herkunft erhaelt man: 'Schwerter oder Saebel +1'
Die Variante macht daraus: 'Hiebwaffen oder Saebel +1'

Varianten koennen optional oder verpflichtend sein.
Bei Professionen sind Varianten meist verpflichtend. Man muss eine der Varianten waehlen. Bei Rassen und Kulturen sind Varianten meist optional. Es gibt die Ausnahme Yaquirien (AH S39). Weitere Ausnahmen fallen mir zu Kulturen jetzt nicht ein.

Es koennen unterschiedlich viele Varianten gewaehlt werden
Bei Rassen und Professionen kann man stets nur eine Variante waehlen. (Bin ich mir nicht ganz sicher.) Bei Kulturen ist es normalerweise moeglich mehrere Varianten zu waehlen.

Bei Yaquirien muss man aus 2 verpflichtenden Varianten eine waehlen und kann die dann noch mit mehreren optionalen Varianten kombinieren.

Besonders problematische Varianten

  • Hirte der Walwütigen / Aventurische Götterdiener S. 76: Besondere Aufhebung von Boni
  • Nördliche Siedlungen / AH S. 35: Aufhebung von Sprachen
  • Yaquirien / AH S. 38: Es können zweimal Varianten gewählt werden.
Man kann zwei unterschiedliche Kulturen Yaquirien(Almada) und Yaquirien(Horasreich) daraus machen.
  • Nanduriantion / AH. 92: Änderung der Voraussetzungen

Problematische Varianten Allgemein

Hier die allgemeinen Prinzipien, die sich hinter den verschiedenen Varianten verbergen.

  • Entfernen und hinzufuegen von Elementen. Bspe.: Bei der Kultur Garethien werden die Verkehrssprachen veraendert, bei Kultur Andergast wird Variante Landadel 'Speere +1' zu 'Schwerter oder Hiebwaffen +1' und mit Variante Stadt wird aus 'Speere +1' 'Infanteriwaffen +1'
  • Hinzufuegen von Boni: 'Schwerter oder Saebel +1' zu 'Schwerter oder Saebel +2, +1'

Lösungsansatz

Beschreibung des Konzepts

Grundsätzlich werde sind die Varianten eingende CharElemente, die nur die "Original-Herkunft" modifizieren. Also im Grunde so, wie es auch im den Büchern steht. Der Grund dafür ist, das es an manchen stellen benötigt wird (nämlich wenn mehrere Varianten gleichzeitig wählbar sind) und das dem User so die Modifikationen, durch eine Varainate erzeugt werden, besser angezeigt werden können.
Diese Lösund hat sich durch einige Diskussionen herausgebildet.

Eine Variante ist erstmal eine normale Rasse, Kultur, oder Profession. Alle angegeben Werte werden einfach zu der "original-Herkunft" hinzuaddiert. Stufen also summiert und Vor-/Nachteile, sowie SF u.ä. einfach zusätzlich zu den bestehenden übernommen. Bei Talenten kommt es oft vor, das ein Talent das andere ersetzt. Dies wird einfach durch eine negative Modifikaton erreicht. Z.B. AH S. 34: Im Original heißt es "Infanteriewaffen +1" in der Variante "Städischer Adel" steht "Fechtwaffen oder Schwerter statt Infanteriewaffen +1". Diese Variante wird umgesetzt in "Fechtwaffen oder Schwarter +1, Infanteriewaffen -1".

Damit können ca. 90% aller Varianten implementiert werden, da die meißten Varianten ja recht einfach aufgebaut sind.


Oftmals müssen Elemente entfernd werden, vor allem SF, Vor- / Nachteile. Dafür wird ein eigendes Feld eingeführt, in dem solche Elemente angegeben werden können. Dieses ist jedoch NICHT für Elemente in einer Auswahl ("wähle x oder Y") gedacht! Es ist außerdem möglich ganze Arten von Elementen aus der original Herkunft zu entfernen, z.B. alle Sprachen, alle Schriften, alle SF usw. Dann muß dieser Satz von Elementen komplett neu in der Variante vorhanden sein. Sinnvoll ist dieses immer dann, wenn Elemente in Auswahlen ("wähle x oder Y") abgeändert oder gar ersetzt werden, was vor allem bei Sprachen und Schriften oft passiert. Außerdem werden oft Voraussetzungen abgeändert, wo ein Modifizieren schwierig ist.

Damit sollten 97% aller Varianten implementiert werden können.


Die übrigen 3% müssen dann als komplett unabhängige Rasse, Kultur, Profession geschrieben werden, die zwar noch vermerkt hat das sie eine Variante ist, aber nicht mehr auf die Werte des Originals zurückgreifen muß.

Damit sollten 100% aller Varianten implementiert werden können.


Damit hat mal also 3 Möglichkeiten eine Variante mit dem "Original" zuverbinden:

  • Es wird zu dem Original nur etwas hinzugefügt (auch wenn es negative Werte sein können)
  • Es kann eine ganze Arten von Elementen in der Variante ersetzt werden, in dem Fall werde nur die entsprechenden Elemente aus der Variante übernommen, nicht die aus der Original Herkunft. So können z.B. alle SF nur aus der Variante genommen werden, unabhängig von der original Herkunft
  • Die Variante kann komplett alle Werte neu setzen.

Bisherige Implementierung

Die Klassen die wichtig sind:

 org.d3s.alricg.charKomponenten.HerkunftVariante
 org.d3s.alricg.charKomponenten.KulturVariante
 org.d3s.alricg.charKomponenten.RasseVariante
 org.d3s.alricg.charKomponenten.ProfessionVariante
 org.d3s.alricg.charKomponenten.spezial.ModifizierteKultur
 org.d3s.alricg.charKomponenten.spezial.ModifizierteRasse
 org.d3s.alricg.charKomponenten.spezial.ModifizierteProfession
 

Die Klassen im package "org.d3s.alricg.charKomponenten" liefern nur die Daten und sollten nicht verändert werden müssen. Der Teil der zu Implementieren ist, sind die Klassen "ModifizierteRasse", "ModifizierteKultur", und "ModifizierteProfession". In diesen Klassen soll folgendes passieren: Eine Herkunft und eine HerkunftVariante wird an diese Klasse übergegen, und die Klasse erzeugt daraus nach den Regeln eine neue, temporäre Herkunft. Die Herkunft soll danach ganz normal benutzt werden können, wie jede andere.

Die Werte der Herkunft und der HerkunftVariante, die als Parameter übergeben werdem, dürfen dabei NICHT verändert werden! Bei zusammenführen der beiden Objekte in das neue Objekt werden die Werte meist nach folgenden Schema bestimmt:

  • Ist in der HerkunftVariante angegeben, dass eine Elemnet entfernd werden soll, so wird dieses Element aus der Herkunft nicht in das neue Element übernommen.
  • Ist in der HerkunftVariante angegeben, dass eine ganze Art von Elementen entfernd werden soll, so werden diese Element aus der Herkunft nicht in das neue Element übernommen. (aber natürlich Elemente der Art aus der Variante)
  • Haben Elemente eine Stufe, werden die Stufen addiert. Ist die Stufe danach "0", so wird das Element entfernd.

Problematisch ist vor allen, dass es egal sein muß in welcher Reihenfolge die Varianten zur Herunft addiert werden! Es gibt ja Fälle, in denen mehrer Varianten gleichzeitig gewählt werden können. In solchen (und nur in solchen wo mehrfach auswahlen möglich sind) sollte Dinge wie das Entfernen von Elementen nur auf die entsprechende "original" Herkunft angewand werden.

'Persönliche Werkzeuge