\d+)/i);
+ if (dieMatch?.groups?.sides) {
+ return {
+ formula: normalized,
+ count: Number(dieMatch.groups.count || 1),
+ countRaw: dieMatch.groups.count ?? "",
+ sides: Number(dieMatch.groups.sides),
+ match: dieMatch[0],
+ index: dieMatch.index ?? 0
+ };
+ }
+
+ if (/^\d+$/.test(normalized)) {
+ const sides = Number(normalized);
+ if ([4, 6, 8, 10, 12, 20].includes(sides)) {
+ return {
+ formula: normalized,
+ count: 1,
+ countRaw: "",
+ sides,
+ match: normalized,
+ index: 0
+ };
+ }
+ }
+
+ return null;
+ }
+
+ static getMartialDamageContext(actor, item) {
+ const isUsageDie = Boolean(item?.system?.degatsEstUsageDe);
+ const degatsDelta = Number(item?.system?.degatsDelta ?? 0);
+ const baseFormula = isUsageDie
+ ? (degatsDelta > 0 ? `1d${degatsDelta}` : "")
+ : String(item?.system?.degats ?? "").trim();
+
+ const baseContext = {
+ baseFormula,
+ effectiveFormula: baseFormula,
+ capped: false,
+ martialDvFormula: String(actor?.system?.sante?.dv ?? "").trim(),
+ martialDvSides: 0,
+ weaponSides: 0,
+ isUsageDie
+ };
+
+ if (actor?.type !== "employe" || item?.type !== "arme" || !baseFormula) {
+ return baseContext;
+ }
+
+ const damageDie = this.parseDieFormula(baseFormula);
+ const martialDie = this.parseDieFormula(actor.system.sante?.dv);
+ if (!damageDie || !martialDie?.sides) return baseContext;
+
+ const cappedSides = Math.min(damageDie.sides, martialDie.sides);
+ if (cappedSides >= damageDie.sides) {
+ return {
+ ...baseContext,
+ martialDvSides: martialDie.sides,
+ weaponSides: damageDie.sides
+ };
+ }
+
+ const replacement = `${damageDie.countRaw || ""}d${cappedSides}`;
+ const effectiveFormula = damageDie.match === damageDie.formula
+ ? replacement
+ : `${damageDie.formula.slice(0, damageDie.index)}${replacement}${damageDie.formula.slice(damageDie.index + damageDie.match.length)}`;
+
+ return {
+ ...baseContext,
+ effectiveFormula,
+ capped: true,
+ martialDvSides: martialDie.sides,
+ weaponSides: damageDie.sides
+ };
+ }
+
static getFavorLabel(key) {
return DONJON_ET_CIE.favorDepartments[key] ?? key;
}
@@ -173,12 +254,20 @@ export class DonjonEtCieUtility {
const system = item.system;
const delta = Number(system.delta ?? 0);
const deltaMax = Number(system.deltaMax ?? delta ?? 0);
+ const ammunitionDelta = Number(system.munitionsDelta ?? 0);
+ const isUsageDie = Boolean(system.degatsEstUsageDe);
+ const degatsDelta = Number(system.degatsDelta ?? 0);
const usageLabel = item.type === "entrainement" && deltaMax > 0
? `${this.formatUsageDie(delta)} / ${this.formatUsageDie(deltaMax)}`
: delta > 0
? this.formatUsageDie(delta)
: null;
+ const damageUsageLabel = isUsageDie
+ ? (degatsDelta > 0 ? this.formatUsageDie(degatsDelta) : game.i18n.localize("DNC.UI.DamageExhausted"))
+ : null;
+ const damageLabel = isUsageDie ? damageUsageLabel : (system.degats || null);
+
return {
id: item.id,
name: item.name,
@@ -187,11 +276,15 @@ export class DonjonEtCieUtility {
system,
uuid: item.uuid,
usageLabel,
+ ammunitionUsageLabel: item.type === "arme" && ammunitionDelta > 0 ? this.formatUsageDie(ammunitionDelta) : null,
protectionLabel: item.type === "armure" && Number(system.resultatProtection ?? 0) > 0 ? `Protection ${system.resultatProtection}` : null,
weaponCharacteristicLabel: item.type === "arme" ? this.getWeaponCharacteristicLabel(system.categorie) : null,
canRoll: ["arme", "sortilege"].includes(item.type),
canUse: delta > 0,
- canRollDamage: Boolean(system.degats),
+ hasTrackedAmmunition: item.type === "arme" && ammunitionDelta > 0,
+ damageUsageLabel,
+ damageLabel,
+ canRollDamage: item.type === "arme" && (isUsageDie ? degatsDelta > 0 : Boolean(system.degats)),
rollAction: item.type === "sortilege" ? "rollSpell" : "rollWeapon",
damageAction: "rollDamage",
isEquipped: Boolean(system.equipee),
diff --git a/modules/models/arme.mjs b/modules/models/arme.mjs
index 345421b..0303fed 100644
--- a/modules/models/arme.mjs
+++ b/modules/models/arme.mjs
@@ -20,6 +20,9 @@ export default class ArmeDataModel extends BaseItemDataModel {
categorie: new fields.StringField({ initial: "melee" }),
caracteristique: new fields.StringField({ initial: "force" }),
degats: new fields.StringField({ initial: "1d6" }),
+ degatsEstUsageDe: new fields.BooleanField({ initial: false }),
+ degatsDelta: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
+ munitionsDelta: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
portee: new fields.StringField({ initial: "" }),
mains: new fields.NumberField({ initial: 1, integer: true }),
equipee: new fields.BooleanField({ initial: false })
diff --git a/packs/equipment/000079.log b/packs/equipment/000087.log
similarity index 100%
rename from packs/equipment/000079.log
rename to packs/equipment/000087.log
diff --git a/packs/equipment/CURRENT b/packs/equipment/CURRENT
index c7a124b..814a4b7 100644
--- a/packs/equipment/CURRENT
+++ b/packs/equipment/CURRENT
@@ -1 +1 @@
-MANIFEST-000077
+MANIFEST-000085
diff --git a/packs/equipment/LOG b/packs/equipment/LOG
index b8e21b5..b7d669b 100644
--- a/packs/equipment/LOG
+++ b/packs/equipment/LOG
@@ -1,7 +1,7 @@
-2026/05/09-23:26:00.662378 7fe6d3fff6c0 Recovering log #75
-2026/05/09-23:26:00.714642 7fe6d3fff6c0 Delete type=3 #73
-2026/05/09-23:26:00.714705 7fe6d3fff6c0 Delete type=0 #75
-2026/05/09-23:32:35.906147 7fe6d37fe6c0 Level-0 table #80: started
-2026/05/09-23:32:35.906185 7fe6d37fe6c0 Level-0 table #80: 0 bytes OK
-2026/05/09-23:32:35.912511 7fe6d37fe6c0 Delete type=0 #78
-2026/05/09-23:32:35.920264 7fe6d37fe6c0 Manual compaction at level-0 from '!folders!K9aiFu0dE6UYiXBd' @ 72057594037927935 : 1 .. '!items!zyqLzmpbHxK3jt5q' @ 0 : 0; will stop at (end)
+2026/05/22-09:28:26.005874 7fb57dfee6c0 Recovering log #83
+2026/05/22-09:28:26.015537 7fb57dfee6c0 Delete type=3 #81
+2026/05/22-09:28:26.015651 7fb57dfee6c0 Delete type=0 #83
+2026/05/22-09:49:57.296086 7fb567fff6c0 Level-0 table #88: started
+2026/05/22-09:49:57.296112 7fb567fff6c0 Level-0 table #88: 0 bytes OK
+2026/05/22-09:49:57.302010 7fb567fff6c0 Delete type=0 #86
+2026/05/22-09:49:57.319148 7fb567fff6c0 Manual compaction at level-0 from '!folders!K9aiFu0dE6UYiXBd' @ 72057594037927935 : 1 .. '!items!zyqLzmpbHxK3jt5q' @ 0 : 0; will stop at (end)
diff --git a/packs/equipment/LOG.old b/packs/equipment/LOG.old
index bcb243b..637cfb8 100644
--- a/packs/equipment/LOG.old
+++ b/packs/equipment/LOG.old
@@ -1,7 +1,7 @@
-2026/05/09-23:24:27.244461 7fe6d3fff6c0 Recovering log #71
-2026/05/09-23:24:27.261516 7fe6d3fff6c0 Delete type=3 #69
-2026/05/09-23:24:27.261564 7fe6d3fff6c0 Delete type=0 #71
-2026/05/09-23:25:01.848661 7fe6d37fe6c0 Level-0 table #76: started
-2026/05/09-23:25:01.848715 7fe6d37fe6c0 Level-0 table #76: 0 bytes OK
-2026/05/09-23:25:01.854909 7fe6d37fe6c0 Delete type=0 #74
-2026/05/09-23:25:01.877929 7fe6d37fe6c0 Manual compaction at level-0 from '!folders!K9aiFu0dE6UYiXBd' @ 72057594037927935 : 1 .. '!items!zyqLzmpbHxK3jt5q' @ 0 : 0; will stop at (end)
+2026/05/09-23:56:26.228807 7fe7211fe6c0 Recovering log #79
+2026/05/09-23:56:26.239813 7fe7211fe6c0 Delete type=3 #77
+2026/05/09-23:56:26.239859 7fe7211fe6c0 Delete type=0 #79
+2026/05/09-23:58:32.093072 7fe6d37fe6c0 Level-0 table #84: started
+2026/05/09-23:58:32.093102 7fe6d37fe6c0 Level-0 table #84: 0 bytes OK
+2026/05/09-23:58:32.100189 7fe6d37fe6c0 Delete type=0 #82
+2026/05/09-23:58:32.106644 7fe6d37fe6c0 Manual compaction at level-0 from '!folders!K9aiFu0dE6UYiXBd' @ 72057594037927935 : 1 .. '!items!zyqLzmpbHxK3jt5q' @ 0 : 0; will stop at (end)
diff --git a/packs/equipment/MANIFEST-000077 b/packs/equipment/MANIFEST-000085
similarity index 73%
rename from packs/equipment/MANIFEST-000077
rename to packs/equipment/MANIFEST-000085
index 6473262..ca46b88 100644
Binary files a/packs/equipment/MANIFEST-000077 and b/packs/equipment/MANIFEST-000085 differ
diff --git a/packs/random-tables/000066.log b/packs/random-tables/000074.log
similarity index 100%
rename from packs/random-tables/000066.log
rename to packs/random-tables/000074.log
diff --git a/packs/random-tables/CURRENT b/packs/random-tables/CURRENT
index 5d746f2..f74be16 100644
--- a/packs/random-tables/CURRENT
+++ b/packs/random-tables/CURRENT
@@ -1 +1 @@
-MANIFEST-000064
+MANIFEST-000072
diff --git a/packs/random-tables/LOG b/packs/random-tables/LOG
index 84ed78e..d34eb2d 100644
--- a/packs/random-tables/LOG
+++ b/packs/random-tables/LOG
@@ -1,7 +1,7 @@
-2026/05/09-23:26:00.734399 7fe7211fe6c0 Recovering log #62
-2026/05/09-23:26:00.785619 7fe7211fe6c0 Delete type=3 #60
-2026/05/09-23:26:00.785680 7fe7211fe6c0 Delete type=0 #62
-2026/05/09-23:32:35.893861 7fe6d37fe6c0 Level-0 table #67: started
-2026/05/09-23:32:35.893901 7fe6d37fe6c0 Level-0 table #67: 0 bytes OK
-2026/05/09-23:32:35.899905 7fe6d37fe6c0 Delete type=0 #65
-2026/05/09-23:32:35.920244 7fe6d37fe6c0 Manual compaction at level-0 from '!tables!PPsxQgHwLCQ2gjSW' @ 72057594037927935 : 1 .. '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 0 : 0; will stop at (end)
+2026/05/22-09:28:26.020644 7fb57d7ed6c0 Recovering log #70
+2026/05/22-09:28:26.031504 7fb57d7ed6c0 Delete type=3 #68
+2026/05/22-09:28:26.031624 7fb57d7ed6c0 Delete type=0 #70
+2026/05/22-09:49:57.312571 7fb567fff6c0 Level-0 table #75: started
+2026/05/22-09:49:57.312612 7fb567fff6c0 Level-0 table #75: 0 bytes OK
+2026/05/22-09:49:57.318950 7fb567fff6c0 Delete type=0 #73
+2026/05/22-09:49:57.319188 7fb567fff6c0 Manual compaction at level-0 from '!tables!PPsxQgHwLCQ2gjSW' @ 72057594037927935 : 1 .. '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 0 : 0; will stop at (end)
diff --git a/packs/random-tables/LOG.old b/packs/random-tables/LOG.old
index 0017960..09b49ef 100644
--- a/packs/random-tables/LOG.old
+++ b/packs/random-tables/LOG.old
@@ -1,7 +1,7 @@
-2026/05/09-23:24:27.266509 7fe7211fe6c0 Recovering log #58
-2026/05/09-23:24:27.282592 7fe7211fe6c0 Delete type=3 #56
-2026/05/09-23:24:27.282660 7fe7211fe6c0 Delete type=0 #58
-2026/05/09-23:25:01.864644 7fe6d37fe6c0 Level-0 table #63: started
-2026/05/09-23:25:01.864678 7fe6d37fe6c0 Level-0 table #63: 0 bytes OK
-2026/05/09-23:25:01.871922 7fe6d37fe6c0 Delete type=0 #61
-2026/05/09-23:25:01.877952 7fe6d37fe6c0 Manual compaction at level-0 from '!tables!PPsxQgHwLCQ2gjSW' @ 72057594037927935 : 1 .. '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 0 : 0; will stop at (end)
+2026/05/09-23:56:26.242643 7fe7219ff6c0 Recovering log #66
+2026/05/09-23:56:26.252924 7fe7219ff6c0 Delete type=3 #64
+2026/05/09-23:56:26.252971 7fe7219ff6c0 Delete type=0 #66
+2026/05/09-23:58:32.087004 7fe6d37fe6c0 Level-0 table #71: started
+2026/05/09-23:58:32.087037 7fe6d37fe6c0 Level-0 table #71: 0 bytes OK
+2026/05/09-23:58:32.092951 7fe6d37fe6c0 Delete type=0 #69
+2026/05/09-23:58:32.106635 7fe6d37fe6c0 Manual compaction at level-0 from '!tables!PPsxQgHwLCQ2gjSW' @ 72057594037927935 : 1 .. '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 0 : 0; will stop at (end)
diff --git a/packs/random-tables/MANIFEST-000064 b/packs/random-tables/MANIFEST-000072
similarity index 85%
rename from packs/random-tables/MANIFEST-000064
rename to packs/random-tables/MANIFEST-000072
index b89606a..c02ce0d 100644
Binary files a/packs/random-tables/MANIFEST-000064 and b/packs/random-tables/MANIFEST-000072 differ
diff --git a/packs/system-help/000013.log b/packs/system-help/000008.log
similarity index 100%
rename from packs/system-help/000013.log
rename to packs/system-help/000008.log
diff --git a/packs/system-help/000010.ldb b/packs/system-help/000010.ldb
new file mode 100644
index 0000000..109c785
Binary files /dev/null and b/packs/system-help/000010.ldb differ
diff --git a/packs/system-help/CURRENT b/packs/system-help/CURRENT
index 1a84852..f7753e2 100644
--- a/packs/system-help/CURRENT
+++ b/packs/system-help/CURRENT
@@ -1 +1 @@
-MANIFEST-000002
+MANIFEST-000006
diff --git a/packs/system-help/LOG b/packs/system-help/LOG
index 6b18d78..87c9f04 100644
--- a/packs/system-help/LOG
+++ b/packs/system-help/LOG
@@ -1,5 +1,15 @@
-2026/05/09-23:29:14.636398 7f54217ed6c0 Delete type=3 #1
-2026/05/09-23:29:14.638741 7f5403fff6c0 Level-0 table #5: started
-2026/05/09-23:29:14.666649 7f5403fff6c0 Level-0 table #5: 3056 bytes OK
-2026/05/09-23:29:14.731617 7f5403fff6c0 Delete type=0 #3
-2026/05/09-23:29:14.731832 7f5403fff6c0 Manual compaction at level-0 from '!journal!69Da9YvF9BfOV7oK' @ 72057594037927935 : 1 .. '!journal.pages!69Da9YvF9BfOV7oK.XM0eLkgKXPyskV65' @ 0 : 0; will stop at (end)
+2026/05/22-09:28:26.037049 7fb57dfee6c0 Recovering log #4
+2026/05/22-09:28:26.047411 7fb57dfee6c0 Delete type=3 #2
+2026/05/22-09:28:26.047498 7fb57dfee6c0 Delete type=0 #4
+2026/05/22-09:49:57.302133 7fb567fff6c0 Level-0 table #9: started
+2026/05/22-09:49:57.305585 7fb567fff6c0 Level-0 table #9: 3183 bytes OK
+2026/05/22-09:49:57.312423 7fb567fff6c0 Delete type=0 #7
+2026/05/22-09:49:57.319164 7fb567fff6c0 Manual compaction at level-0 from '!journal!69Da9YvF9BfOV7oK' @ 72057594037927935 : 1 .. '!journal.pages!69Da9YvF9BfOV7oK.XM0eLkgKXPyskV65' @ 0 : 0; will stop at (end)
+2026/05/22-09:49:57.319233 7fb567fff6c0 Manual compaction at level-1 from '!journal!69Da9YvF9BfOV7oK' @ 72057594037927935 : 1 .. '!journal.pages!69Da9YvF9BfOV7oK.XM0eLkgKXPyskV65' @ 0 : 0; will stop at '!journal.pages!69Da9YvF9BfOV7oK.XM0eLkgKXPyskV65' @ 3 : 1
+2026/05/22-09:49:57.319246 7fb567fff6c0 Compacting 1@1 + 1@2 files
+2026/05/22-09:49:57.322612 7fb567fff6c0 Generated table #10@1: 2 keys, 3183 bytes
+2026/05/22-09:49:57.322655 7fb567fff6c0 Compacted 1@1 + 1@2 files => 3183 bytes
+2026/05/22-09:49:57.328541 7fb567fff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
+2026/05/22-09:49:57.328673 7fb567fff6c0 Delete type=2 #5
+2026/05/22-09:49:57.328793 7fb567fff6c0 Delete type=2 #9
+2026/05/22-09:49:57.351951 7fb567fff6c0 Manual compaction at level-1 from '!journal.pages!69Da9YvF9BfOV7oK.XM0eLkgKXPyskV65' @ 3 : 1 .. '!journal.pages!69Da9YvF9BfOV7oK.XM0eLkgKXPyskV65' @ 0 : 0; will stop at (end)
diff --git a/packs/system-help/LOG.old b/packs/system-help/LOG.old
new file mode 100644
index 0000000..e948cde
--- /dev/null
+++ b/packs/system-help/LOG.old
@@ -0,0 +1,5 @@
+2026/05/22-08:07:40.563282 7f63427ef6c0 Delete type=3 #1
+2026/05/22-08:07:40.567990 7f6323fff6c0 Level-0 table #5: started
+2026/05/22-08:07:40.571414 7f6323fff6c0 Level-0 table #5: 3056 bytes OK
+2026/05/22-08:07:40.577623 7f6323fff6c0 Delete type=0 #3
+2026/05/22-08:07:40.577857 7f6323fff6c0 Manual compaction at level-0 from '!journal!69Da9YvF9BfOV7oK' @ 72057594037927935 : 1 .. '!journal.pages!69Da9YvF9BfOV7oK.XM0eLkgKXPyskV65' @ 0 : 0; will stop at (end)
diff --git a/packs/system-help/MANIFEST-000006 b/packs/system-help/MANIFEST-000006
new file mode 100644
index 0000000..40bfece
Binary files /dev/null and b/packs/system-help/MANIFEST-000006 differ
diff --git a/templates/actors/employe-sheet.hbs b/templates/actors/employe-sheet.hbs
index 8d7fdb1..2485b15 100644
--- a/templates/actors/employe-sheet.hbs
+++ b/templates/actors/employe-sheet.hbs
@@ -93,7 +93,8 @@
{{#if this.protectionLabel}}{{this.protectionLabel}}{{/if}}
{{#if this.system.effet}}{{this.system.effet}}
{{/if}}
- {{#if this.system.degats}}Degats : {{this.system.degats}}
{{/if}}
+ {{#if this.damageLabel}}Degats : {{this.damageLabel}}
{{/if}}
+ {{#if this.ammunitionUsageLabel}}Munitions : {{this.ammunitionUsageLabel}}
{{/if}}
{{#if this.canRoll}}
@@ -138,7 +139,8 @@
{{#if this.protectionLabel}}{{this.protectionLabel}}{{/if}}
{{#if this.system.effet}}{{this.system.effet}}
{{/if}}
- {{#if this.system.degats}}Degats : {{this.system.degats}}
{{/if}}
+ {{#if this.damageLabel}}Degats : {{this.damageLabel}}
{{/if}}
+ {{#if this.ammunitionUsageLabel}}Munitions : {{this.ammunitionUsageLabel}}
{{/if}}
{{#if this.canRoll}}
@@ -234,7 +236,8 @@
{{#if this.protectionLabel}}{{this.protectionLabel}}{{/if}}
{{#if this.system.effet}}{{this.system.effet}}
{{/if}}
- {{#if this.system.degats}}Degats : {{this.system.degats}}
{{/if}}
+ {{#if this.damageLabel}}Degats : {{this.damageLabel}}
{{/if}}
+ {{#if this.ammunitionUsageLabel}}Munitions : {{this.ammunitionUsageLabel}}
{{/if}}
{{#if this.canRoll}}
@@ -278,7 +281,8 @@
{{#if this.protectionLabel}}{{this.protectionLabel}}{{/if}}
{{#if this.system.effet}}{{this.system.effet}}
{{/if}}
- {{#if this.system.degats}}Degats : {{this.system.degats}}
{{/if}}
+ {{#if this.damageLabel}}Degats : {{this.damageLabel}}
{{/if}}
+ {{#if this.ammunitionUsageLabel}}Munitions : {{this.ammunitionUsageLabel}}
{{/if}}
{{#if this.canRoll}}
@@ -395,7 +399,8 @@
{{#if this.protectionLabel}}{{this.protectionLabel}}{{/if}}
{{#if this.system.effet}}{{this.system.effet}}
{{/if}}
- {{#if this.system.degats}}Degats : {{this.system.degats}}
{{/if}}
+ {{#if this.damageLabel}}Degats : {{this.damageLabel}}
{{/if}}
+ {{#if this.ammunitionUsageLabel}}Munitions : {{this.ammunitionUsageLabel}}
{{/if}}
{{#if this.canRoll}}
diff --git a/templates/actors/pnj-sheet.hbs b/templates/actors/pnj-sheet.hbs
index 1652eac..659d796 100644
--- a/templates/actors/pnj-sheet.hbs
+++ b/templates/actors/pnj-sheet.hbs
@@ -122,7 +122,8 @@
{{#if this.usageLabel}}{{this.usageLabel}}{{/if}}
{{#if this.system.effet}}{{this.system.effet}}
{{/if}}
- {{#if this.system.degats}}Degats : {{this.system.degats}}
{{/if}}
+ {{#if this.damageLabel}}Degats : {{this.damageLabel}}
{{/if}}
+ {{#if this.ammunitionUsageLabel}}Munitions : {{this.ammunitionUsageLabel}}
{{/if}}
{{#if this.canRoll}}
diff --git a/templates/chat/damage-card.hbs b/templates/chat/damage-card.hbs
index 0834439..8dc39db 100644
--- a/templates/chat/damage-card.hbs
+++ b/templates/chat/damage-card.hbs
@@ -13,6 +13,7 @@
{{#if modeLabel}}{{modeLabel}}{{/if}}
Dé {{keptDieLabel}}
+ {{#if damageCapped}}{{localize "DNC.Chat.DamageCapped" damage=effectiveDamage dv=martialDvLabel}}{{/if}}
{{#if bonus}}Bonus +{{bonus}}{{/if}}
{{formula}}
@@ -22,7 +23,7 @@
{{#each rollDieLabels}}{{this}}{{/each}}
{{/if}}
- Base : {{baseDamage}}{{#if bonus}} · Bonus : +{{bonus}}{{/if}}
+ Base : {{baseDamage}}{{#if damageCapped}} · {{localize "DNC.Chat.MartialDv"}} : {{martialDvLabel}} · {{localize "DNC.Chat.EffectiveDamage"}} : {{effectiveDamage}}{{/if}}{{#if bonus}} · Bonus : +{{bonus}}{{/if}}
+ {{#if showDamageUsageButton}}
+
+
+
+ {{/if}}
diff --git a/templates/chat/roll-card.hbs b/templates/chat/roll-card.hbs
index 0ca7851..8d5b3fa 100644
--- a/templates/chat/roll-card.hbs
+++ b/templates/chat/roll-card.hbs
@@ -28,7 +28,20 @@
+ {{#if showAmmoButton}}
+
+ {{/if}}
+ {{else}}
+ {{#if showAmmoButton}}
+
+
+
+ {{/if}}
{{/if}}
{{#each details}}
diff --git a/templates/chat/usage-card.hbs b/templates/chat/usage-card.hbs
index f7eea35..87dc555 100644
--- a/templates/chat/usage-card.hbs
+++ b/templates/chat/usage-card.hbs
@@ -21,6 +21,14 @@
{{/if}}
{{#if protectionStored}}{{localize "DNC.Chat.StoredProtection"}} : {{protectionStored}}.
{{/if}}
- {{#if degraded}}{{localize "DNC.Chat.ResourceWearsDown"}}
{{else}}{{localize "DNC.Chat.ResourceStable"}}
{{/if}}
- {{#if exhausted}}{{localize "DNC.Chat.ResourceExhausted"}}
{{/if}}
+ {{#if isAmmunition}}
+ {{#if degraded}}{{localize "DNC.Chat.AmmunitionWearsDown"}}
{{else}}{{localize "DNC.Chat.AmmunitionStable"}}
{{/if}}
+ {{#if exhausted}}{{localize "DNC.Chat.AmmunitionExhausted"}}
{{/if}}
+ {{else if isDamageUsage}}
+ {{#if degraded}}{{localize "DNC.Chat.DamageUsageWearsDown"}}
{{else}}{{localize "DNC.Chat.DamageUsageStable"}}
{{/if}}
+ {{#if exhausted}}{{localize "DNC.Chat.DamageUsageExhausted"}}
{{/if}}
+ {{else}}
+ {{#if degraded}}{{localize "DNC.Chat.ResourceWearsDown"}}
{{else}}{{localize "DNC.Chat.ResourceStable"}}
{{/if}}
+ {{#if exhausted}}{{localize "DNC.Chat.ResourceExhausted"}}
{{/if}}
+ {{/if}}
diff --git a/templates/dialogs/damage-roll.hbs b/templates/dialogs/damage-roll.hbs
index 64171d2..9767f56 100644
--- a/templates/dialogs/damage-roll.hbs
+++ b/templates/dialogs/damage-roll.hbs
@@ -1,5 +1,8 @@
+ {{#if system.degatsEstUsageDe}}
+
+ {{else}}
+
+ {{/if}}
+