Skip to content

OpenAC v0.1.13

Choose a tag to compare

@github-actions github-actions released this 21 Sep 13:45
· 268 commits to main since this release
fbade8d

Plugins move out of the client

OpenAC now has a plugin manager, and the client no longer ships with a plugin inside it.

  • Launcher, Plugins tab: browse the plugin list, install, update and remove plugins, or add one from any GitHub repository with Add from URL. Every plugin says what it does (network, chat, input) before you install it, and is installed switched off until you enable it per character (#148, #155, @shaneedwards)
  • MossTank is now its own plugin, in its own repository. If you use MossTank, install it from the Plugins tab after this update — it is no longer part of the client. Your profiles, routes and loot files are kept
  • Plugin authors: the plugin API is published as a package attached to every release (AcDream.Plugin.Abstractions.<version>.nupkg), so a plugin builds in its own repository without the client's sources. acdream-plugincheck tells you whether the launcher would install your release. See the plugin development guide

Headless and windowed are now the same client for a plugin

Until now a bot could work in the window and fail without one, or the other way round. Everything a plugin can see or do is now one implementation that both clients share, and the build fails if one client gets something the other lacks. A suite runs both clients side by side through the same scenarios and compares every answer.

  • Movement: a headless character runs at the same speed (it was about 12 % slower), turns, walks to an object and uses it, and follows a moving creature exactly as the windowed one does
  • Combat: the same swing timing and power bar on both; an attack aimed by a plugin never falls back to "closest hostile"
  • Items and loot: picking up from a corpse, opening a chest in the world, using an item that is out of reach, stack merging into a full pack; "busy" and "refused" are answered truthfully instead of "started" with nothing sent
  • World state: one answer to "where is that creature now" (its body, not the server's last word), the same events in the same order, the same selection and contract data
  • Timing: plugins tick on one fixed 15 ms clock on both clients, independent of frame rate
  • Sessions: one session file format for both; plugin settings, tags and character options apply the same way; per-character plugin settings work headless too
  • Status file: a session can no longer be silenced by another process reading its status file
  • Proven live: MossTank ran ten-minute sessions on each client on the same route. Both fought, looted, buffed, healed and walked the whole route with no deaths and no faults, and damage per hit and loot times matched

MossTank

MossTank left the client and became its own plugin. A major update, released there as 0.2.2: MossTank now works with UCM, melee, casting and missile.

  • Proven at normal character stats: melee, looting, buffing, healing and worn-item mana in one unattended run. Missile and magic were tested by hand
  • All options wired and tested (about 120 new tests); the one option nothing used is gone
  • Mana items are drained the moment they are looted; a refused pickup gives up the item, not the whole corpse; a full pack still takes what stacks
  • One profile per character: a relog no longer loads a blank profile, and files are kept under mosstank\profiles, navs, metas and loot
  • It says why: "Not attacking Drudge: no usable attack spell (Flame Bolt VII and 6 lower: missing components)" instead of standing still
  • No more freeze after a kill with the next shot half charged; "Don't Shoot at Walls" now really checks the path, and never blocks casting when it cannot
  • The window title shows the real version

Still to come: metas are the big missing piece, some features are still lacking, and it needs more testing. Reports are welcome in its repository.

Plugin API

  • New from @johanlundberg: world interaction and semantic state, activation results, recall and portal tracking with stale-data guards (#156), revisioned navigation events (#140), clickable chat coordinates routed to plugins (#141), contract and navigation reliability tests (#149, #150, #151)
  • Projectiles.EvaluatePath ("would this shot get there?") really answers, identically on both clients. It answered "unavailable" everywhere before
  • A plugin text box follows its value: a setting loaded after the window was built is shown, and onchange only reports what the player types
  • acdream-plugincheck checks a plugin release the way the launcher will install it

Fixed

  • Login commands: the first command was lost when it was one the server carries out (a say, an @ command). The list now waits until the server is listening, on both clients
  • Mana cost on a magic item read "1 point per -20 seconds" (#143, @AluvianBorderPatrol)
  • Fellowship, patron, vassal and allegiance chat read "[ch 2048]"; each channel has its own wording again (#142, @AluvianBorderPatrol)
  • "Innate" attributes on the Character Information page showed buffed numbers (#144, @AluvianBorderPatrol)
  • Ammunition count on the combat button was small and centred; it uses its own font at the foot of the button (#145, @AluvianBorderPatrol)
  • An item held over a full pack, or a focus, showed the green arrow instead of the refusal (#146, @AluvianBorderPatrol)
  • Experience to the next level read 0 at the top level (#137)
  • Another player's weapon could vanish after you teleported, and an old weapon stayed after a swap
  • A completely full pack refused a stackable item that only needed to join a stack
  • Linux: the data preparation's free-space check failed on separate mounts (#153, @johanlundberg)

For testers

A second release train: vX.Y.Z-dev.N builds from the dev branch are pre-releases that players are never offered. See "Testing a pre-release" in the launcher guide (#161).

Contributors

@johanlundberg, @shaneedwards, @AluvianBorderPatrol

Windows: download launcher-win-x64.zip, unzip it anywhere, and run acdream-launcher.exe.
Linux: download launcher-linux-x64.zip, unzip it anywhere, and run ./acdream-launcher.
macOS (Apple silicon): download launcher-osx-arm64.zip, unzip it, drag OpenAC.app to ~/Applications, then open it in Finder.
macOS (Intel): download launcher-osx-x64.zip, unzip it, drag OpenAC.app to ~/Applications, then open it in Finder.
The launcher installs the client, prepares your data files, and keeps itself and the client up to date.

The client-*.zip files are the bare client and headless host for people who do not want the launcher.

Full Changelog: v0.1.12...v0.1.13