diff --git a/src/Dialogs/FernkampfTrefferpunkte.hbs b/src/Dialogs/FernkampfTrefferpunkte.hbs
index 80837b4..7a1a728 100644
--- a/src/Dialogs/FernkampfTrefferpunkte.hbs
+++ b/src/Dialogs/FernkampfTrefferpunkte.hbs
@@ -11,8 +11,13 @@
{{localize "DSA41.kampf.modifikator"}}
{{>editable-input type="number" name="modifikator" value=(lookup formData "modifikator") }}
+ {{localize "DSA41.kampf.crit"}}
+ {{>editable-input type="checkbox" name="crit" class="center" value=(lookup formData "crit")}}
+
+ {{#if formData.crit}}2 * ({{/if}}
{{options.item.system.fernkampfwaffe.basis}}
+ {{#if formData.crit}}){{/if}}
+ {{lookup options.item.system.fernkampfwaffe formData.entfernung}}
+ {{formData.modifikator}}
diff --git a/src/lang/de.json b/src/lang/de.json
index e82bad9..05b7c19 100644
--- a/src/lang/de.json
+++ b/src/lang/de.json
@@ -357,12 +357,13 @@
},
"kampf": {
- "bewaffnung": "Bewaffnung",
+ "bewaffnung": "Bewaffnung",
"attacke": "Attacke",
"parade": "Parade",
"trefferpunkte": "Trefferpunkte",
"ruestungen": "Rüstungen",
"modifikator": "Modifikator",
+ "crit": "Glückliche Attacke",
"zielgroesse": {
"label": "Zielgröße",
diff --git a/src/main.mjs b/src/main.mjs
index 43b65ca..c4e7dd1 100644
--- a/src/main.mjs
+++ b/src/main.mjs
@@ -664,7 +664,7 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
position: { width: "800", height: "650" },
actions: {
"roll": async function(event, target) {
- const roll_formula = event.target.closest("[data-roll]").dataset.roll;
+ var roll_formula = event.target.closest("[data-roll]").dataset.roll;
const roll_type = event.target.closest("[data-roll-type]").dataset.rollType;
const success_value = event.target.closest("[data-success-value]")?.dataset.successValue;
const item_id = event.target.closest("[data-item-id]")?.dataset.itemId;
@@ -693,6 +693,10 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
const data = await DSA41_Dialog.wait("FernkampfTrefferpunkte", { window: { title: title }, item: item });
const entfernung = item.system.fernkampfwaffe[data.entfernung];
+ if (data.crit == "on") {
+ roll_formula = "2 * (" + roll_formula + ")";
+ }
+
let roll = new Roll(roll_formula + " + " + (entfernung + data.modifikator), this.document.system);
roll.toMessage({
speaker: ChatMessage.getSpeaker({ actor: this.document }),
@@ -701,7 +705,6 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
return;
}
-
let flavor = game.i18n.localize("DSA41.roll_types." + roll_type);
if (typeof success_value !== 'undefined') {
flavor += " <= " + success_value;