Rematch 4.0
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
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
Re: Rematch 4.0
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.
Re: Rematch 4.0
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.
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.
Re: Rematch 4.0
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()
Re: Rematch 4.0
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.
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.
Re: Rematch 4.0
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.
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.
Re: Rematch 4.0
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.
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.
Re: Rematch 4.0
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
Re: Rematch 4.0
A version for Shadowlands beta is posted here:
https://www.wowinterface.com/downloads/ ... sBeta.html
This version will not work on BfA (retail) clients. It's also on the curse client flagged for 9.0.1. I don't use the curse client so I'm not sure if it will prevent downloading it to BfA clients. Please let me know if so. (And of course any bugs or odd behavior you see.)
Thanks!
https://www.wowinterface.com/downloads/ ... sBeta.html
This version will not work on BfA (retail) clients. It's also on the curse client flagged for 9.0.1. I don't use the curse client so I'm not sure if it will prevent downloading it to BfA clients. Please let me know if so. (And of course any bugs or odd behavior you see.)
Thanks!
- FuxieDK
- Posts:881
- Joined:July 27th, 2009
- Pet Score:14132
- BattleTag®:FuxieDK#2678
- Realm:Draenor-eu
- Contact:
Re: Rematch 4.0
Just came to report that it doesn't work on retail.. I have to change back to "Release", since both Alpha and Beta installs the ShaLa version.Gello wrote: ↑August 16th, 2020, 8:25 amA version for Shadowlands beta is posted here:
https://www.wowinterface.com/downloads/ ... sBeta.html
This version will not work on BfA (retail) clients. It's also on the curse client flagged for 9.0.1. I don't use the curse client so I'm not sure if it will prevent downloading it to BfA clients. Please let me know if so. (And of course any bugs or odd behavior you see.)
Thanks!
Please don't force us to use Release versions
And LUA errors...
Code: Select all
32x Rematch\Main.lua:84: attempt to index field 'Frame' (a nil value)
[string "@Rematch\Main.lua"]:84: in function `UpdateUI'
[string "@Rematch\Process\Roster.lua"]:99: in function `?'
[string "@Rematch\Process\Roster.lua"]:35: in function <Rematch\Process\Roster.lua:35>
Locals:
self = Rematch {
0 = <userdata>
HideMenu = <function> defined @Rematch\Menus\Menu.lua:298
petInfo = <table> {
}
GetSpecialSlot = <function> defined @Rematch\Process\SpecialSlots.lua:69
PET_BATTLE_QUEUE_STATUS = <function> defined @Rematch\Main.lua:493
GetPetName = <function> defined @Rematch\Utils.lua:74
SidelinePetsDifferentThan = <function> defined @Rematch\Dialogs\Save.lua:134
breedNames = <table> {
}
FillCompactListButton = <function> defined @Rematch\Widgets\PetListButtons.lua:405
PetListButtonOnEnter = <function> defined @Rematch\Widgets\PetListButtons.lua:167
Start = <function> defined @Rematch\Main.lua:155
GetPetIcon = <function> defined @Rematch\Utils.lua:66
ADDON_LOADED = <function> defined @Rematch\Main.lua:656
FindPetFromPetTag = <function> defined @Rematch\Process\PetTag.lua:117
StopTimer = <function> defined @Rematch\Main.lua:682
MinimapButtonOnMouseUp = <function> defined @Rematch\Widgets\MinimapButton.lua:53
UpdatePreferencesDialog = <function> defined @Rematch\Dialogs\Preferences.lua:176
PET_JOURNAL_LIST_UPDATE = <function> defined @Rematch\Main.lua:144
UPDATE_MOUSEOVER_UNIT = <function> defined @Rematch\Main.lua:380
SetFootnoteIcon = <function> defined @Rematch\Main.lua:958
SpecialFootnoteOnClick = <function> defined @Rematch\Process\SpecialSlots.lua:97
SetSpecialSlot = <function> defined @Rematch\Process\SpecialSlots.lua:61
PetListButtonOnDoubleClick = <function> defined @Rematch\Widgets\PetListButtons.lua:248
CreateNpcMenus = <function> defined @Rematch\Menus\Npcs.lua:595
GetTeamStringNameAndNpcID = <function> defined @Rematch\Process\TeamStrings.lua:267
UpdateScriptFilterMenu = <function> defined @Rematch\Menus\PetMenus.lua:707
GetSpecialTooltip = <function> defined @Rematch\Process\SpecialSlots.lua:86
ConvertTitlebarCloseButton = <function> defined @Rematch\Main.lua:921
UpdateShareIncludes = <function> defined @Rematch\Dialogs\Share.lua:126
StableSortQueue = <function> defined @Rematch\Process\QueueProcess.lua:405
SetSaveAsTarget = <function> defined @Rematch\Dialogs\Save.lua:84
MenuButtonOnMouseUp = <function> defined @Rematch\Menus\Menu.lua:384
MenuButtonSetEnabled = <function> defined @Rematch\Menus\Menu.lua:97
PetListButtonOnLoad = <function> defined @Rematch\Widgets\PetListButtons.lua:550
AttemptLegacyStringToSideline = <function> defined @Rematch\Process\TeamStrings.lua:121
IsNotableNPC = <function> defined @Rematch\Menus\Npcs.lua:513
ShowAbilityCard = <function> defined @Rematch\Cards\AbilityCard.lua:16
MaybeSlotNewLevelingPet = <function> defined @Rematch\Process\QueueProcess.lua:317
CheckToOverwriteNotesAndPreferences = <function> defined @Rematch\Dialogs\Save.lua:188
ProcessQueue = <function> defined @Rematch\Process\QueueProcess.lua:79
movesetsAt25 = <table> {
}
ShowTeam = <function> defined @Rematch\Panels\TeamPanel.lua:406
WinRecordOnClick = <function> defined @Rematch\Cards\WinRecord.lua:169
ShowTextureHighlight = <function> defined @Rematch\Widgets\TextureHighlight.lua:32
PreferencesExpectedDDOnClick = <function> defined @Rematch\Dialogs\Preferences.lua:254
RegisterMenu = <function> defined @Rematch\Menus\Menu.lua:32
ConvertStringToSideline = <function> defined @Rematch\Process\TeamStrings.lua:108
GetPrefSetFrom = <function> defined @Rematch\Dialogs\Preferences.lua:96
HandlePetShiftClick = <function
Code: Select all
If version = ShaLa
ShaLa commands
Else
BfA commands
Endif
I've NEVER coded LUA and all my other coding skills are from 2001 and prior, but it would work in C/C++
Re: Rematch 4.0
It's the god damn curse client that's been making me curse a lot the past couple days. Every file I've uploaded to try and replace the shadowlands version has been rejected and they're not responding to my ticket.
In lua it's trivial to handle separate clients in the same codebase. In an addon like Rematch with thousands of lines of xml (which would balloon to many more lines of lua if it didn't use xml), it's unfortunately not that simple due to the backdrop changes in shadowlands. There is no if/else structure in xml. It's purely a markup language.
In lua it's trivial to handle separate clients in the same codebase. In an addon like Rematch with thousands of lines of xml (which would balloon to many more lines of lua if it didn't use xml), it's unfortunately not that simple due to the backdrop changes in shadowlands. There is no if/else structure in xml. It's purely a markup language.
- FuxieDK
- Posts:881
- Joined:July 27th, 2009
- Pet Score:14132
- BattleTag®:FuxieDK#2678
- Realm:Draenor-eu
- Contact:
Re: Rematch 4.0
v4.10.5b is now on Twitch... There is no mention on ShaLa in filename...Gello wrote: ↑August 18th, 2020, 5:56 amIt's the god damn curse client that's been making me curse a lot the past couple days. Every file I've uploaded to try and replace the shadowlands version has been rejected and they're not responding to my ticket.
In lua it's trivial to handle separate clients in the same codebase. In an addon like Rematch with thousands of lines of xml (which would balloon to many more lines of lua if it didn't use xml), it's unfortunately not that simple due to the backdrop changes in shadowlands. There is no if/else structure in xml. It's purely a markup language.
Approved for retail?
Re: Rematch 4.0
4.10.5b is for retail yes they finally deleted the shadowlands one i won't be using curse again for the remainder of the shadowlands beta
Re: Rematch 4.0
A minor, but sometimes annoying thing:
Is there any way we could get rid of that “Cage this Pet?” confirmation dialog when caging pets? Or is this due to some Blizz-Protected API stuff?
I guess, it’s the latter, and you can do nothing about it (?) But in case it is not, let me know, and I can give you some use-cases apt to convince you to remove that confirmation dialog.
– Tom
Is there any way we could get rid of that “Cage this Pet?” confirmation dialog when caging pets? Or is this due to some Blizz-Protected API stuff?
I guess, it’s the latter, and you can do nothing about it (?) But in case it is not, let me know, and I can give you some use-cases apt to convince you to remove that confirmation dialog.
– Tom
Re: Rematch 4.0
That will be trivial to do and should make next update (no ETA yet, working through two more addons before returning focus back to Rematch for Shadowlands).
In the meantime, if you want to cage a ton of pets, you can use this macro on mouseover of pets in both Rematch and the default journal:
In the meantime, if you want to cage a ton of pets, you can use this macro on mouseover of pets in both Rematch and the default journal:
Code: Select all
/run local petID = GetMouseFocus().petID if petID and C_PetJournal.PetIsTradable(petID) then C_PetJournal.CagePetByID(petID) elseif petID then print("Pet is not tradable.") end
Re: Rematch 4.0
> That will be trivial to do and should make next update (no ETA yet […])
Wow, great! No hurry. Also many thanks for the macro, which works perfectly.
Wow, great! No hurry. Also many thanks for the macro, which works perfectly.
Re: Rematch 4.0
A major update has been posted tonight for those in Shadowlands beta/ptr:
https://www.wowinterface.com/downloads/ ... p?id=25653
1) The Options panel now has a search bar. There are now over 100 options so it's about time it was included. The Options Panel has also gone through a bit of a rework to make the collapsed view the principle view of options. If you like the old always-expanded view, there's an option 'Remember Expanded Lists' to restore the old functionality. And an option 'Collapses Lists With ESC Key" for those who want to take the collapsed posture a step further.
2) The Target button now summons a scrollable list of targets grouped by "expansion" and "map". (There are over 300 targets now and that context menu was getting ridiculous.) For those who don't like the new target panel, there's an option called 'Use Old Target Button Menu' to "restore" the old context menu targeting style. But please let me know what you didn't like about it.
I feel the new target panel could use some refinement, but it's been my plan to do this for some time and I'm reasonably happy with how it turned out. If it proves successful, I may do the same for the Teams panel too. In addition to allowing more groupings within a tab rather than attaching 64 tabs to the side of the window, this will solve an old issue of how to represent teams with more than one target (or vice versa) in the UI. In a collapsed view you see the topmost team/target, and expanding it would list the alternate teams/targets beneath it. Again, I think it could use some refinement. I don't want things to be buried behind too many clicks. Let me know what you think.
https://www.wowinterface.com/downloads/ ... p?id=25653
1) The Options panel now has a search bar. There are now over 100 options so it's about time it was included. The Options Panel has also gone through a bit of a rework to make the collapsed view the principle view of options. If you like the old always-expanded view, there's an option 'Remember Expanded Lists' to restore the old functionality. And an option 'Collapses Lists With ESC Key" for those who want to take the collapsed posture a step further.
2) The Target button now summons a scrollable list of targets grouped by "expansion" and "map". (There are over 300 targets now and that context menu was getting ridiculous.) For those who don't like the new target panel, there's an option called 'Use Old Target Button Menu' to "restore" the old context menu targeting style. But please let me know what you didn't like about it.
I feel the new target panel could use some refinement, but it's been my plan to do this for some time and I'm reasonably happy with how it turned out. If it proves successful, I may do the same for the Teams panel too. In addition to allowing more groupings within a tab rather than attaching 64 tabs to the side of the window, this will solve an old issue of how to represent teams with more than one target (or vice versa) in the UI. In a collapsed view you see the topmost team/target, and expanding it would list the alternate teams/targets beneath it. Again, I think it could use some refinement. I don't want things to be buried behind too many clicks. Let me know what you think.
Re: Rematch 4.0
Are there any issues with the “Allow any version” setting? Asking because for me it doesn’t work anymore.
[I had written up a complete issue description into the form, but it got deleted as I hit some wrong button. Stupid me, that I haven’t written it in my draft app before – and also darn stupid outdated webpage]
So, if you need more info, just let me know. I’ll post it again then.
[I had written up a complete issue description into the form, but it got deleted as I hit some wrong button. Stupid me, that I haven’t written it in my draft app before – and also darn stupid outdated webpage]
So, if you need more info, just let me know. I’ll post it again then.
Re: Rematch 4.0
I just tested and it seems to be working. Can you give a summary of the issue?
Re: Rematch 4.0
Hm, yes, today against Sir Galveston with HS and SS Surgers it worked again perfectly.
The issue was yesterday against Amalia with differently breeded Starlettes. I double-checked the setting several times and I reloaded the UI several times, and —if memory doesn’t fool me— after one reload it worked fine again, but not after other reloads. I used Starlettes as carry (battle) pet and another one as leveler at the same time in these fights; maybe this had something to do with it.
So, for the moment just forget it. I’ll report back if I can reproduce it again. Sorry for the noise.
– Tom
The issue was yesterday against Amalia with differently breeded Starlettes. I double-checked the setting several times and I reloaded the UI several times, and —if memory doesn’t fool me— after one reload it worked fine again, but not after other reloads. I used Starlettes as carry (battle) pet and another one as leveler at the same time in these fights; maybe this had something to do with it.
So, for the moment just forget it. I’ll report back if I can reproduce it again. Sorry for the noise.
– Tom