Implements inventory system, wip
This commit is contained in:
@@ -10,4 +10,7 @@ export { default as PrismRPGAbility } from "./ability.mjs"
|
||||
export { default as PrismRPGEquipment } from "./equipment.mjs"
|
||||
export { default as PrismRPGRace } from "./race.mjs"
|
||||
export { default as PrismRPGClass } from "./class.mjs"
|
||||
export { default as PrismRPGCharacterPath } from "./character-path.mjs"
|
||||
export { default as PrismRPGCharacterPath } from "./character-path.mjs"
|
||||
export { default as PrismRPGContainer } from "./container.mjs"
|
||||
export { default as PrismRPGConsumable } from "./consumable.mjs"
|
||||
export { default as PrismRPGLoot } from "./loot.mjs"
|
||||
@@ -136,6 +136,21 @@ export default class PrismRPGCharacter extends foundry.abstract.TypeDataModel {
|
||||
}, {}),
|
||||
)
|
||||
|
||||
// Sub-attribute choices for movement rating and burden selectors
|
||||
const subAttributeChoices = () =>
|
||||
Object.values(SYSTEM.SUB_ATTRIBUTES).reduce((obj, s) => { obj[s.id] = s.label; return obj }, {})
|
||||
|
||||
schema.movementRating = new fields.SchemaField({
|
||||
subAttribute: new fields.StringField({ required: true, initial: "stamina", choices: subAttributeChoices }),
|
||||
other: new fields.NumberField({ ...requiredInteger, initial: 0 }),
|
||||
reduction: new fields.NumberField({ ...requiredInteger, initial: 0 })
|
||||
})
|
||||
|
||||
schema.burden = new fields.SchemaField({
|
||||
subAttribute: new fields.StringField({ required: true, initial: "vigor", choices: subAttributeChoices }),
|
||||
other: new fields.NumberField({ ...requiredInteger, initial: 0 })
|
||||
})
|
||||
|
||||
return schema
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
export default class PrismRPGConsumable extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields
|
||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||
const schema = {}
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.usesMax = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
|
||||
schema.uses = new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 })
|
||||
schema.encLoad = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
schema.cost = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
schema.notes = new fields.HTMLField({ required: true })
|
||||
|
||||
return schema
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static LOCALIZATION_PREFIXES = ["PRISMRPG.Consumable"]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
export default class PrismRPGContainer extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields
|
||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||
const schema = {}
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.packBurden = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
schema.encLoad = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
schema.cost = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
schema.equipped = new fields.BooleanField({ required: true, initial: false })
|
||||
schema.notes = new fields.HTMLField({ required: true })
|
||||
|
||||
return schema
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static LOCALIZATION_PREFIXES = ["PRISMRPG.Container"]
|
||||
}
|
||||
@@ -12,6 +12,7 @@ export default class PrismRPGEquipment extends foundry.abstract.TypeDataModel {
|
||||
schema.encLoad = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||
schema.money = new fields.StringField({ required: true, initial: "coppercoin", choices: SYSTEM.MONEY })
|
||||
schema.equipped = new fields.BooleanField({ required: true, initial: false })
|
||||
|
||||
// Kit properties
|
||||
schema.isKit = new fields.BooleanField({
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
export default class PrismRPGLoot extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields
|
||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||
const schema = {}
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.encLoad = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
schema.cost = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
schema.notes = new fields.HTMLField({ required: true })
|
||||
|
||||
return schema
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static LOCALIZATION_PREFIXES = ["PRISMRPG.Loot"]
|
||||
}
|
||||
@@ -46,6 +46,15 @@ export default class PrismRPGRace extends foundry.abstract.TypeDataModel {
|
||||
label: "Language"
|
||||
})
|
||||
|
||||
schema.baseBurden = new fields.NumberField({
|
||||
required: true,
|
||||
nullable: false,
|
||||
integer: true,
|
||||
initial: 0,
|
||||
min: 0,
|
||||
label: "Base Burden"
|
||||
})
|
||||
|
||||
// Racial Passive
|
||||
schema.racialPassive = new fields.StringField({
|
||||
required: true,
|
||||
|
||||
Reference in New Issue
Block a user