Add roll windows from actor sheet
This commit is contained in:
@@ -9,6 +9,5 @@ export { default as OathHammerMiracle } from "./miracle.mjs"
|
||||
export { default as OathHammerMagicItem } from "./magic-item.mjs"
|
||||
export { default as OathHammerTrait } from "./trait.mjs"
|
||||
export { default as OathHammerOath } from "./oath.mjs"
|
||||
export { default as OathHammerLineage } from "./lineage.mjs"
|
||||
export { default as OathHammerClass } from "./class.mjs"
|
||||
export { default as OathHammerBuilding } from "./building.mjs"
|
||||
|
||||
@@ -12,7 +12,7 @@ export default class OathHammerArmor extends foundry.abstract.TypeDataModel {
|
||||
schema.armorType = new fields.StringField({ required: true, initial: "light", choices: SYSTEM.ARMOR_TYPE_CHOICES })
|
||||
|
||||
// Armor Value (AV): number of armor dice rolled when receiving damage
|
||||
schema.armorValue = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 12 })
|
||||
schema.armorValue = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 16 })
|
||||
|
||||
// Penalty: modifier to Acrobatics checks AND defense rolls (0, -1, -2, -3…)
|
||||
schema.penalty = new fields.NumberField({ ...requiredInteger, initial: 0, min: -5, max: 0 })
|
||||
|
||||
@@ -23,11 +23,10 @@ export default class OathHammerBuilding extends foundry.abstract.TypeDataModel {
|
||||
// Monthly tax revenue formula ("3d6", "2d6", "1d3", "" = none)
|
||||
schema.taxRevenue = new fields.StringField({ required: true, nullable: false, initial: "" })
|
||||
|
||||
// Is this building currently constructed in the settlement?
|
||||
// Is this building currently constructed?
|
||||
schema.constructed = new fields.BooleanField({ required: true, initial: false })
|
||||
|
||||
// Which settlement this building belongs to (free text or settlement name)
|
||||
schema.settlement = new fields.StringField({ required: true, nullable: false, initial: "" })
|
||||
|
||||
|
||||
// Additional GM notes (special conditions, upgrades, damage, etc.)
|
||||
schema.notes = new fields.HTMLField({ required: false, textSearch: true })
|
||||
|
||||
@@ -9,6 +9,12 @@ export default class OathHammerCharacter extends foundry.abstract.TypeDataModel
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.notes = new fields.HTMLField({ required: true, textSearch: true })
|
||||
|
||||
// Lineage (simple fields on the actor — not an Item)
|
||||
schema.lineage = new fields.SchemaField({
|
||||
name: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
traits: new fields.HTMLField({ required: true, textSearch: true }),
|
||||
})
|
||||
|
||||
const attributeField = () => new fields.SchemaField({
|
||||
rank: new fields.NumberField({ ...requiredInteger, initial: 1, min: 1, max: 4 })
|
||||
})
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
export default class OathHammerLineage extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields
|
||||
const schema = {}
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
|
||||
// Racial traits and special abilities (rich text)
|
||||
schema.traits = new fields.HTMLField({ required: true, textSearch: true })
|
||||
|
||||
// Base movement speed in feet
|
||||
schema.movement = new fields.NumberField({ required: true, nullable: false, integer: true, initial: 30, min: 0 })
|
||||
|
||||
// Modifier to max Grit Points (e.g. -1 for High Elf, Wood Elf)
|
||||
schema.gritModifier = new fields.NumberField({ required: true, nullable: false, integer: true, initial: 0 })
|
||||
|
||||
return schema
|
||||
}
|
||||
|
||||
static LOCALIZATION_PREFIXES = ["OATHHAMMER.Lineage"]
|
||||
}
|
||||
@@ -35,8 +35,7 @@ export default class OathHammerMagicItem extends foundry.abstract.TypeDataModel
|
||||
})
|
||||
schema.maxUses = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
|
||||
// Item slots occupied when carried; 0 = small item (no slots)
|
||||
schema.slots = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
|
||||
|
||||
schema.equipped = new fields.BooleanField({ initial: false })
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ export default class OathHammerWeapon extends foundry.abstract.TypeDataModel {
|
||||
// usesMight=true → formula displayed as "M+2", "M-1", etc.
|
||||
// usesMight=false → formula displayed as e.g. "6" (fixed dice for bows)
|
||||
schema.usesMight = new fields.BooleanField({ required: true, initial: true })
|
||||
schema.damageMod = new fields.NumberField({ ...requiredInteger, initial: 0, min: -4, max: 5 })
|
||||
schema.damageMod = new fields.NumberField({ ...requiredInteger, initial: 0, min: -4, max: 16 })
|
||||
|
||||
// AP (Armor Penetration): penalty imposed on armor/defense rolls
|
||||
schema.ap = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 6 })
|
||||
schema.ap = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 16 })
|
||||
|
||||
// Reach (melee, in ft: 5 / 10 / 15) — ignored for ranged/throwing
|
||||
schema.reach = new fields.NumberField({ ...requiredInteger, initial: 5, min: 5 })
|
||||
@@ -35,6 +35,12 @@ export default class OathHammerWeapon extends foundry.abstract.TypeDataModel {
|
||||
{ required: true, initial: [] }
|
||||
)
|
||||
|
||||
// Special Properties — crafting enhancements (Accurate, Master-Crafted, etc. p.98)
|
||||
schema.specialProperties = new fields.SetField(
|
||||
new fields.StringField({ choices: SYSTEM.WEAPON_SPECIAL_PROPERTIES }),
|
||||
{ required: true, initial: [] }
|
||||
)
|
||||
|
||||
// Item slots (when stowed; 0 = does not occupy slots)
|
||||
schema.slots = new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 })
|
||||
|
||||
|
||||
Reference in New Issue
Block a user