Skip to content

Latest commit

 

History

66 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Boonkeeper

How much buff room is left on the people you are about to heal.

World of Warcraft Classic Era holds 32 buffs on a player. Past that, the oldest one falls off — which is how a reflex Renew costs somebody the Rallying Cry they spent an evening collecting. There is no way to see that coming in the default UI, and counting a raider's buff icons mid-fight is not a thing anyone has time for.

Boonkeeper puts the number where you are already looking, before you cast.

  • A live slot count on the units you heal — 28/32 — so "is there room" is a glance, not a count.
  • Louder as it gets tighter, with the count always present for eligible players.
  • Knows what's actually at stake. A world buff near the cap is a different warning from a full bar of flasks. A raider who has stored their buffs in a Chronoboon is safe, and is told so.
  • Never guesses. If the client will not show us a unit's auras, Boonkeeper shows ? — not a number it cannot stand behind.
  • Always answers for eligible players. Group members carry their count even when they have plenty of room. A stranger's nameplate stays quiet; targeting or hovering them gives the honest ?.

Status

0.2.1 — a self-test reliability fix on top of 0.2.0. Classic Era only.

What is built and running: the slot count on the target frame, on the mouseover tooltip and over friendly nameplates, each following the person as buffs land and drop; the colour escalation, the world-buff and Chronoboon awareness, the cast warning, the broker entry, and an options tab that switches each of those off. The deciding lives in pure Lua and is covered by over 500 offline assertions; an in-client self-test answers the questions those structurally cannot, and writes its result to BoonkeeperDB so it can be read off disk.

What still wants a real player rather than a test, and is named here rather than glossed:

  • How much of another player's aura list the client actually hands an addon. Boonkeeper assumes the least — it claims a count only for you, your party and your raid, and shows ? for everyone else. /boon probe exists to settle it in a raid. Until it is settled, ? stays.
  • The trust gate against a live group member. It is covered offline against a fake client and has been confirmed for player in-game; a targeted raid member is the case still owed.
  • The mouseover line on a real tooltip. What it says is driven end to end offline, against a fake client; how it sits under a raid frame at speed is a thing only eyes can judge.
  • The nameplate badge over a real plate. The plate bookkeeping — including the one that matters, a recycled plate never keeping the last body's number — is driven end to end offline against a fake client; where the badge sits over a plate at speed is a thing only eyes can judge.
  • The options panel under eyes. Its stored preferences are tested; a column of checkboxes can only be judged by opening it.

Bug reports that name the state you were in are worth more than a rating.

Install

Copy the Boonkeeper folder into World of Warcraft\_classic_era_\Interface\AddOns\, or run ./deploy.ps1. The folder must be named exactly Boonkeeper — the client resolves Boonkeeper.toc by folder name, and a renamed folder installs perfectly and never loads.

Release notes for every version are in CHANGELOG.md.

Commands

/boon options Surfaces, colour thresholds, target-badge placement, and the list of buffs worth protecting
/boon probe Dump what aura data this client will actually give us
/boon test Walk the target label through every state
/boon about Who made it, and the self-test
/boon selftest Run the in-client self-test now
/boon version The installed version
/boon help The command list

Development

pwsh -File Tests/run-all.ps1     # every pure-logic test; the gate
lua Tests/core_test.lua          # one file
./deploy.ps1                     # then /reload in the client
./package.ps1                    # the release rehearsal zip, into dist/

.pkgmeta — not package.ps1 — is what decides the files a CurseForge install contains; the zip is the local rehearsal that proves the shipped set loads. Tests/package_test.lua holds the two to each other in both directions.

The deciding lives in BoonkeeperCore.lua, which touches no WoW API and runs under plain Lua 5.1. The client layer only fetches and renders. That split is deliberate: this addon's answer is read mid-fight, and a judgement that only exists inside the game can only be tested by getting it wrong in Naxxramas.

Licence

MIT — see LICENSE.

About

How much buff room is left on the people you heal — a live slot count before you cast, so a Renew never costs somebody their world buff. World of Warcraft Classic Era addon.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages