From 17d56cdc852393e59ffc3ffd6c872eb48f28e91f Mon Sep 17 00:00:00 2001 From: Freddie Date: Thu, 2 Apr 2026 18:29:29 -0700 Subject: [PATCH 1/5] Filter and delete ignored skill line abilities --- apps/tool/Tools/DumpsTool.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/tool/Tools/DumpsTool.cs b/apps/tool/Tools/DumpsTool.cs index 7cd3ffd0b..a6e6b911b 100644 --- a/apps/tool/Tools/DumpsTool.cs +++ b/apps/tool/Tools/DumpsTool.cs @@ -1680,7 +1680,9 @@ private async Task ImportRecipeItems(WowDbContext context) var seen = new HashSet<(int, int)>(); foreach (var skillLineAbility in skillLineAbilities) { - if (skillLineAbility.Spell == 0 || !_teachSpellBySpellId.TryGetValue(skillLineAbility.Spell, out var recipeItemIds)) + if (skillLineAbility.Spell == 0 || + Hardcoded.IgnoredSkillLineAbilities.Contains(skillLineAbility.ID) || + !_teachSpellBySpellId.TryGetValue(skillLineAbility.Spell, out var recipeItemIds)) { continue; } @@ -1704,7 +1706,9 @@ private async Task ImportRecipeItems(WowDbContext context) } } - // TODO deletes + await context.WowProfessionRecipeItem + .Where(item => Hardcoded.IgnoredSkillLineAbilities.Contains(item.SkillLineAbilityId)) + .ExecuteDeleteAsync(); _timer.AddPoint("RecipeItems"); } From d482d0d202f267e1eca1e7f52a92dc268984074c Mon Sep 17 00:00:00 2001 From: Freddie Date: Thu, 2 Apr 2026 18:29:39 -0700 Subject: [PATCH 2/5] Add weird deleted Rockslide Shake to ignore list --- apps/tool/Data/IgnoredSkillLineAbilities.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/tool/Data/IgnoredSkillLineAbilities.cs b/apps/tool/Data/IgnoredSkillLineAbilities.cs index 9ac256b5b..ed274a082 100644 --- a/apps/tool/Data/IgnoredSkillLineAbilities.cs +++ b/apps/tool/Data/IgnoredSkillLineAbilities.cs @@ -14,6 +14,8 @@ public static partial class Hardcoded 46628, 46629, 46630, + + 50551, // Rockslide Shake that doesn't exist ]; public static readonly HashSet IgnoredSkillLineAbilitySpells = From 88f2a5e2d81b2232d5664bc37e1795ed3059d159 Mon Sep 17 00:00:00 2001 From: Freddie Date: Thu, 2 Apr 2026 18:30:28 -0700 Subject: [PATCH 3/5] Fix skill display for account-wide profession achievements --- apps/frontend/components/achievements/get-achievement-data.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/frontend/components/achievements/get-achievement-data.ts b/apps/frontend/components/achievements/get-achievement-data.ts index abf7b3c4a..68a801ccb 100644 --- a/apps/frontend/components/achievements/get-achievement-data.ts +++ b/apps/frontend/components/achievements/get-achievement-data.ts @@ -181,7 +181,7 @@ export function getAchievementStatus( recurse(null, ret.rootCriteriaTree, true, true); - ret.reputation = + ret.reputation ||= ret.criteriaTrees.length === 1 && ret.criteriaTrees[0].length === 1 && achievementData.criteriaById.get(ret.criteriaTrees[0][0].criteriaId)?.type === From ac401bf06ee69009ae89e580c0f43bdac4ca3372 Mon Sep 17 00:00:00 2001 From: Freddie Date: Thu, 2 Apr 2026 18:32:06 -0700 Subject: [PATCH 4/5] "Handle" item bonus 49 and 52 --- apps/frontend/enums/item-bonus-type.ts | 13 ++++++++++++- apps/frontend/utils/items/apply-bonus-ids.ts | 16 ++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/apps/frontend/enums/item-bonus-type.ts b/apps/frontend/enums/item-bonus-type.ts index 7bf6eabf6..e5a02e66d 100644 --- a/apps/frontend/enums/item-bonus-type.ts +++ b/apps/frontend/enums/item-bonus-type.ts @@ -35,7 +35,7 @@ export enum ItemBonusType { Unknown33 = 33, ItemBonusListGroupId = 34, ItemLimitCategoryId = 35, - Unknown36 = 36, + ItemLevelPvp = 36, ItemConversionId = 37, Unknown38 = 38, Unknown39 = 39, @@ -44,4 +44,15 @@ export enum ItemBonusType { BaseItemLevel = 42, Unknown43 = 43, Unknown44 = 44, + Unknown45 = 45, + Unknown46 = 46, + Unknown47 = 47, + SquishCurve = 48, + ScaleConfig = 49, + Unknown50 = 50, + Unknown51 = 51, + ScaleCrafted = 52, + PostSquishItemLevel = 53, + Unknown54 = 54, + Unknown55 = 55, } diff --git a/apps/frontend/utils/items/apply-bonus-ids.ts b/apps/frontend/utils/items/apply-bonus-ids.ts index 045719e41..ba817601c 100644 --- a/apps/frontend/utils/items/apply-bonus-ids.ts +++ b/apps/frontend/utils/items/apply-bonus-ids.ts @@ -10,6 +10,7 @@ export function applyBonusIds(bonusIds: number[], { itemLevel, quality }: Props) const ret = { itemLevel: itemLevel || 0, quality: quality || 0, + bonusStars: 0, }; for (const bonusId of bonusIds) { @@ -25,9 +26,24 @@ export function applyBonusIds(bonusIds: number[], { itemLevel, quality }: Props) ret.quality = bonus[1]; } else if (bonus[0] === ItemBonusType.BaseItemLevel) { ret.itemLevel = bonus[1]; + } else if (bonus[0] === ItemBonusType.ScaleConfig) { + if (scaleConfigToItemLevel[bonus[1]]) { + ret.itemLevel = scaleConfigToItemLevel[bonus[1]]; + } + } else if (bonus[0] === ItemBonusType.ScaleCrafted) { + // TODO: fix for non-profession items? + if (bonus[2] === 2) { + ret.itemLevel += bonus[1]; + ret.bonusStars = bonus[3]; + } } } } return ret; } + +// I don't want to deal with all of the item scaling dumps, hardcode it for now +const scaleConfigToItemLevel: Record = { + 266: 206, +}; From cb97572f3279a061f55103c430176d6eec6f41c6 Mon Sep 17 00:00:00 2001 From: Freddie Date: Thu, 2 Apr 2026 18:32:33 -0700 Subject: [PATCH 5/5] Show calculated item level in auctions --- .../components/results/Selected.svelte | 25 ++++++++++++++++--- apps/frontend/auctions/stores/specific.ts | 4 +-- .../components/currencies/Currency.svelte | 2 +- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/apps/frontend/auctions/components/results/Selected.svelte b/apps/frontend/auctions/components/results/Selected.svelte index a8a1bb0c1..ae15ea720 100644 --- a/apps/frontend/auctions/components/results/Selected.svelte +++ b/apps/frontend/auctions/components/results/Selected.svelte @@ -5,6 +5,7 @@ import { Region } from '@/enums/region'; import { wowthingData } from '@/shared/stores/data'; import { leftPad } from '@/utils/formatting'; + import { applyBonusIds } from '@/utils/items/apply-bonus-ids'; import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; @@ -41,7 +42,11 @@ } .quantity { text-align: right; - width: 5.5rem; + width: 3.5rem; + } + .level { + text-align: right; + width: 3rem; } .price { text-align: right; @@ -54,7 +59,8 @@ Realm - Lvl/Qty + Qty + Lvl @@ -66,6 +72,7 @@ L O A D I N G . . . + {:then auctions} @@ -89,12 +96,24 @@ {realm.displayText} + {auction.quantity.toLocaleString()} + + {#if auction.petSpeciesId} {auction.petLevel} {:else} - {auction.quantity.toLocaleString()} + {@const item = wowthingData.items.items[auction.itemId]} + {#if item} + {@const { itemLevel, quality } = applyBonusIds( + auction.bonusIds, + { itemLevel: item.itemLevel, quality: item.quality } + )} + + {itemLevel} + + {/if} {/if}