Sonderfertigkeit hinzugefügt

master
macniel 2025-11-02 22:21:51 +01:00
parent 6ad449737e
commit 667c639292
1 changed files with 191 additions and 0 deletions

191
Sonderfertigkeit.md 100644

@ -0,0 +1,191 @@
Folgend ist das Schema für Kompendium Einträge vom Typ: Sonderfertigkeit
# Sonderfertigkeit
```json
{
name: String,
sfPflicht: Boolean?,
seite: String?,
gruppe: ["Kampf", "Karmal", "Magisch", "Allgemein"],
text: HtmlString,
aktionsText: HtmlString,
waffenLimit: [WaffenLimit]?,
value: String?,
auswahl: [Auswahl]?,
requirement: [Requirement],
mod: [Mod]?
}
```
## Felder
**`name`**
Spezifiziert den Namen dieser Sonderfertigkeit
**`sfPflicht`**
Optional, indiziert ob dieses Manöver nur mit einer Sonderfertigkeit genutzt werden kann, dient der Dokumentation
**`seite`**
Optional, beschreibt die Quelle aus der diese Sonderfertigkeit stammt (ggf. auch mit Buchname), dient der Dokumentation
**`gruppe`**
Bestimmt die Art dieser Sonderfertigkeit und gilt der Kategoriersierung: Kampf für Kampfsonderfertigkeiten, Karmal für Karmale Sonderfertigkeiten etc.
**`text`**
Dient der Anzeige in Dialogen welche diese Sonderfertigkeit beschreibt, es kann hier Html genutzt werden
**`aktionsText`**
Dient der Anzeige in Chatnachrichten und sollte eine abgekürzte variante des Texts sein. Es kann hier Html genutzt werden
**`waffenLimit`**
Optional, Liste an Waffen und oder Gruppen die mit dieser Sonderfertigkeit geführt werden kann. Siehe weiter unten die konkrete Ausprägung dieses Typs
**`value`**
Optional, bei Sonderfertigkeiten die Varianten und oder Werte haben können, dient dieses Feld als Indikator für die gelernte Sonderfertigkeit, dient der Dokumentation und wird vom System intern überschrieben
**`auswahl`**
Optional, bei Sonderfertigkeiten die Varianten und oder Werte haben können, werden jene in diesem Array ausdefiniert. Siehe weiter unten für die konkrete Ausprägung des Typs
**`requirement`**
Optional, bei Sonderfertigkeiten die Voraussetzungen haben werden diese in diesem Array ausdefiniert. Siehe weiter unten für die konkrete Ausprägung des Typs
**`mod`**
Optional. Eine Liste an Modifikatoren welche wenn die Requirements erfüllt sind an dem Charakter der diese Sonderfertigkeit besitzt durchgeführt werden soll. Siehe weiter unten für die konkrete Ausprägung des Typs
# Waffenlimit
```json
{
waffe: String?,
gruppe: String?,
mod: Number?
}
```
Hinweis: Entweder Waffe oder Gruppe muss in diesem Objekt definiert sein, sonst ist dieses Waffenlimit ungültig und wird nicht zur Bestimmung der Verfügbarkeit dieser SF benutzt.
**`waffe`**
Optional. Wenn dieses Feld gesetzt ist, dann befindet sich hier ein konkreter Waffenname die mit dieser Sonderfertigkeit geführt werden kann etwa der `Dreizack` im Falle der Sonderfertigkeit `Festnageln`
**`gruppe`**
Optional. Wenn dieses Feld gesetzt ist, dann befindet sich hier eine konkrete Waffengattung die mit dieser Sonderfertigkeit geführt werden kann etwa `Anderthalbhänder` im Falle der Sonderfertigkeit `Betäubungsschlag`
**`mod`**
Optional. Wenn dieses Feld gesetzt ist, dann wird dieser Wert genutzt um den die Sonderfertigkeit zu erschweren ist. Etwa bei der Sonderfertigkeit `Betäubungsschlag` ist diese mit einem `Anderthalbhänder` um 8 erleichert.
# Auswahl
```json
{
name: String,
mod: [Modification]?,
requirements: [Requirement]?,
}
```
Hinweis: Wenn mod nicht gesetzt ist, dann werden keine Berechnungen anhand dieser Auswahl durchgeführt. Dies ist beispielsweise bei Sonderfertigkeiten die lediglich die Heldengenerierung beeinflussen (Miserable/Herausragende Eigenschaft) der Fall.
**`name`**
Name dieser Ausprägung. Dieser Text wird anstelle des Namens der Sonderfertigkeit im Heldendokument angezeigt
**`mod`**
Optional. Eine Liste an Modifikatoren welche wenn die Requirements erfüllt sind an dem Charakter der diese Sonderfertigkeit besitzt durchgeführt werden soll. Siehe weiter unten für die konkrete Ausprägung des Typs
**`requirements`**
Optional. Verhält sich wie `requirement` in dem Hauptdokument der Sonderfertigkeit.
# Requirement
```json
{
attribute: String?,
talent: String?,
minValue: Number?,
maxValue: Number?,
sonderfertigkeit: String?,
compare: Compare?
}
```
Hinweis: idealerweise wird nur eines der vier Felder (attribute, talent, sonderfertigkeit, compare) pro Eintrag benutzt. Wenn compare oder sonderfertigkeit genutzt wird, wird minValue/maxValue nicht zur Rate gezogen.
**`attribute`**
Optiona. Kurzschreibweise der Attribute gegen den minValue/maxValue geprüft werden soll.
**`talent`**
Optional. Der Name des Talents welches gegen den minValue/maxValue geprüft werden soll. Wenn der Charakter der diese Sonderfertigkeit besitzt nicht über das Talent verfügt, schlägt diese Requirement fehl.
**`sonderfertigkeit`**
Optional. Der Name des Talents welches gegen den minValue/maxValue geprüft werden soll. Wenn der Charakter der diese Sonderfertigkeit besitzt nicht über das Talent verfügt, schlägt diese Requirement fehl.
**`compare`**
Optional. Compare ist ein kopmplexes Werkzeug um Werte von dem Charakter der diese Sonderfertigkeit besitzt gegen andere Charaktere gegen die diese Sonderfertigkeit eingesetzt werden soll vergleicht. Siehe weiter unten für eine detailierte Erklärung dieses Typs.
**`minValue`**
Optional. Wenn dieses Feld gesetzt ist, dann werden attribute und talente geprüft ob diese einen TaW/Eigenschaftswert über oder gleich minValue entspricht.
**`maxValue`**
Optional. Wenn dieses Feld gesetzt ist, dann werden attribute und talente geprüft ob diese einen TaW/Eigenschaftswert weniger oder gleich maxValue entspricht.
# Compare
```json
{
ownAttribute: String,
operation: ["lt", "lte", "eq", "neq", "gte", "gt"]
targetAttribute: String,
}
```
Hinweis: Dieser Vergleich basiert auf Eigenschaften der zu vergleichenden Charaktere. die Pfad Notation ist hier anzuwenden um die Eigenschaften richtig zu addressieren.
Beispielshaft sei Finte zu erwähnen, welche nur eingesetzt werden kann wenn die eigene Initiative ('ini.aktuell') größer ist ('gt') als die Initiative ('ini.aktuell') des Gegenübers.
**`ownAttribute`**
Dieses Feld beschreibt per Pfad Notation die Eigenschaft des Charakters der diese Sonderfertigkeit besitzt.
**`targetAttribute`**
Dieses Feld beschreibt per Pfad Notation die Eigenschaft anderer Charaktere die bei der Evaluierung dieser Sonderfertigkeit geprüft werden soll.
**`operation`**
Enum.
- lt (Lower Than): Die Requirement ist erfolgreich wenn `ownAttribute` kleiner ist als `targetAttribute`
- lte (Lower Than or Equal): Die Requirement ist erfolgreich wenn `ownAttribute` gleich oder kleiner ist als `targetAttribute`
- eq (Equal): Die Requirement ist erfolgreich wenn `ownAttribute` ist gleich `targetAttribute`
- neq (Not Equal): Die Requirement ist erfolgreich wenn `ownAttribute` ist nicht gleich `targetAttribute`
- gte (Greater Than or Equal): Die Requirement ist erfolgreich wenn `ownAttribute` gleich oder größer ist als `targetAttribute`
# Mod
```json
{
name: String,
value: Number,
}
```
**`name`**
Name ist eine Eigenschaft in der Pfad Notation des Charakter der diese Sonderfertigkeit besitzt. Etwa `ausweichen` entspricht den Ausweichen Wert des Charakters, oder `attribute.ge.aktuell` verändert die Gewandtheit des Charakters
**`value`**
Wert um die die Eigenachft welche mit `name` beschrieben wird erhöht (im positiven Falle) oder verringert (im negativen Falle) wird.