feat: agregar lógica de penalización por fatiga en recompensas; actualizar tipos de recompensa para incluir monedas base y monedas después de la penalización
This commit is contained in:
@@ -103,14 +103,18 @@ export const command: CommandMessage = {
|
|||||||
})
|
})
|
||||||
.join("\n")
|
.join("\n")
|
||||||
: "• —";
|
: "• —";
|
||||||
if (
|
if (result.rewardModifiers?.baseCoinsAwarded != null) {
|
||||||
result.rewardModifiers?.fatigueCoinMultiplier != null &&
|
const { baseCoinsAwarded, coinsAfterPenalty, fatigueCoinMultiplier } =
|
||||||
result.rewardModifiers.fatigueCoinMultiplier < 1
|
result.rewardModifiers;
|
||||||
) {
|
if (
|
||||||
const pct = Math.round(
|
fatigueCoinMultiplier != null &&
|
||||||
(1 - result.rewardModifiers.fatigueCoinMultiplier) * 100
|
fatigueCoinMultiplier < 1 &&
|
||||||
);
|
baseCoinsAwarded != null &&
|
||||||
rewardLines += `\n (⚠️ Fatiga -${pct}% monedas)`;
|
coinsAfterPenalty != null
|
||||||
|
) {
|
||||||
|
const pct = Math.round((1 - fatigueCoinMultiplier) * 100);
|
||||||
|
rewardLines += `\n (⚠️ Fatiga: monedas base ${baseCoinsAwarded} → ${coinsAfterPenalty} (-${pct}%) )`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const mobsLines = result.mobs.length
|
const mobsLines = result.mobs.length
|
||||||
? result.mobs.map((m) => `• ${m}`).join("\n")
|
? result.mobs.map((m) => `• ${m}`).join("\n")
|
||||||
|
|||||||
@@ -113,14 +113,18 @@ export const command: CommandMessage = {
|
|||||||
})
|
})
|
||||||
.join("\n")
|
.join("\n")
|
||||||
: "• —";
|
: "• —";
|
||||||
if (
|
if (result.rewardModifiers?.baseCoinsAwarded != null) {
|
||||||
result.rewardModifiers?.fatigueCoinMultiplier != null &&
|
const { baseCoinsAwarded, coinsAfterPenalty, fatigueCoinMultiplier } =
|
||||||
result.rewardModifiers.fatigueCoinMultiplier < 1
|
result.rewardModifiers;
|
||||||
) {
|
if (
|
||||||
const pct = Math.round(
|
fatigueCoinMultiplier != null &&
|
||||||
(1 - result.rewardModifiers.fatigueCoinMultiplier) * 100
|
fatigueCoinMultiplier < 1 &&
|
||||||
);
|
baseCoinsAwarded != null &&
|
||||||
rewardLines += `\n (⚠️ Fatiga -${pct}% monedas)`;
|
coinsAfterPenalty != null
|
||||||
|
) {
|
||||||
|
const pct = Math.round((1 - fatigueCoinMultiplier) * 100);
|
||||||
|
rewardLines += `\n (⚠️ Fatiga: monedas base ${baseCoinsAwarded} → ${coinsAfterPenalty} (-${pct}%) )`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const mobsLines = result.mobs.length
|
const mobsLines = result.mobs.length
|
||||||
? result.mobs.map((m) => `• ${m}`).join("\n")
|
? result.mobs.map((m) => `• ${m}`).join("\n")
|
||||||
|
|||||||
@@ -99,14 +99,18 @@ export const command: CommandMessage = {
|
|||||||
})
|
})
|
||||||
.join("\n")
|
.join("\n")
|
||||||
: "• —";
|
: "• —";
|
||||||
if (
|
if (result.rewardModifiers?.baseCoinsAwarded != null) {
|
||||||
result.rewardModifiers?.fatigueCoinMultiplier != null &&
|
const { baseCoinsAwarded, coinsAfterPenalty, fatigueCoinMultiplier } =
|
||||||
result.rewardModifiers.fatigueCoinMultiplier < 1
|
result.rewardModifiers;
|
||||||
) {
|
if (
|
||||||
const pct = Math.round(
|
fatigueCoinMultiplier != null &&
|
||||||
(1 - result.rewardModifiers.fatigueCoinMultiplier) * 100
|
fatigueCoinMultiplier < 1 &&
|
||||||
);
|
baseCoinsAwarded != null &&
|
||||||
rewardLines += `\n (⚠️ Fatiga -${pct}% monedas)`;
|
coinsAfterPenalty != null
|
||||||
|
) {
|
||||||
|
const pct = Math.round((1 - fatigueCoinMultiplier) * 100);
|
||||||
|
rewardLines += `\n (⚠️ Fatiga: monedas base ${baseCoinsAwarded} → ${coinsAfterPenalty} (-${pct}%) )`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const mobsLines = result.mobs.length
|
const mobsLines = result.mobs.length
|
||||||
? result.mobs.map((m) => `• ${m}`).join("\n")
|
? result.mobs.map((m) => `• ${m}`).join("\n")
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ export type RunResult = {
|
|||||||
rewardModifiers?: {
|
rewardModifiers?: {
|
||||||
fatigueCoinMultiplier?: number; // 0.85 si hay -15%
|
fatigueCoinMultiplier?: number; // 0.85 si hay -15%
|
||||||
fatigueMagnitude?: number; // magnitud original del efecto
|
fatigueMagnitude?: number; // magnitud original del efecto
|
||||||
|
baseCoinsAwarded?: number; // suma antes de aplicar multiplicador de fatiga
|
||||||
|
coinsAfterPenalty?: number; // suma final depositada en wallet
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user