From a94c5077fc432c21a8c4222bb88cfee44362366c Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 4 Feb 2024 09:38:58 +0100 Subject: [PATCH] Allow gear coffers to be discarded --- ARDiscard/GameData/InternalConfiguration.cs | 2 ++ ARDiscard/GameData/ItemCache.cs | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ARDiscard/GameData/InternalConfiguration.cs b/ARDiscard/GameData/InternalConfiguration.cs index 314b8c4..21096f9 100644 --- a/ARDiscard/GameData/InternalConfiguration.cs +++ b/ARDiscard/GameData/InternalConfiguration.cs @@ -261,4 +261,6 @@ internal static class InternalConfiguration #endregion }.AsReadOnly(); + + public static readonly IList DiscardableGearCoffers = new List(); } diff --git a/ARDiscard/GameData/ItemCache.cs b/ARDiscard/GameData/ItemCache.cs index 94bac4f..01bcc83 100644 --- a/ARDiscard/GameData/ItemCache.cs +++ b/ARDiscard/GameData/ItemCache.cs @@ -60,6 +60,17 @@ internal sealed class ItemCache cachedItemInfo.CanBeBoughtFromCalamitySalvager = true; } + + // only look at msq + regional side quests + foreach (var quest in dataManager.GetExcelSheet()!.Where(x => x.JournalGenre.Value?.JournalCategory.Value?.JournalSection.Row is 0 or 1 or 3)) + { + foreach (var itemId in quest.ItemReward.Where(x => x > 0)) + { + var item = dataManager.GetExcelSheet()!.GetRow(itemId); + if (item is { Rarity: 1, ItemAction.Row: 388 } && item.RowId != 38809 && item.RowId != 29679) + InternalConfiguration.DiscardableGearCoffers.Add(item.RowId); + } + } } private bool CanDiscardItemsFromQuest(LazyRow quest) @@ -120,13 +131,15 @@ internal sealed class ItemCache public bool CanBeDiscarded() { - if (InternalConfiguration.BlacklistedItems.Contains(ItemId) || InternalConfiguration.UltimateWeapons.Contains(ItemId)) + if (InternalConfiguration.BlacklistedItems.Contains(ItemId) || + InternalConfiguration.UltimateWeapons.Contains(ItemId)) return false; if (UiCategory is UiCategories.Currency or UiCategories.Crystals or UiCategories.Unobtainable) return false; - if (InternalConfiguration.WhitelistedItems.Contains(ItemId)) + if (InternalConfiguration.WhitelistedItems.Contains(ItemId) || + InternalConfiguration.DiscardableGearCoffers.Contains(ItemId)) return true; return CanBeBoughtFromCalamitySalvager ||