Update character PDF XML: add new page with attributes, stats, and talents; include functions in characterlib for calculations

This commit is contained in:
Florian 2026-05-15 15:44:22 +02:00
parent 90d80b091f
commit 96980750cd
3 changed files with 733 additions and 20 deletions

View File

@ -181,26 +181,6 @@
<Int Name="shields"><Value>6</Value></Int>
<Int Name="swords"><Value>6</Value></Int>
<Int Name="throwingweapons"><Value>6</Value></Int>
<Int Name="at_crossbows"/>
<Int Name="at_blowpipe"/>
<Int Name="at_bows"/>
<Int Name="at_daggers"/>
<Int Name="at_impactweapons"/>
<Int Name="at_chainweapons"/>
<Int Name="at_lances"/>
<Int Name="at_brawling"/>
<Int Name="at_shields"/>
<Int Name="at_swords"/>
<Int Name="at_throwingweapons"/>
<Int Name="pa_daggers"/>
<Int Name="pa_impactweapons"/>
<Int Name="pa_chainweapons"/>
<Int Name="pa_lances"/>
<Int Name="pa_brawling"/>
<Int Name="pa_shields"/>
<Int Name="pa_swords"/>
</Variables>
</Group>
<Group Name="items">

View File

@ -40,6 +40,9 @@
<Function Name="charlib_checkpreprint">
<Return>true</Return>
</Function>
<Function Name="charlib_maxhp">
<Return>[data.character.attributes.physique] + [data.character.attributes.physique] + [data.character.attributes.strength] + [data.character.race.healthbonus]</Return>
</Function>
<Function Name="charlib_intrinsicmagic">
<Actions>
<Action>
@ -65,5 +68,73 @@
</Actions>
<Return>[local.magic]</Return>
</Function>
<Function Name="charlib_fightcourageadd">
<Return>Floor(([data.character.attributes.courage] - 8) / 3)</Return>
</Function>
<Function Name="charlib_fightdexterityadd">
<Return>Floor(([data.character.attributes.dexterity] - 8) / 3)</Return>
</Function>
<Function Name="charlib_fightagilityadd">
<Return>Floor(([data.character.attributes.agility] - 8) / 3)</Return>
</Function>
<Function Name="charlib_fightstrengthadd">
<Return>Floor(([data.character.attributes.strength] - 8) / 3)</Return>
</Function>
<!-- AT Functions -->
<Function Name="charlib_crossbows_at">
<Return>[data.character.fight.crossbows] + charlib_fightdexterityadd()</Return>
</Function>
<Function Name="charlib_blowpipe_at">
<Return>[data.character.fight.blowpipe] + charlib_fightdexterityadd()</Return>
</Function>
<Function Name="charlib_bows_at">
<Return>[data.character.fight.bows] + charlib_fightdexterityadd()</Return>
</Function>
<Function Name="charlib_daggers_at">
<Return>[data.character.fight.daggers] + charlib_fightcourageadd()</Return>
</Function>
<Function Name="charlib_impactweapons_at">
<Return>[data.character.fight.impactweapons] + charlib_fightcourageadd()</Return>
</Function>
<Function Name="charlib_chainweapons_at">
<Return>[data.character.fight.chainweapons] + charlib_fightcourageadd()</Return>
</Function>
<Function Name="charlib_lances_at">
<Return>[data.character.fight.lances] + charlib_fightcourageadd()</Return>
</Function>
<Function Name="charlib_brawling_at">
<Return>[data.character.fight.brawling] + charlib_fightcourageadd()</Return>
</Function>
<Function Name="charlib_shields_at">
<Return>[data.character.fight.shields] + charlib_fightcourageadd()</Return>
</Function>
<Function Name="charlib_swords_at">
<Return>[data.character.fight.swords] + charlib_fightcourageadd()</Return>
</Function>
<Function Name="charlib_throwingweapons_at">
<Return>[data.character.fight.throwingweapons] + charlib_fightdexterityadd()</Return>
</Function>
<!-- PA Functions -->
<Function Name="charlib_daggers_pa">
<Return>[data.character.fight.daggers] / 2 + charlib_fightagilityadd()</Return>
</Function>
<Function Name="charlib_impactweapons_pa">
<Return>[data.character.fight.impactweapons] / 2 + charlib_fightstrengthadd()</Return>
</Function>
<Function Name="charlib_chainweapons_pa">
<Return>[data.character.fight.chainweapons] / 2 + charlib_fightstrengthadd()</Return>
</Function>
<Function Name="charlib_lances_pa">
<Return>[data.character.fight.lances] / 2 + charlib_fightstrengthadd()</Return>
</Function>
<Function Name="charlib_brawling_pa">
<Return>[data.character.fight.brawling] / 2 + charlib_fightstrengthadd()</Return>
</Function>
<Function Name="charlib_shields_pa">
<Return>[data.character.fight.shields] / 2 + charlib_fightstrengthadd()</Return>
</Function>
<Function Name="charlib_swords_pa">
<Return>[data.character.fight.swords] / 2 + charlib_fightagilityadd()</Return>
</Function>
</Functions>
</Library>

View File

@ -156,6 +156,12 @@
<Style Name="TableBorder">
<Border>1</Border>
</Style>
<Style Name="GapChildren" Recursive="true" IgnoreSelf="true">
<Margin>1</Margin>
</Style>
<Style Name="BiggerLowerBorder">
<BorderBottom>3</BorderBottom>
</Style>
</Styles>
<Pages>
<!-- Profile/Persönliche Daten -->
@ -3281,5 +3287,661 @@
</ColumnLayout>
</Body>
</Page>
<Page>
<ColumnLayout Styles="Page">
<RowLayout Styles="ValueBoxRow">
<Content>
<ColumnLayout Styles="ValueBox;ValueBoxChildren;Courage">
<Content>
<Label>
<Text>"MU"</Text>
</Label>
<Label>
<Text>[data.character.attributes.courage]</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren;Intelligence">
<Content>
<Label>
<Text>"KL"</Text>
</Label>
<Label>
<Text>[data.character.attributes.intelligence]</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren;Intuition">
<Content>
<Label>
<Text>"IN"</Text>
</Label>
<Label>
<Text>[data.character.attributes.intuition]</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren;Charisma">
<Content>
<Label>
<Text>"CH"</Text>
</Label>
<Label>
<Text>[data.character.attributes.charisma]</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren;Dexterity">
<Content>
<Label>
<Text>"FF"</Text>
</Label>
<Label>
<Text>[data.character.attributes.dexterity]</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren;Agility">
<Content>
<Label>
<Text>"GE"</Text>
</Label>
<Label>
<Text>[data.character.attributes.agility]</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren;Physique">
<Content>
<Label>
<Text>"KO"</Text>
</Label>
<Label>
<Text>[data.character.attributes.physique]</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren;Strength">
<Content>
<Label>
<Text>"KK"</Text>
</Label>
<Label>
<Text>[data.character.attributes.strength]</Text>
</Label>
</Content>
</ColumnLayout>
</Content>
</RowLayout>
<RowLayout Styles="ValueBoxRow">
<Content>
<ColumnLayout Styles="ValueBox;ValueBoxChildren">
<Content>
<Label>
<Text>"LE"</Text>
</Label>
<Label>
<Text>charlib_maxhp()</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren">
<Content>
<Label>
<Text>"INI"</Text>
</Label>
<Label>
<Text>Round(([data.character.attributes.courage] + [data.character.attributes.agility]) / 2, 0)</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren">
<Content>
<Label>
<Text>"AW"</Text>
</Label>
<Label>
<Text>Round(([data.character.attributes.intuition] + [data.character.attributes.agility] + [data.character.attributes.agility]) / 4, 0)</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren">
<Content>
<Label>
<Text>"GS"</Text>
</Label>
<Label>
<Text>[data.character.race.speed]</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren" Visible="[data.character.definition.ismage]">
<Content>
<Label>
<Text>"MN"</Text>
</Label>
<Label>
<Text>[data.character.magic.mana]</Text>
</Label>
</Content>
</ColumnLayout>
<ColumnLayout Styles="ValueBox;ValueBoxChildren" Visible="[data.character.definition.ismage]">
<Content>
<Label>
<Text>"AM"</Text>
</Label>
<Label>
<Text>charlib_intrinsicmagic()</Text>
</Label>
</Content>
</ColumnLayout>
</Content>
</RowLayout>
<TableLayout Styles="GapChildren">
<Columns>
<Column>
<Width>33</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>33</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>33</Width>
<Percent>true</Percent>
</Column>
</Columns>
<Content>
<TableLayout Styles="TableChildren">
<Columns>
<Column>
<Width>55</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>15</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>15</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>15</Width>
<Percent>true</Percent>
</Column>
</Columns>
<Content>
<Label Styles="TalentTableHeader">
<Text>"Kampftechnik"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"W"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"AT"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"PA"</Text>
</Label>
<Label>
<Text>"Armbrüste"</Text>
</Label>
<Label>
<Text>[data.character.fight.crossbows]</Text>
</Label>
<Label>
<Text>charlib_crossbows_at()</Text>
</Label>
<Label>
<Text>"-"</Text>
</Label>
<Label>
<Text>"Blasrohre"</Text>
</Label>
<Label>
<Text>[data.character.fight.blowpipe]</Text>
</Label>
<Label>
<Text>charlib_blowpipe_at()</Text>
</Label>
<Label>
<Text>"-"</Text>
</Label>
<Label>
<Text>"Bögen"</Text>
</Label>
<Label>
<Text>[data.character.fight.bows]</Text>
</Label>
<Label>
<Text>charlib_bows_at()</Text>
</Label>
<Label>
<Text>"-"</Text>
</Label>
<Label>
<Text>"Dolche"</Text>
</Label>
<Label>
<Text>[data.character.fight.daggers]</Text>
</Label>
<Label>
<Text>charlib_daggers_at()</Text>
</Label>
<Label>
<Text>charlib_daggers_pa()</Text>
</Label>
<Label>
<Text>"Hiebwaffen"</Text>
</Label>
<Label>
<Text>[data.character.fight.impactweapons]</Text>
</Label>
<Label>
<Text>charlib_impactweapons_at()</Text>
</Label>
<Label>
<Text>charlib_impactweapons_pa()</Text>
</Label>
<Label>
<Text>"Kettenwaffen"</Text>
</Label>
<Label>
<Text>[data.character.fight.chainweapons]</Text>
</Label>
<Label>
<Text>charlib_chainweapons_at()</Text>
</Label>
<Label>
<Text>charlib_chainweapons_pa()</Text>
</Label>
<Label>
<Text>"Lanzen"</Text>
</Label>
<Label>
<Text>[data.character.fight.lances]</Text>
</Label>
<Label>
<Text>charlib_lances_at()</Text>
</Label>
<Label>
<Text>charlib_lances_pa()</Text>
</Label>
<Label>
<Text>"Raufen"</Text>
</Label>
<Label>
<Text>[data.character.fight.brawling]</Text>
</Label>
<Label>
<Text>charlib_brawling_at()</Text>
</Label>
<Label>
<Text>charlib_brawling_pa()</Text>
</Label>
<Label>
<Text>"Schilde"</Text>
</Label>
<Label>
<Text>[data.character.fight.shields]</Text>
</Label>
<Label>
<Text>charlib_shields_at()</Text>
</Label>
<Label>
<Text>charlib_shields_pa()</Text>
</Label>
<Label>
<Text>"Schwerter"</Text>
</Label>
<Label>
<Text>[data.character.fight.swords]</Text>
</Label>
<Label>
<Text>charlib_swords_at()</Text>
</Label>
<Label>
<Text>charlib_swords_pa()</Text>
</Label>
<Label>
<Text>"Wurfwaffen"</Text>
</Label>
<Label>
<Text>[data.character.fight.throwingweapons]</Text>
</Label>
<Label>
<Text>charlib_throwingweapons_at()</Text>
</Label>
<Label>
<Text>"-"</Text>
</Label>
</Content>
</TableLayout>
<TableLayout Styles="TableChildren">
<Columns>
<Column>
<Width>85</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>15</Width>
<Percent>true</Percent>
</Column>
</Columns>
<Content>
<Label Styles="TalentTableHeader">
<Text>"Lebensenergie"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>""</Text>
</Label>
<Label Styles="Bold">
<Text>"Aktuelle Lebensenergie"</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label Styles="Bold;BiggerLowerBorder">
<Text>"Nahtoderfahrungen"</Text>
</Label>
<Label Styles="BiggerLowerBorder">
<Text>""</Text>
</Label>
<Label>
<Text>"Maximal"</Text>
</Label>
<Label>
<Text>charlib_maxhp()</Text>
</Label>
<Label>
<Text>"1/2 Verloren (+1 Schmerz)</Text>
</Label>
<Label>
<Text>charlib_maxhp() / 2</Text>
</Label>
<Label>
<Text>"3/4 Verloren"</Text>
</Label>
<Label>
<Text>charlib_maxhp() / 4</Text>
</Label>
<Label>
<Text>"0 oder weniger"</Text>
</Label>
<Label>
<Text>0 (Im Sterben liegend)</Text>
</Label>
<Label>
<Text>"Tod"</Text>
</Label>
<Label>
<Text>Truncate([data.character.attributes.physique] * -1.5)</Text>
</Label>
</Content>
</TableLayout>
<TableLayout Styles="TableChildren">
<Columns>
<Column>
<Width>60</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>10</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>10</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>10</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>10</Width>
<Percent>true</Percent>
</Column>
</Columns>
<Content>
<Label Styles="TalentTableHeader">
<Text>"Zustand"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"I"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"II"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"III"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"IV"</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
</Content>
</TableLayout>
</Content>
</TableLayout>
</ColumnLayout>
</Page>
</Pages>
</Pdf>