Begin working on Aspect items
This commit is contained in:
parent
58facf1490
commit
25e3fa1bb8
14 changed files with 204 additions and 80 deletions
12
module/models/AspectItemData.mjs
Normal file
12
module/models/AspectItemData.mjs
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
export class AspectItemData extends foundry.abstract.DataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
name: new fields.HTMLField({ nullable: true, blank: false, trim: true }),
|
||||
used: new fields.BooleanField(),
|
||||
/** The number of seconds that the effect of the aspect stays */
|
||||
deactivateAfter: new fields.NumberField({ nullable: true }),
|
||||
info: new fields.HTMLField({ nullable: true, blank: false, trim: true }),
|
||||
};
|
||||
};
|
||||
};
|
||||
14
module/models/CommonItemData.mjs
Normal file
14
module/models/CommonItemData.mjs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
export class CommonItemData extends foundry.abstract.DataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
name: fields.HTMLField({
|
||||
blank: true,
|
||||
trim: true,
|
||||
}),
|
||||
cost: fields.NumberField({
|
||||
nullable: true,
|
||||
})
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
export class PlayerData extends foundry.abstract.DataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
stats: new fields.SchemaField({
|
||||
build: new fields.StringField({
|
||||
blank: true,
|
||||
trim: true,
|
||||
options(...args) {
|
||||
console.log(`build args`, args);
|
||||
return [ `d4`, `d6`, `d8`, `d10`, `d12`, `d20` ];
|
||||
},
|
||||
}),
|
||||
meta: new fields.StringField({
|
||||
blank: true,
|
||||
trim: true,
|
||||
options(...args) {
|
||||
console.log(args);
|
||||
return [ `d4`, `d6`, `d8`, `d10`, `d12`, `d20` ];
|
||||
},
|
||||
}),
|
||||
presence: new fields.StringField({
|
||||
blank: true,
|
||||
trim: true,
|
||||
options(...args) {
|
||||
console.log(args);
|
||||
return [ `d4`, `d6`, `d8`, `d10`, `d12`, `d20` ];
|
||||
},
|
||||
}),
|
||||
hands: new fields.StringField({
|
||||
blank: true,
|
||||
trim: true,
|
||||
options(...args) {
|
||||
console.log(args);
|
||||
return [ `d4`, `d6`, `d8`, `d10`, `d12`, `d20` ];
|
||||
},
|
||||
}),
|
||||
tilt: new fields.StringField({
|
||||
blank: true,
|
||||
trim: true,
|
||||
options(...args) {
|
||||
console.log(args);
|
||||
return [ `d4`, `d6`, `d8`, `d10`, `d12`, `d20` ];
|
||||
},
|
||||
}),
|
||||
rng: new fields.StringField({
|
||||
blank: true,
|
||||
trim: true,
|
||||
options(...args) {
|
||||
console.log(args);
|
||||
return [ `d4`, `d6`, `d8`, `d10`, `d12`, `d20` ];
|
||||
},
|
||||
}),
|
||||
}),
|
||||
};
|
||||
};
|
||||
};
|
||||
99
module/models/PlayerData.mjs
Normal file
99
module/models/PlayerData.mjs
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
function diceChoiceField() {
|
||||
return new foundry.data.fields.StringField({
|
||||
blank: true,
|
||||
trim: true,
|
||||
options() {
|
||||
return [ `d4`, `d6`, `d8`, `d10`, `d12`, `d20` ];
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
function trainingLevelField() {
|
||||
return new foundry.data.fields.StringField({
|
||||
blank: true,
|
||||
trim: true,
|
||||
options: [ ``, `locked`, `+2`, `+4` ],
|
||||
});
|
||||
};
|
||||
|
||||
export class PlayerData extends foundry.abstract.DataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
bytes: new fields.NumberField({
|
||||
integer: true,
|
||||
positive: true,
|
||||
}),
|
||||
stats: new fields.SchemaField({
|
||||
build: diceChoiceField(),
|
||||
meta: diceChoiceField(),
|
||||
presence: diceChoiceField(),
|
||||
hands: diceChoiceField(),
|
||||
tilt: diceChoiceField(),
|
||||
rng: diceChoiceField(),
|
||||
}),
|
||||
skills: new fields.SchemaField({
|
||||
build: new fields.SchemaField({
|
||||
defense: trainingLevelField(),
|
||||
magic: trainingLevelField(),
|
||||
melee: trainingLevelField(),
|
||||
platforming: trainingLevelField(),
|
||||
strength: trainingLevelField(),
|
||||
}),
|
||||
meta: new fields.SchemaField({
|
||||
alchemy: trainingLevelField(),
|
||||
arcanum: trainingLevelField(),
|
||||
dreams: trainingLevelField(),
|
||||
lore: trainingLevelField(),
|
||||
navigation: trainingLevelField(),
|
||||
}),
|
||||
presence: new fields.SchemaField({
|
||||
animal_handling: trainingLevelField(),
|
||||
perception: trainingLevelField(),
|
||||
sneak: trainingLevelField(),
|
||||
speech: trainingLevelField(),
|
||||
vibe: trainingLevelField(),
|
||||
}),
|
||||
hands: new fields.SchemaField({
|
||||
accuracy: trainingLevelField(),
|
||||
crafting: trainingLevelField(),
|
||||
engineering: trainingLevelField(),
|
||||
explosives: trainingLevelField(),
|
||||
piloting: trainingLevelField(),
|
||||
})
|
||||
}),
|
||||
aspect: new fields.StringField({
|
||||
blank: true,
|
||||
trim: true,
|
||||
}),
|
||||
roles: new fields.ArrayField(new fields.HTMLField()),
|
||||
weapon: new fields.SchemaField({
|
||||
name: new fields.HTMLField(),
|
||||
damage: new fields.HTMLField(),
|
||||
ammo: new fields.SchemaField({
|
||||
quivers: new fields.NumberField({ min: 0, max: 5, integer: true }),
|
||||
mags: new fields.NumberField({ min: 0, max: 5, integer: true }),
|
||||
cells: new fields.NumberField({ min: 0, max: 5, integer: true }),
|
||||
}),
|
||||
}),
|
||||
supplies: new fields.NumberField({ min: 0, max: 5, integer: true }),
|
||||
materials: new fields.NumberField({ min: 0, max: 5, integer: true }),
|
||||
pet: new fields.SchemaField({
|
||||
name: new fields.HTMLField(),
|
||||
info: new fields.HTMLField(),
|
||||
}),
|
||||
transport: new fields.SchemaField({
|
||||
name: new fields.HTMLField(),
|
||||
upkeep: new fields.NumberField({ min: 0, integer: true }),
|
||||
info: new fields.HTMLField(),
|
||||
}),
|
||||
spells: new fields.ArrayField(
|
||||
new fields.SchemaField({
|
||||
name: new fields.HTMLField(),
|
||||
cost: new fields.NumberField(),
|
||||
info: new fields.HTMLField(),
|
||||
})
|
||||
),
|
||||
};
|
||||
};
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue