brittyazel / Neuron

A full-featured World of Warcraft action bar and interface replacement addon
https://www.curseforge.com/wow/addons/neuron
MIT License
31 stars 21 forks source link

Workaround included: Ve'nari and Research reps don't show properly on the rep bar #431

Closed raysmith59 closed 3 years ago

raysmith59 commented 3 years ago

Those two reps weren't displaying the % or bubbles correctly so I looked into it a bit, seems the issue is that they're friendship reps that are also capable of being paragons, guess that hasn't been in the game before. I rejigged the code starting at line 452 of STATUSBTN.lua and here's what I ended up with, in limited testing it seems to work for normal friendships/paragon friendships that aren't maxed yet/paragon friendships in paragon status/non-friendship reps. I did notice an issue where the mouseover isn't working, I don't think my code changes caused that so I'll report that separately.

Basically, I'm promoting paragon to be the primary factor but allowing the friendship code to run when the friend rep isn't at paragon status yet. I may not have properly factored in things like bar colour so there may be a better way to do this, mostly providing this as a temporary workaround for people who are looking for one.

        if not isParagon then
            colors.r, colors.g, colors.b = BAR_REP_DATA[standingID].r, BAR_REP_DATA[standingID].g, BAR_REP_DATA[standingID].b
            standing = BAR_REP_DATA[standingID].l --convert numerical standingID to text i.e "Exalted" instead of 8
            --if not friendID then --not a "Friendship" faction, i.e. Chromie or Brawlers Guild
            if friendID then --is a "Friendship" faction
                if string.find(name, "Brawl'gar Arena") or string.find(name, "Bizmo's Brawlpub") then
                    colors.r, colors.g, colors.b = BAR_REP_DATA[standingID].r, BAR_REP_DATA[standingID].g, BAR_REP_DATA[standingID].b
                else
                    if standingID + 2 > 8 then
                        standingID = 7
                    end
                    colors.r, colors.g, colors.b = BAR_REP_DATA[standingID+2].r, BAR_REP_DATA[standingID+2].g, BAR_REP_DATA[standingID+2].b --offset by two, because friendships don't have "hated" or "hostile" ranks
                end
            end
        else
            local para_value, para_max, _, hasRewardPending = C_Reputation.GetFactionParagonInfo(factionID);
            standingID = 9
            value = para_value % para_max;
            max = para_max
            if hasRewardPending then
                name = name.." ("..L["Reward"]:upper()..")"
            end
            min = 0
            colors.r, colors.g, colors.b = BAR_REP_DATA[9].r, BAR_REP_DATA[9].g, BAR_REP_DATA[9].b
            standing = BAR_REP_DATA[9].l --set standing text to be "Paragon"
        end
brittyazel commented 3 years ago

fixed, thanks for doing this! Please test it with what I have in MASTER