[Fix] companion hope levelup feature and default stress (#1839)
Some checks are pending
Project CI / build (24.x) (push) Waiting to run

* Fix issues with companions

* Remove unused companion hope resource
This commit is contained in:
Carlos Fernandez 2026-04-26 05:20:06 -04:00 committed by GitHub
parent 53f77972e3
commit 047e77154a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 24 additions and 21 deletions

View file

@ -189,6 +189,9 @@ export default class DhpAdversary extends DhCreature {
prepareDerivedData() {
super.prepareDerivedData();
this.attack.roll.isStandardAttack = true;
// Clamp resources (must be done last to ensure all updates occur)
this.resources.clamp();
}
_getTags() {

View file

@ -778,6 +778,8 @@ export default class DhCharacter extends DhCreature {
prepareDerivedData() {
super.prepareDerivedData();
this.resources.hope.max -= this.scars;
if (this.companion) {
for (let levelKey in this.companion.system.levelData.levelups) {
const level = this.companion.system.levelData.levelups[levelKey];
@ -791,7 +793,6 @@ export default class DhCharacter extends DhCreature {
}
}
this.resources.hope.max -= this.scars;
this.attack.roll.trait = this.rules.attack.roll.trait ?? this.attack.roll.trait;
this.resources.armor = {
@ -801,6 +802,9 @@ export default class DhCharacter extends DhCreature {
};
this.attack.damage.parts.hitPoints.value.custom.formula = `@prof${this.basicAttackDamageDice}${this.rules.attack.damage.bonus ? ` + ${this.rules.attack.damage.bonus}` : ''}`;
// Clamp resources (must be done last to ensure all updates occur)
this.resources.clamp();
}
getRollData() {

View file

@ -144,9 +144,6 @@ export default class DhCompanion extends DhCreature {
const level = this.levelData.levelups[levelKey];
for (let selection of level.selections) {
switch (selection.type) {
case 'hope':
this.resources.hope += selection.value;
break;
case 'vicious':
if (selection.data[0] === 'damage') {
this.attack.damage.parts.hitPoints.value.dice = adjustDice(
@ -183,6 +180,9 @@ export default class DhCompanion extends DhCreature {
return acc;
}, this.partner.system.companionData.levelupChoices);
}
// Clamp resources (must be done last to ensure all updates occur)
this.resources.clamp();
}
async _preUpdate(changes, options, userId) {

View file

@ -60,14 +60,4 @@ export default class DhCreature extends BaseDataActor {
}
}
}
prepareDerivedData() {
const minLimitResource = resource => {
if (resource) resource.value = Math.min(resource.value, resource.max);
};
minLimitResource(this.resources.stress);
minLimitResource(this.resources.hitPoints);
minLimitResource(this.resources.hope);
}
}