forked from OpenWF/SpaceNinjaServer
fix: only roll unique rewards for peely pix booster packs (#1306)
Reviewed-on: OpenWF/SpaceNinjaServer#1306
This commit is contained in:
parent
19bfffaa7c
commit
db8bff20fe
@ -415,24 +415,24 @@ const handleBoosterPackPurchase = async (
|
||||
"attempt to roll over 100 booster packs in a single go. possible but unlikely to be desirable for the user or the server."
|
||||
);
|
||||
}
|
||||
if (typeName == "/Lotus/Types/BoosterPacks/1999StickersPackEchoesArchimedeaFixed") {
|
||||
for (const result of pack.components) {
|
||||
purchaseResponse.BoosterPackItems += toStoreItem(result.Item) + ',{"lvl":0};';
|
||||
combineInventoryChanges(purchaseResponse.InventoryChanges, await addItem(inventory, result.Item, 1));
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i != quantity; ++i) {
|
||||
for (const weights of pack.rarityWeightsPerRoll) {
|
||||
const disallowedItems = new Set();
|
||||
for (let roll = 0; roll != pack.rarityWeightsPerRoll.length; ) {
|
||||
const weights = pack.rarityWeightsPerRoll[roll];
|
||||
const result = getRandomWeightedRewardUc(pack.components, weights);
|
||||
if (result) {
|
||||
logger.debug(`booster pack rolled`, result);
|
||||
if (disallowedItems.has(result.Item)) {
|
||||
logger.debug(`oops, can't use that one; trying again`);
|
||||
continue;
|
||||
}
|
||||
if (!pack.canGiveDuplicates) {
|
||||
disallowedItems.add(result.Item);
|
||||
}
|
||||
purchaseResponse.BoosterPackItems += toStoreItem(result.Item) + ',{"lvl":0};';
|
||||
combineInventoryChanges(
|
||||
purchaseResponse.InventoryChanges,
|
||||
await addItem(inventory, result.Item, 1)
|
||||
);
|
||||
}
|
||||
combineInventoryChanges(purchaseResponse.InventoryChanges, await addItem(inventory, result.Item, 1));
|
||||
}
|
||||
++roll;
|
||||
}
|
||||
}
|
||||
return purchaseResponse;
|
||||
|
Loading…
x
Reference in New Issue
Block a user