diff --git a/nekoyume/Assets/_Scripts/UI/Module/Inventory.cs b/nekoyume/Assets/_Scripts/UI/Module/Inventory.cs index bea8b3259de..c8864a691ee 100644 --- a/nekoyume/Assets/_Scripts/UI/Module/Inventory.cs +++ b/nekoyume/Assets/_Scripts/UI/Module/Inventory.cs @@ -647,13 +647,32 @@ private void UpdateDimmedInventoryItem() public bool HasNotification() { + var clearedStageId = States.Instance.CurrentAvatarState + .worldInformation.TryGetLastClearedStageId(out var id) ? id : 1; var equipments = GetBestEquipments(); foreach (var guid in equipments) { var slots = States.Instance.CurrentItemSlotStates.Values; - if (slots.Any(x => !x.Equipments.Exists(x => x == guid))) + foreach (var slotState in slots.Where(x => !x.Equipments.Exists(x => x == guid))) { - return true; + if (slotState.BattleType == BattleType.Arena) + { + if (clearedStageId >= Game.LiveAsset.GameConfig.RequiredStage.Arena) + { + return true; + } + } + else if (slotState.BattleType == BattleType.Raid) + { + if (clearedStageId >= Game.LiveAsset.GameConfig.RequiredStage.Arena) + { + return true; + } + } + else + { + return true; + } } } @@ -666,7 +685,24 @@ public bool HasNotification() var slots = States.Instance.CurrentRuneSlotStates[battleType].GetRuneSlot(); if (!slots.Exists(x => x.RuneId == inventoryItem.RuneState.RuneId)) { - return true; + if (battleType == BattleType.Arena) + { + if (clearedStageId >= Game.LiveAsset.GameConfig.RequiredStage.Arena) + { + return true; + } + } + else if (battleType == BattleType.Raid) + { + if (clearedStageId >= Game.LiveAsset.GameConfig.RequiredStage.Arena) + { + return true; + } + } + else + { + return true; + } } } }