Fix: Replace deprecated duration.type with duration.units (Foundry v14+)

- ActiveEffectDuration#type was renamed to #units in Foundry VTT v14
- Updated partial-active-effects.hbs to use duration.units
- Updated partial-item-effects.hbs to use duration.units
- Added test verification for duration.type usage
- Support for duration.type will be removed in v16

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-06-07 00:41:46 +02:00
parent 335238df3d
commit 9b3d34c5d7
3 changed files with 39 additions and 12 deletions
+6 -6
View File
@@ -52,13 +52,13 @@
</div> </div>
{{!-- Affichage de la durée --}} {{!-- Affichage de la durée --}}
{{#if effect.duration.type}} {{#if effect.duration.units}}
<span class="item-field-label-short" style="font-size: 0.85em;"> <span class="item-field-label-short" style="font-size: 0.85em;">
{{#if (eq effect.duration.type "rounds")}}🔄{{/if}} {{#if (eq effect.duration.units "rounds")}}🔄{{/if}}
{{#if (eq effect.duration.type "turns")}}🎭{{/if}} {{#if (eq effect.duration.units "turns")}}🎭{{/if}}
{{#if (eq effect.duration.type "seconds")}}⏱️{{/if}} {{#if (eq effect.duration.units "seconds")}}⏱️{{/if}}
{{#if (eq effect.duration.type "combat")}}⚔️{{/if}} {{#if (eq effect.duration.units "combat")}}⚔️{{/if}}
{{#if (eq effect.duration.type "scene")}}📜{{/if}} {{#if (eq effect.duration.units "scene")}}📜{{/if}}
{{effect.duration.value}} {{effect.duration.value}}
</span> </span>
{{/if}} {{/if}}
+5 -5
View File
@@ -48,12 +48,12 @@
</div> </div>
{{!-- Affichage de la durée --}} {{!-- Affichage de la durée --}}
{{#if effect.duration.type}} {{#if effect.duration.units}}
<span class="item-field-label-short" style="font-size: 0.85em;"> <span class="item-field-label-short" style="font-size: 0.85em;">
{{#if (eq effect.duration.type "rounds")}}🔄{{/if}} {{#if (eq effect.duration.units "rounds")}}🔄{{/if}}
{{#if (eq effect.duration.type "turns")}}🎭{{/if}} {{#if (eq effect.duration.units "turns")}}🎭{{/if}}
{{#if (eq effect.duration.type "seconds")}}⏱️{{/if}} {{#if (eq effect.duration.units "seconds")}}⏱️{{/if}}
{{#if (eq effect.duration.type "combat")}}⚔️{{/if}} {{#if (eq effect.duration.units "combat")}}⚔️{{/if}}
{{effect.duration.value}} {{effect.duration.value}}
</span> </span>
{{/if}} {{/if}}
+28 -1
View File
@@ -165,6 +165,32 @@ if (!effectWebpFound) {
console.log(' ✅ Aucune référence à effect.webp (icône manquante) trouvée'); console.log(' ✅ Aucune référence à effect.webp (icône manquante) trouvée');
} }
// 7. Vérification de la propriété dépréciée duration.type
console.log('\n7. Vérification de l\'utilisation de duration.type (déprécié en v14) :');
const durationTypePattern = /duration\.type/g;
const allHbsFiles = [
'templates/partial-active-effects.hbs',
'templates/partial-item-effects.hbs',
'templates/item-arme-sheet.hbs'
];
let durationTypeFound = false;
allHbsFiles.forEach(file => {
try {
const content = fs.readFileSync(path.join(__dirname, file), 'utf8');
if (durationTypePattern.test(content)) {
console.log(` ❌ Fichier ${file} utilise duration.type (déprécié)`);
durationTypeFound = true;
}
} catch (err) {
// Fichier introuvable, ignorer
}
});
if (!durationTypeFound) {
console.log(' ✅ Aucune utilisation de duration.type (utilise duration.units)');
}
// Résumé // Résumé
console.log('\n=== Résumé ==='); console.log('\n=== Résumé ===');
console.log(`Templates préchargés: ${loaded.length}`); console.log(`Templates préchargés: ${loaded.length}`);
@@ -173,8 +199,9 @@ console.log(`Partials manquants: ${missingPartials.length}`);
console.log(`Fichier JSON valide: ${errors.length === 0 ? 'Oui' : 'Non'}`); console.log(`Fichier JSON valide: ${errors.length === 0 ? 'Oui' : 'Non'}`);
console.log(`API dépréciée utilisée: ${deprecatedFound ? 'Oui' : 'Non'}`); console.log(`API dépréciée utilisée: ${deprecatedFound ? 'Oui' : 'Non'}`);
console.log(`Référence à effect.webp: ${effectWebpFound ? 'Oui' : 'Non'}`); console.log(`Référence à effect.webp: ${effectWebpFound ? 'Oui' : 'Non'}`);
console.log(`Utilisation de duration.type: ${durationTypeFound ? 'Oui' : 'Non'}`);
if (errors.length === 0 && missingPartials.length === 0 && !deprecatedFound && !effectWebpFound) { if (errors.length === 0 && missingPartials.length === 0 && !deprecatedFound && !effectWebpFound && !durationTypeFound) {
console.log('\n✅ Toutes les vérifications ont réussi !'); console.log('\n✅ Toutes les vérifications ont réussi !');
process.exit(0); process.exit(0);
} else { } else {