diff --git a/Altoholic/Altoholic.lua b/Altoholic/Altoholic.lua index 17258b4..5f6a3ff 100644 --- a/Altoholic/Altoholic.lua +++ b/Altoholic/Altoholic.lua @@ -338,7 +338,7 @@ function addon:OnEnable() -- CoA: use a Lua constant, not GetAddOnMetadata — TOC metadata is cached at game launch -- and does NOT refresh on /reload, so the .toc version looked stale ("still .18"). A Lua -- constant re-evaluates on every /reload, giving a truthful loaded-code version. Bump with the .toc. - AltoholicFrameName:SetText("Altoholic |cFFFFFFFF3.3.002b-coa.22|r") + AltoholicFrameName:SetText("Altoholic |cFFFFFFFF3.3.002b-coa.30|r") local realm = GetRealmName() local player = UnitName("player") @@ -608,13 +608,17 @@ end -- Fresh alts have partial per-module data, so every field is guarded here once -- instead of being copy-pasted (and missed) across the frames. function Altoholic:AddCharacterTooltipHeader(character) + local locClass, engClass = DS:GetCharacterClass(character) + local className = Altoholic:GetCoAClassName(engClass) or locClass or "" -- CoA: current class name (PROPHET->Venomancer, …) AltoTooltip:AddDoubleLine(DS:GetColoredCharacterName(character) or "?", DS:GetColoredCharacterFaction(character) or "") AltoTooltip:AddLine(format("%s %s |r%s %s", L["Level"], - GREEN..(DS:GetCharacterLevel(character) or 0), DS:GetCharacterRace(character) or "", DS:GetCharacterClass(character) or ""), 1, 1, 1) + GREEN..(DS:GetCharacterLevel(character) or 0), DS:GetCharacterRace(character) or "", className), 1, 1, 1) end function Altoholic:SetCharacterRowNameLevel(entry, i, icon, character) - _G[entry..i.."NameNormalText"]:SetText(icon .. format("%s (%s)", DS:GetColoredCharacterName(character) or "?", DS:GetCharacterClass(character) or "")) + local locClass, engClass = DS:GetCharacterClass(character) + local className = Altoholic:GetCoAClassName(engClass) or locClass or "" -- CoA: current class name + _G[entry..i.."NameNormalText"]:SetText(icon .. format("%s (%s)", DS:GetColoredCharacterName(character) or "?", className)) _G[entry..i.."Level"]:SetText(GREEN .. (DS:GetCharacterLevel(character) or 0)) end diff --git a/Altoholic/Altoholic.toc b/Altoholic/Altoholic.toc index c3b60cc..7e30c77 100644 --- a/Altoholic/Altoholic.toc +++ b/Altoholic/Altoholic.toc @@ -13,7 +13,7 @@ ## Author: Thaoky, Telkar-RG ## X-Edited-By: Exiles (Sub-Net) — florian.berthold@sub-net.at -## Version: 3.3.002b-coa.22 +## Version: 3.3.002b-coa.30 ## X-Category: Inventory, Tradeskill, Mail ## X-Localizations: enUS, frFR, zhCN, zhTW, deDE, koKR, esES, esMX, ruRU ## X-Website: http://wow.curse.com/downloads/wow-addons/details/altoholic.aspx diff --git a/Altoholic/Characters.lua b/Altoholic/Characters.lua index 8a6d365..c2699b4 100644 --- a/Altoholic/Characters.lua +++ b/Altoholic/Characters.lua @@ -98,6 +98,7 @@ local function AddRealm(AccountName, RealmName) professions[#professions + 1] = { name = p.name, rank = p.rank or 0, + maxRank = p.maxRank or 0, -- CoA: needed for the "rank/max" display in the vertical Skills list spellID = DataStore:GetProfessionSpellID(p.name), } end diff --git a/Altoholic/CoAClassColors.lua b/Altoholic/CoAClassColors.lua index 29b8888..799b096 100644 --- a/Altoholic/CoAClassColors.lua +++ b/Altoholic/CoAClassColors.lua @@ -115,3 +115,23 @@ function Alto:GetCoAClassIcon(token) if not tc then return end return COA_CLASS_ICON_TEXTURE, tc[1], tc[2], tc[3], tc[4] end + +-- CoA renamed its classes, but UnitClass()/DataStore still return the OLD tokens +-- (PROPHET, MONK, …). Map them to the current display names. Source: coa-omen/README-CoA.md. +-- Tokens not listed here keep their normal localized name (returns nil). +local COA_CLASS_NAMES = { + HERO = "Hero", BARBARIAN = "Barbarian", WITCHDOCTOR = "Witch Doctor", + DEMONHUNTER = "Felsworn", WITCHHUNTER = "Witch Hunter", STORMBRINGER = "Stormbringer", + FLESHWARDEN = "Knight of Xoroth", GUARDIAN = "Guardian", MONK = "Templar", + SONOFARUGAL = "Bloodmage", RANGER = "Ranger", CHRONOMANCER = "Chronomancer", + NECROMANCER = "Necromancer", PYROMANCER = "Pyromancer", CULTIST = "Cultist", + STARCALLER = "Starcaller", SUNCLERIC = "Sun Cleric", TINKER = "Tinker", + PROPHET = "Venomancer", REAPER = "Reaper", WILDWALKER = "Primalist", + SPIRITMAGE = "Runemaster", +} + +-- Current CoA display name for a class token, or nil if unmapped (caller falls back). +function Alto:GetCoAClassName(token) + if type(token) ~= "string" then return end + return COA_CLASS_NAMES[token] +end diff --git a/Altoholic/Frames/AccountSummary.lua b/Altoholic/Frames/AccountSummary.lua index 98a04a1..2a90d21 100644 --- a/Altoholic/Frames/AccountSummary.lua +++ b/Altoholic/Frames/AccountSummary.lua @@ -168,7 +168,7 @@ end function ns:Update() - local VisibleLines = 20 + local VisibleLines = 18 local frame = "AltoholicFrameSummary" local entry = frame.."Entry" diff --git a/Altoholic/Frames/Activity.lua b/Altoholic/Frames/Activity.lua index 2324d52..6525114 100644 --- a/Altoholic/Frames/Activity.lua +++ b/Altoholic/Frames/Activity.lua @@ -23,7 +23,7 @@ local ns = addon.Activity -- ns = namespace local Characters = addon.Characters function ns:Update() - local VisibleLines = 20 + local VisibleLines = 18 local frame = "AltoholicFrameActivity" local entry = frame.."Entry" diff --git a/Altoholic/Frames/BagUsage.lua b/Altoholic/Frames/BagUsage.lua index 8c29a9b..a478b50 100644 --- a/Altoholic/Frames/BagUsage.lua +++ b/Altoholic/Frames/BagUsage.lua @@ -22,7 +22,7 @@ local ns = addon.BagUsage -- ns = namespace local Characters = addon.Characters function ns:Update() - local VisibleLines = 20 + local VisibleLines = 18 local frame = "AltoholicFrameBagUsage" local entry = frame.."Entry" diff --git a/Altoholic/Frames/GuildBankTabs.lua b/Altoholic/Frames/GuildBankTabs.lua index e7e60f6..ea44eef 100644 --- a/Altoholic/Frames/GuildBankTabs.lua +++ b/Altoholic/Frames/GuildBankTabs.lua @@ -72,7 +72,7 @@ function ns:Update() BuildView() end - local VisibleLines = 20 + local VisibleLines = 18 local frame = "AltoholicFrameGuildBankTabs" local entry = frame.."Entry" diff --git a/Altoholic/Frames/GuildMembers.lua b/Altoholic/Frames/GuildMembers.lua index 5a49210..d9d4dd7 100644 --- a/Altoholic/Frames/GuildMembers.lua +++ b/Altoholic/Frames/GuildMembers.lua @@ -285,7 +285,7 @@ function ns:Update() BuildView() end - local VisibleLines = 20 + local VisibleLines = 17 local frame = "AltoholicFrameGuildMembers" local entry = frame.."Entry" diff --git a/Altoholic/Frames/GuildProfessions.lua b/Altoholic/Frames/GuildProfessions.lua index b98653f..963f70a 100644 --- a/Altoholic/Frames/GuildProfessions.lua +++ b/Altoholic/Frames/GuildProfessions.lua @@ -221,7 +221,7 @@ function ns:Update() BuildView() end - local VisibleLines = 20 + local VisibleLines = 18 local frame = "AltoholicFrameGuildProfessions" local entry = frame.."Entry" diff --git a/Altoholic/Frames/Quests.lua b/Altoholic/Frames/Quests.lua index e6c8c26..77f24df 100644 --- a/Altoholic/Frames/Quests.lua +++ b/Altoholic/Frames/Quests.lua @@ -34,7 +34,7 @@ function ns:Update() local character = addon.Tabs.Characters:GetCurrent() - local VisibleLines = 20 + local VisibleLines = 18 local frame = "AltoholicFrameQuests" local entry = frame.."Entry" diff --git a/Altoholic/Frames/Recipes.lua b/Altoholic/Frames/Recipes.lua index 37d27b5..cb1cb49 100644 --- a/Altoholic/Frames/Recipes.lua +++ b/Altoholic/Frames/Recipes.lua @@ -218,7 +218,7 @@ end function ns:Update() local currentProfession = addon.TradeSkills.CurrentProfession - local VisibleLines = 20 + local VisibleLines = 18 local frame = "AltoholicFrameRecipes" local entry = frame.."Entry" diff --git a/Altoholic/Frames/Skills.lua b/Altoholic/Frames/Skills.lua index c9b8564..164ede4 100644 --- a/Altoholic/Frames/Skills.lua +++ b/Altoholic/Frames/Skills.lua @@ -30,7 +30,7 @@ local inset = 2 function ns:Update() - local VisibleLines = 20 + local VisibleLines = 18 local frame = "AltoholicFrameSkills" local entry = frame.."Entry" local DS = DataStore @@ -66,6 +66,7 @@ function ns:Update() items[#items + 1] = { kind = "skill", viewLine = viewLine, character = character, spellID = 33388, name = (L and L["Riding"]) or "Riding", rank = riding, maxRank = 300 } end + items[#items + 1] = { kind = "spacer" } -- blank row between characters end end @@ -76,26 +77,44 @@ function ns:Update() local item = items[i + offset] if item then _G[e.."Collapse"]:Hide() - _G[e.."Level"]:SetText("") _G[e.."Skill1NormalText"]:SetText("") _G[e.."CookingNormalText"]:SetText("") _G[e.."FirstAidNormalText"]:SetText("") _G[e.."FishingNormalText"]:SetText("") _G[e.."RidingNormalText"]:SetText("") - _G[e.."Name"]:SetWidth(680) - _G[e.."Name"]:SetPoint("TOPLEFT", 15, 0) - _G[e.."NameNormalText"]:SetWidth(680) - if item.kind == "header" then - local _, class = DS:GetCharacterClass(item.character) - _G[e.."NameNormalText"]:SetText( (DS:GetColoredCharacterName(item.character) or "?") .. " " .. WHITE .. "(" .. (class or "") .. ")" ) + if item.kind == "spacer" then + -- blank separator row between characters + _G[e.."Name"]:SetPoint("TOPLEFT", 15, 0) + _G[e.."NameNormalText"]:SetText("") + _G[e.."Level"]:SetText("") + elseif item.kind == "header" then + -- character header: gold "Name (Class)" across the row, no rank column + _G[e.."Name"]:SetPoint("TOPLEFT", 12, 0) + _G[e.."Name"]:SetWidth(420) + _G[e.."NameNormalText"]:SetWidth(420) + local cname = Characters:GetInfo(item.viewLine) or "?" -- name from the key, always present (scanned char.name can be nil) + local locClass, engClass = DS:GetCharacterClass(item.character) + local className = Altoholic:GetCoAClassName(engClass) or locClass or "" -- CoA: PROPHET->Venomancer, MONK->Templar, … + local classColor = DS:GetClassColor(item.character) or WHITE + _G[e.."NameNormalText"]:SetText( classColor .. cname .. "|r " .. WHITE .. "(" .. className .. ")" ) + _G[e.."Level"]:SetText("") else + -- profession row: [icon] name in the Name cell (indented), rank/max in its own column local iconEsc = "" if item.spellID then iconEsc = addon:TextureToFontstring2(addon:GetSpellIcon(item.spellID), size, size, inset, inset, inset, inset) .. " " end + _G[e.."Name"]:SetPoint("TOPLEFT", 34, 0) + _G[e.."Name"]:SetWidth(170) + _G[e.."NameNormalText"]:SetWidth(170) + _G[e.."NameNormalText"]:SetText( iconEsc .. WHITE .. item.name ) + local cap = (item.maxRank > 0) and item.maxRank or 450 - _G[e.."NameNormalText"]:SetText( " " .. iconEsc .. WHITE .. item.name .. " " .. ns:GetColor(item.rank, cap) .. item.rank .. "/" .. item.maxRank .. "|r" ) + _G[e.."Level"]:SetPoint("TOPLEFT", 195, 0) + _G[e.."Level"]:SetWidth(120) + _G[e.."Level"]:SetJustifyH("LEFT") + _G[e.."Level"]:SetText( ns:GetColor(item.rank, cap) .. item.rank .. " / " .. item.maxRank ) end btn.coaItem = item btn:SetID(item.viewLine or 0) diff --git a/Altoholic/Frames/Skills.xml b/Altoholic/Frames/Skills.xml index c669b2b..d275ec0 100644 --- a/Altoholic/Frames/Skills.xml +++ b/Altoholic/Frames/Skills.xml @@ -34,7 +34,7 @@ + - - - - - - - + + + +