Ilaris Sephrasto - Fehler und Verbesserungsvorschläge

Diskutiere über das kostenlose Alternativregelwerk Ilaris.
Benutzeravatar
Gatsu
Posts in topic: 136
Beiträge: 1184
Registriert: 22.08.2010 13:01

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Gatsu »

Hast du schon die aktuelle Anleitung im Repo gesehen? (https://github.com/Aeolitus/Sephrasto) In der requirements.txt bzw im poetry file sollten eigentlich schon alle Abhängigkeiten enthalten sein. Imho wäre es besser, wenn du in dem Wiki-Eintrag auf die Anleitung im Repo verlinkst, damit da nichts out-of-sync läuft (oder die Seite dynamisch generieren anhand der repo readme.md - kenne mich mit wikis nicht aus, ob das geht).
Ilaris Advanced 10, die inoffizielle Regelerweiterung für das grandiose Aventurien-Alternativregelwerk Ilaris
Manöverkarten-Projekt (DSA4)
Initiative zur Rettung der Kavallerie (DSA4)
AP-Kosten Rechner 2.1 (DSA4)

Benutzeravatar
Sarafin
PnPnews.de
PnPnews.de
Posts in topic: 21
Beiträge: 15993
Registriert: 25.05.2005 22:44

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Sarafin »

Nein, mir war nicht bewusst, dass es eine Anleitung im Repository gibt. :oops:
Und ich weiß auch leider überhaupt nicht, ob da irgendwas dynamisch generiert werden kann. Ich kann in Wikis Dinge eintragen. Selbst die Formatierung musste Stipen hinter mir her korrigieren. :censored:

Ich schau mal die Tage, was sich da sinnvoll weiterleiten lässt.
„Nimm niemals Böswilligkeit an, wenn Dummheit hinreichend ist.“
~ Hanlon’s Razor

Benutzeravatar
Gatsu
Posts in topic: 136
Beiträge: 1184
Registriert: 22.08.2010 13:01

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Gatsu »

Sephrasto 2.5 steht vorab schonmal auf github bereit: https://github.com/Aeolitus/Sephrasto/r ... tag/v2.5.0

Eventuelle Bugs gerne zügig reporten, ich habe bald nicht mehr viel Zeit für Wartung :cookie: .
Ilaris Advanced 10, die inoffizielle Regelerweiterung für das grandiose Aventurien-Alternativregelwerk Ilaris
Manöverkarten-Projekt (DSA4)
Initiative zur Rettung der Kavallerie (DSA4)
AP-Kosten Rechner 2.1 (DSA4)

Heiner75
Posts in topic: 23
Beiträge: 149
Registriert: 10.03.2021 13:30
Geschlecht:

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Heiner75 »

Gatsu hat geschrieben: 25.05.2022 20:34 Eventuelle Bugs gerne zügig reporten
Ich kann zwar in den Einstellungen Illaris Advanced auswählen, aber nicht bei der Charaktererschaffung.
Skelette sind zwar nützlicher, aber nur Zombies bringen das richtige Ambiente.

Benutzeravatar
Aeolitus
Posts in topic: 101
Beiträge: 934
Registriert: 29.07.2013 13:46

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Aeolitus »

Sephrasto 2.5 ist jetzt auch hier im Forum online, Danke @Gatsu!

Changelog:

Allgemein
  • Falls ein Plugin einen Fehler verursacht, zeigt Sephrasto dies nun in der entsprechenden Fehlermeldung, sodass Nutzer sich direkt an den Plugin-Autor wenden können.
  • Fix: Beim Standardcharakterbogen wurde Handgemenge und Hiebwaffen unten doppelt aufgeführt. Dadurch wurden auch zusätzliche Hausregelfertigkeiten in der Regel nicht angezeigt.
  • Fix: Das öffnen der PDF-Datei nach dem Export funktionierte nicht (potentiell auch für Mac gefixt).
  • Linux Fix: Auf manchen Systemen wurden einige der Icons nicht korrekt dargestellt.
  • Ein paar der numerischen Boxen hatten den falschen Style.
  • Der PDF-Export stürzt nicht mehr ab, wenn ein neuer Charakter direkt exportiert wird, nachdem der Waffen-Tab geöffnet wurde
  • "Speichern als" heisst jetzt "Speichern unter"
  • Ein paar sehr seltene Fälle behoben, bei denen durch eine fehlerhafte Update-Reihenfolge Änderungen durch Vorteile nicht richtig appliziert wurden, bis eine weitere Änderung am Charakter gemacht wurde oder er neu geladen wurde.
Attribute Tab
  • Zeigt nun auch das Durchhaltevermögen an
Beschreibung Tab
  • Wenn der Details Tab aktiv ist wird das Feld Kurzbeschreibung nun versteckt.
  • Fix: Das Kulturfeld im Details Tab hat keine Änderungen akzeptiert
  • Im Details Tab wurde "Heimat überschreiben" in "Automatisch befüllen" umbenannt. Falls Automatisch befüllen aktiv ist, wird der automatische Inhalt nun angezeigt (die Heimat).
Fertigkeiten Tab
  • Fix: Wenn ein Talent in der Datenbank zu einer anderen Fertigkeit verschoben wurde, wurde in Sephrasto bei der Fertigkeit eine falsche Talentanzahl angezeigt. Das Talent wird nun entfernt und beim Laden des Charakters angezeigt.
  • Freie Fertigkeiten behalten im Charakterbogen nun die gleiche Reihenfolge wie in Sephrasto. Zuvor wurden absichtlich leer gelassene Felder ignoriert.
  • Die Zeilenhöhe der Fertigkeiten war höher als beabsichtigt.
Übernatürliche Fertigkeiten Tab
  • NEU: Bei individuellen Fertigkeiten wird nun eine Regenwolke angezeigt, wenn es sich in der Regel nicht lohnt sie zu steigern.
  • Fix: Linux-User die noch auf einer älteren Qt Version sind sollten nun keinen Fehler bzgl. "setTabVisible" mehr erhalten. Dafür ist der Tab dann allerdings immer sichtbar, auch bei profanen Charakteren.
Waffen Tab
  • Die Felder sind nun standardmäßig ausgegraut und müssen durch das Waffenauswahlfenster befüllt werden.
  • NEU: Falls eine Waffe eingetragen ist, wird das "+"-Symbol zu einem Mülleimer-Symbol, womit die Waffe gelöscht werden kann.
  • NEU: Es gibt bei jeder Waffe nun zusätzliche Buttons, mit denen Waffen nach oben oder unten verschoben werden können.
Inventar Tab
  • NEU: Falls eine Rüstung eingetragen ist, wird das "+"-Symbol zu einem Mülleimer-Symbol, womit die Rüstung gelöscht werden kann.
  • Fix: Das BE-Offset bleibt nun immer gleich. Zuvor war es durch Rundung möglich, dass beim Kombinieren von Rüstungen die BE stärker anstieg als der RS.
  • Die RS und BE Felder haben als Maximum nun 99, statt nur 8 Punkten
  • Fix: Fehlermeldung beim Rüstungs-Auswahlfenster behoben, wenn eine Rüstungstyp-Überschrift angeclickt wurde
Info Tab
  • NEU: Die Regelanhang-Kategorien können nun individuell an- und abgewählt werden.
  • Wenn "Finanzen anzeigen" deaktiviert ist, werden nun außerdem im PDF die aktuellen Schicksalspunkte nicht mehr eingetragen, da sie nach dem ersten Abenteuer nicht mehr von Sephrasto verwaltet werden.
Datenbank-Editor
  • NEU: Es können nun additiv mehrere Hausregel-Datenbanken geladen werden. Damit können Hausregel-Ersteller jetzt einzelne Module anbieten, die relativ einfach kombiniert werden können.
Datenbank
  • Der Nutzerkommentar bei den Vorteilen Angepasst I/II wird im Regelanhang nun in die Beschreibung eingefügt, damit der Bezug klar ist.
  • Bei der Einstellung "Manöver: Typen" wurde "Aktionen" in "Aktionen und Reaktionen im Kampf" umbenannt.
  • Die "Manöver" Bereit machen, Konflikt, Volle Defensive, Volle Offensive, Bewegung, Konzentration und Verzögern wurden umbenannt: allen wurde das Wort Aktion vorne angefügt. Bei den Vorteilen Schnellziehen, Offensiver Kampfstil, Defensiver Kampfstil und Flexible Magie wurde entsprechend die Verknüpfung angepasst.
  • Schreibfehler bei der Rüstung Morion behoben
  • Die Rüstungstypen sind nun nicht mehr nach Material sortiert, sondern nach Rüstungsslot.
  • Torso Versionen von Löwenmähne, Gladiatorenschulter, Fuhrmannsmantel und Pelzumhang fürs einfache Rüstungssystem hinzugefügt.
  • Der Igniplano taucht nun wie vorgesehen nicht mehr im Charaktereditor auf (außer Voraussetzungen prüfen wird deaktiviert). Wenn jemand den Zauber erlernen möchte, müssen die Voraussetzungen in der Datenbank entsprechend angepasst werden.
  • Neue Datenbank-Einstellung "Heimaten". Diese wird nun verwendet um die Heimatliste zu befüllen. Zuvor wurde sie automatisch anhand der Gebräuche-Talente befüllt. Falls Hausregelwerke die Fertigkeit Gebräuche nicht nutzen, können nun auch die Gebräuche-Talente gelöscht werden und ggf. die Heimaten-Einstellung angepasst werden. Falls Hausregelwerke weitere Gebräuche-Talente eingeführt haben, sollten diese nun auch in der neuen Einstellung ergänzt werden.
Script API
  • Die folgenden Script-APIs stehen bei Waffeneigenschaften nicht mehr zur Verfügung, da sie Probleme wegen Berechnungsabhängigkeiten verursachen konnten: setSchadensbonus, modifySchadensbonus, setBEMod, modifyBEMod, modifyFertigkeitBasiswert, setKampfstil, modifyKampfstil, addWaffeneigenschaft, removeWaffeneigenschaft
  • modifyFertigkeitBasiswert wird nun nicht mehr in Sephrasto appliziert, nur noch in der PDF. Es konnte Inkonsistenzen beim Charakterupdate verursachen, wenn die Voraussetzungen "Fertigkeit" oder "Talent" im Spiel waren.
Plugin API
  • Neuer Filter "regelanhang_reihenfolge_name", mit dem eigenen Kürzeln in der Datenbank-Einstellung "Regelanhang: Reihenfolge" für die Darstellung im Info-Tab ein Name zugewiesen werden kann.
  • Wenn einer der class_xx_wrapper Filter verwendet wurde, ist das Plugin nun vermutlich nicht mehr kompatibel, da intern einiges umgestellt wurde. Die größte Änderung gab es beim Ausrüstungs-Wrapper der entkernt wurde und nun die zwei neuen Waffen- und Inventar Wrapper verwaltet.
  • Neue Action: "regelanhang_anfuegen" erlaubt es, den Regelanhang via Plugin anzupassen
  • Neue Action: "charakter_xml_geladen" erlaubt es, den Charakter nach dem Laden zu modifizieren (stat nur vor dem Laden).
  • Neue Actions: "charakter_aktualisieren_vorteilscripts", "charakter_aktualisieren_fertigkeiten" und "charakter_aktualisieren_waffeneigenschaftscripts" bieten weitere Möglichkeiten zu unterschiedlichen Zeitpunkten in die Charakter-Aktualisierung einzugreifen.
  • Neuer Filter "pdf_export_extrapage" um auch übernatürliche PDF-Zusatzseiten anpassen zu können.
  • Der Filter "class_ep_wrapper" wurde umbenannt in "class_info_wrapper". Er war in der Doku bereits umbenannt, aber nicht im code.
  • Der Filter "datenbank_xml_laden" hat jetzt einen weiteren Parameter "conflictCallback". Damit können beim Laden von mehreren Hausregeldatenbanken Konflikte von eigenen Datenbanktypen behandelt werden.
  • Plugins können jetzt "changesDatabase" implementieren. Hausregeln werden jetzt mit einer Info über alle aktiven Plugins gespeichert, welche die Datenbank verändern. Wenn die Datenbank dann ohne eines der Plugins geladen wird, erscheint ein Warndialog.

Benutzeravatar
Sarafin
PnPnews.de
PnPnews.de
Posts in topic: 21
Beiträge: 15993
Registriert: 25.05.2005 22:44

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Sarafin »

Hallo zusammen,

ich habe Sephrasto mittlerweile auf einem Fedora laufen. Ganz großes Lob für die neue Version. :)

Ich bin auf ein lästiges, aber eher kosmetisches Problem gestoßen. Ich habe Sephrasto in einen Unterordner auf meinem PC heruntergeladen und auch ganz normal von dort gestartet.
Trotzdem hat das Programm einen Ordner "Sephrasto" in home/[mein User] angelegt, gefüllt mit vier leeren Ordnern (Charakterbögen, Charaktere, Plugins, Regeln) und einer Sephrasto.ini.

Na gut, habe ich halt die Pfade im Programm angepasst und die überflüssigen Ordner gelöscht. Nur damit sie beim nächsten Programmstart wieder angelegt werden ...

Offenbar enthält die Sephrasto.ini die Einstellungen im Programm, die Pfade zu den Ordnern, Schriftgröße etc. Da ich die Datei löschen kann und die korrekten Angaben erhalten bleiben, sind die Angaben wohl an einer anderen Stelle nochmal abgelegt.

Meine Frage:
Ist das Vorhandensein dieses Ordners Sephrasto in home/[User] technisch notwendig?
Oder gibt es eine Stelle im Programm, wo man Sephrasto mitteilen kann, wo es die Einstellungen hinterlegen soll?


Das ist jetzt kein Beinbruch, aber halt schon lästig. (Unter Ubuntu kann ich mich an das Problem nicht erinnern, will aber nicht ausschließen, dass es da schon genauso war.) Aber da habe ich auch eine deutlich ältere Version verwendet bis zuletzt.
„Nimm niemals Böswilligkeit an, wenn Dummheit hinreichend ist.“
~ Hanlon’s Razor

Kapaneus
Posts in topic: 38
Beiträge: 819
Registriert: 17.08.2020 19:06

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Kapaneus »

Sarafin hat geschrieben: 09.08.2022 17:15 Unter Ubuntu kann ich mich an das Problem nicht erinnern, will aber nicht ausschließen, dass es da schon genauso war.
In Ubuntu wird der Ordner auch angelegt. Er enthält Nutzerdaten, die über verschiedene Sephrasto-Versionen bestehen sollen. Alles weitere kann dir vermutlich nur Gatsu oder Aeolitus beantworten :)

Benutzeravatar
Gatsu
Posts in topic: 136
Beiträge: 1184
Registriert: 22.08.2010 13:01

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Gatsu »

Sarafin hat geschrieben: 09.08.2022 17:15 ich habe Sephrasto mittlerweile auf einem Fedora laufen. Ganz großes Lob für die neue Version. :)
Dank dir :-)
Sarafin hat geschrieben: 09.08.2022 17:15 Offenbar enthält die Sephrasto.ini die Einstellungen im Programm, die Pfade zu den Ordnern, Schriftgröße etc. Da ich die Datei löschen kann und die korrekten Angaben erhalten bleiben, sind die Angaben wohl an einer anderen Stelle nochmal abgelegt.
Eigentlich nicht, wenn du die Sephrasto.ini löschst und Sephrasto neustartest werden die Standardeinstellungen gesetzt.
Sarafin hat geschrieben: 09.08.2022 17:15 Ist das Vorhandensein dieses Ordners Sephrasto in home/[User] technisch notwendig?
Oder gibt es eine Stelle im Programm, wo man Sephrasto mitteilen kann, wo es die Einstellungen hinterlegen soll?
Ergänzend zu Kapaneus: Ja ist technisch notwendig, da Sephrasto keinen Installer hat und Schreibrechte für die .ini und die Unterordner braucht - zumindest unter Windows kann man das nur über den Userordner garantieren. Unter Linux wird es sicherlich auch seltsame Defaultberechtigungen geben je nach Entpack-Ort / Parentordnerkonfig. Es hatte sich schonmal ein Linuxuser über den Ordner beschwert aber noch keinen besseren Ort für ihn genannt. Wenn ihr euch da einig werdet an welchen Ort (der für alle Distros funktionieren sollte) der Ordner besser hinpasst, lässt sich das sicherlich machen. Aber für einen gänzlich andere Implementierung als auf Windows bin ich nicht besonders motiviert :D
Ilaris Advanced 10, die inoffizielle Regelerweiterung für das grandiose Aventurien-Alternativregelwerk Ilaris
Manöverkarten-Projekt (DSA4)
Initiative zur Rettung der Kavallerie (DSA4)
AP-Kosten Rechner 2.1 (DSA4)

Benutzeravatar
Sarafin
PnPnews.de
PnPnews.de
Posts in topic: 21
Beiträge: 15993
Registriert: 25.05.2005 22:44

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Sarafin »

Danke für die Rückmeldungen!
Dann ist der Ordner wohl technisch notwendig und ich lerne damit zu leben. :censored:
Einen allgemeinen und überall gültigen Ort in jeder Distribution gibt es ja ansonsten doch nicht.

---

Ich bin gerade auf ein anderes Problem gestoßen.
Ich wollte eine eigene magische Tradition anlegen. Dazu habe ich eine vorhandene Tradition verdoppelt und angepasst, um Eingabefehler zu minimieren.
Wenn ich die so erstellte Kopie dann in Sephrasto auswähle, bekomme ich den Reiter "übernatürliche" unter Fertigkeiten nicht angezeigt.
Eine kurze Recherche hier im Thread hat ergeben, dass es damit wohl öfter mal Schwierigkeiten gab? Das Problem tritt bei mir nur für die selbst erstellten Traditionen auf.

Weiß da jemand Rat? :grübeln:
„Nimm niemals Böswilligkeit an, wenn Dummheit hinreichend ist.“
~ Hanlon’s Razor

Benutzeravatar
Gatsu
Posts in topic: 136
Beiträge: 1184
Registriert: 22.08.2010 13:01

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Gatsu »

Ich denke es gibt keinerlei übernatürliche Fertigkeiten für die neu angelegte Tradition. Du müsstest beispielsweise zur Fertigkeit "Eis" gehen und unter Voraussetzungen "ODER Vorteil Meine eigene Tradition I" ergänzen. Das gleiche musst du dann bei den entsprechenden Zaubern noch machen. Insgesamt macht das Anlegen neuer Traditionen ordentlich Arbeit :D
Ilaris Advanced 10, die inoffizielle Regelerweiterung für das grandiose Aventurien-Alternativregelwerk Ilaris
Manöverkarten-Projekt (DSA4)
Initiative zur Rettung der Kavallerie (DSA4)
AP-Kosten Rechner 2.1 (DSA4)

Benutzeravatar
Sarafin
PnPnews.de
PnPnews.de
Posts in topic: 21
Beiträge: 15993
Registriert: 25.05.2005 22:44

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Sarafin »

Danke dir! Echt klasse, wie rasch man hier Rückmeldung bekommt. :heart:

Ich hatte gehofft das Problem alles nochmal einzugeben mit einer Kopie zu umgehen. Tja, schade. :censored:
Das ist wirklich viel Arbeit. Und irgendein Fehler tritt dabei auf. Ich habe die neue Tradition in allen Merkmalen eingetragen und der Reiter für die übernatürlichen Fähigkeiten erscheint dann zwar ... listet aber nur eine Fertigkeit. Ich kann nicht entdecken, was bei der anders ist als bei den anderen (es ist Verständigung) und es war auch alles C&P, da sollte nichts aus der Reihe fallen. Keine Ahnung, was da schief gelaufen ist.

Mal schauen, ob ich dem Fehler morgen auf die Schliche komme.
„Nimm niemals Böswilligkeit an, wenn Dummheit hinreichend ist.“
~ Hanlon’s Razor

Kapaneus
Posts in topic: 38
Beiträge: 819
Registriert: 17.08.2020 19:06

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Kapaneus »

Mhm, ich meine Sephrasto legt ja eine komplett neue Datenbank für dich an, sobald du was änderst. Hast du mal versucht, direkt an die Datenbank zu gehen und die Ersetzung: "Oder Vorteil [zu kopierende Tradition] I" "Oder Vorteil [zu kopierende Tradition] I Oder Vorteil [neue Tradition] I" vorzunehmen? Danach müsste die neue Tradition fast alles haben, was die alte auch hat.
Nur wo die alte an erster Stelle steht ist nicht abgedeckt! Also die zweite Ersetzung 'voraussetzungen="Vorteil [zu kopierende Tradition] I' 'voraussetzungen="Vorteil [zu kopierende Tradition] I Oder Vorteil [neue Tradition] I'

Danach könntest du dann manuell über Sephrasto entfernen, wo's dir zu viel der Gleichheit ist.

EDIT: Ich hab noch eine zweite Ersetzung hinzugefügt, um auch Fälle einzufangen, wo die Tradition am Anfang steht. Das könnte u.U. crashen, wenn Sephrasto bei manchen Dingen nur eine Voraussetzung erlaubt, aber ich glaube nicht, dass das der Fall ist.

Benutzeravatar
Gatsu
Posts in topic: 136
Beiträge: 1184
Registriert: 22.08.2010 13:01

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Gatsu »

@Kapaneus
Nicht so einfach, die Hausregeldatenbank enthält nur geänderte Einträge. Einfach rüberkopieren ist auch nicht, weil noch separate „Remove“ Einträge nötig sind. Grundsätzlich werde ich bei händischen Anpassungen auch nicht supporten, dafür ist der Editor da :D

@Sarafin Fertigkeiten, die keine Talente für die Tradition haben werden nicht angezeigt. Ich vermute du hast für die anderen Fertigkeiten die Talente nich nicht angepasst?
Ilaris Advanced 10, die inoffizielle Regelerweiterung für das grandiose Aventurien-Alternativregelwerk Ilaris
Manöverkarten-Projekt (DSA4)
Initiative zur Rettung der Kavallerie (DSA4)
AP-Kosten Rechner 2.1 (DSA4)

Lukr
Posts in topic: 2
Beiträge: 135
Registriert: 14.06.2021 22:07
Geschlecht:

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Lukr »

Sarafin hat geschrieben: 09.08.2022 23:05 Dann ist der Ordner wohl technisch notwendig und ich lerne damit zu leben. :censored:
Einen allgemeinen und überall gültigen Ort in jeder Distribution gibt es ja ansonsten doch nicht.
In Unix/Linux Systemen gibt es diesen allgemeinen und überall (für alle user) gültigen Ort:

Code: Alles auswählen

/etc/
. Um dort zu schreiben werden aber weitere Berechtigungen gebraucht (da man hierüber auch systemweite und damit Einstellungen für andere User setzen kann). Für Einstellungen auf Benutzerebene ist

Code: Alles auswählen

/home/<user>/
schon der richtige Ort. Auch alle möglichen anderen Programme legen hier ihre configs ab. In der Regel allerdings in versteckten Ordnern. Wenn der Name für den Ordner ohne viel Aufwand für Linux angepasst werden kann wäre

Code: Alles auswählen

/home/<user>/.sephrasto/
denke ich perfekt. Dann stört er nicht und kann trotzdem einfach eingeblendet werden (strg-h) oder über die eingabe des Pfades erreicht werden. Wäre das eine Lösung für dich @Sarafin?
-
Discord: Lukr#2632

Kapaneus
Posts in topic: 38
Beiträge: 819
Registriert: 17.08.2020 19:06

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Kapaneus »

Gatsu hat geschrieben: 10.08.2022 09:38 Nicht so einfach, die Hausregeldatenbank enthält nur geänderte Einträge. Einfach rüberkopieren ist auch nicht, weil noch separate „Remove“ Einträge nötig sind. Grundsätzlich werde ich bei händischen Anpassungen auch nicht supporten, dafür ist der Editor da :D
Will heißen: Die Lösung wäre nur als Hack an der offiziellen Datenbank möglich und damit nicht optimal. Dass du händische Anpassungen nicht supporten kannst, ist klar ;)

Benutzeravatar
Sarafin
PnPnews.de
PnPnews.de
Posts in topic: 21
Beiträge: 15993
Registriert: 25.05.2005 22:44

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Sarafin »

@Lukr Danke, das ist eine perfekte Lösung für mich. Ich mag meinen Home-Ordner einfach aufgeräumt. Kehr ich das halt unter den Teppich und alles ist Wölkchen. :)

@Gatsu Danke für deine Anmerkung. Ja, es ist genau so, dass der Fehler durch fehlende Talente erzeugt wird. Die einzelne Fertigkeit, die ich da in der Liste hatte, hatte einfach schon ein nachgetragenes Talent.
Aber so gehe ich jetzt auch alle Zauber durch und überlege, ob sie zur Rep. passen. :) Ist viel Arbeit aber auch sinnvoll an der Stelle.
„Nimm niemals Böswilligkeit an, wenn Dummheit hinreichend ist.“
~ Hanlon’s Razor

Benutzeravatar
qeqar
Posts in topic: 11
Beiträge: 401
Registriert: 23.03.2020 09:59

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von qeqar »

Sarafin hat geschrieben: 10.08.2022 13:21 @Lukr Danke, das ist eine perfekte Lösung für mich. Ich mag meinen Home-Ordner einfach aufgeräumt. Kehr ich das halt unter den Teppich und alles ist Wölkchen. :)
Ich mag wie du denkst :-)
Was mich fast noch mehr stoert is das es Uppercase ist ;-)

Benutzeravatar
Gatsu
Posts in topic: 136
Beiträge: 1184
Registriert: 22.08.2010 13:01

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Gatsu »

@Sarafin @qeqar Wenn ihr den aktuellen master über github zieht könnt (und solltet) ihr user/Sephrasto in user/sephrasto oder user/.sephrasto umbenennen, je nachdem wie es euch beliebt. Unter "Releases" ist es noch nicht drin, das kommt dann mit Version 2.6.
Ilaris Advanced 10, die inoffizielle Regelerweiterung für das grandiose Aventurien-Alternativregelwerk Ilaris
Manöverkarten-Projekt (DSA4)
Initiative zur Rettung der Kavallerie (DSA4)
AP-Kosten Rechner 2.1 (DSA4)

Benutzeravatar
qeqar
Posts in topic: 11
Beiträge: 401
Registriert: 23.03.2020 09:59

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von qeqar »

Gatsu hat geschrieben: 11.08.2022 09:32 @Sarafin @qeqar Wenn ihr den aktuellen master über github zieht könnt (und solltet) ihr user/Sephrasto in user/sephrasto oder user/.sephrasto umbenennen, je nachdem wie es euch beliebt. Unter "Releases" ist es noch nicht drin, das kommt dann mit Version 2.6.
Nice Job.

@Sarafin just mv Sephrasto nach .sephrasto :-) und dann die neue version starten......

Benutzeravatar
Sarafin
PnPnews.de
PnPnews.de
Posts in topic: 21
Beiträge: 15993
Registriert: 25.05.2005 22:44

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Sarafin »

@Gatsu Weil ein Klick auf Danke nicht reicht: :heart:
„Nimm niemals Böswilligkeit an, wenn Dummheit hinreichend ist.“
~ Hanlon’s Razor

Alrik Normalpaktierer
Posts in topic: 26
Beiträge: 1801
Registriert: 02.08.2011 15:54

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Alrik Normalpaktierer »

Beim Rauslassen der PDFs werden überlange Formularfelder abgeschnitten. Fällt vor allem bei Waffe Hand auf: Sollte jede Figur auf dem Charakterblatt stehen haben, ist wegen der vielen Waffeneigenschaften aber auch immer zu lang.
Wäre es aufwändig, statt dessen bei einem zu langen Text die Schriftart zu verkleinern, bis es passt? Schön wäre auch das nicht, aber pragmatisch. Oder hattet ihr das sogar schon und habt es wieder herausgenommen, weil hässlich?

Benutzeravatar
Gatsu
Posts in topic: 136
Beiträge: 1184
Registriert: 22.08.2010 13:01

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Gatsu »

Ich habe die Schriftgröße schon vor einigen Versionen bei den wichtigsten Feldern inkl. Waffeneigenschaften auf auto gesetzt, bei mir wird auch nichts abgeschnitten bei "Hand". Der separate Charakterbogen-DL im Forum und Blog ist aber nicht up to date, falls du den nutzt.
Ilaris Advanced 10, die inoffizielle Regelerweiterung für das grandiose Aventurien-Alternativregelwerk Ilaris
Manöverkarten-Projekt (DSA4)
Initiative zur Rettung der Kavallerie (DSA4)
AP-Kosten Rechner 2.1 (DSA4)

Benutzeravatar
Loirana
Posts in topic: 5
Beiträge: 7556
Registriert: 24.07.2015 08:56
Geschlecht:

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Loirana »

Lukr hat geschrieben: 10.08.2022 10:35 Wenn der Name für den Ordner ohne viel Aufwand für Linux angepasst werden kann wäre

Code: Alles auswählen

/home/<user>/.sephrasto/
denke ich perfekt. Dann stört er nicht und kann trotzdem einfach eingeblendet werden (strg-h) oder über die eingabe des Pfades erreicht werden.
Nach freedesktop.org-Spezifikation wäre es besser die Konfiguration in

Code: Alles auswählen

/home/<user>/.config/sephrasto
zu speichern, so wie es fast alle Linuxanwendungen tun (siehe $XDG_CONFIG_HOME). Es würde ja reichen die .ini mit der Konfiguration dort zu speichern. Ich persönlich hätte den Ordner mit Charakterbögen etc auch gerne woanders als im Homeverzeichnis :cookie:

EDIT:

Wäre in meinen Augen auch unter Windows die "schönere" Lösung, dass die .ini Datei mit den Einstellungen in C:\Users\<user>\AppData\Local\Sephrasto gespeichert wird. Dann ist die .ini "sicher" verstaut und man kann den Pfad fröhlich ändern :cookie:
Zuletzt geändert von Loirana am 12.08.2022 09:44, insgesamt 1-mal geändert.
Yesterday's the past, tomorrow's the future, but today is a gift. That's why it's called the present.
-Master Oogway

Benutzeravatar
Gatsu
Posts in topic: 136
Beiträge: 1184
Registriert: 22.08.2010 13:01

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Gatsu »

Hmm das Ding ist halt, dass die Konfigurationsdatei ja nur ein Teil des Ordners ist. Charakter usw. sind ja keine configs. Es wäre dadurch auch nicht so toll, wenn die standardmäßig in einem versteckten Ordner (.config) gespeichert würden. Die Standardsettings sollten auch für eher unbedarfte Anwender gut funktionieren. Config und andere Daten standardmäßig über mehrere Ordner zu trennen fände ich auch nicht so toll, ich hasse es wenn Programme sich über die ganze Festplatte verteilen^^

Den Charakterbogenordner kannst du über die .ini umbiegen, es gibt nur keine Einstellungs-UI dafür, weil der Ordner für 99% der user nicht relevante ist - lasse mich aber gerne eines besseren belehren.
Zuletzt geändert von Gatsu am 12.08.2022 09:46, insgesamt 1-mal geändert.
Ilaris Advanced 10, die inoffizielle Regelerweiterung für das grandiose Aventurien-Alternativregelwerk Ilaris
Manöverkarten-Projekt (DSA4)
Initiative zur Rettung der Kavallerie (DSA4)
AP-Kosten Rechner 2.1 (DSA4)

Benutzeravatar
Loirana
Posts in topic: 5
Beiträge: 7556
Registriert: 24.07.2015 08:56
Geschlecht:

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Loirana »

Gatsu hat geschrieben: 12.08.2022 09:43 Hmm das Ding ist halt, dass die Konfigurationsdatei ja nur ein Teil des Ordners ist.
Mein Vorschlag wäre, die .ini in einem anderen Ordner zu verstauen und die Charakterbögen da zu lassen wo sie bisher waren. Muss ja nicht beides im selben Ordner liegen :-)

also Beispiel

Code: Alles auswählen

/home/<user>/.config/sephrasto/Sephrasto.ini
/home/<user>/Sephrasto/<Charakterbögen, Plugins und so>
Aktuell kann man halt die Pfade in Sephrasto nicht ändern und den Ordner in /home löschen, da man damit die .ini auch gleich löscht, die Sephrasto ja braucht um zu wissen wo die Charakterbögen liegen sollen.
Yesterday's the past, tomorrow's the future, but today is a gift. That's why it's called the present.
-Master Oogway

Alrik Normalpaktierer
Posts in topic: 26
Beiträge: 1801
Registriert: 02.08.2011 15:54

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Alrik Normalpaktierer »

Gatsu hat geschrieben: 12.08.2022 09:24 Ich habe die Schriftgröße schon vor einigen Versionen bei den wichtigsten Feldern inkl. Waffeneigenschaften auf auto gesetzt, bei mir wird auch nichts abgeschnitten bei "Hand". Der separate Charakterbogen-DL im Forum und Blog ist aber nicht up to date, falls du den nutzt.
Huch, merkwürdig. Ich habe erst vorgestern (?) die aktuelle Version aus dem Repo gezogen und den Standard-Charakterbogen genutzt. Ich muss mir das heute Abend nochmal genauer ansehen.

Benutzeravatar
Loirana
Posts in topic: 5
Beiträge: 7556
Registriert: 24.07.2015 08:56
Geschlecht:

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Loirana »

K.a. ob das erwünscht ist, ich hab aber mal die von mir vorgeschlagene Änderung umgesetzt. Könnt euch das auch als Branch zu GitHub hochladen, aber hab keine Berechtigung (zurecht).

Hab defacto einfach "settingsFolder" und "userFolder" entkoppelt :-) Habs aber nicht unter Windows/macOS getestet. Unter Linux macht es genau was es soll.
Spoiler

Code: Alles auswählen

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 20 20:09:52 2018

@author: Aeolitus
"""
from Wolke import Wolke
from Wolke import CharakterbogenInfo
import UI.Einstellungen
from PyQt5 import QtWidgets, QtCore, QtGui
import os.path
import yaml
import logging
import sys
import platform
import appdirs
from Hilfsmethoden import Hilfsmethoden
from PluginLoader import PluginLoader

class EinstellungenWrapper():    
    def __init__(self, plugins):
        super().__init__()

        self.form = QtWidgets.QDialog()
        self.ui = UI.Einstellungen.Ui_SettingsWindow()
        self.ui.setupUi(self.form)
        self.form.setWindowFlags(
                QtCore.Qt.Window |
                QtCore.Qt.CustomizeWindowHint |
                QtCore.Qt.WindowTitleHint |
                QtCore.Qt.WindowCloseButtonHint)

        self.ui.checkCheatsheet.setChecked(Wolke.Settings['Cheatsheet'])

        boegen = [os.path.basename(os.path.splitext(bogen)[0]) for bogen in Wolke.Charakterbögen]
        for bogen in boegen:
            if bogen == "Standard Charakterbogen":
                self.ui.comboBogen.insertItem(0, bogen)
            elif bogen == "Langer Charakterbogen":
                self.ui.comboBogen.insertItem(0, bogen)
            else:
                self.ui.comboBogen.addItem(bogen)
        if not (Wolke.Settings['Bogen'] in boegen):
            Wolke.Settings['Bogen'] = self.ui.comboBogen.itemText(0)
        self.ui.comboBogen.setCurrentText(Wolke.Settings['Bogen'])
        self.ui.checkWizard.setChecked(Wolke.Settings['Charakter-Assistent'])
        self.ui.comboFontSize.setCurrentIndex(Wolke.Settings['Cheatsheet-Fontsize'])

        self.settingsFolder = EinstellungenWrapper.getSettingsFolder()
        self.ui.editChar.setText(Wolke.Settings['Pfad-Chars'])
        self.ui.editRegeln.setText(Wolke.Settings['Pfad-Regeln'])
        self.ui.editPlugins.setText(Wolke.Settings['Pfad-Plugins'])

        self.pluginCheckboxes = []
        self.updatePluginCheckboxes(plugins)
        self.updateComboRegelbasis()
            
        self.ui.checkPDFOpen.setChecked(Wolke.Settings['PDF-Open'])
        self.ui.checkUpdate.setChecked(not Wolke.Settings['UpdateCheck_Disable'])
        self.ui.comboLogging.setCurrentIndex(Wolke.Settings['Logging'])
        self.ui.comboTheme.setCurrentText(Wolke.Settings['Theme'])

        self.fontFamilies = QtGui.QFontDatabase().families()
        self.ui.comboFont.addItems(self.fontFamilies)
        self.ui.comboFont.setCurrentText(QtWidgets.QApplication.instance().font().family())
        self.ui.spinAppFontSize.setValue(Wolke.Settings['FontSize'])

        self.ui.comboFontHeading.addItems(self.fontFamilies)
        if Wolke.Settings['FontHeading'] in self.fontFamilies:
            self.ui.comboFontHeading.setCurrentText(Wolke.Settings['FontHeading'])
        else:
            self.ui.comboFontHeading.setCurrentText(QtWidgets.QApplication.instance().font().family())
        self.ui.spinAppFontHeadingSize.setValue(Wolke.Settings['FontHeadingSize'])
            
        font = QtGui.QFont("Font Awesome 6 Free Solid", 9, QtGui.QFont.Black)
        self.ui.buttonChar.clicked.connect(self.setCharPath)
        self.ui.buttonChar.setFont(font)
        self.ui.buttonChar.setText('\uf07c')

        self.ui.buttonRegeln.clicked.connect(self.setRulePath)
        self.ui.buttonRegeln.setFont(font)
        self.ui.buttonRegeln.setText('\uf07c')

        self.ui.buttonPlugins.clicked.connect(self.setPluginsPath)
        self.ui.buttonPlugins.setFont(font)
        self.ui.buttonPlugins.setText('\uf07c')

        self.ui.resetChar.clicked.connect(self.resetCharPath)
        self.ui.resetChar.setFont(font)
        self.ui.resetChar.setText('\uf2ea')

        self.ui.resetRegeln.clicked.connect(self.resetRulePath)
        self.ui.resetRegeln.setFont(font)
        self.ui.resetRegeln.setText('\uf2ea')

        self.ui.resetPlugins.clicked.connect(self.resetPluginsPath)
        self.ui.resetPlugins.setFont(font)
        self.ui.resetPlugins.setText('\uf2ea')


        windowSize = Wolke.Settings["WindowSize-Einstellungen"]
        self.form.resize(windowSize[0], windowSize[1])

        self.form.setWindowModality(QtCore.Qt.ApplicationModal)
        self.form.show()
        self.ret = self.form.exec_()

        Wolke.Settings["WindowSize-Einstellungen"] = [self.form.size().width(), self.form.size().height()]

        if self.ret == QtWidgets.QDialog.Accepted:
            needRestart = False

            Wolke.Settings['Bogen'] = self.ui.comboBogen.currentText()
            db = self.ui.comboRegelbasis.currentText()
            if db == 'Keine':
                Wolke.Settings['Datenbank'] = None
            else:
                Wolke.Settings['Datenbank'] = db
            
            Wolke.Settings['Charakter-Assistent'] = self.ui.checkWizard.isChecked()
            Wolke.Settings['Cheatsheet'] = self.ui.checkCheatsheet.isChecked()
            Wolke.Settings['Cheatsheet-Fontsize'] = self.ui.comboFontSize.currentIndex()

            if os.path.isdir(self.ui.editChar.text()):
                Wolke.Settings['Pfad-Chars'] = self.ui.editChar.text()
            else:
                Wolke.Settings['Pfad-Chars'] = ''
            if os.path.isdir(self.ui.editRegeln.text()):
                Wolke.Settings['Pfad-Regeln'] = self.ui.editRegeln.text()
            else:
                Wolke.Settings['Pfad-Regeln'] = ''

            if self.ui.editPlugins.text() != Wolke.Settings['Pfad-Plugins']:
                if os.path.isdir(self.ui.editPlugins.text()):
                    Wolke.Settings['Pfad-Plugins'] = self.ui.editPlugins.text()
                else:
                    Wolke.Settings['Pfad-Plugins'] = ''
                needRestart = True

            for checkbox in self.pluginCheckboxes:
                if checkbox.isChecked() and (checkbox.text() in Wolke.Settings['Deaktivierte-Plugins']):
                    Wolke.Settings['Deaktivierte-Plugins'].remove(checkbox.text())
                    needRestart = True
                elif not checkbox.isChecked() and not (checkbox.text() in Wolke.Settings['Deaktivierte-Plugins']):
                    Wolke.Settings['Deaktivierte-Plugins'].append(checkbox.text())
                    needRestart = True
              
            Wolke.Settings['UpdateCheck_Disable'] = not self.ui.checkUpdate.isChecked()
            Wolke.Settings['Logging'] = self.ui.comboLogging.currentIndex()
            loglevels = {0: logging.ERROR, 1: logging.WARNING, 2: logging.DEBUG}
            logging.getLogger().setLevel(loglevels[Wolke.Settings['Logging']])
            
            Wolke.Settings['PDF-Open'] = self.ui.checkPDFOpen.isChecked()

            if Wolke.Settings['Theme'] != self.ui.comboTheme.currentText():
                Wolke.Settings['Theme'] = self.ui.comboTheme.currentText()
                needRestart = True

            if Wolke.Settings['Font'] != self.ui.comboFont.currentText():
                Wolke.Settings['Font'] = self.ui.comboFont.currentText()
                needRestart = True

            if Wolke.Settings['FontSize'] != self.ui.spinAppFontSize.value():
                Wolke.Settings['FontSize'] = self.ui.spinAppFontSize.value()
                needRestart = True

            if Wolke.Settings['FontHeading'] != self.ui.comboFontHeading.currentText():
                Wolke.Settings['FontHeading'] = self.ui.comboFontHeading.currentText()
                needRestart = True

            if Wolke.Settings['FontHeadingSize'] != self.ui.spinAppFontHeadingSize.value():
                Wolke.Settings['FontHeadingSize'] = self.ui.spinAppFontHeadingSize.value()
                needRestart = True

            EinstellungenWrapper.save()

            if needRestart:
                messageBox = QtWidgets.QMessageBox()
                messageBox.setIcon(QtWidgets.QMessageBox.Information)
                messageBox.setWindowTitle("Sephrasto neustarten?")
                messageBox.setText("Sephrasto muss bei Änderungen an Plugin- oder Theme-Einstellungen neugestartet werden.")
                messageBox.addButton(QtWidgets.QPushButton("Neustarten"), QtWidgets.QMessageBox.YesRole)
                messageBox.addButton(QtWidgets.QPushButton("Später"), QtWidgets.QMessageBox.RejectRole)
                messageBox.setEscapeButton(QtWidgets.QMessageBox.Close)  
                result = messageBox.exec_()
                if result == 0:
                    EinstellungenWrapper.restartSephrasto()
    
    @staticmethod
    def restartSephrasto():
        if os.path.splitext(sys.executable)[0].endswith("Sephrasto"):
            os.execl(sys.executable, *sys.argv)
        else:
            os.execl(sys.executable, sys.argv[0], *sys.argv)

    @staticmethod
    def getSettingsFolder():
        return appdirs.user_config_dir(appname='Sephrasto')

    @staticmethod
    def createSettingsFolders(basePath):
        if not os.path.isdir(basePath):
            try:
                os.mkdir(basePath)
            except:
                messagebox = QtWidgets.QMessageBox()
                messagebox.setWindowTitle("Fehler!")
                messagebox.setText(
                    "Konnte den Sephrasto Ordner in deinem Nutzerverzeichnis nicht erstellen (" + basePath + "). Bitte stelle sicher, dass Sephrasto die nötigen Schreibrechte hat und dein Antivirus Programm den Zugriff nicht blockiert. Sephrasto wird sonst nicht richtig funktionieren.")
                messagebox.setIcon(QtWidgets.QMessageBox.Critical)
                messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok)
                messagebox.exec_()

    @staticmethod
    def createUserFolders(basePath):
        if not os.path.isdir(basePath):
            try:
                os.mkdir(basePath)
            except:
                messagebox = QtWidgets.QMessageBox()
                messagebox.setWindowTitle("Fehler!")
                messagebox.setText("Konnte den Sephrasto Ordner in deinem Nutzerverzeichnis nicht erstellen (" + basePath + "). Bitte stelle sicher, dass Sephrasto die nötigen Schreibrechte hat und dein Antivirus Programm den Zugriff nicht blockiert. Sephrasto wird sonst nicht richtig funktionieren.")
                messagebox.setIcon(QtWidgets.QMessageBox.Critical)
                messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok)
                messagebox.exec_()

        folders = ['Charaktere', 'Regeln', 'Plugins', 'Charakterbögen']
        for folder in folders:
            if not os.path.isdir(os.path.join(basePath, folder)):
                os.mkdir(os.path.join(basePath, folder))

    @staticmethod
    def load():
        settingsFolder = EinstellungenWrapper.getSettingsFolder()
        userFolder = os.path.join(os.path.expanduser('~'), 'Sephrasto')
        EinstellungenWrapper.createSettingsFolders(settingsFolder)
        EinstellungenWrapper.createUserFolders(userFolder)
        settingsPath = os.path.join(settingsFolder, 'Sephrasto.ini')
        if os.path.isfile(settingsPath):
            with open(settingsPath,'r') as infile:
                tmpSet = yaml.safe_load(infile)
                for el in tmpSet:
                    Wolke.Settings[el] = tmpSet[el]
                if not 'Version' in tmpSet:
                    Wolke.Settings['Version'] = 0

                #Settings migration code goes here, dont forget to increment the base version in Wolke.py too
                if Wolke.Settings['Version'] == 0:
                    if not 'CharakterBeschreibungExt' in Wolke.Settings['Deaktivierte-Plugins']:
                        Wolke.Settings['Deaktivierte-Plugins'].append('CharakterBeschreibungExt')
                    Wolke.Settings['Version'] += 1
                if Wolke.Settings['Version'] == 1:
                    if Wolke.Settings['Bogen'] == "Standard Ilaris-Charakterbogen" or Wolke.Settings['Bogen'] == "Frag immer nach":
                        Wolke.Settings['Bogen'] = "Standard Charakterbogen"
                    elif Wolke.Settings['Bogen'] == "Die lange Version von Gatsu":
                        Wolke.Settings['Bogen'] = "Langer Charakterbogen"
                    Wolke.Settings['Font'] = "Crimson Pro"
                    Wolke.Settings['FontSize'] = 9
                    Wolke.Settings['Theme'] = "Ilaris"
                    Wolke.Settings['Version'] += 1
        
        #Init defaults
        if not Wolke.Settings['Pfad-Chars'] or not os.path.isdir(Wolke.Settings['Pfad-Chars']):
            Wolke.Settings['Pfad-Chars'] = os.path.join(userFolder, 'Charaktere')
        if not Wolke.Settings['Pfad-Regeln'] or not os.path.isdir(Wolke.Settings['Pfad-Regeln']):
            Wolke.Settings['Pfad-Regeln'] = os.path.join(userFolder, 'Regeln')
        if not Wolke.Settings['Pfad-Plugins'] or not os.path.isdir(Wolke.Settings['Pfad-Plugins']):
            Wolke.Settings['Pfad-Plugins'] = os.path.join(userFolder, 'Plugins')
        if not Wolke.Settings['Pfad-Charakterbögen'] or not os.path.isdir(Wolke.Settings['Pfad-Charakterbögen']):
            Wolke.Settings['Pfad-Charakterbögen'] = os.path.join(userFolder, 'Charakterbögen')

        #Init charsheets
        for filePath in EinstellungenWrapper.getCharakterbögen():
            inifile = os.path.splitext(filePath)[0] + ".ini"
            if not os.path.isfile(inifile):
                continue
            with open(inifile,'r', encoding='utf8') as file:
                tmpSet = yaml.safe_load(file)
                cbi  = CharakterbogenInfo()
                cbi.filePath = filePath
                cbi.maxVorteile = tmpSet["MaxVorteile"]
                cbi.maxKampfVorteile = tmpSet["MaxKampfVorteile"]
                cbi.maxÜberVorteile = tmpSet["MaxÜbernatürlicheVorteile"]
                cbi.maxFreie = tmpSet["MaxFreieFertigkeiten"]
                cbi.maxFertigkeiten = tmpSet["MaxFertigkeiten"]
                cbi.maxÜberFertigkeiten = tmpSet["MaxÜbernatürlicheFertigkeiten"]
                cbi.maxÜberTalente = tmpSet["MaxÜbernatürlicheTalente"]
                cbi.seitenProfan = tmpSet["SeitenProfan"]
                cbi.kurzbogenHack = tmpSet["KurzerBogenHack"] if "KurzerBogenHack" in tmpSet else False
                cbi.beschreibungDetails = tmpSet["BeschreibungDetails"]
                cbi.bild = tmpSet["Bild"]
                cbi.bildOffset = tmpSet["BildOffset"] if "BildOffset" in tmpSet else [0, 0]
                Wolke.Charakterbögen[filePath] = cbi

    @staticmethod
    def save():
        settingsFolder = EinstellungenWrapper.getSettingsFolder()
        EinstellungenWrapper.createSettingsFolders(settingsFolder)

        settingsPath = os.path.join(settingsFolder, 'Sephrasto.ini')
        with open(settingsPath, 'w') as outfile:
            yaml.dump(Wolke.Settings, outfile)

    # Plugins can use this function to add their own settings
    # The setting can afterwards be accessed via Wolke.Settings["setting name"]
    @staticmethod
    def addSettings(settings):
        foundMissingSetting = False
        for setting in settings:
            if not setting in Wolke.Settings:
                Wolke.Settings[setting] = ""
                foundMissingSetting = True
        if foundMissingSetting:
            EinstellungenWrapper.save()

    def updatePluginCheckboxes(self, plugins):
        self.pluginCheckboxes = []

        layout = self.ui.gbPlugins.layout()
        for i in reversed(range(layout.count())): 
            if layout.itemAt(i).widget():
                layout.itemAt(i).widget().setParent(None)
            layout.removeItem(layout.itemAt(i))

        for pluginData in plugins:
            check = QtWidgets.QCheckBox(pluginData.name)
            if pluginData.description:
                check.setToolTip(pluginData.description)

            if not (pluginData.name in Wolke.Settings['Deaktivierte-Plugins']):
                check.setChecked(True)
            layout.addWidget(check)
            self.pluginCheckboxes.append(check)
        layout.addStretch()

    @staticmethod
    def getDatenbanken(path):
        optionsList = ['Keine']            
        if os.path.isdir(path):
            for file in Hilfsmethoden.listdir(path):
                if file.lower().endswith('.xml'):
                    optionsList.append(file)
        return optionsList

    @staticmethod
    def getCharakterbögen():
        result = []
        for file in Hilfsmethoden.listdir(os.path.join("Data", "Charakterbögen")):
            if not file.endswith(".pdf"):
                continue

            if not os.path.isfile(os.path.join("Data", "Charakterbögen", os.path.splitext(file)[0] + ".ini")):
                continue
            result.append(os.path.join("Data", "Charakterbögen", file))

        for file in Hilfsmethoden.listdir(Wolke.Settings['Pfad-Charakterbögen']):
            if not file.endswith(".pdf"):
                continue

            if not os.path.isfile(os.path.join(Wolke.Settings['Pfad-Charakterbögen'], os.path.splitext(file)[0] + ".ini")):
                continue
            result.append(os.path.join(Wolke.Settings['Pfad-Charakterbögen'], file))
        return result

    def updateComboRegelbasis(self):
        optionsList = EinstellungenWrapper.getDatenbanken(self.ui.editRegeln.text())
        self.ui.comboRegelbasis.clear()
        self.ui.comboRegelbasis.addItems(optionsList)
        if Wolke.Settings['Datenbank'] in optionsList:
            self.ui.comboRegelbasis.setCurrentText(Wolke.Settings['Datenbank'])

    def setCharPath(self):
        p = QtWidgets.QFileDialog.getExistingDirectory(None,
          "Wähle einen Speicherort für Charaktere aus!",
          self.ui.editChar.text(),
          QtWidgets.QFileDialog.ShowDirsOnly)
        if p:
            p = os.path.realpath(p)
            if os.path.isdir(p):
                self.ui.editChar.setText(p)
            
    def setRulePath(self):
        p = QtWidgets.QFileDialog.getExistingDirectory(None,
          "Wähle einen Speicherort für Regeln aus!",
          self.ui.editRegeln.text(),
          QtWidgets.QFileDialog.ShowDirsOnly)
        if p:
            p = os.path.realpath(p)
            if os.path.isdir(p):
                self.ui.editRegeln.setText(p)
                self.updateComboRegelbasis()

    def setPluginsPath(self):
        p = QtWidgets.QFileDialog.getExistingDirectory(None,
          "Wähle einen Speicherort für Plugins aus!",
          self.ui.editPlugins.text(),
          QtWidgets.QFileDialog.ShowDirsOnly)
        if p:
            p = os.path.realpath(p)
            if os.path.isdir(p):
                self.ui.editPlugins.setText(p)
                self.updatePluginCheckboxes(PluginLoader.getPlugins(p))

    def resetCharPath(self):
        p = os.path.join(self.settingsFolder, 'Charaktere')
        self.ui.editChar.setText(p)
        
    def resetRulePath(self):
        p = os.path.join(self.settingsFolder, 'Regeln')
        self.ui.editRegeln.setText(p)
        self.updateComboRegelbasis()
        
    def resetPluginsPath(self):
        p = os.path.join(self.settingsFolder, 'Plugins')
        self.ui.editPlugins.setText(p)
        self.updatePluginCheckboxes(PluginLoader.getPlugins(p))
Yesterday's the past, tomorrow's the future, but today is a gift. That's why it's called the present.
-Master Oogway

Benutzeravatar
qeqar
Posts in topic: 11
Beiträge: 401
Registriert: 23.03.2020 09:59

Auszeichnungen

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von qeqar »

Loirana hat geschrieben: 12.08.2022 10:13 K.a. ob das erwünscht ist, ich hab aber mal die von mir vorgeschlagene Änderung umgesetzt. Könnt euch das auch als Branch zu GitHub hochladen, aber hab keine Berechtigung (zurecht).
Du kannst das repo einfach forken und den branch bei dir erstellen, nach dem pushen bietet dir github die moeglichkeit einen PR beim original zu machen.

Benutzeravatar
Loirana
Posts in topic: 5
Beiträge: 7556
Registriert: 24.07.2015 08:56
Geschlecht:

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Loirana »

qeqar hat geschrieben: 12.08.2022 10:59
Loirana hat geschrieben: 12.08.2022 10:13 K.a. ob das erwünscht ist, ich hab aber mal die von mir vorgeschlagene Änderung umgesetzt. Könnt euch das auch als Branch zu GitHub hochladen, aber hab keine Berechtigung (zurecht).
Du kannst das repo einfach forken und den branch bei dir erstellen, nach dem pushen bietet dir github die moeglichkeit einen PR beim original zu machen.
Done :lol: https://github.com/Aeolitus/Sephrasto/pull/68
Yesterday's the past, tomorrow's the future, but today is a gift. That's why it's called the present.
-Master Oogway

Benutzeravatar
Gatsu
Posts in topic: 136
Beiträge: 1184
Registriert: 22.08.2010 13:01

Errungenschaften

Sephrasto - Fehler und Verbesserungsvorschläge

Ungelesener Beitrag von Gatsu »

Sephrasto 3 ist fertig! Ihr könnt es schonmal auf github herunterladen: https://github.com/Aeolitus/Sephrasto/r ... tag/v3.0.0

Mit Sephrasto 3 wechseln wir aus Lizenzgründen unser GUI Toolkit von PyQt5 zu PySide6. Das muss euch nichts sagen, aber unter der Haube hat sich dadurch viel getan, auch wenn man das von außen nicht wirklich sieht. Dies bedeutet leider auch, dass die meisten Plugins nicht mehr kompatibel sein werden. Für alle Plugins von mir könnt ihr aber bereits eine aktualisierte Version herunterladen (außer IA, das folgt noch).

Verschiedenes
- Fix: Falls beim Charakter laden ein Talent in den Hausregeln nicht gelöscht, sondern zu einer anderen Fertigkeit verschoben wurde, wird dies nun korrekt im Warn-Dialog angezeigt
- macOS: es gibt nun eine Installationsanleitung auf github. Gerne Feedback hierzu und allgemein ob alles gut läuft!
- Die Buttons aller Auswahl-Dialogfenster wurden ins Deutsche übersetzt
- Fix: unter bestimmten Umständen ist Sephrasto gecrasht, wenn es von einem anderen Ordner aus gestartet wurde

Charakterbögen
- Die Freien Fertigkeiten haben nun die gleiche Reihenfolge wie in Sephrasto.
- Charakterbögen mit Regelanhang haben nun eine geringere Dateigröße. Der Effekt ist größer, desto mehr Seiten Regelanhang es gibt.
- Die Fertigkeiten-Liste des Standard Charakterbogens ist nun komplett via Formularfelder editierbar. Das bedeutet, dass er nun auch für Hausregeln verwendet werden kann, die Ilaris-Standardfertigkeiten gelöscht oder umbenannt haben.
- Bei allen Charakterbögen waren die letzten Seitenzahl-Formularfelder bei den übernatürlichen Talenten falsch benannt. Das wurde behoben und der entsprechende Workaround beim PDF-Exporter entfernt.
- Wenn ein Charakterbogen den Details-Tab unterstützt, aber kein Bild unterstützt, dann wird das Bild im Detailstab nun nicht mehr angezeigt.

Design
- Fix: Die Standard-Überschrift Aniron sollte nun wie geplant angezeigt werden. Sephrasto hatte sie zwar mitgeliefert aber nicht geladen.
- Fix macOS: Das Design war auf macOS in vielerlei Hinsicht kaputt - nicht resizebare Fenster, fehlende icons, falsche Schriftarten usw. Dies wurde komplett behoben.
- Beim ersten Start verwendet Sephrasto nun die Standard-Schriftgröße des Systems, statt immer 9pt. Das ist insbesondere für Retina-Display relevant.
- Die Sephrasto-Standardschriftart Crimson Pro wurde aktualisiert und sollte nun besser aussehen
- Die Größe der Kommentarfelder bei variablen Vorteilen wurde verringert
- Font Hinting wurde deaktiviert, was insbesondere bei den icons für schärfere Konturen sorgt
- Die Einträge von allen Listen sind nun etwas höher
- Die Sephrasto-Themes sind nun alle in YAML-Dateien ausgelagert. Ihr nun ein komplett eigenes Theme kreieren oder ein existierendes ändern. Mehr dazu in der Hilfe. Danke @Loirana.
- Waffen Tab: Bei den Waffen-Details werden nun icons verwendet

CharakterAssistent:
- Fix: wenn mehrmals die gleiche Freie Fertigkeit vergeben wurde kam es manchmal zum Crash.
- Fix: wenn mehrmals die gleiche Freie Fertigkeit vergeben wurde, wurden die falschen EP-Kosten angegeben
- Auswahlmöglichkeiten mit nur einer Auswahl werden nicht mehr automatisch appliziert für die Möglichkeit dies zu überspringen.
- Bei Auswahlmöglichkeiten, die nicht appliziert werden können werden (z.B. zweimal der gleiche Vorteil) wird nun eine Erklärung dazu angezeigt
- Bei Fertigkeit-Auswahlmöglichkeiten wird nun nur noch der anhand des Maximums tatsächlich steigerbare Wert angezeigt
- Es werden keine Auswahlmöglichkeiten, bei denen keine einzige Auswahl etwas bringt (doppelte Vorteile, alle Fertigkeiten bereits am Max etc.) mehr angeboten.
- Der Erklär-Text des CharakterAssistent-Fensters hat nun in allen Themes eine passende Farbe

Einstellungen:
- Es ist nun möglich die Darstellungsoptionen zurückzusetzen. Dabei hat man die Wahl zwischen Standard-Betriebssystem-Schriftart und Standard-Sephrasto-Schriftart.
- Windows & macOS: Es ist nun möglich die DPI-Skalierung zu de/aktivieren. Dies ist standardmäßig deaktiviert, da der Fusion Style (basis für fast alle Themes) hier noch Darstellungsfehler hat (verpixelte Icons und Bilder, verschwundene Rahmen, etc.).
- Es ist nun möglich, den Charakterbögen-Ordner zu verschieben
- Die "Plugins" Box wird nun nicht mehr angezeigt, wenn keine Plugins installiert sind.
- Viele Einstellungen haben nun Tooltips zur Erklärung
- Linux & macOS: Die Sephrasto-Konfigurationsdatei Sephrasto.ini wird unter Linux und macOS nun in separaten Ordnern angelegt (Linux: user/.config/Sephrasto; macOS: user/Library/Preferences/Sephrasto). Danke @Loirana.
- Linux: Der Ordner user/Sephrasto lautet nun user/sephrasto und kann optional in user/.sephrasto umbenannt werden, um ihn zu verstecken
- Fix: Falls ein in den Einstellungen manuell zugewiesener Ordner nicht mehr existiert wird der Pfad nun zurückgesetzt, statt zu crashen.

Hilfe:
- Schönere Button-Icons
- Neue Einträge zur Erstellung von eigenen Charakterbögen und eigenem Theme

Waffen Tab:
- Bei den Details werden nun zusätzlich vorgenommene Verbesserungen an den Waffen (verglichen mit den Originalen in der Datenbank) angezeigt.

Inventar Tab:
- Fix: Es war nicht mehr möglich, mehrere Rüstungen in einer Zeile zu kombinieren, da in der letzten Version der Plus-Button zu einem Löschen-Button wurde, sobald eine Rüstung eingetragen wurde. Der Löschen-Button ist nun separat.
Ilaris Advanced 10, die inoffizielle Regelerweiterung für das grandiose Aventurien-Alternativregelwerk Ilaris
Manöverkarten-Projekt (DSA4)
Initiative zur Rettung der Kavallerie (DSA4)
AP-Kosten Rechner 2.1 (DSA4)

Antworten