fix: respect VaultsCracked when rolling droptable for level key rewards
This commit is contained in:
parent
8ebb749732
commit
76b6bc3b61
@ -567,7 +567,7 @@ export const addMissionRewards = async (
|
||||
const fixedLevelRewards = getLevelKeyRewards(levelKeyName);
|
||||
//logger.debug(`fixedLevelRewards ${fixedLevelRewards}`);
|
||||
if (fixedLevelRewards.levelKeyRewards) {
|
||||
addFixedLevelRewards(fixedLevelRewards.levelKeyRewards, inventory, MissionRewards);
|
||||
addFixedLevelRewards(fixedLevelRewards.levelKeyRewards, inventory, MissionRewards, rewardInfo);
|
||||
}
|
||||
if (fixedLevelRewards.levelKeyRewards2) {
|
||||
for (const reward of fixedLevelRewards.levelKeyRewards2) {
|
||||
@ -600,7 +600,7 @@ export const addMissionRewards = async (
|
||||
}
|
||||
|
||||
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 = (
|
||||
rewards: IMissionRewardExternal,
|
||||
inventory: TInventoryDatabaseDocument,
|
||||
MissionRewards: IMissionReward[]
|
||||
MissionRewards: IMissionReward[],
|
||||
rewardInfo: IRewardInfo
|
||||
): number => {
|
||||
let missionBonusCredits = 0;
|
||||
if (rewards.credits) {
|
||||
@ -873,13 +874,24 @@ export const addFixedLevelRewards = (
|
||||
}
|
||||
if (rewards.droptable) {
|
||||
if (rewards.droptable in ExportRewards) {
|
||||
logger.debug(`rolling ${rewards.droptable} for level key rewards`);
|
||||
const reward = getRandomRewardByChance(ExportRewards[rewards.droptable][0]);
|
||||
if (reward) {
|
||||
MissionRewards.push({
|
||||
StoreItem: reward.type,
|
||||
ItemCount: reward.itemCount
|
||||
});
|
||||
const rotations: number[] = [];
|
||||
// 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) {
|
||||
MissionRewards.push({
|
||||
StoreItem: reward.type,
|
||||
ItemCount: reward.itemCount
|
||||
});
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.error(`unknown droptable ${rewards.droptable}`);
|
||||
|
Loading…
x
Reference in New Issue
Block a user