coa.10: CoA reputation factions (data-driven) + custom-class icons + all-professions Skills
release / release (push) Successful in 5s
release / release (push) Successful in 5s
- Reputation view rebuilt data-driven from each char's scanned factions grouped by in-game category; CoA custom factions (and future ones) appear automatically. Old hardcoded tree kept only as an icon lookup. - CoA custom-class icons (classes 12-32) render from bundled atlas Altoholic/images/coa-classes.blp (texcoords from coa-details) instead of the Warrior glue-icon fallback in ShowClassIcons. - Skills tab shows ALL known professions (dynamic list incl Woodcutting/Woodworking), not 2 fixed slots; DataStore_Skills scans on PLAYER_ENTERING_WORLD/SKILL_LINES_CHANGED (fixes 'no profession data' that only scanned on ghost-release).
This commit is contained in:
+17
-28
@@ -76,8 +76,6 @@ local function AddRealm(AccountName, RealmName)
|
||||
local realmBankSlots = 0
|
||||
local realmFreeBankSlots = 0
|
||||
|
||||
local SkillsCache = { {name = "", rank = 0}, {name = "", rank = 0} }
|
||||
|
||||
-- 1) Add the realm name
|
||||
table.insert(characterList, { linetype = INFO_REALM_LINE + (realmCount*3),
|
||||
isCollapsed = false,
|
||||
@@ -87,36 +85,27 @@ local function AddRealm(AccountName, RealmName)
|
||||
|
||||
-- 2) Add the characters
|
||||
for characterName, character in pairs(DataStore:GetCharacters(RealmName, AccountName)) do
|
||||
SkillsCache[1].name = ""
|
||||
SkillsCache[1].rank = 0
|
||||
SkillsCache[1].spellID = nil
|
||||
SkillsCache[2].name = ""
|
||||
SkillsCache[2].rank = 0
|
||||
SkillsCache[2].spellID = nil
|
||||
|
||||
local i = 1
|
||||
local professions = DataStore:GetPrimaryProfessions(character)
|
||||
if professions then
|
||||
for SkillName, s in pairs(professions) do
|
||||
SkillsCache[i].name = SkillName
|
||||
SkillsCache[i].rank = DataStore:GetSkillInfo(character, SkillName)
|
||||
SkillsCache[i].spellID = DataStore:GetProfessionSpellID(SkillName)
|
||||
i = i + 1
|
||||
|
||||
if i > 2 then -- it seems that under certain conditions, the loop continues after 2 professions.., so break
|
||||
break
|
||||
end
|
||||
-- CoA: characters can know ALL professions at once (no retail 2-primary
|
||||
-- limit) plus the customs Woodcutting/Woodworking. Build a dynamic list of
|
||||
-- every known primary profession instead of the old fixed 2 slots. Each
|
||||
-- entry carries its own name/rank/spellID(icon) so Skills.lua can render an
|
||||
-- arbitrary number of professions. GetPrimaryProfessionList never returns
|
||||
-- nil (returns {} for unscanned chars), but guard anyway.
|
||||
local professions = {}
|
||||
if DataStore.GetPrimaryProfessionList then
|
||||
local list = DataStore:GetPrimaryProfessionList(character) or {}
|
||||
for _, p in ipairs(list) do
|
||||
professions[#professions + 1] = {
|
||||
name = p.name,
|
||||
rank = p.rank or 0,
|
||||
spellID = DataStore:GetProfessionSpellID(p.name),
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
table.insert(characterList, { linetype = INFO_CHARACTER_LINE + (realmCount*3),
|
||||
key = character,
|
||||
skillName1 = SkillsCache[1].name,
|
||||
skillRank1 = SkillsCache[1].rank,
|
||||
spellID1 = SkillsCache[1].spellID,
|
||||
skillName2 = SkillsCache[2].name,
|
||||
skillRank2 = SkillsCache[2].rank,
|
||||
spellID2 = SkillsCache[2].spellID,
|
||||
professions = professions, -- CoA: dynamic list of all primary professions
|
||||
cooking = DataStore:GetCookingRank(character),
|
||||
firstaid = DataStore:GetFirstAidRank(character),
|
||||
fishing = DataStore:GetFishingRank(character),
|
||||
|
||||
Reference in New Issue
Block a user