From 021361ef6973953e56ee593969261a13e14b1a90 Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Thu, 26 Jun 2025 21:46:55 +0200 Subject: [PATCH] 163 - Actor Sub Datas (#182) * Added rules/bonuses for all classes and subclasses * More --- module/config/generalConfig.mjs | 8 +++++++ module/data/actor/adversary.mjs | 8 ++++++- module/data/actor/character.mjs | 39 ++++++++++++++++++++++++++++----- 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index a3ba21db..ccbe2d21 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -393,6 +393,14 @@ export const abilityCosts = { slayer: { id: 'slayer', label: 'Slayer Dice' + }, + tide: { + id: 'tide', + label: 'Tide' + }, + chaos: { + id: 'chaos', + label: 'Chaos' } }; diff --git a/module/data/actor/adversary.mjs b/module/data/actor/adversary.mjs index 2aa4262b..5ac80969 100644 --- a/module/data/actor/adversary.mjs +++ b/module/data/actor/adversary.mjs @@ -68,7 +68,13 @@ export default class DhpAdversary extends BaseDataActor { name: new fields.StringField(), value: new fields.NumberField({ required: true, integer: true, initial: 1 }) }) - ) + ), + bonuses: new fields.SchemaField({ + difficulty: new fields.SchemaField({ + all: new fields.NumberField({ integer: true, initial: 0 }), + reaction: new fields.NumberField({ integer: true, initial: 0 }) + }) + }) }; } } diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index 5b5b32e8..654df3d8 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -38,7 +38,9 @@ export default class DhCharacter extends BaseDataActor { resources: new fields.SchemaField({ hitPoints: resourceField(6), stress: resourceField(6), - hope: resourceField(6) + hope: resourceField(6), + tokens: new fields.ObjectField(), + dice: new fields.ObjectField() }), traits: new fields.SchemaField({ agility: attributeField(), @@ -93,9 +95,22 @@ export default class DhCharacter extends BaseDataActor { }), levelData: new fields.EmbeddedDataField(DhPCLevelData), bonuses: new fields.SchemaField({ - attack: new fields.NumberField({ integer: true, initial: 0 }), - spellcast: new fields.NumberField({ integer: true, initial: 0 }), - armorScore: new fields.NumberField({ integer: true, initial: 0 }) + armorScore: new fields.NumberField({ integer: true, initial: 0 }), + damageThresholds: new fields.SchemaField({ + severe: new fields.NumberField({ integer: true, initial: 0 }), + major: new fields.NumberField({ integer: true, initial: 0 }) + }), + roll: new fields.SchemaField({ + attack: new fields.NumberField({ integer: true, initial: 0 }), + spellcast: new fields.NumberField({ integer: true, initial: 0 }), + action: new fields.NumberField({ integer: true, initial: 0 }), + hopeOrFear: new fields.NumberField({ integer: true, initial: 0 }) + }), + damage: new fields.SchemaField({ + all: new fields.NumberField({ integer: true, initial: 0 }), + physical: new fields.NumberField({ integer: true, initial: 0 }), + magic: new fields.NumberField({ integer: true, initial: 0 }) + }) }), rules: new fields.SchemaField({ maxArmorMarked: new fields.SchemaField({ @@ -107,7 +122,15 @@ export default class DhCharacter extends BaseDataActor { severe: stressDamageReductionRule(), major: stressDamageReductionRule(), minor: stressDamageReductionRule() - }) + }), + strangePatterns: new fields.NumberField({ + integer: true, + min: 1, + max: 12, + nullable: true, + initial: null + }), + runeWard: new fields.BooleanField({ initial: false }) }) }; } @@ -274,7 +297,11 @@ export default class DhCharacter extends BaseDataActor { const data = super.getRollData(); return { ...data, - tier: this.tier + ...this.resources.tokens, + ...this.resources.dice, + ...this.bonuses, + tier: this.tier, + level: this.levelData.level.current }; } }