Consider porting to MoP Classic
Adal4 opened this issue · 23 comments
Yeah, sounds like they probably kept the wild pet reductions, despite them not being present in MoP. It makes sense, since the changes were likely added directly on top of the pet system, and they keep code revisions like that.
FYI, I noticed the wild pet reduction, it was very visible because I had the same pet in front of me, just of a different level: a rare Dragonbone Hatchling P/P level 21 (me) facing a rare Dragonbone Hatchling P/P level 23 which had lower stats (P 239, S 336, H 1142).
As of v1.35.4, I've unified the Retail and MoP Classic branches. Open a ticket if you encounter any more issues, but I tested it myself and did not see any.
Yes, please! Very useful addon for battle pets.
If I am not mistaken, the only issue is AddonCompartmentFrame which does not exist in MoP: Classic. It needs to be updated into the old CreateFrame("Button", "BPBIDMinimapButton", Minimap).
And also I got this error while inspecting my captured pets (with a French WoW client, obviously):
> 1x BattlePetBreedID/BreedTooltips.lua:130: attempt to perform arithmetic on local 'quality' (a nil value)
> [BattlePetBreedID/BreedTooltips.lua]:130: in function 'BPBID_SetBreedTooltip'
> [BattlePetBreedID/BreedTooltips.lua]:530: in function <BattlePetBreedID/BreedTooltips.lua:494>
> [C]: ?
>
> Locals:
> parent = GameTooltip {
> layoutType = "TooltipDefaultLayout"
> shoppingTooltips = <table> {
> }
> BottomOverlay = Texture {
> }
> updateTooltip = 0.015000
> comparing = false
> TopOverlay = Texture {
> }
> NineSlice = Frame {
> }
> needsReset = true
> }
> speciesID = 482
> tblBreedID = <table> {
> 1 = 5
> }
> rareness = 4
> tooltipDistance = nil
> rarity = 4
> breedtip = BPBID_BreedTooltip {
> updateTooltip = 0.200000
> NineSlice = Frame {
> }
> comparing = false
> layoutType = "TooltipDefaultLayout"
> shoppingTooltips = <table> {
> }
> TopOverlay = Texture {
> }
> needsReset = true
> BottomOverlay = Texture {
> }
> }
> breedtiptext = "BPBID_BreedTooltip"
> extratip = false
> collectedPets = <table> {
> 1 = "|cff0070ddL19 (S/S)|r"
> }
> (for index) = 554
> (for limit) = 562
> (for step) = 1
> i = 554
> petID = "BattlePet-0-00000015ED51"
> speciesID2 = 482
> owned = false
> customName = nil
> level = 0
> favorite = false
> isRevoked = false
> speciesName = "Vipère des rochers"
> icon = 132211
> petType = 8
> companionID = 62184
> tooltip = "|cFFFFD200Combat de mascottes : |rLes Tranchantes, Désolace, Mont Hyjal, Silithus"
> description = "Il y a longtemps, les druides du mont Hyjal ont adapté cette espèce afin qu'elle puisse cohabiter avec les autres créatures de la région."
> isWild = true
> canBattle = true
> isTradeable = false
> isUnique = false
> obtainable = true
> speciesID = nil
> customName = nil
> level = nil
> xp = nil
> maxXp = nil
> displayID = nil
> isFavorite = nil
> name = nil
> icon = nil
> petType = nil
> creatureID = nil
> sourceText = nil
> description = nil
> isWild = nil
> canBattle = nil
> tradable = nil
> unique = nil
> obtainable = nil
> health = nil
> maxHealth = nil
> power = nil
> speed = nil
> rarity = nil
> breedNum = "ERR"
> quality = nil
> resultslist = nil
> breed = "ERR"
> (*temporary) = <table> {
> 1 = "|cff0070ddL19 (S/S)|r"
> }
> (*temporary) = <table> {
> 1 = <table> {
> }
> 2 = <table> {
> }
> 3 = <table> {
> }
> 4 = <table> {
> }
> 5 = <table> {
> }
> 6 = <table> {
> }
> 7 = <table> {
> }
> 8 = <table> {
> }
> 0 = <table> {
> }
> }
> (*temporary) = 1
> (*temporary) = 3
> (*temporary) = "ERR"
> (*temporary) = nil
> (*temporary) = nil
> (*temporary) = nil
> (*temporary) = "attempt to perform arithmetic on local 'quality' (a nil value)"
> internal = <table> {
> cacheTime = true
> BattleFontSize = <table> {
> }
> resultsCache = <table> {
> }
> rarityCache = <table> {
> }
> MAX_BREEDS = 10
> breedCache = <table> {
> }
> LibStub = <table> {
> }
> speciesCache = <table> {
> }
> }
I'll try to look into this this weekend. It shouldn't be too hard. I think that error above is just because the API changes I made for Patch 11.1.5 aren't reflected in the MoP client. If I just revert them, I assume it will work for MoP. Then I need to set up the TOC for Mists and package it.
Finally, the missing pets from Cataclysm Classic (mostly non-existent in Retail) have been added in the latest beta build:
- Cypress
- Flurky, B/B or H/B
- Glub, H/S maybe
- Hoplet, probably S/S, not the same ID as Hoplet from Retail
- Joyous
- Lil' Wrathion not the same ID as Lil' Wrathion from Retail
- Pebble, H/S maybe (same name as Peeble which also exists in Retail, but not the same ID)
- Pinchy the Plunderer
- Reven, P/S, not the same ID as Reven from Retail
- Swoopy, B/S?
- Timbered Air Snakelet (different from Timbered Sky Snakelet from Retail)Anyway, they are all of unusual quality, which is not the norm for sold pets. This may change (and there is a bug in Hoplet skills 2 and 5).
As a reminder, there was already Arfus (NEW), should be (P/P): not the same ID as Arfus from Retail.
Yes, please! Very useful addon for battle pets.
If I am not mistaken, the only issue is
AddonCompartmentFramewhich does not exist in MoP: Classic. It needs to be updated into the oldCreateFrame("Button", "BPBIDMinimapButton", Minimap).
The error (PR #15) :
BattlePetBreedID/BattlePetBreedID.lua:622: attempt to index global 'AddonCompartmentFrame' (a nil value)
CurseForge now has a basic version of this addon up that supports Mists Classic (current version is called "X5-v0.2"). Let me know about any issues (I assume there are some).
Here's some examples of things to check off the top of my head:
- Wild pet stat scaling was reduced by 25% in WoD or Legion, then reduced again by 15% more for pets under level 6 in Shadowlands (?). Are any of these stat reductions still active? Which ones?
- Any off-by-1 issues with the quality/rarity values or colors? Blizzard changed the way they give out quality to use the rarity enum instead of the rarity index in Patch 11.0, and I'm not sure if that made it into Mists Classic.
Also I haven't started with the new pet data for Mists yet. I'll get on that soon-ish.
Hi @MMOSimca,
Wild pet stat scaling was reduced? I haven't played Retail in a while, it's possible I missed some things, but the notes for several patches don't mention it (6, 7, 8, 9). And above all I don't see much difference with Retail. I have an Unborn Val'kyr in beta, 25 rare H/H, 1806/276/227, according to Wowhead its equivalent in Retail is 1806/276/228, not much different. I would have to look for pets before level 25, but for example my Minfernal is 20 rare H/H, 1400/208/208 and according to Wowhead it would have exactly the same stats in Retail.
And most importantly (unless I really missed something), Blizzard never added breeds to pets from old expansions (they removed some, for example from the Gilnean Raven, but MoP Classic follows the rules of the last MoP patch, where these nerfs had already taken place).
I didn't notice any quality or color errors.
For the revert of PR #15, thanks, it removed the error, but if you don't want to maintain two codebases, I know of other addons that have AddonCompartmentFrame without it generating errors in MoP Classic Beta. For example Battle Pet Completionist, which uses LibDBIcon-1.0.lua, with this file: AddonCompartmentModule.lua or Mount Journal Enhanced: AddonCompartment.lua.
For now I'll maintain two codebases, since there will be conflicts in the pet data anyway because Blizzard is reusing IDs, presumably.
I can unify them at a later point if it seems reasonable.
And the wild pet stat reductions only apply while the pets are unowned. Once you capture them, the penalty is removed. Blizzard also never put either change into Patch Notes, which was very fun for me to have to discover via user complaints.
Ah OK, I see better. But I didn't have any breed identification errors in Beta, and I've already captured over 50 pets. Probably not enough to be certain, but still…
Yeah, sounds like they probably kept the wild pet reductions, despite them not being present in MoP. It makes sense, since the changes were likely added directly on top of the pet system, and they keep code revisions like that.
There is no overlap with IDs from Retail, which is nice. It should allow me to unify the branch eventually.
Can you get me stats (Rarity, Level, HP, Power, Speed) for the following pets (doesn't matter breed, I can figure that out)?
- Flurky
- Glub
- Pinchy the Plunderer
Ideally, the level should be above 2. Level 10+ would be great if possible.
For the pets not on that list, they have counterparts in Retail WoW, and I just copied the stats and breed over.
Edit: Removed Cypress and Swoopy as I learned these are renamed versions of Fyrn and Whoopy, respectively, so I just copied their Retail stats.
Edit 2: Removed Joyous since I discovered it's just a renamed version of Merriment.
The servers were unstable tonight, but here's what I got:
- Flurky: Uncommon, Level 3, HP: 260, P: 30, S: 30
- Glub: Uncommon, Level 5, HP: 375, P: 45, S: 55
- Pinchy the Plunderer: Uncommon, Level 3, HP: 265, P: 32, S: 28
I might level them up more as soon as the servers come back up.
Based on your data, I've determined the following:
- Flurky: 8/8/8 Base Stats, Breed 12 (H/B)
- Glub: 8.25/7.5/8.25 Base Stats, Breed 9 (H/S)
- Pinchy the Plunderer: 8.25/8/7.75 Base Stats, Breed 7 (H/P)
If you can get Flurky and Pinchy to level 5, that'd help ensure these values are accurate, but they are probably right.
I got an error message, similar to the previous ones:
> 4x BattlePetBreedID/BreedTooltips.lua:130: attempt to perform arithmetic on local 'quality' (a nil value)
> [BattlePetBreedID/BreedTooltips.lua]:130: in function 'BPBID_SetBreedTooltip'
> [BattlePetBreedID/BreedTooltips.lua]:530: in function <BattlePetBreedID/BreedTooltips.lua:494>
> [C]: ?
>
> Locals:
> parent = GameTooltip {
> hasMoney = 1
> AllTheThingsOnTooltipClearedHook = true
> comparing = false
> AllTheThingsProcessing = true
> TopOverlay = Texture {
> }
> canAddRestStateLine = 1
> numMoneyFrames = 1
> shoppingTooltips = <table> {
> }
> layoutType = "TooltipDefaultLayout"
> updateTooltip = 0.067000
> NineSlice = Frame {
> }
> BottomOverlay = Texture {
> }
> needsReset = true
> }
> speciesID = 513
> tblBreedID = <table> {
> 1 = 5
> }
> rareness = 4
> tooltipDistance = nil
> rarity = 4
> breedtip = BPBID_BreedTooltip {
> updateTooltip = 0.200000
> NineSlice = Frame {
> }
> comparing = false
> layoutType = "TooltipDefaultLayout"
> shoppingTooltips = <table> {
> }
> TopOverlay = Texture {
> }
> needsReset = true
> BottomOverlay = Texture {
> }
> }
> breedtiptext = "BPBID_BreedTooltip"
> extratip = false
> collectedPets = <table> {
> 1 = "|cff0070ddL15 (S/S)|r"
> }
> (for index) = 2
> (for limit) = 2
> (for step) = 1
> i = 2
> petID = "BattlePet-0-000000193647"
> speciesID2 = 513
> owned = false
> customName = nil
> level = 0
> favorite = false
> isRevoked = false
> speciesName = "Petit gardien qiraji"
> icon = 236829
> petType = 1
> companionID = 62526
> tooltip = "|cFFFFD200Combat de mascottes : |rSilithus|n|cFFFFD200Saison : |rÉté"
> description = "Les crissements de ces minuscules insectoïdes peuvent vous sembler très mignons. Sachez cependant que c'est un cri de mort dirigé contre vous."
> isWild = true
> canBattle = true
> isTradeable = false
> isUnique = false
> obtainable = true
> speciesID = nil
> customName = nil
> level = nil
> xp = nil
> maxXp = nil
> displayID = nil
> isFavorite = nil
> name = nil
> icon = nil
> petType = nil
> creatureID = nil
> sourceText = nil
> description = nil
> isWild = nil
> canBattle = nil
> tradable = nil
> unique = nil
> obtainable = nil
> health = nil
> maxHealth = nil
> power = nil
> speed = nil
> rarity = nil
> breedNum = "ERR"
> quality = nil
> resultslist = nil
> breed = "ERR"
> (*temporary) = <table> {
> 1 = "|cff0070ddL15 (S/S)|r"
> }
> (*temporary) = <table> {
> 1 = <table> {
> }
> 2 = <table> {
> }
> 3 = <table> {
> }
> 4 = <table> {
> }
> 5 = <table> {
> }
> 6 = <table> {
> }
> 7 = <table> {
> }
> 8 = <table> {
> }
> 0 = <table> {
> }
> }
> (*temporary) = 1
> (*temporary) = 3
> (*temporary) = "ERR"
> (*temporary) = nil
> (*temporary) = nil
> (*temporary) = nil
> (*temporary) = "attempt to perform arithmetic on local 'quality' (a nil value)"
> internal = <table> {
> cacheTime = true
> resultsCache = <table> {
> }
> rarityCache = <table> {
> }
> MAX_BREEDS = 10
> breedCache = <table> {
> }
> LibStub = <table> {
> }
> speciesCache = <table> {
> }
> }
Hi @MMOSimca
Here is the complete list of "NEW", with their Species ID:
- Arfus: Species ID 4329
- Cypress: Species ID 4273
- Flurky: Species ID 4233
- Glub: Species ID 4236
- Hoplet: Species ID 4235
- Joyous: Species ID 4734
- Lil' Wrathion: Species ID 4274
- Pebble: Species ID 4234
- Pinchy the Plunderer: Species ID 4532
- Reven: Species ID 4683
- Swoopy: Species ID 4585
- Timbered Air Snakelet: Species ID 4685
Update:
- Flurky: Uncommon, Level 9, HP: 581, P: 91, S: 91
- Glub: Uncommon, Level 8, HP: 539, P: 72, S: 88
- Pinchy the Plunderer: Uncommon, Level 7, HP: 484, P: 75, S: 64
Thanks. Confirmed Flurky and Glub.
I was wrong about Pinchy the Plunderer. With your additional levels, it turns out he's actually base stats 8.75/8/7.25 with breed 10 (P/B).
Can you check Pebble's stats as well? I just found out he's actually not the same as the original Pebble (an Earth Elemental). His base stats turned out to be 8.625/7.625/7.75 (actually got off my butt and did some proper datamining), but I have no idea what breed he is.
Yes, Classic has two "Peebles": the original and the new one:
- Peeble: Uncommon, Level 8, HP: 557, P: 73, S: 83
Do you want me to level up another one just to be sure?
You can if you want to but because all of these pets are Promotional pets, they should only have one breed. If they mistakenly have two, Blizzard will fix it retroactively and force all the pets to one breed. At least that's what they've done in Retail when they've made that mistake.
Pebble (the penguin one)'s breed from your data is Breed 9 (H/S).