diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 2f93975..709a7cd 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -37,14 +37,10 @@ jobs: RID=$(curl -sf -X POST -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/json" \ "$API/repos/$REPO/releases" \ - -d "$(jq -nc --arg t "$TAG" '{tag_name:$t,name:$t,draft:false,prerelease:false,hide_archive_links:true}')" \ + -d "$(jq -nc --arg t "$TAG" '{tag_name:$t,name:$t,draft:false,prerelease:false}')" \ | jq -r '.id') fi echo "release id: $RID" - # Gitea honors hide_archive_links only on edit, not create — PATCH it - # so the auto-generated Source Code (zip/tar.gz) links stay hidden. - curl -sf -X PATCH -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \ - "$API/repos/$REPO/releases/$RID" -d '{"hide_archive_links":true}' >/dev/null || true # Upload every dist/*.zip. Per-asset failures don't fail the job — # we want partial releases to still publish rather than block the # whole pipeline on one big file. diff --git a/Pawn/CoAClassSpecData.lua b/Pawn/CoAClassSpecData.lua deleted file mode 100644 index 5057aeb..0000000 --- a/Pawn/CoAClassSpecData.lua +++ /dev/null @@ -1,143 +0,0 @@ --- CoAClassSpecData.lua — GENERATED by coa-db/tools/gen_coa_class_spec_lua.py --- Source of truth: coa-db/data/class_spec_meta.json (class.file_string tokens + wiki specs). --- Do not hand-edit; regenerate from coa-db. Neutral stat keys; each addon maps them. --- Keyed by the in-game class token (2nd return of UnitClass), e.g. Templar=MONK. -CoAClassSpec = { - ["BARBARIAN"] = { name="Barbarian", classId=12, specs={ - { name="Headhunting", roles={"RANGED"}, primaryStat="Agility", weights={ Agility=1, RangedAttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5 } }, - { name="Brutality", roles={"MELEE"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Ancestry", roles={"MELEE","SUPPORT"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - }}, - ["WITCHDOCTOR"] = { name="Witch Doctor", classId=13, specs={ - { name="Shadowhunting", roles={"RANGED"}, primaryStat="Agility", weights={ Agility=1, RangedAttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5 } }, - { name="Voodoo", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Brewing", roles={"HEALER"}, primaryStat="Spirit", weights={ Spirit=1, SpellPower=0.8, CritRating=0.5, HasteRating=0.5, Mp5=0.5, Intellect=0.55 } }, - }}, - ["DEMONHUNTER"] = { name="Felsworn", classId=14, specs={ - { name="Slayer", roles={"MELEE"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Infernal", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Tyrant", roles={"TANK"}, primaryStat="Agility", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Agility=0.4 } }, - }}, - ["WITCHHUNTER"] = { name="Witch Hunter", classId=15, specs={ - { name="Boltslinger", roles={"RANGED"}, primaryStat="Agility", weights={ Agility=1, RangedAttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5 } }, - { name="Darkness", roles={"RANGED"}, primaryStat="Agility", weights={ Agility=1, RangedAttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5 } }, - { name="Inquisition", roles={"MELEE"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Black Knight", roles={"TANK"}, primaryStat="Agility", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Agility=0.4 } }, - }}, - ["STORMBRINGER"] = { name="Stormbringer", classId=16, specs={ - { name="Maelstrom", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Lightning", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Wind", roles={"CASTER","SUPPORT"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - }}, - ["FLESHWARDEN"] = { name="Knight of Xoroth", classId=17, specs={ - { name="Hellfire", roles={"MELEE"}, primaryStat="Strength", weights={ Strength=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Defiance", roles={"TANK"}, primaryStat="Strength", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Strength=0.4 } }, - { name="War", roles={"MELEE"}, primaryStat="Strength", weights={ Strength=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - }}, - ["GUARDIAN"] = { name="Guardian", classId=18, specs={ - { name="Gladiator", roles={"MELEE"}, primaryStat="Strength", weights={ Strength=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Inspiration", roles={"MELEE","SUPPORT"}, primaryStat="Strength", weights={ Strength=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Vanguard", roles={"TANK"}, primaryStat="Strength", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Strength=0.4 } }, - }}, - ["MONK"] = { name="Templar", classId=19, specs={ - { name="Oathkeeper", roles={"TANK"}, primaryStat="Agility", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Agility=0.4 } }, - { name="Zealot", roles={"MELEE"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Crusader", roles={"MELEE"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - }}, - ["SONOFARUGAL"] = { name="Bloodmage", classId=20, specs={ - { name="Fleshweaver", roles={"SUPPORT"}, primaryStat="Spirit", weights={ Spirit=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Sanguine", roles={"CASTER"}, primaryStat="Spirit", weights={ Spirit=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Accursed", roles={"MELEE","CASTER"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Eternal", roles={"TANK"}, primaryStat="Agility", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Agility=0.4 } }, - }}, - ["RANGER"] = { name="Ranger", classId=21, specs={ - { name="Archery", roles={"RANGED"}, primaryStat="Agility", weights={ Agility=1, RangedAttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5 } }, - { name="Farstrider", roles={"RANGED","SUPPORT"}, primaryStat="Agility", weights={ Agility=1, RangedAttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5 } }, - { name="Brigand", roles={"MELEE"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - }}, - ["CHRONOMANCER"] = { name="Chronomancer", classId=22, specs={ - { name="Infinite", roles={"CASTER"}, primaryStat="Spirit", weights={ Spirit=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Time", roles={"HEALER"}, primaryStat="Spirit", weights={ Spirit=1, SpellPower=0.8, CritRating=0.5, HasteRating=0.5, Mp5=0.5, Intellect=0.55 } }, - { name="Artificer", roles={"RANGED"}, primaryStat="Spirit", weights={ Spirit=1, RangedAttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5 } }, - }}, - ["NECROMANCER"] = { name="Necromancer", classId=23, specs={ - { name="Death", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Animation", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Rime", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - }}, - ["PYROMANCER"] = { name="Pyromancer", classId=24, specs={ - { name="Incineration", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Flameweaving", roles={"HEALER"}, primaryStat="Spirit", weights={ Spirit=1, SpellPower=0.8, CritRating=0.5, HasteRating=0.5, Mp5=0.5, Intellect=0.55 } }, - { name="Draconic", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - }}, - ["CULTIST"] = { name="Cultist", classId=25, specs={ - { name="Heretic", roles={"HEALER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, CritRating=0.5, HasteRating=0.5, Mp5=0.5, Spirit=0.55 } }, - { name="Corruption", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Godblade", roles={"MELEE"}, primaryStat="Strength", weights={ Strength=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Dreadnought", roles={"TANK"}, primaryStat="Strength", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Strength=0.4 } }, - }}, - ["STARCALLER"] = { name="Starcaller", classId=26, specs={ - { name="Sentinel", roles={"RANGED"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Warden", roles={"MELEE"}, primaryStat="Intellect", weights={ Intellect=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Moon Priest", roles={"HEALER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, CritRating=0.5, HasteRating=0.5, Mp5=0.5, Spirit=0.55 } }, - { name="Moon Guard", roles={"TANK"}, primaryStat="Intellect", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Intellect=0.4 } }, - }}, - ["SUNCLERIC"] = { name="Sun Cleric", classId=27, specs={ - { name="Piety", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Valkyrie", roles={"MELEE"}, primaryStat="Strength", weights={ Strength=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Seraphim", roles={"TANK"}, primaryStat="Strength", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Strength=0.4 } }, - { name="Blessings", roles={"HEALER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, CritRating=0.5, HasteRating=0.5, Mp5=0.5, Spirit=0.55 } }, - }}, - ["TINKER"] = { name="Tinker", classId=28, specs={ - { name="Demolition", roles={"RANGED"}, primaryStat="Agility", weights={ Agility=1, RangedAttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5 } }, - { name="Mechanics", roles={"MELEE"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Invention", roles={"HEALER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, CritRating=0.5, HasteRating=0.5, Mp5=0.5, Spirit=0.55 } }, - }}, - ["PROPHET"] = { name="Venomancer", classId=29, specs={ - { name="Fortitude", roles={"TANK"}, primaryStat="Intellect", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Intellect=0.4 } }, - { name="Stalking", roles={"MELEE"}, primaryStat="Intellect", weights={ Intellect=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Rot", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Vizier", roles={"HEALER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, CritRating=0.5, HasteRating=0.5, Mp5=0.5, Spirit=0.55 } }, - }}, - ["REAPER"] = { name="Reaper", classId=30, specs={ - { name="Soul", roles={"MELEE"}, primaryStat="Strength", weights={ Strength=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Harvest", roles={"MELEE"}, primaryStat="Strength", weights={ Strength=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Domination", roles={"TANK"}, primaryStat="Strength", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Strength=0.4 } }, - }}, - ["WILDWALKER"] = { name="Primalist", classId=31, specs={ - { name="Grovekeeper", roles={"SUPPORT"}, primaryStat="Strength", weights={ Strength=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Wildwalker", roles={"MELEE"}, primaryStat="Strength", weights={ Strength=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Mountain King", roles={"TANK"}, primaryStat="Strength", weights={ Stamina=1, Armor=0.6, Dodge=0.55, Parry=0.55, Defense=0.6, Strength=0.4 } }, - { name="Geomancy", roles={"CASTER"}, primaryStat="Intellect", weights={ Intellect=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - }}, - ["SPIRITMAGE"] = { name="Runemaster", classId=32, specs={ - { name="Engravement", roles={"MELEE"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - { name="Glyphic", roles={"CASTER"}, primaryStat="Spirit", weights={ Spirit=1, SpellPower=0.8, HitRating=0.7, CritRating=0.55, HasteRating=0.55 } }, - { name="Riftblade", roles={"MELEE"}, primaryStat="Agility", weights={ Agility=1, AttackPower=0.5, CritRating=0.55, HitRating=0.6, HasteRating=0.5, ArmorPenetration=0.5 } }, - }}, -} - -CoAClassPrimaryStats = { - ["BARBARIAN"] = { "Agility" }, - ["WITCHDOCTOR"] = { "Agility", "Intellect", "Spirit" }, - ["DEMONHUNTER"] = { "Agility", "Intellect", "Stamina" }, - ["WITCHHUNTER"] = { "Agility", "Intellect", "Stamina" }, - ["STORMBRINGER"] = { "Intellect" }, - ["FLESHWARDEN"] = { "Strength", "Intellect", "Stamina" }, - ["GUARDIAN"] = { "Strength", "Stamina" }, - ["MONK"] = { "Agility", "Stamina" }, - ["SONOFARUGAL"] = { "Spirit", "Stamina", "Agility" }, - ["RANGER"] = { "Agility" }, - ["CHRONOMANCER"] = { "Spirit" }, - ["NECROMANCER"] = { "Intellect" }, - ["PYROMANCER"] = { "Intellect", "Spirit" }, - ["CULTIST"] = { "Intellect", "Strength", "Stamina" }, - ["STARCALLER"] = { "Intellect", "Stamina" }, - ["SUNCLERIC"] = { "Intellect", "Strength", "Stamina" }, - ["TINKER"] = { "Agility", "Intellect" }, - ["PROPHET"] = { "Intellect", "Stamina" }, - ["REAPER"] = { "Strength", "Stamina" }, - ["WILDWALKER"] = { "Strength", "Intellect", "Stamina" }, - ["SPIRITMAGE"] = { "Agility", "Spirit" }, -} - diff --git a/Pawn/CoAScales.lua b/Pawn/CoAScales.lua deleted file mode 100644 index 5f3d5b6..0000000 --- a/Pawn/CoAScales.lua +++ /dev/null @@ -1,132 +0,0 @@ --- CoAScales.lua — Pawn integration for CoA custom-class stat scales --- Registers one scale per class+spec from CoAClassSpec (CoAClassSpecData.lua). --- Auto-enables all scales for the logged-in player's class on first login. --- Saved in PawnCoAScaleProviderOptions.LastAdded (per SavedVariables). --- --- Neutral-key → Pawn-internal-key map used here: --- AttackPower → Ap --- RangedAttackPower → Rap --- Dodge → DodgeRating --- Parry → ParryRating --- Defense → DefenseRating --- All others → unchanged (Agility, Strength, Intellect, Spirit, --- Stamina, SpellPower, CritRating, HitRating, --- HasteRating, ArmorPenetration, Mp5, Armor) ------------------------------------------------------------- - -local CoAScaleProviderName = "CoAClasses" - --- Class-token → 6-digit hex colour (roughly matching CoA class colours). --- Fallback "a0a0a0" (grey) for any token not listed. -local CoAClassColor = { - BARBARIAN = "c69b3a", - WITCHDOCTOR = "00ff96", - DEMONHUNTER = "a330c9", - WITCHHUNTER = "6e95ff", - STORMBRINGER = "69ccf0", - FLESHWARDEN = "c79c6e", - GUARDIAN = "f58cba", - MONK = "f0eba0", - SONOFARUGAL = "ff0000", - RANGER = "abd473", - CHRONOMANCER = "40c0e0", - NECROMANCER = "556699", - PYROMANCER = "ff6600", - CULTIST = "9966cc", - STARCALLER = "e0d060", - SUNCLERIC = "ffe680", - TINKER = "aaaaaa", - PROPHET = "5a8a00", - REAPER = "336699", - WILDWALKER = "1aaa55", - SPIRITMAGE = "c0a0ff", -} - --- Translate one neutral-key weights table to Pawn internal keys. -local function TranslateWeights(neutralWeights) - local out = {} - for k, v in pairs(neutralWeights) do - local pawnKey - if k == "AttackPower" then pawnKey = "Ap" - elseif k == "RangedAttackPower" then pawnKey = "Rap" - elseif k == "Dodge" then pawnKey = "DodgeRating" - elseif k == "Parry" then pawnKey = "ParryRating" - elseif k == "Defense" then pawnKey = "DefenseRating" - else pawnKey = k - end - out[pawnKey] = v - end - return out -end - --- Sanitise a string for use as an internal scale name (no double-quotes, --- no spaces — keeps names safe for PawnGetProviderScaleName). -local function SafeInternalName(token, specName) - local s = token .. "_" .. specName - s = s:gsub("[^%w_]", "_") - return s -end - --- Build a human-readable localized name for tooltip display. -local function LocalizedScaleName(classData, specName) - return classData.name .. ": " .. specName -end - ------------------------------------------------------------- --- Scale provider registration ------------------------------------------------------------- - -local function CoAScaleProvider_AddScales() - if not CoAClassSpec then return end - - for token, classData in pairs(CoAClassSpec) do - local color = CoAClassColor[token] or "a0a0a0" - for _, spec in ipairs(classData.specs) do - local internalName = SafeInternalName(token, spec.name) - local localizedName = LocalizedScaleName(classData, spec.name) - local pawnWeights = TranslateWeights(spec.weights) - pcall(PawnAddPluginScale, - CoAScaleProviderName, - internalName, - localizedName, - color, - pawnWeights, - 1 - ) - end - end - - ------------------------------------------------------------ - -- Auto-enable scales for the player's class - -- Mirror the same C_Timer.After(0) pattern used by Wowhead.lua. - -- PawnCoAScaleProviderOptions is a SavedVariable declared in .toc; - -- only enable once (LastAdded == 0 means never done). - ------------------------------------------------------------ - if not PawnCoAScaleProviderOptions then PawnCoAScaleProviderOptions = {} end - if not PawnCoAScaleProviderOptions.LastAdded then PawnCoAScaleProviderOptions.LastAdded = 0 end - - local _lastAdded = PawnCoAScaleProviderOptions.LastAdded - C_Timer.After(0, function() - local _, playerToken = UnitClass("player") - if not playerToken then return end - if _lastAdded >= 1 then return end -- already enabled once; honour user's subsequent changes - - local classData = CoAClassSpec and CoAClassSpec[playerToken] - if not classData then return end -- vanilla class; nothing to do - - for _, spec in ipairs(classData.specs) do - local internalName = SafeInternalName(playerToken, spec.name) - local fullName = PawnGetProviderScaleName(CoAScaleProviderName, internalName) - pcall(PawnSetScaleVisible, fullName, true) - end - - PawnCoAScaleProviderOptions.LastAdded = 1 - end) - - -- Self-destruct to free memory (matches Wowhead.lua pattern). - CoAScaleProvider_AddScales = nil -end - ------------------------------------------------------------- - -PawnAddPluginScaleProvider(CoAScaleProviderName, "CoA class scales", CoAScaleProvider_AddScales) diff --git a/Pawn/Pawn.toc b/Pawn/Pawn.toc index 6f7ccf3..d63b4a8 100644 --- a/Pawn/Pawn.toc +++ b/Pawn/Pawn.toc @@ -4,15 +4,13 @@ ## Notes: Pawn calculates scores for items that let you easily see which one is better for you. ## OptionalDependencies: AtlasLoot, EQCompare, EquipCompare, MultiTips, Outfitter ## SavedVariables: PawnCommon -## SavedVariablesPerCharacter: PawnOptions, PawnWowheadScaleProviderOptions , PawnCoAScaleProviderOptions +## SavedVariablesPerCharacter: PawnOptions, PawnWowheadScaleProviderOptions VgerCore\VgerCore.lua -CoAClassSpecData.lua Localization.lua Gems.lua Pawn.lua PawnUI.lua PawnUI.xml -Wowhead.lua -CoAScales.lua \ No newline at end of file +Wowhead.lua \ No newline at end of file