Files
vermine2047/module/models/weapon.mjs
T
uberwald f2c8cfe246 feat: équipement, échanges de coups et améliorations des fiches
- équipement des armes et protections (champ equipped, liste des équipés, toggle)
- échanges de coups automatisés (attaque/défense/résolution/blessures dans le chat)
- dialogue d'attaque par type (personnage/PNJ/créature), portées et difficultés
- conservation du scroll des fiches lors des modifs (option scrollable + classe active)
- verrouillage des compétences PNJ en mode jeu
- corrections review combat (défenseur, difficulté >10, multi-cibles, permissions)
2026-08-04 14:14:03 +02:00

30 lines
1.1 KiB
JavaScript

import { baseItemSchema } from "./_shared.mjs"
/**
* DataModel pour les items de type "weapon" (armes).
* @augments {foundry.abstract.TypeDataModel}
*/
export default class VermineWeaponData extends foundry.abstract.TypeDataModel {
/** @override */
static LOCALIZATION_PREFIXES = ["VERMINE.item.weapon"]
/** @override */
static defineSchema() {
const fields = foundry.data.fields
const reqInt = { required: true, nullable: false, integer: true }
return {
...baseItemSchema(),
skill: new fields.StringField({ required: true, nullable: false, initial: "" }),
equipped: new fields.BooleanField({ required: true, initial: false }),
min_range: new fields.NumberField({ ...reqInt, initial: 0, min: 0 }),
max_range: new fields.NumberField({ ...reqInt, initial: 0, min: 0 }),
damage: new fields.SchemaField({
value: new fields.NumberField({ ...reqInt, initial: 0, min: 0 }),
type: new fields.StringField({ required: true, initial: "" }),
addVigor: new fields.BooleanField({ required: true, initial: false })
}),
ammo: new fields.NumberField({ ...reqInt, initial: 0, min: 0 })
}
}
}