Skip to content

Skip Assert your Authority on insta-kill-immune monsters - #2686

Open
eegeeZA wants to merge 1 commit into
loathers:mainfrom
eegeeZA:feature/assert-authority-boss-guard
Open

Skip Assert your Authority on insta-kill-immune monsters#2686
eegeeZA wants to merge 1 commit into
loathers:mainfrom
eegeeZA:feature/assert-authority-boss-guard

Conversation

@eegeeZA

@eegeeZA eegeeZA commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Assert your Authority is capped at 3 uses/day.
— if that monster is BOSS/LUCKY/ULTRARARE
flagged, the cast still burns a daily charge even though the insta-kill
fails against it. Observed live: garbo expected "man with the red buttons"
but a Ron "The Weasel" Copperhead (BOSS-flagged) preempted the
wander, and the skill was cast at it anyway.

  • Guard the skill cast with a fight-time monsterid allowlist built from
    availableMonsters(location) — the zone's native monsters, already
    excluding LUCKY/ULTRARARE/BOSS. This has to be a KoL macro-language
    condition rather than a JS-side check: GarboStrategy submits this macro
    as an autoattack, which grimoire's engine compiles before the actual
    monster is revealed.
  • availableMonsters previously wasn't exported from the garbo-lib
    package entry point (only from wanderer/lib.ts internally); added it to
    the re-export list.

Scope note

Cheese Wizard Fondeluge, Spit Acid, and Pig Skinner Free-For-All in the
same file share the same unconditional .skill() cast shape and plausibly
the same gap, but they're not daily-capped resources in the same way and
were left out of scope here — worth a follow-up if it's a live problem for
them too.

Test plan

packages/garbo has no automated test suite; verified via:

  • yarn check (tsc across workspaces) — passes
  • yarn lint (eslint + prettier) — passes
  • yarn build — passes; confirmed the guard logic and availableMonsters
    are present in the compiled garbo.js output

No way to exercise KoL's live preemption from CI — the fix's
runtime effect isn't test-covered.


Assisted by Claude Code — reviewed by @eegeeZA; verified by the test suite.

KoL's semirare system can preempt a garbo-forced wander with an
unrelated monster, regardless of what garbo intended to fight. If
that monster is BOSS/LUCKY/ULTRARARE-flagged, Assert your Authority
still consumes one of its 3 daily casts even though the insta-kill
fails against it.

Guard the skill with a fight-time monsterid allowlist built from
availableMonsters() (the zone's native monsters, already excluding
those attributes) instead of the intended wander target alone. The
guard has to be a KoL macro-language condition rather than a JS
check: GarboStrategy submits this macro as an autoattack, which
grimoire compiles before the actual monster is revealed.

availableMonsters() previously wasn't exported from the garbo-lib
package entry point; add it to the re-export list so garbo can use
it.

Co-Authored-By: Claude <noreply@anthropic.com>
@spaghetti-squash

spaghetti-squash commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

There's no such thing as semirares anymore. Why were you lucky! in the zeppelin?

@eegeeZA

eegeeZA commented Jul 26, 2026

Copy link
Copy Markdown
Contributor Author

There's no such thing as semirares anymore. Why were you lucky! in the zeppelin?

I think I misdiagnosed the 'semi-rare' part, but I still think this could protect against:
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants