Skip to content

Commit 3ac09e0

Browse files
committed
Fix incoming recovery multiplier resolution
1 parent 359ac69 commit 3ac09e0

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

lang/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1513,6 +1513,7 @@
15131513
"ChatInventoryTransactionFailed": "<strong>{actor}</strong> does not have enough {currency} to make that transaction.",
15141514
"ChatInventoryItemMissing": "The item is no longer available.",
15151515
"ChatRecoveryNotNeeded": "<strong>{actor}</strong> already has full {resource}.",
1516+
"ChatRecoveryNotPossible": "<strong>{actor}</strong> was not able to recover {resource}.",
15161517
"ActorSheetEffectNotSupported": "This type of actor sheet does not support active effects.",
15171518
"ActorSheetItemNotSupported": "This type of actor sheet does not support the given item type",
15181519
"ChatStudyEvent": "<strong>{actor}</strong> has learned <b>{result}</b> information about <strong>{target}</strong>.",

module/pipelines/resource-pipeline.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ async function processRecovery(request) {
180180
continue;
181181
}
182182
const incomingRecoveryBonus = actor.system.bonuses.incomingRecovery[request.resourceType] || 0;
183-
const incomingRecoveryMultiplier = actor.system.multipliers.incomingRecovery[request.resourceType] || 1;
183+
const incomingRecoveryMultiplier = actor.system.multipliers.incomingRecovery[request.resourceType] ?? 1;
184184
let amountRecovered = Math.max(0, Math.floor((request.amount + incomingRecoveryBonus + outgoingRecoveryBonus) * (incomingRecoveryMultiplier * outgoingRecoveryMultiplier)));
185185
const attr = foundry.utils.getProperty(actor.system, request.attributeKey);
186186
const uncappedRecoveryValue = amountRecovered + attr.value;
@@ -205,12 +205,12 @@ async function processRecovery(request) {
205205
else {
206206
// Lower amount recovered by how much the target is missing
207207
amountRecovered = Math.min(amountRecovered, calculateMissingResource(actor, request.attributePath));
208-
// No recovery possible
209208
if (amountRecovered === 0) {
209+
const message = incomingRecoveryMultiplier > 0 ? 'FU.ChatRecoveryNotNeeded' : 'FU.ChatRecoveryNotPossible';
210210
ChatMessage.create({
211211
speaker: ChatMessage.getSpeaker({ actor }),
212212
flags: Pipeline.initializedFlags(Flags.ChatMessage.ResourceGain, true),
213-
content: game.i18n.format('FU.ChatRecoveryNotNeeded', {
213+
content: game.i18n.format(message, {
214214
actor: actor.name,
215215
resource: request.resourceType.toUpperCase(),
216216
}),

0 commit comments

Comments
 (0)