Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Random mount per group of similar mounts #86

Open
alecgerona opened this issue Feb 28, 2022 · 7 comments
Open

Random mount per group of similar mounts #86

alecgerona opened this issue Feb 28, 2022 · 7 comments

Comments

@alecgerona
Copy link

So as with most WoW players I reckon that they often have multiples of the common mounts such as different colored steeds, turtles, or elekks. It would be nice to have an option to group certain mounts together and randomly pick one of each group.

Can make a PR if welcome.

@mbattersby
Copy link
Collaborator

Hi,

I'm afraid I don't really understand how this feature would work from your description.

Can you explain what the option would be called, where it would be set and what effect it would have or how it would be activated?

Thanks, and happy adventuring, X.

@alecgerona
Copy link
Author

Hi, thanks for replying. It could be implemented like this:

  1. Each mount can be added to a group.
  2. Each group would have its own probability level. (0-4)
  3. Each group would have its own strategy (round robin, random, specific)
  4. Each group would just be counted as one mount when Litemount checks for probability so each mount or mount group gets equal chances (e.g. assuming everything is 1)

I understand this can be complex. Happy to hear your thoughts. My main use case for this is that I have lots of mounts that Litemount doesn't pick because I have multitudes of similar mounts with different colors. So usually Litemount almost always chooses a turtle since I have like 8 of those or steeds. My current work around for this is to set the other turtles/steeds to 0 so it will only choose one turtle or one steed but this means I would have to pick one. FIrst world problem I know.

@mbattersby
Copy link
Collaborator

Hi, thanks for your excellent clarification. I don't have any news but I wanted to respond and say I haven't forgotten you, I've just been super busy with RL and haven't had a chance to think about it yet. I hope to have some time next week.

@alecgerona
Copy link
Author

Thanks man! Would love to discuss this more with you.

@mbattersby
Copy link
Collaborator

Hi, I've had time to start thinking about this but I'm not sure where I'm at yet. Here's a thought dump on day one, which probably sounds quite negative but don't take it that way it's just me thinking. I have to weigh dev time against what else I could be doing, and also against whether this is going to make LiteMount too hard to maintain when the next xpac comes out, or the one after.

Yes, this is pretty complicated. But I always say that and then sometimes 2 days later it's in a release.

So LiteMount already classifies mounts by Family, which is something I (foolishly) maintain myself and isn't used much. Maybe the families need some fixing but I did the best I could. My first inclination is more towards a "group mounts in the same family" for priority rather than allowing prioritizing arbitrary groups.

Second problem is the Rules, and how anything like this would interact with them. So far how I imagine it really only works ignoring Rules completely, as they can choose sets of mounts themselves. I think I'm heavily invested into Rules now and the most advanced users really like them, so how this interacts with Rules would be quite important. Also with priority, I guess. The weighted random code was a massive pain to get right to a point it did what people expected.

Most people who use LiteMount have a lot of mounts, at least 200 and in many cases 500+. if the feature is "I grouped these 4 hippos together and gave them a priority ignoring everything else" I don't think you'd even notice the effect. Surprisingly, most people who use LiteMount don't change many or any settings at all. The Groups and Rules are pretty niche. The number of people who would be prepared to group all their mounts for prioritizing is probably either 1 (you) or 0 (not even you).

UI is always the sticking point for everything. UI programming sucks and UI designing sucks. By far the most common complaint I get from people is the UI even as-is doesn't make sense to them. A great many people, maybe most people, want to install LiteMount and just have it do cool stuff without changing anything at all. I'm not sure what the UI would be for prioritizing groups or families, my awful gut feeling is that whatever I try to do it'll just make people more confused, more angry and less likely to use LiteMount.

One possibility is just a tickbox "use highest family priority" and then it picks the max priority from the mounts in a family. That would be confusing to people if they knew how it works, but they probably wont and it will probably do the right thing without them having to understand it.

I definitely don't see each group having it's own strategy (point 3). That is just too much effort and UI confusion for not enough payoff. There could be some kind of global round robin vs random option, which is still hard to know how it would interact with priority weighting. I don't really want to have double/triple roll systems, because it gets kind of slow creating all these lua lists of hundreds of mounts on button press. I don't want mounting up to cause a 1/4 second lag spike.

I've always been inclined more to keeping mount-up counts rather than round robin lists, and then giving more weight (or something) to mounts with lower counts. That has the big advantage of if you get a new mount you'll get it a lot for a while, which is nice.
What happens if you put a mount in multiple groups and give them different priorities?

What happens if you put a mount into a round-robin group but then a higher priority rule or group summons it? Is it expected to go to the back of the round robin for all the groups its in?

So that's my brain dump for now, don't expect you to answer or have answers. I absolutely encourage you to code up stuff if you want to try it out, that's really the only way to know what works and what's hard. But, fair warning" even though I'd love to see your code there's probably no chance I'd merge a PR with this level of functionality. I still tend to want to write stuff myself so I can maintain it, since that's what I'm signed up for, so I would probably merge into a branch (or checkout your clone) and steal all your ideas (with credit).

Feel free to tell me where you think I'm being stupid, I will not be offended (though that doesn't mean I will agree with you :)).

I think the TL;DR for all this is, it's definitely a neat idea and seems intuitive, but there's definitely a lot of messy corner cases and details that make it unclear if the payoff is worth it.

@alecgerona
Copy link
Author

Thanks for that amazing brain dump. This is amazing. On my end I'm going to try and look into these rules and families thing a bit and see if I can't make it work with that alone.

I see your point on the UI though. Are you planning a rewrite on it or something?

@mbattersby
Copy link
Collaborator

mbattersby commented Mar 12, 2022

No worries, I'll reply again when I've had time to turn it around in my brain. I regret I'm not a very structured developer, I just kind of dump all that out and then I spend ages staring at the UI or the code hoping a good idea occurs in the background.

I don't think I have time to rewrite the UI, and I think that would probably annoy people. [Edit] I'm reasonably happy with the groups/rules stuff which I did recently, and even though it confuses some people I can't think of any way it could be simpler and still as powerful. I always figure if people can make WeakAuras work, I have nothing to worry about,

I might redo or rethink the Mounts panel at some point. Most of how it's designed is still a left-over from before there was a Mount Journal and the needs were very different in those days. I tend to think most people probably only want "also use this flying mount on the ground", but I'm sure there's a lot of unexpected uses of setting the mount flags weirdly that I'm not aware of.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants