AutoPBW is a desktop client for PBW used to upload and download game files for Space Empires and other turn-based strategy games supported by the website.
Right now we have a static PBW class which handles interaction with http://pbw.spaceempires.net. We could expand this to allow for multiple classes implementing, e.g. IGameService, loaded via MEF so you can add them via plugins. PBW would just be one implementation of IGameService but we could add others to support other services which might exist now e.g. Giant Multiplayer Robot, Stars! Autohost, and some hypothetical replacement for PBW.
Instead of just on or off, it could be on, prompt first, and off. Some games such as FrEee and THANCS are capable of generating plr files mid-turn and we don't want to automatically upload those. Or maybe prompt first could be an option on the engine settings?
I think those are causing all but the first entry to be skipped as AutoPBW looks for literal spaces in filenames. This might be behind the missing combat replays issue...
The MainWindow.xaml is getting messy and it will be even messier once I add the multi service feature. We need to split each tab off into its own user control.
In the log, or at least in the popup when the mask fails and there are zero files. This will be useful for debugging when you don't know if you have the right file mask.
The lists of games could be saved into a JSON file (maybe the config file) so that they will always be accessible, even when PBW chooses to hide hosted games because they're not in need of processing.
Then we'll need to add the ability to forget/delete a game.
So for instance if the polling interval is 1 hour and you change it to 15 seconds then the next polling time needs to be set no more than 15 seconds from now.
So you can run "custom" versions of a mod that aren't actually registered on PBW. This would apply to both hosted and played games. This could be set up by making the mod column in the game grids a dropdown field that lets you pick from all mods registered for that game engine; you'd then need to manually register the mod on the mods tab before setting it for a game.
For instance, let's say your SE4 gets stuck on an AI error you don't have time to dismiss and in the mean time the game owner goes to manually process a turn - then the autohost will replace it with an obsolete turn! Or you might have turned processing off while the turn is running...
Ideally you could set the app to light, dark, or auto - auto would somehow read your Windows setting for the dark theme. Maybe also timed dark theme between certain hours?
The polling interval right now is hardcoded at 2 minutes, but since hardly anyone uses PBW, it might be nice to have it adjustable to a value as low as maybe 15 seconds. Or you could increase it up to an hour or so if you only play slow games...
Two ways I think - first it won't properly load the game/mod when you try to "play" your "turn", and then you get an error about an empty archive or something when you go to upload the emp...
MAUI is a new UI framework from Microsoft that basically supplants WPF, allowing creation of not only Windows apps, but also Mac, iOS, and Android apps (no Linux for some reason). Imagine an app where you can check on your turns from your phone! Maybe someday we'll have games you can play from your phone using this app?
Right now they're always relative (e.g. 1d12h40m) but some folks might like them to be absolute (e.g. Fri Dec 3, 2:56pm) or even something more colloquial (e.g. tomorrow afternoon).
It doesn't look like Fyron will be fixing the certificates anytime soon so there might as well be an option to just skip the prompt and connect anyway...
Rather than dumping all sorts of data in a grid, we can do a two pane view with a list of games (showing time left and some status icons) on the left, and details for the selected game on the right. And on the right the engine/mod fields could be links to the appropriate configuration pages. Maybe even icons for engines and mods?
Probably this should be optional, in case someone actually likes the grid.