Open psbj opened 1 year ago
This is trickier than it sounds, because LiteMount is not fundamentally group based in how mounts are chosen. People can make groups and rules and then that's combined with what mount type is best for the current situation and the priority.
Shuffling is easy (assuming it's ok to use the memory required for all those decks). Knowing what to put in the deck, what to attach it to and when to reshuffle is the problem. The rules interface makes it look simpler than it is, because it seems like you can only choose one group for an action, but actually behind the scenes (and if you use the advanced interface or the default actions) you can combine multiple together dynamically.
Take the simplest case. Ignore groups, it takes all of your mounts and shuffles them and gives each one a number from 1 to 900 which is the priority in which they'll be summoned. In theory once you've summoned all 900 mounts it reshuffles and goes again. But you have a rule that says, choose one of these three mounts when I'm in town. So you activate in town three times and all three are removed from the deck. Then you go out of town and it summons a different mount. Now you go back into town, and there are no mounts matching the rule in the deck any more. Do you reshuffle all the mounts, breaking the "do not repeat" for everything else? Or if not, what?
So (maybe) that approach doesn't work. And maybe no approach works with priorities anyway. What if you had one of the three mounts set to priority 3 (high) and the other two set to priority 1 (low). Would you still expect to never get the same mount twice?
I guess the summary is, in a simpler random mount addon without priorities and everything just "ground mount this group, flying mount this group, etc." it would be easy. In LiteMount it's hard, and I haven't had any good idea about how all these things would work together.
Also I don't really have this problem because I have 600 mounts. :)
I think the only sensible way to do this is keep some persistent per-rule state with a record of the mounts the rule has summoned, and subtract them from the available set until ... not sure. The set after the subtraction is empty? Needs some thought about how it all interacts with what's usable now.
I checked the wiki and issues but don't see any info about this. I'd like a way to have LiteMount shuffle and cycle through the mounts in a group without repeating, then reshuffle and go again.
If that doesn't make sense, let me explain in detail. I have a group for ground mounts. I have a rule set so if I'm in a non-flyable area it will randomly select a mount from the ground group I made. Because the group only has a couple mounts in it, a lot of the time the mounts get repeated multiple times in a row which of course makes sense but isn't desirable. I'm hoping for a setting so if my group has mounts A/B/C, it will be shuffled upon logging in so the order of summoning will be B/A/C, and once all three have been summoned once, it will shuffle again to say C/B/A and cycle through again and keep going.
If this is added, each mount is used at least once before repeating which will bring more variety to the mounts uses see.
Thank you for the great addon!