Update Magic Page and PDF Generation

This commit is contained in:
Florian 2026-06-16 11:21:44 +02:00
parent a36f4a1902
commit c37bf59cf5
8 changed files with 397 additions and 19 deletions

View File

@ -25,6 +25,7 @@
"armor.evade": "number",
"armor.slots": "number",
"shield": "checkbox",
"magic": "checkbox"
"magic": "checkbox",
"magicitem": "checkbox"
}
}

View File

@ -13,11 +13,25 @@
"state": {
"type": "bases",
"state": {
"file": "wiki/Magie/Magic.base",
"viewName": "Categories"
"file": "wiki/weapons/Items.base",
"viewName": "Magicitems"
},
"icon": "lucide-table",
"title": "Magic"
"title": "Items"
}
},
{
"id": "d6119cdcde5a0576",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "wiki/Magie/Items/Sylyl Ring.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Sylyl Ring"
}
},
{
@ -198,11 +212,14 @@
},
"active": "cbd86a1333362c95",
"lastOpenFiles": [
"Untitled.base",
"wiki/Magie/Items/Sylyl Ring.md",
"wiki/weapons/Items.base",
"wiki/Magie/Items/Laute.md",
"wiki/Magie/Magic.base",
"wiki/Magie/Items",
"Untitled.base",
"wiki/weapons/Holzschild.md",
"wiki/Magie/Kampfmagie.md",
"wiki/weapons/Items.base",
"wiki/Magie",
"wiki/weapons/Sword.md",
"wiki/weapons/Stahlschild.md",
@ -226,7 +243,6 @@
"wiki/Test123.md",
"wiki/Authbased.md",
"Untitled.md",
"wiki/weapons",
"wiki/twomain/Hallo Welt.md",
"wiki/twomain/Zweiter Hallo Welt.md",
"adventures/Adventure.md",

View File

@ -0,0 +1,8 @@
---
item: true
item.cost: "500"
item.slots: 2
magicitem.source: Musik
magicitem.value: "+2"
magicitem: true
---

View File

@ -0,0 +1,8 @@
---
item: true
item.cost: "2341"
item.slots: 1
magicitem.source: Objekt
magicitem.value: "+5"
magicitem: true
---

View File

@ -70,3 +70,14 @@ views:
- item.slots
- armor.evade
- armor.armor
- type: table
name: Magicitems
filters:
and:
- magicitem == true
order:
- file.name
- magicitem.source
- magicitem.value
- item.cost
- item.slots

View File

@ -333,5 +333,94 @@
</AddListEntry>
</Actions>
</Function>
<Function Name="charlib_magic_willpower">
<Actions>
<Action>
<Do>-2</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[data.character.talents.willpower] &gt;= 1</If>
<Do>-1</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[data.character.talents.willpower] &gt;= 4</If>
<Do>0</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[data.character.talents.willpower] &gt;= 7</If>
<Do>1</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[data.character.talents.willpower] &gt;= 10</If>
<Do>2</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[data.character.talents.willpower] &gt;= 14</If>
<Do>3</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[data.character.talents.willpower] &gt;= 18</If>
<Do>4</Do>
<Output>[local.val]</Output>
</Action>
</Actions>
<Return>[local.val]</Return>
</Function>
<Function Name="charlib_magic_talent">
<Actions>
<Action>
<Do>0</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[params.0] &gt;= 1</If>
<Do>1</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[params.0] &gt;= 3</If>
<Do>2</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[params.0] &gt;= 5</If>
<Do>3</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[params.0] &gt;= 7</If>
<Do>4</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[params.0] &gt;= 10</If>
<Do>5</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[params.0] &gt;= 13</If>
<Do>6</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[params.0] &gt;= 16</If>
<Do>7</Do>
<Output>[local.val]</Output>
</Action>
<Action>
<If>[params.0] &gt;= 18</If>
<Do>8</Do>
<Output>[local.val]</Output>
</Action>
</Actions>
<Return>[local.val]</Return>
</Function>
</Functions>
</Library>

View File

@ -5569,5 +5569,250 @@
</RowLayout>
</Body>
</Page>
<!-- Magie -->
<Page Visible="[data.character.definition.ismage]">
<Header>
<RowLayout>
<Content>
<Label Styles="HeaderItem;Italic">
<Text>"Heldenbogen"</Text>
</Label>
<Label Styles="HeaderItem">
<Text>"-"</Text>
</Label>
<Label Styles="HeaderItem">
<Text>[data.character.definition.name]</Text>
</Label>
<Label Styles="HeaderItem">
<Text>"-"</Text>
</Label>
<Label Styles="HeaderItem;Bold">
<Text>"Magie"</Text>
</Label>
</Content>
</RowLayout>
</Header>
<Body>
<RowLayout Styles="Page">
<Content>
<ColumnLayout>
<Content>
<Label Styles="InventoryHeader">
<Text>"Magiequellen"</Text>
</Label>
<TableLayout Styles="TableChildren;GapChildren">
<Columns>
<Column>
<Width>80</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>20</Width>
<Percent>true</Percent>
</Column>
</Columns>
<Content>
<Label Styles="TalentTableHeader">
<Text>"Quelle"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Wert"</Text>
</Label>
<Label Styles="BiggerLowerBorder">
<Text>"Angeborene Magie</Text>
</Label>
<Label Styles="BiggerLowerBorder">
<Text>charlib_intrinsicmagic()</Text>
</Label>
<Label>
<Text>"Willenskraft"</Text>
</Label>
<ColumnLayout>
<Content>
<Label>
<Text>charlib_magic_willpower()</Text>
</Label>
<Label>
<Text>"/"</Text>
</Label>
<Label>
<Text>charlib_magic_willpower() + charlib_intrinsicmagic()</Text>
</Label>
</Content>
</ColumnLayout>
<Label>
<Text>"Objekt"</Text>
</Label>
<ColumnLayout>
<Content>
<Label>
<Text>"s.Obj."</Text>
</Label>
</Content>
</ColumnLayout>
<Label>
<Text>"Gesang"</Text>
</Label>
<ColumnLayout>
<Content>
<Label>
<Text>charlib_magic_talent([data.character.talent.singing])</Text>
</Label>
<Label>
<Text>"/"</Text>
</Label>
<Label>
<Text>charlib_magic_talent([data.character.talent.singing]) + charlib_intrinsicmagic()</Text>
</Label>
</Content>
</ColumnLayout>
<Label>
<Text>"Musik"</Text>
</Label>
<ColumnLayout>
<Content>
<Label>
<Text>charlib_magic_talent([data.character.talent.music])</Text>
</Label>
<Label>
<Text>"/"</Text>
</Label>
<Label>
<Text>charlib_magic_talent([data.character.talent.music]) + charlib_intrinsicmagic()</Text>
</Label>
</Content>
</ColumnLayout>
<Label>
<Text>"Tanz"</Text>
</Label>
<ColumnLayout>
<Content>
<Label>
<Text>charlib_magic_talent([data.character.talent.dancing])</Text>
</Label>
<Label>
<Text>"/"</Text>
</Label>
<Label>
<Text>charlib_magic_talent([data.character.talent.dancing]) + charlib_intrinsicmagic()</Text>
</Label>
</Content>
</ColumnLayout>
<Label>
<Text>"Tanz"</Text>
</Label>
<ColumnLayout>
<Content>
<Label>
<Text>charlib_magic_talent([data.character.talent.drawing])</Text>
</Label>
<Label>
<Text>"/"</Text>
</Label>
<Label>
<Text>charlib_magic_talent([data.character.talent.drawing]) + charlib_intrinsicmagic()</Text>
</Label>
</Content>
</ColumnLayout>
</Content>
</TableLayout>
</Content>
</ColumnLayout>
<ColumnLayout>
<Content>
<Label Styles="InventoryHeader">
<Text>"Mana"</Text>
</Label>
<TableLayout Styles="TableChildren;GapChildren">
<Columns>
<Column>
<Width>50</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>50</Width>
<Percent>true</Percent>
</Column>
</Columns>
<Content>
<Label Styles="TalentTableHeader">
<Text>"Aktuell"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Max"</Text>
</Label>
</Content>
</TableLayout>
<Label Styles="InventoryHeader">
<Text>"Magische Objekte"</Text>
</Label>
<TableLayout Styles="TableChildren;GapChildren">
<Columns>
<Column>
<Width>40</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>40</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>20</Width>
<Percent>true</Percent>
</Column>
</Columns>
<Content>
<Label Styles="InventoryHeader">
<Text>"Name"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Quelle"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Wert"</Text>
</Label>
<Label>
<Text>"Laute"</Text>
</Label>
<Label>
<Text>"Musik"</Text>
</Label>
<Label>
<Text>"+2"</Text>
</Label>
</Content>
</TableLayout>
</Content>
</ColumnLayout>
</Content>
</RowLayout>
</Body>
</Page>
</Pages>
</Pdf>

View File

@ -44,18 +44,6 @@
</OpenPage>
</OnPostLoad>
<OnPostCreate>
<Action>
<Do>Truncate([data.character.race.minheight] + [data.character.race.maxheight] / 2)</Do>
<Output>[data.character.definition.height]</Output>
</Action>
<Action>
<Do>Truncate([data.character.race.minweight] + [data.character.race.maxweight] / 2)</Do>
<Output>[data.character.definition.weight]</Output>
</Action>
<Action>
<Do>Truncate([data.character.race.minage] + [data.character.race.maxage] / 2)</Do>
<Output>[data.character.definition.age]</Output>
</Action>
<OpenPage>
<Page>[data.character.flow.currentPage]</Page>
</OpenPage>
@ -136,6 +124,18 @@
<Button>
<Text>"Weiter"</Text>
<OnClick>
<Action>
<Do>Truncate([data.character.race.minheight] + [data.character.race.maxheight] / 2)</Do>
<Output>[data.character.definition.height]</Output>
</Action>
<Action>
<Do>Truncate([data.character.race.minweight] + [data.character.race.maxweight] / 2)</Do>
<Output>[data.character.definition.weight]</Output>
</Action>
<Action>
<Do>Truncate([data.character.race.minage] + [data.character.race.maxage] / 2)</Do>
<Output>[data.character.definition.age]</Output>
</Action>
<Action>
<Do>"profile"</Do>
<Output>[data.character.flow.currentPage]</Output>