Sandcastle-Builder
Sandcastle-Builder copied to clipboard
Notification Improvements
Need to make the system smarter so that identical or similar messages can be combined. E.g. "Blitzing x 6" or something like that. (Would need to find message still in view and move it back down.) Need to combine multiple glass messages like is done for multiple castle messages.
Or just rewrite notifications entirely: the 'float up from the bottom' thing isn't really all that good.
Wow it's been 3 months since I first made an issue about improving notifications!
Here's my latest thoughts:
There's a few different types of information it needs to handle. First, there's alerts about important events and changes. These will probably need to be kept in an alerts list where they can be read and dismissed. Second, there's common stuff which happens a lot which doesn't really need to be retained. Stuff like +castles, or buying tools or other stuff. It'll also include buying/spending all the resources (so it'll be implemented generally, at the Molpy.Add() and Molpy.Spend() level). These'll probably need to be less intrusive and easy to switch on/off. Third, there's reports. These'll be detailed information about everything that happened in an ONG, or a Factory Automation run, or of the losses of Judgement Dip for the current NP, or what's been given out by Qubes in the current NP, or perhaps everything that's been unlocked/bought in the current NP. (Or in previous NPs in the current session - a tree view would be nice so you can expand the bits you want).
My thoughts on this one:
- Have logs separated by NP, with some way to manually switch views to older NPs aswell as an indicator when the current NP has new logs.
- Timestamps must be recorded and shown for all logs. Not much explaining to do here, it just has to happen.
- Have a filter system where you can toggle the visibility of various log types. Obviously, any hidden logs will continue being recorded, they're just not visible at that time. Example groups could be 'buying boosts', or 'buying/selling tools', etc.
- Literally ALL logs should have headlines, ie a short single-line explanation of what happened. I think these headlines should also be what's added as a notification (ie the msgs that popup from the bottom of the page, sliding upwards). These headlines can then be clicked in the log view to somehow expand and show a very detailed description with standardised layout. Some examples include: what event happened, what boosts were bought/sold/upgraded/whatever, what resources were spent, and what caused this event.
- An exception to the above would be when for example you open a Locked Crate. This is a big event which can trigger multiple other events at once. While these should be grouped under the event 'Locked Crate opened', some of these are important enough to also be shown without specifically clicking the log (examples include DORD, especially ASHF, and Temporal Rift).
- Grouping should only be done for those logs with the exact same headline, and only if they immediately follow each other in the logs. In the case of grouping any numbers are added, for example two Blast Furnace runs will be grouped and given one Castles earned stat, which is the combined total Castles earned. Special cases include Blitzing, which should probably only mention the most recent Blitzing's % and duration.
- Several temporary boosts exist, such as ASHF, Blitzing, and Temporal Rift/Duplication. While they're all shown in a Tool tab at the bottom, this isn't the ideal way to keep track of their countdowns. Instead the relevant log could be highlighted while the temporary boost is active, complete with a countdown to show you the duration left.
Well that was quite a list of features I think. These changes sould help standardise and clarify the information shown in the log, aswell as make the log much easier to use.
I'd love to hear what others think of all of the above. To me, this seems like a nice project to work on, and I'd be happy to do it. However, since there is quite a bit of interaction with the ability to choose an NP, expand logs, and the handling of temporary boosts, I'm not entirely sure how far I can even go in terms of visuals, without breaking from the current 'design', if I can even call it that. ;)
That all sounds pretty good and generally accords with my own thoughts on the matter (and fleshes out some details I hadn't yet considered).
These three changes handle everything that gets put into a log.
Still remaining is figuring out what to do with the vertical scrolling notification. It feels awkward on how it works, usually with text being a little slow.
the 'float up from the bottom' thing isn't really all that good.
yes let's please find something tidier and more usable
This is a little late, and I may have done it incorrectly, but in my fork of SB, I added an option to not draw notifications (they should still get pushed to the log). Note that this prevents the notification counter from going up, though this is easy to change.
Edit: I should also mention that I'm planning on fixing the notification/log system so it groups identical messages.
Further Edit: I think I got it. I can't test it, though.
It's not too late :D