Commit Graph

1269 Commits

Author SHA1 Message Date
Shauren
e98e1283ea Core: Updated to 10.0.2 2022-12-04 15:13:20 +01:00
Shauren
1011cb73c9 Core/GameObjects: Implemented gathering nodes (gameobject type 50) 2022-10-22 02:07:59 +02:00
Shauren
133334a902 Core/Loot: Implemented personal loot and tag sharing for non-boss loot 2022-10-17 23:11:46 +02:00
Shauren
9fb4c1ca02 Core/Gossip: Implemented GossipOptionNpc.AzeriteRespec 2022-10-14 20:34:58 +02:00
Shauren
9b924522d0 Core/Instances: Delete InstanceSaveMgr and replace most of its uses with new InstanceLockMgr 2022-10-04 00:19:38 +02:00
Ovah
ad2df01b2c Core/Spells: make Spell::CheckMovement respect the current spell state (#28315) 2022-10-03 15:52:49 +02:00
Ovah
9f08471827 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

(cherry picked from commit b47ef3ce90)
2022-10-01 18:42:04 +02:00
Shauren
b2eeca702c Core/Spells: Move entering combat for caster and calculating crit chance to separate function called only once for each target instead of doing it once for every effect on every target
(cherry picked from commit f3384fecaa)
2022-09-05 22:23:03 +02:00
Shauren
a7b7ad94f8 Core/Spells: Simplify combat flagging code on spell launch and impact
(cherry picked from commit e2840a3f81)
2022-09-05 22:23:02 +02:00
Alan Deutscher
ff99952dfb Core/Spells: Delay combat flagging for spell targets until spell missile lands
(cherry picked from commit b59706c8b6)
2022-09-05 22:23:02 +02:00
Shauren
7957e2d380 Core/Loot: Allocate Loot separately from objects 2022-09-01 20:07:58 +02:00
Shauren
6713fa4c93 Core/Scripts: Added CalcCastTime spell script hook 2022-07-29 20:24:28 +02:00
Teleqraph
47086f9e69 Core/Spells: OnPrecast script should be called before ReSetTimer (#28146) 2022-07-26 23:07:22 +02:00
Shauren
073a036d84 Core/Battlefields: Refactor Battlefield creation to be linked to host map creation instead of having globally accessible objects 2022-07-19 23:18:19 +02:00
Shauren
b8e52fd90b Core/Maps: Made instance_template no longer required to create and enter instance maps 2022-07-17 19:14:13 +02:00
Jinnaix
84996901cc Core/Spells: Correct flagging spell caster for pvp when healing/buffing friendly creatures - it should only happen if target is in combat (#27977)
(cherry picked from commit b155209ec4)
2022-06-10 19:25:31 +02:00
Gildor
b52ce8e65e Core/Spells: Increase search radius for avoid problems with some spells that can't find units with huge combat reach (#27827)
(cherry picked from commit 70767717c1)
2022-06-10 15:29:55 +02:00
Shauren
104c2ddb6a Core/Spells: Implemented SPELL_ATTR6_TAPS_IMMEDIATELY 2022-05-08 19:47:43 +02:00
Shauren
de592386dc Core/Spells: Autorepeat casting fixes
* Fixed cast bars of ranged spells not disappearing when canceled while autoshooting
* Replaced hacky 500ms delay on non auto shot autorepeat spells with native spell cast time (wands have 500ms cast time)
* Update cooldowns before attempting to cast autorepeat spells (for cases when cooldown ends on the same server tick as cast attempt)
2022-05-08 15:54:15 +02:00
Shauren
538fa8e97f Core/Spells: Cleanup movement checks in spells - use correct interrupt flags 2022-05-07 23:31:55 +02:00
Shauren
94aac14b4d Core/Spells: Rename SpellAttr6 to use official attribute names 2022-05-06 20:23:13 +02:00
Shauren
c77017edcf Core/Spells: Implemented SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT and SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT 2022-05-02 20:06:00 +02:00
Shauren
2ff29ce1e8 Core/Spells: Implemented SPELL_ATTR5_TREAT_AS_AREA_EFFECT 2022-05-02 19:35:53 +02:00
Shauren
076c63c766 Core/Spells: Implemented SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED 2022-05-02 19:29:51 +02:00
Shauren
acda6f9dcf Core/Spells: Implemented SPELL_ATTR5_NOT_ON_PLAYER and SPELL_ATTR5_NOT_ON_PLAYER_CONTROLLED_NPC 2022-05-02 18:21:01 +02:00
Shauren
738f285432 Core/Spells: Rename SpellAttr5 to use official attribute names
* Implemented SPELL_ATTR8_HASTE_AFFECTS_DURATION
2022-05-02 01:11:38 +02:00
Shauren
8d16a79dea Core/Spells: Rename SpellAttr4 to use official attribute names
* Corrected implementation of SPELL_ATTR4_CLASS_TRIGGER_ONLY_ON_TARGET
* Implemented SPELL_ATTR4_NO_HELPFUL_THREAT
* Implemented SPELL_ATTR4_NO_PARTIAL_IMMUNITY
* Implemented SPELL_ATTR4_ALLOW_PROC_WHILE_SITTING
* Implemented SPELL_ATTR4_USE_FACING_FROM_SPELL
* Implemented SPELL_ATTR4_BOUNCY_CHAIN_MISSILES
* Implemented SPELL_ATTR4_AURA_NEVER_BOUNCES
* Implemented SPELL_ATTR4_AURA_BOUNCE_FAILS_SPELL
* Implemented SPELL_ATTR4_AURA_IS_BUFF
* Implemented SPELL_ATTR5_MELEE_CHAIN_TARGETING

* Implemented SpellEffectAttributes::ChainFromInitialTarget
2022-05-01 20:01:13 +02:00
Shauren
88d7b58a3d Core/Spells: Rename SpellAttr3 to use official attribute names
* Implemented SPELL_ATTR3_NO_AVOIDANCE
* Implemented SPELL_ATTR3_ONLY_PROC_OUTDOORS
* Implemented SPELL_ATTR3_ONLY_PROC_ON_CASTER
* Implemented SPELL_ATTR3_PVP_ENABLING
* Implemented SPELL_ATTR3_SUPPRESS_CASTER_PROCS
* Implemented SPELL_ATTR3_SUPPRESS_TARGET_PROCS
2022-04-30 16:57:32 +02:00
Shauren
dda375b986 Core/Spells: Rename SpellAttr2 to use official attribute names
* Corrected implementation of SPELL_ATTR1_ALLOW_WHILE_STEALTHED
* Implemented SPELL_ATTR2_RETAIN_ITEM_CAST
* Implemented SPELL_ATTR2_ALLOW_WHILE_INVISIBLE
* Implemented SPELL_ATTR0_PROC_FAILURE_BURNS_CHARGE
* Implemented SPELL_ATTR2_PROC_COOLDOWN_ON_FAILURE
* Implemented SPELL_ATTR2_NO_TARGET_PER_SECOND_COSTS
* Implemented SPELL_ATTR2_DO_NOT_REPORT_SPELL_FAILURE
* Implemented SPELL_ATTR1_REQUIRE_ALL_TARGETS
* Implemented SPELL_ATTR2_CHAIN_FROM_CASTER
* Implemented SPELL_ATTR2_NO_ACTIVE_PETS
* Implemented SPELL_ATTR2_ENCHANT_OWN_ITEM_ONLY
2022-04-28 18:31:26 +02:00
Shauren
c88b602a2c Core/Spells: Rename SpellAttr1 to use official attribute names
* Implemented SPELL_ATTR1_NO_SKILL_INCREASE, SPELL_ATTR1_AURA_STAYS_AFTER_COMBAT, SPELL_ATTR1_DISPEL_ALL_STACKS
2022-04-25 22:16:56 +02:00
Shauren
a31e681944 Core/Spells: Rename SpellAttr0 to use official attribute names 2022-04-24 18:40:10 +02:00
Shauren
8c63d20190 Core/Spells: Add one more allowed case for CastSpellTargetArg constructor
(cherry picked from commit 3f55647b3e)
2022-04-01 20:36:40 +02:00
offl
1bb63f69ef Core/AI: Change m_originalCaster to m_caster when calling OnSpellStart (#27815)
(cherry picked from commit ad5129e74b)
2022-03-26 15:15:53 +01:00
offl
050f55b62f Core/AI: OnSpellCast, OnSpellFailed, OnSpellStart hooks (#27704)
(cherry picked from commit 3dca705acc)
2022-03-26 15:15:46 +01:00
trickerer
6c9bde098b Core/Combat Improve extra attacks handling (#26859)
* Core/Combat Improve extra attacks handling

* Remove unnecessary _lastDamagedTargetGuid check

* Add missing initialization of _lastExtraAttackSpell. Do not use hardcoded spell ids.

* Partially revert 9f90b83501

(cherry picked from commit 084f8f3ded)
2022-03-19 22:37:41 +01:00
Ovah
60119ba850 Core/Spells: implement SpellInfo helper to filter for relevant mechanic immunities in spell_start packet (#26183)
* Core/Spells: implement SpellInfo helper to filter for relevant mechanic immunities when sending SMSG_SPELL_START packets.

According to sniff analysis Blizzard does not send all mechanic immunities of creatures but instead only the ones that are responsible for actual interrupts which are MECHANIC_INTERRUPT  and MECHANIC_SILENCE. Additionally we no longer send immunities for instant cast spells as sniffs confirm that they are not sent for spells without a cast time.

(cherry picked from commit 6215cb4e00)
2022-03-08 00:31:02 +01:00
offl
e72264cfbd Core/Misc: Define / rename attributes and flags (#26315)
Co-authored-by: Trond B. Krokli <38162891+illfated@users.noreply.github.com>
(cherry picked from commit e6d9d9ead9)
2022-03-07 23:35:21 +01:00
Gildor
6cd16b0ca9 Core/Spells: Aura refresh improvements (#25511)
(cherry picked from commit c13ccaab5c)
2022-02-28 16:04:48 +01:00
Ovah
d1594c7295 Core/Spells: unify OnSpellCastInterrupt and OnSuccessfulSpellCast hooks into OnSpellCastFinished (#25522)
* added support for calling the hook when completing a channeled spell as well

(cherry picked from commit 77aa058504)
2022-02-28 14:21:08 +01:00
Shauren
3798de4b39 Core/Spells: Fixed spell Launch phase being handled at incorrect time for spells with LaunchDelay 2022-02-14 00:16:03 +01:00
Shauren
ad4f4bfab7 Core/Misc: Minor game include cleanup 2022-02-13 00:49:10 +01:00
Shauren
d92f25478a Core/Spells: Ignore existing cooldown for spells using TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD instead of only skipping setting new cooldown 2022-02-10 22:01:52 +01:00
Shauren
02979daf76 Core/Auras: Proc flag updates
* Rename to official names
* Corrected logic selecting flags for each spell cast - determine them by attributes instead of DmgClass
* Implemented new proc flags (PROC_FLAG_CAST_ENDED, PROC_FLAG_LOOTED)
2022-02-10 21:11:07 +01:00
Shauren
7ff411013c Core/Auras: Implemented ProcFlags2 2022-02-10 12:38:31 +01:00
Shauren
68a662ae04 Core/Spells: Add type safety to proc related functions - using enum arguments instead of plain integers 2022-02-10 12:25:27 +01:00
Shauren
3844c79adb Core/Spells: Load entire proc flags array from db2 2022-02-09 23:46:29 +01:00
Shauren
8e2d1e328e Core/Spells: Pass cast item level to triggered spells
* Fixes value on trinkets like Ignition Mage's Fuse
2022-02-08 21:36:31 +01:00
Seyden
66509502f4 Core/Spells: Implement CAST_FLAG_EX_IGNORE_COOLDOWN - causes spells to not automatically trigger cooldown clientside (#27717) 2022-02-07 21:25:27 +01:00
Shauren
a8cace4c70 Core/Spells: Do not register instant spells in Unit current spell containers when cast with TRIGGERED_IGNORE_CAST_IN_PROGRESS
This lets these spells be cast without interrupting the other spell that is currently being cast
Side effect of this change is that these instant spells cannot be interrupted
2022-02-06 21:59:41 +01:00
Ovah
f70161dcc5 Core/Spells: fix a possible crash when a target that has been focused during spell casts disappears
(cherry picked from commit 0d152e932c)
2022-02-06 00:36:00 +01:00