import { VermineBaseItemSheet } from "./base-item-sheet.mjs" // ── Item générique ──────────────────────────────────────────────────── export class VermineItemSheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["item-gear"], position: { width: 520 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-item-sheet.hbs", scrollable: [""] } } } // ── Arme ────────────────────────────────────────────────────────────── export class VermineWeaponSheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["weapon"], position: { width: 520 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-weapon-sheet.hbs", scrollable: [""] } } } // ── Défense ─────────────────────────────────────────────────────────── export class VermineDefenseSheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["defense"], position: { width: 520 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-defense-sheet.hbs", scrollable: [""] } } } // ── Véhicule ────────────────────────────────────────────────────────── export class VermineVehicleSheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["vehicle"], position: { width: 520 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-vehicle-sheet.hbs", scrollable: [""] } } async _prepareContext() { const context = await super._prepareContext() // Compétences d'Entretien possibles (mécanique, technologie, artisanat, animalisme…) const maintenanceKeys = ["mecanical", "technology", "crafting", "animalism", "environment", "wildlife", "flora", "repulsion", "toxics"] const current = this.document.system.maintenance || [] context.maintenanceSkills = maintenanceKeys.map(key => ({ key, label: game.i18n.localize("SKILLS." + key + ".name"), checked: current.includes(key) })) return context } /** @override - nettoie le tableau d'Entretien (retire les cases non cochées). */ _prepareSubmitData(event, form, formData, updateData) { const result = super._prepareSubmitData(event, form, formData, updateData) if (Array.isArray(result?.system?.maintenance)) { result.system.maintenance = result.system.maintenance.filter(v => typeof v === "string" && v.trim() !== "") } return result } } // ── Capacité ────────────────────────────────────────────────────────── export class VermineAbilitySheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["ability"], position: { width: 560 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-ability-sheet.hbs", scrollable: [""] } } } // ── Spécialité ──────────────────────────────────────────────────────── export class VermineSpecialtySheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["specialty"], position: { width: 400 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-specialty-sheet.hbs", scrollable: [""] } } } // ── Historique ──────────────────────────────────────────────────────── export class VermineBackgroundSheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["background"], position: { width: 520 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-background-sheet.hbs", scrollable: [""] } } } // ── Traumatisme ─────────────────────────────────────────────────────── export class VermineTraumaSheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["trauma"], position: { width: 520 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-trauma-sheet.hbs", scrollable: [""] } } } // ── Évolution ───────────────────────────────────────────────────────── export class VermineEvolutionSheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["evolution"], position: { width: 520 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-evolution-sheet.hbs", scrollable: [""] } } } // ── Rumeur ──────────────────────────────────────────────────────────── export class VermineRumorSheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["rumor"], position: { width: 520 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-rumor-sheet.hbs", scrollable: [""] } } } // ── Cible ───────────────────────────────────────────────────────────── export class VermineTargetSheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["target"], position: { width: 520 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-target-sheet.hbs", scrollable: [""] } } } // ── Rite ────────────────────────────────────────────────────────────── export class VermineRiteSheetV2 extends VermineBaseItemSheet { static DEFAULT_OPTIONS = { classes: ["rite"], position: { width: 520 } } static PARTS = { main: { template: "systems/vermine2047/templates/item/item-rite-sheet.hbs", scrollable: [""] } } }