Commit Graph

12630 Commits

Author SHA1 Message Date
Vayle 7da9bd74eb Enforce suppressed buff persistence schema 2026-03-08 11:33:31 -04:00
Vayle db4f3d141d Merge pull request #45 from Valorith/copilot/sub-pr-39-another-one
Fix: Spell suppression restoration for client pets with proper cleanup
2026-01-31 19:47:09 -05:00
copilot-swe-agent[bot] 2b88b51674 Fix: Move brace to next line for case statement consistency
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-02-01 00:13:21 +00:00
Vayle 3716355750 Update zone/spell_effects.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-31 19:11:50 -05:00
Vayle 185f2a4db3 Fix: restrict spell suppression restoration to client-owned pets; preserve cleanup via guarded restoration; restore levitate visuals for pets
- Limit restoration code path to IsPet() && GetOwner()->IsClient()\n- Guard restoration logic instead of early-return to keep cleanup paths\n- Restore nimbus, illusion, procs, and levitate FlyMode appropriately\n- Resolve conflicts with master in zone/spell_effects.cpp for PR #45

Co-Authored-By: Warp <agent@warp.dev>
2026-01-31 19:08:58 -05:00
Vayle 139343691a Merge pull request #40 from Valorith/copilot/sub-pr-39
Add Levitate effect restoration for client pets after suppression
2026-01-31 18:13:13 -05:00
Vayle 5deb80eb08 Merge pull request #39 from Valorith/fix/buff-suppression-pet-restore
Fix: Add non-client effect restoration after suppression expires
2026-01-31 16:51:18 -05:00
copilot-swe-agent[bot] 6758108f35 Add comment clarifying non-client mob dispel behavior
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 21:27:02 +00:00
Vayle 041060df06 Merge pull request #44 from Valorith/copilot/sub-pr-39-again
Restrict spell suppression system to clients and client pets only
2026-01-31 16:06:19 -05:00
copilot-swe-agent[bot] 24aa2ba00f Resolve merge conflict - keep Levitate restoration for client pets 2026-01-31 20:37:45 +00:00
copilot-swe-agent[bot] 56b5e4e84e Restrict spell suppression restoration to client pets only
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 20:33:42 +00:00
copilot-swe-agent[bot] 5e43850e8e Restrict suppression system to clients and client pets only
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 20:33:33 +00:00
copilot-swe-agent[bot] bd2b28eb0b Initial plan 2026-01-31 20:31:22 +00:00
copilot-swe-agent[bot] 9a657e7d6a Resolve merge conflict with updated base branch
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 20:31:19 +00:00
copilot-swe-agent[bot] c9bee6cf0a Remove documentation files - keep only code changes
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 20:28:05 +00:00
copilot-swe-agent[bot] 1607aea793 Add comment to Levitate restoration code
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 20:27:10 +00:00
Vayle fa3bbec739 Update zone/spell_effects.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-31 15:12:58 -05:00
Vayle 9eb982ef15 Merge pull request #41 from Valorith/copilot/sub-pr-39-again
Add DivineAura effect restoration for non-client mobs after suppression expires
2026-01-31 15:05:43 -05:00
copilot-swe-agent[bot] 1c09445989 Add comprehensive index for PR #40 documentation
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 14:52:21 -05:00
copilot-swe-agent[bot] 305719d625 Add main README for PR #40 resolution
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 14:52:21 -05:00
copilot-swe-agent[bot] 981b7b4ea9 Add quick reference guide for PR #40 rebase
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 14:52:21 -05:00
copilot-swe-agent[bot] 0e15b58ba9 Add comprehensive rebase instructions for PR #40
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 14:52:21 -05:00
copilot-swe-agent[bot] 637d6e85c7 Add Levitate effect restoration for non-client mobs
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 14:52:18 -05:00
copilot-swe-agent[bot] 3a79d464fe Initial plan 2026-01-31 14:52:18 -05:00
Vayle b19503a1e7 Merge pull request #42 from Valorith/copilot/sub-pr-39-another-one
Fix: Correct return type in BuffFadeBySlot void function
2026-01-31 14:32:54 -05:00
Vayle 4faf48a7fd Merge pull request #43 from Valorith/copilot/sub-pr-39-yet-again
Fix: Void function return type error in BuffFadeBySlot
2026-01-31 14:31:31 -05:00
copilot-swe-agent[bot] ff7dbce6f2 Fix compilation error: change return false to return in void function
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 04:24:44 +00:00
copilot-swe-agent[bot] 275eecbdec Initial plan 2026-01-31 04:23:20 +00:00
copilot-swe-agent[bot] 7129acc3b0 Fix compilation error: change return false to return in void function
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 04:23:15 +00:00
copilot-swe-agent[bot] 28e30dfeec Fix: Change return false to return in void function BuffFadeBySlot
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 04:21:45 +00:00
copilot-swe-agent[bot] 55aed50cfe Initial plan 2026-01-31 04:20:29 +00:00
Vayle 223c5b828e Merge pull request #37 from Valorith/fix/buff-suppression-death-fade
Fix: Death/mass-fade now properly clears suppressed buffs
2026-01-30 22:44:03 -05:00
Vayle ec2c4b5909 Merge pull request #38 from Valorith/fix/buff-suppression-client-desync
Fix: Prevent OOB access in BuffFadeBySlot for suppressed buffs
2026-01-30 22:43:45 -05:00
Vayle 3ec73a8924 Merge pull request #36 from Valorith/fix/buff-suppression-persistence
Fix: Persist buff suppression state across zones
2026-01-30 22:43:28 -05:00
Vayle e412a9bb99 Merge pull request #35 from Valorith/fix/buff-suppression-dobufftick
Fix: Skip DoBuffTic() for SPELL_SUPPRESSED slots (prevents OOB access)
2026-01-30 22:43:09 -05:00
copilot-swe-agent[bot] 57edda7535 Add DivineAura effect restoration for non-client mobs
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-31 03:40:51 +00:00
Vayle 35953234c3 Update zone/spell_effects.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-30 22:39:42 -05:00
copilot-swe-agent[bot] 8542ea0acc Initial plan 2026-01-31 03:39:31 +00:00
Vayle 43a146da6d Update zone/spell_effects.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-30 22:39:11 -05:00
Vayle dffc4610d5 Reapply visual/state effects for pets and NPCs after suppression expires
When buff suppression expires, only clients get ReapplyBuff() called to
restore visual and state effects (illusions, procs, silence, etc.).
Pets and NPCs had no equivalent handling, causing permanent loss of
illusions, weapon procs, and other active effects after suppression.

Add non-client effect restoration in the suppression expiry path of
BuffFadeBySlot() that handles illusions, silence, amnesia, and weapon
procs for pets, NPCs, and bots.

Fixes #32
2026-01-31 02:29:53 +00:00
Vayle f6ab4cd377 Skip effect removal loop for SPELL_SUPPRESSED in BuffFadeBySlot
When BuffFadeBySlot() is called on a suppressed slot (e.g., when
suppression timer expires), the effect removal loop accesses
spells[SPELL_SUPPRESSED] (index 0xFFFD) which is out-of-bounds.
This is unnecessary since effects were already removed when the buff
was first suppressed. Skip the loop entirely for SPELL_SUPPRESSED
slots to prevent OOB memory access and let execution proceed directly
to the restoration branch.

Fixes #29
2026-01-31 02:29:11 +00:00
Vayle 5d0abdc4ac Handle SPELL_SUPPRESSED slots in mass-fade functions
BuffFadeNonPersistDeath(), BuffFadeBeneficial(), BuffFadeDetrimental(),
and BuffFadeByEffect() all use IsValidSpell() which returns false for
SPELL_SUPPRESSED (0xFFFD), causing suppressed buffs to survive death
and mass-dispels. Worse, if BuffFadeBySlot() were called on a
suppressed slot, it would restore the buff instead of clearing it.

Add explicit handling for SPELL_SUPPRESSED slots in each function:
check the suppressedid against the fade criteria and clear the slot
directly (set to SPELL_UNKNOWN) rather than calling BuffFadeBySlot().

Fixes #31
2026-01-31 02:27:36 +00:00
Vayle 0362cacf99 Skip DoBuffTic() for SPELL_SUPPRESSED buff slots
BuffProcess() calls DoBuffTic() on all valid-or-suppressed spells, but
DoBuffTic() accesses spells[buff.spellid] which for SPELL_SUPPRESSED
(0xFFFD) could read out-of-bounds memory. Add an explicit check to skip
DoBuffTic() for suppressed slots since they should only have their timer
decremented, not their effects ticked.

Fixes #30
2026-01-31 02:26:56 +00:00
Vayle 9d98f95317 Fix buff suppression state not persisting across zones
When a player zones while having suppressed buffs (via the spell
suppression system), the suppression state was not saved to the
database. On zone-in, suppressed buffs were restored as normal active
buffs, causing non-persistent illusions to be incorrectly removed.

Changes:
- Add 'suppressed' column to character_buffs table (tinyint, default 0)
- SaveBuffs(): Save suppressed flag (1 when buff is in SPELL_SUPPRESSED state)
- LoadBuffs(): Restore buffs in suppressed state when suppressed=1,
  setting spellid=SPELL_SUPPRESSED and populating suppressedid/
  suppressedticsremaining from the saved spell_id and ticsremaining
- LoadBuffs(): Skip suppressed buffs in the illusion/charm removal loop
  so they are not incorrectly stripped on zone-in

Fixes #33
2026-01-31 02:24:33 +00:00
Vayle b3c40242f0 Merge pull request #28 from Valorith/claude/skip-redundant-builds-o0cJ1
Skip redundant builds on merge when PR already passed
2026-01-25 00:19:43 -05:00
Claude 601af238e9 Skip redundant builds on merge when PR already passed
Add skip-duplicate-actions to avoid rebuilding on push to master when
the same code already built successfully on the PR. This saves CI time
and resources by detecting when file content (tree hash) matches a
previous successful run.

- Add pre_job that checks for duplicate runs using fkirc/skip-duplicate-actions
- PR builds always run (never skipped) to ensure status before merge
- Push builds to master skip if identical code already built successfully
- Both linux and windows jobs depend on pre_job skip check
2026-01-25 04:40:03 +00:00
Vayle dc36f19cf1 Merge pull request #27 from Valorith/copilot/include-dll-files-in-package
Include vcpkg shared libraries in Linux release artifact
2026-01-24 23:36:11 -05:00
copilot-swe-agent[bot] 02c0810561 Simplify vcpkg library count in packaging step
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-25 04:04:13 +00:00
copilot-swe-agent[bot] 4d97f1d303 Count vcpkg libs using null-delimited paths
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-25 04:02:44 +00:00
copilot-swe-agent[bot] 036ffbbedd Align vcpkg lib counting with existing pattern
Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com>
2026-01-25 04:01:23 +00:00