Giter VIP home page Giter VIP logo

dsa-4.1-heldendokument's People

Contributors

davidfoerster avatar flyx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dsa-4.1-heldendokument's Issues

Personalisierte Waffen und Rüstungen

Personalisierte, d.h. verbesserte Waffen, oder auch z.B. hervorragende Kettenrüstungen, die einen weiteren Stern haben, werden nicht korrekt erkannt. Die Daten dazu stehen grundsätzlich im helden XML mit drin. Anbei ein Held der ein verbessertes Kurzschwert hat und eine hervorragende Kettenweste, beides wird aktuell durch ein entsprechendes 0815 Gegenstück ersetzt.

WulfjewFirunkis.zip

Typo Astrale Regeneration

Ist der letzte Bug-Report für heute 😉 sehr cooler Generator, hab einfach mal die ganze Gruppe durch gejagt um Edge-Cases zu finden. Könnte mir gut vorstellen, dass wir auf deinen Bogen wechseln.

Anbei ein .patch file für einen Typo: typo.zip

Zauber Ignifaxius schlägt fehlt | Lahm und Astrale Regeneration nicht berücksichtigt

  1. Der Zauber Ignifaxius erzeugt einen Fehler, vermutlich wegen des Tippfehlers Ingifaxius in der heldensoftware-meta.xml. Kann manuell in der lua Datei korrigiert werden, dann läuft es durch.
  2. Weiterhin ist mir aufgefallen, dass der Nachteil Lahm nicht korrekt von der GS abgezogen wird, hier steht immer der Starwert auf Seite 1. Im Helden Generator wird der Startwert angezeigt und der aktuelle Wert anhand von BE bestimmt.
  3. Der Vorteil Astrale Regeneration scheint bei der Berechnung der Regeneration pro Phase auch ignoriert zu werden.

Anbei ein XML um alle beschriebenen Probleme zu reproduzieren.

BernholmvonBellentorKampagne.zip

Fehler beim Helden-Import

Wenn ich einen Helden aus dem Helden-Tool importiere wird die Lua-Datei nicht korrekt erzeugt, denn bei den Kampftalenten wird ein Wert (der TaW) zu viel eingefügt:

Talente.Kampf {
  Fern {"Armbrust", "C", "BE-5", 10, {}},
  Nah {"Dolche", "D", "BE-1", 3, 3, 6, {}},
  Nah {"Fechtwaffen", "E", "BE-1", 3, 2, 5, {}},
  Nah {"Hiebwaffen", "D", "BE-4", 0, 1, 1, {}},
  Nah {"Infanteriewaffen", "D", "BE-3", 0, 1, 1, {}},
  Nah {"Raufen", "C", "BE", 2, 2, 4, {}},
  Nah {"Ringen", "D", "BE", 0, 1, 1, {}},
  Nah {"Säbel", "D", "BE-2", 0, 0, 0, {}},
  Fern {"Wurfmesser", "C", "BE-3", 2, {}},
}

Was beim Generieren zu diesem Fehler führt.
Richtig müsste es so sein:

Talente.Kampf {
  Fern {"Armbrust", "C", "BE-5", 10, {}},
  Nah {"Dolche", "D", "BE-1", 3, 3, {}},
  Nah {"Fechtwaffen", "E", "BE-1", 3, 2, {}},
  Nah {"Hiebwaffen", "D", "BE-4", 0, 1, {}},
  Nah {"Infanteriewaffen", "D", "BE-3", 0, 1, {}},
  Nah {"Raufen", "C", "BE", 2, 2, {}},
  Nah {"Ringen", "D", "BE", 0, 1, {}},
  Nah {"Säbel", "D", "BE-2", 0, 0, {}},
  Fern {"Wurfmesser", "C", "BE-3", 2, {}},
}

dann wird alles richtig generiert.

Wie lege ich einen neuen Record-Typ als Kind von einem vorhanden an?

Ich experimentiere mit einem Charakterporträtbild (via \includegraphics) auf dem Heldenbogen herum. Dazu möchte ich eine Datenstruktur Held.Portrait in schema.lua einführen, die bspw. so aussehen soll:

local Portrait = d.Record::def(
  {name = "Portrait", description = [[Porträtbild des Helden]]},
  {"filename", String, ""},
  {"bb", String, ""},
  {"viewport", String, ""},
  {"trim", String, ""},
  {"clip", schema.Boolean, true},
  {"keepaspectratio", schema.Boolean, true},
  {"type", String, ""},
  {"ext", String, ""},
  {"page", OptNum, {}})

d:singleton(d.Record, {name = "Held", description = [[Grundlegende Daten des Helden.]]},
  {"Name", String, ""},
  -- ... snip ...
  {"Portrait", Portrait, {}})

Wenn ich nun versuche, den Heldenbogen zu erzeugen bekomme ich eine wenig hilfreiche Fehlermeldung, die sich auch noch auf eine nicht existierende Datei bezieht:

\blockbox=\box117
\saved@arstrutbox=\box118
) (./common.texvalues.lua:2: attempt to call a nil value
stack traceback:
	values.lua:2: in main chunk
	./data.lua:16: in main chunk
	[C]: in function 'require'
	[\directlua]:1: in main chunk.
l.10 }

Sie tritt unabhängig von meinen Versuchen auf, Held.Portrait auf verschiedene Weisen (oder gar nicht) zu instantiieren.

Was mache ich falsch bzw. was sollte ich anders machen? Ich bin auch für andere Metatypen als Grundlage für Portrait offen, falls das besser passt.


Wenn ich den Typ als eigenständigen Singleton definiere, scheint es hingegen zu funktionieren:

d:singleton(
  d.Record,
  {name = "Portrait", description = [[Porträtbild des Helden]]},
  {"filename", String, ""},
  -- ... snip ...
  )

Berechnung Geschwindigkeit und Startwerte von Eigenschaften

Zwei Fehler bei der Eigenschaften-Tabelle:

  1. Bei der Darstellung des Startwertes von Eigenschaften kommt es wohl noch zu einem Fehler. Der Helden Generator zeigt beim angehängten Helden eine GE von 11 an, mit Modifikator dann GE 9. Hier wird zweimal GE 9 angezeigt.
  2. Außerdem ist die Geschwindigkeit nicht korrekt. In WdS S 138-139 wird dies erklärt, die Basis ist GS8, aber niedrige GE, gewisse Vor- und Nachteile, sowie BE wirken sich auf die effektive GE aus. Der Helden Generator stellt dies korrekt als Summe aus GS+Modifkatoren+BE unter "Aktuell" dar. Wobei der "Startwert" die "nackte" GS ist, wobei man auch hier streiten kann ob im Beispiel nicht eine 6 stehen sollte, da die GE<10 ist und das im Grunde stets so ist, nicht nur temporär.

grafik
grafik

Wie üblich, Held zur Reproduktion: BernholmvonBellentorKampagne.zip

Wappen/Porträt auf der Frontseite

Ich bastle an einem Bereich für ein Wappen/Porträt auf der Frontseite analog zur Vorlage aus Wege der Helden. Eine mögliche Codeinfrastruktur habe ich in meinem Fork gebaut (Beispielergebnis).

Unschlüssig bin ich allerdings beim Layout und insbesondere der Anordnung der Heldenbasisangaben rund um das Porträt. Nach meiner Ansicht ist bei unserer Schriftgröße der Platz für eine Aussehensbeschreibung zu knapp bemessen, um sie links unten wie in der Vorlage anzuordnen. Andererseits fehlt uns die Angabe „Familie/Herkunft/Hintergrund“. Hast du irgendwelche Ideen oder Vorlieben?

Falls du Interesse hast und sobald die Gestaltung im Wesentlichen ausgearbeitet ist, reiche ich gerne einen pull request ein.

Unable to build nix package

Trying to build the nix package fails with the following error:

error: builder for '/nix/store/c7wqyyl07y5qaifwcz689blqalj762qb-468.drv' failed with exit code 1;
       last 9 log lines:                                                                                            
       >
       > trying http://www.ulisses-spiele.de/download/468/
       >   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
       >                                  Dload  Upload   Total   Spent    Left  Speed
       > 100   322  100   322    0     0   6618      0 --:--:-- --:--:-- --:--:--  6708
       >   0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
       >   0     0    0     0    0     0      0      0 --:--:--  0:00:03 --:--:--     0
       > curl: (22) The requested URL returned error: 404
       > error: cannot download 468 from any mirror
       For full logs, run 'nix log /nix/store/c7wqyyl07y5qaifwcz689blqalj762qb-468.drv'.
error: 1 dependencies of derivation '/nix/store/m2fl4c0aqpvcka2p5gw8pd0rxjf80r81-dsa41held.drv' failed to build

It seams Ulisses removed the file http://www.ulisses-spiele.de/download/468/ is it possible to get is somewhere else?

Der Heldensoftware unbekannte Informationen transportieren

Der übliche Anwendungsfall des Heldendokuments ist, Helden aus der Heldensoftware zu importieren und daraus direkt das Dokument zu erstellen. Die Heldensoftware kennt allerdings manche Informationen nicht, die das Heldendokument als Eingabe verarbeiten kann, etwa:

  • Mirakel+ und Mirakel-. Momentan werden die, die laut LL immer gewählt werden müssen, vom Import gesetzt. Dies schließt aber Talente aus, die aus einer Liste ausgewählt werden können. Darüber hinaus ist es manchmal sinnvoll, von der offiziellen Setzung abzuweichen, beispielsweise sollten geweihte Säbeltänzer nicht das bei Rahja übliche Mirakel- auf ihre Kampftalente bekommen.
  • Das Layout des Heldendokuments. Momentan generiert der Import immer das default-Layout. Das kann mitunter schief gehen, etwa wenn sowohl Gaben als auch Übernatürliche Begabungen vorliegen, oder derer mehr als zwei. Das Heldendokument ist dafür gebaut, solche Fälle schön anordnen zu können, indem man woanders unnötige Zeilen entfernt oder die Tabellen umsortiert. Der Import kann hier verbessert werden, aber das ist schwierig und produziert nicht unbedingt das vom Benutzer gewünschte Layout.

Die aktuelle Lösung ist die Verarbeitung in zwei Schritten: Zunächst werden die Daten des Heldendokuments importiert, was eine Lua-Datei erzeugt. Diese kann manuell editiert werden. Danach wird aus ihr das Dokument generiert. In der Praxis hat niemand Lust, jedes Mal wenn der Held sich in der Software ändert den manuellen Schritt neu auszuführen.

Mögliche Lösungsansätze für dieses Problem wären:

  • Ein Schema für sekundäre Dateneingabe zu definieren. Darüber könnte eine zweite Datei eingegeben werden, die einmalig geschrieben werden muss und die alle Informationen, die im Heldensoftware-XML fehlen, enthält. Die Datei müsste dann bei der Generierung mit eingegeben werden aber muss nach der Erstellung nicht mehr geändert werden, außer es ändert sich etwas grundlegend am Charakter (zB Spätweihe). Nicht arg benutzerfreundlich, aber eine Verbesserung gegenüber dem Status Quo.
  • Die Daten über die Notizen in der Heldensoftware eingeben. Die Notizen sind ein freies Eingabefeld, wenn man eine Eingabesyntax definiert, könnte man dies benutzen, um die zusätzlichen Informationen in das XML zu codieren. Immer noch unschön, aber wenigstens muss der Benutzer keine separate Datei verwalten.
  • Eine Erweiterung schreiben, mit der die Daten innerhalb der UI der Heldensoftware eingegeben werden können. Ich kenne die Erweiterungs-API nicht und weiß nicht, ob das möglich ist und wie einfach es wäre. Erlaubt die API es, zusätzliche Elemente in das Helden-XML zu schreiben, wäre das auf jeden Fall eine einfachere Möglichkeit, die Daten zu transportieren, als irgendeine zusätzliche Syntax dafür zu verwenden.
  • Eine Erweiterung schreiben, die direkt mit der REST-API der Web-UI des Heldendokuments spricht. Vermutlich die aufwändigste Lösung. Es werden Websockets benötigt, die erst seit Java 11 Teil der JRE sind (java.net.http.WebSocket), ältere Versionen brauchen eine Java EE Implementierung (javax.websockets) was wohl overkill wäre. (Ich bin nicht ganz auf der Höhe, was die üblicherweise verfügbare Java-Version auf verschiedenen Systeme angeht.) Auf der anderen Seite würde das auch das Setup des Docker-Containers vereinfachen: Man könnte dafür dann eine simple UI in der Heldensoftware bereitstellen, die nur einen aktiven Docker-daemon benötigt.

Ich habe noch keinen Plan, eine dieser Lösungen umzusetzen; dieses Issue dokumentiert zunächst einmal das Problem und mögliche Ansätze.

Fehler im make

Hi,
schönes Projekt! Ich habe glaub ich einen Bug im bare.dockerfile gefunden, denn beim Ausführen wurde der Fehler
When using COPY with more than one source file, the destination must be a directory and end with a /
geworfen.
Ich hab dann in Zeile 14 hinter dem fonts noch ein / ergänzt, dann ging es:
COPY *.otf /fonts/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.