2.9.0 - Sunset
After six months of development, we are proud to announce the release of 2.9! This version includes various new features and internal improvements.
However, with an aging codebase and architecture that is ever increasing in complexity, this will officially be the final major release of Attorney Online 2. AO2 was designed as a backward-compatible remake of the AO1 client, and as such it has been difficult to make room for radically new features. Maintenance updates and minor features will be considered, but future development will be concentrated in Attorney Online 3.
This version also includes recompressed and fixed vanilla files, so it will appear as if it were a new vanilla. We'll consider adding to the character roster in the future independently of a client update, so you'll have to stay tuned for that.
We'll also be working on updating the docs with the new features on this list. You can also consult the linked pull requests next to some of the new features.
Most of the coding effort was undertaken by @Crystalwarrior and @in1tiate. Many thanks to both of them for pulling through, as well as some newcomers who did some real fine work (@caleb-mabry, @skyedeving). With this release, Crystal will be retiring from AO development.
What's New
Demo Recording and Playback
By default, AO preserves your game sessions as demos for playback, sorted by server.
To play back a demo, go to Favorites and click "Demo playback." A dialog will appear to open a demo. Once a demo has been opened, click "Connect." You may choose any character on the character selection screen. Type /play
to start the playback. You can also type /help
for more commands.
If you don't see anything in your server list, check that base/serverlist.txt
exists.
Countdown Timer
10 seconds, MacGyver! BOOM! AO now comes with five real-time countdown timers that can add a sense of urgency to your roleplaying environment. If your version of tsuserver is new enough, you can use the /timer
command to set a global timer as a mod and four area-specific timers as a CM.
(c) animations
The (c) animation was an old planned AO1 feature that allows transitioning from talking to idle. In effect, it acts like a "postanimation." You can use it now.
Character List Sidebar
If you thought that browsing through icons was too much clutter, there is now a list version on the side to help you browse. Character creators can also add a category
option in the char.ini
to categorize this list by source game.
Queued Messaging
Vanilla chaos is over, long live vanilla chaos! In-character chat is now queued with a minimum delay between messages, so all chat can be viewed asynchronously without interruptions between messages (as the server can sometimes send new messages before old ones can be finished).
Reworked Blips
To make blips more faithful to the Ace Attorney games, @Crystalwarrior decided to rework them in such a way that they disregard whitespace in their timing. See #305 for more information and images about what exactly happened. You can also fine-tune the text crawl speed.
Stickers
Characters can now have an additional portrait displayed over the chatbox when they are talking.
To use this feature, place your sticker in a directory named sticker
inside the appropriate misc or theme folder. The sticker image must be named after the folder name of the character, and the image must be the size of the viewport.
Subthemes
You can add a folder inside of a theme that can replace anything inside the existing theme. Subthemes are prioritized over your current theme and work like a third layer of inheritance, so the first layer is default theme, second layer is current theme and the last layer is the subtheme. You can manually force your subtheme using the settings screen, set it to "default" to stop subthemes from changing, or "server" to allow the server to suggest which subtheme to use (meaning you can have themes for day/night cycles, different interfaces between investigation/trial segments, etc.)
For example, the fallback order for courtroom_design.ini
will be as follows:
theme/subtheme/courtroom_design.ini
theme/courtroom_design.ini
default_theme/courtroom_design.ini
Note that subthemes will never fall back to any subthemes belonging to the default theme.
There's also a new packet ST#{subtheme}#{force_reload}#%
that allows the server to suggest a subtheme and reload the theme automatically (if player has the subtheme set to "server").
Theme reparenting
You can specify a new default theme for themes, so instead of falling back to the theme called default
, you can fall back to any theme of your choice. To do this, add a default_theme=
value in courtroom_design.ini
. Note that it is not recursive, so if the default theme you selected has a default_theme=
value as well, it won't fall back a second time, nor will it fall back to default
.
Animated UI Buttons
Animated UI buttons! Gosh, y'all are awful. You can see a sample video of the feature here.
Other Features
Game
- Added scaling overrides for character and effect INIs (can now force sharp or smooth scaling)
- Added stretching overrides for character and effect INIs (can now force stretching/squashing to fill viewport)
- Added ability to override anything in
misc/
with a theme-levelmisc/
folder - Added ability to add additional background positions based on a
design.ini
in the background's folder (see #352) - Added support for HTTP audio sources
- Added Y-offset for pairing
- Added support for non-PNG static emotes (see #276)
- Added shouts to the IC log, as well as an ability to describe custom shouts (see #356)
- Fonts will automatically load from
base/fonts
and its subdirectories at start time - Server can specify custom WT/CE name in packet (SFX name and animation filename are exactly the name provided), and hide the testimony indicator by using
RT#testimony1#1
- Desk mods 2-5 (see #353)
UI
- Changed position dropdown behavior to work as an override that persists across characters; use "X" button to clear the override
- Added "Nothing" option to SFX dropdown
- Added theme option to customize the indentation and animation of the music list
- UI elements are now elided when they are too long
- Added
BB
packet that displays a dialog with a user-defined message - Added three-second reading delay for all dialogs
- Added "Stop Music" button (may not work if server does not have
~stop.mp3
) - Added "[MISSING]" to missing songs in "Now Playing" bar
- Added support for alpha masking to image widgets (useful for UI)
- Restore Defaults and Reload Theme button added to settings screen
Important Changes
~stop.mp3
and the "stop" category are now hidden. To stop music, right click the music list and hit "Stop Music," or use the "Stop Music w/ Category" setting to bring back the ability to double-click categories to "play" them.- Judge button (WT/CE) animations are now suffixed with
_bubble
- Hardcoded stylesheets have been moved into the theme stylesheets. If your theme has no need to override these stylesheets, you should remove the stylesheet files from your theme.
- The
shouts
option inchar.ini
is deprecated; usechat
instead. - The
gender
option inchar.ini
is deprecated; useblips
instead. - Moved user-defined SFX and iniswap lists from character folders to the root base folder (
base/soundlist.ini
,base/iniswaps.ini
) - The button autogenerator now generates both on and off variants of buttons when either one is missing
- Changed log filenames to a more standard/sortable format
- Changed name of "No Interrupt" checkbox to "Immediate"
- Changed "Play Random Song" behavior to only play expanded categories
- Separated IC log colors from chatbox colors (see #323)
- Removed "What's This" button from title bar
- Disabled maximizing and resizing of windows. You'll want to use a tiny theme instead.
- FantaCrypt is no more
Fixes
About 55 fixes (including regressions from previous RCs) included! See previous RCs for more details.
Known Issues
- Animated themes might be causing freezing issues on Linux for large character lists, so disable this first if you are experiencing problems.
- Some custom theme fonts may appear larger than usual. If you run into this issue, grab the fonts inside the theme and put them in
base/fonts
.
Download
Download the full release here. Again, note that vanilla files have changed substantially, so a full download is highly recommended.
An archive containing only the program (without assets) is included below as well.