Update character PDF and workspace: add ranged weapons, shields, and armor sections with QS tracking and related attributes; refine table layouts and workspace configuration

This commit is contained in:
Florian 2026-06-12 17:00:31 +02:00
parent 1b3655df69
commit fa2ef638f9
13 changed files with 838 additions and 10 deletions

View File

@ -19,6 +19,11 @@
"item": "checkbox",
"weapon": "checkbox",
"damage": "text",
"item.slots": "number"
"item.slots": "number",
"ranged": "checkbox",
"armor": "checkbox",
"armor.evade": "number",
"armor.slots": "number",
"shield": "checkbox"
}
}

View File

@ -4,17 +4,34 @@
"type": "split",
"children": [
{
"id": "a0c7b83c6b065d06",
"id": "3ed41090d6d6003b",
"type": "tabs",
"children": [
{
"id": "4f3318fce357f3e3",
"id": "cbd86a1333362c95",
"type": "leaf",
"state": {
"type": "empty",
"state": {},
"type": "bases",
"state": {
"file": "wiki/weapons/Items.base",
"viewName": "Shields"
},
"icon": "lucide-table",
"title": "Items"
}
},
{
"id": "e865c65554502fdc",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "wiki/weapons/Holzschild.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "New tab"
"title": "Holzschild"
}
}
]
@ -179,12 +196,19 @@
"bases:Create new base": false
}
},
"active": "4f3318fce357f3e3",
"active": "cbd86a1333362c95",
"lastOpenFiles": [
"wiki/weapons/Axt.md",
"wiki/weapons/Holzschild.md",
"wiki/weapons/Stahlschild.md",
"wiki/weapons/Items.base",
"wiki/weapons/Sword.md",
"wiki/weapons/Lederrüstung.md",
"wiki/weapons/Kettenhemd.md",
"wiki/weapons/Bow.md",
"wiki/weapons/Armbrust.md",
"wiki/weapons/Spear.md",
"adventures/Untitled.canvas",
"wiki/weapons/Axt.md",
"wiki/weapons/Sword.md",
"wiki/costtables/Attribute A.md",
"wiki/costtables/CostTable.base",
"wiki/races/Races.base",

View File

@ -0,0 +1,8 @@
{
"nodes":[
{"id":"f7a3c430fe988560","x":-840,"y":-900,"width":360,"height":540,"type":"text","text":"Felix / Ira\nInitiative: 12\nStatus:\n- Brennt"},
{"id":"2a387de871d20754","type":"text","text":"Hunti / Knuhut\nInitiative: 9\nStatus:","x":-60,"y":-900,"width":396,"height":540},
{"id":"c86159a743e46642","x":-440,"y":-630,"width":340,"height":540,"type":"text","text":"B7 / Ork mit Axt\nInitiative: 10\nHealth: 32\nWaffe:\n- Axt \n\t- (AT: 12, PA: 7, QS: 3)\n\t- 2W6 + QS\nStatus:\n- Kackt"}
],
"edges":[]
}

View File

@ -0,0 +1,10 @@
---
item: true
ranged: true
item.cost: "16500"
ranged.damage: 2W6 + 3
ranged.technique: Armbrüste
ranged.reload: (FF + KK) - 2
item.slots: 3
---
ArmBRUST hihihi

View File

@ -0,0 +1,10 @@
---
item: true
ranged: true
item.cost: "1000"
ranged.damage: 2W4 + 2
ranged.technique: Bögen
ranged.reload: FF
item.slots: 2
---
Einen Bogen ist eine Schießi Schießi Waffe

View File

@ -0,0 +1,7 @@
---
item: true
item.cost: "460"
item.slots: 2
shield: true
shield.parade: "+2"
---

View File

@ -8,6 +8,7 @@ views:
- file.name
- item.cost
- item.slots
- shield.parade
- type: table
name: Weapons
filters:
@ -29,3 +30,38 @@ views:
- file.name
- item.cost
- item.slots
- type: table
name: Ranged
filters:
and:
- ranged == true
order:
- file.name
- item.cost
- ranged.damage
- ranged.reload
- ranged.technique
- item.slots
- type: table
name: Shields
filters:
and:
- shield == true
order:
- file.name
- item.slots
- item.cost
- shield.parade
columnSize:
note.shield.parade^: 158
- type: table
name: Armor
filters:
and:
- armor == true
order:
- file.name
- item.cost
- item.slots
- armor.evade
- armor.armor

View File

@ -0,0 +1,9 @@
---
item: true
item.cost: "800"
item.slots: 3
armor: true
armor.evade: -2
armor.armor: 2 + QS
---
Hemd aus Ketten

View File

@ -0,0 +1,9 @@
---
item: true
item.cost: "600"
item.slots: 2
armor: true
armor.evade: -1
armor.armor: 1 + QS/2
---
Rüstung aus aus Haut vom toten Tier.

View File

@ -0,0 +1,4 @@
---
shield: true
shield.parade: "+3"
---

View File

@ -197,6 +197,36 @@
<Int Name="slots"/>
</Variables>
</List>
<List Name="ranged">
<Variables>
<String Name="name"/>
<Int Name="cost"/>
<String Name="damage"/>
<Int Name="qs"/>
<String Name="fighttechnique"/>
<String Name="reload"/>
<Int Name="slots"/>
</Variables>
</List>
<List Name="armor">
<Variables>
<String Name="name"/>
<Int Name="cost"/>
<String Name="qs"/>
<String Name="armor"/>
<String Name="evade"/>
<Int Name="slots"/>
</Variables>
</List>
<List Name="shield">
<Variables>
<String Name="name"/>
<Int Name="cost"/>
<String Name="qs"/>
<String Name="parade"/>
<Int Name="slots"/>
</Variables>
</List>
</Variables>
</Group>
<Group Name="magic">

View File

@ -3951,10 +3951,12 @@
</TableLayout>
</Content>
</TableLayout>
<!-- Nahkampfwaffen -->
<Label Styles="SmallHeaderNoTopSpacer">
<Text>"Nahkampfwaffen"</Text>
</Label>
<TableLayout Styles="TableChildren;">
<TableLayout Styles="TableChildren">
<Columns>
<Column>
<Width>20</Width>
@ -4123,6 +4125,322 @@
</Content>
</TableLayout>
<!-- Fernkampfwaffen -->
<Label Styles="SmallHeaderNoTopSpacer">
<Text>"Fernkampfwaffen"</Text>
</Label>
<TableLayout Styles="TableChildren">
<Columns>
<Column>
<Width>20</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>6</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>20</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>18</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>16</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>8</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>12</Width>
<Percent>true</Percent>
</Column>
</Columns>
<Content>
<Label Styles="TalentTableHeader">
<Text>"Name"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"QS"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Kampftechnik"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Schaden"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Ladezeit"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Slots"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Preis"</Text>
</Label>
<Foreach>
<List>[data.character.items.ranged]</List>
<Content>
<Label Styles="HLeft">
<Text>[name]</Text>
</Label>
<Label>
<Text>[qs]</Text>
</Label>
<Label>
<Text>[fighttechnique]</Text>
</Label>
<Label>
<Text>[damage]</Text>
</Label>
<Label>
<Text>[reload]</Text>
</Label>
<Label>
<Text>[slots]</Text>
</Label>
<Label>
<Text>[cost]</Text>
</Label>
</Content>
</Foreach>
<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>
<!-- Rüstung -->
<Label Styles="SmallHeaderNoTopSpacer">
<Text>"Rüstung"</Text>
</Label>
<TableLayout Styles="TableChildren">
<Columns>
<Column>
<Width>20</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>6</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>20</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>8</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>8</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>12</Width>
<Percent>true</Percent>
</Column>
</Columns>
<Content>
<Label Styles="TalentTableHeader">
<Text>"Name"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"QS"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Rüstung"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"AW"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Slots"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Preis"</Text>
</Label>
<Foreach>
<List>[data.character.items.armor]</List>
<Content>
<Label Styles="HLeft">
<Text>[name]</Text>
</Label>
<Label>
<Text>[qs]</Text>
</Label>
<Label>
<Text>[armor]</Text>
</Label>
<Label>
<Text>[evade]</Text>
</Label>
<Label>
<Text>[slots]</Text>
</Label>
<Label>
<Text>[cost]</Text>
</Label>
</Content>
</Foreach>
<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>
<!-- Schilde -->
<Label Styles="SmallHeaderNoTopSpacer">
<Text>"Schilde"</Text>
</Label>
<TableLayout Styles="TableChildren">
<Columns>
<Column>
<Width>20</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>6</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>20</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>8</Width>
<Percent>true</Percent>
</Column>
<Column>
<Width>12</Width>
<Percent>true</Percent>
</Column>
</Columns>
<Content>
<Label Styles="TalentTableHeader">
<Text>"Name"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"QS"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Parade"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Slots"</Text>
</Label>
<Label Styles="TalentTableHeader">
<Text>"Preis"</Text>
</Label>
<Foreach>
<List>[data.character.items.shield]</List>
<Content>
<Label Styles="HLeft">
<Text>[name]</Text>
</Label>
<Label>
<Text>[qs]</Text>
</Label>
<Label>
<Text>[parade]</Text>
</Label>
<Label>
<Text>[slots]</Text>
</Label>
<Label>
<Text>[cost]</Text>
</Label>
</Content>
</Foreach>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
<Label>
<Text>""</Text>
</Label>
</Content>
</TableLayout>
</Content>
</ColumnLayout>
</Body>

View File

@ -4229,6 +4229,8 @@
</Content>
</HorizontalContainer>
<!-- End Header Bar -->
<!-- Melee Weapons -->
<Header>
<Level>2</Level>
<Text>"Nahkampfwaffen"</Text>
@ -4353,6 +4355,362 @@
<Budget>[data.character.control.coins]</Budget>
<Cost>[item.cost]</Cost>
</BaseToListPicker>
<!-- Ranged Weapons -->
<Header>
<Level>2</Level>
<Text>"Fernkampfwaffen"</Text>
</Header>
<ListDisplay>
<List>[data.character.items.ranged]</List>
<Columns>
<NameValueDisplay>
<Name>"Name"</Name>
<Value>[name]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"QS"</Name>
<Value>[qs]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Kosten"</Name>
<Value>[cost]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Schaden"</Name>
<Value>[damage]</Value>
</NameValueDisplay>
</Columns>
<Budget>[data.character.control.coins]</Budget>
<Cost>[cost]</Cost>
<AllowRemove>true</AllowRemove>
<Buttons>
<Button>
<Text>"+QS"</Text>
<OnClick>
<Action>
<If>[qs] &lt; 6</If>
<Do>[data.character.control.coins] - [cost]</Do>
<Output>[data.character.control.coins]</Output>
</Action>
<Action>
<If>[qs] &lt; 6</If>
<Do>[cost] * 2</Do>
<Output>[cost]</Output>
</Action>
<Action>
<If>[qs] &lt; 6</If>
<Do>[qs] + 1</Do>
<Output>[qs]</Output>
</Action>
</OnClick>
</Button>
<Button>
<Text>"-QS"</Text>
<OnClick>
<Action>
<If>[qs] &gt; 0</If>
<Do>[cost] / 2</Do>
<Output>[cost]</Output>
</Action>
<Action>
<If>[qs] &gt; 0</If>
<Do>[data.character.control.coins] + [cost]</Do>
<Output>[data.character.control.coins]</Output>
</Action>
<Action>
<If>[qs] &gt; 0</If>
<Do>[qs] - 1</Do>
<Output>[qs]</Output>
</Action>
</OnClick>
</Button>
</Buttons>
</ListDisplay>
<BaseToListPicker>
<List>[data.character.items.ranged]</List>
<PropertyOutputs>
<PropertyOutput>
<Property>[file.name]</Property>
<Output>[name]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[item.cost]</Property>
<Output>[cost]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[ranged.damage]</Property>
<Output>[damage]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>1</Property>
<Output>[qs]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[ranged.technique]</Property>
<Output>[fighttechnique]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[ranged.reload]</Property>
<Output>[reload]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[item.slots]</Property>
<Output>[slots]</Output>
</PropertyOutput>
</PropertyOutputs>
<Columns>
<NameValueDisplay>
<Name>"Name"</Name>
<Value>[file.name]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Kosten"</Name>
<Value>[item.cost]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Schaden"</Name>
<Value>[ranged.damage]</Value>
</NameValueDisplay>
</Columns>
<Base>[base.items.Ranged]</Base>
<Budget>[data.character.control.coins]</Budget>
<Cost>[item.cost]</Cost>
</BaseToListPicker>
<!-- Armor -->
<Header>
<Level>2</Level>
<Text>"Rüstung"</Text>
</Header>
<ListDisplay>
<List>[data.character.items.armor]</List>
<Columns>
<NameValueDisplay>
<Name>"Name"</Name>
<Value>[name]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"QS"</Name>
<Value>[qs]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Kosten"</Name>
<Value>[cost]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Rüstung"</Name>
<Value>[armor]</Value>
</NameValueDisplay>
</Columns>
<Budget>[data.character.control.coins]</Budget>
<Cost>[cost]</Cost>
<AllowRemove>true</AllowRemove>
<Buttons>
<Button>
<Text>"+QS"</Text>
<OnClick>
<Action>
<If>[qs] &lt; 6</If>
<Do>[data.character.control.coins] - [cost]</Do>
<Output>[data.character.control.coins]</Output>
</Action>
<Action>
<If>[qs] &lt; 6</If>
<Do>[cost] * 2</Do>
<Output>[cost]</Output>
</Action>
<Action>
<If>[qs] &lt; 6</If>
<Do>[qs] + 1</Do>
<Output>[qs]</Output>
</Action>
</OnClick>
</Button>
<Button>
<Text>"-QS"</Text>
<OnClick>
<Action>
<If>[qs] &gt; 0</If>
<Do>[cost] / 2</Do>
<Output>[cost]</Output>
</Action>
<Action>
<If>[qs] &gt; 0</If>
<Do>[data.character.control.coins] + [cost]</Do>
<Output>[data.character.control.coins]</Output>
</Action>
<Action>
<If>[qs] &gt; 0</If>
<Do>[qs] - 1</Do>
<Output>[qs]</Output>
</Action>
</OnClick>
</Button>
</Buttons>
</ListDisplay>
<BaseToListPicker>
<List>[data.character.items.armor]</List>
<PropertyOutputs>
<PropertyOutput>
<Property>[file.name]</Property>
<Output>[name]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[item.cost]</Property>
<Output>[cost]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>1</Property>
<Output>[qs]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[armor.armor]</Property>
<Output>[armor]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[armor.evade]</Property>
<Output>[evade]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[item.slots]</Property>
<Output>[slots]</Output>
</PropertyOutput>
</PropertyOutputs>
<Columns>
<NameValueDisplay>
<Name>"Name"</Name>
<Value>[file.name]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Kosten"</Name>
<Value>[item.cost]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Rüstung"</Name>
<Value>[armor.armor]</Value>
</NameValueDisplay>
</Columns>
<Base>[base.items.Armor]</Base>
<Budget>[data.character.control.coins]</Budget>
<Cost>[item.cost]</Cost>
</BaseToListPicker>
<!-- Shields -->
<Header>
<Level>2</Level>
<Text>"Schilde"</Text>
</Header>
<ListDisplay>
<List>[data.character.items.shield]</List>
<Columns>
<NameValueDisplay>
<Name>"Name"</Name>
<Value>[name]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"QS"</Name>
<Value>[qs]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Kosten"</Name>
<Value>[cost]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Parade"</Name>
<Value>[parade]</Value>
</NameValueDisplay>
</Columns>
<Budget>[data.character.control.coins]</Budget>
<Cost>[cost]</Cost>
<AllowRemove>true</AllowRemove>
<Buttons>
<Button>
<Text>"+QS"</Text>
<OnClick>
<Action>
<If>[qs] &lt; 6</If>
<Do>[data.character.control.coins] - [cost]</Do>
<Output>[data.character.control.coins]</Output>
</Action>
<Action>
<If>[qs] &lt; 6</If>
<Do>[cost] * 2</Do>
<Output>[cost]</Output>
</Action>
<Action>
<If>[qs] &lt; 6</If>
<Do>[qs] + 1</Do>
<Output>[qs]</Output>
</Action>
</OnClick>
</Button>
<Button>
<Text>"-QS"</Text>
<OnClick>
<Action>
<If>[qs] &gt; 0</If>
<Do>[cost] / 2</Do>
<Output>[cost]</Output>
</Action>
<Action>
<If>[qs] &gt; 0</If>
<Do>[data.character.control.coins] + [cost]</Do>
<Output>[data.character.control.coins]</Output>
</Action>
<Action>
<If>[qs] &gt; 0</If>
<Do>[qs] - 1</Do>
<Output>[qs]</Output>
</Action>
</OnClick>
</Button>
</Buttons>
</ListDisplay>
<BaseToListPicker>
<List>[data.character.items.armor]</List>
<PropertyOutputs>
<PropertyOutput>
<Property>[file.name]</Property>
<Output>[name]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[item.cost]</Property>
<Output>[cost]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>1</Property>
<Output>[qs]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[shield.parade]</Property>
<Output>[parade]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[item.slots]</Property>
<Output>[slots]</Output>
</PropertyOutput>
</PropertyOutputs>
<Columns>
<NameValueDisplay>
<Name>"Name"</Name>
<Value>[file.name]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Kosten"</Name>
<Value>[item.cost]</Value>
</NameValueDisplay>
<NameValueDisplay>
<Name>"Parade"</Name>
<Value>[shield.parade]</Value>
</NameValueDisplay>
</Columns>
<Base>[base.items.Shields]</Base>
<Budget>[data.character.control.coins]</Budget>
<Cost>[item.cost]</Cost>
</BaseToListPicker>
</Content>
</Page>
<Page Name="print">