Various fixes and add rune support

This commit is contained in:
2026-03-30 23:38:45 +02:00
parent 2bf737a3ef
commit fb04448ab0
18 changed files with 506 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
import { SYSTEM } from "../config/system.mjs"
import { CLASS_RESTRICTION_CHOICES, SYSTEM } from "../config/system.mjs"
export default class OathHammerArmor extends foundry.abstract.TypeDataModel {
static defineSchema() {
@@ -39,7 +39,10 @@ export default class OathHammerArmor extends foundry.abstract.TypeDataModel {
schema.isCursed = new fields.BooleanField({ initial: false })
schema.magicEffect = new fields.HTMLField({ required: false, textSearch: true })
// Class/lineage restriction, e.g. "Dwarves only" (empty = no restriction)
schema.classRestriction = new fields.StringField({ required: true, nullable: false, initial: "" })
schema.classRestriction = new fields.StringField({ required: false, nullable: true, initial: null, choices: CLASS_RESTRICTION_CHOICES })
// Attached runic spells (max 2; each is a snapshot of the spell item)
schema.runes = new fields.ArrayField(new fields.ObjectField(), { required: true, initial: [] })
return schema
}

View File

@@ -1,4 +1,4 @@
import { SYSTEM } from "../config/system.mjs"
import { CLASS_RESTRICTION_CHOICES, SYSTEM } from "../config/system.mjs"
export default class OathHammerMagicItem extends foundry.abstract.TypeDataModel {
static defineSchema() {
@@ -27,7 +27,7 @@ export default class OathHammerMagicItem extends foundry.abstract.TypeDataModel
schema.isBonded = new fields.BooleanField({ initial: false })
// Class/lineage restriction printed in the item's type line, e.g. "Troubadour Only"
schema.classRestriction = new fields.StringField({ required: true, nullable: false, initial: "" })
schema.classRestriction = new fields.StringField({ required: false, nullable: true, initial: null, choices: CLASS_RESTRICTION_CHOICES })
// Limited-use items (e.g. "once per day"); none = always active
schema.usagePeriod = new fields.StringField({
@@ -39,6 +39,9 @@ export default class OathHammerMagicItem extends foundry.abstract.TypeDataModel
schema.equipped = new fields.BooleanField({ initial: false })
// Attached runic spells — only for talisman subtype (max 2; snapshot of spell item)
schema.runes = new fields.ArrayField(new fields.ObjectField(), { required: true, initial: [] })
return schema
}

View File

@@ -21,6 +21,7 @@ export default class OathHammerParty extends foundry.abstract.TypeDataModel {
})
schema.maxSlots = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
schema.renown = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
return schema
}

View File

@@ -64,6 +64,9 @@ export default class OathHammerWeapon extends foundry.abstract.TypeDataModel {
// Use this for abilities like Magic Bolt that roll Magic+Willpower instead.
schema.skillOverride = new fields.StringField({ required: false, nullable: true, initial: null })
// Attached runic spells (max 2; each is a snapshot of the spell item)
schema.runes = new fields.ArrayField(new fields.ObjectField(), { required: true, initial: [] })
return schema
}