/** * Donjon & Cie - Systeme FoundryVTT * * Donjon & Cie est un jeu de role edite par John Doe. * Ce systeme FoundryVTT est une implementation independante et n'est pas * affilie a John Doe. * * @author LeRatierBretonnien * @copyright 2025–2026 LeRatierBretonnien * @license CC BY-NC-SA 4.0 – https://creativecommons.org/licenses/by-nc-sa/4.0/ */ import { DonjonEtCieRollDialog } from "./applications/donjon-et-cie-roll-dialog.mjs"; import { DonjonEtCieUtility } from "./donjon-et-cie-utility.mjs"; export class DonjonEtCieItem extends Item { async _preCreate(data, options, user) { await super._preCreate(data, options, user); const currentImg = data.img ?? this.img; if (currentImg && !currentImg.startsWith("icons/svg/")) return; this.updateSource({ img: DonjonEtCieUtility.getDefaultItemIcon(this.type) }); } get usageDie() { return Number(this.system.delta ?? 0); } async roll() { if (this.type === "arme") return DonjonEtCieRollDialog.createWeapon(this.actor, this); if (this.type === "sortilege") return DonjonEtCieRollDialog.createSpell(this.actor, this); if (this.usageDie) return DonjonEtCieRollDialog.createUsage(this); return this.postToChat(); } async rollDamage() { if (!this.system.degats) return null; return DonjonEtCieRollDialog.createDamage(this.actor, this); } async postToChat() { const content = await foundry.applications.handlebars.renderTemplate( "systems/fvtt-donjon-et-cie/templates/chat/item-card.hbs", { item: this, usageLabel: DonjonEtCieUtility.formatUsageDie(this.usageDie) } ); return ChatMessage.create({ speaker: ChatMessage.getSpeaker({ actor: this.actor }), user: game.user.id, content }); } }