Rematch 4.0

Discuss your favorite pet addons and macros.
User avatar
Mot
Posts: 8
Joined: February 19th, 2018
Pet Score: 9294
Realm: Azjol-Nerub-EU
Contact:

Re: Rematch 4.0

Post by Mot » June 18th, 2020, 12:57 pm

A little suggestion here (please enlighten me, if this is already possible and I missed it):

A per-team (or per-pet-in-team) setting to ignore the breed.

Use-case:

I have a Taming team for taming wilds, with Emerald as tank, Nexus as damage dealer and Scraps|Grumpy|Turnip as tamer.

Since I have 3×PP Nexus and 3×PP Emerald, and Scraps|Grumpy|Turnip only come in one breed, this works fine: After each fight the team is cycled to the healthiest pets by Rematch.

I have another team that comes with the Dream Whelpling. I have 2×PP and 1×PS dream Whelpling. Here it doesn’t work. If the team has the PP Dream Whelpling, Rematch will cycle two times. But for the third Dream Whelpling (the PS) I have to found a separate team, since Rematch will not replace a damaged PP with a fresh PS.

A setting “Ignore Breed” would solve this.This could be done as per-team setting, or as per-pet-in-team setting. Not sure what would be better / more convenient / easier.

I flagged this suggestion as “little” because it really is. Not an issue, just a minor QoL improvement if you have spare time ;)

Gello
Posts: 433
Joined: January 23rd, 2014
Pet Score: 4238
Realm: Hyjal-US
Contact:

Re: Rematch 4.0

Post by Gello » June 18th, 2020, 6:55 pm

You may already know this due to the specific mention of per-team or per-pet, but there is a global option 'Allow Any Version' under 'Load Healthiest Pets' that will ignore breed.

User avatar
Mot
Posts: 8
Joined: February 19th, 2018
Pet Score: 9294
Realm: Azjol-Nerub-EU
Contact:

Re: Rematch 4.0

Post by Mot » June 19th, 2020, 9:28 am

Yep, I know that. But this is a global setting and, since most of the teams are breed-specific, changing this back and forth is a bit clumsy (and I tend to forget to reset it ;) ).

But maybe I’ll try it again. Maybe with some sort of a reminder when a tamer is targeted or when going PvP, if I can build such a thing with TMW or whatever.

Gello
Posts: 433
Joined: January 23rd, 2014
Pet Score: 4238
Realm: Hyjal-US
Contact:

Re: Rematch 4.0

Post by Gello » June 19th, 2020, 9:36 pm

How about a compromise. This macro will let you switch it more easily:

Code: Select all

/run local s,v=RematchSettings,"LoadHealthiestAny" s[v]=not s[v] print("Load Healthiest Pets -> Any Version is now "..(s[v] and "\124cff00ff00ON\124r." or "\124cffff0000OFF\124r.")) Rematch:UpdateUI()

Sservis
Posts: 5
Joined: October 12th, 2011
Pet Score: 8625
Realm: Mal'Ganis-US
Contact:

Re: Rematch 4.0

Post by Sservis » June 29th, 2020, 6:17 pm

Interesting Edge Case found.

Brown Marmot, Borean Marmot, and Brown Prairie Dog all have the same moveset, but Rematch considers the Brown Prairie Dog to be in it's own moveset and not shared with the Marmots. This is likely due to the fact that the abilities granted at level 2 and 15 are in different orders for the pets. Given that the only differences is ability order gained at levels 2 and 15, nearly everyone will never care about the difference. By the time people are figuring out movesets and optimal pet collections (hitting the cap rather than collect them all), they're really only using rare 25 pets in active roles. (and even if not, they still likely only care about the end state result)

It would be nice if all three were considered part of the same group as they functionally are the same for all practical purposes. There may be other cases, but I only noticed as the database I stumbled across this group manually. You can't cover all stat lines with just the available Marmots as you'd need 7 total pets. Adding the Brown Prairie Dog into the mix allows spreading the 7 different stat lines over 3 species of battle pet.

Gello
Posts: 433
Joined: January 23rd, 2014
Pet Score: 4238
Realm: Hyjal-US
Contact:

Re: Rematch 4.0

Post by Gello » June 29th, 2020, 6:43 pm

That's an interesting find.

I think the solution is to find a way to represent movesets so the order within an ability slot doesn't matter. Right now it does <ab1>,<ab2>,<ab3>,<ab4>,<ab5>,<ab6>. Maybe it can order <ab1> and <ab4> so the lower abilityID is first and the higher second, and repeat for <ab2>,<ab5>, and <ab3>,<ab6>. My big fear is the performance hit this may cost. It already uses a cached table so an "in filter" speed would not matter; but doing 3 mini sorts on potentially thousands of pets may extend the cpu-bound processing out to uncomfortable levels.

I'll do some testing but I'm open to other ideas.

Sservis
Posts: 5
Joined: October 12th, 2011
Pet Score: 8625
Realm: Mal'Ganis-US
Contact:

Re: Rematch 4.0

Post by Sservis » July 1st, 2020, 6:27 am

There's another variance that the current strategy wouldn't handle. What if slots were switched? ie PetA.ab1 = PetB.ab2, PetA.ab4 = PetB.ab5, PetA.ab2 = PetB.ab1, PetA.ab5 = PetB.ab4. Note that this doesn't happen currently. However there is a second example of switched abilities within the same slot. The Jade Owl should be part of the same group as the Parrot. Here's the full listing of discrepancies based on my analysis. I compared these by calculating all 8 possible ability sets that could be used and then comparing how many matched across all species, looking for any where they had the same ability sets, but there was a difference in ability order.

FirstSpecieID FirstSpecieName SecondSpecieID SecondSpecieName SharedAbilitySetCount
47 Cockatiel 845 Jade Owl 8
49 Hyacinth Macaw 845 Jade Owl 8
50 Green Wing Macaw 845 Jade Owl 8
51 Senegal 845 Jade Owl 8
70 Brown Prairie Dog 449 Brown Marmot 8
70 Brown Prairie Dog 639 Borean Marmot 8
259 Blue Mini Jouster 845 Jade Owl 8
260 Gold Mini Jouster 845 Jade Owl 8
395 Fledgling Buzzard 845 Jade Owl 8
403 Parrot 845 Jade Owl 8
409 Polly 845 Jade Owl 8
537 Dragonbone Hatchling 845 Jade Owl 8

If there were a lot of differences in the Parrot family, then there'd be more records here. ie it'd say that Senegal and Parrot were also different in addition to being different to the Jade Owl. Likewise it's the Brown Prairie Dog that's different from the other Marmots listed, which are themselves the same.

This comparison does not require family to be the same. Rematch currently doesn't do that either, but it or some other mod I'm using also provides a very obvious display of family icon on the same line as pet name. This display makes it obvious that the pets despite being in the same moveset have a difference that might matter, but usually doesn't. ex. Silent Hedgehog is a beast with the same moveset as the Malayan Quillrat/Malayan Quillrat Pup/Porcupette critters. This grouping should be retained as designed as it's preferred most of the time and obvious so that distinctions can be made when warranted.

With only two atypical pets, maybe the best fix would be for Blizzard to switch the ability order and then retain an internal design guidance that "abilities in a pet slot are always assigned in a specific order"

Also knowing that there are only two exceptions, these could be handled as such potentially, although adding a check If SpecieID=X or Y is also a performance hit and uglier methodology too. Alternatively, all movesets could be precomputed and a table referenced. This would have the downside of requiring updates each patch that added pets, but retain or improve efficiency. Edit: This table could likely be dynamically computed once client side each patch (internal version check versus last time computed, button for player to use to update/recalc since it may take a while to compute all of them) Or we can all just remain aware that there are two exceptions to find moveset, the Brown Prairie Dog and the Jade Owl.

User avatar
Mot
Posts: 8
Joined: February 19th, 2018
Pet Score: 9294
Realm: Azjol-Nerub-EU
Contact:

Re: Rematch 4.0

Post by Mot » July 14th, 2020, 1:28 pm

Gello wrote:
June 19th, 2020, 9:36 pm
How about a compromise. This macro will let you switch it more easily:

[…]
This is great, thanks! (Sorry for the late reply; my notification setting was off.)

PS:

Your macro really proved useful. I deleted quite some dupe teams that were only there for accommodating different breeds though the strat was breed-agnostic. With the quick toggle via your macro this is not a problem anymore.

I made a minor adjustment: I switched the colors for the console notification: In my culture region (Germany) Red is semantically tied to “attention”/“danger”, and Green means “OK”/“save”. (Ignoring Breeds is the unsafe setting.)

Thanks again!

– Tom

Post Reply