Commit Graph
79 Commits
Author SHA1 Message Date
Brues 1de455f96e Support Blizzard-style bracket groups: [a][b] Spell and [] fall-through
A clause may now carry a leading run of [group] blocks sharing one action;
groups are OR'd, first pass wins, and [] always passes. The existing
;-separated single-block form is unchanged and mixes freely.

The OR loop lives in the two single-clause evaluators, DoWithConditionals
and TestAction, which expand a multi-group clause into one-group variants
and recurse. That covers every ;-split site, /castsequence (where ; is not
a separator and the sequence is keyed by the full args), /cancelaura,
/stopmacro and the editor highlight without rewriting strings, so
action.args, the ParsedMsg/Sequences caches and highlight offsets keep
their identity.

ParseMsg scans the leading group run (quote-aware) instead of the greedy
%[(.+)%], which previously turned [a][b] into the bogus key a][b and made
such clauses fail silently on both the cast and icon paths. The flag
pattern still runs on the whole clause when there are no groups, so !Spell
is byte-identical.

TestAction reports which variant passed and TestForActiveAction stores its
conditionals, so range/usable colouring follows the passing group's @unit
rather than group 1's. /target gains ; and group support; /pfcast injects
the resolved unit into every group, not just the first. The macro checker
validates every leading block, drops the EMPTY_CONDITIONAL error, and
catches a missing action after the last group.
2026-09-10 17:17:08 -05:00
Brues 00caff0c9b Bump the README conditional count to match the wiki 2026-09-10 14:24:46 -05:00
Brues c710ccf832 Identify action-bar macros by slot/index; drop name restrictions
Resolve a slot's macro by its Blizzard macro index via ClassicAPI's
GetActionInfo instead of GetActionText -> name -> GetMacro, so action-bar
macros no longer depend on the macro name.

- Core.lua: GetAction uses GetActionInfo(slot) -> macro index ->
  GetMacroByIndex; falls back to the name path for SuperMacro (no index).
  ParseMacro split into a shared BuildMacro + ParseMacroByIndex (caches by
  index) + ParseMacro(name). Added GetMacroByIndex. The macro cache is now
  keyed by index for action-bar macros, so blank/duplicate names no longer
  collide. GetMacroIndexByName remains only for genuine name references
  ({MacroName}, /runmacro, /macrocheck).
- MacroErrorUI.lua: remove the now-obsolete macro-name warnings (duplicate,
  blank, spell-conflict, item-conflict) from both the live editor validation
  and the on-close report; delete the unused name-set helpers.
- README: update the known-issue to note only name-referenced macros need
  unique names.
2026-06-21 00:30:30 -05:00
Brues b28f4452b9 Make ClassicAPI a hard requirement; remove movement fallbacks
ClassicAPI is now required, not optional. The load-time requirement
check warns when it's missing (Core.lua), the same as Nampower/UnitXP,
and ClassicAPI-backed code calls the API directly with no fallbacks.

- ClassicAPI.lua: drop the HasUnitAuras/HasUnitSpeed/HasIsFalling
  capability gates and pcall hedging; wrappers call C_UnitAuras /
  GetUnitSpeed / IsFalling directly. Keep IsAvailable (used by the
  requirement check) and the version helpers.
- [moving]: ClassicAPI GetUnitSpeed is the only source. Removed the
  MonkeySpeed integration, the Nampower PlayerIsMoving branch, and the
  100 Hz position-tracking buffer in Core.lua's OnUpdate (with its
  POS_TRACK_INTERVAL constant and UnitPosition upvalue). Removed the
  now-dead speed==nil guards and WarnNoSpeedSource.
- README: ClassicAPI moved to Required; MonkeySpeed dropped from
  Supported Addons.
- docs/CLASSICAPI-TODO.md: record the mandatory/no-fallbacks policy.
2026-06-20 23:47:23 -05:00
Brues 59aad5b662 correct links 2026-06-20 23:11:38 -05:00
Brues 0ec082992d Add ClassicAPI (optional) to README requirements
List ClassicAPI in the Requirements table as Optional — it enables the
dispel-type conditionals ([magic], [curse], [disease], [poison],
[dispellable], [magicbuff]), which degrade gracefully without it.
2026-06-20 23:05:08 -05:00
Brues 86d16f507b Point README wiki links to brues-code fork
The wiki lives on the brues-code fork; update all 10 Full Documentation
links from jrc13245 to brues-code. SP_SwingTimer download links (a
separate project) are left untouched.
2026-06-20 23:02:09 -05:00
Jrc13245 ff73210d2d some debug 2026-03-09 15:37:51 -04:00
Jrc13245 da7c7ab437 update readme to point to wiki 2026-03-03 16:19:01 -05:00
Jrc13245 c8fce0e6db update readme 2026-03-02 20:01:45 -05:00
Torio 45d821d5c9 Fix non alphabetized entry for 'keydown' in README.md 2026-02-22 20:00:25 -05:00
Jrc13245 9811d9c894 update for nampower 2_41_0 and update readme 2026-02-22 20:00:21 -05:00
Jrc13245 bc193c24bc update overflow frame to disable default, rename frame for clarity, update readme for information 2026-02-21 11:39:27 -05:00
Jrc13245 59b48bf660 readme update 2026-02-18 18:04:09 -05:00
Torio 98ede46c58 Update pfUI repository link in README 2026-02-14 20:51:07 -05:00
Torio cb41cf80e1 Clarify swimming status for Druid only 2026-02-14 20:49:28 -05:00
Jrc13245 f2bce42acb fix some blizzard commands missed in the macro checker, updates for nampower 2.33 2026-02-11 17:22:08 -05:00
Jrc13245 c2c8af7d2d pfui 7_6 update compatibility and reformat readme 2026-02-08 17:42:16 -05:00
Jrc13245 50a29e0fee pfui nameplate tank list support for targeting conditional 2026-01-24 17:12:08 -05:00
Jrc13245 6199279272 range and position conditionals now accept unit counts 2026-01-24 16:00:40 -05:00
Jrc13245 ce4e4eb95f clean debug and add movingand nomoving conditionals that use monkeyspeed 2026-01-24 15:39:08 -05:00
Jrc13245 612873260d add gcd conditional and firstaction slashcommand and fix stopmacro 2026-01-15 16:16:49 -05:00
Jrc13245 649586c552 fix stopmacro and implement skipmacro 2026-01-15 14:50:55 -05:00
Jrc13245 167fd8e079 fix buffcount conditionals and update readme 2026-01-12 17:20:34 -05:00
Jrc13245 7d0dec2a2b cursive mouseover support, applymain and applyoff slashcommands, nampower feature update with incominghit, lastswing, buffcap, debuffcap conditionals 2026-01-12 17:13:40 -05:00
Jrc13245 438c6d0f23 update readme with pfui fork 2026-01-10 12:03:54 -05:00
Jrc13245 728cf92ed2 fix debuff timer checks, nodebuff existence checks with ranked spells, and split type spells having both types immune checked for cast, improve readme 2026-01-09 08:00:08 -05:00
Jrc13245 aaef3b82d8 update readme 2026-01-05 15:58:58 -05:00
Jrc13245 973595d08a feature name conditional and clean up readme 2026-01-05 15:37:13 -05:00
Jrc13245 199520ced4 fix 2026-01-04 19:06:51 -05:00
Jrc13245 96ae51a228 ensure all conditionals are noable 2026-01-03 17:20:37 -05:00
Jrc13245 f901cfed80 update readme 2026-01-03 16:57:58 -05:00
Jrc13245 339ad18e75 remaster readme, fix cursive conditional not activation for 0 or not up = less than 1 2026-01-03 16:49:25 -05:00
Jrc13245 b69c832ceb update readme 2026-01-03 16:33:07 -05:00
Jrc13245 a0c1564fad update readme 2026-01-03 16:30:57 -05:00
Jrc13245 64c0d9949d re add trinket and ring slashcommands and implement cursive support 2026-01-02 23:37:27 -05:00
Jrc13245 003d230e52 revert multi target tracker 2026-01-02 23:16:57 -05:00
Jrc13245 fe6982ddf6 add equip11 equip12 equip13 and equip14 commands for trinket swapping and ring swapping as theres two choice of slots 2026-01-02 18:45:47 -05:00
Jrc13245 6af06f1ee3 feature addition multi target debuff tracker 2026-01-02 15:52:55 -05:00
Jrc13245 83cdecdb29 update 2025-12-28 09:37:41 -05:00
Jrc13245 4af46934c6 update readme 2025-12-28 08:49:24 -05:00
Jrc13245 723cbb0642 update debuff duration systems 2025-12-28 08:32:06 -05:00
Jrc13245 145ed92f77 multiscan targeting based on pepopos cursive 2025-12-26 14:57:54 -05:00
Jrc13245 167ab96d34 consolidate some cc types 2025-12-24 11:13:40 -05:00
Jrc13245 473e7f8741 crowd control conditionals 2025-12-24 11:01:57 -05:00
Jrc13245 a619aa4d30 expand group party raid conditionals slightly 2025-12-22 15:50:56 -05:00
Jrc13245 426971e117 notarget and hastarget conditionals 2025-12-14 13:19:21 -05:00
Jrc13245 b36416f38a revert & / noable multi usage 2025-12-08 14:17:56 -05:00
Jrc13245 0f4392b590 update how & and / work in conditionals to be more user friendly 2025-12-08 10:46:56 -05:00
Jrc13245 d148d49bd1 update mod links in the readme 2025-12-07 21:49:02 -05:00