Commit Graph
7139 Commits
Author SHA1 Message Date
Shauren 0ca955897f Core/Spells: Remove all hardcoded restrictions for pick pocket spell effect and rely only on presence of pickpocket loot in db 2022-10-04 12:42:10 +02:00
Ovahlord ca677544ef Scripts/Grim Batol: use a direct DespawnOrUnsummon call instead of corpse delay for Drahga's Invoked Flaming Spirits 2022-10-03 20:56:36 +02:00
Ovahlord 1e4b062b1d buildfix 2022-10-02 19:31:03 +02:00
Ovahlord 2ad8b1ee6f Core/Spells: detached Zanzili Fire from Zanzil's AI script to be usable by Dark Simulacrum 2022-10-02 19:15:07 +02:00
Ovahlord 78a6d84689 Core/Spells: fixed Dark Simulacrum 2022-10-02 17:59:06 +02:00
Ovahlord ba0310ee97 nopch fix 2022-10-01 23:55:47 +02:00
Ovahlord ed027ffea9 Core/Spells: re-fix Nature's Bounty 2022-10-01 22:45:46 +02:00
Ovahlord b6f8a68d61 Core/Spells: fixed duration clamping for haste based periodic auras and added support for rolling any tick over
* roll over remaining time until next tick over into a refreshed periodic aura's duration
* this behavior is now being used for stackable spells, all HoTs and DoTs
* fixed adding extra ticks when at certain tick thresholds
* corrected implementation of SPELL_ATTR8_HASTE_AFFECTS_DURATION
* implemented SPELL_ATTR8_MELEE_HASTE_AFFECTS_PERIODIC
2022-10-01 13:47:14 +02:00
Shauren 75906f3d06 Core/Auras: Added support for SPELL_ATTR5_LIMIT_N limit to other number than just 1 2022-09-30 01:57:52 +02:00
Ovahlord 62b8db9f6e Core/Spells: cleaned up SpellAuraEffects::SetAmount helper and restore original handing of sending amounts 2022-09-30 00:40:37 +02:00
Ovahlord 3d62f2b44c Scripts/HoL: modernized Loken's script 2022-09-23 14:12:32 +02:00
Ovahlord 0899376714 Scripts/HoL: handle Volkhan's slay texts 2022-09-23 12:41:39 +02:00
Ovahlord 03715278bc Scripts/HoL: sync code with 335 PR 2022-09-23 12:17:25 +02:00
Ovahlord 26b5ec2770 build fix 2022-09-23 10:01:11 +02:00
Ovahlord 581b293164 Scripts/HoL: modernized object accessor data 2022-09-22 22:24:00 +02:00
Ovahlord 58a7357996 buildfix 2022-09-22 21:52:00 +02:00
Ovahlord 147a5e88d9 Scripts/HoL: reworked Volkhan encounter
* handle missing visuals
* modernized code
2022-09-22 21:47:00 +02:00
Ovahlord c6711adf8b Core/AI: ported SpellHit and SpellHitTarget refactor from 335 branch 2022-09-22 10:33:13 +02:00
Ovahlord bec87f7531 Scripts/Gilneas: fixed the gilnean crow AI not reacting to activating the traps 2022-09-17 12:03:15 +02:00
Ovahlord ef3632109d Core/Spells: ported SpellModOp definitions from master branch 2022-09-17 11:56:54 +02:00
Ovahlord 3203f04ac1 Scripts/HoO: fixed a crash in Temple Guardian Anhuur's script due to now supporting gameobject casters 2022-09-14 01:33:37 +02:00
Shauren ea4bc6c02a 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-09-13 14:36:32 +02:00
Ovahlord e3e4b2cf16 Core/Spells: dropped old dot clipping implementation and restored TC period and duration calculations in preparation of re-implementing it 2022-09-12 09:15:35 +02:00
Shauren ca7d36873f 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-09-12 09:15:31 +02:00
PolarCookie 81e5943bd0 Core/Spell: SpellAura Redux (#22794)
* typo and correction

* spell aura no longer shared between targets

_spellAura isolated

* SPELL_AURA_CONTROL_VEHICLE is not strictly single target spell

Steam Tank Control and Wyrmrest Commander

units can reseat themselves again

* Rename 9999_99_99_99_world.sql to 2019_03_08_00_world.sql
2022-09-12 09:15:23 +02:00
ariel- 1d1787f70a Scripts/Spells: fix Seaforium Blast script crash 2022-09-12 09:15:19 +02:00
ariel- b6fac86b71 Core/Spells: rework part 5: GameObject casting 2022-09-12 09:15:14 +02:00
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