XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

fix: only roll unique rewards for peely pix booster packs (#1306)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1306

db8bff20
Sainan <sainan@calamity.inc>
提交于

代码差异

1 个文件 +16 -16
Modified src/services/purchaseService.ts +16 -16
@@ -415,24 +415,24 @@ const handleBoosterPackPurchase = async (
415 415 "attempt to roll over 100 booster packs in a single go. possible but unlikely to be desirable for the user or the server."
416 416 );
417 417 }
418 if (typeName == "/Lotus/Types/BoosterPacks/1999StickersPackEchoesArchimedeaFixed") {
419 for (const result of pack.components) {
420 purchaseResponse.BoosterPackItems += toStoreItem(result.Item) + ',{"lvl":0};';
421 combineInventoryChanges(purchaseResponse.InventoryChanges, await addItem(inventory, result.Item, 1));
422 }
423 } else {
424 for (let i = 0; i != quantity; ++i) {
425 for (const weights of pack.rarityWeightsPerRoll) {
426 const result = getRandomWeightedRewardUc(pack.components, weights);
427 if (result) {
428 logger.debug(`booster pack rolled`, result);
429 purchaseResponse.BoosterPackItems += toStoreItem(result.Item) + ',{"lvl":0};';
430 combineInventoryChanges(
431 purchaseResponse.InventoryChanges,
432 await addItem(inventory, result.Item, 1)
433 );
418 for (let i = 0; i != quantity; ++i) {
419 const disallowedItems = new Set();
420 for (let roll = 0; roll != pack.rarityWeightsPerRoll.length; ) {
421 const weights = pack.rarityWeightsPerRoll[roll];
422 const result = getRandomWeightedRewardUc(pack.components, weights);
423 if (result) {
424 logger.debug(`booster pack rolled`, result);
425 if (disallowedItems.has(result.Item)) {
426 logger.debug(`oops, can't use that one; trying again`);
427 continue;
428 }
429 if (!pack.canGiveDuplicates) {
430 disallowedItems.add(result.Item);
434 431 }
432 purchaseResponse.BoosterPackItems += toStoreItem(result.Item) + ',{"lvl":0};';
433 combineInventoryChanges(purchaseResponse.InventoryChanges, await addItem(inventory, result.Item, 1));
435 434 }
435 ++roll;
436 436 }
437 437 }
438 438 return purchaseResponse;