Commit Graph
7112 Commits
Author SHA1 Message Date
ariel- 4bb8c93df8 Core/Spells: rework part 4: iterate over effects first
Implement far spell queue processing

# Conflicts:
#	src/server/game/Spells/Spell.cpp
2022-09-12 09:15:13 +02:00
ariel- 3fbbea61bd Core/Spells: rework part 3: spells only handle at most one UnitAura and one DynObjAura during its lifetime
# Conflicts:
#	src/server/game/Spells/Auras/SpellAuras.h
2022-09-12 09:15:13 +02:00
Ovahlord 36b5e120af build fix 2022-09-12 09:15:12 +02:00
Ovahlord 3e89f6c8e3 Core/Scripts: remove hack that caused aura to not be applied and saved twice on owned auras, causing an error on save
- This is handled by group stack rules actually
- Also reset removed aura counter when cleaning removed auras
2022-09-12 09:15:12 +02:00
ariel- dc46f0621b Core/Spells: remove 'Vanish Purge' hack, the spell is present on DB and is copy of one in vanilla DBC
Thanks to killerwife for the heads-up
2022-09-12 09:15:10 +02:00
Ovahlord cecaedfb80 Scripts/Misc: added a few pointer checks in JustDied hook overrides 2022-09-12 09:15:10 +02:00
Ovahlord 2b9d976ed1 fixed build 2022-09-12 09:15:09 +02:00
ariel- 276d6e49f1 Core/Entities: killed Creature::SetInCombatWithZone and replaced with AI version
Closes #12108 (again)

(cherry picked from commit 7c9722a4ae08b5f283f6a085a411e37604a7da9f)

# Conflicts:
#	src/server/game/AI/SmartScripts/SmartScript.cpp
#	src/server/game/Entities/Creature/Creature.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
#	src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
#	src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
#	src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
#	src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
#	src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
#	src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
2022-09-12 09:15:09 +02:00
ariel- c9e732b0bf This hook modifies damage AFTER it has been reduced by target auras/armor/resistances etc, it's useful if you want to scale damage by a factor, but not to add flat bonuses.
We're fixing those by moving calculation to Launch phase, where target taken bonuses haven't been used yet.

- Bronjahm: Magic's Bane
- BPC: Shadow Prison
- Oculus: Shock Lance
- Ymiron: Dark Slash (extra fix, it was wrongly damaging half of total health, it's supposed to be half of CURRENT health!)
- DK: Raise Ally Thrash spell (also extra fix: corrected formula)
- Warrior: Bloodthirst (shouldn't matter much as it's damage class none and those don't get bonuses by default)
- Warrior: Concussion Blow
- Warlock: extra fix for Haunt, healing part shouldn't scale with spell power
2022-09-12 09:15:08 +02:00
Ovahlord b4f9844ce0 Scripts/Misc: added a few more nullptr checks in DamageTaken hooks 2022-09-12 09:15:07 +02:00
ariel- 51045c3b50 Core/Scripts: added nullptr checks to DamageTaken hooks
Since cb9e72e521d3cc415dd15bf6912c87f89e41b92a attacker may not be in world when hook is called

(cherry picked from commit 0db5c2df3fe56f42293865e87ec781cd4d41598b)

# Conflicts:
#	src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
#	src/server/scripts/World/npcs_special.cpp
2022-09-12 09:15:07 +02:00
ariel- 8054d99c8a Core/Scripts: fix some spells double dipping from done/taken bonuses 2022-09-12 09:15:07 +02:00
ariel- 1d3fbff332 Core/Auras: removed caster dependency from core
- Decoupled Unit logic: split of spell critical chance into done (caster bonuses) and taken (target bonuses), this allows to precalculate caster bonuses on aura apply and then check victim's auras on damage/healing calc
- Made static a bunch of methods (they no longer have this pointer because they are now called from periodic handlers which may or may not have an active caster in world)
- Simplified all AuraEffect bonuses into AuraEffect::_amount, no more duplicated code
- Critical chance and whether or not caster is player owned unit (for resilience calcs) is now saved one level upper, on Aura itself (it's impossible as of 3.3.5 to have different effects with different critical chances)
- Minor cleanup of SPELL_DAMAGE_CLASS_NONE and Arcane Potency (#18813) crit handling
2022-09-12 09:15:04 +02:00
Ovahlord 24b84ba980 Core/Spells: Eye for an Eye will now deal damage to the attacker instead of attempting (and failing) to target the caster himself 2022-09-12 09:15:03 +02:00
Ovahlord 3c2d2880b7 Core/Spells: Grand Crusader will now only have a chance to proc by hitting the trigger spell's primary target 2022-09-12 09:15:03 +02:00
Ovahlord 8d5544d20c Core/Spells: fixed Judgements of the Just talent 2022-09-12 09:15:03 +02:00
Ovahlord 073f7d34db Core/Spells: fixed Speed of Light and Denounce talents 2022-09-12 09:15:03 +02:00
Ovahlord 45af6bbd4b Scripts/Firelands: Burning Blast will now deal 10% increased damage instead of multiplying the entire damage 2022-07-23 23:12:18 +02:00
Ovahlord f09a7a37cc Scripts/Firelands: Majordomo Staghelm's Leaping Flames will now prioritize ranged classes and specs and falls back to any random target when no eligible target has been found 2022-07-23 22:47:54 +02:00
Ovahlord b13bcc85b0 Scripts/BWD: updated Nefarian's End encounter for new transport mechanics 2022-06-24 23:07:01 +02:00
Ovahlord 2a19782397 Core/Spells: corrected damage bonus effect handling for Shadow Word: Death 2022-06-24 21:50:20 +02:00
Jeremy c5f81dc58f Core/ZoneScript: Add "invoker" param to ProcessEvent 2022-06-19 18:36:41 +02:00
Ovahlord edc3940f37 Scripts/HoO: updated Lift of the Makers console to new transport handling 2022-06-19 18:16:01 +02:00
Shauren 786131a162 Core/Transports: Localized transport objects within each map
Transports no longer move between maps, each map gets a separate copy of the transport object and players are moved between them when transferring to another map
This means they can no longer be globally looked up in HashMapHolder
2022-06-19 18:11:20 +02:00
Ovahlord aa0b4ab7f5 Core/Misc: resolved more cherrypick mistakes 2022-06-19 00:38:26 +02:00
Shauren 25465699f7 Core/GameObjects: Transport (type 11) improvements
* Fully synchronize serverside animation progress with client
* Implemented updating passenger positions on elevators
* Removed visibility hack for elevators that always forced CreateObject packet to be sent to client
2022-06-18 21:36:17 +02:00
Shauren 43c1876970 Core/Transports: Store information about continent transports 2022-06-18 18:53:25 +02:00
Ovahlord 6e9ec1a4bf Core/Transports: undo all custom transport changes as preparation for cherry picks 2022-06-18 18:37:14 +02:00
Ovahlord 6b4056d8e8 Core/Spells: Will of the Necropolis will now reset the cooldown of Rune Tap instead of Blood Tap 2022-06-14 17:43:10 +02:00
Ovahlord 7438afca74 Core/Spells: corrected the multiplier for Resurgence's mana gain effect 2022-06-13 14:24:33 +02:00
Ovahlord 1383fa8379 Core/Spells: fixed typo in Long Arm of the Law's handling that was causing the talent to use spellId 1 instead of the specified spell 2022-06-12 22:55:44 +02:00
Ovahlord a6b07c2c9d Scripts/Firelands: Ragnaros' Magma Trap will now trigger Magma Trap Vulnerability only on heroic difficulty 2022-06-02 22:16:12 +02:00
Ovahlord 2ea89f9734 Core/Spells: fixed druid t12 restoration 4p bonus 2022-06-02 22:04:08 +02:00
Ovahlord 4dff2d5ad8 typo fix 2022-06-02 21:49:06 +02:00
Ovahlord c7e287ccb4 Core/Spells: Blaze of Life triggered by Eye of Blazing Power will now only target the most injured raid or party member instead of all 2022-06-02 21:46:45 +02:00
Ovahlord 6645a97434 buildfix² 2022-05-01 19:07:26 +02:00
Ovahlord 2af43011e3 buildfix 2022-05-01 19:03:24 +02:00
Ovahlord 80a5956574 Core/Spells: fixed Glyph of Wild Growth not causing Wild Growth to hit additional targets 2022-04-29 22:04:26 +02:00
Ovahlord 3fa069b8fc Scripts/EndTime: added missing repeat timer for Flarecore after Jaina has blinked to a new location 2022-04-26 19:48:23 +02:00
Ovahlord ff783b2388 Scripts/EndTime: implement Echo of Jaina encounter 2022-04-26 19:44:32 +02:00
Ovahlord 22032c239b Scripts/FL: increase Lord Rhyolith's turning sensitivity by roughly 25% 2022-04-17 01:04:54 +02:00
AG 58cc1d7f3f Core/Spells: handle night elf racial bonus for Shadowmeld and no longer allow Pounce and Ravage being casted while using Shadowmeld (#348) 2022-04-13 20:42:29 +02:00
Ovahlord 8baf567ce1 Core/Spells: Herbouflage will now remove its regeneration auras when cancelled 2022-04-03 01:00:44 +02:00
Ovahlord befe4fe8b4 Scripts/FL: interrupt Ragnaros' spells when defeating him on normal difficulty 2022-04-02 22:25:06 +02:00
Ovahlord 600ffafd1f build fix 2022-04-02 19:11:16 +02:00
Ovahlord 7943bfb483 Core/Spells: Blood and Thunder will now only trigger with Rend effects applied by the caster
*optimized the checks while at it
2022-04-02 18:59:47 +02:00
Ovahlord 99c47ca94d f94ce79543 followup 2022-04-02 17:09:51 +02:00
Ovahlord f94ce79543 Core/Spells: Enraged Regeneration will now render the caster immune to other enrage effects and can no longer be activated via Vengeance 2022-04-02 17:03:09 +02:00
Ovahlord b629c65acb Core/Spells: Heroic Fury will now reset the cooldown of Intercept
* updated spell proc entry for Gag Order

ref #342
2022-04-01 00:12:45 +02:00
Ovahlord 1b637526d9 Core/Spells: reworked Execute damage and rage consumption calculations to fix an issue that was causing the additional rage to be less effective as intended
ref #342
2022-03-31 22:08:45 +02:00