36 Commits

Author SHA1 Message Date
Sven Balzer b6b0411473 add anzahl to Gegenstaende 2025-11-09 12:44:37 +01:00
Sven Balzer bf5a3fa06b invert modifikator for talente 2025-10-24 00:39:32 +02:00
Sven Balzer f1fff6b6ba fix BE of some Talente 2025-10-18 20:11:44 +02:00
Sven Balzer 716d5b0413 add Anmerkung field to Attacke and Parade dialogs 2025-10-06 08:35:50 +02:00
Sven Balzer e320c2f9ac fix for zauber that do not take magieresistenz into account 2025-10-05 19:17:33 +02:00
Sven Balzer 80e6e1ad43 layout simplification 2025-09-23 00:18:08 +02:00
Sven Balzer 8c4dca3eed add slight color change for every other list item 2025-09-11 13:49:08 +02:00
Sven Balzer aa3a3e633d add different hover background color for list items 2025-09-11 13:24:54 +02:00
Sven Balzer e14506998f add display for Magische Sonderfertigkeiten 2025-09-11 13:16:48 +02:00
Sven Balzer e4067d46a3 Fix Singen talent in compendium 2025-09-09 13:01:27 +02:00
Sven Balzer 39c3f90240 fix broken sorting for talente 2025-09-07 08:29:44 +02:00
Sven Balzer e338b79d3a add Wunden 2025-08-04 10:05:42 +02:00
Sven Balzer 60036fc37f remove extraneous div in ActorSheet biography tab 2025-07-26 06:00:50 +02:00
Sven Balzer ae3e9a2fb9 Allow Kampftalente to be deleted from ActorSheet 2025-07-26 00:28:03 +02:00
Sven Balzer 2468c83e86 make .scroll-container persist scrolling through re-renders 2025-06-24 21:01:36 +02:00
Sven Balzer 44500ad6d7 add effects of low hp on rolls 2025-06-03 14:25:07 +02:00
Sven Balzer df484039a5 add Parierwaffen to Bewaffnungen compendium 2025-06-03 13:48:35 +02:00
Sven Balzer ade3a2858e convert most of Bewaffnungen to be in their own zon files 2025-06-03 13:31:52 +02:00
Sven Balzer 49f4eee8b7 convert all Ruestungen to be in their own zon files 2025-05-31 16:45:44 +02:00
Sven Balzer d315a9370f convert all Talente to be stored in their own zon files to allow for easier editing and inclusion in multiple folders 2025-05-31 12:50:59 +02:00
Sven Balzer 05e78b785d update to zig version 0.14.1 2025-05-30 13:01:13 +02:00
Sven Balzer 51d889d9cd add Schilde to Bewaffnung compendium 2025-05-29 17:43:11 +02:00
Sven Balzer 2d576499df do not show parade for ranged combat talents 2025-05-29 15:53:23 +02:00
Sven Balzer ac03b7e758 fix calculation of ranged combat talents attack value 2025-05-29 15:48:35 +02:00
Sven Balzer f21a5ebf06 allow spell rolls to be affeted by MR 2025-05-24 16:20:21 +02:00
Sven Balzer ae0ca2018f add simple zauber rolls 2025-05-24 15:55:41 +02:00
Sven Balzer 1cb0f89dff add text shadow to die values 2025-05-24 15:02:09 +02:00
Sven Balzer d6983cf9c7 move zauber into their own tab 2025-05-24 14:59:13 +02:00
Sven Balzer af3de8f98b rename actor sheet tabs 2025-05-24 12:55:19 +02:00
Sven Balzer d281756053 move actorsheet nav tabs to the right of the application 2025-05-24 07:50:53 +02:00
Sven Balzer 9a37858ea5 simplify nav tabs in actor sheet 2025-05-23 12:47:09 +02:00
Sven Balzer f6e150eb10 add LaengeField and use it for Bewaffnung and Character 2025-05-23 10:57:22 +02:00
Sven Balzer aaa01834a8 add very basic implementation of Zauber that just posts its beschreibung to chat 2025-05-16 08:18:30 +02:00
Sven Balzer 96851a7100 add a description field to all item types 2025-05-16 07:33:34 +02:00
Sven Balzer 3f18c11456 add allgemein tab for characters 2025-05-12 21:50:32 +02:00
Sven Balzer 78acc9def0 keep aspect ratio of images 2025-05-12 20:14:57 +02:00
365 changed files with 12068 additions and 1006 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ pub fn build(b: *std.Build) void {
const compendium_creator = b.addExecutable(.{ const compendium_creator = b.addExecutable(.{
.name = "compendium_creator", .name = "compendium_creator",
.root_source_file = b.path("zig/compendium_creator.zig"), .root_source_file = b.path("zig/compendium_creator.zig"),
.target = b.host, .target = b.standardTargetOptions (.{}),
.optimize = .Debug, .optimize = .Debug,
}); });
compendium_creator.root_module.addImport("leveldb", leveldb); compendium_creator.root_module.addImport("leveldb", leveldb);
+2 -1
View File
@@ -1,6 +1,7 @@
.{ .{
.name = "dsa-4th-edition", .name = .dsa41,
.version = "0.0.0", .version = "0.0.0",
.fingerprint = 0x70fb7b387e6df0f7,
.paths = .{ .paths = .{
"build.zig", "build.zig",
"build.zig.zon", "build.zig.zon",
+175 -21
View File
@@ -15,7 +15,18 @@
</div> </div>
{{/inline}} {{/inline}}
<div class="actor-sheet ActorSheet" data-tooltip-class="DSA41"> <div>
<nav class="tabs">
<a class="fas fa-feather {{#if (eq tabGroups.primary 'allgemein') }}active{{/if}}" data-action="tab" data-group="primary" data-tab="allgemein" data-tooltip-direction="RIGHT" data-tooltip="{{localize "DSA41.character.allgemein"}}"></a>
<a class="fas fa-cog {{#if (eq tabGroups.primary 'eigenschaften')}}active{{/if}}" data-action="tab" data-group="primary" data-tab="eigenschaften" data-tooltip-direction="RIGHT" data-tooltip="{{localize "DSA41.character.eigenschaften"}}"></a>
<a class="fas fa-list {{#if (eq tabGroups.primary 'talente') }}active{{/if}}" data-action="tab" data-group="primary" data-tab="talente" data-tooltip-direction="RIGHT" data-tooltip="{{localize "DSA41.character.talente"}}"></a>
<a class="fas fa-sack {{#if (eq tabGroups.primary 'inventar') }}active{{/if}}" data-action="tab" data-group="primary" data-tab="inventar" data-tooltip-direction="RIGHT" data-tooltip="{{localize "DSA41.character.inventar"}}"></a>
<a class="fas fa-swords {{#if (eq tabGroups.primary 'kampf') }}active{{/if}}" data-action="tab" data-group="primary" data-tab="kampf" data-tooltip-direction="RIGHT" data-tooltip="{{localize "DSA41.character.kampf"}}"></a>
<a class="fas fa-bolt {{#if (eq tabGroups.primary 'zauber') }}active{{/if}}" data-action="tab" data-group="primary" data-tab="zauber" data-tooltip-direction="RIGHT" data-tooltip="{{localize "DSA41.character.zauber"}}"></a>
</nav>
<div class="scroll-container">
<div class="actor-sheet ActorSheet" data-tooltip-class="DSA41">
<div class="grid5 gap"> <div class="grid5 gap">
{{DSA41_input "name" subtitle="DSA41.name"}} {{DSA41_input "name" subtitle="DSA41.name"}}
{{DSA41_input "system.race" subtitle="DSA41.race"}} {{DSA41_input "system.race" subtitle="DSA41.race"}}
@@ -44,25 +55,50 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<nav class="tabs"> <div class="tab {{#if (eq tabGroups.primary 'allgemein')}}active{{/if}}" data-group="primary" data-tab="allgemein">
<div class="row noflex {{#if (eq tabGroups.primary 'tab1')}}active{{/if}}" data-group="primary" data-tab="tab1"> <div class="grid4 gap align-center">
<a data-group="primary" data-tab="tab1" data-action="tab">{{localize "DSA41.character.eigenschaften"}}</a> <span>{{localize "DSA41.allgemein.geschlecht"}}</span>
</div> {{DSA41_input "system.allgemein.geschlecht"}}
<div class="row noflex {{#if (eq tabGroups.primary 'tab2')}}active{{/if}}" data-group="primary" data-tab="tab2"> <span>{{localize "DSA41.allgemein.alter"}}</span>
<a data-group="primary" data-tab="tab2" data-action="tab">{{localize "DSA41.character.talente"}}</a> {{DSA41_input "system.allgemein.alter"}}
</div>
<div class="row noflex {{#if (eq tabGroups.primary 'tab3')}}active{{/if}}" data-group="primary" data-tab="tab3">
<a data-group="primary" data-tab="tab3" data-action="tab">{{localize "DSA41.character.inventar"}}</a>
</div>
<div class="row noflex {{#if (eq tabGroups.primary 'tab4')}}active{{/if}}" data-group="primary" data-tab="tab4">
<a data-group="primary" data-tab="tab4" data-action="tab">{{localize "DSA41.character.kampf"}}</a>
</div>
</nav>
<div class="tab {{#if (eq tabGroups.primary 'tab1')}}active{{/if}}" data-group="primary" data-tab="tab1"> <span>{{localize "DSA41.allgemein.groesse"}}</span>
{{DSA41_input "system.allgemein.groesse"}}
<span>{{localize "DSA41.allgemein.gewicht"}}</span>
{{DSA41_input "system.allgemein.gewicht"}}
<span>{{localize "DSA41.allgemein.haarfarbe"}}</span>
{{DSA41_input "system.allgemein.haarfarbe"}}
<span>{{localize "DSA41.allgemein.augenfarbe"}}</span>
{{DSA41_input "system.allgemein.augenfarbe"}}
<span>{{localize "DSA41.allgemein.stand"}}</span>
{{DSA41_input "system.allgemein.stand"}}
<span>{{localize "DSA41.allgemein.titel"}}</span>
{{DSA41_input "system.allgemein.titel"}}
</div>
<div class="grid2 gap">
<div>
<div class="center">{{localize "DSA41.allgemein.aussehen"}}</div>
{{DSA41_input "system.allgemein.aussehen" elementType="prose-mirror"}}
</div>
<div>
<div class="center">{{localize "DSA41.allgemein.hintergrund"}}</div>
{{DSA41_input "system.allgemein.hintergrund" elementType="prose-mirror"}}
</div>
</div>
<div>
<div class="center">{{localize "DSA41.allgemein.biografie"}}</div>
{{DSA41_input "system.allgemein.biografie" elementType="prose-mirror"}}
</div>
</div>
<div class="tab {{#if (eq tabGroups.primary 'eigenschaften')}}active{{/if}}" data-group="primary" data-tab="eigenschaften">
<div class="Abenteuerpunkte"> <div class="Abenteuerpunkte">
<span>{{localize "DSA41.abenteuerpunkte"}}:</span> <span>{{localize "DSA41.abenteuerpunkte"}}:</span>
{{DSA41_input "system.abenteuerpunkte.ausgegeben"}} / {{DSA41_input "system.abenteuerpunkte.gesamt"}} {{DSA41_input "system.abenteuerpunkte.ausgegeben"}} / {{DSA41_input "system.abenteuerpunkte.gesamt"}}
@@ -248,7 +284,7 @@
</div> </div>
</div> </div>
<div class="tab {{#if (eq tabGroups.primary 'tab2')}}active{{/if}}" data-group="primary" data-tab="tab2"> <div class="tab {{#if (eq tabGroups.primary 'talente')}}active{{/if}}" data-group="primary" data-tab="talente">
{{#each actor.system.talente}} {{#each actor.system.talente}}
<div class="list subgrid-columns"> <div class="list subgrid-columns">
<div class="list-header"> <div class="list-header">
@@ -287,15 +323,24 @@
<div data-action="item-open">{{maybeLocalize name prefix="DSA41.talente.kampf.name."}}</div> <div data-action="item-open">{{maybeLocalize name prefix="DSA41.talente.kampf.name."}}</div>
<div>{{>editable-input type="number" name=(concat name "system.talentwert") data-name="system.talentwert" value=system.talentwert}}</div> <div>{{>editable-input type="number" name=(concat name "system.talentwert") data-name="system.talentwert" value=system.talentwert}}</div>
<div>{{>editable-input type="number" name=(concat name "system.attacke") data-name="system.attacke" value=system.attacke}}</div> <div>{{>editable-input type="number" name=(concat name "system.attacke") data-name="system.attacke" value=system.attacke}}</div>
{{#if (ne system.kategorie "fernkampf")}}
<div>{{>editable-input type="number" name=(concat name "system.parade") data-name="system.parade" value=system.parade}}</div> <div>{{>editable-input type="number" name=(concat name "system.parade") data-name="system.parade" value=system.parade}}</div>
{{else}}
<div></div>
{{/if}}
<div class="center">{{lookup (lookup @root.actor.system.computed.kampf.talente name) "attacke"}}</div> <div class="center">{{lookup (lookup @root.actor.system.computed.kampf.talente name) "attacke"}}</div>
{{#if (ne system.kategorie "fernkampf")}}
<div class="center">{{lookup (lookup @root.actor.system.computed.kampf.talente name) "parade"}}</div> <div class="center">{{lookup (lookup @root.actor.system.computed.kampf.talente name) "parade"}}</div>
{{else}}
<div></div>
{{/if}}
<div class="center fas fa-trash" data-action="item-delete"></div>
</div> </div>
{{/each}} {{/each}}
</div> </div>
</div> </div>
<div class="tab {{#if (eq tabGroups.primary 'tab3')}}active{{/if}}" data-group="primary" data-tab="tab3"> <div class="tab {{#if (eq tabGroups.primary 'inventar')}}active{{/if}}" data-group="primary" data-tab="inventar">
<div class="currency"> <div class="currency">
{{DSA41_input "system.currency.dukaten"}} {{DSA41_input "system.currency.dukaten"}}
<svg viewbox="80 0 40 40" data-tooltip="{{localize "DSA41.currency.dukaten"}}"> <use href="/systems/dsa-4th-edition/src/Assets/coins.svg#Gold"> </use></svg> <svg viewbox="80 0 40 40" data-tooltip="{{localize "DSA41.currency.dukaten"}}"> <use href="/systems/dsa-4th-edition/src/Assets/coins.svg#Gold"> </use></svg>
@@ -312,6 +357,7 @@
<div>{{localize "DSA41.inventar.bewaffnung"}}</div> <div>{{localize "DSA41.inventar.bewaffnung"}}</div>
<div></div> <div></div>
<div></div> <div></div>
<div></div>
<div class="center">{{localize "DSA41.weight.label"}}</div> <div class="center">{{localize "DSA41.weight.label"}}</div>
<div></div> <div></div>
</div> </div>
@@ -335,6 +381,7 @@
</div> </div>
</div> </div>
<div></div> <div></div>
<div></div>
<div class="center fas fa-sword" data-action="toggle_equipped" data-equipped="{{system.angelegt}}"></div> <div class="center fas fa-sword" data-action="toggle_equipped" data-equipped="{{system.angelegt}}"></div>
<div class="center">{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}</div> <div class="center">{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}</div>
<div class="center fas fa-trash" data-action="item-delete"></div> <div class="center fas fa-trash" data-action="item-delete"></div>
@@ -347,7 +394,9 @@
<div class="row">{{localize "DSA41.inventar.ruestungen"}}</div> <div class="row">{{localize "DSA41.inventar.ruestungen"}}</div>
<div></div> <div></div>
<div></div> <div></div>
<div></div>
<div class="center">{{localize "DSA41.weight.label"}}</div> <div class="center">{{localize "DSA41.weight.label"}}</div>
<div></div>
</div> </div>
{{#unless (ne actor.itemTypes.Ruestung.length 0)}} {{#unless (ne actor.itemTypes.Ruestung.length 0)}}
@@ -361,6 +410,7 @@
<span class="center">{{this.name}}</span> <span class="center">{{this.name}}</span>
</div> </div>
<div></div> <div></div>
<div></div>
<div class="center fas fa-shield-halved" data-action="toggle_equipped" data-equipped="{{system.angelegt}}"></div> <div class="center fas fa-shield-halved" data-action="toggle_equipped" data-equipped="{{system.angelegt}}"></div>
<div class="center">{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}</div> <div class="center">{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}</div>
<div class="center fas fa-trash" data-action="item-delete"></div> <div class="center fas fa-trash" data-action="item-delete"></div>
@@ -372,8 +422,10 @@
<div class="list-header"> <div class="list-header">
<div>{{localize "DSA41.inventar.gegenstaende"}}</div> <div>{{localize "DSA41.inventar.gegenstaende"}}</div>
<div></div> <div></div>
<div class="center">{{localize "DSA41.inventar.anzahl"}}</div>
<div></div> <div></div>
<div class="center">{{localize "DSA41.weight.label"}}</div> <div class="center">{{localize "DSA41.weight.label"}}</div>
<div></div>
</div> </div>
{{#unless (ne actor.itemTypes.Gegenstand.length 0)}} {{#unless (ne actor.itemTypes.Gegenstand.length 0)}}
@@ -387,15 +439,56 @@
<span class="center">{{this.name}}</span> <span class="center">{{this.name}}</span>
</div> </div>
<div></div> <div></div>
<div class="center anzahl">{{>editable-input type="number" size=(string-length system.anzahl) data-name="system.anzahl" value=system.anzahl}}</div>
<div></div> <div></div>
<div class="center">{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}</div> <div class="center">{{mul this.system.gewicht.value this.system.anzahl}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}</div>
<div class="center fas fa-trash" data-action="item-delete"></div> <div class="center fas fa-trash" data-action="item-delete"></div>
</div> </div>
{{/each}} {{/each}}
</div> </div>
</div> </div>
<div class="tab Kampf {{#if (eq tabGroups.primary 'tab4')}}active{{/if}}" data-group="primary" data-tab="tab4"> <div class="tab Kampf {{#if (eq tabGroups.primary 'kampf')}}active{{/if}}" data-group="primary" data-tab="kampf">
<div class="list Wunden">
<div class="list-header">
<div>{{localize "DSA41.kampf.wunden.label"}}</div>
</div>
{{#*inline "wunden"}}
<div class="center" data-location="{{location}}">
<img class="wunde{{#if (gte (lookup @root.actor.system.wunden location) 1)}} active{{/if}}" data-action="toggle-wound">
<img class="wunde{{#if (gte (lookup @root.actor.system.wunden location) 2)}} active{{/if}}" data-action="toggle-wound">
<img class="wunde{{#if (gte (lookup @root.actor.system.wunden location) 3)}} active{{/if}}" data-action="toggle-wound">
</div>
{{/inline}}
<div class="list-item">
<div>{{localize "DSA41.kampf.wunden.kopf"}}</div>
{{>wunden location="kopf"}}
<div>{{localize "DSA41.kampf.wunden.brust"}}</div>
{{>wunden location="brust"}}
</div>
<div class="list-item">
<div>{{localize "DSA41.kampf.wunden.bauch"}}</div>
{{>wunden location="bauch"}}
</div>
<div class="list-item">
<div>{{localize "DSA41.kampf.wunden.linker_arm"}}</div>
{{>wunden location="linker_arm"}}
<div>{{localize "DSA41.kampf.wunden.rechter_arm"}}</div>
{{>wunden location="rechter_arm"}}
</div>
<div class="list-item">
<div>{{localize "DSA41.kampf.wunden.linkes_bein"}}</div>
{{>wunden location="linkes_bein"}}
<div>{{localize "DSA41.kampf.wunden.rechtes_bein"}}</div>
{{>wunden location="rechtes_bein"}}
</div>
</div>
<div class="list Bewaffnung"> <div class="list Bewaffnung">
<div class="list-header "> <div class="list-header ">
<div>{{localize "DSA41.kampf.bewaffnung"}}</div> <div>{{localize "DSA41.kampf.bewaffnung"}}</div>
@@ -516,4 +609,65 @@
{{/each}} {{/each}}
</div> </div>
</div> </div>
<div class="tab Zauber {{#if (eq tabGroups.primary 'zauber')}}active{{/if}}" data-group="primary" data-tab="zauber">
<div class="list Zauber subgrid-columns">
<div class="list-header ">
<div>{{localize "DSA41.kampf.zauber"}}</div>
<div></div>
<div class="center">Eigenschaften</div>
<div></div>
<div class="center">{{localize "DSA41.zauber.label_zauberfertigkeitswert"}}</div>
<div></div>
</div>
{{#unless (ne actor.itemTypes.Zauber.length 0)}}
<div class="list-item">{{localize "DSA41.list_empty"}}</div>
{{/unless}}
{{#each actor.itemTypes.Zauber}}
<div class="list-item" data-item-id="{{_id}}">
<div class="row" data-action="item-open" data-tooltip-direction="LEFT" data-tooltip="{{system.beschreibung}}">
<img class="item-image" src="{{img}}" title="{{name}}">
<div class="col">
<span>{{name}}</span>
</div>
</div>
<div></div>
<div class="center" data-action="roll" data-roll-type="zauber">
{{>die-type type=system.attribute1}}
{{>die-type type=system.attribute2}}
{{>die-type type=system.attribute3}}
</div>
<div></div>
<div>{{>editable-input type="number" data-name="system.zauberfertigkeitswert" value=system.zauberfertigkeitswert}}</div>
<div class="center fas fa-trash" data-action="item-delete"></div>
</div>
{{/each}}
</div>
<div class="list Sonderfertigkeiten">
<div class="list-header">
<div>{{localize (concat "DSA41.sonderfertigkeiten.label_magisch")}}</div>
</div>
{{#unless (ne actor.system.computed.num_magische_sonderfertigkeiten 0)}}
<div class="list-item">{{localize "DSA41.list_empty"}}</div>
{{/unless}}
{{#each actor.itemTypes.Sonderfertigkeit}}
{{#if (eq this.system.kategorie "magisch")}}
<div class="list-item" data-item-id="{{_id}}">
<div>
<div class="fit-content" data-action="item-open" data-tooltip="{{this.system.beschreibung}}">{{maybeLocalize name prefix=(concat "DSA41.sonderfertigkeiten." system.kategorie ".name")}}</div>
</div>
<div></div>
<div class="center fas fa-trash" data-action="item-delete"></div>
</div>
{{/if}}
{{/each}}
</div>
</div>
</div>
</div>
</div> </div>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="64" height="64" version="1.1" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg">
<g id="plus">
<rect style="fill:#a59481" id="rect1" width="62" height="8" x="1" y="28" />
<rect style="fill:#a59481" id="rect2" width="8" height="62" x="28" y="1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 328 B

+39
View File
@@ -0,0 +1,39 @@
<div class="zauber_chat_message">
<h3>{{zauber.name}} ({{localize (concat "DSA41.chat.zauberfertigkeitswert_short")}}: {{zauber.system.zauberfertigkeitswert}}{{#if (ne modifikator 0)}} + {{modifikator}}{{/if}}{{#if (ne magieresistenz 0)}} + {{magieresistenz}}{{/if}})</h3>
<div class="info">
<div>
<div>{{localize (concat "DSA41.chat.attribute")}}</div>
<div>{{localize (concat "DSA41.chat.value")}}</div>
<div>{{localize (concat "DSA41.chat.roll")}}</div>
<div>{{localize (concat "DSA41.chat.zauberfertigkeitswert_short")}}</div>
</div>
<div>
<div>{{localize (concat "DSA41.attributes.long." attribute1.type)}}</div>
<div>{{attribute1.value}}</div>
<div>{{roll1}}</div>
<div>{{needed_zfw_roll1}}</div>
</div>
<div>
<div>{{localize (concat "DSA41.attributes.long." attribute2.type)}}</div>
<div>{{attribute2.value}}</div>
<div>{{roll2}}</div>
<div>{{needed_zfw_roll2}}</div>
</div>
<div>
<div>{{localize (concat "DSA41.attributes.long." attribute3.type)}}</div>
<div>{{attribute3.value}}</div>
<div>{{roll3}}</div>
<div>{{needed_zfw_roll3}}</div>
</div>
</div>
<div>
{{localize (concat "DSA41.chat.result")}}:
{{#if (lt leftover_zfw 0)}}
<b>{{localize (concat "DSA41.chat.failure")}}</b>
{{else}}
<b>{{localize (concat "DSA41.chat.success")}}</b>
{{/if}}
({{localize (concat "DSA41.chat.zauberfertigkeitswert_short")}}: {{leftover_zfw}})
</div>
</div>
+3
View File
@@ -2,6 +2,9 @@
<span class="colspan2">{{localize "DSA41.kampf.modifikator"}}</span> <span class="colspan2">{{localize "DSA41.kampf.modifikator"}}</span>
<input class="colspan2" type="number" name="modifikator" value="{{lookup formData "modifikator"}}"> <input class="colspan2" type="number" name="modifikator" value="{{lookup formData "modifikator"}}">
<span class="colspan2">{{localize "DSA41.kampf.anmerkung"}}</span>
<input class="colspan2" type="text" name="anmerkung" value="{{lookup formData "anmerkung"}}">
<div class="dsa41-calculation colspan4 center"> <div class="dsa41-calculation colspan4 center">
<ruby>{{options.item.basis_attacke}}<rt>{{localize "DSA41.bewaffnung.nahkampfwaffe.basis"}}</rt></ruby> <ruby>{{options.item.basis_attacke}}<rt>{{localize "DSA41.bewaffnung.nahkampfwaffe.basis"}}</rt></ruby>
+3
View File
@@ -5,6 +5,9 @@
<span>{{localize "DSA41.kampf.crit"}}</span> <span>{{localize "DSA41.kampf.crit"}}</span>
<input class="center" type="checkbox" name="crit" {{checked (lookup formData "crit")}}> <input class="center" type="checkbox" name="crit" {{checked (lookup formData "crit")}}>
<span>{{localize "DSA41.kampf.anmerkung"}}</span>
<input type="text" name="anmerkung" value="{{lookup formData "anmerkung"}}">
<div class="dsa41-calculation colspan4 center"> <div class="dsa41-calculation colspan4 center">
{{#if formData.crit}}({{/if}} {{#if formData.crit}}({{/if}}
<ruby>{{options.item.basis_parade}}<rt>{{localize "DSA41.bewaffnung.nahkampfwaffe.basis"}}</rt></ruby> <ruby>{{options.item.basis_parade}}<rt>{{localize "DSA41.bewaffnung.nahkampfwaffe.basis"}}</rt></ruby>
+9
View File
@@ -0,0 +1,9 @@
<div>
<span class="colspan2">{{localize "DSA41.kampf.modifikator"}}</span>
<input class="colspan2" type="number" name="modifikator" value="{{lookup formData "modifikator"}}">
{{#if options.item.system.magieresistenz}}
<span class="colspan2">{{localize "DSA41.zauber.label_magieresistenz"}}</span>
<input class="colspan2" type="number" name="magieresistenz" value="{{lookup formData "magieresistenz"}}">
{{/if}}
</div>
+1 -1
View File
@@ -2,7 +2,7 @@
{{#if (eq type "checkbox")}} {{#if (eq type "checkbox")}}
<input type="checkbox" name="{{name}}" {{#if data-name}}data-name="{{data-name}}"{{/if}} {{checked value}}> <input type="checkbox" name="{{name}}" {{#if data-name}}data-name="{{data-name}}"{{/if}} {{checked value}}>
{{else}} {{else}}
<input type="{{type}}" name="{{name}}" {{#if data-name}}data-name="{{data-name}}"{{/if}} value="{{value}}" placeholder="{{placeholder}}"> <input type="{{type}}" name="{{name}}" {{#if data-name}}data-name="{{data-name}}"{{/if}} {{#if size}}size="{{size}}"{{/if}} value="{{value}}" placeholder="{{placeholder}}">
{{/if}} {{/if}}
{{#if placeholder}} {{#if placeholder}}
+21 -17
View File
@@ -1,4 +1,4 @@
<div class="Bewaffnung {{ cssClass }}"> <div>
<div class="row"> <div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img"> <img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col"> <div class="col">
@@ -28,6 +28,7 @@
</div> </div>
</nav> </nav>
<div>
<div class="tab {{#if (eq tabGroups.primary 'tab1')}}active{{/if}}" data-group="primary" data-tab="tab1"> <div class="tab {{#if (eq tabGroups.primary 'tab1')}}active{{/if}}" data-group="primary" data-tab="tab1">
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.trefferpunkte"}}</span> <span>{{localize "DSA41.bewaffnung.nahkampfwaffe.trefferpunkte"}}</span>
<div class="grid3 center"> <div class="grid3 center">
@@ -42,33 +43,33 @@
</div> </div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.initiative"}}</span> <span>{{localize "DSA41.bewaffnung.nahkampfwaffe.initiative"}}</span>
<div>{{DSA41_input "system.nahkampfwaffe.initiative"}}</div> {{DSA41_input "system.nahkampfwaffe.initiative"}}
<span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span> <span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span>
<div>{{DSA41_input "system.nahkampfwaffe.bruchfaktor"}}</div> {{DSA41_input "system.nahkampfwaffe.bruchfaktor"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.distanzklasse"}}</span> <span>{{localize "DSA41.bewaffnung.nahkampfwaffe.distanzklasse"}}</span>
<div>{{DSA41_input "system.nahkampfwaffe.distanzklasse"}}</div> {{DSA41_input "system.nahkampfwaffe.distanzklasse"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.kampftalente"}}</span> <span>{{localize "DSA41.bewaffnung.nahkampfwaffe.kampftalente"}}</span>
<div>{{DSA41_input "system.nahkampfwaffe.kampftalente"}}</div> {{DSA41_input "system.nahkampfwaffe.kampftalente"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.laenge"}}</span> <span>{{localize "DSA41.bewaffnung.nahkampfwaffe.laenge"}}</span>
<div>{{DSA41_input "system.nahkampfwaffe.laenge"}}</div> {{DSA41_input "system.nahkampfwaffe.laenge"}}
<div class="colspan2"></div> <div class="colspan2"></div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.zweihaendig"}}</span> <span>{{localize "DSA41.bewaffnung.nahkampfwaffe.zweihaendig"}}</span>
<div>{{DSA41_input "system.nahkampfwaffe.zweihaendig"}}</div> {{DSA41_input "system.nahkampfwaffe.zweihaendig"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.werfbar"}}</span> <span>{{localize "DSA41.bewaffnung.nahkampfwaffe.werfbar"}}</span>
<div>{{DSA41_input "system.nahkampfwaffe.werfbar"}}</div> {{DSA41_input "system.nahkampfwaffe.werfbar"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.improvisiert"}}</span> <span>{{localize "DSA41.bewaffnung.nahkampfwaffe.improvisiert"}}</span>
<div>{{DSA41_input "system.nahkampfwaffe.improvisiert"}}</div> {{DSA41_input "system.nahkampfwaffe.improvisiert"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.priviligiert"}}</span> <span>{{localize "DSA41.bewaffnung.nahkampfwaffe.priviligiert"}}</span>
<div>{{DSA41_input "system.nahkampfwaffe.priviligiert"}}</div> {{DSA41_input "system.nahkampfwaffe.priviligiert"}}
</div> </div>
<div class="tab {{#if (eq tabGroups.primary 'tab2')}}active{{/if}}" data-group="primary" data-tab="tab2"> <div class="tab {{#if (eq tabGroups.primary 'tab2')}}active{{/if}}" data-group="primary" data-tab="tab2">
<span>{{localize "DSA41.bewaffnung.parierwaffe.initiative"}}</span> <span>{{localize "DSA41.bewaffnung.parierwaffe.initiative"}}</span>
<div>{{DSA41_input "system.parierwaffe.initiative"}}</div> {{DSA41_input "system.parierwaffe.initiative"}}
<span>{{localize "DSA41.bewaffnung.parierwaffe.modifikator"}}</span> <span>{{localize "DSA41.bewaffnung.parierwaffe.modifikator"}}</span>
<div class="grid2"> <div class="grid2">
{{DSA41_input "system.parierwaffe.modifikator_attacke" subtitle="DSA41.bewaffnung.parierwaffe.attacke"}} {{DSA41_input "system.parierwaffe.modifikator_attacke" subtitle="DSA41.bewaffnung.parierwaffe.attacke"}}
@@ -76,7 +77,7 @@
</div> </div>
<span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span> <span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span>
<div>{{DSA41_input "system.parierwaffe.bruchfaktor"}}</div> {{DSA41_input "system.parierwaffe.bruchfaktor"}}
</div> </div>
<div class="tab {{#if (eq tabGroups.primary 'tab3')}}active{{/if}}" data-group="primary" data-tab="tab3"> <div class="tab {{#if (eq tabGroups.primary 'tab3')}}active{{/if}}" data-group="primary" data-tab="tab3">
@@ -89,21 +90,21 @@
</div> </div>
<span>{{localize "DSA41.bewaffnung.schild.initiative"}}</span> <span>{{localize "DSA41.bewaffnung.schild.initiative"}}</span>
<div>{{DSA41_input "system.schild.initiative"}}</div> {{DSA41_input "system.schild.initiative"}}
<span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span> <span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span>
<div>{{DSA41_input "system.schild.bruchfaktor"}}</div> {{DSA41_input "system.schild.bruchfaktor"}}
</div> </div>
<div class="tab {{#if (eq tabGroups.primary 'tab4')}}active{{/if}}" data-group="primary" data-tab="tab4"> <div class="tab {{#if (eq tabGroups.primary 'tab4')}}active{{/if}}" data-group="primary" data-tab="tab4">
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.trefferpunkte"}}</span> <span>{{localize "DSA41.bewaffnung.fernkampfwaffe.trefferpunkte"}}</span>
<div class="center">{{DSA41_input "system.fernkampfwaffe.basis"}}</div> <div class="center">{{DSA41_input "system.fernkampfwaffe.basis"}}</div>
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.laden"}}</span> <span>{{localize "DSA41.bewaffnung.fernkampfwaffe.laden"}}</span>
<div>{{DSA41_input "system.fernkampfwaffe.laden"}}</div> {{DSA41_input "system.fernkampfwaffe.laden"}}
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.munitionskosten"}}</span> <span>{{localize "DSA41.bewaffnung.fernkampfwaffe.munitionskosten"}}</span>
<div>{{DSA41_input "system.fernkampfwaffe.munitionskosten"}}</div> {{DSA41_input "system.fernkampfwaffe.munitionskosten"}}
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.munitionsgewicht"}}</span> <span>{{localize "DSA41.bewaffnung.fernkampfwaffe.munitionsgewicht"}}</span>
<div>{{DSA41_input "system.fernkampfwaffe.munitionsgewicht"}}</div> {{DSA41_input "system.fernkampfwaffe.munitionsgewicht"}}
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.reichweiten"}}</span> <span>{{localize "DSA41.bewaffnung.fernkampfwaffe.reichweiten"}}</span>
<div class="colspan3 grid5"> <div class="colspan3 grid5">
@@ -123,4 +124,7 @@
{{DSA41_input "system.fernkampfwaffe.modifikator5"}} {{DSA41_input "system.fernkampfwaffe.modifikator5"}}
</div> </div>
</div> </div>
{{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
</div>
</div> </div>
+2 -1
View File
@@ -1,4 +1,4 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off"> <div>
<div class="row"> <div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img"> <img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col"> <div class="col">
@@ -9,4 +9,5 @@
</div> </div>
</div> </div>
</div> </div>
{{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
</div> </div>
+2 -5
View File
@@ -1,4 +1,4 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off"> <div>
<div class="row"> <div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img"> <img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col"> <div class="col">
@@ -12,8 +12,5 @@
</div> </div>
</div> </div>
</div> </div>
<div> {{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
<prose-mirror name="system.beschreibung" value="{{item.system.beschreibung}}" compact="true">
</prose-mirror>
</div>
</div> </div>
+13 -11
View File
@@ -1,4 +1,4 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off"> <div>
<div class="row"> <div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img"> <img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col"> <div class="col">
@@ -12,28 +12,30 @@
<div class="tab active"> <div class="tab active">
<span>{{localize "DSA41.ruestungen.kopf"}}</span> <span>{{localize "DSA41.ruestungen.kopf"}}</span>
<div>{{DSA41_input "system.kopf"}}</div> {{DSA41_input "system.kopf"}}
<span>{{localize "DSA41.ruestungen.brust"}}</span> <span>{{localize "DSA41.ruestungen.brust"}}</span>
<div>{{DSA41_input "system.brust"}}</div> {{DSA41_input "system.brust"}}
<span>{{localize "DSA41.ruestungen.ruecken"}}</span> <span>{{localize "DSA41.ruestungen.ruecken"}}</span>
<div>{{DSA41_input "system.ruecken"}}</div> {{DSA41_input "system.ruecken"}}
<span>{{localize "DSA41.ruestungen.bauch"}}</span> <span>{{localize "DSA41.ruestungen.bauch"}}</span>
<div>{{DSA41_input "system.bauch"}}</div> {{DSA41_input "system.bauch"}}
<span>{{localize "DSA41.ruestungen.linker_arm"}}</span> <span>{{localize "DSA41.ruestungen.linker_arm"}}</span>
<div>{{DSA41_input "system.linker_arm"}}</div> {{DSA41_input "system.linker_arm"}}
<span>{{localize "DSA41.ruestungen.rechter_arm"}}</span> <span>{{localize "DSA41.ruestungen.rechter_arm"}}</span>
<div>{{DSA41_input "system.rechter_arm"}}</div> {{DSA41_input "system.rechter_arm"}}
<span>{{localize "DSA41.ruestungen.linkes_bein"}}</span> <span>{{localize "DSA41.ruestungen.linkes_bein"}}</span>
<div>{{DSA41_input "system.linkes_bein"}}</div> {{DSA41_input "system.linkes_bein"}}
<span>{{localize "DSA41.ruestungen.rechtes_bein"}}</span> <span>{{localize "DSA41.ruestungen.rechtes_bein"}}</span>
<div>{{DSA41_input "system.rechtes_bein"}}</div> {{DSA41_input "system.rechtes_bein"}}
<span>{{localize "DSA41.ruestungen.gesamt_ruestungsschutz"}}</span> <span>{{localize "DSA41.ruestungen.gesamt_ruestungsschutz"}}</span>
<div>{{DSA41_input "system.gesamt_ruestungsschutz"}}</div> {{DSA41_input "system.gesamt_ruestungsschutz"}}
<span>{{localize "DSA41.ruestungen.gesamt_behinderung"}}</span> <span>{{localize "DSA41.ruestungen.gesamt_behinderung"}}</span>
<div>{{DSA41_input "system.gesamt_behinderung"}}</div> {{DSA41_input "system.gesamt_behinderung"}}
{{DSA41_input "system.beschreibung" elementType="prose-mirror" classes="colspan-all"}}
</div> </div>
</div> </div>
+2 -6
View File
@@ -1,4 +1,4 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off"> <div>
<div class="row"> <div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img"> <img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col"> <div class="col">
@@ -12,9 +12,5 @@
</div> </div>
</div> </div>
</div> </div>
<div> {{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
<prose-mirror name="system.beschreibung" value="{{item.system.beschreibung}}" compact="true">
</prose-mirror>
</div>
</div> </div>
+2 -1
View File
@@ -1,4 +1,4 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off"> <div>
<div class="row"> <div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img"> <img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col"> <div class="col">
@@ -14,4 +14,5 @@
</div> </div>
</div> </div>
</div> </div>
{{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
</div> </div>
+2 -5
View File
@@ -1,4 +1,4 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off"> <div>
<div class="row"> <div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img"> <img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col"> <div class="col">
@@ -11,8 +11,5 @@
</div> </div>
</div> </div>
</div> </div>
<div> {{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
<prose-mirror name="system.beschreibung" value="{{item.system.beschreibung}}" compact="true">
</prose-mirror>
</div>
</div> </div>
+32
View File
@@ -0,0 +1,32 @@
<div>
<div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col">
<div class="grid3 gap">
{{DSA41_input "name"}}
{{DSA41_input "system.repraesentation" subtitle="DSA41.zauber.repraesentation.label"}}
{{DSA41_input "system.komplexitaet" subtitle="DSA41.zauber.label_komplexitaet"}}
</div>
<div class="grid3 gap">
{{DSA41_input "system.attribute1"}}
{{DSA41_input "system.attribute2"}}
{{DSA41_input "system.attribute3"}}
</div>
</div>
</div>
<div class="tab active">
<span>{{localize "DSA41.zauber.label_zauberdauer"}}</span>
{{DSA41_input "system.zauberdauer"}}
<span>{{localize "DSA41.zauber.label_wirkungsdauer"}}</span>
{{DSA41_input "system.wirkungsdauer"}}
<span>{{localize "DSA41.zauber.merkmale.label"}}</span>
{{DSA41_input "system.merkmale"}}
<span>{{localize "DSA41.zauber.label_magieresistenz"}}</span>
{{DSA41_input "system.magieresistenz"}}
</div>
{{DSA41_input "system.beschreibung" elementType="prose-mirror" classes="colspan-all"}}
</div>
+129 -3
View File
@@ -11,7 +11,8 @@
"Talent": "Talent", "Talent": "Talent",
"Kampftalent": "Kampftalent", "Kampftalent": "Kampftalent",
"Sonderfertigkeit": "Sonderfertigkeit", "Sonderfertigkeit": "Sonderfertigkeit",
"VorNachteil": "Vor-/Nachteil" "VorNachteil": "Vor-/Nachteil",
"Zauber": "Zauber"
} }
}, },
@@ -45,6 +46,18 @@
"quader": "Quader" "quader": "Quader"
}, },
"laenge": {
"halbfinger": "Halbfinger",
"finger": "Finger",
"spann": "Spann",
"schritt": "Schritt",
"faden": "Faden",
"lot": "Lot",
"meile": "Meile",
"tagesreise": "Tagesreise",
"baryd": "Baryd"
},
"steigerungskategorie": { "steigerungskategorie": {
"A_Star": "A*", "A_Star": "A*",
"A": "A", "A": "A",
@@ -67,6 +80,7 @@
"roll": "Wurf", "roll": "Wurf",
"talentwert_short": "TaW", "talentwert_short": "TaW",
"zauberfertigkeitswert_short": "ZfW",
"targets": "Ziele", "targets": "Ziele",
"trefferpunkte_apply": "Zuweisen" "trefferpunkte_apply": "Zuweisen"
@@ -134,6 +148,7 @@
"strength": "Körperkraft", "strength": "Körperkraft",
"talent": "Talent", "talent": "Talent",
"zauber": "Zauber",
"attacke": "Attacke", "attacke": "Attacke",
"parade": "Parade", "parade": "Parade",
@@ -147,7 +162,24 @@
"eigenschaften": "Eigenschaften", "eigenschaften": "Eigenschaften",
"talente": "Talente", "talente": "Talente",
"inventar": "Inventar", "inventar": "Inventar",
"kampf": "Kampf" "kampf": "Kampf",
"allgemein": "Allgemein",
"zauber": "Zauber"
},
"allgemein": {
"geschlecht": "Geschlecht",
"alter": "Alter",
"groesse": "Größe",
"gewicht": "Gewicht",
"haarfarbe": "Haarfarbe",
"augenfarbe": "Augenfarbe",
"stand": "Stand",
"titel": "Titel",
"aussehen": "Aussehen",
"hintergrund": "Familie/Herkunft/Hintergrund",
"biografie": "Biografie"
}, },
"attributes": { "attributes": {
@@ -447,7 +479,8 @@
"inventar": { "inventar": {
"bewaffnung": "Bewaffnung", "bewaffnung": "Bewaffnung",
"ruestungen": "Rüstungen", "ruestungen": "Rüstungen",
"gegenstaende": "Gegenstände" "gegenstaende": "Gegenstände",
"anzahl": "Anzahl"
}, },
"kampf": { "kampf": {
@@ -458,6 +491,8 @@
"ruestungen": "Rüstungen", "ruestungen": "Rüstungen",
"modifikator": "Modifikator", "modifikator": "Modifikator",
"crit": "Glückliche Attacke", "crit": "Glückliche Attacke",
"zauber": "Zauber",
"anmerkung": "Anmerkung",
"zielgroesse": { "zielgroesse": {
"label": "Zielgröße", "label": "Zielgröße",
@@ -504,6 +539,97 @@
"still": "Still", "still": "Still",
"seitenwind": "Böiger Seitenwind", "seitenwind": "Böiger Seitenwind",
"starker_seitenwind": "Starker Seitenwind" "starker_seitenwind": "Starker Seitenwind"
},
"wunden": {
"label": "Wunden",
"kopf": "Kopf",
"brust": "Brust",
"bauch": "Bauch",
"linker_arm": "Linker Arm",
"rechter_arm": "Rechter Arm",
"linkes_bein": "Linkes Bein",
"rechtes_bein": "Rechtes Bein"
}
},
"zauber": {
"label_komplexitaet": "Komplexität",
"label_zauberdauer": "Zauberdauer",
"label_wirkungsdauer": "Wirkungsdauer",
"label_zauberfertigkeitswert": "Zauberfertigkeitswert",
"label_magieresistenz": "Magieresistenz",
"merkmale": {
"label": "Merkmale",
"anitmagie": "Antimagie",
"beschwoerung": "Beschwörung",
"daemonisch_allgemein": "Dämonisch (Allgemein)",
"daemonisch_agrimoth_widharcal": "Dämonisch (Agrimoth / Widharcal)",
"daemonisch_amazeroth_iribaar": "Dämonisch (Amazeroth / Iribaar)",
"daemonisch_asfaloth_calijnaar": "Dämonisch (Asfaloth / Calijnaar)",
"daemonisch_belhalhar_xarfai": "Dämonisch (Belhalhar / Xarfai)",
"daemonisch_blakharaz_tyakraman": "Dämonisch (Blakharaz / Tyakraman)",
"daemonisch_lolgramoth_thezzphai": "Dämonisch (Lolgramoth / Thezzphai)",
"daemonisch_belzhorash_mishkara": "Dämonisch (Belzhorash / Mishkara)",
"daemonisch_thargunitoth_tijakool": "Dämonisch (Thargunitoth / Tijakool)",
"eigenschaften": "Eigenschaften",
"einfluss": "Einfluss",
"elementar_allgemein": "Elementar (Allgemein)",
"elementar_eis": "Elementar (Eis)",
"elementar_erz": "Elementar (Erz)",
"elementar_feuer": "Elementar (Feuer)",
"elementar_humus": "Elementar (Humus)",
"elementar_luft": "Elementar (Luft)",
"elementar_wasser": "Elementar (Wasser)",
"form": "Form",
"geisterwesen": "Geisterwesen",
"heilung": "Heilung",
"hellsicht": "Hellsicht",
"herbeirufung": "Herbeirufung",
"herrschaft": "Herrschaft",
"illusion": "Illusion",
"kraft": "Kraft",
"limbus": "Limbus",
"metamagie": "Metamagie",
"objekt": "Objekt",
"schaden": "Schaden",
"telekinese": "Telekinese",
"temporal": "Temporal",
"umwelt": "Umwelt",
"verständigung": "Verständigung"
},
"repraesentation": {
"label": "Repräsentation",
"borbaradianisch": "Borbaradianisch",
"druidisch": "Druidisch",
"elfisch": "Elfisch",
"geodisch": "Geodisch",
"satuarisch": "Satuarisch",
"kristallomantisch": "Kristallomantisch",
"gildenmagisch": "Gildenmagisch",
"scharlatanisch": "Scharlatanisch",
"schelmisch": "Schelmisch"
},
"modifikationen": {
"zauberdauer": "Zauberdauer",
"erzwingen": "Erzwingen",
"kosten": "Kosten",
"mehrere_ziele": "Mehrere Ziele",
"mehrere_ziele_freiwillig": "Mehrere Ziele (Freiwillig)",
"reichweite": "Reichweite",
"reichweite_beruehrung": "Reichweite (Berührung)",
"reichweite_selbst": "Reichweite (Selbst)",
"wirkungsdauer": "Wirkungsdauer",
"ziel_objekt_einzeln": "Zielobjekt (Einzeln)",
"ziel_objekt_freiwillig": "Zielobjekt (Freiwillig)",
"ziel_objekt_unfreiwillig": "Zielobjekt (Unfreiwillig)",
"ziel_objekt_mehrere": "Zielobjekt (Mehrere)"
} }
} }
} }
+187 -9
View File
@@ -8,9 +8,15 @@ html {
pointer-events: auto; pointer-events: auto;
} }
/* Allow application content to be scrolled */ /* allow tabs to be visible on the right side of the application */
&.application.ActorSheet {
overflow: visible;
}
& .window-content { & .window-content {
overflow-y: scroll; padding: 0;
overflow: visible;
height: calc(100% - var(--header-height));
} }
& [data-action] { & [data-action] {
@@ -44,6 +50,10 @@ html {
align-items: center; align-items: center;
} }
& .align-center {
align-items: center;
}
& .fit-content { & .fit-content {
width: fit-content; width: fit-content;
height: fit-content; height: fit-content;
@@ -141,6 +151,15 @@ html {
} }
} }
& .length-input {
display: grid;
grid-template-columns: minmax(min-content, 1fr) max-content;
& input {
padding: 0;
}
}
& .placeholder { & .placeholder {
font-size: 0.8em; font-size: 0.8em;
border-top: 1px solid; border-top: 1px solid;
@@ -168,6 +187,10 @@ html {
margin-right: 0.5rem; margin-right: 0.5rem;
} }
& img {
object-fit: contain;
}
&.chat-header { &.chat-header {
& img { & img {
margin-right: .75em; margin-right: .75em;
@@ -213,6 +236,8 @@ html {
width: 3.5em; width: 3.5em;
height: 3.5em; height: 3.5em;
text-shadow: 1px 1px 1px black;
& > * { & > * {
grid-row: 1; grid-row: 1;
grid-column: 1; grid-column: 1;
@@ -399,6 +424,14 @@ html {
border: none; border: none;
border-radius: 0px 0px 5px 5px; border-radius: 0px 0px 5px 5px;
} }
&:nth-child(odd) {
background: #272b33;
}
&:hover {
background: #3b404d;
}
} }
&.Dialog > .window-content { &.Dialog > .window-content {
@@ -412,6 +445,10 @@ html {
} }
} }
& [data-application-part]:not([data-application-part="ActorSheet"]) {
padding: 1rem;
}
& [data-application-part="Bewaffnung"] { & [data-application-part="Bewaffnung"] {
& .tab { & .tab {
grid-template-columns: minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content) minmax(0, 1fr); grid-template-columns: minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content) minmax(0, 1fr);
@@ -426,9 +463,83 @@ html {
} }
} }
& [data-application-part="ActorSheet"] { & [data-application-part="Zauber"] {
& .tab { & .tab {
&[data-tab="tab1"] { grid-template-columns: minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content) minmax(0, 1fr);
align-items: center;
border-top: 1px solid;
margin-top: 0.5em;
padding-top: 0.5em;
& multi-select {
display: grid;
grid-template-columns: 1fr min-content;
align-items: right;
& select {
grid-column: 2;
appearance: none;
background-position: center;
background-size: contain;
background-repeat: no-repeat;
background-image: url("/systems/dsa-4th-edition/src/Assets/plus.svg");
}
}
}
}
& [data-application-part="ActorSheet"] {
height: 100%;
& .scroll-container {
height: 100%;
overflow-y: scroll;
}
& .ActorSheet {
padding: 1rem;
}
& .tabs {
display: flex;
flex-direction: column;
align-items: start;
position: absolute;
z-index: -1;
left: 100%;
border: none;
padding: 0;
gap: 2em;
& > * {
transform: none !important;
&::before {
background: var(--background);
padding: .5em .5em .5em .75em;
border-width: 1px 1px 1px 0px;
border-radius: 0 5px 5px 0;
border-style: solid;
transition: all 250ms ease;
}
&.active, &:hover {
text-decoration: none;
&::before {
padding: .5em .5em .5em 1.25em;
}
}
}
}
& .tab {
&[data-tab="eigenschaften"] {
& .Eigenschaften { & .Eigenschaften {
display: grid; display: grid;
grid-template-columns: minmax(0, max-content) repeat(3, minmax(0, 1fr)); grid-template-columns: minmax(0, max-content) repeat(3, minmax(0, 1fr));
@@ -464,7 +575,7 @@ html {
} }
} }
&[data-tab="tab2"] { &[data-tab="talente"] {
grid-template-columns: minmax(0, max-content) repeat(2, minmax(0, 1fr)) min-content; grid-template-columns: minmax(0, max-content) repeat(2, minmax(0, 1fr)) min-content;
& > * { & > * {
@@ -472,12 +583,12 @@ html {
} }
& .Kampftalente { & .Kampftalente {
grid-template-columns: minmax(0, max-content) repeat(5, minmax(0, 1fr)); grid-template-columns: minmax(0, max-content) repeat(5, minmax(0, 1fr)) min-content;
} }
} }
&[data-tab="tab3"] { &[data-tab="inventar"] {
grid-template-columns: minmax(min-content, max-content) auto min-content minmax(min-content, max-content) min-content; grid-template-columns: minmax(min-content, max-content) auto max-content min-content minmax(min-content, max-content) min-content;
& > * { & > * {
grid-column: 1 / -1; grid-column: 1 / -1;
@@ -486,9 +597,46 @@ html {
& [data-equipped="false"] { & [data-equipped="false"] {
color: #464c5f; color: #464c5f;
} }
& .anzahl input {
background: transparent;
field-sizing: content;
}
}
&[data-tab="kampf"] {
& .Wunden {
grid-template-columns: minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content) minmax(0, 1fr);
& .wunde {
display: inline;
width: 2em;
height: 2em;
margin: 0 .25em 0 .25em;
content: url("/icons/skills/wounds/injury-triple-slash-bleed.webp");
mix-blend-mode: difference;
&.active {
filter: grayscale(0.0);
&:hover, &:hover ~ .wunde.active {
filter: grayscale(0.75);
}
}
&:not(.active) {
filter: grayscale(1.0);
&:hover, &:has( ~ .wunde:hover) {
filter: grayscale(0.25);
}
}
}
} }
&[data-tab="tab4"] {
& .Bewaffnung { & .Bewaffnung {
grid-template-columns: minmax(0, max-content) repeat(3, minmax(0, auto)); grid-template-columns: minmax(0, max-content) repeat(3, minmax(0, auto));
@@ -506,6 +654,18 @@ html {
grid-template-columns: minmax(min-content, max-content) auto min-content; grid-template-columns: minmax(min-content, max-content) auto min-content;
} }
} }
&[data-tab="zauber"] {
grid-template-columns: minmax(0, max-content) auto minmax(0, max-content) auto minmax(0, max-content) min-content;
& > * {
grid-column: 1 / -1;
}
& .Sonderfertigkeiten {
grid-template-columns: minmax(min-content, max-content) auto min-content;
}
}
} }
} }
@@ -533,6 +693,24 @@ html {
} }
} }
.zauber_chat_message {
& .info {
display: grid;
grid-template-columns: repeat(4, minmax(min-content, 1fr));
text-wrap: nowrap;
& > * {
display: grid;
grid-column: 1 / -1;
grid-template-columns: subgrid;
& > *:not(:first-child) {
text-align: center;
}
}
}
}
#tooltip.DSA41 { #tooltip.DSA41 {
max-width: 650px; max-width: 650px;
+405 -21
View File
@@ -4,7 +4,7 @@ const { DocumentSheetConfig } = foundry.applicat
const { loadTemplates, renderTemplate } = foundry.applications.handlebars; const { loadTemplates, renderTemplate } = foundry.applications.handlebars;
const { ActorSheetV2, ItemSheetV2 } = foundry.applications.sheets; const { ActorSheetV2, ItemSheetV2 } = foundry.applications.sheets;
const { Notifications } = foundry.applications.ui; const { Notifications } = foundry.applications.ui;
const { SchemaField, NumberField, StringField, BooleanField } = foundry.data.fields; const { SetField, SchemaField, NumberField, StringField, BooleanField } = foundry.data.fields;
const { Roll } = foundry.dice; const { Roll } = foundry.dice;
const { OperatorTerm, NumericTerm } = foundry.dice.terms; const { OperatorTerm, NumericTerm } = foundry.dice.terms;
const { ChatMessage } = foundry.documents; const { ChatMessage } = foundry.documents;
@@ -55,6 +55,7 @@ Hooks.once("init", async function() {
CONFIG.Item.dataModels.Kampftalent = DSA41_KampftalentData; CONFIG.Item.dataModels.Kampftalent = DSA41_KampftalentData;
CONFIG.Item.dataModels.Sonderfertigkeit = DSA41_SonderfertigkeitData; CONFIG.Item.dataModels.Sonderfertigkeit = DSA41_SonderfertigkeitData;
CONFIG.Item.dataModels.VorNachteil = DSA41_VorNachteilData; CONFIG.Item.dataModels.VorNachteil = DSA41_VorNachteilData;
CONFIG.Item.dataModels.Zauber = DSA41_ZauberData;
CONFIG.statusEffects = []; CONFIG.statusEffects = [];
@@ -75,9 +76,22 @@ Hooks.once("init", async function() {
"Kampftalent", "Kampftalent",
"Sonderfertigkeit", "Sonderfertigkeit",
"VorNachteil", "VorNachteil",
"Zauber",
] ]
}); });
Handlebars.registerHelper({
"string-length": (value, options) => {
return value.toString().length;
}
});
Handlebars.registerHelper({
"mul": (a, b, options) => {
return a * b;
}
});
Handlebars.registerHelper({ Handlebars.registerHelper({
maybeLocalize: (value, options) => { maybeLocalize: (value, options) => {
const prefix = options.hash.prefix ? options.hash.prefix.string : null; const prefix = options.hash.prefix ? options.hash.prefix.string : null;
@@ -145,9 +159,14 @@ Hooks.once("init", async function() {
"CHAT_HEADER": "systems/dsa-4th-edition/src/Chat/Header.hbs", "CHAT_HEADER": "systems/dsa-4th-edition/src/Chat/Header.hbs",
"TrefferpunkteTargets": "systems/dsa-4th-edition/src/Chat/TrefferpunkteTargets.hbs", "TrefferpunkteTargets": "systems/dsa-4th-edition/src/Chat/TrefferpunkteTargets.hbs",
"talent_chat": "systems/dsa-4th-edition/src/Chat/Talent.hbs", "talent_chat": "systems/dsa-4th-edition/src/Chat/Talent.hbs",
"zauber_chat": "systems/dsa-4th-edition/src/Chat/Zauber.hbs",
}); });
}); });
function string_compare(a, b) {
return a > b ? 1 : a < b ? -1 : 0;
}
function get_targeted_actors() { function get_targeted_actors() {
const targets = []; const targets = [];
@@ -352,6 +371,47 @@ class GewichtField extends SchemaField {
} }
} }
class LaengeUnitField extends StringField {
constructor(options={}, context={}) {
return super({
required: true,
choices: {
"halbfinger": "DSA41.laenge.halbfinger",
"finger": "DSA41.laenge.finger",
"spann": "DSA41.laenge.spann",
"schritt": "DSA41.laenge.schritt",
"faden": "DSA41.laenge.faden",
"lot": "DSA41.laenge.lot",
"meile": "DSA41.laenge.meile",
"tagesreise": "DSA41.laenge.tagesreise",
"baryd": "DSA41.laenge.baryd",
},
initial: "schritt",
...options
}, context);
}
}
class LaengeField extends SchemaField {
constructor() {
return super({
value: new NumberField({ initial: 0, min: 0 }),
unit: new LaengeUnitField(),
});
}
_toInput(config) {
const value_input = this.fields["value"].toInput({ value: config.value.value, });
const unit_input = this.fields["unit"] .toInput({ value: config.value.unit, localize: true });
let outer_div = document.createElement("div");
outer_div.className = "length-input";
outer_div.replaceChildren(value_input, unit_input);
return outer_div;
}
}
class AttributeField extends SchemaField { class AttributeField extends SchemaField {
constructor() { constructor() {
return super({ return super({
@@ -461,6 +521,14 @@ class DSA41_CharacterDocument extends Actor {
return actor; return actor;
} }
get_hp_roll_modifier() {
if (this.system.lebenspunkte.aktuell < Math.round(this.system.computed.lebenspunkte.max / 4)) return 3;
if (this.system.lebenspunkte.aktuell < Math.round(this.system.computed.lebenspunkte.max / 3)) return 2;
if (this.system.lebenspunkte.aktuell < Math.round(this.system.computed.lebenspunkte.max / 2)) return 1;
return 0;
}
} }
class DSA41_CharacterData extends TypeDataModel { class DSA41_CharacterData extends TypeDataModel {
@@ -471,6 +539,21 @@ class DSA41_CharacterData extends TypeDataModel {
profession: new StringField(), profession: new StringField(),
sozialstatus: new NumberField({ integer: true, inital: 1 }), sozialstatus: new NumberField({ integer: true, inital: 1 }),
allgemein: new SchemaField({
geschlecht: new StringField(),
alter: new StringField(),
groesse: new LaengeField(),
gewicht: new GewichtField(),
haarfarbe: new StringField(),
augenfarbe: new StringField(),
stand: new StringField(),
titel: new StringField(),
aussehen: new StringField(),
hintergrund: new StringField(),
biografie: new StringField(),
}),
abenteuerpunkte: new SchemaField({ abenteuerpunkte: new SchemaField({
ausgegeben: new NumberField({ integer: true, initial: 0 }), ausgegeben: new NumberField({ integer: true, initial: 0 }),
gesamt: new NumberField({ integer: true, initial: 0 }), gesamt: new NumberField({ integer: true, initial: 0 }),
@@ -531,6 +614,16 @@ class DSA41_CharacterData extends TypeDataModel {
modifikator_attacke: new NumberField({integer: true, initial: 0}), modifikator_attacke: new NumberField({integer: true, initial: 0}),
modifikator_parade: new NumberField({integer: true, initial: 0}), modifikator_parade: new NumberField({integer: true, initial: 0}),
modifikator_fernkampf: new NumberField({integer: true, initial: 0}), modifikator_fernkampf: new NumberField({integer: true, initial: 0}),
wunden: new SchemaField({
kopf: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
brust: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
bauch: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
linker_arm: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
rechter_arm: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
linkes_bein: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
rechtes_bein: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
}),
} }
} }
@@ -545,6 +638,7 @@ class DSA41_CharacterData extends TypeDataModel {
num_nachteile: 0, num_nachteile: 0,
num_allgemeine_sonderfertigkeiten: 0, num_allgemeine_sonderfertigkeiten: 0,
num_kampf_sonderfertigkeiten: 0, num_kampf_sonderfertigkeiten: 0,
num_magische_sonderfertigkeiten: 0,
num_waffen: 0, num_waffen: 0,
num_fernkampf_waffen: 0, num_fernkampf_waffen: 0,
@@ -567,14 +661,97 @@ class DSA41_CharacterData extends TypeDataModel {
gesamt_behinderung: 0.0, gesamt_behinderung: 0.0,
}, },
}, },
wunden_modifiers: {
courage: 0,
cleverness: 0,
intuition: 0,
dexterity: 0,
agility: 0,
constitution: 0,
strength: 0,
initiative_basis: 0,
initiative: "",
attacke: 0,
parade: 0,
schaden: "",
},
}; };
if (this.wunden.kopf >= 1) {
this.computed.wunden_modifiers.courage += -2 * this.wunden.kopf;
this.computed.wunden_modifiers.cleverness += -2 * this.wunden.kopf;
this.computed.wunden_modifiers.intuition += -2 * this.wunden.kopf;
this.computed.wunden_modifiers.initiative_basis += -2 * this.wunden.kopf;
this.computed.wunden_modifiers.initiative += (-2 * this.wunden.kopf) + "d6";
if (this.wunden.kopf >= 3) this.computed.wunden_modifiers.schaden += "+ 2d6";
}
if (this.wunden.brust >= 1) {
this.computed.wunden_modifiers.attacke += -this.wunden.brust;
this.computed.wunden_modifiers.parade += -this.wunden.brust;
this.computed.wunden_modifiers.constitution += -this.wunden.brust;
this.computed.wunden_modifiers.strength += -this.wunden.brust;
this.computed.wunden_modifiers.schaden += "+" + this.wunden.brust + "d6";
}
if (this.wunden.bauch >= 1) {
this.computed.wunden_modifiers.attacke += -this.wunden.bauch;
this.computed.wunden_modifiers.parade += -this.wunden.bauch;
this.computed.wunden_modifiers.constitution += -this.wunden.bauch;
this.computed.wunden_modifiers.strength += -this.wunden.bauch;
this.computed.wunden_modifiers.initiative_basis += -this.wunden.bauch;
this.computed.wunden_modifiers.schaden += "+" + this.wunden.bauch + "d6";
}
if (this.wunden.linker_arm >= 1) {
this.computed.wunden_modifiers.attacke += -2 * this.wunden.linker_arm;
this.computed.wunden_modifiers.parade += -2 * this.wunden.linker_arm;
this.computed.wunden_modifiers.strength += -2 * this.wunden.linker_arm;
this.computed.wunden_modifiers.dexterity += -2 * this.wunden.linker_arm;
}
if (this.wunden.rechter_arm >= 1) {
this.computed.wunden_modifiers.attacke += -2 * this.wunden.rechter_arm;
this.computed.wunden_modifiers.parade += -2 * this.wunden.rechter_arm;
this.computed.wunden_modifiers.strength += -2 * this.wunden.rechter_arm;
this.computed.wunden_modifiers.dexterity += -2 * this.wunden.rechter_arm;
}
if (this.wunden.linkes_bein >= 1) {
this.computed.wunden_modifiers.attacke += -2 * this.wunden.linkes_bein;
this.computed.wunden_modifiers.parade += -2 * this.wunden.linkes_bein;
this.computed.wunden_modifiers.agility += -2 * this.wunden.linkes_bein;
this.computed.wunden_modifiers.initiative_basis += -2 * this.wunden.linkes_bein;
}
if (this.wunden.rechtes_bein >= 1) {
this.computed.wunden_modifiers.attacke += -2 * this.wunden.rechtes_bein;
this.computed.wunden_modifiers.parade += -2 * this.wunden.rechtes_bein;
this.computed.wunden_modifiers.agility += -2 * this.wunden.rechtes_bein;
this.computed.wunden_modifiers.initiative_basis += -2 * this.wunden.rechtes_bein;
}
this.computed.abenteuerpunkte.uebrig = this.abenteuerpunkte.gesamt - this.abenteuerpunkte.ausgegeben; this.computed.abenteuerpunkte.uebrig = this.abenteuerpunkte.gesamt - this.abenteuerpunkte.ausgegeben;
for (const [attribute, values] of Object.entries(this.attributes)) { this.computed.attributes_without_modifiers.courage = this.attributes.courage.initial + this.attributes.courage.advancement;
this.computed.attributes[attribute] = values.initial + values.advancement + values.modifier; this.computed.attributes_without_modifiers.cleverness = this.attributes.cleverness.initial + this.attributes.cleverness.advancement;
this.computed.attributes_without_modifiers[attribute] = values.initial + values.advancement; this.computed.attributes_without_modifiers.intuition = this.attributes.intuition.initial + this.attributes.intuition.advancement;
} this.computed.attributes_without_modifiers.charisma = this.attributes.charisma.initial + this.attributes.charisma.advancement;
this.computed.attributes_without_modifiers.dexterity = this.attributes.dexterity.initial + this.attributes.dexterity.advancement;
this.computed.attributes_without_modifiers.agility = this.attributes.agility.initial + this.attributes.agility.advancement;
this.computed.attributes_without_modifiers.constitution = this.attributes.constitution.initial + this.attributes.constitution.advancement;
this.computed.attributes_without_modifiers.strength = this.attributes.strength.initial + this.attributes.strength.advancement;
this.computed.attributes.courage = this.computed.attributes_without_modifiers.courage + this.attributes.courage.modifier + this.computed.wunden_modifiers.courage;
this.computed.attributes.cleverness = this.computed.attributes_without_modifiers.cleverness + this.attributes.cleverness.modifier + this.computed.wunden_modifiers.cleverness;
this.computed.attributes.intuition = this.computed.attributes_without_modifiers.intuition + this.attributes.intuition.modifier + this.computed.wunden_modifiers.intuition;
this.computed.attributes.charisma = this.computed.attributes_without_modifiers.charisma + this.attributes.charisma.modifier;
this.computed.attributes.dexterity = this.computed.attributes_without_modifiers.dexterity + this.attributes.dexterity.modifier + this.computed.wunden_modifiers.dexterity;
this.computed.attributes.agility = this.computed.attributes_without_modifiers.agility + this.attributes.agility.modifier + this.computed.wunden_modifiers.agility;
this.computed.attributes.constitution = this.computed.attributes_without_modifiers.constitution + this.attributes.constitution.modifier + this.computed.wunden_modifiers.constitution;
this.computed.attributes.strength = this.computed.attributes_without_modifiers.strength + this.attributes.strength.modifier + this.computed.wunden_modifiers.strength;
this.computed.lebenspunkte = {}; this.computed.lebenspunkte = {};
this.computed.ausdauer = {}; this.computed.ausdauer = {};
@@ -627,15 +804,15 @@ class DSA41_CharacterData extends TypeDataModel {
this.computed.kampf.ruestungen_gesamt[key] = Math.round(value); this.computed.kampf.ruestungen_gesamt[key] = Math.round(value);
} }
this.computed.initiative.wert = this.computed.initiative.basiswert + this.modifikator_initiative - this.computed.kampf.ruestungen_gesamt.gesamt_behinderung; this.computed.initiative.wert = this.computed.initiative.basiswert + this.modifikator_initiative - this.computed.kampf.ruestungen_gesamt.gesamt_behinderung + this.computed.wunden_modifiers.initiative_basis;
this.computed.attacke.wert = this.computed.attacke.basiswert + this.modifikator_attacke; this.computed.attacke.wert = this.computed.attacke.basiswert + this.modifikator_attacke + this.computed.wunden_modifiers.attacke;
this.computed.parade.wert = this.computed.parade.basiswert + this.modifikator_parade; this.computed.parade.wert = this.computed.parade.basiswert + this.modifikator_parade + this.computed.wunden_modifiers.parade;
this.computed.fernkampf.wert = this.computed.fernkampf.basiswert + this.modifikator_fernkampf; this.computed.fernkampf.wert = this.computed.fernkampf.basiswert + this.modifikator_fernkampf;
this.kampftalente = this.parent.items.filter((x) => x.type === "Kampftalent").sort((a, b) => a.name > b.name); this.kampftalente = this.parent.items.filter((x) => x.type === "Kampftalent").sort((a, b) => string_compare(a.name, b.name));
for(const talent of this.kampftalente) { for(const talent of this.kampftalente) {
this.computed.kampf.talente[talent.name] = {}; this.computed.kampf.talente[talent.name] = {};
this.computed.kampf.talente[talent.name].attacke = this.computed.attacke.wert + talent.system.attacke; this.computed.kampf.talente[talent.name].attacke = (talent.system.kategorie === "fernkampf" ? this.computed.fernkampf.wert : this.computed.attacke.wert) + talent.system.attacke;
this.computed.kampf.talente[talent.name].parade = this.computed.parade.wert + talent.system.parade; this.computed.kampf.talente[talent.name].parade = this.computed.parade.wert + talent.system.parade;
this.computed.kampf.talente[talent.name].talent_attacke = talent.system.attacke; this.computed.kampf.talente[talent.name].talent_attacke = talent.system.attacke;
@@ -740,7 +917,7 @@ class DSA41_CharacterData extends TypeDataModel {
computed.trefferpunkte_display = computed.trefferpunkte.replace(/[\+\-]/, (op) => "<br>" + op); computed.trefferpunkte_display = computed.trefferpunkte.replace(/[\+\-]/, (op) => "<br>" + op);
} }
const talente = this.parent.items.filter((x) => x.type === "Talent").sort((a, b) => a.name > b.name); const talente = this.parent.items.filter((x) => x.type === "Talent").sort((a, b) => string_compare(a.name, b.name));
this.talente = { this.talente = {
koerperliche: talente.filter((x) => x.system.kategorie === "koerperliche"), koerperliche: talente.filter((x) => x.system.kategorie === "koerperliche"),
gesellschaftliche: talente.filter((x) => x.system.kategorie === "gesellschaftliche"), gesellschaftliche: talente.filter((x) => x.system.kategorie === "gesellschaftliche"),
@@ -751,6 +928,7 @@ class DSA41_CharacterData extends TypeDataModel {
this.computed.num_allgemeine_sonderfertigkeiten = this.parent.items.filter((x) => x.type === "Sonderfertigkeit" && x.system.kategorie === "allgemein").length; this.computed.num_allgemeine_sonderfertigkeiten = this.parent.items.filter((x) => x.type === "Sonderfertigkeit" && x.system.kategorie === "allgemein").length;
this.computed.num_kampf_sonderfertigkeiten = this.parent.items.filter((x) => x.type === "Sonderfertigkeit" && x.system.kategorie === "kampf").length; this.computed.num_kampf_sonderfertigkeiten = this.parent.items.filter((x) => x.type === "Sonderfertigkeit" && x.system.kategorie === "kampf").length;
this.computed.num_magische_sonderfertigkeiten = this.parent.items.filter((x) => x.type === "Sonderfertigkeit" && x.system.kategorie === "magisch").length;
this.computed.num_vorteile = this.parent.items.filter((x) => x.type === "VorNachteil" && x.system.kategorie === "vorteil").length; this.computed.num_vorteile = this.parent.items.filter((x) => x.type === "VorNachteil" && x.system.kategorie === "vorteil").length;
this.computed.num_nachteile = this.parent.items.filter((x) => x.type === "VorNachteil" && x.system.kategorie === "nachteil").length; this.computed.num_nachteile = this.parent.items.filter((x) => x.type === "VorNachteil" && x.system.kategorie === "nachteil").length;
} }
@@ -761,6 +939,9 @@ class DSA41_GegenstandData extends TypeDataModel {
return { return {
gewicht: new GewichtField(), gewicht: new GewichtField(),
preis: new PreisField(), preis: new PreisField(),
anzahl: new NumberField({ integer: true, initial: 1, min: 0 }),
beschreibung: new StringField({ initial: "" }),
}; };
} }
} }
@@ -784,6 +965,8 @@ class DSA41_RuestungData extends TypeDataModel {
gesamt_ruestungsschutz: new NumberField({ integer: false, initial: 0, min: 0 }), gesamt_ruestungsschutz: new NumberField({ integer: false, initial: 0, min: 0 }),
gesamt_behinderung: new NumberField({ integer: false, initial: 0, min: 0 }), gesamt_behinderung: new NumberField({ integer: false, initial: 0, min: 0 }),
beschreibung: new StringField({ initial: "" }),
}; };
} }
} }
@@ -796,6 +979,8 @@ class DSA41_BewaffnungData extends TypeDataModel {
gewicht: new GewichtField(), gewicht: new GewichtField(),
preis: new PreisField(), preis: new PreisField(),
beschreibung: new StringField({ initial: "" }),
nahkampfwaffe: new SchemaField({ nahkampfwaffe: new SchemaField({
aktiv: new BooleanField({ initial: false }), aktiv: new BooleanField({ initial: false }),
@@ -812,7 +997,7 @@ class DSA41_BewaffnungData extends TypeDataModel {
distanzklasse: new StringField({ initial: "" }), distanzklasse: new StringField({ initial: "" }),
kampftalente: new StringField({ initial: "" }), kampftalente: new StringField({ initial: "" }),
laenge: new NumberField({ integer: true, initial: 0, min: 0 }), laenge: new LaengeField(),
zweihaendig: new BooleanField({ initial: false }), zweihaendig: new BooleanField({ initial: false }),
werfbar: new BooleanField({ initial: false }), werfbar: new BooleanField({ initial: false }),
@@ -896,6 +1081,8 @@ class DSA41_TalentData extends TypeDataModel {
attribute3: new AttributeChoiceField(), attribute3: new AttributeChoiceField(),
talentwert: new NumberField({ integer: true, initial: 0 }), talentwert: new NumberField({ integer: true, initial: 0 }),
beschreibung: new StringField({ initial: "" }),
}; };
} }
} }
@@ -963,6 +1150,101 @@ class DSA41_VorNachteilData extends TypeDataModel {
} }
} }
class DSA41_ZauberData extends TypeDataModel {
static defineSchema() {
return {
attribute1: new AttributeChoiceField(),
attribute2: new AttributeChoiceField(),
attribute3: new AttributeChoiceField(),
zauberdauer: new StringField(),
wirkungsdauer: new StringField(),
kosten: new StringField(),
komplexitaet: new SteigerungsKategorieField(),
repraesentation: new StringField({
required: true,
choices: {
"borbaradianisch": "DSA41.zauber.repraesentation.borbaradianisch",
"druidisch": "DSA41.zauber.repraesentation.druidisch",
"elfisch": "DSA41.zauber.repraesentation.elfisch",
"geodisch": "DSA41.zauber.repraesentation.geodisch",
"satuarisch": "DSA41.zauber.repraesentation.satuarisch",
"kristallomantisch": "DSA41.zauber.repraesentation.kristallomantisch",
"gildenmagisch": "DSA41.zauber.repraesentation.gildenmagisch",
"scharlatanisch": "DSA41.zauber.repraesentation.scharlatanisch",
"schelmisch": "DSA41.zauber.repraesentation.schelmisch",
},
initial: "borbaradianisch",
}),
merkmale: new SetField(new StringField({
choices: {
"anitmagie": "DSA41.zauber.merkmale.anitmagie",
"beschwoerung": "DSA41.zauber.merkmale.beschwoerung",
"daemonisch_allgemein": "DSA41.zauber.merkmale.daemonisch_allgemein",
"daemonisch_agrimoth_widharcal": "DSA41.zauber.merkmale.daemonisch_agrimoth_widharcal",
"daemonisch_amazeroth_iribaar": "DSA41.zauber.merkmale.daemonisch_amazeroth_iribaar",
"daemonisch_asfaloth_calijnaar": "DSA41.zauber.merkmale.daemonisch_asfaloth_calijnaar",
"daemonisch_belhalhar_xarfai": "DSA41.zauber.merkmale.daemonisch_belhalhar_xarfai",
"daemonisch_blakharaz_tyakraman": "DSA41.zauber.merkmale.daemonisch_blakharaz_tyakraman",
"daemonisch_lolgramoth_thezzphai": "DSA41.zauber.merkmale.daemonisch_lolgramoth_thezzphai",
"daemonisch_belzhorash_mishkara": "DSA41.zauber.merkmale.daemonisch_belzhorash_mishkara",
"daemonisch_thargunitoth_tijakool": "DSA41.zauber.merkmale.daemonisch_thargunitoth_tijakool",
"eigenschaften": "DSA41.zauber.merkmale.eigenschaften",
"einfluss": "DSA41.zauber.merkmale.einfluss",
"elementar_allgemein": "DSA41.zauber.merkmale.elementar_allgemein",
"elementar_eis": "DSA41.zauber.merkmale.elementar_eis",
"elementar_erz": "DSA41.zauber.merkmale.elementar_erz",
"elementar_feuer": "DSA41.zauber.merkmale.elementar_feuer",
"elementar_humus": "DSA41.zauber.merkmale.elementar_humus",
"elementar_luft": "DSA41.zauber.merkmale.elementar_luft",
"elementar_wasser": "DSA41.zauber.merkmale.elementar_wasser",
"form": "DSA41.zauber.merkmale.form",
"geisterwesen": "DSA41.zauber.merkmale.geisterwesen",
"heilung": "DSA41.zauber.merkmale.heilung",
"hellsicht": "DSA41.zauber.merkmale.hellsicht",
"herbeirufung": "DSA41.zauber.merkmale.herbeirufung",
"herrschaft": "DSA41.zauber.merkmale.herrschaft",
"illusion": "DSA41.zauber.merkmale.illusion",
"kraft": "DSA41.zauber.merkmale.kraft",
"limbus": "DSA41.zauber.merkmale.limbus",
"metamagie": "DSA41.zauber.merkmale.metamagie",
"objekt": "DSA41.zauber.merkmale.objekt",
"schaden": "DSA41.zauber.merkmale.schaden",
"telekinese": "DSA41.zauber.merkmale.telekinese",
"temporal": "DSA41.zauber.merkmale.temporal",
"umwelt": "DSA41.zauber.merkmale.umwelt",
"verständigung": "DSA41.zauber.merkmale.verständigung",
},
})),
modifikationen: new SetField(new StringField({
choices: {
"zauberdauer": "DSA41.zauber.modifikationen.zauberdauer",
"erzwingen": "DSA41.zauber.modifikationen.erzwingen",
"kosten": "DSA41.zauber.modifikationen.kosten",
"mehrere_ziele": "DSA41.zauber.modifikationen.mehrere_ziele",
"mehrere_ziele_freiwillig": "DSA41.zauber.modifikationen.mehrere_ziele_freiwillig",
"reichweite": "DSA41.zauber.modifikationen.reichweite",
"reichweite_beruehrung": "DSA41.zauber.modifikationen.reichweite_beruehrung",
"reichweite_selbst": "DSA41.zauber.modifikationen.reichweite_selbst",
"wirkungsdauer": "DSA41.zauber.modifikationen.wirkungsdauer",
"ziel_objekt": "DSA41.zauber.modifikationen.ziel_objekt",
},
})),
magieresistenz: new BooleanField({ initial: false }),
haus: new BooleanField({ initial: false }),
zauberfertigkeitswert: new NumberField({ integer: true, initial: 0 }),
beschreibung: new StringField({ initial: "" }),
};
}
}
function DSA41_ApplicationMixin(BaseApplication) { function DSA41_ApplicationMixin(BaseApplication) {
class DSA41_Application extends HandlebarsApplicationMixin(BaseApplication) { class DSA41_Application extends HandlebarsApplicationMixin(BaseApplication) {
static DEFAULT_OPTIONS= { static DEFAULT_OPTIONS= {
@@ -983,6 +1265,7 @@ class DSA41_Dialog extends DSA41_ApplicationMixin(ApplicationV2) {
static PARTS = { static PARTS = {
Eigenschaft: { template: "systems/dsa-4th-edition/src/Dialogs/Attribute.hbs" }, Eigenschaft: { template: "systems/dsa-4th-edition/src/Dialogs/Attribute.hbs" },
Talent: { template: "systems/dsa-4th-edition/src/Dialogs/Talent.hbs" }, Talent: { template: "systems/dsa-4th-edition/src/Dialogs/Talent.hbs" },
Zauber: { template: "systems/dsa-4th-edition/src/Dialogs/Zauber.hbs" },
Attacke: { template: "systems/dsa-4th-edition/src/Dialogs/Attacke.hbs" }, Attacke: { template: "systems/dsa-4th-edition/src/Dialogs/Attacke.hbs" },
Parade: { template: "systems/dsa-4th-edition/src/Dialogs/Parade.hbs" }, Parade: { template: "systems/dsa-4th-edition/src/Dialogs/Parade.hbs" },
@@ -1011,10 +1294,12 @@ class DSA41_Dialog extends DSA41_ApplicationMixin(ApplicationV2) {
}; };
get formData() { get formData() {
const inputs = this.element.querySelector("[data-application-part]")?.querySelectorAll("input") ?? [];
const types = Object.fromEntries(Array.from(inputs, x => [x.name, x.type]));
const data = Object.fromEntries( const data = Object.fromEntries(
new FormData(this.element).entries().map(([key, value])=>{ new FormData(this.element).entries().map(([key, value])=>{
if (typeof value != "string") return [key, value]; if (types[key] == "number") return [key, Number(value)];
return isNaN(value) ? [key, value] : [key, Number(value)]; return [key, value];
}) })
); );
@@ -1059,10 +1344,11 @@ class DSA41_Dialog extends DSA41_ApplicationMixin(ApplicationV2) {
class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) { class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
static PARTS = { static PARTS = {
ActorSheet: { template: "systems/dsa-4th-edition/src/ActorSheet.hbs" }, ActorSheet: { template: "systems/dsa-4th-edition/src/ActorSheet.hbs", scrollable: [".scroll-container"] },
}; };
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
classes: [ "DSA41", "ActorSheet" ],
position: { width: "800", height: "650" }, position: { width: "800", height: "650" },
actions: { actions: {
"roll": async function(event, target) { "roll": async function(event, target) {
@@ -1072,6 +1358,8 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
const item_id = event.target.closest("[data-item-id]")?.dataset.itemId; const item_id = event.target.closest("[data-item-id]")?.dataset.itemId;
const item = this.document.items.get(item_id); const item = this.document.items.get(item_id);
const hp_roll_modifier = this.document.get_hp_roll_modifier();
let flavor = game.i18n.localize("DSA41.roll_types." + roll_type); let flavor = game.i18n.localize("DSA41.roll_types." + roll_type);
if (typeof success_value !== 'undefined') { if (typeof success_value !== 'undefined') {
flavor += " <= " + success_value; flavor += " <= " + success_value;
@@ -1087,6 +1375,9 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
flavor += " <= " + (Number(success_value) + data.modifikator); flavor += " <= " + (Number(success_value) + data.modifikator);
} }
if (hp_roll_modifier !== 0)
roll_formula = roll_formula + " + " + hp_roll_modifier;
let roll = new Roll(roll_formula, this.document.system); let roll = new Roll(roll_formula, this.document.system);
roll.toMessage({ roll.toMessage({
speaker: ChatMessage.getSpeaker({ actor: this.document }), speaker: ChatMessage.getSpeaker({ actor: this.document }),
@@ -1107,11 +1398,14 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
const data = await DSA41_Dialog.wait("Talent", { window: {title: title}, item: item }); const data = await DSA41_Dialog.wait("Talent", { window: {title: title}, item: item });
const eBE = (await new Roll(item.system.behinderung || "0", { BE: this.document.system.computed.kampf.ruestungen_gesamt.gesamt_behinderung }).evaluate()).total; const eBE = (await new Roll(item.system.behinderung || "0", { BE: this.document.system.computed.kampf.ruestungen_gesamt.gesamt_behinderung }).evaluate()).total;
data.modifikator += eBE; data.modifikator -= eBE;
const talentwert = item.system.talentwert - data.modifikator; const talentwert = item.system.talentwert + data.modifikator;
const roll_modifier = talentwert < 0 ? -talentwert: 0; const roll_modifier = talentwert < 0 ? -talentwert: 0;
if (hp_roll_modifier !== 0)
roll_modifier += hp_roll_modifier;
const roll1 = (await new Roll("1d20").evaluate()).total + roll_modifier; const roll1 = (await new Roll("1d20").evaluate()).total + roll_modifier;
const roll2 = (await new Roll("1d20").evaluate()).total + roll_modifier; const roll2 = (await new Roll("1d20").evaluate()).total + roll_modifier;
const roll3 = (await new Roll("1d20").evaluate()).total + roll_modifier; const roll3 = (await new Roll("1d20").evaluate()).total + roll_modifier;
@@ -1128,10 +1422,10 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
const context = { const context = {
talent: item, talent: item,
modifikator: -data.modifikator, modifikator: data.modifikator,
attribute1: { type: item.system.attribute1, value: attribute1 }, attribute1: { type: item.system.attribute1, value: attribute1 },
attribute2: { type: item.system.attribute2, value: attribute3 }, attribute2: { type: item.system.attribute2, value: attribute2 },
attribute3: { type: item.system.attribute3, value: attribute3 }, attribute3: { type: item.system.attribute3, value: attribute3 },
roll1: roll1, roll1: roll1,
@@ -1166,6 +1460,13 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
flavor += " <= " + (Number(success_value) + data.modifikator); flavor += " <= " + (Number(success_value) + data.modifikator);
} }
if (data.anmerkung) {
flavor += "<br>" + data.anmerkung;
}
if (hp_roll_modifier !== 0)
roll_formula = roll_formula + " + " + hp_roll_modifier;
let roll = new Roll(roll_formula, this.document.system); let roll = new Roll(roll_formula, this.document.system);
roll.toMessage({ roll.toMessage({
speaker: ChatMessage.getSpeaker({ actor: this.document }), speaker: ChatMessage.getSpeaker({ actor: this.document }),
@@ -1189,6 +1490,13 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
let flavor = game.i18n.localize("DSA41.roll_types." + roll_type); let flavor = game.i18n.localize("DSA41.roll_types." + roll_type);
flavor += " <= " + (Number((data.crit == "on") ? item.parade_crit : item.parade) + data.modifikator); flavor += " <= " + (Number((data.crit == "on") ? item.parade_crit : item.parade) + data.modifikator);
if (data.anmerkung) {
flavor += "<br>" + data.anmerkung;
}
if (hp_roll_modifier !== 0)
roll_formula = roll_formula + " + " + hp_roll_modifier;
let roll = new Roll(roll_formula, this.document.system); let roll = new Roll(roll_formula, this.document.system);
roll.toMessage({ roll.toMessage({
speaker: ChatMessage.getSpeaker({ actor: this.document }), speaker: ChatMessage.getSpeaker({ actor: this.document }),
@@ -1235,7 +1543,7 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
const groessen_modifikator = Math.max(data.ziel_groesse + data.deckung + data.ziel_bewegung, -2); const groessen_modifikator = Math.max(data.ziel_groesse + data.deckung + data.ziel_bewegung, -2);
const andere_modifikator = data.entfernung + data.wind + data.modifikator; const andere_modifikator = data.entfernung + data.wind + data.modifikator;
const total_modifikator = groessen_modifikator + andere_modifikator; const total_modifikator = groessen_modifikator + andere_modifikator + hp_roll_modifier;
let roll = new Roll(roll_formula + " + " + total_modifikator, this.document.system); let roll = new Roll(roll_formula + " + " + total_modifikator, this.document.system);
roll.toMessage({ roll.toMessage({
@@ -1276,6 +1584,62 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
return; return;
} }
if (roll_type == "zauber") {
const title = game.i18n.localize("DSA41.roll_types." + roll_type) + ": " + item.name;
const data = await DSA41_Dialog.wait("Zauber", { window: {title: title}, item: item });
const zauberfertigkeitswert = item.system.zauberfertigkeitswert - data.modifikator - (data.magieresistenz ?? null);
const roll_modifier = zauberfertigkeitswert < 0 ? -zauberfertigkeitswert: 0;
if (hp_roll_modifier !== 0)
roll_modifier += hp_roll_modifier;
const roll1 = (await new Roll("1d20").evaluate()).total + roll_modifier;
const roll2 = (await new Roll("1d20").evaluate()).total + roll_modifier;
const roll3 = (await new Roll("1d20").evaluate()).total + roll_modifier;
const attribute1 = this.document.system.computed.attributes[item.system.attribute1];
const attribute2 = this.document.system.computed.attributes[item.system.attribute2];
const attribute3 = this.document.system.computed.attributes[item.system.attribute3];
const needed_zfw_roll1 = Math.max(roll1 - attribute1, 0);
const needed_zfw_roll2 = Math.max(roll2 - attribute2, 0);
const needed_zfw_roll3 = Math.max(roll3 - attribute3, 0);
const leftover_zfw = Math.max(zauberfertigkeitswert, 0) - needed_zfw_roll1 - needed_zfw_roll2 - needed_zfw_roll3;
const context = {
zauber: item,
modifikator: -data.modifikator,
magieresistenz: -(data.magieresistenz ?? 0),
attribute1: { type: item.system.attribute1, value: attribute1 },
attribute2: { type: item.system.attribute2, value: attribute2 },
attribute3: { type: item.system.attribute3, value: attribute3 },
roll1: roll1,
roll2: roll2,
roll3: roll3,
needed_zfw_roll1: -needed_zfw_roll1,
needed_zfw_roll2: -needed_zfw_roll2,
needed_zfw_roll3: -needed_zfw_roll3,
leftover_zfw: Math.min(leftover_zfw, item.system.zauberfertigkeitswert),
};
const message = await ChatMessage.create(
{
content: await renderTemplate("zauber_chat", context),
speaker: { actor: this.actor },
sound: CONFIG.sounds.dice,
},
);
return;
}
let roll = new Roll(roll_formula, this.document.system); let roll = new Roll(roll_formula, this.document.system);
roll.toMessage({ roll.toMessage({
speaker: ChatMessage.getSpeaker({ actor: this.document }), speaker: ChatMessage.getSpeaker({ actor: this.document }),
@@ -1306,6 +1670,25 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
const item = this.document.items.get(item_id); const item = this.document.items.get(item_id);
item.update({ "system.angelegt": !item.system.angelegt }); item.update({ "system.angelegt": !item.system.angelegt });
}, },
"post-zauber": async function(event, target) {
const item_id = event.target.closest("[data-item-id]").dataset.itemId;
const item = this.document.items.get(item_id);
ChatMessage.create({
speaker: ChatMessage.getSpeaker({ actor: this.document }),
author: game.user.id,
sound: CONFIG.sounds.dice,
content: item.system.beschreibung,
});
},
"toggle-wound": async function(event, target) {
const location = event.target.closest("[data-location]").dataset.location;
const current_count = this.document.system.wunden[location];
const toggled_count = Array.prototype.indexOf.call(event.target.parentNode.children, event.target) + 1;
this.document.update({ ["system.wunden." + location]: toggled_count > current_count ? toggled_count : toggled_count - 1 });
}
}, },
}; };
@@ -1321,7 +1704,7 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
item.update({ [data_name]: value }); item.update({ [data_name]: value });
} }
tabGroups = { primary: "tab1" }; tabGroups = { primary: "eigenschaften" };
} }
class DSA41_ItemSheetV2 extends DSA41_ApplicationMixin(ItemSheetV2) { class DSA41_ItemSheetV2 extends DSA41_ApplicationMixin(ItemSheetV2) {
@@ -1333,6 +1716,7 @@ class DSA41_ItemSheetV2 extends DSA41_ApplicationMixin(ItemSheetV2) {
Kampftalent: { template: "systems/dsa-4th-edition/src/ItemSheets/Kampftalent.hbs" }, Kampftalent: { template: "systems/dsa-4th-edition/src/ItemSheets/Kampftalent.hbs" },
Sonderfertigkeit: { template: "systems/dsa-4th-edition/src/ItemSheets/Sonderfertigkeit.hbs" }, Sonderfertigkeit: { template: "systems/dsa-4th-edition/src/ItemSheets/Sonderfertigkeit.hbs" },
VorNachteil: { template: "systems/dsa-4th-edition/src/ItemSheets/VorNachteil.hbs" }, VorNachteil: { template: "systems/dsa-4th-edition/src/ItemSheets/VorNachteil.hbs" },
Zauber: { template: "systems/dsa-4th-edition/src/ItemSheets/Zauber.hbs" },
}; };
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
+1
View File
@@ -13,6 +13,7 @@
"Gegenstand": {}, "Gegenstand": {},
"Ruestung": {}, "Ruestung": {},
"Bewaffnung": {}, "Bewaffnung": {},
"Zauber": {},
"Talent": {}, "Talent": {},
"Kampftalent": {}, "Kampftalent": {},
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Amazonensäbel",
.img = "icons/weapons/swords/scimitar-worn-blue.webp",
.system = .{
.gewicht = .{
.value = 75,
.unit = .unze,
},
.preis = .{
.value = 180,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 11,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = 1,
.bruchfaktor = 2,
.distanzklasse = "N",
.kampftalente = "Säbel,Schwerter",
.laenge = .{
.value = 100,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Andergaster",
.img = "icons/weapons/swords/greatsword-guard-jewel-green.webp",
.system = .{
.gewicht = .{
.value = 220,
.unit = .unze,
},
.preis = .{
.value = 350,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "3d6+2",
.schwellenwert = 14,
.schadensschritte = 2,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = -3,
.bruchfaktor = 3,
.distanzklasse = "S",
.kampftalente = "Zweihandschwerter/-säbel",
.laenge = .{
.value = 200,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Anderthalbhänder",
.img = "icons/weapons/swords/greatsword-crossguard-engraved-green.webp",
.system = .{
.gewicht = .{
.value = 100,
.unit = .unze,
},
.preis = .{
.value = 250,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+5",
.schwellenwert = 11,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = 1,
.bruchfaktor = 1,
.distanzklasse = "NS",
.kampftalente = "Anderthalbhänder,Zweihandschwerter/-säbel",
.laenge = .{
.value = 115,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Arbach",
.img = "icons/weapons/swords/scimitar-guard.webp",
.system = .{
.gewicht = .{
.value = 100,
.unit = .unze,
},
.preis = .{
.value = 120,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 12,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 2,
.distanzklasse = "N",
.kampftalente = "Säbel,Schwerter",
.laenge = .{
.value = 90,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Baccanaq / Bakka",
.img = "icons/commodities/claws/claw-bear-brown.webp",
.system = .{
.gewicht = .{
.value = 80,
.unit = .unze,
},
.preis = .{
.value = 180,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = -1,
.bruchfaktor = 5,
.distanzklasse = "N",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 80,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Barbarenschwert",
.img = "icons/weapons/swords/sword-guard-flanged.webp",
.system = .{
.gewicht = .{
.value = 100,
.unit = .unze,
},
.preis = .{
.value = 200,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+5",
.schwellenwert = 13,
.schadensschritte = 2,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = -1,
.bruchfaktor = 4,
.distanzklasse = "N",
.kampftalente = "Schwerter",
.laenge = .{
.value = 90,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Barbarenstreitaxt",
.img = "icons/weapons/axes/axe-double.webp",
.system = .{
.gewicht = .{
.value = 250,
.unit = .unze,
},
.preis = .{
.value = 150,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "3d6+2",
.schwellenwert = 15,
.schadensschritte = 1,
.modifikator_attacke = -1,
.modifikator_parade = -4,
.initiative = -2,
.bruchfaktor = 3,
.distanzklasse = "N",
.kampftalente = "Zweihand-Hiebwaffen",
.laenge = .{
.value = 120,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Basiliskenzunge",
.img = "icons/weapons/daggers/dagger-crooked-grey.webp",
.system = .{
.gewicht = .{
.value = 25,
.unit = .unze,
},
.preis = .{
.value = 70,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = -1,
.bruchfaktor = 4,
.distanzklasse = "H",
.kampftalente = "Dolche",
.laenge = .{
.value = 30,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Beil",
.img = "icons/tools/hand/hatchet-steel-grey.webp",
.system = .{
.gewicht = .{
.value = 70,
.unit = .unze,
},
.preis = .{
.value = 20,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 11,
.schadensschritte = 4,
.modifikator_attacke = -1,
.modifikator_parade = -2,
.initiative = -1,
.bruchfaktor = 5,
.distanzklasse = "N",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 50,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = true,
.priviligiert = false,
},
}
}
}
+67
View File
@@ -0,0 +1,67 @@
.{
.Bewaffnung = .{
.name = "Bock",
.img = "icons/weapons/fist/fist-katar-triple-gold-black.webp",
.system = .{
.gewicht = .{
.value = 120,
.unit = .unze,
},
.preis = .{
.value = 80,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 10,
.schadensschritte = 5,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = -1,
.bruchfaktor = 0,
.distanzklasse = "H",
.kampftalente = "Raufen",
.laenge = .{
.value = 20,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
.schild = .{
.aktiv = true,
.groesse = "klein",
.modifikator_attacke = -1,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = -1,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Borndorn",
.img = "icons/weapons/daggers/dagger-straight-cracked.webp",
.system = .{
.gewicht = .{
.value = 30,
.unit = .unze,
},
.preis = .{
.value = 40,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 12,
.schadensschritte = 5,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 1,
.distanzklasse = "H",
.kampftalente = "Dolche",
.laenge = .{
.value = 40,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = true,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Boronssichel",
.img = "icons/weapons/swords/sword-katana-purple.webp",
.system = .{
.gewicht = .{
.value = 160,
.unit = .unze,
},
.preis = .{
.value = 400,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "2d6+6",
.schwellenwert = 13,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -3,
.initiative = -2,
.bruchfaktor = 3,
.distanzklasse = "S",
.kampftalente = "Zweihandschwerter/-säbel",
.laenge = .{
.value = 180,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Brabakbengel",
.img = "icons/weapons/maces/mace-round-spiked-grey.webp",
.system = .{
.gewicht = .{
.value = 120,
.unit = .unze,
},
.preis = .{
.value = 100,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+5",
.schwellenwert = 13,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 1,
.distanzklasse = "N",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 90,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Breitschwert",
.img = "icons/weapons/swords/shortsword-guard-brass.webp",
.system = .{
.gewicht = .{
.value = 80,
.unit = .unze,
},
.preis = .{
.value = 120,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 12,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 1,
.distanzklasse = "N",
.kampftalente = "Schwerter",
.laenge = .{
.value = 85,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+39
View File
@@ -0,0 +1,39 @@
.{
.Bewaffnung = .{
.name = "Buckler",
.system = .{
.gewicht = .{
.value = 40,
.unit = .stein,
},
.preis = .{
.value = 0,
.unit = .silbertaler,
},
.schild = .{
.aktiv = true,
.groesse = "klein",
.modifikator_attacke = 0,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = 0,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Byakka",
.img = "icons/weapons/axes/axe-double-black.webp",
.system = .{
.gewicht = .{
.value = 130,
.unit = .unze,
},
.preis = .{
.value = 90,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+5",
.schwellenwert = 14,
.schadensschritte = 2,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = -1,
.bruchfaktor = 3,
.distanzklasse = "N",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 100,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Degen",
.img = "icons/weapons/swords/sword-guard-brass-worn.webp",
.system = .{
.gewicht = .{
.value = 40,
.unit = .unze,
},
.preis = .{
.value = 150,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 12,
.schadensschritte = 5,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 2,
.bruchfaktor = 3,
.distanzklasse = "N",
.kampftalente = "Fechtwaffen",
.laenge = .{
.value = 90,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Dolch",
.img = "icons/weapons/daggers/dagger-straight-blue.webp",
.system = .{
.gewicht = .{
.value = 20,
.unit = .unze,
},
.preis = .{
.value = 20,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+1",
.schwellenwert = 12,
.schadensschritte = 5,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 2,
.distanzklasse = "H",
.kampftalente = "Dolche",
.laenge = .{
.value = 30,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = true,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Doppelkhunchomer",
.img = "icons/weapons/swords/scimitar-guard-red.webp",
.system = .{
.gewicht = .{
.value = 150,
.unit = .unze,
},
.preis = .{
.value = 250,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+6",
.schwellenwert = 12,
.schadensschritte = 2,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = -1,
.bruchfaktor = 2,
.distanzklasse = "NS",
.kampftalente = "Zweihandschwerter/-säbel",
.laenge = .{
.value = 130,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+66
View File
@@ -0,0 +1,66 @@
.{
.Bewaffnung = .{
.name = "Drachenklaue",
.system = .{
.gewicht = .{
.value = 200,
.unit = .unze,
},
.preis = .{
.value = 350,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 12,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = -1,
.bruchfaktor = 0,
.distanzklasse = "H",
.kampftalente = "Raufen",
.laenge = .{
.value = 20,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
.schild = .{
.aktiv = true,
.groesse = "klein",
.modifikator_attacke = -2,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = -2,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
}
}
}
@@ -0,0 +1,66 @@
.{
.Bewaffnung = .{
.name = "Drachenklaue (Klingenbrecher)",
.system = .{
.gewicht = .{
.value = 200,
.unit = .unze,
},
.preis = .{
.value = 410,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 12,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = -1,
.bruchfaktor = 0,
.distanzklasse = "H",
.kampftalente = "Raufen",
.laenge = .{
.value = 20,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
.schild = .{
.aktiv = true,
.groesse = "klein",
.modifikator_attacke = -2,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = -2,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
}
}
}
@@ -0,0 +1,66 @@
.{
.Bewaffnung = .{
.name = "Drachenklaue (Klingenfänger)",
.system = .{
.gewicht = .{
.value = 200,
.unit = .unze,
},
.preis = .{
.value = 390,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 12,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = -1,
.bruchfaktor = 0,
.distanzklasse = "H",
.kampftalente = "Raufen",
.laenge = .{
.value = 20,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
.schild = .{
.aktiv = true,
.groesse = "klein",
.modifikator_attacke = -2,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = -2,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
}
}
}
@@ -0,0 +1,66 @@
.{
.Bewaffnung = .{
.name = "Drachenklaue (lange Klinge)",
.system = .{
.gewicht = .{
.value = 200,
.unit = .unze,
},
.preis = .{
.value = 390,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 12,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = -1,
.bruchfaktor = 1,
.distanzklasse = "H",
.kampftalente = "Raufen",
.laenge = .{
.value = 30,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
.schild = .{
.aktiv = true,
.groesse = "klein",
.modifikator_attacke = -2,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = -2,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Drachentöter",
.img = "icons/weapons/polearms/spear-barbed-silver.webp",
.system = .{
.gewicht = .{
.value = 400,
.unit = .unze,
},
.preis = .{
.value = 0,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "3d6+5",
.schwellenwert = 20,
.schadensschritte = 1,
.modifikator_attacke = -2,
.modifikator_parade = -4,
.initiative = -3,
.bruchfaktor = 3,
.distanzklasse = "P",
.kampftalente = "Speere",
.laenge = .{
.value = 400,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Drachenzahn",
.img = "icons/weapons/daggers/dagger-jeweled-purple.webp",
.system = .{
.gewicht = .{
.value = 40,
.unit = .unze,
},
.preis = .{
.value = 120,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 11,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = 0,
.bruchfaktor = 0,
.distanzklasse = "H",
.kampftalente = "Dolche",
.laenge = .{
.value = 40,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
@@ -0,0 +1,45 @@
.{
.Bewaffnung = .{
.name = "Dreigliederstab",
.system = .{
.gewicht = .{
.value = 100,
.unit = .unze,
},
.preis = .{
.value = 180,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 13,
.schadensschritte = 4,
.modifikator_attacke = 1,
.modifikator_parade = 1,
.initiative = 2,
.bruchfaktor = 3,
.distanzklasse = "HN",
.kampftalente = "Kettenstäbe",
.laenge = .{
.value = 130,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Dreizack",
.img = "icons/weapons/polearms/trident-silver-red.webp",
.system = .{
.gewicht = .{
.value = 90,
.unit = .unze,
},
.preis = .{
.value = 50,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 13,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 5,
.distanzklasse = "S",
.kampftalente = "Speere",
.laenge = .{
.value = 140,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = true,
.priviligiert = false,
},
}
}
}
+45
View File
@@ -0,0 +1,45 @@
.{
.Bewaffnung = .{
.name = "Dreschflegel",
.system = .{
.gewicht = .{
.value = 100,
.unit = .unze,
},
.preis = .{
.value = 15,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 12,
.schadensschritte = 3,
.modifikator_attacke = -2,
.modifikator_parade = -3,
.initiative = -2,
.bruchfaktor = 6,
.distanzklasse = "S",
.kampftalente = "Zweihandflegel",
.laenge = .{
.value = 150,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = true,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Dschadra",
.img = "icons/weapons/polearms/spear-flared-purple.webp",
.system = .{
.gewicht = .{
.value = 80,
.unit = .unze,
},
.preis = .{
.value = 120,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+5",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = -3,
.initiative = -1,
.bruchfaktor = 6,
.distanzklasse = "S",
.kampftalente = "Speere",
.laenge = .{
.value = 200,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Eberfänger",
.img = "icons/weapons/daggers/dagger-double-red.webp",
.system = .{
.gewicht = .{
.value = 40,
.unit = .unze,
},
.preis = .{
.value = 60,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 1,
.distanzklasse = "H",
.kampftalente = "Dolche",
.laenge = .{
.value = 40,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Echsische Axt",
.img = "icons/weapons/axes/axe-double-jagged-black.webp",
.system = .{
.gewicht = .{
.value = 90,
.unit = .unze,
},
.preis = .{
.value = 0,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+5",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 3,
.distanzklasse = "NS",
.kampftalente = "Zweihand-Hiebwaffen",
.laenge = .{
.value = 150,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Efferdbart",
.img = "icons/weapons/polearms/trident-silver-blue.webp",
.system = .{
.gewicht = .{
.value = 90,
.unit = .unze,
},
.preis = .{
.value = 80,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 13,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 3,
.distanzklasse = "NS",
.kampftalente = "Speere",
.laenge = .{
.value = 120,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = true,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
@@ -0,0 +1,29 @@
.{
.Bewaffnung = .{
.name = "Einfacher Holzschild",
.system = .{
.gewicht = .{
.value = 140,
.unit = .stein,
},
.preis = .{
.value = 3,
.unit = .silbertaler,
},
.schild = .{
.aktiv = true,
.groesse = "groß",
.modifikator_attacke = -1,
.modifikator_parade = 3,
.initiative = -1,
.bruchfaktor = 3,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Entermesser",
.img = "icons/weapons/swords/scimitar-guard-gold.webp",
.system = .{
.gewicht = .{
.value = 70,
.unit = .unze,
},
.preis = .{
.value = 50,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = 0,
.bruchfaktor = 2,
.distanzklasse = "N",
.kampftalente = "Säbel",
.laenge = .{
.value = 75,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Fackel",
.img = "icons/sundries/lights/torch-brown-lit.webp",
.system = .{
.gewicht = .{
.value = 30,
.unit = .unze,
},
.preis = .{
.value = 0.5,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6",
.schwellenwert = 11,
.schadensschritte = 5,
.modifikator_attacke = -2,
.modifikator_parade = -3,
.initiative = -2,
.bruchfaktor = 8,
.distanzklasse = "HN",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 50,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = true,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Felsspalter",
.img = "icons/weapons/axes/axe-double-engraved-runes.webp",
.system = .{
.gewicht = .{
.value = 150,
.unit = .unze,
},
.preis = .{
.value = 300,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "2d6+2",
.schwellenwert = 14,
.schadensschritte = 2,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = -1,
.bruchfaktor = 2,
.distanzklasse = "N",
.kampftalente = "Zweihand-Hiebwaffen",
.laenge = .{
.value = 120,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Fleischerbeil",
.img = "icons/tools/cooking/knife-cleaver-steel-grey.webp",
.system = .{
.gewicht = .{
.value = 60,
.unit = .unze,
},
.preis = .{
.value = 20,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 11,
.schadensschritte = 4,
.modifikator_attacke = -2,
.modifikator_parade = -3,
.initiative = -1,
.bruchfaktor = 2,
.distanzklasse = "H",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 30,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = true,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Florett",
.img = "icons/weapons/swords/sword-guard-brass-worn.webp",
.system = .{
.gewicht = .{
.value = 30,
.unit = .unze,
},
.preis = .{
.value = 180,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 13,
.schadensschritte = 5,
.modifikator_attacke = 1,
.modifikator_parade = -1,
.initiative = 3,
.bruchfaktor = 4,
.distanzklasse = "N",
.kampftalente = "Fechtwaffen",
.laenge = .{
.value = 90,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Geißel",
.img = "icons/weapons/misc/whip-red-yellow.webp",
.system = .{
.gewicht = .{
.value = 30,
.unit = .unze,
},
.preis = .{
.value = 15,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6-1",
.schwellenwert = 14,
.schadensschritte = 5,
.modifikator_attacke = 0,
.modifikator_parade = -4,
.initiative = -1,
.bruchfaktor = 5,
.distanzklasse = "N",
.kampftalente = "Kettenwaffen",
.laenge = .{
.value = 100,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Glefe",
.img = "icons/weapons/polearms/glaive-simple.webp",
.system = .{
.gewicht = .{
.value = 120,
.unit = .unze,
},
.preis = .{
.value = 45,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 13,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = -1,
.bruchfaktor = 5,
.distanzklasse = "S",
.kampftalente = "Infanteriewaffen",
.laenge = .{
.value = 200,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
@@ -0,0 +1,29 @@
.{
.Bewaffnung = .{
.name = "Großer Lederschild",
.system = .{
.gewicht = .{
.value = 120,
.unit = .stein,
},
.preis = .{
.value = 6,
.unit = .silbertaler,
},
.schild = .{
.aktiv = true,
.groesse = "groß",
.modifikator_attacke = -1,
.modifikator_parade = 4,
.initiative = -1,
.bruchfaktor = 6,
},
}
}
}
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Großer Sklaventod",
.img = "icons/weapons/swords/scimitar-guard-red.webp",
.system = .{
.gewicht = .{
.value = 160,
.unit = .unze,
},
.preis = .{
.value = 350,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "2d6+4",
.schwellenwert = 13,
.schadensschritte = 2,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = -2,
.bruchfaktor = 3,
.distanzklasse = "NS",
.kampftalente = "Zweihandschwerter/-säbel",
.laenge = .{
.value = 140,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
@@ -0,0 +1,39 @@
.{
.Bewaffnung = .{
.name = "Großer (Vollmetall-)Buckler",
.system = .{
.gewicht = .{
.value = 60,
.unit = .stein,
},
.preis = .{
.value = -2,
.unit = .silbertaler,
},
.schild = .{
.aktiv = true,
.groesse = "klein",
.modifikator_attacke = 0,
.modifikator_parade = 2,
.initiative = 0,
.bruchfaktor = -2,
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = 0,
.modifikator_parade = 2,
.initiative = 0,
.bruchfaktor = -2,
},
}
}
}
@@ -0,0 +1,29 @@
.{
.Bewaffnung = .{
.name = "Großschild (Reiterschild)",
.system = .{
.gewicht = .{
.value = 200,
.unit = .stein,
},
.preis = .{
.value = 2,
.unit = .silbertaler,
},
.schild = .{
.aktiv = true,
.groesse = "sehr groß",
.modifikator_attacke = -2,
.modifikator_parade = 5,
.initiative = -2,
.bruchfaktor = 2,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Gruufhai",
.img = "icons/weapons/hammers/hammer-drilling-spiked.webp",
.system = .{
.gewicht = .{
.value = 180,
.unit = .unze,
},
.preis = .{
.value = 120,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+6",
.schwellenwert = 14,
.schadensschritte = 2,
.modifikator_attacke = -1,
.modifikator_parade = -3,
.initiative = -2,
.bruchfaktor = 3,
.distanzklasse = "N",
.kampftalente = "Zweihand-Hiebwaffen",
.laenge = .{
.value = 120,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+55
View File
@@ -0,0 +1,55 @@
.{
.Bewaffnung = .{
.name = "Hakendolch",
.system = .{
.gewicht = .{
.value = 50,
.unit = .unze,
},
.preis = .{
.value = 90,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+1",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = -2,
.distanzklasse = "HN",
.kampftalente = "Dolche",
.laenge = .{
.value = 60,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = -1,
.modifikator_parade = 3,
.initiative = 0,
.bruchfaktor = -2,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Hakenspieß",
.img = "icons/weapons/polearms/spear-hooked-spike.webp",
.system = .{
.gewicht = .{
.value = 120,
.unit = .unze,
},
.preis = .{
.value = 70,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 13,
.schadensschritte = 4,
.modifikator_attacke = -1,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 5,
.distanzklasse = "S",
.kampftalente = "Infanteriewaffen",
.laenge = .{
.value = 250,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Haumesser",
.img = "icons/weapons/swords/sword-guard-gold-red.webp",
.system = .{
.gewicht = .{
.value = 90,
.unit = .unze,
},
.preis = .{
.value = 40,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 13,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = -1,
.bruchfaktor = 3,
.distanzklasse = "HN",
.kampftalente = "Hiebwaffen,Säbel",
.laenge = .{
.value = 50,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = true,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Hellebarde",
.img = "icons/weapons/polearms/halberd-engraved-black.webp",
.system = .{
.gewicht = .{
.value = 150,
.unit = .unze,
},
.preis = .{
.value = 75,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+5",
.schwellenwert = 12,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 5,
.distanzklasse = "S",
.kampftalente = "Infanteriewaffen",
.laenge = .{
.value = 200,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Holzfälleraxt",
.img = "icons/weapons/axes/axe-broad-simple.webp",
.system = .{
.gewicht = .{
.value = 160,
.unit = .unze,
},
.preis = .{
.value = 80,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "2d6",
.schwellenwert = 12,
.schadensschritte = 2,
.modifikator_attacke = -1,
.modifikator_parade = -4,
.initiative = -2,
.bruchfaktor = 5,
.distanzklasse = "N",
.kampftalente = "Zweihand-Hiebwaffen",
.laenge = .{
.value = 110,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = true,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Holzspeer",
.img = "icons/weapons/polearms/spear-simple-engraved.webp",
.system = .{
.gewicht = .{
.value = 60,
.unit = .unze,
},
.preis = .{
.value = 10,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 12,
.schadensschritte = 5,
.modifikator_attacke = -1,
.modifikator_parade = -3,
.initiative = 0,
.bruchfaktor = 5,
.distanzklasse = "S",
.kampftalente = "Speere",
.laenge = .{
.value = 150,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = true,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Jagdmesser",
.img = "icons/weapons/swords/sword-broad-worn.webp",
.system = .{
.gewicht = .{
.value = 15,
.unit = .unze,
},
.preis = .{
.value = 50,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 12,
.schadensschritte = 5,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = -1,
.bruchfaktor = 3,
.distanzklasse = "H",
.kampftalente = "Dolche",
.laenge = .{
.value = 30,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Jagdspieß",
.img = "icons/weapons/polearms/pike-flared-brown.webp",
.system = .{
.gewicht = .{
.value = 80,
.unit = .unze,
},
.preis = .{
.value = 80,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+6",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = -1,
.bruchfaktor = 3,
.distanzklasse = "S",
.kampftalente = "Speere",
.laenge = .{
.value = 200,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = true,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Kampfstab",
.img = "icons/weapons/staves/staff-simple.webp",
.system = .{
.gewicht = .{
.value = 80,
.unit = .unze,
},
.preis = .{
.value = 40,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+1",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = 1,
.bruchfaktor = 5,
.distanzklasse = "NS",
.kampftalente = "Stäbe",
.laenge = .{
.value = 150,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Kettenkugel",
.img = "icons/sundries/survival/cuffs-shackles-ball.webp",
.system = .{
.gewicht = .{
.value = 250,
.unit = .unze,
},
.preis = .{
.value = 150,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "3d6",
.schwellenwert = 16,
.schadensschritte = 2,
.modifikator_attacke = -2,
.modifikator_parade = -4,
.initiative = -3,
.bruchfaktor = 2,
.distanzklasse = "S",
.kampftalente = "Kettenwaffen",
.laenge = .{
.value = 100,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+44
View File
@@ -0,0 +1,44 @@
.{
.Bewaffnung = .{
.name = "Kettenstab",
.system = .{
.gewicht = .{
.value = 100,
.unit = .unze,
},
.preis = .{
.value = 120,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 13,
.schadensschritte = 4,
.modifikator_attacke = 1,
.modifikator_parade = 0,
.initiative = 2,
.bruchfaktor = 2,
.distanzklasse = "HN",
.kampftalente = "Kettenstäbe",
.laenge = .{
.value = 120,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Keule",
.img = "icons/weapons/clubs/club-barbed.webp",
.system = .{
.gewicht = .{
.value = 100,
.unit = .unze,
},
.preis = .{
.value = 15,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 11,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = 0,
.bruchfaktor = 3,
.distanzklasse = "N",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 80,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Khunchomer",
.img = "icons/weapons/swords/scimitar-blue.webp",
.system = .{
.gewicht = .{
.value = 90,
.unit = .unze,
},
.preis = .{
.value = 130,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 12,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = 0,
.bruchfaktor = 2,
.distanzklasse = "N",
.kampftalente = "Säbel",
.laenge = .{
.value = 80,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Knochenkeule",
.img = "icons/weapons/clubs/club-bone-blue.webp",
.system = .{
.gewicht = .{
.value = 110,
.unit = .unze,
},
.preis = .{
.value = 0,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 11,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 3,
.distanzklasse = "N",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 100,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Knüppel",
.img = "icons/weapons/clubs/club-simple-black.webp",
.system = .{
.gewicht = .{
.value = 60,
.unit = .unze,
},
.preis = .{
.value = 1,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+1",
.schwellenwert = 11,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = 0,
.bruchfaktor = 6,
.distanzklasse = "N",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 80,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Korspieß",
.img = "icons/weapons/staves/staff-hooked-banded.webp",
.system = .{
.gewicht = .{
.value = 140,
.unit = .unze,
},
.preis = .{
.value = 200,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "2d6+2",
.schwellenwert = 12,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 3,
.distanzklasse = "S",
.kampftalente = "Infanteriewaffen,Speere",
.laenge = .{
.value = 180,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = true,
},
}
}
}
+55
View File
@@ -0,0 +1,55 @@
.{
.Bewaffnung = .{
.name = "Kriegsfächer",
.system = .{
.gewicht = .{
.value = 50,
.unit = .unze,
},
.preis = .{
.value = 250,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 12,
.schadensschritte = 5,
.modifikator_attacke = 0,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 3,
.distanzklasse = "H",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 40,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = 0,
.modifikator_parade = 2,
.initiative = 1,
.bruchfaktor = 3,
},
}
}
}
+44
View File
@@ -0,0 +1,44 @@
.{
.Bewaffnung = .{
.name = "Kriegsflegel",
.system = .{
.gewicht = .{
.value = 120,
.unit = .unze,
},
.preis = .{
.value = 50,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+6",
.schwellenwert = 12,
.schadensschritte = 2,
.modifikator_attacke = -1,
.modifikator_parade = -2,
.initiative = -1,
.bruchfaktor = 5,
.distanzklasse = "S",
.kampftalente = "Zweihandflegel",
.laenge = .{
.value = 150,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Kriegshammer",
.img = "icons/weapons/hammers/hammer-war-spiked.webp",
.system = .{
.gewicht = .{
.value = 180,
.unit = .unze,
},
.preis = .{
.value = 120,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "2d6+3",
.schwellenwert = 14,
.schadensschritte = 2,
.modifikator_attacke = -1,
.modifikator_parade = -3,
.initiative = -2,
.bruchfaktor = 2,
.distanzklasse = "N",
.kampftalente = "Zweihand-Hiebwaffen",
.laenge = .{
.value = 100,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Kriegslanze",
.img = "icons/weapons/polearms/spear-flared-steel.webp",
.system = .{
.gewicht = .{
.value = 150,
.unit = .unze,
},
.preis = .{
.value = 120,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 12,
.schadensschritte = 5,
.modifikator_attacke = -2,
.modifikator_parade = -4,
.initiative = -2,
.bruchfaktor = 5,
.distanzklasse = "P",
.kampftalente = "Speere",
.laenge = .{
.value = 300,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = true,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Kurzschwert",
.img = "icons/weapons/swords/shortsword-green.webp",
.system = .{
.gewicht = .{
.value = 40,
.unit = .unze,
},
.preis = .{
.value = 80,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 11,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 1,
.distanzklasse = "HN",
.kampftalente = "Dolche,Säbel,Schwerter",
.laenge = .{
.value = 50,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Kusliker Säbel",
.img = "icons/weapons/swords/sword-guard-red-jewel.webp",
.system = .{
.gewicht = .{
.value = 70,
.unit = .unze,
},
.preis = .{
.value = 160,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+3",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = 1,
.bruchfaktor = 1,
.distanzklasse = "N",
.kampftalente = "Säbel,Schwerter",
.laenge = .{
.value = 80,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+56
View File
@@ -0,0 +1,56 @@
.{
.Bewaffnung = .{
.name = "Langdolch",
.img = "icons/weapons/swords/shortsword-guard-steel-worn.webp",
.system = .{
.gewicht = .{
.value = 30,
.unit = .unze,
},
.preis = .{
.value = 45,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 12,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = 0,
.bruchfaktor = 1,
.distanzklasse = "H",
.kampftalente = "Dolche,Fechtwaffen",
.laenge = .{
.value = 40,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = 0,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 1,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Langschwert",
.img = "icons/weapons/swords/sword-guard-blue.webp",
.system = .{
.gewicht = .{
.value = 80,
.unit = .unze,
},
.preis = .{
.value = 180,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 11,
.schadensschritte = 4,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = 0,
.bruchfaktor = 1,
.distanzklasse = "N",
.kampftalente = "Schwerter",
.laenge = .{
.value = 95,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+29
View File
@@ -0,0 +1,29 @@
.{
.Bewaffnung = .{
.name = "Lederschild",
.system = .{
.gewicht = .{
.value = 80,
.unit = .stein,
},
.preis = .{
.value = 5,
.unit = .silbertaler,
},
.schild = .{
.aktiv = true,
.groesse = "groß",
.modifikator_attacke = -1,
.modifikator_parade = 3,
.initiative = 0,
.bruchfaktor = 5,
},
}
}
}
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Lindwurmschläger",
.img = "icons/weapons/axes/shortaxe-black.webp",
.system = .{
.gewicht = .{
.value = 95,
.unit = .unze,
},
.preis = .{
.value = 120,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 11,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = -1,
.initiative = -1,
.bruchfaktor = 1,
.distanzklasse = "HN",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 50,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+56
View File
@@ -0,0 +1,56 @@
.{
.Bewaffnung = .{
.name = "Linkhand",
.img = "icons/weapons/daggers/dagger-straight-thin-black.webp",
.system = .{
.gewicht = .{
.value = 30,
.unit = .unze,
},
.preis = .{
.value = 90,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+1",
.schwellenwert = 12,
.schadensschritte = 5,
.modifikator_attacke = 0,
.modifikator_parade = 1,
.initiative = 0,
.bruchfaktor = 0,
.distanzklasse = "H",
.kampftalente = "Dolche",
.laenge = .{
.value = 30,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
.parierwaffe = .{
.aktiv = true,
.modifikator_attacke = 0,
.modifikator_parade = 2,
.initiative = 1,
.bruchfaktor = 0,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Magierdegen",
.img = "icons/weapons/swords/sword-guard-brass-worn.webp",
.system = .{
.gewicht = .{
.value = 30,
.unit = .unze,
},
.preis = .{
.value = 150,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+2",
.schwellenwert = 13,
.schadensschritte = 5,
.modifikator_attacke = 0,
.modifikator_parade = -2,
.initiative = 1,
.bruchfaktor = 4,
.distanzklasse = "N",
.kampftalente = "Fechtwaffen",
.laenge = .{
.value = 75,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Magierstab",
.img = "icons/weapons/staves/staff-ornate.webp",
.system = .{
.gewicht = .{
.value = 90,
.unit = .unze,
},
.preis = .{
.value = 0,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+1",
.schwellenwert = 11,
.schadensschritte = 5,
.modifikator_attacke = -1,
.modifikator_parade = -1,
.initiative = 0,
.bruchfaktor = 0,
.distanzklasse = "NS",
.kampftalente = "Stäbe",
.laenge = .{
.value = 150,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = true,
},
}
}
}
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Magierstab mit Kristallkugel",
.img = "icons/weapons/staves/staff-ornate-engraved-blue.webp",
.system = .{
.gewicht = .{
.value = 150,
.unit = .unze,
},
.preis = .{
.value = 0,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+1",
.schwellenwert = 11,
.schadensschritte = 4,
.modifikator_attacke = -1,
.modifikator_parade = -2,
.initiative = -2,
.bruchfaktor = 0,
.distanzklasse = "N",
.kampftalente = "Stäbe",
.laenge = .{
.value = 150,
.unit = .halbfinger,
},
.zweihaendig = true,
.werfbar = false,
.improvisiert = false,
.priviligiert = true,
},
}
}
}
+29
View File
@@ -0,0 +1,29 @@
.{
.Bewaffnung = .{
.name = "Mattenschild",
.system = .{
.gewicht = .{
.value = 100,
.unit = .stein,
},
.preis = .{
.value = 6,
.unit = .silbertaler,
},
.schild = .{
.aktiv = true,
.groesse = "groß",
.modifikator_attacke = -1,
.modifikator_parade = 4,
.initiative = 0,
.bruchfaktor = 6,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Mengbilar",
.img = "icons/weapons/daggers/dagger-straight-blue.webp",
.system = .{
.gewicht = .{
.value = 20,
.unit = .unze,
},
.preis = .{
.value = 200,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+1",
.schwellenwert = 12,
.schadensschritte = 5,
.modifikator_attacke = 0,
.modifikator_parade = -3,
.initiative = -2,
.bruchfaktor = 7,
.distanzklasse = "H",
.kampftalente = "Dolche",
.laenge = .{
.value = 25,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Messer",
.img = "icons/weapons/daggers/knife-green.webp",
.system = .{
.gewicht = .{
.value = 10,
.unit = .unze,
},
.preis = .{
.value = 10,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6",
.schwellenwert = 12,
.schadensschritte = 6,
.modifikator_attacke = -2,
.modifikator_parade = -3,
.initiative = -2,
.bruchfaktor = 4,
.distanzklasse = "H",
.kampftalente = "Dolche",
.laenge = .{
.value = 25,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = true,
.priviligiert = false,
},
}
}
}
+46
View File
@@ -0,0 +1,46 @@
.{
.Bewaffnung = .{
.name = "Molokdeschnaja",
.img = "icons/weapons/axes/axe-broad-grey.webp",
.system = .{
.gewicht = .{
.value = 100,
.unit = .unze,
},
.preis = .{
.value = 90,
.unit = .silbertaler,
},
.nahkampfwaffe = .{
.aktiv = true,
.basis = "1d6+4",
.schwellenwert = 11,
.schadensschritte = 3,
.modifikator_attacke = 0,
.modifikator_parade = 0,
.initiative = 0,
.bruchfaktor = 3,
.distanzklasse = "N",
.kampftalente = "Hiebwaffen",
.laenge = .{
.value = 100,
.unit = .halbfinger,
},
.zweihaendig = false,
.werfbar = false,
.improvisiert = false,
.priviligiert = false,
},
}
}
}

Some files were not shown because too many files have changed in this diff Show More