16 lines
398 B
TypeScript
16 lines
398 B
TypeScript
export type MemoryCollectionEffect = {
|
|
count: number;
|
|
permil: number;
|
|
};
|
|
|
|
export function memoryParameterPermil(
|
|
count: number,
|
|
effects: readonly MemoryCollectionEffect[]
|
|
): number {
|
|
const owned = Math.max(0, Math.floor(Number.isFinite(count) ? count : 0));
|
|
return effects.reduce(
|
|
(rate, effect) => effect.count <= owned && effect.permil > rate ? effect.permil : rate,
|
|
0
|
|
);
|
|
}
|