From 39937f0cc2e5c25a9b71e32e0db7b55d06adf359 Mon Sep 17 00:00:00 2001 From: xy Date: Tue, 6 May 2025 17:39:16 +0800 Subject: [PATCH] fix error: Lock Capsule not locking rarities consistently --- src/modifier/modifier-type.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 8bd2dc8948a..0cbd462e7c0 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -3287,6 +3287,8 @@ export function getModifierTypeFuncById(id: string): ModifierTypeFunc { return modifierTypes[id]; } +let lockModifierTiers: null | boolean = null; + /** * Generates modifier options for a {@linkcode SelectModifierPhase} * @param count Determines the number of items to generate @@ -3312,6 +3314,7 @@ export function getPlayerModifierTypeOptions( const options: ModifierTypeOption[] = []; const retryCount = Math.min(count * 5, 50); if (!customModifierSettings) { + lockModifierTiers = !!modifierTiers && modifierTiers.length >= count; new Array(count).fill(0).map((_, i) => { options.push( getModifierTypeOptionWithRetry( @@ -3322,6 +3325,8 @@ export function getPlayerModifierTypeOptions( ), ); }); + // init lockModifierTiers + lockModifierTiers = null; } else { // Guaranteed mod options first if ( @@ -3640,7 +3645,7 @@ function getNewModifierTypeOption( } tier += upgradeCount; } - } else if (retryCount === 10 && tier) { + } else if (retryCount === 10 && tier && lockModifierTiers !== true) { retryCount = 0; tier--; }