Tâche 0 : - item.mjs : champ equipped sur items génériques + toggle fiche - nouveau module/system/traits.mjs (helpers partagés : equippedItems, lourdMalus, mobilityHandicap, feticheItem…) Phase 2 — Combat : - Lourd : malus cumulés auto (Vigueur < n) dans le dialogue + pool - Rapide : handicap (n) pré-rempli dans la défense (character + PNJ) + note carte - Rafale : case tir en rafale (+2 difficulté), +n réussites si réussi (bonusOnSuccess) - Portée : portée effective n × Vigueur affichée - Maniable/Mobilité : note de rappel (dialogue + carte) - Incapacitant : bouton « Jet de Santé (n) » sur la carte d'échange - getLabel() : libellés caractéristiques/compétences localisés Phase 3 — Jets d'action : - Ponctuel : annule jusqu'à n Handicaps, consommé au jet (Traits supprimé à 0) - Pratique : outil sélectionné +2D au lieu de +1D - Intimidant : case « Brandit » → -1D Psychologie ou Relance 1D - Malus : champ « Malus temporaires » manuel déduit du pool - Durée : note « n tours » sur la carte de jet d'arme - roll() : transmission effectiveRange/mobilityHandicap/ponctuelUsed/intimidant (corrige l'affichage Portée/Mobilité) Phase 4 — Acteur : - Fétiche : +1D Effort ET Sang-Froid (max dérivé, config corrigé), alerte 2+ fétiches, action « Perdre le fétiche » (-2D, max -1D persistant feticheLoss) - Zone : note + bouton « Appliquer aux cibles de la zone » (#onApplyZone) CSS : styles LESS pour les nouvelles classes (fetiche-block, exchange-reminder/zone, traits-reminder, tool-bonus/ponctuel, duree-note) i18n : 29 clés fr/en TRAITS_PLAN.md : plan complet cochée
25 lines
822 B
JavaScript
25 lines
822 B
JavaScript
/**
|
|
* DataModel pour les items de type "item" (équipement générique).
|
|
* @augments {foundry.abstract.TypeDataModel}
|
|
*/
|
|
export default class VermineItemData extends foundry.abstract.TypeDataModel {
|
|
/** @override */
|
|
static LOCALIZATION_PREFIXES = ["VERMINE.item.item"]
|
|
|
|
/** @override */
|
|
static defineSchema() {
|
|
const fields = foundry.data.fields
|
|
return {
|
|
...baseItemSchema(),
|
|
needSkill: new fields.SchemaField({
|
|
value: new fields.BooleanField({ required: true, initial: false }),
|
|
skill: new fields.StringField({ required: true, initial: "" })
|
|
}),
|
|
equipped: new fields.BooleanField({ required: true, initial: false })
|
|
}
|
|
}
|
|
}
|
|
|
|
// Import partagé — après la déclaration de classe car defineSchema est statique
|
|
import { baseItemSchema } from './_shared.mjs'
|