160 Commits

Author SHA1 Message Date
Jrc13245 c0d4f88fe9 fix FF Feral parsing 2025-12-28 19:08:24 -05:00
Jrc13245 83cdecdb29 update 2025-12-28 09:37:41 -05:00
Jrc13245 723cbb0642 update debuff duration systems 2025-12-28 08:32:06 -05:00
Jrc13245 370167b3a7 update for nampower errors 2025-12-27 14:38:24 -05:00
Jrc13245 da23987449 fix nampower errors 2025-12-24 15:05:51 -05:00
Jrc13245 d8b4a097b3 reduce garbage creation and fix channel spell range checks 2025-12-20 13:46:06 -05:00
Jrc13245 70ddcd9b92 one curse per caster can exist 2025-12-13 14:25:19 -05:00
Jrc13245 35cce7e61a fix overflow debuffs 2025-12-11 22:22:46 -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 33ffd85782 lesse in combat item swapping lag and fix errors. 2025-12-02 17:20:40 -05:00
Jrc13245 d436aa8f38 fix paladin judgements not refreshing on caster melee hit 2025-12-01 18:13:22 -05:00
Jrc13245 5ee30a47f9 fix auto add immunities 2025-12-01 11:57:46 -05:00
Jrc13245 ce017f5832 fix lower rank spells showing as refreshing higher ranks in pfui. further improve debuff duration handling. 2025-11-30 19:25:19 -05:00
Jrc13245 42522cfd18 fix shared debuffs 2025-11-30 11:16:23 -05:00
Jrc13245 6d141d92ab fix pfui carnage updates 2025-11-30 10:50:26 -05:00
Jrc13245 d7e5116f07 fix carnage ferocious bite refresh and pfui 2025-11-30 10:08:04 -05:00
Jrc13245 c0d5c1fbb2 correct dodge parry block immune for personal debuff tracking 2025-11-30 09:18:22 -05:00
Jrc13245 003bf39c22 really fix checking your own debuff timers for personal debuffs 2025-11-30 09:00:58 -05:00
Jrc13245 bc40ba17ab fix only checking your debuff casts and buff timers 2025-11-30 08:27:57 -05:00
Jrc13245 5f253a066c fix shared and personal debuff tracking 2025-11-30 07:56:25 -05:00
Jrc13245 9877115c85 add banish detection for immunities 2025-11-29 10:35:36 -05:00
Jrc13245 dd84ca0f66 fix boss level as level 63 and fix partial block resists 2025-11-28 21:56:55 -05:00
Jrc13245 d59ccc0821 fix immunity system lag 2025-11-28 21:40:05 -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 30631bde26 remove login spam and fix immunity auto tracking 2025-11-28 07:44:42 -05:00
Jrc13245 b188fc85f3 fix some issuues with OR on mybuff, mydebuff, buff, debuff, inrange, outrange, checkchanneled 2025-11-27 16:38:53 -05:00
Jrc13245 e834df91c3 change all proc windows to 4 seconds 2025-11-27 09:51:41 -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 5e26b776eb fix negated conditionals using multi and fix revenge proc from reactive 2025-11-26 13:32:23 -05:00
Jrc13245 6a4f7a417c fix revenge reactive and majorly improve pfui compatibility for icons and actionbars 2025-11-26 07:48:12 -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 6261785507 memory and cpu usage overhaul 2025-11-25 07:41:04 -05:00
Jrc13245 9dcc2446b7 new conditional swingtimer and druid set bonus debuff durations and warrior talent debuff durations 2025-11-23 16:16:53 -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 f59b66a7b6 update rake to use the idol duration change andd addd bash talent duration change 2025-11-18 17:37:38 -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 21dba94822 Add Judgement of the Crusader debuff durations (ranks 1-6) 2025-11-17 20:45:31 -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 60822c9c68 Add lib:UnitBuff and lib:FindPlayerBuff for buff tracking
- Added lib:UnitBuff(unit, index, filterCaster) to query buff data by slot
- Added lib:FindPlayerBuff(unit, spellID) to find player-cast buffs by spell ID
- Both functions return duration, timeleft, and caster information
- Mirrors the debuff tracking API (UnitDebuff/FindPlayerDebuff)
- Enables tracking buff ownership and timeleft for future projects
2025-11-17 20:09:15 +00:00
Claude b8cc607d90 Reorganize debuff durations into personal and shared tables
Changes:
- Split lib.durations into lib.personalDebuffs and lib.sharedDebuffs
- Removed combo-scaling spells (Rupture, Rip, Kidney Shot) from static tables
  since they are handled dynamically by ComboPointTracker
- Added lib:IsPersonalDebuff() helper to distinguish debuff types
- Updated ValidateUnitDebuff to auto-detect personal vs shared debuffs
- Personal debuffs (DoTs, poisons, most CC) now auto-filter to player by default
- Shared debuffs (Sunder, Faerie Fire, Hunter's Mark) remain unfiltered
- Maintained lib.durations for backwards compatibility

This prevents false positives when checking personal debuffs like Rupture
in multi-player scenarios while allowing shared debuffs like Sunder Armor
to work correctly.
2025-11-17 18:28:58 +00:00
Claude 7de3ac4043 Add caster filtering to libdebuff for tracking player-cast debuffs
- Modified lib:UnitDebuff() to accept optional filterCaster parameter
- Added lib:FindPlayerDebuff() to search for player debuffs by spell ID
- Ensures debuffs in buff slots can be properly identified by owner
- Prevents false positives from other players' debuffs with same spell ID
2025-11-17 18:15:07 +00:00
Claude c8546df52a Fix debuff overflow detection and duration tracking for combodurations branch
Applied the same overflow bug fixes to the combodurations branch to ensure
compatibility with combo point-scaled debuffs. This fixes three issues:

1. lib:UnitDebuff() (line 799): Fixed UnitBuff() return value capture from 4
   values to 3 values (UnitBuff only returns texture, stacks, spellID). Also
   changed overflow check from only checking static database to checking
   lib:GetDuration() which includes combo durations, learned durations, and
   static durations.

2. SeedUnit() debuff loop (line 837): Changed check from only lib.durations[]
   to lib:GetDuration() so debuffs with learned or combo-scaled durations are
   properly seeded into the tracking system.

3. SeedUnit() buff loop (line 867): Fixed UnitBuff() return value capture from
   4 values to 3, and changed check from only lib.durations[] to
   lib:GetDuration() to properly track overflow debuffs with combo-scaled or
   learned durations.

These fixes ensure that:
- Overflow debuffs like Moonfire are properly detected by [nodebuff:] conditionals
- Duration tracking works for overflow debuffs with combo point scaling (Rip, Rupture)
- Duration tracking works for overflow debuffs with learned durations
- All existing combo point tracking functionality is preserved
2025-11-16 23:28:03 +00:00
Claude d6b4ae3d97 Add direct pfUI duration synchronization for combo spells
After analyzing pfUI's cooldown module, we need to directly sync
combo durations to pfUI's libdebuff.objects storage:

- Added SyncComboDurationToPfUI function to force-update pfUI's
  stored debuff duration after tracking combo spells
- Called from UNIT_CASTEVENT handler after AddEffect
- This ensures pfUI's cooldown display shows the correct combo
  duration (e.g., 28s for 5 CP Rip) instead of base 12s

pfUI's cooldown module is just a display layer - it shows durations
from pfUI.api.libdebuff.objects. By directly updating this storage,
we ensure the correct duration is displayed regardless of timing.
2025-11-16 18:18:41 +00:00
Claude e8e5f7d1f3 Add comprehensive debug tracing for combo duration system
Added debug output at all critical points in the duration tracking flow:
- UNIT_CASTEVENT handler: Shows calculated duration and CP count
- lib:GetDuration: Shows which source provided the duration (learned combo/caster/static)
- lib:AddEffect: Shows what duration was actually stored
- SeedUnit: Shows what duration is used when rescanning debuffs/buffs

This will help diagnose why combo durations aren't being applied correctly.
2025-11-16 17:46:30 +00:00
Claude 7b79b45130 Fix debuff conditionals using wrong max duration for combo spells
CRITICAL FIX: Debuff conditionals like [debuff:Rip<4] were using base
duration (12s) instead of actual combo duration (28s for 5 CP).

**Problem:**
- SeedUnit rescans debuffs on target change/UNIT_AURA events
- It called lib:GetDuration(spellID) without combo awareness
- This overwrote combo-aware durations with base durations
- pfUI cooldown module showed wrong max duration (12s vs 28s)
- Conditional [debuff:Rip<4] triggered at wrong times

**Solution:**
1. Updated lib:GetDuration to accept optional comboPoints parameter
2. Checks CleveRoids_ComboDurations[spellID][cp] FIRST before other sources
3. Priority: combo learned > caster learned > static database
4. SeedUnit now uses highest learned CP duration as fallback
5. When rescanning combo spells, assumes 5 CP if learned

**Benefits:**
- [debuff:Rip<4] now uses actual 28s max duration (5 CP)
- pfUI cooldown displays correct duration
- Conditionals trigger at correct times
- Prevents base duration from overwriting learned duration

**Example:**
Cast Rip with 5 CP (28s), macro refreshes at <4s remaining (24s used)
Previously: Would refresh at <4s of 12s base (8s used) - TOO EARLY!
2025-11-16 17:33:27 +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 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