This commit is contained in:
WBHarry 2025-08-06 23:40:09 +02:00
parent a57de1c9c3
commit df6cea61b2
2 changed files with 21 additions and 26 deletions

View file

@ -479,7 +479,8 @@ export const multiplierTypes = {
cast: 'Spellcast', cast: 'Spellcast',
scale: 'Cost Scaling', scale: 'Cost Scaling',
result: 'Roll Result', result: 'Roll Result',
flat: 'Flat' flat: 'Flat',
tier: 'Tier'
}; };
export const diceSetNumbers = { export const diceSetNumbers = {

View file

@ -224,14 +224,11 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
} }
const resources = config.costs const resources = config.costs
.filter(c => .filter(
c.enabled !== false c =>
&& c.enabled !== false &&
( ((!successCost && (!c.consumeOnSuccess || config.roll?.success)) ||
(!successCost && (!c.consumeOnSuccess || config.roll?.success)) (successCost && c.consumeOnSuccess))
||
(successCost && c.consumeOnSuccess)
)
) )
.map(c => { .map(c => {
const resource = usefulResources[c.key]; const resource = usefulResources[c.key];
@ -244,17 +241,15 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
}); });
await this.actor.modifyResource(resources); await this.actor.modifyResource(resources);
if (config.uses?.enabled if (
&& config.uses?.enabled &&
( ((!successCost && (!config.uses?.consumeOnSuccess || config.roll?.success)) ||
(!successCost && (!config.uses?.consumeOnSuccess || config.roll?.success)) (successCost && config.uses?.consumeOnSuccess))
||
(successCost && config.uses?.consumeOnSuccess)
) )
) this.update({ 'uses.value': this.uses.value + 1 }); this.update({ 'uses.value': this.uses.value + 1 });
if (config.roll?.success || successCost) if (config.roll?.success || successCost)
(config.message ?? config.parent).update({'system.successConsumed': true}) (config.message ?? config.parent).update({ 'system.successConsumed': true });
} }
/* */ /* */
@ -307,11 +302,10 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
} }
async applyEffect(effect, actor) { async applyEffect(effect, actor) {
const origin = effect.parent?.parent ? effect.parent.parent.uuid : effect.parent.uuid; const actorOrigin = effect.parent?.parent ? effect.parent.parent.uuid : effect.parent.uuid;
// Enable an existing effect on the target if it originated from this effect // Enable an existing effect on the target if it originated from this effect
const existingEffect = actor.effects.find(e => e.origin === origin); if (effect.transfer) {
if (existingEffect) { return effect.update(
return existingEffect.update(
foundry.utils.mergeObject({ foundry.utils.mergeObject({
...effect.constructor.getInitialDuration(), ...effect.constructor.getInitialDuration(),
disabled: false disabled: false
@ -324,7 +318,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
...effect.toObject(), ...effect.toObject(),
disabled: false, disabled: false,
transfer: false, transfer: false,
origin: origin origin: actorOrigin
}); });
await ActiveEffect.implementation.create(effectData, { parent: actor }); await ActiveEffect.implementation.create(effectData, { parent: actor });
} }