diff options
| author | Ovah <dreadkiller@gmx.de> | 2022-10-01 17:21:07 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-01 17:21:07 +0200 |
| commit | b47ef3ce90f6192784f8ce903b6738d568631809 (patch) | |
| tree | 6db340ab46755252d18316a8d4205331e75314da /src/server/shared | |
| parent | 2b8fc95fdec69ca5c057c2e63a1313d8165d44ea (diff) | |
Core/Spells: fixed up block mechanics (#28286)
* Ranged attacks can now be blocked
* Implement SPELL_ATTR3_COMPLETELY_BLOCKED
* Fixed a bug which was causing blocking to block entire spell effects regardless if the attribute was present or not
* Fixed a logic mistake which was causing blocks to roll twice (once for effect negation and once on hit)
* No longer send blocked miss conditions in spell_go packets when the spell is not completely blocked to match sniff data
Diffstat (limited to 'src/server/shared')
| -rw-r--r-- | src/server/shared/SharedDefines.h | 2 | ||||
| -rw-r--r-- | src/server/shared/enuminfo_SharedDefines.cpp | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/server/shared/SharedDefines.h b/src/server/shared/SharedDefines.h index b19c205d97b..0bdd89004f7 100644 --- a/src/server/shared/SharedDefines.h +++ b/src/server/shared/SharedDefines.h @@ -517,7 +517,7 @@ enum SpellAttr3 : uint32 SPELL_ATTR3_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr3 SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK = 0x00000002, // 1 Ignores subclass mask check when checking proc SPELL_ATTR3_UNK2 = 0x00000004, // TITLE Unknown attribute 2@Attr3 - SPELL_ATTR3_BLOCKABLE_SPELL = 0x00000008, // TITLE Blockable spell + SPELL_ATTR3_COMPLETELY_BLOCKED = 0x00000008, // TITLE Completely Blocked SPELL_ATTR3_IGNORE_RESURRECTION_TIMER = 0x00000010, // TITLE Ignore resurrection timer SPELL_ATTR3_UNK5 = 0x00000020, // TITLE Unknown attribute 5@Attr3 SPELL_ATTR3_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr3 diff --git a/src/server/shared/enuminfo_SharedDefines.cpp b/src/server/shared/enuminfo_SharedDefines.cpp index 31398718e2f..bc6b4d77638 100644 --- a/src/server/shared/enuminfo_SharedDefines.cpp +++ b/src/server/shared/enuminfo_SharedDefines.cpp @@ -658,7 +658,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr3>::ToString(SpellAttr3 value) case SPELL_ATTR3_UNK0: return { "SPELL_ATTR3_UNK0", "Unknown attribute 0@Attr3", "" }; case SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK: return { "SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK", "SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK", "1 Ignores subclass mask check when checking proc" }; case SPELL_ATTR3_UNK2: return { "SPELL_ATTR3_UNK2", "Unknown attribute 2@Attr3", "" }; - case SPELL_ATTR3_BLOCKABLE_SPELL: return { "SPELL_ATTR3_BLOCKABLE_SPELL", "Blockable spell", "" }; + case SPELL_ATTR3_COMPLETELY_BLOCKED: return { "SPELL_ATTR3_COMPLETELY_BLOCKED", "Completely Blocked", "" }; case SPELL_ATTR3_IGNORE_RESURRECTION_TIMER: return { "SPELL_ATTR3_IGNORE_RESURRECTION_TIMER", "Ignore resurrection timer", "" }; case SPELL_ATTR3_UNK5: return { "SPELL_ATTR3_UNK5", "Unknown attribute 5@Attr3", "" }; case SPELL_ATTR3_UNK6: return { "SPELL_ATTR3_UNK6", "Unknown attribute 6@Attr3", "" }; @@ -702,7 +702,7 @@ TC_API_EXPORT SpellAttr3 EnumUtils<SpellAttr3>::FromIndex(size_t index) case 0: return SPELL_ATTR3_UNK0; case 1: return SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK; case 2: return SPELL_ATTR3_UNK2; - case 3: return SPELL_ATTR3_BLOCKABLE_SPELL; + case 3: return SPELL_ATTR3_COMPLETELY_BLOCKED; case 4: return SPELL_ATTR3_IGNORE_RESURRECTION_TIMER; case 5: return SPELL_ATTR3_UNK5; case 6: return SPELL_ATTR3_UNK6; @@ -743,7 +743,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr3>::ToIndex(SpellAttr3 value) case SPELL_ATTR3_UNK0: return 0; case SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK: return 1; case SPELL_ATTR3_UNK2: return 2; - case SPELL_ATTR3_BLOCKABLE_SPELL: return 3; + case SPELL_ATTR3_COMPLETELY_BLOCKED: return 3; case SPELL_ATTR3_IGNORE_RESURRECTION_TIMER: return 4; case SPELL_ATTR3_UNK5: return 5; case SPELL_ATTR3_UNK6: return 6; |
