Commit Graph

674 Commits

Author SHA1 Message Date
ariel-
50a3ce5703 Core/Spell: revamp of immunities system
- Spell attributes research
- Container optimization
- Do not skip damage immunity checks on SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY present
- Added additonal arguments support to SendCastResult / CheckCast, spells can now send proper error messages
- Loads spell immune masks/states/effects at startup.
- This cached info is used whenever a spell cast requires immunities to be known beforehand (to see if an aura could be applied for example)

Closes #16658
Closes #16901
Closes #18114
2016-11-12 17:58:00 -03:00
ariel-
5cb8409f1e Core/Spell: move attribute helpers to spellInfo
- Renamed CheckEffectExecuteData to AssertEffectExecuteData and made const, better reflects its purpose
- Added missing attribute check to IsNextMeleeSwingSpell
- Reworked SPELL_ATTR4_CAST_ONLY_IN_OUTLAND attr check (researched behavior)
2016-11-12 17:12:42 -03:00
ariel-
b3a4815067 Core/Spells: workaround stealth interaction with Death and Decay and GameObject casts
Closes #10179
Closes #16154
2016-10-30 00:16:45 -03:00
ariel-
bea0c01964 Core/Spells: moved handling of SPELL_ATTR0_CU_DONT_BREAK_STEALTH inside proc system.
Fixes additional issues with spells that shouldn't be breaking stealth and had this attribute
2016-10-25 22:10:55 -03:00
ariel-
5c1dfce168 Core/Spell: do positivity spell checks only against actually hitted effects instead of the whole spell
Closes #18097
2016-10-18 21:00:17 -03:00
ariel-
2d0fb356de Core/Spell: clear auras of channeled spells if channeling is cancelled due to invalid targets (dead or w/e)
Closes #14859
Closes #15186
2016-10-17 04:33:36 -03:00
ariel-
9b0fa51022 Core/Globals: compute aura diminishing return info at startup and cache it
Core/Entities: Save diminish return on an array instead of a linked list
2016-10-17 01:52:40 -03:00
Shauren
1c7f099297 Core/Items: Defined all item flags
(cherry picked from commit ef29f32965)
2016-10-11 19:46:29 -03:00
ariel-
4cdbc1a09b Core/Spell: Fix 2 more off by one probability calc and duplicated logic in spell hit roll 2016-10-09 20:18:07 -03:00
ariel-
d078029124 Revert "Core/Unit: prevent m_extraAttacks underflow. Fixes a freeze with SPELL_EFFECT_ADD_EXTRA_ATTACKS"
This reverts commit f09e7cbbfe.
2016-10-07 12:50:08 -03:00
ariel-
f09e7cbbfe Core/Unit: prevent m_extraAttacks underflow. Fixes a freeze with SPELL_EFFECT_ADD_EXTRA_ATTACKS 2016-10-05 22:46:26 -03:00
ariel-
b5e8e0a5db Core/Auras: reset periodic aura timers by default. Except when aura comes from triggered spell
Closes #17961
2016-10-05 03:10:05 -03:00
ariel-
d9e4c8e04f Core/Spells: add Target Processing (SMSG_SPELLLOGEXECUTE) to LAUNCH_TARGET phase.
Move EffectInterruptCast to LAUNCH_TARGET Phase.

Closes #3718
Closes #6042
2016-10-04 23:35:50 -03:00
ariel-
e641d0c7d7 Core/Spells: Implementation of QAston proc system
- Move checks from Unit::IsTriggeredAtSpellProcEvent (old system) to Aura::IsProcTriggeredOnEvent (new system)
- Templatize SpellModOp param of Player::ApplySpellMod, also killed charge counter from SpellModifier and Player system for handling charges... no point in having 3 different systems doing the same thing
- Automatically add default entries to spellProcMap, based on spellinfo (else auras won't proc without an entry) Based on old Unit::ProcDamageAndSpellFor
- Old Unit::ProcDamageAndSpellFor renamed to Unit::ProcSkillsAndReactives and made private, will no longer handle auras.
- Start making use of HealInfo::AbsorbHeal in unit calculations, add effective healing info to HealInfo struct
- Changes in spell reflection system, emulates old behaviour, delaying aura drop
- Removed old charge count hacks in SpellMgr::LoadSpellInfoCorrections
- Removed bogus error log when procChance is 0: Some auras have initial 0 procChance but modified by SPELLMOD_CHANCE_OF_SUCCESS
- Fixed TriggerAurasProcOnEvent logic that tried to trigger twice from actor.
- Allow non damaging spells with DamageClass Melee or Ranged to proc character enchants. Ref issue #17034:

  * http://web.archive.org/web/20110309092008/http://elitistjerks.com/f47/t49865-paladin_retribution_pve/
  * When an auto-attack lands (does not dodge/parry/miss) that can proc a seal the of the following things happen independently of each other (see 2 roll system).

  * 1) A "hidden strike" which uses melee combat mechanics occurs. If it lands it refreshes/stacks SoV DoT. Only white swings can trigger a refresh or stack. (This hidden strike mechanic can also proc things like berserking..)
  * 2) A weapon damage based proc will occur if you used a special (CS/DS/judge) or if you have a 5 stack (from auto attacks). This attack can not be avoided.

  * Holy Vengeance is the "hidden strike" it has an apply aura effect and damage class melee.
- Fixed Blood Tap interaction with Death Runes (btw, don't know what was going on with those MiscValueB, spell 45529 doesn't have any MiscValueB in SPELL_EFFECT_ACTIVATE_RUNE)
- Ported some AuraEffect checks from old Unit.cpp function. added new AuraScript hook to check procs of an specific effect
- Allow only AuraEffects that passed the check to proc, this won't block whole aura from proccing (and lose charges) if at least one of the effects procs, though
- Changes in spell mod system (for SPELLMOD_CASTING_TIME). fixes #17558.
- Added an exception for SPELLMOD_CRITICAL_CHANCE too, fixes #15193
2016-10-04 20:21:55 -03:00
joschiwald
625ca6ec1c Core/Spells: fixed SPELL_ATTR5_USABLE_WHILE_STUNNED 2016-10-02 23:32:14 +02:00
ariel-
03e21d2fad Core/Spells: Implemented SPELL_ATTR6_NOT_RESET_SWING_IF_INSTANT.
Closes #1765
2016-10-02 00:24:47 -03:00
joschiwald
8024ae4d26 Core/Spells: use spellinfo helper methods
(cherry picked from commit 12a52595ed)
2016-10-02 00:25:21 +02:00
ariel-
08e0390d95 Core/Spell: do not cast interrupt effect if the spell did not hit 2016-09-12 12:41:02 -03:00
ariel-
746b838870 Core/Spells / Scripts: Fix Lock and Load. Closes #16731 2016-09-04 04:21:04 -03:00
ariel-
4829cca9fb Core/Spell: no need to bloat existing parameter lists. (f81754a306 follow up) 2016-09-02 03:59:14 -03:00
ariel-
f81754a306 Core/Spells: register SPELLMOD_CRITICAL_CHANCE in casting spell modifiers. 2016-09-01 01:34:17 -03:00
ariel-
3aa145cbe1 Core/Spells: Remove spellmods from SpellMod owner instead of caster (needed so pet casts properly remove aura charges) 2016-09-01 01:14:02 -03:00
ariel-
11f6801a5c Core/Spells: fix Bullheaded immunities
Closes #421
2016-08-31 23:12:57 -03:00
Shauren
39311e0ce8 Typo fix 2016-08-21 18:40:06 +02:00
mik1893
6d07fbf07c Core/Spells: Fixed spells like Shadowform, Tricks of the Trade, Misdirection getting stuck in unusable state clientside if they failed earlier because of GCD
Closes #657
Closes #12913
Closes #17376
2016-08-21 11:32:42 +02:00
Treeston
6f85422f0b Core/Spells: Fix orientation- and targeting-related issues if the creature isn't currently engaged in combat. (#17120)
Also disable spell focus system for vehicle control auras.

Closes #16572
Closes #17016
2016-08-21 11:07:38 +02:00
Treeston
8deda7ed7f Entities/Unit: Cleanup refactor. Changes: (#17819)
+ Unit::m_movedPlayer -> Unit::m_playerMovingMe
+ Player::m_mover -> Player::m_unitMovedByMe
+ Unit::GetMover() -> Unit::GetUnitBeingMoved()
+ Unit::GetPlayerMover() -> Unit::GetPlayerBeingMoved()
+ NEW: Unit::GetClientControllingPlayer()
2016-08-20 12:43:04 +02:00
Chaouki Dhib
333a3e05f6 Core/Spells: Fixed extended spell range while moving Closes #17818 (#17824)
Cherry pick of 10e0f4ff8f
Closes https://github.com/TrinityCore/TrinityCore/issues/17818
2016-08-20 00:25:30 +01:00
Chaouki Dhib
d7600f1126 Core/Units: Fixed melee range check (#17693)
* Split Spell::CheckRange() into 2 methods since that method had more than one responsibility.
* Moved melee range logic into its own function
* Moved melee range logic method GetMeleeRange from Spell to Unit class. Unit::IsWithinMeleeRange() and Spell::GetMinMaxRange() both use that method.
2016-08-15 18:17:07 +02:00
treeston
837caa0534 Merge remote-tracking branch 'Treeston/3.3.5-spellcastresult' into 3.3.5 (PR #17112) 2016-08-03 10:52:11 +02:00
treeston
03bef35500 Core/Spell: Quick readability change. Functionality not altered. 2016-07-20 15:23:14 +02:00
Aokromes
a832865ce2 Core/Misc: Coding standard (#17521) 2016-07-06 10:54:36 +02:00
Aokromes
fda9f1a136 Core/Mmaps: Charge ignoring z position of target (#17516)
* Core/Mmaps: Charge ignoring z position of target

By cemak closes #15011
2016-07-06 10:23:12 +02:00
Shauren
ba63361d7c Core/Spells: Fixed spell dest range check failing on 0 distance max range requirement even if standing directly on top of destination 2016-07-05 16:59:37 +02:00
SnapperRy
b20912c8f6 Core/Spell: allow use of ground mounts while swimming (#17488) 2016-07-05 03:11:21 +02:00
Shauren
e6a52d4aae Core/Spells: Fixed spell range check
Closes #17060
2016-07-01 20:26:49 +02:00
mik1893
fd88a67182 Core/Spells: Implement SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER (#17160)
* Core/Spells: Implement SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER
Closes #14972
2016-06-14 20:06:00 +01:00
Shauren
f765e8eb73 Core/Spells: Fixed all cases of spells that crash the client when pressing ESC after being cast 2016-06-13 22:02:44 +02:00
treeston & Keader
25c5570f47 AI/PlayerAI: Finally implement cast logic for controlled players. 2016-05-31 15:05:35 +02:00
Shauren
9246189b98 Core/Spells: Implemented SPELL_ATTR1_DISMISS_PET
Closes #7372
2016-05-26 16:04:16 +02:00
ForesterDev
fb0881398a Core: updated creature type flags enum (#17128)
Core/Misc: Update CreatureTypeFlags enum according to TrinityCoreWiki
2016-05-26 10:56:50 +02:00
Alan Deutscher
e7a12edb83 Core/Spells Make certain spells (e.g. Mind Control) properly flag the caster for PvP (#17145)
* This issue was caused by PvP-flagging being done calculated after the target's flag was turned off by becoming a pet.
2016-05-18 11:06:24 +02:00
Treeston
2ae85d86d3 Merge pull request #17037 from Keader/TargetedMovementGeneratorFix
Core/Movement: Fix issues where creatures cancel spell casts chasing target and Implement SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING
2016-05-13 23:20:47 +02:00
Nawuko
bf2cee8cce Core/Movement: Fix issues where creatures cancel spell casts chasing target and Implement SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING 2016-05-11 20:54:50 -03:00
treeston
4b15369378 Core/Spells: Check TRIGGERED_DONT_REPORT_CAST_ERROR flag in SendCastResult rather than CheckCast.
Fixes and closes #16836.
2016-05-11 18:33:43 +02:00
Kittnz
190c75c566 Merge pull request #16476 from Eliminationzx/FixWrongTotemPlacement
[3.3.5][6.x] Core/Spells: Fix wrong totem placement
2016-05-09 20:16:37 +02:00
Incorrect
1aa30d3cce Core/Spells: Fixed overwriting summon requests
Closes #17049
2016-05-01 12:31:55 +02:00
joschiwald
25da16ba44 Core/SpellScripts: allow to modify target destination of all target type 2016-04-23 16:13:12 +02:00
Shauren
a9b4375bb7 Core/Spells: Don't report spell errors to client when spell was triggered and failed some internal condition 2016-04-09 15:31:26 +02:00
treeston
f37682b7ed Merge branch '3.3.5-naxxcleanup' into 3.3.5. (PR #16524) 2016-03-23 20:17:17 +01:00