Commit Graph
2123 Commits
Author SHA1 Message Date
Ovahlord 4430863a1e Core/Spells: Implement spell queue
As of patch 4.1 spell casts can now be queued up 400ms before a ongoing cast finishes or the global cooldown expires to deliver a smooth transitions between casts though emulators do not really benefit from it.

closes #224
2021-05-24 17:14:55 +02:00
Ovahlord 1325c8cb97 fixed a warning 2021-05-23 13:49:54 +02:00
Ovahlord 254b4eb011 Core/Spells: Drain Life's healing effect will no longer benefit from Soul Siphon and updated Soul Siphon's bonus check to Cataclysm 2021-05-23 12:59:39 +02:00
Ovahlord b5994ec6c5 Core/Units: improved logic for determining when a power update shall happen 2021-04-30 16:48:26 +02:00
Shauren 22eaf31bfa Core/Spells: Only interrupt spells with interrupt flag Combat when spell also has SPELL_ATTR0_CANT_USED_IN_COMBAT attribute 2021-04-29 20:37:18 +02:00
Shauren f3e0650886 Core/PacketIO: Reduce size of SMSG_UPDATE_OBJECT by trimming trailing zeros in values updatemask 2021-04-25 17:22:58 +02:00
Ovahlord 9ff4bbd085 Core/Spells: ported implementations of SPELL_AURA_DISABLE_CASTING_EXCEPT_ABILITIES and SPELL_AURA_DISABLE_ATTACKING_EXCEPT_ABILITIES from master branch
closes #93
2021-04-21 18:51:34 +02:00
ariel- 5c882e8788 Core/Unit: fixed Global cooldown cancelation on spell interrupt 2021-04-16 20:41:20 +02:00
Ovahlord b82943eab0 Core/Spells: renamed SPELL_ATTR5_HASTE_AFFECT_DURATION to SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC and renamed SPELL_ATTR8_UNK17 to SPELL_ATTR8_HASTE_AFFECTS_DURATION 2021-04-16 16:12:58 +02:00
Ovahlord eca1b5bcaa Core/Units: fixed comma based calculations for rewarding rage 2021-04-09 19:27:44 +02:00
Ovahlord 4faabd8e18 Core/Units: refactor MeleeSpellMissChance to use a SpellInfo argument instead of using spell IDs 2021-04-07 14:20:35 +02:00
Ovahlord 2165580350 Core/Units: fixed a inversed logic mistake when determining when to remove auras with SpellAuraInterruptFlags::UnderWater 2021-04-07 13:58:41 +02:00
Ovahlord c13c2ec421 Core/Spells: renamed SPELL_ATTR3_BLOCKABLE_SPELL to SPELL_ATTR3_COMPLETELY_BLOCKED and corrected its implementation 2021-04-07 13:22:19 +02:00
Ovahlord 51d5ad93cf Fixed build 2021-04-07 12:41:15 +02:00
Ovahlord 71356d7971 Core/Spells: added missing SPELL_ATTR10_IGNORE_POSITIVE_DAMAGE_TAKEN_MODS check to SpellBaseDamageBonusTaken 2021-04-07 12:40:05 +02:00
Ovahlord eb22ea3af3 Core/Units: added a missing check for SPELL_ATTR10_IGNORE_POSITIVE_DAMAGE_TAKEN_MODS when checking for SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN 2021-04-07 12:31:52 +02:00
Ovahlord 47ad0286b1 Core/Units: added a missing spell id check in MeleeSpellMissChance 2021-04-07 12:26:29 +02:00
Ovahlord c927bb7924 Core/Units: fixed a typo in MeleeDamageBonusTaken 2021-04-07 12:21:11 +02:00
Ovahlord 6052573c87 Core/Spells: defined and implemented SPELL_ATTR7_CANT_DODGE, SPELL_ATTR7_CANT_PARRY, SPELL_ATTR7_CANT_MISS, SPELL_ATTR8_CANT_BLOCK, SPELL_ATTR10_ALLOW_DEFENSE_WHILE_CASTING and SPELL_ATTR10_ALLOW_DEFENSE_WHILE_CHANNELING 2021-04-07 12:17:48 +02:00
Ovahlord 3fd333cff9 Core/Spells: defined and implemented SPELL_ATTR10_IGNORE_POSITIVE_DAMAGE_TAKEN_MODS 2021-04-07 11:38:23 +02:00
Ovahlord 83298b52a2 Core/Spells: ported SpellInterruptFlags updates from master branch and corrected some own implementations based on these new results 2021-03-25 15:53:26 +01:00
Ovahlord ca13843290 fixed build 2021-03-24 15:24:39 +01:00
Shauren fed82c1002 Core/Auras: Defined and implemented many new interrupt flags 2021-03-24 14:53:30 +01:00
Shauren 45df49c826 Core/Spells: Updated spell shapeshift form flags enum 2021-03-24 13:16:17 +01:00
Ovahlord c1cb11c19f Core/PacketIO: implement and enable SMSG_PLAY_SPELL_VISUAL 2021-03-12 21:56:15 +01:00
Ovahlord bc0703e55c Core/Units: fixed more static analysis issues 2021-03-11 19:53:48 +01:00
Ovahlord 218dff6847 Core/Units: further improvements for 7a08639397
Fixed an edge case in which units with SPELL_AURA_MOD_DAMAGE_FROM_MANA would deal zero damage when their total bonus or scaling coefficient would be zero
2021-02-28 17:24:04 +01:00
Ovahlord 7a08639397 Core/Units: fixed a typo that was causing units without mana to deal no spell damage anymore 2021-02-28 16:59:12 +01:00
Ovahlord 2711267480 Core/Spells:
* handle PLAYER_FIELD_MOD_HEALING_DONE_PCT in SPELL_AURA_MOD_HEALING_DONE_PERCENT
* handle PLAYER_FIELD_MOD_HEALING_PCT in SPELL_AURA_MOD_HEALING_PCT
2021-02-27 19:07:39 +01:00
Ovahlord cd1de5078d Core/Spells: improve implementation of SPELL_AURA_MOD_DAMAGE_FROM_MANA 2021-02-27 16:05:38 +01:00
Ovahlord ba26ff03ba fixed another warning 2021-02-27 13:49:28 +01:00
Ovahlord 6e3539df30 Core/Spells:
* corrected implementation of SPELL_AURA_MOD_SPELL_POWER_PCT
* ported implementation of SPELL_AURA_OVERRIDE_SPELL_POWER_BY_AP_PCT from master branch
* dropped some deprecated class script handlings and moved Nourish 20% healing bonus to spell script
2021-02-27 12:37:14 +01:00
Ovahlord 14cf32da88 Core/Spells: minor cleanup for ad175f11f6 2021-02-27 00:17:01 +01:00
Ovahlord ad175f11f6 Core/Spells: renamed SPELL_AURA_MOD_HEALING_FROM_TARGET_HEALTH to SPELL_AURA_MOD_HEALING_DONE_PCT_VERSUS_TARGET_HEALTH and make its implementation look a bit prettier 2021-02-26 23:33:56 +01:00
Metalaka 4343dd6d55 Core/Unit: Improve Glancing Blow calculation 2021-02-21 20:22:03 +01:00
Ovahlord 43d76be2fd fixed a warning 2021-02-20 23:30:46 +01:00
Ovahlord ca288aaab3 Core/Units: updated crit healing bonus calculation with patch 4.2.0 change 2021-02-20 23:13:45 +01:00
Ovahlord c288745598 Revert "Core/Unit: Improve Glancing Blow calculation"
This reverts commit 3d2013e168.
2021-02-20 19:11:30 +01:00
Metalaka 3d2013e168 Core/Unit: Improve Glancing Blow calculation 2021-02-19 18:47:47 +01:00
Ovahlord 0299fa4fe1 Core/Misc: replace boost::optional with std::optional 2021-02-19 14:07:43 +01:00
Shauren ef25a19326 Core/Units: Allow mind controlling non-controllable vehicles (for example players that become vehicle during boss encounters or creatures that only are vehicles to show non standard power type)
Closes #24562
2021-02-19 13:15:08 +01:00
Ovahlord c3e9861723 Core/Movement: implement creature movement info table to override movement speeds based on movement IDs
thx to @xvwyh for providing initial table data for the most common entries
2021-02-16 16:56:10 +01:00
Ovahlord cc25457fe8 Core/Units: send AI reactions uppon entering combat instead of attacking an enemy 2021-01-31 14:08:58 +01:00
Shauren 69fb775c2d Core/Spells: Defined new spell attributes 2021-01-15 18:23:09 +01:00
Giacomo Pozzoni 5e3b57bae7 Core/Unit: Fix movement hiccups in water
* Core/Unit: Allow to define Units which can enter water but cannot swim

Allow to define Units which can enter water but cannot swim, i.e. crabs walking at the bottom of a sea.

* Add UNIT_FLAG_SWIMMING to creatures when entering combat

* Fix charmed creatures not entering water

* Always allow Creatures controlled by players to enter water

* Add swimming flag when possessing a unit and remove it properly at the end, even if the creature engaged combat before and after.
When adding/removing UNIT_FLAG_SWIMMING manually calling Creature::RefreshSwimmingFlag(true) might be required.
2021-01-11 12:33:54 +01:00
Ovahlord c3831d30e5 Core/Packets: converted SMSG_PARTY_MEMBER_STATE and SMSG_PARTY_MEMBER_FULL_STATE to packet class
* handle GROUP_UPDATE_FLAG_PHASE when changing phases
* define and implement GROUP_UPDATE_FLAG_WMO_GROUP_ID
2021-01-09 16:42:53 +01:00
Ovahlord 754c138f89 Core/Spells: ported CastSpell unclusterfucking from 3.3.5 branch 2020-11-04 22:37:11 +01:00
Ovahlord 88024e0e74 Core/Packets: converted more packets to packet class 2020-11-02 17:51:08 +01:00
Ovahlord 3d29ffeb1a Partial revert of af9c6b4483
send the packet to all other players instead
2020-10-24 11:24:40 +02:00
Ovahlord af9c6b4483 Core/Units: do not send loot list packets to players when they are not in a group 2020-10-24 10:03:29 +02:00