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;
|
|
|
|
}
|
|
|
|
}
|