Implement legacy-compatible survey and unique rewards

This commit is contained in:
2026-07-26 04:17:56 +00:00
parent 9b6d5288d3
commit c2a3b5b797
14 changed files with 1408 additions and 792 deletions
+17
View File
@@ -5,6 +5,7 @@ import type { GeneralItemSlots } from '../src/domain/entities.js';
import type { ItemModule } from '../src/items/types.js';
import {
type UniqueAcquireType,
addOccupiedUniqueItemKeys,
buildVoteUniqueSeed,
countOccupiedUniqueItems,
resolveUniqueConfig,
@@ -131,4 +132,20 @@ describe('unique lottery', () => {
expect(counts.get('uniqueItem')).toBe(1);
expect(counts.get('buyableItem')).toBeUndefined();
});
it('adds active auction and storage reservations without counting buyable items', () => {
const itemRegistry = new Map<string, ItemModule>([
['uniqueItem', buildItem('uniqueItem', 'weapon', false)],
['buyableItem', buildItem('buyableItem', 'book', true)],
]);
const counts = addOccupiedUniqueItemKeys(
new Map([['uniqueItem', 1]]),
['uniqueItem', 'uniqueItem', 'buyableItem', null],
itemRegistry
);
expect(counts.get('uniqueItem')).toBe(3);
expect(counts.get('buyableItem')).toBeUndefined();
});
});