62 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
Sven Balzer a1dc061fd8 use plural for default weight units 2025-05-06 22:10:27 +02:00
Sven Balzer 5c598ee037 fix weight display in inventory 2025-05-06 22:07:36 +02:00
Sven Balzer 1080597a24 use GewichtField for Bewaffnung 2025-05-06 19:27:12 +02:00
Sven Balzer cea81ea542 use GewichtField for Ruestung 2025-05-06 19:15:49 +02:00
Sven Balzer 67bd01f56d add GewichtField and use it for Gegenstand 2025-05-06 16:05:50 +02:00
Sven Balzer 0639ce11d7 allow floating point Preis 2025-05-06 15:48:54 +02:00
Sven Balzer d72c4a81bd use PreisField for Bewaffnung 2025-05-06 15:43:13 +02:00
Sven Balzer ec0cda31aa use PreisField for Ruestung 2025-05-06 14:26:26 +02:00
Sven Balzer 32331729cc add PreisField and use it in Gegenstand 2025-05-06 13:33:13 +02:00
Sven Balzer 5e94198077 get rid of all usages of class="placeholder" outside of editable-input 2025-05-06 11:40:31 +02:00
Sven Balzer 975934f06a fix initiative calculation to use the rounded total BE 2025-05-06 11:31:23 +02:00
Sven Balzer b58d0c9ec7 fix parade crit calculation 2025-05-05 23:13:11 +02:00
Sven Balzer 9d4e8f7c9e replace almost all uses of editable-input with DSA41_input 2025-05-05 22:35:30 +02:00
Sven Balzer b54869ac5a fix nested fields field_name 2025-05-05 12:52:23 +02:00
Sven Balzer 942c6b2ce1 allow Handlebars string objects to be passed in as field_name 2025-05-05 12:51:48 +02:00
Sven Balzer f2c4b63382 add the ability to define a subtitle to DSA41_input 2025-05-05 11:58:50 +02:00
Sven Balzer f82548fbaf change VorNachteil.system.kategorie to be choices based and use DSA41_input 2025-05-04 12:16:10 +02:00
Sven Balzer 0cf675f58a change Sonderfertigkeit.system.kategorie to be choices based and use DSA41_input 2025-05-04 12:13:01 +02:00
Sven Balzer 6eb2b88046 change Bewaffnung.system.schild.groesse to be choices based and use DSA41_input 2025-05-04 12:08:27 +02:00
Sven Balzer e7f6e91516 change Kampftalent.system.kategorie to be choices based and use DSA41_input 2025-05-04 11:35:56 +02:00
Sven Balzer f296b2280d add SteigerungsKategorieField and use it for Kampftalent 2025-05-04 11:31:35 +02:00
Sven Balzer 0753dd44ab add options and context to AttributeChoiceField 2025-05-04 11:26:49 +02:00
Sven Balzer f6518cba74 change Talent.system.kategorie to be choices based and use DSA41_input 2025-05-04 11:15:31 +02:00
Sven Balzer a6dc61a924 add AttributeChoiceField and use it for Talent 2025-05-04 11:04:01 +02:00
Sven Balzer bc8c7f6a2b add DSA41_input Handlebars helper 2025-05-04 10:49:56 +02:00
Sven Balzer 5eeb4c7f57 fix localization fallback 2025-05-03 17:58:04 +02:00
371 changed files with 12438 additions and 1211 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ pub fn build(b: *std.Build) void {
const compendium_creator = b.addExecutable(.{
.name = "compendium_creator",
.root_source_file = b.path("zig/compendium_creator.zig"),
.target = b.host,
.target = b.standardTargetOptions (.{}),
.optimize = .Debug,
});
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",
.fingerprint = 0x70fb7b387e6df0f7,
.paths = .{
"build.zig",
"build.zig.zon",
+625 -473
View File
File diff suppressed because it is too large Load Diff
+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>
+5 -2
View File
@@ -1,6 +1,9 @@
<div class="parade_dialog">
<div>
<span class="colspan2">{{localize "DSA41.kampf.modifikator"}}</span>
{{>editable-input type="number" name="modifikator" class="colspan2" 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">
<ruby>{{options.item.basis_attacke}}<rt>{{localize "DSA41.bewaffnung.nahkampfwaffe.basis"}}</rt></ruby>
+2 -2
View File
@@ -1,6 +1,6 @@
<div class="parade_dialog">
<div>
<span class="colspan2">{{localize "DSA41.kampf.modifikator"}}</span>
{{>editable-input type="number" name="modifikator" class="colspan2" value=(lookup formData "modifikator") }}
<input class="colspan2" type="number" name="modifikator" value="{{lookup formData "modifikator"}}">
<div class="dsa41-calculation colspan4 center">
<ruby>{{options.attribute.initial}}<rt>{{localize "DSA41.attributes.initial"}}</rt></ruby>
+2 -2
View File
@@ -1,4 +1,4 @@
<div class="fernkampf_angriff_dialog">
<div>
<span>{{localize "DSA41.kampf.zielgroesse.label"}}</span>
<select name="ziel_groesse">
<option value="-2" {{#if (eq formData.ziel_groesse -2)}}selected{{/if}}>{{localize "DSA41.kampf.zielgroesse.sehr_gross"}}</option>
@@ -42,7 +42,7 @@
</select>
<span>{{localize "DSA41.kampf.modifikator"}}</span>
{{>editable-input type="number" name="modifikator" value=(lookup formData "modifikator")}}
<input type="number" name="modifikator" value="{{lookup formData "modifikator"}}">
<div class="dsa41-calculation colspan4 center">
max(-2,
+3 -3
View File
@@ -1,4 +1,4 @@
<div class="fernkampf_trefferpunkte_dialog">
<div>
<span>{{localize "DSA41.kampf.entfernung.label"}}</span>
<select name="entfernung">
<option value="modifikator1" {{#if (eq formData.entfernung "modifikator1")}}selected{{/if}}>{{localize "DSA41.kampf.entfernung.sehr_nah"}} </option>
@@ -9,10 +9,10 @@
</select>
<span>{{localize "DSA41.kampf.modifikator"}}</span>
{{>editable-input type="number" name="modifikator" value=(lookup formData "modifikator") }}
<input type="number" name="modifikator" value="{{lookup formData "modifikator"}}">
<span>{{localize "DSA41.kampf.crit"}}</span>
{{>editable-input type="checkbox" name="crit" class="center" value=(lookup formData "crit")}}
<input class="center" type="checkbox" name="crit" {{checked (lookup formData "crit")}}>
<div class="dsa41-calculation colspan4 center">
{{#if formData.crit}}<ruby>2 * <rt>{{localize "DSA41.kampf.crit"}}</rt></ruby>({{/if}}
+6 -3
View File
@@ -1,9 +1,12 @@
<div class="parade_dialog">
<div>
<span>{{localize "DSA41.kampf.modifikator"}}</span>
{{>editable-input type="number" name="modifikator" value=(lookup formData "modifikator") }}
<input type="number" name="modifikator" value="{{lookup formData "modifikator"}}">
<span>{{localize "DSA41.kampf.crit"}}</span>
{{>editable-input type="checkbox" name="crit" class="center" value=(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">
{{#if formData.crit}}({{/if}}
+2 -2
View File
@@ -1,4 +1,4 @@
<div class="talent_dialog">
<div>
<span class="colspan2">{{localize "DSA41.kampf.modifikator"}}</span>
{{>editable-input class="colspan2" type="number" name="modifikator" value=(lookup formData "modifikator") }}
<input class="colspan2" type="number" name="modifikator" value="{{lookup formData "modifikator"}}">
</div>
+3 -3
View File
@@ -1,9 +1,9 @@
<div class="trefferpunkte_dialog">
<div>
<span>{{localize "DSA41.kampf.modifikator"}}</span>
{{>editable-input type="number" name="modifikator" value=(lookup formData "modifikator") }}
<input type="number" name="modifikator" value="{{lookup formData "modifikator"}}">
<span>{{localize "DSA41.kampf.crit"}}</span>
{{>editable-input type="checkbox" name="crit" class="center" value=(lookup formData "crit")}}
<input class="center" type="checkbox" name="crit" {{checked (lookup formData "crit")}}>
<div class="dsa41-calculation colspan4 center">
{{#if formData.crit}}<ruby>2 * <rt>{{localize "DSA41.kampf.crit"}}</rt></ruby>({{/if}}
+1 -1
View File
@@ -1,4 +1,4 @@
<div class="trefferzone_dialog">
<div>
<select name="trefferzone" class="colspan4">
<option value="kopf" {{#if (eq formData.trefferzone "kopf") }}selected{{/if}}>{{localize "DSA41.ruestungen.kopf"}} </option>
<option value="brust" {{#if (eq formData.trefferzone "brust") }}selected{{/if}}>{{localize "DSA41.ruestungen.brust"}} </option>
+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")}}
<input type="checkbox" name="{{name}}" {{#if data-name}}data-name="{{data-name}}"{{/if}} {{checked value}}>
{{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 placeholder}}
+98 -98
View File
@@ -1,130 +1,130 @@
<div class="Bewaffnung {{ cssClass }}">
<div>
<div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col">
{{>editable-input type="text" name="name" value=item.name placeholder=(localize "DSA41.name")}}
<div class="row gap">
{{>editable-input type="number" name="system.gewicht" value=item.system.gewicht placeholder=(localize "DSA41.weight")}}
{{>editable-input type="number" name="system.preis" value=item.system.preis placeholder=(localize "DSA41.price")}}
{{DSA41_input "name" subtitle="DSA41.name"}}
<div class="grid2 gap">
{{DSA41_input "system.gewicht" subtitle="DSA41.weight.label"}}
{{DSA41_input "system.preis" subtitle="DSA41.price"}}
</div>
</div>
</div>
<nav class="tabs">
<div class="row noflex {{#if (eq tabGroups.primary 'tab1')}}active{{/if}}" data-group="primary" data-tab="tab1">
<a data-group="primary" data-tab="tab1" data-action="tab">{{localize "DSA41.bewaffnung.nahkampfwaffe.label"}}</a>
{{>editable-input type="checkbox" name="system.nahkampfwaffe.aktiv" value=item.system.nahkampfwaffe.aktiv}}
{{DSA41_input "system.nahkampfwaffe.aktiv"}}
</div>
<div class="row noflex {{#if (eq tabGroups.primary 'tab2')}}active{{/if}}" data-group="primary" data-tab="tab2">
<a data-group="primary" data-tab="tab2" data-action="tab">{{localize "DSA41.bewaffnung.parierwaffe.label"}}</a>
{{>editable-input type="checkbox" name="system.parierwaffe.aktiv" value=item.system.parierwaffe.aktiv}}
{{DSA41_input "system.parierwaffe.aktiv"}}
</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.bewaffnung.schild.label"}}</a>
{{>editable-input type="checkbox" name="system.schild.aktiv" value=item.system.schild.aktiv}}
{{DSA41_input "system.schild.aktiv"}}
</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.bewaffnung.fernkampfwaffe.label"}}</a>
{{>editable-input type="checkbox" name="system.fernkampfwaffe.aktiv" value=item.system.fernkampfwaffe.aktiv}}
{{DSA41_input "system.fernkampfwaffe.aktiv"}}
</div>
</nav>
<div class="tab {{#if (eq tabGroups.primary 'tab1')}}active{{/if}}" data-group="primary" data-tab="tab1">
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.trefferpunkte"}}</span>
<div class="grid3 center">
{{>editable-input type="text" name="system.nahkampfwaffe.basis" value=item.system.nahkampfwaffe.basis placeholder=(localize "DSA41.bewaffnung.nahkampfwaffe.basis")}}
{{>editable-input type="number" name="system.nahkampfwaffe.schwellenwert" value=item.system.nahkampfwaffe.schwellenwert placeholder=(localize "DSA41.bewaffnung.nahkampfwaffe.schwellenwert")}}
{{>editable-input type="number" name="system.nahkampfwaffe.schadensschritte" value=item.system.nahkampfwaffe.schadensschritte placeholder=(localize "DSA41.bewaffnung.nahkampfwaffe.schadensschritte")}}
</div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.modifikator"}}</span>
<div class="grid2">
{{>editable-input type="number" name="system.nahkampfwaffe.modifikator_attacke" value=item.system.nahkampfwaffe.modifikator_attacke placeholder=(localize "DSA41.bewaffnung.nahkampfwaffe.attacke")}}
{{>editable-input type="number" name="system.nahkampfwaffe.modifikator_parade" value=item.system.nahkampfwaffe.modifikator_parade placeholder=(localize "DSA41.bewaffnung.nahkampfwaffe.parade")}}
<div>
<div class="tab {{#if (eq tabGroups.primary 'tab1')}}active{{/if}}" data-group="primary" data-tab="tab1">
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.trefferpunkte"}}</span>
<div class="grid3 center">
{{DSA41_input "system.nahkampfwaffe.basis" subtitle="DSA41.bewaffnung.nahkampfwaffe.basis"}}
{{DSA41_input "system.nahkampfwaffe.schwellenwert" subtitle="DSA41.bewaffnung.nahkampfwaffe.schwellenwert"}}
{{DSA41_input "system.nahkampfwaffe.schadensschritte" subtitle="DSA41.bewaffnung.nahkampfwaffe.schadensschritte"}}
</div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.modifikator"}}</span>
<div class="grid2">
{{DSA41_input "system.nahkampfwaffe.modifikator_attacke" subtitle="DSA41.bewaffnung.nahkampfwaffe.attacke"}}
{{DSA41_input "system.nahkampfwaffe.modifikator_parade" subtitle="DSA41.bewaffnung.nahkampfwaffe.parade"}}
</div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.initiative"}}</span>
{{DSA41_input "system.nahkampfwaffe.initiative"}}
<span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span>
{{DSA41_input "system.nahkampfwaffe.bruchfaktor"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.distanzklasse"}}</span>
{{DSA41_input "system.nahkampfwaffe.distanzklasse"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.kampftalente"}}</span>
{{DSA41_input "system.nahkampfwaffe.kampftalente"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.laenge"}}</span>
{{DSA41_input "system.nahkampfwaffe.laenge"}}
<div class="colspan2"></div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.zweihaendig"}}</span>
{{DSA41_input "system.nahkampfwaffe.zweihaendig"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.werfbar"}}</span>
{{DSA41_input "system.nahkampfwaffe.werfbar"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.improvisiert"}}</span>
{{DSA41_input "system.nahkampfwaffe.improvisiert"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.priviligiert"}}</span>
{{DSA41_input "system.nahkampfwaffe.priviligiert"}}
</div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.initiative"}}</span>
<div>{{>editable-input type="number" name="system.nahkampfwaffe.initiative" value=item.system.nahkampfwaffe.initiative}}</div>
<span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span>
<div>{{>editable-input type="number" name="system.nahkampfwaffe.bruchfaktor" value=item.system.nahkampfwaffe.bruchfaktor}}</div>
<div class="tab {{#if (eq tabGroups.primary 'tab2')}}active{{/if}}" data-group="primary" data-tab="tab2">
<span>{{localize "DSA41.bewaffnung.parierwaffe.initiative"}}</span>
{{DSA41_input "system.parierwaffe.initiative"}}
<span>{{localize "DSA41.bewaffnung.parierwaffe.modifikator"}}</span>
<div class="grid2">
{{DSA41_input "system.parierwaffe.modifikator_attacke" subtitle="DSA41.bewaffnung.parierwaffe.attacke"}}
{{DSA41_input "system.parierwaffe.modifikator_parade" subtitle="DSA41.bewaffnung.parierwaffe.parade"}}
</div>
<span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span>
{{DSA41_input "system.parierwaffe.bruchfaktor"}}
</div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.distanzklasse"}}</span>
<div>{{>editable-input type="text" name="system.nahkampfwaffe.distanzklasse" value=item.system.nahkampfwaffe.distanzklasse}}</div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.kampftalente"}}</span>
<div>{{>editable-input type="text" name="system.nahkampfwaffe.kampftalente" value=item.system.nahkampfwaffe.kampftalente}}</div>
<div class="tab {{#if (eq tabGroups.primary 'tab3')}}active{{/if}}" data-group="primary" data-tab="tab3">
<span>{{localize "DSA41.bewaffnung.schild.groesse.label"}}</span>
{{DSA41_input "system.schild.groesse"}}
<span>{{localize "DSA41.bewaffnung.schild.modifikator"}}</span>
<div class="grid2">
{{DSA41_input "system.schild.modifikator_attacke" subtitle="DSA41.bewaffnung.schild.attacke"}}
{{DSA41_input "system.schild.modifikator_parade" subtitle="DSA41.bewaffnung.schild.parade"}}
</div>
<span>{{localize "DSA41.bewaffnung.schild.initiative"}}</span>
{{DSA41_input "system.schild.initiative"}}
<span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span>
{{DSA41_input "system.schild.bruchfaktor"}}
</div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.laenge"}}</span>
<div>{{>editable-input type="number" name="system.nahkampfwaffe.laenge" value=item.system.nahkampfwaffe.laenge}}</div>
<div class="colspan2"></div>
<div class="tab {{#if (eq tabGroups.primary 'tab4')}}active{{/if}}" data-group="primary" data-tab="tab4">
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.trefferpunkte"}}</span>
<div class="center">{{DSA41_input "system.fernkampfwaffe.basis"}}</div>
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.laden"}}</span>
{{DSA41_input "system.fernkampfwaffe.laden"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.zweihaendig"}}</span>
<div>{{>editable-input type="checkbox" name="system.nahkampfwaffe.zweihaendig" value=item.system.nahkampfwaffe.zweihaendig}}</div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.werfbar"}}</span>
<div>{{>editable-input type="checkbox" name="system.nahkampfwaffe.werfbar" value=item.system.nahkampfwaffe.werfbar}}</div>
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.munitionskosten"}}</span>
{{DSA41_input "system.fernkampfwaffe.munitionskosten"}}
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.munitionsgewicht"}}</span>
{{DSA41_input "system.fernkampfwaffe.munitionsgewicht"}}
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.improvisiert"}}</span>
<div>{{>editable-input type="checkbox" name="system.nahkampfwaffe.improvisiert" value=item.system.nahkampfwaffe.improvisiert}}</div>
<span>{{localize "DSA41.bewaffnung.nahkampfwaffe.priviligiert"}}</span>
<div>{{>editable-input type="checkbox" name="system.nahkampfwaffe.priviligiert" value=item.system.nahkampfwaffe.priviligiert}}</div>
</div>
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.reichweiten"}}</span>
<div class="colspan3 grid5">
{{DSA41_input "system.fernkampfwaffe.reichweite1"}}
{{DSA41_input "system.fernkampfwaffe.reichweite2"}}
{{DSA41_input "system.fernkampfwaffe.reichweite3"}}
{{DSA41_input "system.fernkampfwaffe.reichweite4"}}
{{DSA41_input "system.fernkampfwaffe.reichweite5"}}
</div>
<div class="tab {{#if (eq tabGroups.primary 'tab2')}}active{{/if}}" data-group="primary" data-tab="tab2">
<span>{{localize "DSA41.bewaffnung.parierwaffe.initiative"}}</span>
<div>{{>editable-input type="number" name="system.parierwaffe.initiative" value=item.system.parierwaffe.initiative}}</div>
<span>{{localize "DSA41.bewaffnung.parierwaffe.modifikator"}}</span>
<div class="grid2">
{{>editable-input type="number" name="system.parierwaffe.modifikator_attacke" value=item.system.parierwaffe.modifikator_attacke placeholder=(localize "DSA41.bewaffnung.parierwaffe.attacke")}}
{{>editable-input type="number" name="system.parierwaffe.modifikator_parade" value=item.system.parierwaffe.modifikator_parade placeholder=(localize "DSA41.bewaffnung.parierwaffe.parade")}}
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.modifikator"}}</span>
<div class="row colspan3 grid5">
{{DSA41_input "system.fernkampfwaffe.modifikator1"}}
{{DSA41_input "system.fernkampfwaffe.modifikator2"}}
{{DSA41_input "system.fernkampfwaffe.modifikator3"}}
{{DSA41_input "system.fernkampfwaffe.modifikator4"}}
{{DSA41_input "system.fernkampfwaffe.modifikator5"}}
</div>
</div>
<span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span>
<div>{{>editable-input type="number" name="system.parierwaffe.bruchfaktor" value=item.system.parierwaffe.bruchfaktor}}</div>
</div>
<div class="tab {{#if (eq tabGroups.primary 'tab3')}}active{{/if}}" data-group="primary" data-tab="tab3">
<span>{{localize "DSA41.bewaffnung.schild.groesse.label"}}</span>
<select name="system.schild.groesse">
<option value="klein" {{#if (eq item.system.schild.groesse "klein")}} selected {{/if}}>{{localize "DSA41.bewaffnung.schild.groesse.klein"}}</option>
<option value="gross" {{#if (eq item.system.schild.groesse "gross")}} selected {{/if}}>{{localize "DSA41.bewaffnung.schild.groesse.gross"}}</option>
<option value="sehr_gross" {{#if (eq item.system.schild.groesse "sehr_gross")}} selected {{/if}}>{{localize "DSA41.bewaffnung.schild.groesse.sehr_gross"}}</option>
</select>
<span>{{localize "DSA41.bewaffnung.schild.modifikator"}}</span>
<div class="grid2">
{{>editable-input type="number" name="system.schild.modifikator_attacke" value=item.system.schild.modifikator_attacke placeholder=(localize "DSA41.bewaffnung.schild.attacke")}}
{{>editable-input type="number" name="system.schild.modifikator_parade" value=item.system.schild.modifikator_parade placeholder=(localize "DSA41.bewaffnung.schild.parade")}}
</div>
<span>{{localize "DSA41.bewaffnung.schild.initiative"}}</span>
<div>{{>editable-input type="number" name="system.schild.initiative" value=item.system.schild.initiative}}</div>
<span>{{localize "DSA41.bewaffnung.bruchfaktor"}}</span>
<div>{{>editable-input type="number" name="system.schild.bruchfaktor" value=item.system.schild.bruchfaktor}}</div>
</div>
<div class="tab {{#if (eq tabGroups.primary 'tab4')}}active{{/if}}" data-group="primary" data-tab="tab4">
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.trefferpunkte"}}</span>
<div class="center">{{>editable-input type="text" name="system.fernkampfwaffe.basis" value=item.system.fernkampfwaffe.basis}}</div>
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.laden"}}</span>
<div>{{>editable-input type="number" name="system.fernkampfwaffe.laden" value=item.system.fernkampfwaffe.laden}}</div>
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.munitionskosten"}}</span>
<div>{{>editable-input type="number" name="system.fernkampfwaffe.munitionskosten" value=item.system.fernkampfwaffe.munitionskosten}}</div>
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.munitionsgewicht"}}</span>
<div>{{>editable-input type="number" name="system.fernkampfwaffe.munitionsgewicht" value=item.system.fernkampfwaffe.munitionsgewicht}}</div>
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.reichweiten"}}</span>
<div class="colspan3 grid5">
{{>editable-input type="number" name="system.fernkampfwaffe.reichweite1" value=item.system.fernkampfwaffe.reichweite1}}
{{>editable-input type="number" name="system.fernkampfwaffe.reichweite2" value=item.system.fernkampfwaffe.reichweite2}}
{{>editable-input type="number" name="system.fernkampfwaffe.reichweite3" value=item.system.fernkampfwaffe.reichweite3}}
{{>editable-input type="number" name="system.fernkampfwaffe.reichweite4" value=item.system.fernkampfwaffe.reichweite4}}
{{>editable-input type="number" name="system.fernkampfwaffe.reichweite5" value=item.system.fernkampfwaffe.reichweite5}}
</div>
<span>{{localize "DSA41.bewaffnung.fernkampfwaffe.modifikator"}}</span>
<div class="row colspan3 grid5">
{{>editable-input type="number" name="system.fernkampfwaffe.modifikator1" value=item.system.fernkampfwaffe.modifikator1}}
{{>editable-input type="number" name="system.fernkampfwaffe.modifikator2" value=item.system.fernkampfwaffe.modifikator2}}
{{>editable-input type="number" name="system.fernkampfwaffe.modifikator3" value=item.system.fernkampfwaffe.modifikator3}}
{{>editable-input type="number" name="system.fernkampfwaffe.modifikator4" value=item.system.fernkampfwaffe.modifikator4}}
{{>editable-input type="number" name="system.fernkampfwaffe.modifikator5" value=item.system.fernkampfwaffe.modifikator5}}
</div>
{{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
</div>
</div>
+6 -5
View File
@@ -1,12 +1,13 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off">
<div>
<div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col">
{{>editable-input type="text" name="name" value=item.name placeholder=(localize "DSA41.name")}}
<div class="row gap">
{{>editable-input type="number" name="system.gewicht" value=item.system.gewicht placeholder=(localize "DSA41.weight")}}
{{>editable-input type="number" name="system.preis" value=item.system.preis placeholder=(localize "DSA41.price")}}
{{DSA41_input "name" subtitle="DSA41.name"}}
<div class="grid2 gap">
{{DSA41_input "system.gewicht" subtitle="DSA41.weight.label"}}
{{DSA41_input "system.preis" subtitle="DSA41.price"}}
</div>
</div>
</div>
{{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
</div>
+6 -29
View File
@@ -1,39 +1,16 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off">
<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">
{{>editable-input type="text" name="name" value=item.name placeholder=(localize "DSA41.name")}}
<div>
<select name="system.steigern">
<option value="A_Star" {{#if (eq item.system.steigern "A_Star")}}selected{{/if}}>{{localize "DSA41.kampftalent.steigern.A_Star"}}</option>
<option value="A" {{#if (eq item.system.steigern "A") }}selected{{/if}}>{{localize "DSA41.kampftalent.steigern.A"}} </option>
<option value="B" {{#if (eq item.system.steigern "B") }}selected{{/if}}>{{localize "DSA41.kampftalent.steigern.B"}} </option>
<option value="C" {{#if (eq item.system.steigern "C") }}selected{{/if}}>{{localize "DSA41.kampftalent.steigern.C"}} </option>
<option value="D" {{#if (eq item.system.steigern "D") }}selected{{/if}}>{{localize "DSA41.kampftalent.steigern.D"}} </option>
<option value="E" {{#if (eq item.system.steigern "E") }}selected{{/if}}>{{localize "DSA41.kampftalent.steigern.E"}} </option>
<option value="F" {{#if (eq item.system.steigern "F") }}selected{{/if}}>{{localize "DSA41.kampftalent.steigern.F"}} </option>
<option value="G" {{#if (eq item.system.steigern "G") }}selected{{/if}}>{{localize "DSA41.kampftalent.steigern.G"}} </option>
<option value="H" {{#if (eq item.system.steigern "H") }}selected{{/if}}>{{localize "DSA41.kampftalent.steigern.H"}} </option>
</select>
<div class="placeholder">{{localize "DSA41.kampftalent.label_steigern"}}</div>
</div>
{{>editable-input type="text" name="system.behinderung" value=item.system.behinderung placeholder=(localize "DSA41.talente.label_behinderung")}}
{{DSA41_input "name" subtitle="DSA41.name"}}
{{DSA41_input "system.steigern" subtitle="DSA41.kampftalent.label_steigern"}}
{{DSA41_input "system.behinderung" subtitle="DSA41.talente.label_behinderung"}}
</div>
<div class="grid gap">
<div>
<select name="system.kategorie">
<option value="waffenlos" {{#if (eq item.system.kategorie "waffenlos")}}selected{{/if}}>{{localize "DSA41.kampftalent.kategorie.waffenlos"}}</option>
<option value="nahkampf" {{#if (eq item.system.kategorie "nahkampf") }}selected{{/if}}>{{localize "DSA41.kampftalent.kategorie.nahkampf"}} </option>
<option value="fernkampf" {{#if (eq item.system.kategorie "fernkampf")}}selected{{/if}}>{{localize "DSA41.kampftalent.kategorie.fernkampf"}}</option>
</select>
<div class="placeholder">{{localize "DSA41.talente.label_kategorie"}}</div>
</div>
{{DSA41_input "system.kategorie" subtitle="DSA41.talente.label_kategorie"}}
</div>
</div>
</div>
<div>
<prose-mirror name="system.beschreibung" value="{{item.system.beschreibung}}" compact="true">
</prose-mirror>
</div>
{{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
</div>
+17 -15
View File
@@ -1,39 +1,41 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off">
<div>
<div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" data-action="editImage" data-edit="img">
<div class="col">
{{>editable-input type="text" name="name" value=item.name placeholder=(localize "DSA41.name")}}
<div class="row gap">
{{>editable-input type="number" name="system.gewicht" value=item.system.gewicht placeholder=(localize "DSA41.weight")}}
{{>editable-input type="number" name="system.preis" value=item.system.preis placeholder=(localize "DSA41.price")}}
{{DSA41_input "name" subtitle="DSA41.name"}}
<div class="grid2 gap">
{{DSA41_input "system.gewicht" subtitle="DSA41.weight.label"}}
{{DSA41_input "system.preis" subtitle="DSA41.price"}}
</div>
</div>
</div>
<div class="tab active">
<span>{{localize "DSA41.ruestungen.kopf"}}</span>
<div>{{>editable-input type="number" name="system.kopf" value=item.system.kopf}}</div>
{{DSA41_input "system.kopf"}}
<span>{{localize "DSA41.ruestungen.brust"}}</span>
<div>{{>editable-input type="number" name="system.brust" value=item.system.brust}}</div>
{{DSA41_input "system.brust"}}
<span>{{localize "DSA41.ruestungen.ruecken"}}</span>
<div>{{>editable-input type="number" name="system.ruecken" value=item.system.ruecken}}</div>
{{DSA41_input "system.ruecken"}}
<span>{{localize "DSA41.ruestungen.bauch"}}</span>
<div>{{>editable-input type="number" name="system.bauch" value=item.system.bauch}}</div>
{{DSA41_input "system.bauch"}}
<span>{{localize "DSA41.ruestungen.linker_arm"}}</span>
<div>{{>editable-input type="number" name="system.linker_arm" value=item.system.linker_arm}}</div>
{{DSA41_input "system.linker_arm"}}
<span>{{localize "DSA41.ruestungen.rechter_arm"}}</span>
<div>{{>editable-input type="number" name="system.rechter_arm" value=item.system.rechter_arm}}</div>
{{DSA41_input "system.rechter_arm"}}
<span>{{localize "DSA41.ruestungen.linkes_bein"}}</span>
<div>{{>editable-input type="number" name="system.linkes_bein" value=item.system.linkes_bein}}</div>
{{DSA41_input "system.linkes_bein"}}
<span>{{localize "DSA41.ruestungen.rechtes_bein"}}</span>
<div>{{>editable-input type="number" name="system.rechtes_bein" value=item.system.rechtes_bein}}</div>
{{DSA41_input "system.rechtes_bein"}}
<span>{{localize "DSA41.ruestungen.gesamt_ruestungsschutz"}}</span>
<div>{{>editable-input type="number" name="system.gesamt_ruestungsschutz" value=item.system.gesamt_ruestungsschutz}}</div>
{{DSA41_input "system.gesamt_ruestungsschutz"}}
<span>{{localize "DSA41.ruestungen.gesamt_behinderung"}}</span>
<div>{{>editable-input type="number" name="system.gesamt_behinderung" value=item.system.gesamt_behinderung}}</div>
{{DSA41_input "system.gesamt_behinderung"}}
{{DSA41_input "system.beschreibung" elementType="prose-mirror" classes="colspan-all"}}
</div>
</div>
+6 -18
View File
@@ -1,28 +1,16 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off">
<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="grid2 gap">
{{>editable-input type="text" name="name" value=item.name placeholder=(localize "DSA41.name")}}
<div>
<select name="system.kategorie">
<option value="allgemein" {{#if (eq item.system.kategorie "allgemein")}}selected{{/if}}>{{localize "DSA41.sonderfertigkeiten.kategorie.allgemein"}}</option>
<option value="kampf" {{#if (eq item.system.kategorie "kampf") }}selected{{/if}}>{{localize "DSA41.sonderfertigkeiten.kategorie.kampf"}} </option>
<option value="magisch" {{#if (eq item.system.kategorie "magisch") }}selected{{/if}}>{{localize "DSA41.sonderfertigkeiten.kategorie.magisch"}} </option>
<option value="klerikal" {{#if (eq item.system.kategorie "klerikal") }}selected{{/if}}>{{localize "DSA41.sonderfertigkeiten.kategorie.klerikal"}} </option>
</select>
<div class="placeholder">{{localize "DSA41.sonderfertigkeiten.kategorie.label"}}</div>
</div>
{{DSA41_input "name" subtitle="DSA41.name"}}
{{DSA41_input "system.kategorie" subtitle="DSA41.sonderfertigkeiten.kategorie.label"}}
</div>
<div class="grid2 gap">
{{>editable-input type="number" name="system.kosten" value=item.system.kosten placeholder=(localize "DSA41.sonderfertigkeiten.kosten")}}
{{>editable-input type="number" name="system.verbreitung" value=item.system.verbreitung placeholder=(localize "DSA41.sonderfertigkeiten.verbreitung")}}
{{DSA41_input "system.kosten" subtitle="DSA41.sonderfertigkeiten.kosten"}}
{{DSA41_input "system.verbreitung" subtitle="DSA41.sonderfertigkeiten.verbreitung"}}
</div>
</div>
</div>
<div>
<prose-mirror name="system.beschreibung" value="{{item.system.beschreibung}}" compact="true">
</prose-mirror>
</div>
{{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
</div>
+8 -45
View File
@@ -1,55 +1,18 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off">
<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">
{{>editable-input type="text" name="name" value=item.name placeholder=(localize "DSA41.name")}}
<div>
<select name="system.kategorie">
<option value="koerperliche" {{#if (eq item.system.kategorie "koerperliche") }}selected{{/if}}>{{localize "DSA41.talente.koerperliche.label"}} </option>
<option value="gesellschaftliche" {{#if (eq item.system.kategorie "gesellschaftliche")}}selected{{/if}}>{{localize "DSA41.talente.gesellschaftliche.label"}}</option>
<option value="natur" {{#if (eq item.system.kategorie "natur") }}selected{{/if}}>{{localize "DSA41.talente.natur.label"}} </option>
<option value="wissens" {{#if (eq item.system.kategorie "wissens") }}selected{{/if}}>{{localize "DSA41.talente.wissens.label"}} </option>
<option value="handwerks" {{#if (eq item.system.kategorie "handwerks") }}selected{{/if}}>{{localize "DSA41.talente.handwerks.label"}} </option>
</select>
<div class="placeholder">{{localize "DSA41.talente.label_kategorie"}}</div>
</div>
{{>editable-input type="text" name="system.behinderung" value=item.system.behinderung placeholder=(localize "DSA41.talente.label_behinderung")}}
{{DSA41_input "name" subtitle="DSA41.name"}}
{{DSA41_input "system.kategorie" subtitle="DSA41.talente.label_kategorie"}}
{{DSA41_input "system.behinderung" subtitle="DSA41.talente.label_behinderung"}}
</div>
<div class="grid3 gap">
<select name="system.attribute1">
<option value="courage" {{#if (eq item.system.attribute1 "courage") }}selected{{/if}}>{{localize "DSA41.attributes.long.courage"}} </option>
<option value="cleverness" {{#if (eq item.system.attribute1 "cleverness") }}selected{{/if}}>{{localize "DSA41.attributes.long.cleverness"}} </option>
<option value="intuition" {{#if (eq item.system.attribute1 "intuition") }}selected{{/if}}>{{localize "DSA41.attributes.long.intuition"}} </option>
<option value="charisma" {{#if (eq item.system.attribute1 "charisma") }}selected{{/if}}>{{localize "DSA41.attributes.long.charisma"}} </option>
<option value="dexterity" {{#if (eq item.system.attribute1 "dexterity") }}selected{{/if}}>{{localize "DSA41.attributes.long.dexterity"}} </option>
<option value="agility" {{#if (eq item.system.attribute1 "agility") }}selected{{/if}}>{{localize "DSA41.attributes.long.agility"}} </option>
<option value="constitution" {{#if (eq item.system.attribute1 "constitution")}}selected{{/if}}>{{localize "DSA41.attributes.long.constitution"}}</option>
<option value="strength" {{#if (eq item.system.attribute1 "strength") }}selected{{/if}}>{{localize "DSA41.attributes.long.strength"}} </option>
</select>
<select name="system.attribute2">
<option value="courage" {{#if (eq item.system.attribute2 "courage") }}selected{{/if}}>{{localize "DSA41.attributes.long.courage"}} </option>
<option value="cleverness" {{#if (eq item.system.attribute2 "cleverness") }}selected{{/if}}>{{localize "DSA41.attributes.long.cleverness"}} </option>
<option value="intuition" {{#if (eq item.system.attribute2 "intuition") }}selected{{/if}}>{{localize "DSA41.attributes.long.intuition"}} </option>
<option value="charisma" {{#if (eq item.system.attribute2 "charisma") }}selected{{/if}}>{{localize "DSA41.attributes.long.charisma"}} </option>
<option value="dexterity" {{#if (eq item.system.attribute2 "dexterity") }}selected{{/if}}>{{localize "DSA41.attributes.long.dexterity"}} </option>
<option value="agility" {{#if (eq item.system.attribute2 "agility") }}selected{{/if}}>{{localize "DSA41.attributes.long.agility"}} </option>
<option value="constitution" {{#if (eq item.system.attribute2 "constitution")}}selected{{/if}}>{{localize "DSA41.attributes.long.constitution"}}</option>
<option value="strength" {{#if (eq item.system.attribute2 "strength") }}selected{{/if}}>{{localize "DSA41.attributes.long.strength"}} </option>
</select>
<select name="system.attribute3">
<option value="courage" {{#if (eq item.system.attribute3 "courage") }}selected{{/if}}>{{localize "DSA41.attributes.long.courage"}} </option>
<option value="cleverness" {{#if (eq item.system.attribute3 "cleverness") }}selected{{/if}}>{{localize "DSA41.attributes.long.cleverness"}} </option>
<option value="intuition" {{#if (eq item.system.attribute3 "intuition") }}selected{{/if}}>{{localize "DSA41.attributes.long.intuition"}} </option>
<option value="charisma" {{#if (eq item.system.attribute3 "charisma") }}selected{{/if}}>{{localize "DSA41.attributes.long.charisma"}} </option>
<option value="dexterity" {{#if (eq item.system.attribute3 "dexterity") }}selected{{/if}}>{{localize "DSA41.attributes.long.dexterity"}} </option>
<option value="agility" {{#if (eq item.system.attribute3 "agility") }}selected{{/if}}>{{localize "DSA41.attributes.long.agility"}} </option>
<option value="constitution" {{#if (eq item.system.attribute3 "constitution")}}selected{{/if}}>{{localize "DSA41.attributes.long.constitution"}}</option>
<option value="strength" {{#if (eq item.system.attribute3 "strength") }}selected{{/if}}>{{localize "DSA41.attributes.long.strength"}} </option>
</select>
{{DSA41_input "system.attribute1"}}
{{DSA41_input "system.attribute2"}}
{{DSA41_input "system.attribute3"}}
</div>
</div>
</div>
{{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
</div>
+6 -13
View File
@@ -1,22 +1,15 @@
<div class="item-sheet {{ cssClass }}" autocomplete="off">
<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="grid2 gap">
{{>editable-input type="text" name="name" value=item.name placeholder=(localize "DSA41.name")}}
{{>editable-input type="number" name="system.kosten" value=item.system.kosten placeholder=(localize "DSA41.vornachteil.kosten")}}
{{DSA41_input "name" subtitle="DSA41.name"}}
{{DSA41_input "system.kosten" subtitle="DSA41.vornachteil.kosten"}}
</div>
<div>
<select name="system.kategorie">
<option value="vorteil" {{#if (eq item.system.kategorie "vorteil") }}selected{{/if}}>{{localize "DSA41.vornachteil.kategorie.vorteil"}} </option>
<option value="nachteil" {{#if (eq item.system.kategorie "nachteil")}}selected{{/if}}>{{localize "DSA41.vornachteil.kategorie.nachteil"}} </option>
</select>
<div class="placeholder">{{localize "DSA41.vornachteil.kategorie.label"}}</div>
<div class="grid gap">
{{DSA41_input "system.kategorie" subtitle="DSA41.vornachteil.kategorie.label"}}
</div>
</div>
</div>
<div>
<prose-mirror name="system.beschreibung" value="{{item.system.beschreibung}}" compact="true">
</prose-mirror>
</div>
{{DSA41_input "system.beschreibung" elementType="prose-mirror"}}
</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>
+155 -18
View File
@@ -11,7 +11,8 @@
"Talent": "Talent",
"Kampftalent": "Kampftalent",
"Sonderfertigkeit": "Sonderfertigkeit",
"VorNachteil": "Vor-/Nachteil"
"VorNachteil": "Vor-/Nachteil",
"Zauber": "Zauber"
}
},
@@ -21,7 +22,6 @@
"culture": "Kultur",
"profession": "Profession",
"sozialstatus": "Sozialstatus",
"weight": "Gewicht",
"price": "Preis",
"abenteuerpunkte": "Abenteuerpunkte",
@@ -34,6 +34,42 @@
"kreuzer": "Kreuzer"
},
"weight": {
"label": "Gewicht",
"gran": "Gran",
"karat": "Karat",
"skrupel": "Skrupel",
"unze": "Unzen",
"stein": "Steine",
"sack": "Säcke",
"quader": "Quader"
},
"laenge": {
"halbfinger": "Halbfinger",
"finger": "Finger",
"spann": "Spann",
"schritt": "Schritt",
"faden": "Faden",
"lot": "Lot",
"meile": "Meile",
"tagesreise": "Tagesreise",
"baryd": "Baryd"
},
"steigerungskategorie": {
"A_Star": "A*",
"A": "A",
"B": "B",
"C": "C",
"D": "D",
"E": "E",
"F": "F",
"G": "G",
"H": "H"
},
"chat": {
"result": "Ergebnis",
"success": "Geschafft",
@@ -43,7 +79,8 @@
"value": "Wert",
"roll": "Wurf",
"talentwert_short": "TaW",
"talentwert_short": "TaW",
"zauberfertigkeitswert_short": "ZfW",
"targets": "Ziele",
"trefferpunkte_apply": "Zuweisen"
@@ -110,7 +147,8 @@
"constitution": "Konstitution",
"strength": "Körperkraft",
"talent": "Talent",
"talent": "Talent",
"zauber": "Zauber",
"attacke": "Attacke",
"parade": "Parade",
@@ -124,7 +162,24 @@
"eigenschaften": "Eigenschaften",
"talente": "Talente",
"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": {
@@ -165,18 +220,6 @@
"waffenlos": "Waffenlos",
"nahkampf": "Bewaffneter Nahkampf",
"fernkampf": "Fernkampf"
},
"steigern": {
"A_Star": "A*",
"A": "A",
"B": "B",
"C": "C",
"D": "D",
"E": "E",
"F": "F",
"G": "G",
"H": "H"
}
},
@@ -436,7 +479,8 @@
"inventar": {
"bewaffnung": "Bewaffnung",
"ruestungen": "Rüstungen",
"gegenstaende": "Gegenstände"
"gegenstaende": "Gegenstände",
"anzahl": "Anzahl"
},
"kampf": {
@@ -447,6 +491,8 @@
"ruestungen": "Rüstungen",
"modifikator": "Modifikator",
"crit": "Glückliche Attacke",
"zauber": "Zauber",
"anmerkung": "Anmerkung",
"zielgroesse": {
"label": "Zielgröße",
@@ -493,6 +539,97 @@
"still": "Still",
"seitenwind": "Böiger 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)"
}
}
}
+230 -37
View File
@@ -8,9 +8,15 @@ html {
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 {
overflow-y: scroll;
padding: 0;
overflow: visible;
height: calc(100% - var(--header-height));
}
& [data-action] {
@@ -44,6 +50,10 @@ html {
align-items: center;
}
& .align-center {
align-items: center;
}
& .fit-content {
width: fit-content;
height: fit-content;
@@ -114,19 +124,42 @@ html {
& .rowspan9 { grid-row: span 9; }
& .rowspan-all { grid-row: 1 / -1; }
& .editable-input {
flex: 1;
& input {
border: none;
text-align: inherit;
& input {
border: none;
text-align: inherit;
}
&.editable-number {
&[type="number"] {
text-align: center;
}
}
& .price-input {
display: grid;
grid-template-columns: minmax(min-content, 1fr) max-content;
& input {
padding: 0;
}
}
& .weight-input {
display: grid;
grid-template-columns: minmax(min-content, 1fr) max-content;
& input {
padding: 0;
}
}
& .length-input {
display: grid;
grid-template-columns: minmax(min-content, 1fr) max-content;
& input {
padding: 0;
}
}
& .placeholder {
font-size: 0.8em;
border-top: 1px solid;
@@ -135,6 +168,14 @@ html {
text-overflow: ellipsis;
}
& .subtitle {
font-size: 0.8em;
border-top: 1px solid;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
& .character-image {
width: 115px;
height: 115px;
@@ -146,6 +187,10 @@ html {
margin-right: 0.5rem;
}
& img {
object-fit: contain;
}
&.chat-header {
& img {
margin-right: .75em;
@@ -191,6 +236,8 @@ html {
width: 3.5em;
height: 3.5em;
text-shadow: 1px 1px 1px black;
& > * {
grid-row: 1;
grid-column: 1;
@@ -246,14 +293,11 @@ html {
background: linear-gradient(90deg, var(--bar-color-left) 0%, var(--bar-color-right) 100%);
}
& .editable-input, & span {
& input, & span {
display: inline-block;
background: transparent;
padding: 0;
width: 4ch;
& input {
background: transparent;
padding: 0;
}
}
&.hp {
@@ -280,14 +324,12 @@ html {
display: grid;
grid-template-columns: repeat(8, 1fr);
& .editable-input {
display: inline-block;
& input {
display: inline-block;
background: transparent;
padding: 0;
width: 7ch;
& input {
background: transparent;
padding: 0;
}
}
& svg {
@@ -304,14 +346,12 @@ html {
display: flex;
gap: 1em;
& .editable-input {
display: inline-block;
width: 5ch;
& input {
display: inline-block;
background: transparent;
& input {
background: transparent;
padding: 0;
}
padding: 0;
width: 5ch;
}
}
@@ -384,6 +424,14 @@ html {
border: none;
border-radius: 0px 0px 5px 5px;
}
&:nth-child(odd) {
background: #272b33;
}
&:hover {
background: #3b404d;
}
}
&.Dialog > .window-content {
@@ -397,6 +445,10 @@ html {
}
}
& [data-application-part]:not([data-application-part="ActorSheet"]) {
padding: 1rem;
}
& [data-application-part="Bewaffnung"] {
& .tab {
grid-template-columns: minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content) minmax(0, 1fr);
@@ -411,9 +463,83 @@ html {
}
}
& [data-application-part="ActorSheet"] {
& [data-application-part="Zauber"] {
& .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 {
display: grid;
grid-template-columns: minmax(0, max-content) repeat(3, minmax(0, 1fr));
@@ -449,7 +575,7 @@ html {
}
}
&[data-tab="tab2"] {
&[data-tab="talente"] {
grid-template-columns: minmax(0, max-content) repeat(2, minmax(0, 1fr)) min-content;
& > * {
@@ -457,12 +583,12 @@ html {
}
& .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"] {
grid-template-columns: minmax(min-content, max-content) auto min-content minmax(min-content, max-content) min-content;
&[data-tab="inventar"] {
grid-template-columns: minmax(min-content, max-content) auto max-content min-content minmax(min-content, max-content) min-content;
& > * {
grid-column: 1 / -1;
@@ -471,9 +597,46 @@ html {
& [data-equipped="false"] {
color: #464c5f;
}
& .anzahl input {
background: transparent;
field-sizing: content;
}
}
&[data-tab="tab4"] {
&[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);
}
}
}
}
& .Bewaffnung {
grid-template-columns: minmax(0, max-content) repeat(3, minmax(0, auto));
@@ -491,6 +654,18 @@ html {
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;
}
}
}
}
@@ -518,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 {
max-width: 650px;
+627 -55
View File
@@ -4,7 +4,7 @@ const { DocumentSheetConfig } = foundry.applicat
const { loadTemplates, renderTemplate } = foundry.applications.handlebars;
const { ActorSheetV2, ItemSheetV2 } = foundry.applications.sheets;
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 { OperatorTerm, NumericTerm } = foundry.dice.terms;
const { ChatMessage } = foundry.documents;
@@ -16,7 +16,7 @@ Hooks.once("i18nInit", async function() {
const fallback = game.i18n.translations;
await game.i18n.setLanguage(lang);
game.i18n._fallback = foundry.utils.mergeObject(fallback, game.i18n.fallback);
game.i18n._fallback = foundry.utils.mergeObject(fallback, game.i18n._fallback);
});
class DSA41_Notifications extends Notifications {
@@ -55,6 +55,7 @@ Hooks.once("init", async function() {
CONFIG.Item.dataModels.Kampftalent = DSA41_KampftalentData;
CONFIG.Item.dataModels.Sonderfertigkeit = DSA41_SonderfertigkeitData;
CONFIG.Item.dataModels.VorNachteil = DSA41_VorNachteilData;
CONFIG.Item.dataModels.Zauber = DSA41_ZauberData;
CONFIG.statusEffects = [];
@@ -75,9 +76,22 @@ Hooks.once("init", async function() {
"Kampftalent",
"Sonderfertigkeit",
"VorNachteil",
"Zauber",
]
});
Handlebars.registerHelper({
"string-length": (value, options) => {
return value.toString().length;
}
});
Handlebars.registerHelper({
"mul": (a, b, options) => {
return a * b;
}
});
Handlebars.registerHelper({
maybeLocalize: (value, options) => {
const prefix = options.hash.prefix ? options.hash.prefix.string : null;
@@ -97,6 +111,38 @@ Hooks.once("init", async function() {
return array.toSorted((a, b) => a.sort - b.sort);
}
});
Handlebars.registerHelper({
DSA41_input: (field_name, options) => {
field_name = field_name.toString();
let fields = field_name.startsWith("system.") ? options.data.root.document.system.schema.fields : options.data.root.document.schema.fields;
let field = foundry.utils.getProperty(fields, field_name.replace(/^(system\.)/, "").replaceAll(".", ".fields."));
if (!field) {
console.error("Non-existent data field provided to {{DSA4_input}} handlebars helper.");
return Handlebars.SafeString("");
}
options.hash.placeholder ??= game.i18n.localize(options.hash.subtitle);
const value = foundry.utils.getProperty(options.data.root.document, field_name);
const input = field.toInput({ localize: true, value: value, ...options.hash });
if (options.hash.subtitle) {
let subtitle_div = document.createElement("div");
subtitle_div.className = "subtitle";
subtitle_div.innerText = game.i18n.localize(options.hash.subtitle);
let outer_div = document.createElement("div");
outer_div.replaceChildren(input, subtitle_div);
return new Handlebars.SafeString(outer_div.outerHTML);
}
return new Handlebars.SafeString(input.outerHTML);
}
});
await loadTemplates({
"editable-input": "systems/dsa-4th-edition/src/EditableInput.hbs",
@@ -113,9 +159,14 @@ Hooks.once("init", async function() {
"CHAT_HEADER": "systems/dsa-4th-edition/src/Chat/Header.hbs",
"TrefferpunkteTargets": "systems/dsa-4th-edition/src/Chat/TrefferpunkteTargets.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() {
const targets = [];
@@ -245,6 +296,122 @@ function get_minified_formula(formula, data) {
return Roll.getFormula(output);
}
class PreisUnitField extends StringField {
constructor(options={}, context={}) {
return super({
required: true,
choices: {
"kreuzer": "DSA41.currency.kreuzer",
"heller": "DSA41.currency.heller",
"silbertaler": "DSA41.currency.silbertaler",
"dukaten": "DSA41.currency.dukaten",
},
initial: "silbertaler",
...options
}, context);
}
}
class PreisField extends SchemaField {
constructor() {
return super({
value: new NumberField({ initial: 0, min: 0 }),
unit: new PreisUnitField(),
});
}
_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 = "price-input";
outer_div.replaceChildren(value_input, unit_input);
return outer_div;
}
}
class GewichtUnitField extends StringField {
constructor(options={}, context={}) {
return super({
required: true,
choices: {
"gran": "DSA41.weight.gran",
"karat": "DSA41.weight.karat",
"skrupel": "DSA41.weight.skrupel",
"unze": "DSA41.weight.unze",
"stein": "DSA41.weight.stein",
"sack": "DSA41.weight.sack",
"quader": "DSA41.weight.quader",
},
initial: "stein",
...options
}, context);
}
}
class GewichtField extends SchemaField {
constructor() {
return super({
value: new NumberField({ initial: 0, min: 0 }),
unit: new GewichtUnitField(),
});
}
_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 = "weight-input";
outer_div.replaceChildren(value_input, unit_input);
return outer_div;
}
}
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 {
constructor() {
return super({
@@ -255,6 +422,47 @@ class AttributeField extends SchemaField {
}
}
class AttributeChoiceField extends StringField {
constructor(options={}, context={}) {
return super({
required: true,
choices: {
"courage": "DSA41.attributes.long.courage",
"cleverness": "DSA41.attributes.long.cleverness",
"intuition": "DSA41.attributes.long.intuition",
"charisma": "DSA41.attributes.long.charisma",
"dexterity": "DSA41.attributes.long.dexterity",
"agility": "DSA41.attributes.long.agility",
"constitution": "DSA41.attributes.long.constitution",
"strength": "DSA41.attributes.long.strength",
},
initial: "courage",
...options,
}, context);
}
}
class SteigerungsKategorieField extends StringField {
constructor(options={}, context={}) {
return super({
required: true,
choices: {
"A_Star": "DSA41.steigerungskategorie.A_Star",
"A": "DSA41.steigerungskategorie.A",
"B": "DSA41.steigerungskategorie.B",
"C": "DSA41.steigerungskategorie.C",
"D": "DSA41.steigerungskategorie.D",
"E": "DSA41.steigerungskategorie.E",
"F": "DSA41.steigerungskategorie.F",
"G": "DSA41.steigerungskategorie.G",
"H": "DSA41.steigerungskategorie.H",
},
initial: "A_Star",
...options,
}, context);
}
}
class DSA41_CharacterDocument extends Actor {
static async create(data, operation) {
const actor = await super.create(data, operation);
@@ -313,6 +521,14 @@ class DSA41_CharacterDocument extends 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 {
@@ -323,6 +539,21 @@ class DSA41_CharacterData extends TypeDataModel {
profession: new StringField(),
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({
ausgegeben: new NumberField({ integer: true, initial: 0 }),
gesamt: new NumberField({ integer: true, initial: 0 }),
@@ -383,6 +614,16 @@ class DSA41_CharacterData extends TypeDataModel {
modifikator_attacke: new NumberField({integer: true, initial: 0}),
modifikator_parade: 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 }),
}),
}
}
@@ -397,6 +638,7 @@ class DSA41_CharacterData extends TypeDataModel {
num_nachteile: 0,
num_allgemeine_sonderfertigkeiten: 0,
num_kampf_sonderfertigkeiten: 0,
num_magische_sonderfertigkeiten: 0,
num_waffen: 0,
num_fernkampf_waffen: 0,
@@ -419,14 +661,97 @@ class DSA41_CharacterData extends TypeDataModel {
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;
for (const [attribute, values] of Object.entries(this.attributes)) {
this.computed.attributes[attribute] = values.initial + values.advancement + values.modifier;
this.computed.attributes_without_modifiers[attribute] = values.initial + values.advancement;
}
this.computed.attributes_without_modifiers.courage = this.attributes.courage.initial + this.attributes.courage.advancement;
this.computed.attributes_without_modifiers.cleverness = this.attributes.cleverness.initial + this.attributes.cleverness.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.ausdauer = {};
@@ -475,19 +800,19 @@ class DSA41_CharacterData extends TypeDataModel {
this.computed.kampf.ruestungen_gesamt.gesamt_behinderung += item.system.gesamt_behinderung;
}
this.computed.initiative.wert = this.computed.initiative.basiswert + this.modifikator_initiative - this.computed.kampf.ruestungen_gesamt.gesamt_behinderung;
this.computed.attacke.wert = this.computed.attacke.basiswert + this.modifikator_attacke;
this.computed.parade.wert = this.computed.parade.basiswert + this.modifikator_parade;
this.computed.fernkampf.wert = this.computed.fernkampf.basiswert + this.modifikator_fernkampf;
for (let [key, value] of Object.entries(this.computed.kampf.ruestungen_gesamt)) {
this.computed.kampf.ruestungen_gesamt[key] = Math.round(value);
}
this.kampftalente = this.parent.items.filter((x) => x.type === "Kampftalent").sort((a, b) => a.name > b.name);
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.wunden_modifiers.attacke;
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.kampftalente = this.parent.items.filter((x) => x.type === "Kampftalent").sort((a, b) => string_compare(a.name, b.name));
for(const talent of this.kampftalente) {
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].talent_attacke = talent.system.attacke;
@@ -505,8 +830,11 @@ class DSA41_CharacterData extends TypeDataModel {
this.computed.num_waffen += 1;
let computed = this.computed.kampf.waffen[item._id] = {
item: item,
attacke: 0,
parade: 0,
attacke: 0,
parade: 0,
parade_crit: 0,
trefferpunkte: "",
trefferpunkte_display: "",
@@ -557,9 +885,10 @@ class DSA41_CharacterData extends TypeDataModel {
computed.schild_parade += schild.system.schild.modifikator_parade;
}
computed.attacke = computed.basis_attacke + computed.talent_attacke + computed.modifikator_attacke + computed.parierwaffe_attacke + computed.schild_attacke + Math.min(computed.tp_kk, 0);
computed.parade = computed.basis_parade + computed.talent_parade + computed.modifikator_parade + computed.parierwaffe_parade + computed.schild_parade + Math.min(computed.tp_kk, 0);
computed.attacke = computed.basis_attacke + computed.talent_attacke + computed.modifikator_attacke + computed.parierwaffe_attacke + computed.schild_attacke + Math.min(computed.tp_kk, 0);
computed.parade = computed.basis_parade + computed.talent_parade + computed.modifikator_parade + computed.parierwaffe_parade + computed.schild_parade + Math.min(computed.tp_kk, 0);
computed.parade_crit = Math.round(computed.parade / 2);
computed.trefferpunkte = get_minified_formula(item.system.nahkampfwaffe.basis + (computed.tp_kk != 0 ? " + " + computed.tp_kk : ""));
computed.trefferpunkte_display = computed.trefferpunkte.replace(/[\+\-]/, (op) => "<br>" + op);
}
@@ -588,7 +917,7 @@ class DSA41_CharacterData extends TypeDataModel {
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 = {
koerperliche: talente.filter((x) => x.system.kategorie === "koerperliche"),
gesellschaftliche: talente.filter((x) => x.system.kategorie === "gesellschaftliche"),
@@ -597,18 +926,22 @@ class DSA41_CharacterData extends TypeDataModel {
handwerks: talente.filter((x) => x.system.kategorie === "handwerks"),
};
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_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_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_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_nachteile = this.parent.items.filter((x) => x.type === "VorNachteil" && x.system.kategorie === "nachteil").length;
}
}
class DSA41_GegenstandData extends TypeDataModel {
static defineSchema() {
return {
gewicht: new NumberField({ integer: false, initial: 0, min: 0 }),
preis: new NumberField({ integer: true, initial: 0, min: 0 }),
gewicht: new GewichtField(),
preis: new PreisField(),
anzahl: new NumberField({ integer: true, initial: 1, min: 0 }),
beschreibung: new StringField({ initial: "" }),
};
}
}
@@ -618,8 +951,8 @@ class DSA41_RuestungData extends TypeDataModel {
return {
angelegt: new BooleanField({ initial: false }),
gewicht: new NumberField({ integer: false, initial: 0, min: 0 }),
preis: new NumberField({ integer: true, initial: 0, min: 0 }),
gewicht: new GewichtField(),
preis: new PreisField(),
kopf: new NumberField({ integer: true, initial: 0, min: 0 }),
brust: new NumberField({ integer: true, initial: 0, min: 0 }),
@@ -632,6 +965,8 @@ class DSA41_RuestungData extends TypeDataModel {
gesamt_ruestungsschutz: new NumberField({ integer: false, initial: 0, min: 0 }),
gesamt_behinderung: new NumberField({ integer: false, initial: 0, min: 0 }),
beschreibung: new StringField({ initial: "" }),
};
}
}
@@ -641,8 +976,10 @@ class DSA41_BewaffnungData extends TypeDataModel {
return {
angelegt: new BooleanField({ initial: false }),
gewicht: new NumberField({ integer: false, initial: 0, min: 0 }),
preis: new NumberField({ integer: true, initial: 0, min: 0 }),
gewicht: new GewichtField(),
preis: new PreisField(),
beschreibung: new StringField({ initial: "" }),
nahkampfwaffe: new SchemaField({
aktiv: new BooleanField({ initial: false }),
@@ -660,7 +997,7 @@ class DSA41_BewaffnungData extends TypeDataModel {
distanzklasse: new StringField({ initial: "" }),
kampftalente: new StringField({ initial: "" }),
laenge: new NumberField({ integer: true, initial: 0, min: 0 }),
laenge: new LaengeField(),
zweihaendig: new BooleanField({ initial: false }),
werfbar: new BooleanField({ initial: false }),
@@ -681,7 +1018,15 @@ class DSA41_BewaffnungData extends TypeDataModel {
schild: new SchemaField({
aktiv: new BooleanField({ initial: false }),
groesse: new StringField({ initial: "klein" }),
groesse: new StringField({
required: true,
choices: {
"klein": "DSA41.bewaffnung.schild.groesse.klein",
"gross": "DSA41.bewaffnung.schild.groesse.gross",
"sehr_gross": "DSA41.bewaffnung.schild.groesse.sehr_gross",
},
initial: "klein",
}),
modifikator_attacke: new NumberField({ integer: true, initial: 0 }),
modifikator_parade: new NumberField({ integer: true, initial: 0 }),
@@ -718,14 +1063,26 @@ class DSA41_BewaffnungData extends TypeDataModel {
class DSA41_TalentData extends TypeDataModel {
static defineSchema() {
return {
kategorie: new StringField({ initial: "koerperliche" }),
kategorie: new StringField({
required: true,
choices: {
"koerperliche": "DSA41.talente.koerperliche.label",
"gesellschaftliche": "DSA41.talente.gesellschaftliche.label",
"natur": "DSA41.talente.natur.label",
"wissens": "DSA41.talente.wissens.label",
"handwerks": "DSA41.talente.handwerks.label",
},
initial: "koerperliche"
}),
behinderung: new StringField({ initial: "" }),
attribute1: new StringField({ initial: "courage" }),
attribute2: new StringField({ initial: "courage" }),
attribute3: new StringField({ initial: "courage" }),
attribute1: new AttributeChoiceField(),
attribute2: new AttributeChoiceField(),
attribute3: new AttributeChoiceField(),
talentwert: new NumberField({ integer: true, initial: 0 }),
beschreibung: new StringField({ initial: "" }),
};
}
}
@@ -733,9 +1090,17 @@ class DSA41_TalentData extends TypeDataModel {
class DSA41_KampftalentData extends TypeDataModel {
static defineSchema() {
return {
kategorie: new StringField({ initial: "waffenlos" }),
kategorie: new StringField({
required: true,
choices: {
"waffenlos": "DSA41.kampftalent.kategorie.waffenlos",
"nahkampf": "DSA41.kampftalent.kategorie.nahkampf",
"fernkampf": "DSA41.kampftalent.kategorie.fernkampf",
},
initial: "waffenlos"
}),
behinderung: new StringField({ initial: "" }),
steigern: new StringField({ initial: "A_Star"}),
steigern: new SteigerungsKategorieField(),
beschreibung: new StringField({ initial: "" }),
@@ -749,7 +1114,16 @@ class DSA41_KampftalentData extends TypeDataModel {
class DSA41_SonderfertigkeitData extends TypeDataModel {
static defineSchema() {
return {
kategorie: new StringField({ initial: "allgemein" }),
kategorie: new StringField({
required: true,
choices: {
"allgemein": "DSA41.sonderfertigkeiten.kategorie.allgemein",
"kampf": "DSA41.sonderfertigkeiten.kategorie.kampf",
"magisch": "DSA41.sonderfertigkeiten.kategorie.magisch",
"klerikal": "DSA41.sonderfertigkeiten.kategorie.klerikal",
},
initial: "allgemein",
}),
kosten: new NumberField({ integer: true, initial: 0 }),
verbreitung: new NumberField({ integer: true, initial: 0 }),
@@ -761,8 +1135,110 @@ class DSA41_SonderfertigkeitData extends TypeDataModel {
class DSA41_VorNachteilData extends TypeDataModel {
static defineSchema() {
return {
kategorie: new StringField({ initial: "vorteil" }),
kosten: new NumberField({ integer: true, initial: 0 }),
kategorie: new StringField({
required: true,
choices: {
"vorteil": "DSA41.vornachteil.kategorie.vorteil",
"nachteil": "DSA41.vornachteil.kategorie.nachteil",
},
initial: "vorteil",
}),
kosten: new NumberField({ integer: true, initial: 0 }),
beschreibung: new StringField({ initial: "" }),
};
}
}
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: "" }),
};
@@ -789,6 +1265,7 @@ class DSA41_Dialog extends DSA41_ApplicationMixin(ApplicationV2) {
static PARTS = {
Eigenschaft: { template: "systems/dsa-4th-edition/src/Dialogs/Attribute.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" },
Parade: { template: "systems/dsa-4th-edition/src/Dialogs/Parade.hbs" },
@@ -817,10 +1294,12 @@ class DSA41_Dialog extends DSA41_ApplicationMixin(ApplicationV2) {
};
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(
new FormData(this.element).entries().map(([key, value])=>{
if (typeof value != "string") return [key, value];
return isNaN(value) ? [key, value] : [key, Number(value)];
if (types[key] == "number") return [key, Number(value)];
return [key, value];
})
);
@@ -865,10 +1344,11 @@ class DSA41_Dialog extends DSA41_ApplicationMixin(ApplicationV2) {
class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
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 = {
classes: [ "DSA41", "ActorSheet" ],
position: { width: "800", height: "650" },
actions: {
"roll": async function(event, target) {
@@ -878,6 +1358,8 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
const item_id = event.target.closest("[data-item-id]")?.dataset.itemId;
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);
if (typeof success_value !== 'undefined') {
flavor += " <= " + success_value;
@@ -893,6 +1375,9 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
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);
roll.toMessage({
speaker: ChatMessage.getSpeaker({ actor: this.document }),
@@ -913,10 +1398,13 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
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;
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;
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;
@@ -934,10 +1422,10 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
const context = {
talent: item,
modifikator: -data.modifikator,
modifikator: data.modifikator,
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 },
roll1: roll1,
@@ -972,6 +1460,13 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
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);
roll.toMessage({
speaker: ChatMessage.getSpeaker({ actor: this.document }),
@@ -993,14 +1488,15 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
const data = await DSA41_Dialog.wait("Parade", { window: { title: title }, item: item });
let flavor = game.i18n.localize("DSA41.roll_types." + roll_type);
if (typeof success_value !== 'undefined') {
flavor += " <= " + (Number(success_value) + data.modifikator);
}
if (data.crit == "on") {
roll_formula = "round((" + roll_formula + ") / 2)";
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);
roll.toMessage({
speaker: ChatMessage.getSpeaker({ actor: this.document }),
@@ -1047,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 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);
roll.toMessage({
@@ -1088,6 +1584,62 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
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);
roll.toMessage({
speaker: ChatMessage.getSpeaker({ actor: this.document }),
@@ -1118,6 +1670,25 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
const item = this.document.items.get(item_id);
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 });
}
},
};
@@ -1133,7 +1704,7 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
item.update({ [data_name]: value });
}
tabGroups = { primary: "tab1" };
tabGroups = { primary: "eigenschaften" };
}
class DSA41_ItemSheetV2 extends DSA41_ApplicationMixin(ItemSheetV2) {
@@ -1145,6 +1716,7 @@ class DSA41_ItemSheetV2 extends DSA41_ApplicationMixin(ItemSheetV2) {
Kampftalent: { template: "systems/dsa-4th-edition/src/ItemSheets/Kampftalent.hbs" },
Sonderfertigkeit: { template: "systems/dsa-4th-edition/src/ItemSheets/Sonderfertigkeit.hbs" },
VorNachteil: { template: "systems/dsa-4th-edition/src/ItemSheets/VorNachteil.hbs" },
Zauber: { template: "systems/dsa-4th-edition/src/ItemSheets/Zauber.hbs" },
};
static DEFAULT_OPTIONS = {
+1
View File
@@ -13,6 +13,7 @@
"Gegenstand": {},
"Ruestung": {},
"Bewaffnung": {},
"Zauber": {},
"Talent": {},
"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,
},
}
}
}

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