mirror of
https://codeberg.org/Duvelcorp/MetaHunt.git
synced 2026-09-24 00:26:58 +00:00
Fix pet loyalty notifications and trim level-up copy
- Loyalty now read from MTH_GetCurrentPetInfo().loyaltyLevel; GetPetLoyalty() returns a localized name (not a number), so the loyalty branch never fired - Listen for UNIT_HAPPINESS so a loyalty gain actually triggers the check - Drop redundant 'has leveled up' / 'is now <rank>' openers from pet and loyalty lines, keeping the sarcasm
This commit is contained in:
+22
-15
@@ -87,20 +87,20 @@ local MTH_LT_Priority = {
|
||||
}
|
||||
|
||||
local MTH_LT_PetLines = {
|
||||
"has leveled up. It is now statistically better than your last pull.",
|
||||
"has leveled up. The food budget has noticed.",
|
||||
"has leveled up. Please do not celebrate by pulling three extra mobs.",
|
||||
"has leveled up. It remains committed to solving problems with teeth.",
|
||||
"has leveled up. The wilderness has filed no objection.",
|
||||
"has leveled up. Your dependable colleague is carrying this team again.",
|
||||
"It is now statistically better than your last pull.",
|
||||
"The food budget has noticed.",
|
||||
"Please do not celebrate by pulling three extra mobs.",
|
||||
"It remains committed to solving problems with teeth.",
|
||||
"The wilderness has filed no objection.",
|
||||
"Your dependable colleague is carrying this team again.",
|
||||
}
|
||||
|
||||
local MTH_LT_LoyaltyLines = {
|
||||
[2] = "is now Unruly. It tolerates your leadership as long as the food arrives on time.",
|
||||
[3] = "is now Submissive. Your authority has been acknowledged, reluctantly.",
|
||||
[4] = "is now Dependable. It has decided your plans are survivable often enough.",
|
||||
[5] = "is now Faithful. Please do not reward this trust with an elite pull.",
|
||||
[6] = "is your Best Friend. Against all evidence, it trusts you completely.",
|
||||
[2] = "It tolerates your leadership as long as the food arrives on time.",
|
||||
[3] = "Your authority has been acknowledged, reluctantly.",
|
||||
[4] = "It has decided your plans are survivable often enough.",
|
||||
[5] = "Please do not reward this trust with an elite pull.",
|
||||
[6] = "Against all evidence, it trusts you completely.",
|
||||
}
|
||||
|
||||
local function MTH_LT_Store()
|
||||
@@ -273,9 +273,13 @@ local function MTH_LT_GetPetState()
|
||||
local level = type(UnitLevel) == "function" and tonumber(UnitLevel("pet")) or nil
|
||||
local name = type(UnitName) == "function" and UnitName("pet") or "Your pet"
|
||||
if not level or level <= 0 then return nil end
|
||||
-- Loyalty is a localized name via GetPetLoyalty(); reuse the pet service which
|
||||
-- parses it (plus UI fallbacks) into a numeric 1-6 level.
|
||||
local loyalty = nil
|
||||
local getPetLoyalty = (type(getglobal) == "function" and getglobal("GetPetLoyalty")) or (_G and _G["GetPetLoyalty"])
|
||||
if type(getPetLoyalty) == "function" then loyalty = tonumber(getPetLoyalty()) end
|
||||
if type(MTH_GetCurrentPetInfo) == "function" then
|
||||
local info = MTH_GetCurrentPetInfo()
|
||||
if type(info) == "table" then loyalty = tonumber(info.loyaltyLevel) or nil end
|
||||
end
|
||||
return { key = tostring(name or "pet"), name = tostring(name or "Your pet"), level = level, loyalty = loyalty }
|
||||
end
|
||||
|
||||
@@ -296,7 +300,7 @@ local function MTH_LT_HandlePetState()
|
||||
MTH_LT_HandlePetGrowlLevel(state.name, state.level)
|
||||
end
|
||||
if state.loyalty and state.loyalty > 1 and state.loyalty > (tonumber(pet.loyalty) or 0) then
|
||||
local line = MTH_LT_LoyaltyLines[state.loyalty] or "has gained a loyalty level. The food arrangement appears to be working."
|
||||
local line = MTH_LT_LoyaltyLines[state.loyalty] or "The food arrangement appears to be working."
|
||||
if MTH_LT_MessageEnabled("petLoyaltyUp", true) then MTH:Print(state.name .. " reached Loyalty Level " .. state.loyalty .. ". " .. line) end
|
||||
if type(MTH_FX_IsEnabled) == "function" and MTH_FX_IsEnabled("level.loyalty") and type(MTH_Celebrate) == "function" then
|
||||
MTH_Celebrate(state.name .. " - Loyalty " .. state.loyalty, line, state.loyalty == 6 and "victory" or "fanfare")
|
||||
@@ -333,7 +337,7 @@ function MTH_LevelTracker_Test(kind, level)
|
||||
return false
|
||||
end
|
||||
local petName = state and state.name or "Your pet"
|
||||
local line = MTH_LT_LoyaltyLines[loyalty] or "has gained a loyalty level. The food arrangement appears to be working."
|
||||
local line = MTH_LT_LoyaltyLines[loyalty] or "The food arrangement appears to be working."
|
||||
MTH:Print(petName .. " reached Loyalty Level " .. tostring(loyalty) .. ". " .. line)
|
||||
if type(MTH_Celebrate) == "function" then
|
||||
MTH_Celebrate(petName .. " - Loyalty " .. tostring(loyalty), line, loyalty == 6 and "victory" or "fanfare")
|
||||
@@ -351,6 +355,7 @@ function MTH_LevelTracker_Initialize()
|
||||
MTH_LT_Frame:RegisterEvent("UNIT_LEVEL")
|
||||
MTH_LT_Frame:RegisterEvent("UNIT_PET")
|
||||
MTH_LT_Frame:RegisterEvent("PET_BAR_UPDATE")
|
||||
MTH_LT_Frame:RegisterEvent("UNIT_HAPPINESS")
|
||||
MTH_LT_Frame:SetScript("OnEvent", function()
|
||||
if event == "PLAYER_ENTERING_WORLD" then
|
||||
local level = type(UnitLevel) == "function" and tonumber(UnitLevel("player")) or nil
|
||||
@@ -364,6 +369,8 @@ function MTH_LevelTracker_Initialize()
|
||||
MTH_LT_RequestPetCheck()
|
||||
elseif event == "PET_BAR_UPDATE" then
|
||||
MTH_LT_RequestPetCheck()
|
||||
elseif event == "UNIT_HAPPINESS" then
|
||||
MTH_LT_RequestPetCheck()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user