Fixes and enhancements, from issue list

This commit is contained in:
2026-03-27 21:21:17 +01:00
parent f1dda301d7
commit c22c3d713b
25 changed files with 531 additions and 111 deletions

View File

@@ -6,9 +6,12 @@ export default class OathHammerParty extends foundry.abstract.TypeDataModel {
schema.notes = new fields.HTMLField({ required: false, nullable: true, initial: "" })
// Ordered list of character actor IDs — position = marching order
// Ordered list of member entries — position = marching order
schema.memberRefs = new fields.ArrayField(
new fields.StringField({ required: true, nullable: false, blank: false })
new fields.SchemaField({
id: new fields.StringField({ required: true, nullable: false, blank: false }),
carriesLight: new fields.BooleanField({ initial: false }),
})
)
schema.treasury = new fields.SchemaField({
@@ -17,8 +20,19 @@ export default class OathHammerParty extends foundry.abstract.TypeDataModel {
cp: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
})
schema.maxSlots = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
return schema
}
static migrateData(source) {
if (Array.isArray(source.memberRefs)) {
source.memberRefs = source.memberRefs.map(r =>
typeof r === "string" ? { id: r, carriesLight: false } : r
)
}
return super.migrateData(source)
}
static LOCALIZATION_PREFIXES = ["OATHHAMMER.Party"]
}

View File

@@ -22,6 +22,7 @@ export default class OathHammerRegiment extends foundry.abstract.TypeDataModel {
schema.movement = new fields.NumberField({ ...requiredInteger, initial: 60, min: 0, max: 500 })
schema.supplyCost = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
schema.recruitmentCost = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
schema.mercenary = new fields.BooleanField({ required: true, initial: false })
schema.leaderUuid = new fields.StringField({ required: false, nullable: true, initial: null })