mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-07-22 18:39:55 +02:00
Merge 8082cb3a18 into 4b651836ff
This commit is contained in:
commit
01dbc14207
14 changed files with 117 additions and 20 deletions
|
|
@ -774,17 +774,21 @@ export default class DhpActor extends Actor {
|
|||
Object.entries(healings).forEach(([key, healing]) => {
|
||||
healing.parts.forEach(part => {
|
||||
const update = updates.find(u => u.key === key);
|
||||
if (update) update.value += part.total;
|
||||
else updates.push({ value: part.total, key });
|
||||
if (update) {
|
||||
update.value += part.total;
|
||||
update.clear ||= !!part.fullRestore;
|
||||
} else updates.push({ value: part.total, key, clear: !!part.fullRestore });
|
||||
});
|
||||
});
|
||||
|
||||
updates.forEach(
|
||||
u =>
|
||||
(u.value = !(u.key === 'fear' || this.system?.resources?.[u.key]?.isReversed === false)
|
||||
? u.value * -1
|
||||
: u.value)
|
||||
);
|
||||
updates.forEach(u => {
|
||||
if (u.key === CONFIG.DH.GENERAL.healingTypes.weaponResource.id) return;
|
||||
u.value = !(u.key === 'fear' || this.system?.resources?.[u.key]?.isReversed === false)
|
||||
? u.value * -1
|
||||
: u.value;
|
||||
});
|
||||
|
||||
this.convertResourceHealingToReload(updates);
|
||||
|
||||
await this.modifyResource(updates);
|
||||
|
||||
|
|
@ -810,7 +814,7 @@ export default class DhpActor extends Actor {
|
|||
resources.forEach(r => {
|
||||
if (r.itemId) {
|
||||
const { path, value } = game.system.api.fields.ActionFields.CostField.getItemIdCostUpdate(r);
|
||||
updates.items[r.key] = {
|
||||
updates.items[`${r.itemId}-${r.key}`] = {
|
||||
target: r.target,
|
||||
resources: { [path]: value }
|
||||
};
|
||||
|
|
@ -881,6 +885,22 @@ export default class DhpActor extends Actor {
|
|||
return damage >= this.system.damageThresholds.severe ? 3 : damage >= this.system.damageThresholds.major ? 2 : 1;
|
||||
}
|
||||
|
||||
convertResourceHealingToReload(updates) {
|
||||
const resourceIndex = updates.findIndex(u => u.key === CONFIG.DH.GENERAL.healingTypes.weaponResource.id);
|
||||
if (resourceIndex === -1) return;
|
||||
const [reload] = updates.splice(resourceIndex, 1);
|
||||
const weapons = this.items.filter(i => i.type === 'weapon' && i.system.equipped && i.system.resource);
|
||||
for (const weapon of weapons) {
|
||||
updates.push({
|
||||
key: CONFIG.DH.GENERAL.itemAbilityCosts.resource.id,
|
||||
value: reload.value,
|
||||
clear: reload.clear,
|
||||
itemId: weapon.id,
|
||||
target: weapon
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
convertStressDamageToHP(resources) {
|
||||
const stressDamage = resources.find(r => r.key === 'stress'),
|
||||
newValue = this.system.resources.stress.value + stressDamage.value;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue