Commit Graph

86 Commits

Author SHA1 Message Date
Jrc13245 aa2a054df9 fix stopmacro for spell queuing and range fix for channeled spells 2025-12-12 21:36:25 -05:00
Jrc13245 2fd4ac3298 reduce bag event usage for lag and fix macro calling within macros 2025-12-12 15:43:21 -05:00
Jrc13245 b5f7399d30 fix nampower queuing issues and debuff duration issues 2025-12-11 16:57:31 -05:00
Jrc13245 9c1f8649eb update channeling to respect arcane missiles haste 2025-12-10 17:56:57 -05:00
Jrc13245 8d7b9086d9 fix debuff and buff not using new operator usage properly 2025-12-10 08:49:50 -05:00
Jrc13245 38158d8b8f warrior slam specific condditionals and update readme 2025-12-06 14:19:14 -05:00
Jrc13245 86fa4476f6 fix equip with conditionals and dont pollute runmacro global namespace 2025-12-05 18:26:33 -05:00
Jrc13245 04f4eacac8 nested macro showtooltip support, nampower queue casting integration, relic slot optimizations, performance updates 2025-12-04 18:10:30 -05:00
Jrc13245 87183b6e09 fix fallback for channeled spell icons and final fixes for swapping items in combat lag. 2025-12-03 14:41:13 -05:00
Jrc13245 30ed4e2bf9 improve targeting function and further improve equipment mid combat lag. 2025-12-03 08:22:46 -05:00
Jrc13245 33ffd85782 lesse in combat item swapping lag and fix errors. 2025-12-02 17:20:40 -05:00
Jrc13245 442eeb9cbc fix lag of casting and channeling conditionals. 2025-12-02 15:24:48 -05:00
Jrc13245 1fa891f380 fix some spell icons not respecting usability in forms 2025-11-30 20:39:04 -05:00
Jrc13245 964df2133b fix toggle spells icon swaps like prowl and shadowmeld and fix debuff conditionals correctly filtering by caster for shared and individual debuffs 2025-11-29 21:54:59 -05:00
Jrc13245 bf6b839858 fix non showtooltip macros getting darkened and fix druid stance icons to show based on druids actual mana and togglable icon swap. 2025-11-29 16:23:12 -05:00
Jrc13245 ee71e6dbda fix non pfui user actionbar updates 2025-11-28 22:54:35 -05:00
Jrc13245 0d3f026277 prevent parser from splitting out the & character 2025-11-28 18:32:03 -05:00
Jrc13245 6486c87798 fix multi and negated multi conditionals using / and & 2025-11-28 15:06:42 -05:00
Jrc13245 04297598e9 nampower spell damage type tracking savedvariables to correctly assume damage type for immunities. table of non damage spells and their spell schools so that faerie fire isnt mistaken as a fire spell. 2025-11-28 12:31:50 -05:00
Jrc13245 1f4781165f fix channeltime 2025-11-27 21:01:25 -05:00
Jrc13245 ba5830ba26 fix adding npcs to immunities list 2025-11-27 10:26:46 -05:00
Jrc13245 ff6ec25c06 bleed immunity, fix icons and their tooltips with no available actions, reformat readme 2025-11-27 09:21:41 -05:00
Jrc13245 43cbcbc462 fix enemy blocked attacks triggering revenge 2025-11-26 17:40:58 -05:00
Jrc13245 21119c8bd5 fix reactive for overpower and revenge to see as active in any stance. 2025-11-25 16:58:44 -05:00
Jrc13245 a33f3f21db clarify actual multi and noable multi usage, add AND operator for multi, and fix swintimer to be more intuitive. 2025-11-25 14:23:54 -05:00
Jrc13245 6261785507 memory and cpu usage overhaul 2025-11-25 07:41:04 -05:00
Jrc13245 f6df0b2b5a fix icon issue and fix carnage talent duration refreshers updating visually for pfui 2025-11-19 17:50:30 -05:00
Jrc13245 274475a312 add carnage talent refreshing rip and rake if using ferocious bite at 5 combo points when debuffs are up 2025-11-18 19:39:07 -05:00
Jrc13245 7fd94e3ed2 Add talent and equipment modifier systems for debuff durations
- Talent modifiers: Taste for Blood, Improved Gouge, Improved Shadow Word: Pain
- Equipment modifiers: Black Morass Idol (Rip -10% duration)
- Layered calculation: (base + combo + talent) × equipment
- Console commands: /cleveroid talents, testtalent, testequip
- Auto-detection via GetTalentInfo() and GetInventoryItemLink()
2025-11-18 15:42:38 -05:00
Jrc13245 c5a57af024 Fix combo point tracking and queue glow for instant finishers
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 20:28:22 -05:00
Claude e7f75ea38d Fix action button glow and state checks to use tooltip fallback
Previously, action button state functions (IsCurrentAction, IsActionInRange,
IsUsableAction, ActionHasRange, GetActionCount, IsConsumableAction) only
checked the active action, not the tooltip action. This caused issues when
using #showtooltip without conditionals, or when no conditionals matched:

- No glow on buttons even when the ability was queued/active
- Incorrect range/usability indicators
- Missing item counts for consumables

Now all these functions use the same priority as GetActionTexture and
GetActionCooldown: check the active action first, then fall back to the
tooltip action. This ensures button states match the displayed icon.

Fixes issues with abilities like Cleave and Heroic Strike not showing glow
when queued, and ensures all action button visuals are consistent.
2025-11-17 21:57:54 +00:00
Claude f74de5ef03 Fix showtooltip icon display by parsing conditionals from spell names
When #showtooltip had an argument with conditionals (e.g., #showtooltip [stance:1] Fireball),
the code was trying to find a spell named "[stance:1] Fireball" which doesn't exist.
This resulted in no texture being found for the tooltip action, causing incorrect icons.

Now the code parses the argument first using GetParsedMsg() to extract just the spell name
before creating the tooltip action info. This allows it to properly find the spell in the
spellbook and retrieve its correct texture/icon.
2025-11-17 21:52:00 +00:00
Claude e1e8548453 Fix all icon fallback paths to use macro icon instead of question mark
Updated GetActionTexture to fall back to the macro's icon in all code paths:
- When no action is active and no explicit tooltip (line 2444)
- When inventory slot is empty (line 2469)
- Final fallback for all other cases (line 2494)

This ensures the macro icon is always shown instead of the question mark
when no action/spell texture is available. The question mark should only
appear as an absolute last resort if GetMacroInfo fails.
2025-11-17 18:32:40 +00:00
Claude f99b985395 Ensure icon always falls back to macro icon, never question mark
Updated fallback logic to always use the macro's chosen icon (from the
macro frame) when no action is active. The priority is now:
1. Tooltip texture (from first action if #showtooltip is present)
2. Macro's icon (from macro frame)
3. Never question mark (unless GetMacroInfo fails, which shouldn't happen)

This ensures the icon properly shows the macro's icon when all
conditionals fail, instead of showing a question mark.
2025-11-17 18:10:09 +00:00
Claude 852d3691c2 Fix showtooltip icon fallback to use tooltip texture before question mark
When #showtooltip is used without an explicit spell/item argument and all
conditionals fail, the icon now falls back to the tooltip texture (first
action) instead of immediately showing a question mark. This prevents the
question mark icon from appearing when the macro has valid actions but none
of their conditions are currently met.

Fixes issue where macro icon becomes question mark when no target and
Battle Shout buff is already active.
2025-11-17 00:27:48 +00:00
Claude bb7cd24761 Fix nil comparison error in spell_tracking cleanup loop
BUGFIX: Core.lua:2253 attempt to compare nil with number

The cleanup loop was checking 'if time > cast.expires' but some entries
in spell_tracking (like combo tracking data) don't have an expires field.

Added nil check: 'if cast.expires and time > cast.expires'

This prevents errors when combo tracking data is in spell_tracking without
an expiration time.
2025-11-16 17:39:16 +00:00
Claude 1172e3377b Add learned combo duration system - saves actual durations per CP
Major enhancement: System now learns actual combo finisher durations and
saves them per combo point level (1-5 CP).

**New SavedVariable:**
- CleveRoids_ComboDurations[spellID][comboPoints] = duration
- Persists between sessions
- Uses learned durations before calculated formulas

**ComboPointTracker.lua:**
- Added GetLearnedComboDuration(spellID, cp) - fetch learned duration
- Updated CalculateComboScaledDurationByID to check learned first
- Falls back to formula if not learned yet

**Utility.lua (libdebuff):**
- UNIT_CASTEVENT handler stores combo points in learnCastTimers
- RAW_COMBATLOG fade handler learns combo durations when spells expire
- Stores learned duration keyed by [spellID][comboPoints]
- Debug message shows "Learned combo spell X at Y CP = Zs"

**Core.lua:**
- New command: /cleveroid combolearn - Show all learned combo durations
- Lists each spell with all learned CP levels (1-5)
- Shows which durations have been learned vs not yet

**Benefits:**
- Debuff conditionals like [debuff:Rip<4] now use ACTUAL max duration
- Accounts for talents that modify finisher durations
- Learns different durations per rank
- More accurate than formulas for edge cases

**Example:**
After casting Rip with 5 CP and letting it expire, system learns:
CleveRoids_ComboDurations[1079][5] = 28
Future casts use 28s instead of calculated 12+4*4
2025-11-16 16:49:30 +00:00
Claude 18c11eb8b3 Show all available commands when typing /cleveroid
When typing /cleveroid with no arguments, now displays:
1. Current settings (realtime, refresh, debug)
2. All available commands organized by category:
   - Basic commands (realtime, refresh, learn, forget, debug)
   - Immunity tracking commands
   - Combo point tracking commands

Makes it easier for users to discover all available functionality.
2025-11-16 15:49:55 +00:00
Claude 3d6f03336c Fix combo tracking commands - remove load-time existence checks
The combotrack/comboclear commands were checking if functions existed at
file load time, but ComboPointTracker.lua loads after Core.lua, so the
checks always failed. Removed the checks since by runtime (when the user
executes the command) all files will be loaded and functions will exist.

Fixes "Combo point tracking not available" message.
2025-11-16 15:44:24 +00:00
Claude 4cf8e07a17 Improve combo point duration tracking system
Major enhancements to the combo point finisher tracking system:

**ComboPointTracker.lua:**
- Added spell ID-based tracking (ComboScalingSpellsByID table)
- All Rupture ranks (1943, 8639, 8640, 11273, 11274, 11275): 8s + 2s per CP
- Kidney Shot ranks (408, 8643): Rank 1: 1s + 1s per CP, Rank 2: 2s + 1s per CP
- Druid Rip ranks (1079, 9492, 9493, 9752, 9894, 9896): 12s + 4s per CP (corrected from 10s + 2s)
- New TrackComboPointCastByID() function for UNIT_CASTEVENT integration
- Initialize spell_tracking table to prevent nil errors
- Consistent debug output using CleveRoids.debug flag

**Utility.lua (libdebuff integration):**
- UNIT_CASTEVENT handler now checks combo scaling spells first
- Calls TrackComboPointCastByID() before normal duration lookup
- Learning system skips combo spells (they're dynamically calculated)
- Improved debug messages distinguish combo spells from regular spells

**Core.lua (console commands):**
- Added /cleveroid combotrack - Display recent combo finisher casts
- Added /cleveroid comboclear - Clear combo tracking data
- Updated help text with combo point tracking section

**README.md:**
- New "Combo Point Scaling" section with examples
- Updated settings documentation with new commands
- Added /cleveroid debug to settings list
- Example macros showing combo point-aware debuff conditionals

This system ensures accurate duration tracking for:
- Rogue: Rupture (8-16s), Kidney Shot (1-6s)
- Druid: Rip (12-28s)

All durations are now calculated based on actual combo points used at cast time.
2025-11-16 15:31:38 +00:00
Jrc13245 1610920dda immunity tracking system 2025-11-16 09:46:51 -05:00
Jrc13245 122fc0a908 no longer require abilities on actionbar to get icon 2025-11-13 16:40:37 -05:00
Jrc13245 92562ab1a4 Fix macro icons with syntax not using conditionals and fix imbue conditionals 2025-11-13 15:46:00 -05:00
Jrc13245 c65642a129 fix compatibility with pfui macrotweak 2025-11-12 16:33:54 -05:00
Jrc13245 642e58598a fix item macros icons when swapped 2025-11-12 16:19:08 -05:00
Jrc13245 1427c4481f fix equip errors 2025-11-09 12:48:56 -05:00
Jrc13245 19be3b70d7 fix equipmh and equipoh errors 2025-11-08 17:53:19 -05:00
Jrc13245 c8017c5485 implement UnitXP functions and update nampower and superwow functions 2025-11-08 17:38:35 -05:00
Jrc13245 5b416765da fix more equip errors 2025-10-30 14:08:41 -04:00
Jrc13245 a7e6ee88ad fix equip race conditions 2025-10-29 18:59:59 -04:00