- Swap sections: Getting started and Design
List of things we can improves, but won't.
-
Create standalone app.
super-scoreboard-win62.exe
-
Refactor: KShellUtilities
-
Refactor: Remove JNativeHook and json-path.
-
Refactor: Rewrite KSpell/KSpellTimer and make sure it doesn't paint weirdly
-
UX: Maybe don't hide the window, but hide the KScoreboard?
-
Add App.DEBUG flag
-
Tray: Change "Timer template: Remaining" to "Timer format: Remaining (-SSS)".
-
Get rid of
LcuService
. The only info we are extracting from LCU Gameflow Session isgameId
, which we aren't using, really. We can get the rest from LiveClientData (mainly spell codenames and champion codenames).
Although, we can still use it to make the app more push-y instead of pull-y. -
Stats (namely
COSMIC_HASTE
andLUCIDS_HASTE
) should not be hard-coded even if they hardly ever change.- Like, check Patch History section of Lucids. The last time its stats were changed was over 2 years ago (v11.1, January 6th, 2021).
- Item (and rune) stats are not easy to access. We need to parse the template text of their descriptions, which might change. If we can't make it future-proof, why bother?
-
Are participants getting automatically reordered?
- Fixable.
- IIRC, we only refresh participants when recording a new summ usage.
-
We need to retry getting minor runes (e.g. from
OpggService
). If we try to get them as soon as the game starts, we won't get a response. -
SmartClientChecker: Just use Semaphores. Fuck locks and conditions. There is only one thread anyways... or two: looper and the WS thread itself.
-
In local data sources (e.g.
LiveClientDataService
), consider making timeouts (connection and request for example) super small since we are working locally anyways. -
To detect when the Game Client is visible (meaning: running and in the foreground), we can use a pull-based approach using WinAPI hooks:
-
Create (or find a component/layout),
KSection
, that behaves like CSSbox-sizing: border-box;
.- Makes the GUI easier to program.
-
Resize the text to fit a container
-
Place the text in the center
-
Java Swing: Draw text with outline (to make it easier to read.)
-
Handle the case where the scoreboard is mirrored.
- Can we know whether the scoreboard is mirrored?
Yes, by reading (or watching) the config file
game.cfg
:
[HUD] MirroredScoreboard=0
- Can we know whether the scoreboard is mirrored?
Yes, by reading (or watching) the config file
-
Make it work on diff screen resolutions.
-
Make it work in fullscreen mode. See joverlay.md