mirror of
https://codeberg.org/Duvelcorp/MetaHunt.git
synced 2026-09-22 07:36:58 +00:00
Fix realm-gate disable for book/options, pet-rank learning, unique beasts
- Hunter's Book and options window now show a full 'DISABLED.' overlay on realm-gated realms instead of rendering content - Pet training: new rank of an already-known ability is now recognised, announced, and reflected in tooltips - Restore curated 'unique appearance' beast allowlist (34 beasts) in data/init.lua - CHANGELOG updated
This commit is contained in:
+77
-16
@@ -212,7 +212,7 @@ local function MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
rank = src.rank,
|
||||
rankNumber = src.rankNumber,
|
||||
school = "Physical",
|
||||
sourceUrl = "https://database.turtlecraft.gg/?spell=" .. tostring(src.id),
|
||||
sourceUrl = "https://octowow.st/db/?spell=" .. tostring(src.id),
|
||||
trainLevel = src.trainLevel,
|
||||
}
|
||||
table.insert(growlSpells, row)
|
||||
@@ -262,7 +262,7 @@ local function MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
rank = src.rank,
|
||||
rankNumber = src.rankNumber,
|
||||
school = "Physical",
|
||||
sourceUrl = "https://database.turtlecraft.gg/?spell=" .. tostring(src.id),
|
||||
sourceUrl = "https://octowow.st/db/?spell=" .. tostring(src.id),
|
||||
trainLevel = src.trainLevel,
|
||||
}
|
||||
table.insert(staminaSpells, row)
|
||||
@@ -312,7 +312,7 @@ local function MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
rank = src.rank,
|
||||
rankNumber = src.rankNumber,
|
||||
school = "Physical",
|
||||
sourceUrl = "https://database.turtlecraft.gg/?spell=" .. tostring(src.id),
|
||||
sourceUrl = "https://octowow.st/db/?spell=" .. tostring(src.id),
|
||||
trainLevel = src.trainLevel,
|
||||
}
|
||||
table.insert(armorSpells, row)
|
||||
@@ -356,7 +356,7 @@ local function MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
rank = src.rank,
|
||||
rankNumber = src.rankNumber,
|
||||
school = "Physical",
|
||||
sourceUrl = "https://database.turtlecraft.gg/?spell=" .. tostring(src.id),
|
||||
sourceUrl = "https://octowow.st/db/?spell=" .. tostring(src.id),
|
||||
trainLevel = src.trainLevel,
|
||||
}
|
||||
table.insert(fireResSpells, row)
|
||||
@@ -400,7 +400,7 @@ local function MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
rank = src.rank,
|
||||
rankNumber = src.rankNumber,
|
||||
school = "Physical",
|
||||
sourceUrl = "https://database.turtlecraft.gg/?spell=" .. tostring(src.id),
|
||||
sourceUrl = "https://octowow.st/db/?spell=" .. tostring(src.id),
|
||||
trainLevel = src.trainLevel,
|
||||
}
|
||||
table.insert(frostResSpells, row)
|
||||
@@ -444,7 +444,7 @@ local function MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
rank = src.rank,
|
||||
rankNumber = src.rankNumber,
|
||||
school = "Physical",
|
||||
sourceUrl = "https://database.turtlecraft.gg/?spell=" .. tostring(src.id),
|
||||
sourceUrl = "https://octowow.st/db/?spell=" .. tostring(src.id),
|
||||
trainLevel = src.trainLevel,
|
||||
}
|
||||
table.insert(arcaneResSpells, row)
|
||||
@@ -488,7 +488,7 @@ local function MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
rank = src.rank,
|
||||
rankNumber = src.rankNumber,
|
||||
school = "Physical",
|
||||
sourceUrl = "https://database.turtlecraft.gg/?spell=" .. tostring(src.id),
|
||||
sourceUrl = "https://octowow.st/db/?spell=" .. tostring(src.id),
|
||||
trainLevel = src.trainLevel,
|
||||
}
|
||||
table.insert(natureResSpells, row)
|
||||
@@ -532,7 +532,7 @@ local function MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
rank = src.rank,
|
||||
rankNumber = src.rankNumber,
|
||||
school = "Physical",
|
||||
sourceUrl = "https://database.turtlecraft.gg/?spell=" .. tostring(src.id),
|
||||
sourceUrl = "https://octowow.st/db/?spell=" .. tostring(src.id),
|
||||
trainLevel = src.trainLevel,
|
||||
}
|
||||
table.insert(shadowResSpells, row)
|
||||
@@ -556,56 +556,56 @@ local function MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
|
||||
MTH_DS_PetSpells.byAbility["Growl"] = {
|
||||
ability = "Growl",
|
||||
searchUrl = "https://database.turtlecraft.gg/?search=Growl",
|
||||
searchUrl = "https://octowow.st/db/?search=Growl",
|
||||
spellCount = table.getn(growlSpells),
|
||||
spells = growlSpells,
|
||||
}
|
||||
|
||||
MTH_DS_PetSpells.byAbility["Great Stamina"] = {
|
||||
ability = "Great Stamina",
|
||||
searchUrl = "https://database.turtlecraft.gg/?search=Great+Stamina",
|
||||
searchUrl = "https://octowow.st/db/?search=Great+Stamina",
|
||||
spellCount = table.getn(staminaSpells),
|
||||
spells = staminaSpells,
|
||||
}
|
||||
|
||||
MTH_DS_PetSpells.byAbility["Natural Armor"] = {
|
||||
ability = "Natural Armor",
|
||||
searchUrl = "https://database.turtlecraft.gg/?search=Natural+Armor",
|
||||
searchUrl = "https://octowow.st/db/?search=Natural+Armor",
|
||||
spellCount = table.getn(armorSpells),
|
||||
spells = armorSpells,
|
||||
}
|
||||
|
||||
MTH_DS_PetSpells.byAbility["Fire Resistance"] = {
|
||||
ability = "Fire Resistance",
|
||||
searchUrl = "https://database.turtlecraft.gg/?search=Fire+Resistance",
|
||||
searchUrl = "https://octowow.st/db/?search=Fire+Resistance",
|
||||
spellCount = table.getn(fireResSpells),
|
||||
spells = fireResSpells,
|
||||
}
|
||||
|
||||
MTH_DS_PetSpells.byAbility["Frost Resistance"] = {
|
||||
ability = "Frost Resistance",
|
||||
searchUrl = "https://database.turtlecraft.gg/?search=Frost+Resistance",
|
||||
searchUrl = "https://octowow.st/db/?search=Frost+Resistance",
|
||||
spellCount = table.getn(frostResSpells),
|
||||
spells = frostResSpells,
|
||||
}
|
||||
|
||||
MTH_DS_PetSpells.byAbility["Arcane Resistance"] = {
|
||||
ability = "Arcane Resistance",
|
||||
searchUrl = "https://database.turtlecraft.gg/?search=Arcane+Resistance",
|
||||
searchUrl = "https://octowow.st/db/?search=Arcane+Resistance",
|
||||
spellCount = table.getn(arcaneResSpells),
|
||||
spells = arcaneResSpells,
|
||||
}
|
||||
|
||||
MTH_DS_PetSpells.byAbility["Nature Resistance"] = {
|
||||
ability = "Nature Resistance",
|
||||
searchUrl = "https://database.turtlecraft.gg/?search=Nature+Resistance",
|
||||
searchUrl = "https://octowow.st/db/?search=Nature+Resistance",
|
||||
spellCount = table.getn(natureResSpells),
|
||||
spells = natureResSpells,
|
||||
}
|
||||
|
||||
MTH_DS_PetSpells.byAbility["Shadow Resistance"] = {
|
||||
ability = "Shadow Resistance",
|
||||
searchUrl = "https://database.turtlecraft.gg/?search=Shadow+Resistance",
|
||||
searchUrl = "https://octowow.st/db/?search=Shadow+Resistance",
|
||||
spellCount = table.getn(shadowResSpells),
|
||||
spells = shadowResSpells,
|
||||
}
|
||||
@@ -613,6 +613,66 @@ local function MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
MTH_DS_PetSpells.totalSpellRows = table.getn(MTH_DS_PetSpells.allSpells)
|
||||
end
|
||||
|
||||
-- Restore the "unique appearance" flag on beasts.
|
||||
-- This is a curated allowlist of beasts whose look is genuinely one-of-a-kind
|
||||
-- (named individuals / distinctive rares that a collector prizes). We do NOT derive
|
||||
-- this from the skin datastore's unique flag: that flag only means "this texture
|
||||
-- appears once in the DBC", which over-marks whole color-variant families (e.g. every
|
||||
-- Moth and Fox colour) and would wrongly flag common mobs like Frenzied Dustwing.
|
||||
-- Keyed by NPC id (names such as "Crimson Lynx" repeat across entries). Hand-maintained.
|
||||
local MTH_DS_UniqueBeastIds = {
|
||||
[5828] = true, -- Humar the Pridelord (Cats)
|
||||
[61599] = true, -- Darksaber (Cats)
|
||||
[61699] = true, -- Shar'lan (Cats)
|
||||
[7434] = true, -- Frostsaber Pride Watcher (Cats)
|
||||
[3068] = true, -- Mazzranache (Tallstriders)
|
||||
[61789] = true, -- Moonfeather (Tallstriders)
|
||||
[61488] = true, -- Azurebeak (Owls)
|
||||
[59998] = true, -- Blue Owl (Owls)
|
||||
[59997] = true, -- Red Owl (Owls)
|
||||
[63147] = true, -- Withered Companion (Owls)
|
||||
[62778] = true, -- Ahgk'tos the Pure (Spiders)
|
||||
[8211] = true, -- Old Cliff Jumper (Wolves)
|
||||
[4512] = true, -- Rotting Agam'ar (Boars)
|
||||
[62750] = true, -- Magmalash Scorpid (Scorpids)
|
||||
[11371] = true, -- Razzashi Serpent (Serpents)
|
||||
[80260] = true, -- Spirit Fox (Foxes)
|
||||
[61716] = true, -- Crimson Hawkstrider (Tallstriders)
|
||||
[61691] = true, -- Forest Hawkstrider (Tallstriders)
|
||||
[61695] = true, -- Ivory Hawkstrider (Tallstriders)
|
||||
[62817] = true, -- Moonstrider Matriarch (Tallstriders)
|
||||
[62818] = true, -- Moonstrider Rooster (Tallstriders)
|
||||
[61774] = true, -- Brilliant Mana Wyrm (Wind Serpents)
|
||||
[61775] = true, -- Emerald Mana Wyrm (Wind Serpents)
|
||||
[61776] = true, -- Lavender Mana Wyrm (Wind Serpents)
|
||||
[61480] = true, -- Brilliant Wind Serpent (Wind Serpents)
|
||||
[1815] = true, -- Diseased Black Bear (Bears)
|
||||
[80466] = true, -- Tirisfal Plagued Bear (Bears)
|
||||
[62820] = true, -- Nightpelt Grizzly (Bears)
|
||||
[62821] = true, -- Nightpelt Ursa (Bears)
|
||||
[80816] = true, -- Hinterlands Eagle (Owls)
|
||||
[61697] = true, -- Bright Lynx (Cats)
|
||||
[61698] = true, -- Bright Lynx Matriarch (Cats)
|
||||
[62338] = true, -- Stormwing Buzzard (Carrion Birds)
|
||||
[62339] = true, -- Stormwing Vulture (Carrion Birds)
|
||||
}
|
||||
|
||||
local function MTH_DS_DeriveBeastUnique()
|
||||
if type(MTH_DS_Beasts) ~= "table" then
|
||||
return
|
||||
end
|
||||
|
||||
for npcId, beast in pairs(MTH_DS_Beasts) do
|
||||
if type(beast) == "table" then
|
||||
if MTH_DS_UniqueBeastIds[npcId] then
|
||||
beast.unique = true
|
||||
else
|
||||
beast.unique = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function MTH_DS_OnLoad()
|
||||
if MTH_DS.loaded then
|
||||
return
|
||||
@@ -623,6 +683,7 @@ function MTH_DS_OnLoad()
|
||||
|
||||
if MTH_DS_Beasts and MTH_DS_Vendors and MTH_DS_AmmoItems and MTH_DS_Zones and MTH_DS_Families then
|
||||
MTH_DS_EnsurePetSpellsTrainerGrowl()
|
||||
MTH_DS_DeriveBeastUnique()
|
||||
MTH_DS.loaded = true
|
||||
|
||||
-- Count entries
|
||||
|
||||
Reference in New Issue
Block a user