promotional bannermobile promotional banner

Sharpie's Gear Judge

Advanced Gear stat comparison, analyzes your equipment slots, class, spec, and current level for Classic Era, Anniversary & TBC

File Details

v2.3.5

  • R
  • Feb 11, 2026
  • 8.64 MB
  • 2.9K
  • 2.5.5+1
  • Classic + 1

File Name

SharpiesGearJudge-v2.3.5.zip

Supported Versions

  • 2.5.5
  • 1.15.8

Sharpie's Gear Judge (Era Edition)

v2.3.5 (2026-02-11)

Full Changelog

  • Refactor item overrides & fix evaluator/tooltip
    Rework item override storage and proc handling, centralizing overrides into MSC.ItemOverrides and MSC.TrinketDB via AddOverrides/AddPvPTrinkets and introducing a _AUTO_PROC format (plus notes). Improve evaluator logic: stricter off-hand dual-wield checks by class/level, correct cap/defense delta math, build context messages instead of mutating stats, and change EvaluateUpgrade's return signature to include contextMsg. UI/tooltip updates: register ACTIVE_TALENT_GROUP_CHANGED/PLAYER_TALENT_UPDATE, fix minimap anchoring, include _AUTO_PROC contributions in the score breakdown, and refactor Judge tooltip flow (notes, set warnings, multi-spec checks and projection output) to use the new override/proc structure and evaluation behavior. These changes centralize trinket/proc data, improve accuracy of upgrade math, and produce clearer tooltip context.
  • Refactor projection data and add update throttling
    Update multiple modules to improve tooltip projections, reduce flicker/race conditions, and provide cleaner data for UI.
    Changes:
    • Evaluator.lua: Adjust EvaluateUpgrade return values to include finalized new/old stat tables and totals so callers can render projections and expanded stats reliably.
    • Helpers.lua: Replace free-form GEM_TEXT with a structured PROJECTION_DATA table (Gems, Bonus, Stats), build gem/bonus/stat entries in a clean format, and preserve GEMS_PROJECTED/META_ID/COLORS.
    • Interface.lua: Add a GET_ITEM_INFO_RECEIVED handler, wipe stale StatCache, and implement a 0.8s throttle (RequestUpdate/TriggerFullUpdate) to batch tooltip updates and avoid rapid reload/flicker.
    • Judge.lua: Add CleanText helper and update tooltip rendering to consume the new EvaluateUpgrade outputs and PROJECTION_DATA; sanitize strings, print gems/bonus/stats via structured data, and adjust meta gem/status output formatting. Also update stat expansion to use returned totals.
    • CHANGELOG.md: Document refactor, throttling and EvaluateUpgrade return adjustment.
      Why: These changes create a stable, well-structured projection payload for tooltips, prevent race/flicker when item info arrives from the server, and ensure projections/meta/gem displays are robust and correctly formatted.
  • Tooltip options & parsing
  • Optimize performance and add safety fixes
    Multiple files updated to improve speed, robustness and memory usage:
    • Data_Sets.lua: Initialize MSC.ItemSetMap in BuildDatabase and free MSC.SetDefinitions after database build to reduce memory.
    • Dynamic_Engine.lua: Use addonName var, expose _G.MSC, and localize frequently used globals (API functions) for performance; cleaned comments and ensured existing dynamic/spec logic remains intact.
    • Evaluator.lua: Localized common functions and WoW APIs, added string_find/local format aliases, fixed string usage in spec detection and formatting to avoid nil/crash paths.
    • Helpers.lua: Large localization of Lua/WoW APIs (string/table/math functions), safe handling when MSC.Scanner is nil, switched string.match/call sites to localized string_match, replaced table.insert/math.* calls with localized variants, and other safety/consistency fixes (GetContainer wrapper, gem/enchant parsing, stat name cleaning).
    • Interface.lua: Localized APIs and helpers, replaced global calls with locals, optimized bag scanning to only run when MSC.BagCacheDirty, adjusted UI text/format calls to use localized string_format, and multiple small UI/ring rendering fixes.
      Overall this changeset focuses on micro-optimizations (localizing functions), defensive checks to prevent crashes when subsystems are missing, and minor logic/formatting fixes. No functional algorithm changes beyond safety/efficiency improvements.