Feature: Splicing Lootrun Paths
Kepler-17c opened this issue ยท 15 comments
While it's already possible to undo recent edits, it's currently not possible to take out a segment and redo only a specific part of an otherwise completed lootrun. This may be necessary due to map changes or newly discovered chests close to the path.
Proposed command: /lootrun edit splice <start/stop>
It would work similar to /lootrun undo
, which might be changed to /lootrun edit undo
to group actions properly.
Here's how this would play out step-by-step:
- go to where you want to start the edit and run
/lootrun edit splice start
- from there you just record the new segment normally
- once you reach the main path, run
/lootrun edit splice stop
- now the segment on the main path between the points is removed and replaced with the new recording
Sounds like a nice idea, but might be difficult to implement.
Also, when discussing editing existing lootruns, while completely different, one thing I have often missed is the ability to add a chest to an existing lootrun (maybe it was not present when the lootrun was recorded). This might be easier to start with, as an exercise for editing existing lootruns...
Adding chests via coords is already possible, but you can't save the edited lootrun under the same name i.e. overwriting the old file.
So adding the option to "force write" could be added with this as well.
I was thinking more like adding chests when opening them, while following a lootrun. Like how chests are added when you record a lootrun.
Commands for that could be /lootrun edit chests remove
(removes the closest entry) and /lootrun edit chests add
(adds the next chest you open - detecting the closest chest probably won't work properly due to non-loot-chest chests that are placed in the world).
Another improvement I've been thinking about, but that will definitely be much harder, would be a "lootrun averaging path". That is, if you make a lootrun once, you are unlikely to get a good and efficient path. Next time you run it, you can see your previous attempt and make a smoother run. I usually record the same lootrun multiple times, until I get an efficient run. But while the quality improves drastically from attempt 1 to attempt 2 (like just searching around to somewhat resembling a run), for every subsequent attempt the quality raises more and more slowly, since I am prone to adding just as much stumbling and mistakes as I am removing.
So a way to create an average path between a handful of lootruns would be something I'd really like to have. Unfortunately, it is a mathematically hard problem. :( I've been thinking a bit about it but basically decided it was too tough to start working on.
Or maybe just a "/lootrun improve" at the start, which makes any additional chests you open be added, just like during a lootrun record?
Or maybe just a "/lootrun improve" at the start
I also like the idea of having a toggle command, though I'd like to group it under /lootrun edit
Another improvement [...] would be a "lootrun averaging path".
I think I have a pretty good strategy:
- calculate length of all paths
- select a fine enough relative sub-division as sample rate
- re-sample each path based on that rate
- now averaging is trivial (maybe with custom weights or presets to favour more recent paths)
@magicus actually this was something I was kind of worried about, I'm thinking to try and implement it first and to test this kind situation, and to see if there's something I can do specifically about that, idk how often that would occur and it would require more testing to really know.
regarding the new update, pre update lootrunning just doesn't give nearly as many items, (this is going to be a massive oversimplification) there's also the lootrunning system added from the update which is where you would run between challenges marked out by a few beacons(which are randomly chosen every time you complete a challenge.) and you have to like complete challenges to get "pulls" on a final reward chest, if I'm not mistaken, most of the profit from that is from the end reward pulls.
the thing about the challenges is that there aren't actually that many challenges for the 2 regions that you can currently lootrun, it might work to store connections between the possible points where a challenge can be placed to basically load a few paths to connect the challenge the player just completed to all of the new challenges.
slight issue is that beacons that mark out the challenges are like quest markers without the coordinate info, so idk how to know which one it's pointing to and sometimes there might be ambiguity between 2 challenge locations because of where the player is.
my current idea is to maybe try storing the paths between challenges as a directed graph and to use a pathfinding algorithm to find the shortest path between the beacon and player.
TLDR: while it's no longer following the same path for lootruns, there's only so many paths and it's not unreasonable to generate paths between where the player is and the possible next beacon locations based on previous runs.
for now I'm going to first test if it's possible to accurately calculate the coordinate info of the challenge locations based on the beacons.
(side note: the update has caused mythic prices to plummet)
I see, thanks for the advice, I'll check, I guess it would be nice to start with trying to implement something relatively simple, like some beacon locating features as the current lootrun beacons functioning like quest markers has been... fun to deal with when lootrunning (yk fun as in being unable to find sometimes because behind blocks, made worse by no coordinates).
There were a long standing draft PR about adding some kind of "sat nav" functionality to Wynntils, but it ended up being just too complex. Your idea sounds worryingly similar. You might want to go and dig in the history of closed PRs to check what was done, and to get a grip on the sheer complexity of the project before embarking on that journey...
(side note: the update has caused mythic prices to plummet)
Oh, interesting. I should perhaps go and check the trade market then. :)
I have actually tried to do something like this before, my suggestion is to try storing paths between chests individually, and bundle them together to construct a lootrun, we can get the shortest path between the start and end for each one of these subsections, assuming both paths follow the same order of accessing chests, and select the shorter subsection for each connection between chests.
(just my janky idea tho, I'll try implementing it.)
@geekazodium Interesting idea. I can see how the devil is in the details, though. For instance, at one run you pass the chest on left side, on the other on the right side.
Also, how relevant are lootrun paths with the new 2.0.3 update? I have only been coding Wynntils and have not really been playing it, but my understanding was that they wanted to kill pre-planned follow-the-same-path lootruns.
I found it. It was @Kepler-17c who worked on it for Legacy: #358