Astra Imperia Aide, or AI Aide

After a couple of years of procrastination, I am back working on this. I’ll post the current changelog a bit later in the post. Overall, I’ve completed the Log Viewer functionality.

It will now email me logs on command from the user. The selected log may also be copied to the clipboard. Some work on the research window has been done, mostly organizational.

Master Research List

As you can see from the screenshot, the projects are now organized by field instead of just a giant list. This should decrease the amount of scrolling.

Next up, the Economics window.

Economics window

When launched, the Economics screen defaults to the Colonies tab. This will display a tree list of colonies, based on classification. Other tabs are Facilities, Personalities, Teams, Tactical Intelligence, and Strategic Intelligence.

Regarding personalities, there is a console command to generate a random personality. This personality won’t appear in the Personality tab at the moment.

Personalities tab

As you see here, the name generation procedure has also been beefed up to handle multiple names via spaces, and to handle apostrophes. As of yet, the save function does not work.

Teams tab

The Teams tab allows teams to be created, but not yet saved. The Team Leader drop list will eventually be populated with personalities from the database. The rating is randomly generated.

The Ledger tab:

Ledger tab

This is a very rough early draft of the ledger tab. The columns should be self-explanatory. The date/time are when the associated transaction takes place in game time. Item is a description of the transaction, and the cost is how much it costs. The button in the Update Row column will allow editing of the entry. This will probably be gated behind the SM mode eventually.

Finally, the Launcher.

Launcher

This has been the biggest headache so far but is now progressing nicely. The space on the left is a web browser and will show rich-content based on what’s new. Currently, it downloads a file “update.html” which is a simple HTML port of the news file. Which is displayed in the rich-text box on the lower right. Directly above that is a progress bar which will advance based on the download progress. In the upper right is the status output. This will show what is going on as the launcher does its work. I don’t rightly recall what the box on the lower right is for. I’ll figure a use for it or delete it.

Going forward once the launcher is complete, the Aide will be able to be launched either by the launcher or the main executable. The launcher will notify the user if there is an update and ask if it should be installed. If the reply is no, then it falls through to the AI_Aide executable. If the program is launched via the main executable, it won’t be updated, which will maintain the current game(s) in progress but won’t fix anything that the update addresses.

If there is a database update, the launcher will execute the updated files and this will most likely result in loss of current game.

Next step for the launcher is to download the manifest, compare it to the local files, download updated files, and replace the local copies with new files.

Changelog:

1823:

Global Changes

  • Updated build version to 1823
  • Updated to .NET 4.6
  • Changed voice response to ASync.

Database Changes

  • Added Personalities table
  • Added DROP Statements to SQL statements.
  • Added Teams table.

Specific Changes

AICore_Race.dll (0.1.1.1823)

  • Added a default pattern for the random name generator.
  • Added handling for a space in the name. This would allow for
  • multiple names (i.e. Given Name + Surname)
  • Added handling for an apostrophe in the name.
  • Changed capitalization of names to handle multiple name parts
  • Finished localization of the race form.

AICore_Data.dll (0.1.1.1823)

  • Fixed some datatype errors in crudRaces
  • Added crudPersonalities to handle Personalities table
  • Added crudTeams to handle Teams table.

AI_Aide.exe (0.1.2.1823)

  • Added support for command-line arguments. Currently only
  • supports -debug: on/off.
  • View Logs now fully functional. Send email logs works.
  • The default location for zipped files set to “Zips”
  • Creation of default folders (Zips, Database, Logs) performed as
  • part of the initialization process if the folders are not present.
  • Fixed error with Options not saving in Program Options.
  • Added a pause when using the “EXIT” console command to prevent error.
  • Hardened the REPT command.
  • Added PERS command. This calls the create personality routine. The display is for verification and debugging purposes, none of the info is saved.
  • Alarm check added.
  • Added LSTP command. This lists personalities created with PERS. The list does not persist between sessions.
  • Added CLRP command. This clears the in-memory personality list.
  • Added start of Teams tab on the Economics screen.
  • Added Ledger tab to the Economics screen.
  • Teams can be saved now. I still need to link the Leader droplist with the personalities.
  • Personalities age every year. (TODO: add a birthday to the personality, have them age on that date.)
    Personalities will check for retirement at 60+. Chance is 1% cumulative per year over 60.
  • Personalities have a birthdate equal to game date they are created. They age on that day.
  • Fixed bug causing lockup on program options save.

New Features

TODO:
Check versions and update (AICore_Launcher)
Localize text fields (AICore_Race)
Show Component Design Window (AICore_Research)
Read table for specified system ID and fill the form (AICore_System)
Account for user preference when determining minerals (AICore_System)
Read the database for colonies (AI_Aide)
Figure out how to validate database integrity.
Fix orbit grid from resetting when adding an orbit in custom systems (AICore_System)
Expand voice responses.

WISHLIST:
Manually edit/enter system info.
Create Sol system.

Bugs:
On a new game creating a new system, the last stellar component overwrites the rest.