4c33607b2b
- Add static calculateItemValueSC() and getItemValueSC() helpers to MournbladeCYD2Utility to centralize currency conversion logic (1 PO = 100 SC, 1 PA = 10 SC) - Refactor computeRichesse() and computeValeurEquipement() in Actor to use shared helpers - Add localizeAllegiance Handlebars helper to display allegiance values localized (tous->Tous, chaos->Chaos, loi->Loi, betes->Bêtes, elementaires->Élémentaires) - Add joinPredilections helper to fix comma display after single Predilection - Create BaseItemWithPriceDataModel base class for items with pricing fields (prixpo, prixca, prixsc, rarete, quantite, equipped) - Update arme, equipement, protection, monnaie models to extend base class - Update actor-sheet and creature-sheet templates to use new helpers - Update partial-item-prix.hbs to display total item value in SC - Add item-base-sheet.hbs template for future item sheet inheritance Fixes: - Allegiance values now display properly localized in Dons & Pactes tabs - Predilections no longer show trailing comma with single entry - Equipment value totals now update correctly when items are added/modified - Currency conversion logic centralized and consistent across the system Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
28 lines
1.2 KiB
JavaScript
28 lines
1.2 KiB
JavaScript
/**
|
|
* Data model pour les armes MournbladeCYD2
|
|
*/
|
|
import { BaseItemWithPriceDataModel } from "./base-item.mjs";
|
|
|
|
export default class ArmeDataModel extends BaseItemWithPriceDataModel {
|
|
static defineSchema() {
|
|
const fields = foundry.data.fields;
|
|
return {
|
|
...super.defineSchema(),
|
|
typearme: new fields.StringField({ initial: "" }),
|
|
armenaturelle: new fields.BooleanField({ initial: false }),
|
|
armefortune: new fields.BooleanField({ initial: false }),
|
|
bonusmaniementoff: new fields.NumberField({ initial: 0, integer: true }),
|
|
seuildefense: new fields.NumberField({ initial: 0, integer: true }),
|
|
onlevelonly: new fields.BooleanField({ initial: false }),
|
|
degats: new fields.StringField({ initial: "" }),
|
|
deuxmains: new fields.BooleanField({ initial: false }),
|
|
percearmure: new fields.BooleanField({ initial: false }),
|
|
percearmurevalue: new fields.NumberField({ initial: 0, integer: true }),
|
|
courte: new fields.NumberField({ initial: 0, integer: true }),
|
|
moyenne: new fields.NumberField({ initial: 0, integer: true }),
|
|
longue: new fields.NumberField({ initial: 0, integer: true }),
|
|
tr: new fields.NumberField({ initial: 0, integer: true })
|
|
};
|
|
}
|
|
}
|