hench/module/cards/hench-card.mjs

43 lines
1.2 KiB
JavaScript
Raw Normal View History

2025-01-17 15:23:02 -05:00
import { CURRENT_VERSION, versions } from '../constants/versions.mjs';
2024-12-20 11:18:13 -05:00
const { HTMLField, SchemaField, NumberField, StringField, BooleanField, FilePathField, ArrayField } = foundry.data.fields;
export const CARD_ZONES = {
DECK: 'DECK',
DISCARD: 'DISCARD',
SPREAD: 'SPREAD',
HELD: 'HELD',
};
// Data Model
export class HenchCardDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
return {
2025-01-17 15:23:02 -05:00
version: new StringField({ required: true, blank: true, initial: CURRENT_VERSION, options: versions }),
2024-12-20 11:18:13 -05:00
cue: new StringField({required: true, blank: true, initial: ""}),
zone: new StringField({required: true, blank: false, initial: CARD_ZONES.DECK, options: CARD_ZONES}),
};
}
2025-01-17 15:23:02 -05:00
static migrateData(source) {
// Draft 0 -> Draft 1
if(!source.version || source.version === versions.DRAFT_0) {
// Changes
source.version = versions.DRAFT_1;
}
return super.migrateData(source);
}
2024-12-20 11:18:13 -05:00
}
// Document Class
export class HenchCard extends Card {
get numericalValue() {
if(this.value < 7) {
return this.value;
}
return 0;
}
}