Create new actions classes

This commit is contained in:
Dapoolp 2025-06-08 00:37:39 +02:00
parent 53be047e12
commit 4c7f3a02c4
6 changed files with 105 additions and 16 deletions

View file

@ -1,4 +1,4 @@
export default class DaggerheartAction extends foundry.abstract.DataModel {
export default class DHAction extends foundry.abstract.DataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
@ -32,3 +32,92 @@ export default class DaggerheartAction extends foundry.abstract.DataModel {
};
}
}
const fields = foundry.data.fields;
export class DHBaseAction extends foundry.abstract.DataModel {
static defineSchema() {
return {
_id: new fields.DocumentIdField(),
type: new fields.StringField({ blank: false, required: true, readOnly: true, initial: () => '' }),
name: new fields.StringField({ initial: 'New Action' }),
// description: new fields.StringField({}),
// shortDescription: new fields.StringField({}),
cost: new fields.SchemaField({
type: new fields.StringField({ choices: SYSTEM.GENERAL.abilityCosts, nullable: true, initial: null }),
value: new fields.NumberField({ nullable: true, initial: null })
}),
uses: new fields.SchemaField({
value: new fields.NumberField({ nullable: true, initial: null }),
max: new fields.NumberField({ nullable: true, initial: null }),
recovery: new fields.StringField({
// choices: SYSTEM.ACTIONS.targetTypes,
// initial: SYSTEM.ACTIONS.targetTypes.other.id
})
}),
duration: new fields.SchemaField({
value: new fields.NumberField({ nullable: true, initial: null }),
units: new fields.StringField({required: true, blank: false, initial: "instant"})
}),
target: new fields.SchemaField({
type: new fields.StringField({
choices: SYSTEM.ACTIONS.targetTypes,
initial: SYSTEM.ACTIONS.targetTypes.other.id
})
})
}
}
}
export class DHAttackAction extends DHBaseAction {
static defineSchema() {
return {
...super.defineSchema(),
attack: new fields.SchemaField({}),
damage: new fields.SchemaField({})
}
}
}
export class DHDamageAction extends DHBaseAction {
static defineSchema() {
return {
...super.defineSchema(),
damage: new fields.SchemaField({})
}
}
}
export class DHHealingAction extends DHBaseAction {
static defineSchema() {
return {
...super.defineSchema(),
healing: new fields.SchemaField({})
}
}
}
export class DHSummonAction extends DHBaseAction {
static defineSchema() {
return {
...super.defineSchema(),
healing: new fields.SchemaField({})
}
}
}
export class DHEffectAction extends DHBaseAction {
static defineSchema() {
return {
...super.defineSchema()
}
}
}
export class DHMacroAction extends DHBaseAction {
static defineSchema() {
return {
...super.defineSchema()
}
}
}