mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-11 19:25:21 +01:00
* style items and action chat messages * enhance death move chat message and fix border bottom from title actions * fix padding bottom * Added basic chat-message.hbs * . * style remaing chat messages * style action messages * remove console log * add colapsable descriptions in chat messages * inital style for message rolls * fix deal damage button style * add new partchments * Roll Chat message new design template * j * l * p * y * fix _getTags type error and add a alias label for non base messages * Fix damage & healing roll * Fix conflict * Deleting old templates * Good for now * fix labels in duality rolls messages and style experience and effects messages --------- Co-authored-by: WBHarry <williambjrklund@gmail.com> Co-authored-by: Dapoolp <elcatnet@gmail.com>
67 lines
2.8 KiB
JavaScript
67 lines
2.8 KiB
JavaScript
const fields = foundry.data.fields;
|
|
|
|
export default class DHActorRoll extends foundry.abstract.TypeDataModel {
|
|
static defineSchema() {
|
|
return {
|
|
title: new fields.StringField(),
|
|
roll: new fields.ObjectField(),
|
|
targets: new fields.ArrayField(
|
|
new fields.SchemaField({
|
|
id: new fields.StringField({}),
|
|
actorId: new fields.StringField({}),
|
|
name: new fields.StringField({}),
|
|
img: new fields.StringField({}),
|
|
difficulty: new fields.NumberField({ integer: true, nullable: true }),
|
|
evasion: new fields.NumberField({ integer: true }),
|
|
hit: new fields.BooleanField({ initial: false }),
|
|
saved: new fields.SchemaField({
|
|
result: new fields.NumberField(),
|
|
success: new fields.BooleanField({ nullable: true, initial: null })
|
|
})
|
|
})
|
|
),
|
|
targetSelection: new fields.BooleanField({ initial: false }),
|
|
hasRoll: new fields.BooleanField({ initial: false }),
|
|
hasDamage: new fields.BooleanField({ initial: false }),
|
|
hasHealing: new fields.BooleanField({ initial: false }),
|
|
hasEffect: new fields.BooleanField({ initial: false }),
|
|
hasSave: new fields.BooleanField({ initial: false }),
|
|
hasTarget: new fields.BooleanField({ initial: false }),
|
|
isCritical: new fields.BooleanField({ initial: false }),
|
|
onSave: new fields.StringField(),
|
|
source: new fields.SchemaField({
|
|
actor: new fields.StringField(),
|
|
item: new fields.StringField(),
|
|
action: new fields.StringField()
|
|
}),
|
|
damage: new fields.ObjectField(),
|
|
costs: new fields.ArrayField(
|
|
new fields.ObjectField()
|
|
)
|
|
};
|
|
}
|
|
|
|
get messageTemplate() {
|
|
return 'systems/daggerheart/templates/ui/chat/roll.hbs';
|
|
}
|
|
|
|
prepareDerivedData() {
|
|
this.hasHitTarget = this.targets.filter(t => t.hit === true).length > 0;
|
|
this.currentTargets =
|
|
this.targetSelection !== true
|
|
? Array.from(game.user.targets).map(t =>
|
|
game.system.api.fields.ActionFields.TargetField.formatTarget(t)
|
|
)
|
|
: this.targets;
|
|
if(this.targetSelection === true) {
|
|
this.targetShort = this.targets.reduce((a,c) => {
|
|
if(c.hit) a.hit += 1;
|
|
else c.miss += 1;
|
|
return a;
|
|
}, {hit: 0, miss: 0})
|
|
}
|
|
this.pendingSaves = this.targets.filter(
|
|
target => target.hit && target.saved.success === null
|
|
).length > 0;
|
|
}
|
|
}
|