fix: respect VaultsCracked when rolling droptable for level key rewards
Some checks failed
Build / build (push) Failing after 19s
Build / build (pull_request) Failing after 49s

This commit is contained in:
Sainan 2025-04-15 00:13:57 +02:00
parent 8ebb749732
commit 76b6bc3b61

View File

@ -567,7 +567,7 @@ export const addMissionRewards = async (
const fixedLevelRewards = getLevelKeyRewards(levelKeyName); const fixedLevelRewards = getLevelKeyRewards(levelKeyName);
//logger.debug(`fixedLevelRewards ${fixedLevelRewards}`); //logger.debug(`fixedLevelRewards ${fixedLevelRewards}`);
if (fixedLevelRewards.levelKeyRewards) { if (fixedLevelRewards.levelKeyRewards) {
addFixedLevelRewards(fixedLevelRewards.levelKeyRewards, inventory, MissionRewards); addFixedLevelRewards(fixedLevelRewards.levelKeyRewards, inventory, MissionRewards, rewardInfo);
} }
if (fixedLevelRewards.levelKeyRewards2) { if (fixedLevelRewards.levelKeyRewards2) {
for (const reward of fixedLevelRewards.levelKeyRewards2) { for (const reward of fixedLevelRewards.levelKeyRewards2) {
@ -600,7 +600,7 @@ export const addMissionRewards = async (
} }
if (node.missionReward) { if (node.missionReward) {
missionCompletionCredits += addFixedLevelRewards(node.missionReward, inventory, MissionRewards); missionCompletionCredits += addFixedLevelRewards(node.missionReward, inventory, MissionRewards, rewardInfo);
} }
} }
@ -843,7 +843,8 @@ export const addCredits = (
export const addFixedLevelRewards = ( export const addFixedLevelRewards = (
rewards: IMissionRewardExternal, rewards: IMissionRewardExternal,
inventory: TInventoryDatabaseDocument, inventory: TInventoryDatabaseDocument,
MissionRewards: IMissionReward[] MissionRewards: IMissionReward[],
rewardInfo: IRewardInfo
): number => { ): number => {
let missionBonusCredits = 0; let missionBonusCredits = 0;
if (rewards.credits) { if (rewards.credits) {
@ -873,14 +874,25 @@ export const addFixedLevelRewards = (
} }
if (rewards.droptable) { if (rewards.droptable) {
if (rewards.droptable in ExportRewards) { if (rewards.droptable in ExportRewards) {
logger.debug(`rolling ${rewards.droptable} for level key rewards`); const rotations: number[] = [];
const reward = getRandomRewardByChance(ExportRewards[rewards.droptable][0]); // This makes it so that /Lotus/Types/Keys/ProteaQuest/ProteaQuestMissionFour gives all 3 Xoris parts
if (rewardInfo.VaultsCracked) {
for (let i = 0; i != rewardInfo.VaultsCracked; ++i) {
rotations.push(i);
}
} else {
rotations.push(0);
}
logger.debug(`rolling ${rewards.droptable} for level key rewards`, { rotations });
for (const tier of rotations) {
const reward = getRandomRewardByChance(ExportRewards[rewards.droptable][tier]);
if (reward) { if (reward) {
MissionRewards.push({ MissionRewards.push({
StoreItem: reward.type, StoreItem: reward.type,
ItemCount: reward.itemCount ItemCount: reward.itemCount
}); });
} }
}
} else { } else {
logger.error(`unknown droptable ${rewards.droptable}`); logger.error(`unknown droptable ${rewards.droptable}`);
} }